This branch exists to make the asmlift decompiler benchmark reproducible. It is the upstream zeldaret/af tree at the exact commit the benchmark's functions were vendored from, plus a minimal integration commit:
decomp.yaml— points asmlift at the project's symbol source (tools.asmlift.elf)tools/asmlift-sidecar.sh+ a make-generated sidecar TU (build/asmlift-ctx.c, header list curated in theMakefile) — build a DWARF types-sidecar (declaration shapes for the project's globals) and merge it into a copy of the built ELF (make asmlift-elf); the real build outputs are untouched- nothing else differs from upstream
To reproduce the benchmark rows: build the project as usual (the ROM must match), run
make asmlift-elf, then follow the per-function scripts published in the benchmark
report.
This is a work-in-progress decompilation project for the Nintendo 64 game Animal Forest, also known as どうぶつの森 (Doubutsu no Mori). There is a decompilation project for the GameCube versions (Animal Crossing, etc.) here.
- WARNING! -
This repository is a work in progress, and while it can be used to make certain changes, it's
still constantly evolving. If you wish to use it for modding purposes in its current state,
please be aware that the codebase could drastically change at any time. Also note that some
parts of the ROM may not be 'shiftable' yet, so modifying them could currently be difficult.Note: this project is not a port, to PC or any other platform. It takes a Nintendo 64 rom, extracts assets from it, and combines them with C code we reverse-engineered from the rom, to produce an identical rom. It is explicitly a non-goal for this project to be used as basis for a port, or to be used for any commercial purpose.
The build process has the following package requirements:
- make
- git
- build-essential
- clang
- binutils-mips-linux-gnu
- python3
- python3-pip
- python3-venv
Under Debian / Ubuntu (which we recommend using), you can install them with the following commands:
sudo apt update
sudo apt install make git build-essential clang binutils-mips-linux-gnu python3 python3-pip python3-venvThe build process has a few python packages required that are located in requirements.txt.
To install them simply run in a terminal:
make venvCopy your ROM to inside baseroms/ in the version folder corresponding to your ROM's version, and rename the file of the baserom to baserom.z64. ex: baseroms/jp/baserom.z64
To start the extraction/build process, run the following command:
make setup
make extract
make
make compressThe contents of the src and include folders are, as far as possible, licensed under CC0.
Other folders and files in the repository are CC0 unless they specify another license.
The licensing of this repository does not cover subrepos, namely:
tools/asm-differtools/asm-processortools/fadolib/ultralibtools/z64compress