『バイオハザード4』GameCube版が完全にバイト一致するC/C++へ逆コンパイルされる

Resident Evil 4 (GameCube) – complete byte-identical decompilation to C/C++

GitHubで公開されたプロジェクトが、Nintendo GameCube用『バイオハザード4』のデバッグビルド(G4BE08)を完全にバイト一致するC/C++ソースへ逆コンパイルした。約55万行のコードで15641個の関数を再現し、main.dolと114個のRELオーバーレイをオリジナルと同一のバイト列でビルドできる。ゲームアセットは含まず、解析と保存を目的としている。

「マッチング」とは、すべてのユニットがオリジナルのコンパイラでオリジナルのバイト列にコンパイルされることを意味する。
  1. groundzeros2015

    ファイルをランダムに開いてみた。これはゲームのプログラミングを復元しているというより、コンパイル可能なC構文で挙動をエミュレートしているように見える。

    void Em1eWeaponSet(cEm10* em)

    {

    Em10Work* w = EM10_WK(em);

    w->mot[41] = 0;

    w->mot[42] = 0;

    …

    w->mot[62] = 0;

    w->mot[63] = ARC(0x26C);

    w->mot[64] = ARC(0x26D);

    w->mot[65] = ARC(0x276);

    w->mot[66] = ARC(0x277);

    w->mot[67] = 0;

    w->mot[68] = 0;

    w->mot[69] = ARC(0x26A);

    w->mot[70] = ARC(0x26B);

    w->mot[71] = ARC(0x270);

    w->mot[72] = ARC(0x271);

    w->mot[73] = ARC(0x272);

    w->mot[74] = ARC(0x273);

    w->mot[75] = ARC(0x274);

    w->mot[76] = ARC(0x275);

    w->mot[77] = 0;

    w->mot[78] = 0;

    }

  2. LaurensBER

    (レトロ)ゲームシーンではAIに対する「嫌悪」があるけれど、私はこういうプロジェクト(これがAIを何らかの形で使っているかはわからないけど)やエミュレーションを見るのが純粋にワクワクする。

    技術的な観点から言えば、エミュレーションは本当に素晴らしい。深い技術的知識と、元のシステムへの卓越した理解が必要で、最適化は別次元のレベルだ。

  3. wk_end

    保存の観点から言えば、これはこれまでで最も役に立たない逆コンパイルの一つだ。何しろCapcomはRE4をあらゆる場所に移植することに全力を注いでいるのだから(冗談だよ!)

    リークされたデバッグビルドとそのシンボルを使って作られており、こうしたものを入手して配布するゲーム保存コミュニティの仕事がどれほど意味があるかを示している。

    一方で、これはかなり引く:

    > コンパイラが特定のレジスタ選択やスケジュールを再現するために特定のソース形状を必要とし、自然な綴りが見つからなかった場合、その構文は // COMPILER-DIFF: コメントでマークされる(644個:デッドテスト、空の asm("") によるランドリーとアンカー、レジスタ T x asm("rN") ピン、パディングステートメント)。

    私にとって逆コンパイルの価値は、元のバイト列をそのまま再現することではない(そもそも元のバイト列は既にある)。人間が読めるソースコードとして表現された、元のゲームへの理解を再構築することにある。バイト単位で一致することは、正しく理解した証拠に過ぎない。コンパイラに元の出力を強制するために大量のスロップを追加する必要があるというのは、実際には間違っている証拠であり、Goodhartの法則の危険性、特にAIに適用された場合の危険性を示している。

  4. shakna

    CC0を、著作権で保護された作品の逆コンパイルに?それは……そういう仕組みではない。

    これは派生作品なので、元の著作権を継承する。

    逆コンパイルが常にグレーゾーンであり、著作権者が気にするかどうかを見極めるものであるのには理由がある。

  5. mikae1

    素晴らしい逆コンパイル作業すべてについて、感情がとても揺れる。

    残念なのは、クールな逆コンパイルが初期の3D中心のコンソールのゲームばかりで行われていることだ。Quake狂の私が言うのもなんだが。低解像度テクスチャと、あのぼやけたバイリニアフィルタリングの組み合わせは、簡単に愛せる見た目ではない。まあ世代的なものなんだろうね。

この日のほかの記事

2026-09-20