Metroid: Zero Mission

Boots, lightly tested

Game Boy Advance · 2004 · Action-adventure · Decompilation

Samus returns to Zebes: explore, find upgrades, and open the way down.

▶ Play with your filesAbout 1 MB. Your own Metroid: Zero Mission ROM, (USA, Australia), sha1 5de8536afe1f0078ee6fe1089f890e8c7aa0a6e8. It is read in your browser and never uploaded.
Controls
Arrow keysmove
XA (jump)
ZB (shoot)
A / SL / R
EnterStart
ShiftSelect
Ppause
Gamepadany standard controller (untested)

About this build

Metroid: Zero Mission built from the metroidret/mzm decompilation, pinned at 43b7fd52. The build is byte-identical to a retail (USA, Australia) cartridge dump, sha1 5de8536afe1f0078ee6fe1089f890e8c7aa0a6e8. The page runs it on a direct WebAssembly build of mGBA's core, with no emulator frontend in between. You supply your own ROM: it is read in your browser with the File API straight into the emulator's memory. The page is static files with no server component, and a Content-Security-Policy stops any script on it reaching another origin.

Built from
the metroidret/mzm decompilation, built to a matching ROM and run on a 663 KB WebAssembly build of mGBA's core
Type
Decompilation
Game files
Your own Metroid: Zero Mission ROM, (USA, Australia), sha1 5de8536afe1f0078ee6fe1089f890e8c7aa0a6e8. It is read in your browser and never uploaded.
Code licence
metroidret/mzm; mGBA core MPL-2.0
Assets
None distributed — the player supplies their own ROM
Source
andrewnakas/mzm-web ↗

What has been tested

Muted headless run: boot through the intro and file select into Brinstar, with the game's own gMainGameMode/gSubGameMode1/gDemoState confirming real gameplay rather than the attract demo, and Samus's own coordinates confirming movement. Cartridge SRAM round-tripped through browser storage across a real page navigation and accepted by the game's own validation, with blank and scrambled control arms. No play-testing beyond the first rooms.

Known limitations

Saves

Save at a save station in the game. The cartridge's 32 KiB SRAM is mirrored into this browser's storage and handed back to the emulator automatically on reload. Clearing site data removes it, along with the cached ROM.

Play next