Harvest Moon 64 Decompilation
Go to file
2024-07-01 01:55:29 -07:00
include use memcpy 2024-06-08 03:20:34 -07:00
src fix overlay screens struct 2024-07-01 01:15:27 -07:00
tools Labeling improvements for sprites/dialogue stuff 2024-06-27 17:05:09 -07:00
.gitignore Splitting NPC sprites and match another NPC func 2024-06-14 02:36:43 -07:00
.gitmodules fix submodule and update spimdisasm version to next to latest; works with latest splat 2023-08-25 19:26:39 -05:00
Makefile Splitting NPC sprites and match another NPC func 2024-06-14 02:36:43 -07:00
permuter_settings.toml Initial commit 2023-08-20 18:33:32 -05:00
README.md bump percent 2024-06-30 23:50:34 -07:00
symbol_addrs.txt finish levelInteractions.c 2024-06-30 23:47:04 -07:00
undefined_funcs.txt Initial commit 2023-08-20 18:33:32 -05:00
undefined_syms.txt dialogue.c improvements and new match 2024-06-23 13:24:39 -07:00

WIP Harvest Moon 64 Decomp

Setting up

Note: The current workflow has only been tested on WSL.

To build the project, first run git submodule init and ./tools/setup.sh. This will fetch Splat, GCC 2.7.2, and the necessary GCC binutils. Rename your rom baserom.us.z64 (must be in big endian/z64 format) and place it in the root directory before running make setup && make VERBOSE=1.

Progress

Currently, 67% of the 1467 game functions have been decompiled, and all library functions have been identified.

Asset extraction

Sprites are now able to be extracted and converted to png files using the extract.py script in the tools directory (make extract or cd tools && python3 extract.py). Extracted assets will be put in ./assets/sprites folder. A handful of asset locations are already listed in the sprite_addresses.csv file in the tools directory (see next paragraph for formatting).

There are two sprite asset formats used. Both types have a spritesheet at the beginning and an asset lookup table that follows it. Type 1 (used with character and map object sprites) includes a separate spritesheet index at the end of the asset, while type 2 (for smaller sprites, such as overlay icons) has the spritesheet index at the beginning of the actual spritesheet. Thus, the format for sprite_addresses.csv is spritesheet start, asset lookup table start, spritesheet index start, asset end, and asset name for type 1, and spritesheet start, asset lookup table start, asset end, and asset name for type 2.