Super Metroid
UntestedSNES · 1994 · Action-adventure · Engine recreation
Hunt the last Metroid through the caverns of planet Zebes.
Controls
| Arrow keys | move |
| A | jump (SNES A) |
| Z | dash (SNES B) |
| S | shoot (SNES X) |
| X | item cancel (SNES Y) |
| C / V | aim down / up (L / R) |
| Enter | Start, Right Shift — Select |
About this build
The snesrev/sm reimplementation of Super Metroid compiled to WebAssembly. You supply your own ROM; the page checks its SHA-1, keeps it in the tab and runs the C engine against it. Upstream's own frame-by-frame comparison against the original machine code was run first: 15510 frames, zero divergences, with a negative control proving the comparison fires.
- Built from
- snesrev/sm C reimplementation compiled to WebAssembly with Emscripten + Asyncify, rendering through SDL2
- Type
- Engine recreation
- Game files
- You supply your own Super Metroid ROM, 3145728 bytes, sha1 da957f0d63d14cb441d215462904c4fa8519c613 (Japan/USA). It is read in the tab and never uploaded.
- Code licence
- See snesrev/sm
- Assets
- None distributed; the game data is read from your own ROM in your browser
- Source
- andrewnakas/supermetroid-web ↗
What has been tested
New file started, the full opening cinematic cleared, and Samus walked, jumped and fired under scripted control in main gameplay on Ceres (game_state 0x08, loading_game_state 0x1F, area 0x06, room 0xDF45 — explicitly not the 0x2A attract demo), muted. The battery save survives a page reload. 15510 frames were co-simulated against the original machine code natively with zero divergences, plus a negative control. Nothing past the first Ceres room was played; audio untested.
Last tested 2026-10-05 in Chrome 151 headless (SwiftShader). Full playthrough: not verified. How games are tested.
Known limitations
- Upstream calls the port an early version. 15510 frames were compared against the original machine code with no divergence, but nothing past the first room of Ceres was played, so later areas are unverified here.
- Audio is off by default and has not been tested; ?audio=1 enables it at your own risk.
- Verified in Chrome only. Keyboard only: no gamepad or touch support yet.
- A save station was never reached, so a real saved game has not been round-tripped; only the battery-save region the game writes on boot and file selection.
Saves
The game's battery save is stored in this browser via IndexedDB and survives a reload. Clearing site data erases it.
Play next
- Game Boy Color · 1998The Legend of Zelda: Link's Awakening DX The Legend of Zelda: Link's Awakening DX ▶ Play free
-
Metroid: Zero Mission ▶ Play free - Game Boy Color · 2001The Legend of Zelda: Oracle of Ages The Legend of Zelda: Oracle of Ages ▶ Play free
- Game Boy Color · 2001The Legend of Zelda: Oracle of Seasons The Legend of Zelda: Oracle of Seasons ▶ Play free