HeadlinesBriefing favicon HeadlinesBriefing.com

Resident Evil 4 GameCube 调试构建完全反编译

Hacker News •
×

一个完整的、字节相同的 Resident Evil 4 任天堂 GameCube 版本的反编译已经实现,针对 G4BE08 调试构建(即“2004年11月25日”原型,两张光盘均包含)。该项目精确复现了 main.dol 和所有 114 个 REL 覆盖层,通过每个构建的 SHA1 哈希进行验证。它包含 1,083 个对象(DOL 中 675 个,RELs 中 408 个)和 15,641 个函数,全部字节相同。源代码总计约 555k 行 C/C++(约 33k 行头文件),且不包含任何汇编文件。

该游戏使用 SN Systems Pro DG 3.9.3 — GCC 2.95.3Metrowerks CodeWarrior 2.4.7CodeWarrior GC/1.2.5n 编译。它包含 CRI 中间件(ADX、SFD、MPV)和 任天堂 SDK 库。仓库中不包含游戏资产;用户必须自行提供调试光盘镜像(光盘 1 用于 main.dol 和 110 个 RELs,光盘 2 用于四个岛屿阶段 RELs)。构建需要 Linux、Python 3 和 ninja;编译器和工具将自动下载,除了原生 SN GCC。

匹配意味着每个单元使用原始编译器编译后生成原始字节。在需要特定源码形状以复现寄存器选择或调度的地方,构造被标记为 `// COMPILER-DIFF:` 注释(共 644 处)。自动检查确认只有 231 条硬件内核指令 来自汇编模板。文档涵盖引擎架构、匹配方法论、每单元注释和编译器研究日志。

关键实体:公司:任天堂、SN Systems、Metrowerks、CRI 中间件 | 人物:adonis-singh

常见问题:什么是此 Resident Evil 4 项目的“字节相同反编译”?

它意味着重新编译的代码(main.dol 和所有 114 个 REL 覆盖层)与原始 GameCube 调试构建逐字节完全匹配,通过 SHA1 哈希验证,使用原始编译器(SN Systems GCC 2.95.3 和 Metrowerks CodeWarrior)和原始源码形状。