(Open) Metroid Fusion Open Randomizer
This is the official unofficial Git repository for the Metroid Fusion Open Randomizer reverse engineering efforts, more casually referred to as MFOR or Fusion rando.
Considering the original repository states that the software is GPL-3.0 licensed, but no source was ever released, we're endeavouring on this (potentially failing) task of making MFOR Open Again️™️
- OpenMFOR repository (This project, in case you are looking at a fork)
- The original MFOR repository on Github
- The original MFOR thread on Metroid Construction
- Decent disassembly
- CRC verification
- Reconstructing missing parts of code
- Generating BPS patches
Beware: stuff doesn't work as it should yet. Prerequisites are PySimpleGUI (and tkinter by proxy) and python-bps-continued. A prerequisites file is available so you can
pip install -r requirements.txt away.
Clone the repository, install prerequisites manually via pip or your favourite package manager,
python MFOR.py. Choose your game options (hover over a given option to see a tooltip explaining it), then click Generate. A popup will ask you to open an unmodified copy of the original game. This is not provided with the randomizer for legal reasons.
The randomizer currently works with only the USA/Australia version of the game. To ensure you have the correct version of the game, the CRC32 checksum should be:
- Join the Metroid Fusion speedrunning Discord server
Kazuto88 for the actual development of the randomizer. Next lines are his special thanks to the people that contributed with the patching necessary to make this a reality:
Much thanks to the folks in the MAGConst Discord for longtime help with Metroid Fusion/general GBA modding.
Thanks to biospark for creating the Fusion level editor MAGE, and nearly all of the documented data on Metroid Fusion that helped make this randomizer a possibility.
Thanks to interdpth for direct code assistance, and for his longtime contributions to the GBAtroid modding scene.
Thanks to everyone who helped with early testing, bug finding, proposed fixes, etc.