Open Prime Rando
Open Source randomizer patcher for Prime 2 and eventually 3.
Running the patcher standalone
After cloning the repository, install the project and its extras:
uv sync --all-groups --all-extras
The command line entrypoint is open-prime-rando. The currently supported game is echoes, and the
randomizer subcommand expects a configuration JSON plus input and output ISO paths:
uv run open-prime-rando echoes \
--input-iso /path/to/prime2.iso \
--output-iso /path/to/output.iso \
randomizer \
--input-json /path/to/config.json
Use uv run open-prime-rando echoes --help to see the available arguments for the Echoes patcher.
Updating hash files
Some tests compare the output of the patcher against pre-recorded hash files. When a code change intentionally alters the output, these files need to be regenerated.
Setup
The tests require ISO files for Metroid Prime 2: Echoes. Create a .env file in the repository root:
PRIME2_ISO=/path/to/prime2_ntsc.iso
PRIME2_PAL_ISO=/path/to/prime2_pal.iso
These can also be set as regular environment variables instead of using
.env.
Running locally
uv run pytest --update-hashes -n 2
This runs only the hash-comparison tests and writes the new hashes in place of the old ones.
Via GitHub (pull requests)
Anyone with write access to the repository can comment /update-hashes on a pull request. A workflow will run the tests on the self-hosted runner, commit the updated files, and push them to the PR branch.
Credits
Echoes
Banner image created by rekameohs.
Metadata
Release files for open-prime-rando 0.20.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| open_prime_rando-0.20.1.tar.gz | 8.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| open_prime_rando-0.20.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.2 MB
Release files / open_prime_rando-0.20.1.tar.gz
| Download URL | open_prime_rando-0.20.1.tar.gz |
|---|---|
| Size | 8.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0548b86f9d8982307b81401d1d349af451123e956b9fd892b00922dbead0d41e
|
|
BLAKE2b-256 checksum How to use checksums |
2fa8940482e94dc2b9d319e118a48c3fd638e322bb00f60c492bb2e0b8feefaa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 22, 2026.
Transparency logRelease files / open_prime_rando-0.20.1-py3-none-any.whl
| Download URL | open_prime_rando-0.20.1-py3-none-any.whl |
|---|---|
| Size | 3.1 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1e9777854c3700be2e27ccfa422eafc086ea5a1f940a693e2f18997cac0239d7
|
|
BLAKE2b-256 checksum How to use checksums |
450df0d3b07214d2510bae8c337e0c0e567f33bb3eb6cc9d707765698b7d74b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 22, 2026.
Transparency log