HeadlinesBriefing favicon HeadlinesBriefing.com

Отладочная сборка Resident Evil 4 для GameCube полностью декомпилирована

Hacker News •
×

Достигнута полная байт-в-байт идентичная декомпиляция Resident Evil 4 для Nintendo GameCube для отладочной сборки G4BE08 (прототип от «25 ноября 2004», оба диска). Проект точно воспроизводит main.dol и все 114 REL оверлея, проверено хешами SHA1 на каждой сборке. Он включает 1,083 объекта (675 в DOL, 408 в RELs) и 15,641 функций, все байт-в-байт идентичны. Исходный код составляет примерно 555k строк C/C++ (~33k строк заголовков) без файлов ассемблера.

Игра была скомпилирована с использованием SN Systems Pro DG 3.9.3 — GCC 2.95.3, Metrowerks CodeWarrior 2.4.7 и CodeWarrior GC/1.2.5n. Включает CRI middleware (ADX, SFD, MPV) и библиотеки SDK Nintendo. В репозитории нет игровых ресурсов; пользователи должны предоставить свои собственные образы отладочных дисков (диск 1 для main.dol и 110 RELs, диск 2 для четырёх REL этапа острова). Для сборки требуется Linux, Python 3 и ninja; компиляторы и инструменты загружаются автоматически, кроме нативного GCC от SN.

Соответствие означает, что каждая единица компилируется в исходные байты с исходными компиляторами. Когда требовались конкретные формы исходного кода для воспроизведения выбора регистров или планирования, конструкции помечаются комментариями `// COMPILER-DIFF:` (всего 644). Автоматическая проверка подтверждает, что только 231 инструкция ядра аппаратуры pochodzi из шаблонов ассемблера. Документация охватывает архитектуру движка, методику соответствия, примечания по единицам и журналы исследований компиляторов.

Ключевые сущности: Компании: Nintendo, SN Systems, Metrowerks, CRI Middleware | Люди: adonis-singh

Часто задаваемые вопросы: Что означает «байт-в-байт идентичная декомпиляция» для этого проекта Resident Evil 4?

Это означает, что перекомпилированный код (main.dol и все 114 REL оверлея) совпадает с оригинальной отладочной сборкой GameCube байт в байт, проверено хешами SHA1, с использованием оригинальных компиляторов (SN Systems GCC 2.95.3 и Metrowerks CodeWarrior) и оригинальных форм исходного кода.