This repository implements a "patcher" for the subset of Metroid Prime versions released for the Nintendo Gamecube. In the simplest sense, it takes a game ISO as input, makes modifications defined by a JSON layout description, and then outputs a new ISO. The output ISO is officially compatible with Dolphin, Nintendont and GC Loader.
This repository contains no intellectual property for Metroid Prime. The only game-specific data present is information regarding the offsets/names of data known to exist on an unmodified copy of the game and custom-made assets. As such, users are required to provide their own legally obtained copy of Metroid Prime to use this patcher.
To give you a taste of what's implemented, here are some highlighted features which are available via this program:
.exe
) and attaches them to each release.The API is documented thoroughly at randovania.org/randomprime. Though a bit dated, some auxillary documents which may be useful can be found in the /doc/ folder.
Updates to this program are documented as part of the py-randomprime Release Process. The versioning for py-randomprime follows Semantic Versioning. The version number exposed in the standalone application can be ignored.
powerpc-unknown-linux-gnu
as a target, like so: rustup target add --toolchain stable powerpc-unknown-linux-gnu
git clone https://github.com/randovania/randomprime --recursive
cargo build
That should create a standalone executable in ./randomprime/target/debug/randomprime_patcher.exe
.
Occasionally run rustup update
to keep your toolchain version up-to-date.
In order to pass this project's Pull Request requirements, your proposed change must pass the following checks:
cargo fmt --check
cargo clippy -- -D warnings
You can use these commands to fix most issues automatically:
cargo fmt
cargo clippy --fix --allow-dirty
Some helpful resources for those starting out with modding Metroid Prime can be found in the Metroid Prime Fanhacks repository. Furthermore there's: