世界を動かす技術を、日本語で。

PlayStation 2 リコンパイルプロジェクトは絶対に素晴らしい

概要

  • PlayStation 2の名作ゲーム群とその保存の重要性
  • エミュレーターとネイティブ移植の違い
  • PS2Recompという新しい静的リコンパイラーツールの登場
  • 他機種でのリコンパイル事例と今後の期待
  • 現在も進行中のプロジェクトであり、今後の発展に注目

PlayStation 2ゲームの現状とエミュレーション

  • PlayStation 2 は、歴代コンソールの中でも屈指の名作ゲームライブラリを誇る
  • 名作を厳選しても 数十本、実際は数百本 の素晴らしいタイトルが存在
  • しかし、 PS2ハードウェアの老朽化 が進行
  • 現代の4Kテレビで最高画質を得るには、 RGBコンポーネントケーブル+アップスケーラー やエミュレーターの利用が必要
  • PCSX2 などのエミュレーターは、内部解像度の向上・安定したフレームレート・テクスチャパック対応などを実現

PS2Recomp:ネイティブ移植の新たな可能性

  • エミュレーターよりも優れた方法は、 既存のPS2ゲームを現代プラットフォーム用に再コンパイル すること
  • PS2Recomp は、PS2用ゲームをWindowsやLinuxなどのPC上で ネイティブ動作 させる静的リコンパイラー&ランタイムツール
    • PS2独自の Emotion Engine(MIPS R5900 CPU) アーキテクチャから、ターゲットプラットフォーム用に変換
    • 各ゲームごとに個別対応が必要なツールであり、「全自動で全ゲームが動く」タイプではない
  • ゲームの デコンパイルが可能 となり、リマスターやコミュニティによるリメイクへの大きな一歩
  • エミュレーター向けのHDテクスチャパック等も既に存在するが、 さらに自由度・拡張性 が向上
  • フレームレートの完全解放や物理演算・当たり判定の破綻防止も期待
  • エミュレーターより低スペックなPC でも快適な動作が可能と予想

リコンパイル事例と今後の展望

  • コミュニティによる リコンパイルプロジェクト は過去にも存在
    • N64 ではSuper Mario 64やZeldaなどの有名事例
      • Mario 64は RTX(レイトレーシング) 対応のフォークも登場
      • Zeldaも多数のビジュアル・ゲームプレイ強化、将来的なRay Tracing導入計画
  • 今後は MGS2、Gran Turismo、God of War、Tekken 4、Shadow Hearts などの“ネイティブ”PC版登場に期待
    • コントローラー対応(DualShockやXboxコントローラー)、追加機能の実装も可能
  • エミュレーターでのプレイも十分素晴らしいが、 ネイティブ移植はゲーム保存の究極形

PlayStation 2アーキテクチャの特徴

  • MIPS R5900 ベースのEmotion Engine(約300MHz動作)搭載
  • Sony独自のカスタマイズ: 2つのベクターユニット によるジオメトリ操作やコプロセッシング
  • 32MBメモリGraphics Synthesizer(約147MHz、4MB eDRAM) で構成
  • 当時としては低クロックながらも、 GameCubeやXboxを凌駕するパフォーマンス を発揮

プロジェクトの現状と今後

  • PS2Recomp はまだ開発中の段階
  • ゲーム保存や将来的なリマスター・リメイクに関心のあるユーザーにとって 大きな希望
  • 今後の進展とコミュニティの動きに注目

Hackerたちの意見

これすごいけど、もちろんこういう注目を浴びるタイトルはほんの一握りだよね。でも、300ドル以下のAndroidハンドヘルドがPS2のライブラリ全体をエミュレートできるなんて、驚きだよ。アップスケーリングもできるし、好みに合わせられるのがいいね。

AertherSx2の開発者が、2019年の中堅Androidスマホでもゲームをスムーズに動かすためにやったことはすごいよ。才能があるのに、感情的に不安定でポートを放棄しちゃったのが残念。

本当にすごいよ。レトロハンドヘルドで子供の頃のゲームをプレイしてるんだけど、最近は100ドル以下のハンドヘルドからRetroid Pocket Flipに乗り換えたんだ。これがすごくて、WiiUやPS2のゲームを2倍の解像度で完璧に動かせてるし、軽めのSwitchゲームにも挑戦してるよ。

これかその後継が、ほんの少しのタイトル以上に挑戦するっていう長期ベットを賭けるよ。面白い時代に生きてるね。

これから数年でエミュレーター開発が増えると思う。エミュレーターは、ビジョンやLLMにとって完璧な問題だよ。HNに出てくるウェブブラウザプロジェクトみたいなもんだね。既存のリファレンステストケースがあって、問題がはっきりしてるから。みんながゲームプレイのスクリーン録画に対してVLMを走らせるだけでエミュレーターをクラウドファンディングできるようになったら、任天堂の弁護士たちには未来が楽しくないだろうね(非決定論的な要素を除けば)。もう法的手段でソフトウェアエンジニアの大衆を抑え込むことはできないよ。

ムーアの法則はいつも驚かされるね(トランジスタ数の倍増率じゃなくて、計算能力/ドルの俗なバージョンの話)。今の100百万ドルのクラスターで動いている最前線のモデルと同等かそれ以上のパフォーマンスを持つAIモデルが、すぐにスマホで動くようになるだろう。10年後には、10億ドルのクラスターで動くものを想像するのも難しいよ。

