どうやって? とても簡単です! もちろん、興味のある読者はemscriptenプロジェクトを覚えています。そのおかげで、C ++コードをJavaScriptに変換してブラウザーで動作させることができます。 彼の助けにより、DOOM、Dune 2、TTD、X-COMなどのゲームがブラウザに適合しました。 ただし、このパスは長くて困難です。 1つのプロジェクトには最大6か月かかります。 そして、あなたが一度にすべてを望むなら? 他の方法はありますか?
em-dosbox
別の方法があります-DosBoxを使用します。 実際、DOSプラットフォーム全体(正確にはMS-DOSエミュレーター)を移植できるのに、各プロジェクトを個別に移植するのはなぜですか。 この独創的なアイデアはem-dosboxプロジェクトでBoris Gjeneroによって具体化されました 。 これは、emscriptenを使用して作成されたJavaScriptのDosBoxポートです。
そこで、「ほぼすべての」DOSプログラムをブラウザに転送する方法を説明します。
成分
- ブラウザ
- em-dosbox(dosbox.js)
- プログラムはDosBoxで正しく動作します
動作中、ブラウザはdosbox.jsとデータパケットをプログラム(通常はソースプログラムのディレクトリがパックされたバイナリファイル)でロードします。 dosbox.jsスクリプトは、JavaScriptに移植されたDosBoxにすぎません;実行されると、DOSプラットフォームで実行されているプログラムでDOSプラットフォームをエミュレートします。
dosbox.jsのコンパイル
すべてがシンプルです。 em-dosboxリポジトリのクローンを作成し、autotoolsとmakeを使用してコンパイルします
git clone https://github.com/dreamlayers/em-dosbox.git cd em-dosbox ./configure make
成功すると、 dosbox.htmlとdosbox.jsがsrcフォルダーに表示されます
em-dosboxのパフォーマンスの改善
src / Makefile.amの dosbox_LDFLAGSに--memory-init-file 0オプションを追加します。 このオプションは、読み込みを高速化するために使用されるメモリファイルの生成を無効にします。 この場合、このファイルのサイズは約30メガバイトになりますが、これはブラウザーには適用されません。
src / dosbox.cppファイルで、置き換えることをお勧めします
この編集により、生産性が大幅に向上します。 ただし、ターゲットプログラムは十分にスマートであり、コンピューターのパフォーマンスに関係なく同じ速度で実行できる必要があることを考慮する必要があります。そうしないと、プログラムの動作が速すぎます。
エミュレータを高速化するには、 src / gui / sdlmain.cppファイルのmain関数に次の行を追加します 。
dosbox_LDFLAGS = -s TOTAL_MEMORY=67108864 --pre-js pre.js --memory-init-file 0
src / dosbox.cppファイルで、置き換えることをお勧めします
にemscripten_set_main_loop(em_main_loop, 100, 1);
emscripten_set_main_loop(em_main_loop, 0, 1);
この編集により、生産性が大幅に向上します。 ただし、ターゲットプログラムは十分にスマートであり、コンピューターのパフォーマンスに関係なく同じ速度で実行できる必要があることを考慮する必要があります。そうしないと、プログラムの動作が速すぎます。
エミュレータを高速化するには、 src / gui / sdlmain.cppファイルのmain関数に次の行を追加します 。
#ifdef EMSCRIPTEN EM_ASM("SDL.defaults.copyOnLock = false; SDL.defaults.discardOnLock = true; SDL.defaults.opaqueFrontBuffer = false;"); #endif
プログラムのパッケージ化
em-dosboxには、プログラムを含むディレクトリをバイナリファイルにパックできるスクリプトが付属しており、dosbox.jsと組み合わせて使用できます。 たとえば、Dune 2ゲームのバッチファイルを取得するには、次のようにします。
#python src/packager.py < > < > < > python src/packager.py dune2 ~/dune2 dune2.exe
成功すると、 dune2.htmlおよびdune2.dataファイルが作成されます。 HTMLファイルは、 dosbox.htmlテンプレートを使用して作成されます( srcフォルダーにあります)。
dosbox設定を変更する
デフォルトでは、dosboxは標準構成で起動されます。 変更するには、プログラムフォルダにdosbox.confファイルを作成するだけです。 そして、ビルドスクリプトを次のように変更します。
#86 f.write("Module['arguments'] = [ '-conf', './dosbox.conf', './" + EXECUTABLE + "' ];\n</script>\n")
打ち上げ
したがって、3つのファイルがあります。
- program.html
- program.data
- dosbox.js
それらをサーバーに配置することにより、ブラウザーでプログラムを実行できます。
明けましておめでとうございます。
50の新年の贈り物。
適応ゲームのリスト
次のゲームは、em-dosboxを使用するブラウザーに適合しています。
- 虐待
- 路地猫
- 別の世界
- アーケードバレーボール
- アルカノイド
- バトルチェス
- 武道館:マーシャルスピリット
- CDマン
- コロラド
- お化け屋敷の危険なデイブ
- デストラック
- 掘り
- ディズニーのダックテイルズ:ゴールドクエスト
- 運命
- ドゥーム2
- デューン2
- ダイナブラスター
- ミミズジム2
- ファイア&フォーゲットII
- ゴブリン1-3
- 黄金のx
- 異端者:ヘビライダーの影
- 信じられないほどのマシン
- の
- IndyCar Racing
- クリプトンエッグ
- ランボルギーニ:アメリカンチャレンジ
- ロードランナー
- 失われたバイキング
- の
- 金属変異体
- マイクロマシン
- 地雷爆撃機
- モータルコンバット
- パックマン
- 先史時代
- 先史時代2
- プリンスオブペルシャ
- 焦土:すべてのゲームの母
- シムシティ
- スタント
- サプレックス
- 試乗
- テトリス
- タワートプラー
- ティリアン2000
- うん!
- Warcraft:オークと人間
- 怒りの翼
- 冬のスーパースポーツ92
- ウルフェンシュタイン3D
- Xonix