decompilation of the metroid fusion "open" randomizer, forked from
Go to file
magical ed0a382cbe add a script for building an executable zip file
2024-02-05 20:24:15 -08:00
data initial commit 2023-10-10 12:13:02 +02:00
.gitignore yo! no more FLIPS? 2023-10-11 12:24:19 +02:00 clean up Fusion_Graph and fix get_path 2024-02-03 03:00:07 -08:00 reinstated credits on the source 2023-10-20 00:41:11 +02:00 fix the GUI 2024-02-05 19:28:00 -08:00
LICENSE initial commit 2023-10-10 12:13:02 +02:00 reinstated credits on the source 2023-10-20 00:41:11 +02:00 update README 2024-02-03 20:22:28 -08:00 close files properly after patching 2024-02-04 10:30:10 -08:00 add a script for building an executable zip file 2024-02-05 20:24:15 -08:00
requirements.txt yo! no more FLIPS? 2023-10-11 12:24:19 +02:00

(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™️

Project Status

  • Decent disassembly
  • GUI
  • CRC verification
  • Logic
  • Reconstructing missing parts of code
  • Patching
  • 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 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


  • 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.