A work-in-progress matching decompilation of the greatest N64 game ever made, Snowboard Kids 2.
This repository does not contain any game assets or assembly whatsoever. An existing copy of the game is required. 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 for any commercial purpose.
Clone this repository, including its submodules:
git clone --recurse-submodules -j8 git@github.com:cdlewis/snowboardkids2-decomp.git
This project has been tested on Ubuntu (x86). Your milege may vary on other systems.
System packages:
- make
- git
- docker
- python3
- pip3
- binutils-mips-linux-gnu
Build tools:
make setupBuild Python dependencies:
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -U -r requirements.txtCopy your big-endian Snowboard Kids 2 rom into the root of the repository. Rename it to snowboardkids2.z64. Then run:
make clean
make extract
makeIf everything works correctly you should see:
build/snowboardkids2.z64: OKIf you're interested in learning more about decompilation and Snowboard Kids 2, the following articles might be of interest:
- Finding Jingle Town: Debugging an N64 Game without Symbols
- The Unexpected Effectiveness of One-Shot Decompilation with Claude
- Using Coding Agents to Decompile Nintendo 64 Games
Contributions are most welcome! Obviously we need help decompiling functions but if you're not comfortable with that there are a variety of other ways you can assist:
- Fix compiler warnings
- Clean up code: you'll see plenty of hastily decopmiled functions that use pointer arithmatic rather than propre struct access. We need help cleaning up these functions.
- Document code: some functions/variables have useful names (rather than func_XXX or D_XXX) but most don't. Some that do are incorrectly named. We need lots of help investigating and documenting what all these functions do.
- Get project builds working on Windows and Mac. Currently the build is only verified as working on Linux which limits who can contribute.
If you have any additional questions, please reach out on Discord (linked in the header). However please note that, since this is a clean room decompilation, we cannot accept contributions based on leaked source code or from those with proprietary knowledge about the game or related subjects.
This project wouldn’t be possible without the collective knowledge, tools, and support of the broader decompilation community. Huge thanks to contributors of other N64 decomp projects, the teams behind decomp.me and decomp.dev, and the incredibly helpful discussions happening on Discord. These resources have been invaluable for solving problems, speeding up setup, and staying motivated throughout the process.
