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

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

- 类型：案例
- 目标：游戏
- 类别：独立重建案例
- 关联：独立重建项目
- 来源复核于：2026-10-19
- 收录于：2026-10-27
- 原始资源：<https://github.com/zeldaret/af>
- 一手来源：<https://github.com/zeldaret/af/blob/4ddba04604ee7b4c4cfc0b64f8ee4d094bb385be/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/animal-forest-n64-decomp-case/>
- 记录 JSON：<https://awesomerea.org/resources/animal-forest-n64-decomp-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/animal-forest-n64-decomp-case/index.md)

## 使用条件与局限

- 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 内容和下载的编译器各自保留权利。

## 一手来源

1. <https://github.com/zeldaret/af/blob/4ddba04604ee7b4c4cfc0b64f8ee4d094bb385be/README.md>
2. <https://github.com/zeldaret/af/blob/4ddba04604ee7b4c4cfc0b64f8ee4d094bb385be/Makefile>
3. <https://github.com/zeldaret/af/blob/4ddba04604ee7b4c4cfc0b64f8ee4d094bb385be/tools/Makefile>
4. <https://github.com/zeldaret/af/blob/4ddba04604ee7b4c4cfc0b64f8ee4d094bb385be/tools/decompress_baserom.py>
5. <https://github.com/zeldaret/af/blob/4ddba04604ee7b4c4cfc0b64f8ee4d094bb385be/baseroms/jp/checksum.md5>
6. <https://github.com/zeldaret/af/blob/4ddba04604ee7b4c4cfc0b64f8ee4d094bb385be/requirements.txt>
7. <https://github.com/zeldaret/af/blob/4ddba04604ee7b4c4cfc0b64f8ee4d094bb385be/CONTRIBUTING.md>
8. <https://github.com/zeldaret/af/blob/4ddba04604ee7b4c4cfc0b64f8ee4d094bb385be/.github/workflows/ci.yml>
9. <https://github.com/zeldaret/af/blob/4ddba04604ee7b4c4cfc0b64f8ee4d094bb385be/LICENSE>
10. <https://decomp.dev/zeldaret/af>

## 同分区更多条目：游戏

- [BFM-decomp：Brave Fencer Musashi 匹配反编译](https://awesomerea.org/zh/resources/bfm-decomp-case/index.md) · 案例
- [《旷野之息》：Switch 主程序的逐函数一致性反编译](https://awesomerea.org/zh/resources/botw-decomp-case/index.md) · 案例
- [Castlevania: Symphony of the Night：覆盖 PlayStation、PSP 与 Saturn 版本的一致性反编译](https://awesomerea.org/zh/resources/sotn-matching-decomp-case/index.md) · 案例
- [DX-Ball：借助 REA 并由 Codex 完成的函数级重建](https://awesomerea.org/zh/resources/dx-ball-rea-reconstruction-case/index.md) · 案例
- [DX-Ball：重建声音声像计算](https://awesomerea.org/zh/resources/rea-dxball-case/index.md) · 案例
- [Final Fantasy VII：PlayStation 版一致性反编译](https://awesomerea.org/zh/resources/ff7-ps1-matching-decomp-case/index.md) · 案例

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
