Body Harvest Decompilation banner
jaytheham jaytheham

Body Harvest Decompilation

Git community

Description

[View progress](https://jaytheham.github.io/body-harvest-decompilation/)

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

Body Harvest N64 Decompilation

[View progress](https://jaytheham.github.io/body-harvest-decompilation/)

Help is welcome! Message me on discord `jaytheham` or @gmail.com

[Help match existing scratches on decomp.me](https://decomp.me/preset/211)

A decompilation to C of the N64 game Body Harvest.

Building

The instructions below assume that you will be using `Ubuntu 22.04`; either natively, via [WSL2](https://docs.microsoft.com/en-us/windows/wsl/install-win10), or via [Docker](https://docs.docker.com/get-docker/). Please check the [packages.txt](packages.txt) and [requirements.txt](requirements.txt) for the prerequisite Linux and Python packages respectively.

Natively

Clone the repository; note the `--recursive` flag to fetch submodules at the same time:

git clone --recursive https://github.com/jaytheham/body-harvest-decompilation.git

Navigate into the freshly cloned repo

cd body-harvest-decompilation

Place the **US** Body Harvest ROM in the root of this repository, name it `baserom.us.z64`, and then run the first `make` command to extract the ROM:

make extract

Now build the ROM:

make --jobs

If you did everything correctly, you'll be greeted with the following:

build/bh.us.z64: OK

Note: Currently need to change the references to func_802D4CD0 in loader.s to func_802D4CD0_18D7E0 Not sure why this one file is problematic. Should be done automatically during extract.

Docker

Clone this repository, place the `baserom.us.z64` at its root, and then build the Docker image:

docker build --no-cache -t bh-local .

Run the docker image with:

docker run --name bh-container --rm -ti -v "${PWD}:/bh" bh-local

From here you can run the `make extract` and `make --jobs` commands.

Building `EU` Version

Place `baserom.eu.z64` in the root of the repository, and suffix each `make` command with `VERSION=eu`. Note that whilst this will build the EU ROM, no effort has been made to decompil