Windows recompilation of Metroid Fusion (USA) using pinned GBARecomp and recomp-ui. Full-game compatibility is not exhaustively tested. Interpreter fallback remains. Runtime compilation defaults OFF; this is not a fully static/native release. ROM/BIOS files are not distributed.
Download the v0.1.0-preview ZIP, extract into a writable folder, run MetroidFusionRecomp.exe, select your legally obtained MF USA ROM and retail GBA BIOS, then press Play. Valid paths/settings are remembered. No PowerShell, compiler or regeneration is required.
ROM: AMTE, SHA-1 ca33f4348c2c05dd330d37b97e2c5a69531dfe87.
BIOS: 16 KiB, SHA-1 300c20df6731a33952ded8c436f7f186d25d3492.
See baserom.md. Other regions and modified ROMs are unsupported.
Keys: arrows = move; X = A/jump; Z = B/shoot; Enter = Start; Right Shift = Select;
C = L; V = R. Controls are configurable in the launcher.
Saves are in saves/metroid_fusion_usa.sav beside the EXE; preserve settings
and saves when updating. Use --launcher if Skip Launcher was enabled.
The frozen ZIP identity is intended for a separate GitHub Release upload, never a source commit.
Clone the published repository with git clone --recurse-submodules, enter
its directory, and install Git, CMake, Ninja, Python 3, MinGW-w64 GCC and an SDL2
SDK. Set MINGW_ROOT and SDL2_ROOT for your installations; helpers can discover
GCC from PATH. The SDL SDK root contains include/SDL2, lib/libSDL2.dll.a
and bin/SDL2.dll. Supply your private ROM as Metroid Fusion (USA).gba in
this root and set GBA_BIOS to your retail BIOS file.
.\tools\setup-deps.ps1
.\tools\build-generator.ps1 # build the pinned gba_recompile
python .\tools\import-mf-symbols.py
.\tools\regen.ps1 -Bios $env:GBA_BIOS
.\tools\build-host.ps1
.\tools\package-local.ps1Setup initializes pinned desktop framework dependencies, obtains pinned toml++
and clones/verifies the MF reference. Exact commits are in docs/FRAMEWORK_PIN.json
and docs/DECOMP_PIN.json. No shared framework snapshot is required. Relative
SDK/BIOS fallbacks support existing local layouts; use explicit parameters on a
fresh checkout.
Keep private generated/cart and generated/bios locally for incremental builds
and study. They are gitignored, excluded from release ZIPs, and never handwritten
source. Cold cleanup removes build/cache only; it preserves generated, dist,
private files and saves. Play.cmd is a developer convenience; players use the EXE.
tools/make_release.ps1 -Version <new-version> builds, stages and audits a ZIP;
existing versions are preserved. tools/audit-release.py checks package boundaries;
tools/test-release.py runs bounded isolated regressions using copied saves.
Do not recreate the frozen asset for documentation changes.
See MSTAN_STYLE and COMPATIBILITY. Source-metadata symbols are not proof of a byte-matching decomp ELF. No native-decomp implementation is integrated.
Original integration files use MIT; GBARecomp retains PolyForm Noncommercial 1.0.0, so the executable is not entirely MIT-licensed. See LICENSE and THIRD_PARTY_NOTICES. Credits include Matthew Stanley, GBARecomp/recomp-ui, metroidret/mf and YohannDR, SDL2, Dear ImGui and font authors.
Unofficial fan project, unaffiliated with Nintendo. Trademarks belong to their owners; no affiliation or endorsement is claimed. User ROM/BIOS assets are not licensed or distributed here.