公開GitHubリポジトリ`adonis-singh/re4`は、*『バイオハザード4』*のGameCube用デバッグビルド`G4BE08`を、バイト単位で完全に同一となるよう逆コンパイルしたと主張しています。このプロジェクトでは、C/C++ビルドがゲームのメイン実行ファイルと再読み込み可能なコードモジュールである`main.dol`および全114個のRELオーバーレイを正確に再現しているとしています。
この記事はこのリポジトリの紹介から始まり、記事全体で取り上げる『バイオハザード4』GameCube用デバッグビルドの再構築を示しています。
リポジトリには、約571,000行のソース、43,000行のヘッダー、1,083個のオブジェクト、23,289個の関数シンボルがあると報告されています。名称はデバッグビルドの`Bio4.sym`シンボルファイルから取得され、ファイルの境界はバイナリに残された文字列から推定されたと説明されています。そのため、失われた源代码を単純に復元したものではないにもかかわらず、研究者にとって有用な成果となっています。
中心的な検証は例外的に厳格です。各ユニットは元のコンパイラでコンパイルされ、元のバイト列と比較されます。プロジェクトによると、`ninja`はDOLモジュールとRELモジュールで100%一致して完了し、SHA-1チェックでは115行の`OK`が出力されます。端的に言えば、再構築された機械語は、似た挙動を確認するだけでなく、出荷済みのコードそのものと照合されているのです。
だからといって、ソースの各行が自然な再構築であるという意味ではありません。READMEには、レジスタ割り当てや命令スケジューリングといったコンパイラの選択を再現するために使用される578個の`COMPILER-DIFF`マーカーが記載されています。その多くはコードを出力しない構文であると説明され、残りのアセンブリは、元の開発者もアセンブリで記述したコードに対応するものとされています。この区別は重要です。バイト単位の一致は、ビルド成果物を検証するものであり、すべてのソース表記の読みやすさや歴史的正当性を保証するものではありません。
このプロジェクトには、ディスクからコピーされたゲーム資産やコードは含まれておらず、ユーザー自身がデバッグ用ディスクのイメージを用意する必要があります。また、再構築されたゲームとSDKのソースコードはそれぞれの所有者に帰属すると明記されている一方、プロジェクト独自のビルドスクリプト、ツール、ドキュメントはCC0で公開されています。この配布物自体が再構築の法的地位を独立的に立証するわけではないため、リポジトリが掲げる保存を目的とする位置づけを、法的結論として受け取るべきではありません。