magical
b95fef681f
no semantic changes, just condensing some repeated code for clarity. |
||
---|---|---|
data | ||
.gitignore | ||
Fusion_Graph.py | ||
Fusion_Items.py | ||
GUI.py | ||
LICENSE | ||
MFOR.py | ||
README.md | ||
Randomizer.py | ||
build.sh | ||
requirements.txt |
README.md
(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️™️
Links
- 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
Project Status
- Decent disassembly
- GUI
- CRC verification
- Logic
- Reconstructing missing parts of code
- Patching
- Generating BPS patches
Usage
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: 6C75479C
Help
- Join the Metroid Fusion speedrunning Discord server
Special Thanks
Decompyle++ has been used for the initial disassembly. R. Bernstein because uncompyle6, decompile3, xdis and python-control-flow kickstarted this project.
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.