# Animal Forest: an in-progress matching N64 decompilation

> Rebuilds the Japanese Nintendo 64 release of Animal Forest (Dōbutsu no Mori) from C code reverse-engineered from the ROM, combined with assets and assembly extracted from a user-supplied ROM. Default builds compare the uncompressed and recompressed ROMs with stored MD5 checksums. The README rules out use as a port base or for commercial purposes, and decomp.dev reported 18.52% of code matched at the reviewed commit.

- Type: Case study
- Targets: Game
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-10-19
- Added to the catalog: 2026-10-27
- Original resource: <https://github.com/zeldaret/af>
- Primary source: <https://github.com/zeldaret/af/blob/4ddba04604ee7b4c4cfc0b64f8ee4d094bb385be/README.md>
- Catalog page: <https://awesomerea.org/resources/animal-forest-n64-decomp-case/>
- Record JSON: <https://awesomerea.org/resources/animal-forest-n64-decomp-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/animal-forest-n64-decomp-case/index.md)

## Requirements & limits

- README calls this a work-in-progress decompilation whose codebase could change drastically and warns that some parts of the ROM may not yet be shiftable. The only configured version is jp, the Japanese N64 release, in both the Makefile and CI. The output is an N64 ROM; README states that the project is not a port and that serving as a port base or any commercial use is explicitly a non-goal. The GameCube Animal Crossing decompilation it links to is a separate project.
- Supply your own Japanese Animal Forest ROM as the base ROM in baseroms/jp; .z64, .n64 and .v64 files are accepted. make setup decompresses it and checks the result against baseroms/jp/checksum.md5, then make extract uses splat to derive assembly and assets locally. The reviewed tree holds no ROM, graphics or binary asset files; game-derived content is limited to tables such as the DMA file table header and small address tables under src/objects.
- README documents Linux, preferably Debian or Ubuntu, with make, Git, build-essential, clang, MIPS binutils and Python 3 with pip and venv; make venv installs pinned splat64 0.24.0 plus spimdisasm and mapfile-parser. The tools Makefile downloads static recompilations of IDO 5.3 and 7.1 from decompals/ido-static-recomp v1.2 and pigment64 0.6.3, and the build compiles libultra from the bundled ultralib subrepo. NON_MATCHING builds turn the checksum comparison off.
- With COMPARE at its default, make rom and make compress check both ROMs against the stored MD5 values. Functions not yet decompiled remain extracted assembly included through GLOBAL_ASM. CI builds jp in a private container that supplies the base ROM and compiler archives, compares warning counts and uploads an objdiff-format report. decomp.dev's report for the pinned commit lists 465,796 of 2,515,744 code bytes (18.52%) and 2,998 of 14,415 functions matched, with no unit complete.
- README licenses src and include, as far as possible, and other files that state no other license under CC0-1.0, excluding subrepos such as asm-differ, asm-processor, fado and ultralib. Nintendo's game, ROM contents and the downloaded compilers keep their own rights.

## Primary sources

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>

## More in Games

- [BFM-decomp: Brave Fencer Musashi matching decompilation](https://awesomerea.org/resources/bfm-decomp-case/index.md) · Case study
- [Breath of the Wild: per-function matching decompilation of the Switch executable](https://awesomerea.org/resources/botw-decomp-case/index.md) · Case study
- [Castlevania: Symphony of the Night: matching decompilation across PlayStation, PSP and Saturn builds](https://awesomerea.org/resources/sotn-matching-decomp-case/index.md) · Case study
- [DX-Ball: an REA-guided function-level reconstruction with Codex](https://awesomerea.org/resources/dx-ball-rea-reconstruction-case/index.md) · Case study
- [DX-Ball: reconstruct sound panning](https://awesomerea.org/resources/rea-dxball-case/index.md) · Case study
- [Final Fantasy VII: a matching PlayStation decompilation](https://awesomerea.org/resources/ff7-ps1-matching-decomp-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
