Support the C-first campaign: globalasm now detects whether each GLOBAL_ASM is behind a NON_MATCHING guard; ps-status --c-coverage reports guarded vs bare counts (the "bare -> 0" metric) with --list/--json; ps-fdiff --file summarizes every function in a source object, ranked closest-first. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Pokemon Stadium (US)
A WIP decomp of Pokemon Stadium (US).
It builds the following ROMs:
- pokestadium.z64:
md5: ed1378bc12115f71209a77844965ba50
Note: To use this repository, you must already have a rom for the game.
Prerequisites
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 binutils-mips-linux-gnu python3 python3-pip python3-venv
Please also ensure that the Python version installed is >3.7.
The build process has a few python packages required that are located in requirements.txt.
To install them simply run in a terminal:
python3 -m pip install -r requirements.txt
To use
- Place the US Pokemon Stadium 1.0 rom into the repository's "/baseroms/us/" folder as "baserom.z64".
- Set up tools and extract the rom:
make init - Re-assemble the rom:
make
Matching tools (Rust)
A Rust workspace under tools/rust/ provides the tooling for the
byte-for-byte matching effort. It is built automatically by make setup
(make -C tools) when cargo is available; you can also build it directly:
cargo build --release --manifest-path tools/rust/Cargo.toml
The binaries land in tools/rust/target/release/:
-
ps-status— status of functions still pending decompilation. Runs build-free (no ROM needed), scanning#pragma GLOBAL_ASMinsrc/:./tools/rust/target/release/ps-status # summary + per-file counts ./tools/rust/target/release/ps-status --list # every function + address ./tools/rust/target/release/ps-status --json # machine-readableAfter
makeit also runs build-aware (byte progress per folder, likeprogress.py) whenbuild/pokestadium-us.mapexists, or with--build-aware. -
ps-firstdiff— first difference(s) between the built and expected ROM (liketools/first_diff.py). Requiresmake+make diff-init:./tools/rust/target/release/ps-firstdiff -c 5 -
ps-fdiff— non-interactive per-function asm diff of the built ROM vs the baserom (like./diff.py -mwo <func>). Requiresmake:./tools/rust/target/release/ps-fdiff func_80030010
Run any tool with --help for options. The equivalent Python scripts
(progress.py, tools/first_diff.py, diff.py) are kept alongside for now; see
tools/rust/README.md for parity-validation status.
For contacts and other pret projects, see pret.github.io.