HeadlinesBriefing HeadlinesBriefing.com

PS2ゲームブラウザWebAssembly再コンパイル

Hacker News •
×

Play Station 2のゲームがエミュレータなしでブラウザで動作します。ゲームのEmotion Engineの機械語コードは事前にC++に翻訳され、WebAssemblyにコンパイルされ、WebGPUで描画するPS2のOSとHardwareの再実装と链接されます。

これはpsp-web-recompの兄弟であり、同じ方法に従います。この方法で最初に立ち上げられたタイトルはGran Turismo 4で、システムで最も要求の高いゲームの一つであるため選ばれました:これはベクトル Unitsの両方依存し、リプレイとライセンステスト用の正確な浮動小数点挙動に依存し、レンダリングされた画像をパレットとして読み込むグラフィックトリックに依存します。これはブートから openingsムービー、menu、レースまで音楽と効果音付きで動作し、ブラウザ内に保持されたメモリーカードにセーブします。レースはPAL版このリリースで毎秒50フレームのフル速度で、ChromeでノートPCの内蔵GPUでPS2の2倍の解像度で動作します。

God of War IIが同じスクリプトでfollowしました。ゲーム固有のコードは不要でしたGran Turismo 4がトリガーしたことがない2つのバグ、再コンパイラ内のものとベクトルUnitのtimingのもの、およびPS2のI/Oプロセッサのいくつかの欠落部分を見つけました。-now menuからカットシーン、戦闘まで動作し、ChromeでPS2解像度の重い戦闘中も毎秒60フレームを維持します。

ここにはゲームデータは含まれていません。所有するゲームのディスクイメージを持ち込み、このリポジトリのスクリプトがmachineryでウェブページに変換します。

主要エンティティ:会社:GitHub, Chrome

FAQ:PS2からWebAssemblyへの再コンパイルはどのように機能しますか?

eerecompはゲームの実行可能ファイルを読み、制御フローに従って関数を Finds、16 KiBのゲストコード単位でC++を生成し、R5900の特徴である128ビットレジスタ、ブランチディレイスロット、PS2の非IEEE浮動小数点Unitを保持します。ジャンプはテールコールになり、スレッドスイッチはホストスタックを巻き戻すので、ゲストスレッドごとのスタックは不要です。

出典: Hacker News · 要約:HeadlinesBriefing