案例
《时之笛》:16 个版本均以 MD5 校验 ROM 构建的反编译
借助游戏本身的信息以及静态与动态分析,为《时之笛》重建 C 源码库,可重新构建 Nintendo 64、GameCube 和 iQue Player 共 16 个 ROM 版本。素材取自使用者自备的 ROM,默认构建会以对应版本的 MD5 校验;README 说明项目不制作 PC 移植,并仍称仓库处于开发中。
使用条件与局限
- README 说明项目利用游戏内部信息及静态和/或动态分析,从零重建源码库,并明确表示不制作 PC 移植。项目可构建 N64、GameCube 和 iQue Player 共 16 个 ROM 版本(默认 gc-eu-mq-dbg);ROM 的部分内容可能尚不能移位,因此修改起来可能较困难。
- 每次构建都需要使用者自备所选版本的基础 ROM,且须与 README 列出的 MD5 一致;仓库不含游戏素材,素材在设置阶段从该 ROM 中提取。Ship of Harkinian 等原生移植及重编译项目都是独立项目,并非本仓库的产物。
- README 说明在 Linux 或 WSL 上构建,另有 macOS 与 Docker 指南;需要 Git、build-essential、curl、带 pip 与 venv 的 Python 3.10+、libxml2 以及 MIPS binutils 工具链。N64 和 GameCube 代码通过 ido-static-recomp 使用 IDO 7.1 与 5.3 编译;iQue 版本还有部分文件使用 EGCS,可选的 GCC 构建不保证一致。
- 默认 COMPARE=1 时,make 会将构建出的 ROM 的 MD5 与该版本的校验文件比对,并输出 OK 或 FAILED;设置 NON_MATCHING=1 或 COMPILER=gcc 会关闭该检查。GitHub Actions 在存有基础 ROM 的私有容器中运行,报告固定提交的 16 个版本均构建成功;审阅时可变的进度徽章显示 100%。本合集未运行任何构建。
- 固定版本的仓库中没有许可证文件,GitHub 也未识别出许可证,因此未声明复用许可;任天堂内容与编译器组件各有其条款。所审来源未确立 REA 或编码代理的参与。
关于此条目
- 类型
- 案例
- 类别
- 独立重建案例
- 关联
- 独立重建项目
- 目标
- 游戏
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · zeldaret/oot · 修订 8a3634c
- Makefile GitHub · zeldaret/oot · 修订 8a3634c
- docs/compilers.md GitHub · zeldaret/oot · 修订 8a3634c
- docs/BUILDING_MACOS.md GitHub · zeldaret/oot · 修订 8a3634c
- baseroms/ntsc-1.0/checksum-US.md5 GitHub · zeldaret/oot · 修订 8a3634c
- .github/workflows/ci.yml GitHub · zeldaret/oot · 修订 8a3634c
- https://github.com/zeldaret/oot/actions/runs/38614247271
- https://zelda.deco.mp/games/oot