案例

《黄昏公主》:GameCube 版代码完全一致的反编译

重建《塞尔达传说 黄昏公主》的源码,使其能重新编译出与原版一致的二进制文件;GameCube、Wii 与 Nvidia Shield 各版本通过条件编译共用同一套代码。README 报告 GameCube 版代码已完全一致,但尚未链接全部翻译单元,调试版与 Wii 版的对齐仍在进行;仓库不含素材或汇编,也不会制作移植。

使用条件与局限

  • README 将其描述为进行中的反编译,列出十个目标版本:三个 GameCube 发行版(GZ2E01、GZ2P01、GZ2J01)、包括体验版在内的五个 Wii 版本,以及两个 Nvidia Shield 中国版。产物是原平台的可执行文件和 REL 模块;README 说明项目不会制作 PC 或其他平台的移植,Dusklight 是基于这些代码的独立项目。
  • 构建需要使用者自备所选版本的光盘镜像,格式可为 ISO/GCM、RVZ、WIA、WBFS、CISO、NFS、GCZ 或 TGC,首次构建后即可删除。仓库不含游戏素材或汇编;decomp-toolkit 在本地拆分原文件。
  • 在 Windows 上可直接用 Python 与 ninja 构建;Linux/macOS 需 ninja,并会自动下载 wibo 包装器。configure.py 固定 decomp-toolkit v1.8.0、objdiff v3.6.1、binutils 2.42-1 及 20251118 编译器包,并按目标版本和库选用相应的 Metrowerks 编译器版本;objdiff 用于逐个对象比对。
  • 默认构建对标为完成的单元链接由源码编译的对象,其余单元使用从原文件提取的对象,再按各版本的 build.sha1 校验输出(GZ2E01 有 758 条记录)。decomp.dev 针对该固定提交的报告显示,三个 GameCube 版本的代码均已 100% 匹配,2,608 个单元中有 2,583 个已完成;ShieldD 为 54.47%,Wii 版 RZDE01_00 为 47.06%。CI 在存有游戏文件的私有容器中运行;本合集未运行任何构建。
  • LICENSE.md 采用 CC0-1.0,不涵盖任天堂的游戏、光盘内容或下载的编译器。所审来源未确立 REA 或编码代理的参与。

关于此条目

类型
案例
类别
独立重建案例
关联
独立重建项目
目标
游戏

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

一手来源

  1. README.md GitHub · zeldaret/tp · 修订 c8fa8c9
  2. configure.py GitHub · zeldaret/tp · 修订 c8fa8c9
  3. tools/project.py GitHub · zeldaret/tp · 修订 c8fa8c9
  4. config/GZ2E01/build.sha1 GitHub · zeldaret/tp · 修订 c8fa8c9
  5. LICENSE.md GitHub · zeldaret/tp · 修订 c8fa8c9
  6. .github/workflows/build.yml GitHub · zeldaret/tp · 修订 c8fa8c9
  7. https://github.com/zeldaret/tp/actions/runs/28052837187
  8. https://decomp.dev/zeldaret/tp