ゲーム

エミュレーターを使わずにブラウザ上でPSPゲームが動作するというプロジェクト「PSP Web Recomp」


PSPゲームをエミュレーターを介することなくウェブブラウザで実行できるというプロジェクト「PSP Web Recomp」を、ソフトウェアエンジニアのsnuri00氏がGitHubで公開しています。

GitHub - snuri00/psp-web-recomp: PSP games in the browser without an emulator: static recompilation to WebAssembly, an HLE kernel and a WebGL2 renderer · GitHub
https://github.com/snuri00/psp-web-recomp


snuri00氏はPlayStation 2のゲームをPCで動作するよう再コンパイルする「PS2Recomp」などのプロジェクトを主導している人物です。

PlayStation 2のゲームをPCで動作できるように再コンパイルするプロジェクト「PS2Recomp」とは? - GIGAZINE


「PSP Web Recomp」も同じようなコンセプトのプロジェクトで、実際に『ゴッド・オブ・ウォー 落日の悲愴曲』が動作するデモ映像が公開されています。snuri00氏によると、起動からメニュー、カットシーン、戦闘シーンまで、ChromeやFirefox上で60FPSで動作するとのこと。解像度はPSP本体の最大4倍で、音楽や音声、効果音も問題なく聞こえますが、ムービーシーンは飛ばされるとのこと。

psp-web-recomp/docs/media/demo.webp at main · snuri00/psp-web-recomp · GitHub
https://github.com/snuri00/psp-web-recomp/blob/main/docs/media/demo.webp


続編にあたる『ゴッド・オブ・ウォー 降誕の刻印』の場合も、ネイティブ環境の最大3倍の解像度で、55FPS~60FPSでの動作が確認されています。

プレイ可能なビルドが完成した当初、ゲームは6FPSで動作していて、60FPS到達への道のりのほとんどはレンダラー高速化ではなく、どこで処理時間が消費されているかを突き止めることに費やされたそうです。


たとえば、『ゴッド・オブ・ウォー』では、ディスプレイの表示情報の書き換え間にある垂直ブランクを待つことなくフレームバッファを書き換える(スワップする)ため、画面に表示される1フレームごとに約8フレームが描画されていました。しかし、PSPエミュレーター・PPSSPPでも採用されているという、1回の垂直ブランクで2回行われるべきスワップ処理を次のブランクまで保留するテクニックを用いたところ、表示される1フレームあたりの処理負荷を8分の1に削減できたとのこと。

ちなみに、Hacker Newsでは「もはやエミュレートしているのではなく、リバースエンジニアリングしてゲームを直接移植しているといえる」というコメントや、「『ゲームのマシン語コードがC++に変換され、WebAssemblyに再コンパイルされ、WebGL2で描画されるPSPのOSとグラフィックチップスの再実装とリンクされる』というのはエミュレーションスタックの説明なのでは?」(=プロジェクトそのものがエミュレーターなのでは?)という指摘が寄せられています。

・関連記事
PS5のゲームをWindowsとLinuxでプレイ可能にするオープンソースのツール「AnyPS5」 - GIGAZINE

ブラウザだけで動くゲームボーイエミュレーター「Retro Boy」 - GIGAZINE

1990年代のMacをブラウザ上で完全再現すべく作られたエミュレーター「Infinite Mac」 - GIGAZINE

in ゲーム, Posted by logc_nt

You can read the machine translated English article 'PSP Web Recomp' is a project that allow….