案例

Snowboard Kids:智能体辅助的 N64 匹配反编译

原版 Nintendo 64 游戏 Snowboard Kids 的匹配反编译,利用使用者自备的 ROM 重新构建 SHA1 一致的北美版与日版 ROM。作者在 84 天复盘文章中介绍了通过自建的 Nigel 工具调度编程智能体,并结合 m2c、permuter 与共享编译器经验文件的流程,同时表示不应把提速完全归功于大模型。它与 Snowboard Kids 2 反编译是不同的项目。

使用条件与局限

  • 2026-08-26 的文章报告游戏已 100% 反编译:每个函数都有编译后机器码完全一致的 C 实现,只保留少量本就以手写汇编为原始源码的系统库代码。文章称仓库从 2026 年 5 月 28 日开始,到 2026 年 8 月 19 日完成最后一个匹配函数,共 2,145 个函数;Snowboard Kids 2 则用了 596 天、共 2,995 个函数。README 称日版目前仍由提取出的汇编构建;reports/jp-exact-functions.md 列出 120 个已由 C 编译的日版函数。
  • 构建需要使用者自有的北美版或日版 ROM,分别命名为 snowboardkids.z64 或 snowboardkids.jp.z64,且 SHA1 须与 README 所列一致;构建会从中提取汇编和素材,放入 git 忽略的目录。README 称仓库不含任何游戏素材或汇编,但所审阅的提交中仍跟踪 libultra 的 .s 文件和一张包装盒图片。CI 从另一个私有仓库检出基础 ROM 来构建两个区域版本。
  • 经验证的宿主为 x86-64 Linux,需要 make、git、Python 3、clang、wget、tar 和 binutils-mips-linux-gnu;文档提供了 macOS 配置,但仍待验证。make -C tools 会配置重编译的 IDO 5.3 工具链(也可用 IDO_DIR 指向其他安装),子模块提供 asm-processor、asm-differ 和 decomp-permuter,可选的匹配辅助工具需安装 requirements.txt。
  • tools/build-and-verify.sh 会针对所选区域执行清理、提取、构建,并将输出 ROM 的 SHA1 与原 ROM 比对;reports/region-functions.md 通过逐字节或地址归一化匹配,将 2,110 个美版函数中的 1,293 个与日版 ROM 对应起来。文章介绍了智能体逐个函数编写 C 代码、用脚本对每个未匹配函数运行 m2c、为 permuter 设定时限以及四个并行工作树的做法;文章自称对 GPT-5.5/5.6、Claude 4.5、Fable 和 GLM 5.2 的比较并不科学。本目录未构建或校验任何 ROM。
  • 作者估计约 4.8% 的匹配提交有专家介入,并说明该数字不衡量投入的工作量;作者感谢多位贡献者完成了许多困难的 IDO 匹配,并认为把提速全部归功于大模型是严重的过度简化。100% 匹配后,仍有自动生成的名称、未知的结构字段和数据需要整理。所审阅的提交中没有许可证文件,README 声明不以任何商业用途为目标,也未提及使用 REA。

关于此条目

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

来源复核于

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

一手来源

  1. README.md GitHub · cdlewis/snowboardkids-decomp · 修订 0a398d9
  2. https://blog.chrislewis.au/decompiling-a-nintendo-64-game-in-84-days/
  3. docs/versions.md GitHub · cdlewis/snowboardkids-decomp · 修订 0a398d9
  4. reports/jp-exact-functions.md GitHub · cdlewis/snowboardkids-decomp · 修订 0a398d9
  5. reports/region-functions.md GitHub · cdlewis/snowboardkids-decomp · 修订 0a398d9
  6. .github/workflows/build.yaml GitHub · cdlewis/snowboardkids-decomp · 修订 0a398d9
  7. .gitignore GitHub · cdlewis/snowboardkids-decomp · 修订 0a398d9
  8. .gitmodules GitHub · cdlewis/snowboardkids-decomp · 修订 0a398d9
  9. snowboardkids.sha1 GitHub · cdlewis/snowboardkids-decomp · 修订 0a398d9