それで、みんなそのパワーを埋め込まれたウィジェットアプリケーションで無駄にしてるんだよね。俺のAndroidフォンは、1990年から2002年まで持ってた4台のPC(386SX、P75、P166、Athlon XP)を全部足しても、よりパワフルなんだ。

ゲームはやめちゃったけど、10年以上前にAndroidを選んだ大きな理由だったのを覚えてる。エミュレーター:D 今はiPhoneでもできるみたい。結局、Appleは他のところで標準的な機能を提供するようになるんだよね。ヴェブレン財…

適切なアップスケールされた/改善されたテクスチャパックを探すのは本当に大変なんだよね。らしいけど。

最初の二村プロジェクションの応用だね。 https://en.wikipedia.org/wiki/Partial_evaluation

これ、Futuramaって何度も読んじゃったわ。

そうなの?特定のゲームでMIPSエミュレーターを部分的に評価してたらそうなるけど、どうもそういう風には動いてないみたい。

エミュレーションはもう素晴らしいよね。再コンパイルでできることは魔法みたいだよ。: https://github.com/Zelda64Recomp/Zelda64Recomp

ポートや再コンパイルの話で言うと、OpenGOALっていうのもあるよ。これはFOSSのデスクトップネイティブなGOAL(Game Oriented Assembly Lisp)インタープリターの実装で、Naughty Dogがいくつかの有名なPS2タイトルを開発するのに使ってたんだ。インタープリターをポートできたから、ボランティアチームが小規模でもこれらのタイトルを急速にポートし始められたんだよ。 1. https://opengoal.dev/ 2. https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp

これめっちゃクールだけど、IP弁護士たちがバズソーを研いでる音が聞こえてきそうだな…

漫画みたいに、目にドルマークを浮かべたIP弁護士たちがいるって感じだね。

ニュース記事じゃなくて、実際のプロジェクトのリンクだよ。 https://github.com/ran-j/PS2Recomp

PS2の浮動小数点スループットの90%は、R5900ではなく、2つのベクターユニットにあるんだ。記事がそう言ってるように、それに集中するのは、16ビットの文脈で68000に焦点を当てるのと同じくらい無駄なことだと思う(EEの16ビットRAMBUSボトルネックを無視して)。でも、そのアプローチは、違いを理解していないスタジオによるPS2へのPCポートには合うかもしれないね。STエミュレーターが最もシンプルなアミガゲームを動かすための近道だったのと同じように。

ちなみに、Xbox 360用のXenonRecompやN64用のN64:Recompiledも同じことをやってるよ。この「再コンパイル」と、有名なスーパーマリオ64のような「逆コンパイル」プロジェクトは、記事が理解できていない点でほぼ別物なんだ。こっちのアプローチは、アセンブリをC++マクロに変換してからC++をコンパイルするって感じで、C++コンパイラをマクロ再アセンブラやエミュレーション再コンパイラとして使ってる、ちょっと変わった方法なんだよ。有名なスーパーマリオ64の逆コンパイル(あとopenrctとか)は、実際のデコンパイラから出力されたものを使って、アセンブリからCを再構築し、そのコードを修正してるんだ(つまり、ゲームのオブジェクトコードをソースコードの形に戻すけど、こっちのアプローチはそれをやってない)。

保存のためには素晴らしいことだね。これらのクラシックを現代のハードウェアでネイティブ再コンパイルできるのは、大きな前進だよ。

プレイステーション2のライブラリは、今までリリースされたどのコンソールの中でも最高のものの一つだし、もしゲームのリストを本当に優れたものに絞ったとしても、素晴らしいタイトルが何十本(もっと言えば何百本)も残るだろう。でも、PS2のハードウェアはちょっと古くなってきてる。ライブラリを除けば、PS2は出荷台数で史上最も成功したゲーム機で、10年以上も市場に留まってたし、DVDドライブも搭載してた。さらに、かつてはソニーがエンターテインメント機器だけじゃなく、自社の公式PS2 Linuxディストリビューションを持つパーソナルコンピュータとして位置づけてた時期もあった。もっと完璧な世界では、これが(a) PS2の後、PS3の前にリリースされた仮想のハードウェアプラットフォームで起こってたはずで、スペックはその間に位置していて、前者より少し良いけど、後者のCell CPUや変わった形状ほどエキゾチックじゃない(PS2の物理的なプロファイルは、オリジナルでもスリム版でも完璧だったからね)。それが(b) IBM PCやクローン市場のような業界の標準化をもたらし、他のベンダーがソニーが自社で製造を中止しても半互換のユニットを作り続けることになって、定期的にプラットフォームをアップデート(ここでメモリを倍増させたり、あちらでクロックスピードを上げる方法を提供したり)しながら、後方互換性を維持して、今日新しい30ドルの「PS2クローン」を買って基本的な計算作業ができるようになったり(つまり、現代のWebブラウザやElectronアプリを動かす能力は含まれない)、物理メディアを再生できて、オリジナルのゲームや同じプラットフォームを明示的にターゲットにした新しいゲームもサポートしてるってわけ。あるいは、Steam Machine 2026の価格で、最初のプラットフォームリビジョンのオリジナルタイトルのネイティブサポートを維持しつつ、すべての中間リビジョンでもそれをアンロックする最新世代を手に入れることもできる。