案例

《星际火狐 64》:完整的 Nintendo 64 版一致性反编译

为 Nintendo 64 版《星际火狐 64》美版 1.1(Rev A)重建 C 源码;借助静态重编译运行的 IDO 编译器编译后,可重建出 MD5 与公布值一致的 ROM,README 徽章显示全部 2,951 个函数均已一致。构建时从使用者自备的 ROM 中拆分代码与素材,仓库本身不含素材或汇编。另行收录的 Starship PC 移植直接编译这份 C 代码,Starfox 64: Recompiled 则从中取用头文件和部分函数来编写补丁。

使用条件与局限

  • 所审阅的 master 固定版本是 2026 年 9 月 28 日的一次整理提交,此前于 2026 年 7 月有提交宣布完成度达到 100%。README 称其为美版 1.1(Rev A)ROM 的完整一致性反编译,对应 MD5 为 741a94eee093c4c8684e66b89f8685e8,并说明这不是 PC 移植。仓库中还有美版 1.0、日版和欧版的 splat 配置与链接脚本,以及日版和欧版 1.0 未压缩 ROM 的校验文件,但 README 未说明如何构建这些版本。
  • 构建需要使用者自备美版 1.1 Rev A ROM,并以 baserom.us.rev1.z64 为名放在项目根目录。README 表示仓库不含任何素材或汇编代码;make init 会解压 ROM,用 splat 拆分代码、数据与素材,然后构建。config.yml 和 assets/yaml 中还有供 Starship 移植使用的 Torch 素材定义,用于生成 starship.otr。
  • README 说明的构建环境是 Linux(原生、WSL 或虚拟机),需要 make、Git、build-essential、MIPS binutils、带 pip 的 Python 3、libpng 及列明的 clang 工具;或是 macOS,通过 Homebrew 安装 coreutils、make、pkg-config 与 mips64-elf binutils;不支持在 Windows 上原生构建。make toolchain 会下载 decompals 用 ido-static-recomp 制作的 IDO 编译器,并构建 mio0 工具与 Torch;子模块提供 splat、asm-processor、asm-differ、m2c 和 Torch。也可用 GCC 构建,但会定义 NON_MATCHING。
  • 默认 COMPARE=1 时,构建会依据 starfox64.us.rev1.md5 校验产物;README 将校验失败解释为基础 ROM 有误或部分代码尚未一致。CI 对通过密钥从私有仓库取得的美版 ROM 运行 make init,另有工作流检查代码格式。这些检查只确认该版本 ROM 的一致性,并不覆盖游戏行为;本合集未运行任何内容。
  • 仓库采用 CC0-1.0,不涵盖任天堂的游戏、ROM 或提取出的素材;IDO 编译器与各子模块仍受各自条款约束。所审来源未确立 AI 或 REA 的参与。

关于此条目

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

来源复核于

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

一手来源

  1. README.md GitHub · sonicdcer/sf64 · 修订 4235c59
  2. Makefile GitHub · sonicdcer/sf64 · 修订 4235c59
  3. tools/Makefile GitHub · sonicdcer/sf64 · 修订 4235c59
  4. starfox64.us.rev1.md5 GitHub · sonicdcer/sf64 · 修订 4235c59
  5. config.yml GitHub · sonicdcer/sf64 · 修订 4235c59
  6. .gitmodules GitHub · sonicdcer/sf64 · 修订 4235c59
  7. .github/workflows/ci.yaml GitHub · sonicdcer/sf64 · 修订 4235c59
  8. LICENSE.md GitHub · sonicdcer/sf64 · 修订 4235c59