Super Metroid

Untested

SNES · 1994 · Action-adventure · Engine recreation

Hunt the last Metroid through the caverns of planet Zebes.

▶ Play with your filesAbout 3 MB. You supply your own Super Metroid ROM, 3145728 bytes, sha1 da957f0d63d14cb441d215462904c4fa8519c613 (Japan/USA). It is read in the tab and never uploaded.
Controls
Arrow keysmove
Ajump (SNES A)
Zdash (SNES B)
Sshoot (SNES X)
Xitem cancel (SNES Y)
C / Vaim down / up (L / R)
EnterStart, 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

Saves

The game's battery save is stored in this browser via IndexedDB and survives a reload. Clearing site data erases it.

Play next