/af

Decompilation of Animal Forest

Primary LanguageCCreative Commons Zero v1.0 UniversalCC0-1.0

Animal Forest Build Status Code jp Progress Discord Channel

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.

Setup

Linux

1. Install build dependencies

The build process has the following package requirements:

  • make
  • git
  • build-essential
  • clang
  • binutils-mips-linux-gnu
  • python3
  • pip3

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

2. Install python dependencies

The build process has a few python packages required that are located in requirements.txt.

To install them simply run in a terminal:

make venv

3. Prepare a base ROM

Copy 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

4. Make and Build the ROM

To start the extraction/build process, run the following command:

make setup
make extract
make
make compress

Note about licensing

The 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-differ
  • tools/asm-processor
  • tools/fado
  • lib/ultralib
  • tools/z64compress