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

PlayStation 2向けゲームをエミュレーターで動かすのではなく、ゲームの実行ファイルを解析して現代の環境で動くコードへ変換し、結果としてネイティブに近い形で動作させようとする取り組みが 「PS2Recomp」 です。このプロジェクトは 「N64Recomp」 からインスピレーションを受けており、完成にはまだ遠く実験段階とされますが、うまくいけばPS2作品の保存や再活用のやり方を根本から変えうるとして注目されています。
GitHub - ran-j/PS2Recomp: Playstation 2 Static Recompiler & Runtime Tool to make native PC ports
https://github.com/ran-j/PS2Recomp
Playstation 2 Recompilation Project Is Absolutely Incredible – RedGamingTech
https://redgamingtech.com/playstation-2-recompilation-project-is-absolutely-incredible/
PS2は名作が多い一方で本体の世代が古くなり、現代の4KテレビでプレイするにはRGBコンポーネントケーブルと高品質なアップスケーラーを組み合わせるなど工夫が必要です。その代替としてPCでの動作が普及し、「PCSX2」のようなエミュレーターが内部解像度の引き上げやフレームレート安定化、テクスチャーパックの利用などで体験を改善してきています。
しかし、エミュレーターを動かすためには本体実機からBIOSを入手する必要があり、さらにあくまでも動作を模倣しているだけなのでどうしても本物の体験を100%再現できず、未対応のゲームタイトルが存在します。

そこで、さらに一歩進んだプロジェクトとして、既存のPS2ゲームを現代のプラットフォーム向けに再コンパイルし、WindowsやLinuxのデスクトップPCなどでネイティブに動かすことを目指すのが「PS2Recomp」です。
PS2RecompはPlayStation 2のELFファイルを静的に再コンパイルし、C++コードへ変換するツールで、生成されたC++コードを現代のコンパイラでビルドして実行用ランタイムとリンクすることで、従来型のエミュレーションに頼らずPCなどで動かすことを狙います。ただし、記事作成時点ではあくまでも実験段階であり、期待通りに動かない可能性があるとのこと。

仕組みとしては、入力されたPS2のELFファイルから関数やシンボル、リロケーションを抽出し、PlayStation 2のCPUであるEmotion Engineの命令をデコードして同等C++コードへ置き換え、さらに再コンパイル後コードを動かすためのランタイムを生成する流れです。変換は非常に逐語的で、設定はTOMLファイルで行い、入力ファイルや出力先、単一ファイル出力か複数ファイル出力か、スタブ化やスキップする関数、命令パッチなども指定できます。
対応範囲としては、MIPS R5900命令セットのC++化に加え、PS2固有の128bitマルチメディア命令の扱い、ベクトルユニット0(VU0)のマクロモード対応、リロケーションとオーバーレイの処理、関数スタブとスキップなどが特徴として挙げられています。ビルド面ではCMake 3.20以上とC++20対応コンパイラが要件で、128bit演算のためにSSE4またはAVX相当のサポートが必要だとのこと。
PS2Recompではエミュレーターでは問題になりやすい物理演算や衝突判定を壊すことなくフレームレートの制限を解除できるほか、エミュレーターを動かすよりも低スペックなハードウェアで動作する可能性も期待されています。また、Xboxコントローラーなどの現代的なデバイスへの対応も容易になります。
一方で、再コンパイルしたコードを実行するには、メモリ管理やシステムコール処理、PS2固有ハードウェアの取り扱いを提供するランタイムが必要で、基本的なランタイムライブラリは同梱されるものの、PS2独自のGPUであるGraphics Synthesizerなどのハードウェア要素は外部実装が必要だとされています。さらにベクトルユニット1(VU1)のマイクロコード対応が限定的であることから、PS2特有の機能には未対応だったり不完全な部分が残る可能性も示されています。

by Yaca2671
PS2Recompはまだ開発の初期段階であり、GPL-3.0ライセンスの下でオープンソースプロジェクトとして開発されています。記事作成時点ではプレイ可能なゲームはまだありませんが、公式GitHubからビルドを作成して試用することができます。
ゲーム関連ニュースサイトのRedGamingTechは、こうした再コンパイル型の取り組みがすでにNINTENDO64界隈で成功例を持ち、視覚面やゲームプレイ面の強化、将来的なレイトレーシング導入計画などへつながっていることを引き合いに出し、PS2でも同様にネイティブ版が実現すればコントローラー対応なども含めて保存と再体験の理想形に近づくと位置付けています。
また、RedGamingTechはPS2のEmotion EngineがMIPS R5900系の独自CPUであることや、2基のVU・Graphics Synthesizer・32MBメモリ・4MBのeDRAMといった構成に触れ、「プロジェクトは未完成で作業が残っているものの、PS2が独特のアーキテクチャゆえにPS2Recompには挑戦する価値が大いにある」と評価しました。
・関連記事
PS2の販売台数が公式に1億6000万台を突破、発売から11年後の2011年以降も1000万台を売り上げ最も売れたゲーム機に - GIGAZINE
Android向けのPS2エミュレーター「AetherSX2」の開発者が誹謗中傷や殺害予告を受けて開発中止を宣言 - GIGAZINE
PSPを小型のPS2っぽく改造してビデオ出力やBluetoothコントローラーに対応させられるキット「PS Placeable」が登場 - GIGAZINE
「スター・ウォーズ」のPS4向けパッケージ版ゲームがPS5脱獄の鍵になると話題に、価格が一夜で20倍に高騰 - GIGAZINE
新型PS3でPS2互換を実現する最終兵器か、「互換アダプタ」の詳細が明らかに - GIGAZINE
・関連コンテンツ
in ソフトウェア, ゲーム, Posted by log1i_yk
You can read the machine translated English article What is 'PS2Recomp', a project to recomp….







