The Legend of Zelda

Untested

NES · 1986 · Action-adventure · Decompilation

Explore Hyrule, find the sword, and clear nine dungeons in the original open-world action-adventure.

▶ Play with your filesYou supply your own Legend of Zelda (NES) ROM. It is read in the browser and never uploaded. A byte-exact rebuild additionally requires the USA Rev 0 (PRG0) dump — headerless PRG sha1 a12d74c73a0481599a5d832361d168f4737bbcf6, crc32 3FE272FB; the Rev 1 (PRG1) dump plays fine but will not byte-match.
Controls
Arrow keysmove
XA (sword)
ZB (selected item)
EnterStart
ShiftSelect
Audio is muted by default

About this build

A complete 6502 disassembly of The Legend of Zelda that reassembles to a byte-exact copy of the USA Rev 0 (PRG0) cart — all 131072 PRG bytes, verified with cmp against the dump. Two thirds of the image is rebuilt from checked-in assembly source; the remaining third is lifted from your own ROM at build time and placed back at exactly the right offsets. The browser page runs whatever NES ROM you pick from your own disk; it is read in memory and never uploaded, and no ROM or ROM-derived byte is distributed.

Built from
ca65/ld65 reassembly of the aldonunez 6502 disassembly, played in the browser on EmulatorJS 4.2.3 with the libretro fceumm core
Type
Decompilation
Game files
You supply your own Legend of Zelda (NES) ROM. It is read in the browser and never uploaded. A byte-exact rebuild additionally requires the USA Rev 0 (PRG0) dump — headerless PRG sha1 a12d74c73a0481599a5d832361d168f4737bbcf6, crc32 3FE272FB; the Rev 1 (PRG1) dump plays fine but will not byte-match.
Code licence
The upstream disassembly states no licence (no LICENSE file, no terms in its README). The browser runtime is GPL-3.0 EmulatorJS 4.2.3 with the GPL-2.0 libretro fceumm core; every vendored component is itemised in THIRD-PARTY-NOTICES.txt.
Assets
No game assets are distributed. Nintendo retains all rights to the game data, which stays on your machine.
Source
andrewnakas/zelda1-web ↗

What has been tested

Reassembly is byte-identical to the USA Rev 0 (PRG0) dump — all 131072 PRG bytes and all 131088 file bytes, confirmed by cmp and by sha1. In the browser: boots, 60 fps sustained, name registration, overworld movement, sword cave, Wooden Sword acquired, and battery save verified across a reload by reading the save data back. No dungeon was entered and audio was never enabled.

Last tested 2026-10-05 in Headless Chrome (CDP-driven). Full playthrough: not verified. How games are tested.

Known limitations

Saves

The cart's battery save is kept in this browser's IndexedDB, keyed to your ROM's PRG hash, so two revisions of the cart cannot overwrite each other. Verified to survive a page reload. Clearing site data erases it. There are also explicit "Flush save now" and "Erase battery save" buttons.

Play next