HeadlinesBriefing favicon HeadlinesBriefing.com

Resident Evil 4 GameCube デバッグビルドが完全にデコンパイルされました

Hacker News •
×

Resident Evil 4Nintendo GameCube 版の完全なバイト identical デコンパイルが、G4BE08 デバッグビルド(「2004年11月25日」プロトタイプ、両ディスク)に対して達成されました。このプロジェクトは、main.dol とすべての 114 REL オーバーレイ を正確に再現し、各ビルドごとに SHA1 ハッシュで検証されています。オブジェクトは 1,083 個(DOL 内 675 個、RELs 内 408 個)および関数は 15,641 個 あり、すべてバイト identical です。ソースコードの総量は約 555k 行の C/C++ (ヘッダー約 33k 行)で、アセンブリファイルは含まれていません。

このゲームは、SN Systems Pro DG 3.9.3 — GCC 2.95.3Metrowerks CodeWarrior 2.4.7、および CodeWarrior GC/1.2.5n でコンパイルされました。CRI ミドルウェア(ADX、SFD、MPV)および Nintendo SDK ライブラリを含みます。リポジトリにはゲームアセットは含まれていません;ユーザーは自身のデバッグディスクイメージを提供する必要があります(ディスク 1 は main.dol と 110 RELs 用、ディスク 2 は島ステージの 4 つの RELs 用)。ビルドには Linux、Python 3、および ninja が必要です;コンパイラとツールは自動的にダウンロードされますが、ネイティブの SN GCC を除きます。

マッチングとは、各ユニットが元のコンパイラを使用して元のバイトにコンパイルされることを意味します。レジスタの選択やスケジューリングを再現するために特定のソースフォームが必要だった場合、構造は `// COMPILER-DIFF:` コメントでマークされています(合計 644 個)。自動チェックにより、ハードウェアカーネル命令のうち 231 個のみ がアセンブリテンプレートから来ていることが確認されています。ドキュメントはエンジンアーキテクチャ、マッチング方法論、ユニットごとの注意点、およびコンパイラ研究ログをカバーしています。

主要エンティティ:会社:任天堂、SN Systems、Metrowerks、CRI ミドルウェア | 人物:adonis-singh

よくある質問:この Resident Evil 4 プロジェクトにおける「バイト identical デコンパイル」とは何を意味しますか?

これは、再コンパイルされたコード(main.dol とすべての 114 REL オーバーレイ)が、元の GameCube デバッグビルドとバイト単位で完全に一致することを意味します。これは SHA1 ハッシュによって検証され、元のコンパイラ(SN Systems GCC 2.95.3 と Metrowerks CodeWarrior)および元のソースフォームを使用して行われます。