案例

《动物之森》:进行中的 N64 一致性反编译

将从 ROM 逆向得到的 C 代码与从使用者自备 ROM 中提取的素材和汇编结合,重建日版 Nintendo 64《动物之森》(どうぶつの森)。默认构建会用仓库保存的 MD5 校验未压缩与重新压缩的 ROM。README 明确该项目不作为移植基础,也不用于商业目的;decomp.dev 报告所审提交有 18.52% 的代码已匹配。

使用条件与局限

  • README 称其为进行中的反编译项目,代码库可能大幅变动,并提醒 ROM 的部分内容可能尚不能移动。Makefile 与 CI 中唯一配置的版本是 jp,即日版 N64。产物为 N64 ROM;README 声明项目不是移植,明确不以充当移植基础或任何商业用途为目标。其链接的 GameCube 版 Animal Crossing 反编译是另一个项目。
  • 需将自己的日版《动物之森》ROM 作为基础 ROM 放入 baseroms/jp,可接受 .z64、.n64 和 .v64 文件。make setup 会将其解压并按 baseroms/jp/checksum.md5 校验,随后 make extract 借助 splat 在本地得到汇编和素材。所审代码树不含 ROM、图像或二进制素材文件;源自游戏的内容仅限于 DMA 文件表头文件、src/objects 下的小型地址表等数据表。
  • README 记载的环境为 Linux(推荐 Debian 或 Ubuntu),需 make、Git、build-essential、clang、MIPS binutils 以及带 pip 和 venv 的 Python 3;make venv 会安装固定版本的 splat64 0.24.0 以及 spimdisasm 和 mapfile-parser。tools 目录的 Makefile 从 decompals/ido-static-recomp v1.2 下载 IDO 5.3 与 7.1 的静态重编译版本,并下载 pigment64 0.6.3;构建还会用随附的 ultralib 子仓库编译 libultra。NON_MATCHING 构建会关闭校验比较。
  • COMPARE 保持默认时,make rom 和 make compress 会按仓库保存的 MD5 值检查两个 ROM。尚未反编译的函数仍以提取出的汇编通过 GLOBAL_ASM 引入,因此校验通过并不代表反编译完成。CI 在提供基础 ROM 和编译器归档的私有容器中构建 jp 版本,比较警告数量并上传 objdiff 格式的报告。decomp.dev 针对该固定提交的报告显示,2,515,744 个代码字节中有 465,796 个(18.52%)、14,415 个函数中有 2,998 个已匹配,尚无完整单元;本合集未运行构建。
  • README 规定 src 和 include 在可能范围内、以及未声明其他许可的文件采用 CC0-1.0,asm-differ、asm-processor、fado、ultralib 等子仓库不在此列。任天堂的游戏、ROM 内容和下载的编译器各自保留权利。所审来源未确立 AI 或 REA 使用,也不主张运行复现。

关于此条目

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

来源复核于

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

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · zeldaret/af · 修订 4ddba04
  2. Makefile GitHub · zeldaret/af · 修订 4ddba04
  3. tools/Makefile GitHub · zeldaret/af · 修订 4ddba04
  4. tools/decompress_baserom.py GitHub · zeldaret/af · 修订 4ddba04
  5. baseroms/jp/checksum.md5 GitHub · zeldaret/af · 修订 4ddba04
  6. requirements.txt GitHub · zeldaret/af · 修订 4ddba04
  7. CONTRIBUTING.md GitHub · zeldaret/af · 修订 4ddba04
  8. .github/workflows/ci.yml GitHub · zeldaret/af · 修订 4ddba04
  9. LICENSE GitHub · zeldaret/af · 修订 4ddba04
  10. https://decomp.dev/zeldaret/af

同分区更多条目:游戏

游戏分区全部 231 项资源游戏案例(189)