Releases: mstan/LegendOfZeldaNESRecomp
Release list
v1.7.0 — Stock (HUD scroll-tear fix)
HUD scroll-tear fix
Fixes a glitch where the bottom row of the status bar (hearts / item counts)
sheared sideways during screen-to-screen scroll transitions. The sprite-0
split that holds the HUD fixed above the scrolling playfield now accounts for the
game's 8×16 sprite, so the split lands at the true HUD boundary and the whole
status bar stays put.
This is the stock build — byte-for-byte the original game, no modifications.
The enhanced Zelda Remastered HD build (supports HD texture packs) is a
separate, experimental download: see v1.7.0-hd.
Supply your own legitimate NTSC-U "Legend of Zelda" PRG0 ROM (CRC32 0x3FE272FB).
See README.txt in the zip.
v1.7.0 — Zelda Remastered HD (EXPERIMENTAL)
Zelda Remastered — HD build (EXPERIMENTAL)
⚠️ Experimental. Recompiled from the "Zelda Remastered" patched ROM, with
support for Mesen-format HD texture packs. Expect a few rough edges.
Includes the HUD scroll-tear fix from v1.7.0. For the unmodified game, use the
stock build (v1.7.0) instead — this HD build bakes in the Remastered
gameplay/text/audio.
Requires:
- The patched ROM — apply the included
ZeldaHD.ips(repohdpatch/) to your
own stock PRG0 ROM to produce the ROM this build expects (CRC320xFD9C577F). - A user-supplied "Zelda Remastered" HD texture pack. Enable it in the
launcher's Settings → HD Texture Pack (point at the folder withhires.txt).
See README.txt in the zip. HD pack & patch are fan works by their respective
authors (Aclectico, KYA, ShadowOne333, Snarfblam, et al.); game © Nintendo.
Non-commercial use only.
v1.6.0 — HD texture packs (experimental, Zelda Remastered)
Experimental HD build for the Zelda: Remastered texture pack.
This is the HD variant — recompiled from a patched ROM (the pack's ZeldaHD.ips, which adds the detailed heart graphics + re-scripted text), so it requires you to patch your own ROM and supply the pack. For plain (non-HD) Zelda, use v1.5.0.
New HD renderer (shared NESRecomp runner):
<condition>+<background>+ conditional<tile>+ hmirror/vmirror — the full Zelda: Remastered pack renders: overworld, dungeons, items, hearts, HUD, sprites.- HUD-overlay masking fixes background bleed under the status bar.
- Launcher Settings → HD Texture Pack panel (enable + folder picker, defaults to
hdpack/).
Setup (details in README_HD.txt):
- Supply your Zelda PRG0 ROM (SHA-1
DAB79C84934F9AA5DB4E7DAD390E5D0C12443FA2). python apply_hd_patch.py --rom "<your zelda.nes>" --ips ZeldaHD.ips --out zelda_hd.nes- Download Zelda: Remastered and drop its
hires.txt+ PNGs intohdpack/. - Launch and select
zelda_hd.nes.
Credits / license: the patch + pack are by Aclectico, KYA, ShadowOne333 (Zelda 1 Redux), Snarfblam, and Sour (Mesen) — freeware, non-commercial, redistributable with attribution (see ZeldaRemasteredReadme.txt). The Legend of Zelda © Nintendo. The ROM and HD textures are not included.
v1.5.0 — Pre-boot GUI launcher
v1.5.0 — Pre-boot GUI launcher
New
- Pre-boot GUI launcher. Pick your Legend of Zelda (USA) ROM from a graphical launcher on startup; the path is remembered for next time. The launcher's SAVE panel manages your battery saves (import / clear).
- Shared SRAM save backend. Your three save slots persist to
saves\next to the exe as.srm, exactly as the cartridge battery would, across launches.
Under the hood
- Built against the nesrecomp framework at master
068cfcf. - Reusable Linux/macOS build scripts added (
tools/build-linux.sh,tools/build-macos.sh).
Install
Download LegendOfZeldaNESRecomp-windows-x64.zip, extract anywhere, and run LegendOfZeldaNESRecomp.exe. No ROM is included — select your legally-obtained Legend of Zelda (USA) ROM on first launch.
Controls: arrow keys = D-Pad, Z = A, X = B, Enter = Start, Tab = Select. F5 turbo, F6 save state, F7 load state. Gamepads supported; all bindings configurable in keybinds.ini.
v1.5.0 — Linux (AppImage)
v1.5.0 — Linux (AppImage)
Native Linux build of the v1.5.0 recompilation, packaged as a self-contained x86_64 AppImage.
Usage
- Download
ZeldaNES-x86_64.AppImageand make it executable:chmod +x ZeldaNES-x86_64.AppImage - Drop your legally-obtained Legend of Zelda (USA)
.nesROM in the same folder — the AppImage auto-detects it. (Or pass the ROM path as an argument.) - Run it.
Notes
- Includes the pre-boot GUI launcher with a real Linux file picker; reads its config beside the
.AppImage. - Steam Deck: reads the built-in gamepad natively (no Steam keyboard remap needed).
- Battery saves land next to the ROM.
- Built against the nesrecomp framework at master
068cfcf.
This Linux build is newer and less battle-tested than the Windows release; please file issues if you hit problems.
v1.4.0 — Sword-beam sound restored
What's new
Sword-beam sound restored (and other sampled SFX)
Link's sword now makes its shot/beam sound again when fired at full
health. The fix is in the recompiler's APU: the DMC channel's DPCM
sample playback path was never implemented (only the direct $4011
DAC load was), so every sampled sound effect was silent.
This release implements the full DMC unit — sample address/length
($4012/$4013), the DMA fetch, and the DPCM delta decoder clocked at
the NTSC rate table. In addition to the sword beam, this restores:
- Boss roars (Digdogger / Manhandla / Patra)
- Bomb explosion and other DPCM-sampled effects
- Ocean/sea ambient sample
Under the hood
- Pinned nesrecomp bumped to
50972f8(apu: implement DMC DPCM sample playback). - Stopped tracking the generated
*_full.c/*_dispatch.cbuild artifacts
(regenerated on every build) to cut repo noise.
Full Changelog: v1.3.0...v1.4.0
ZeldaNES — Linux (AppImage, initial/experimental)
Initial experimental Linux release — x86_64 AppImage.
Bring your own ROM. Place your legally-dumped The Legend of Zelda (.nes) ROM in the same folder as the AppImage; it's auto-detected at launch. No ROM is included.
Run it
chmod +x ZeldaNES-x86_64.AppImage
./ZeldaNES-x86_64.AppImage # add --appimage-extract-and-run if FUSE is unavailable
Steam Deck / controllers — the AppImage reads the controller natively. In Desktop mode, launch through Gaming Mode (or set a Gamepad controller layout) so face buttons aren't remapped to keyboard keys.
Production build — no debug server / tooling. Early, experimental Linux port; expect rough edges. Source: this repo.
v1.3.0
What's new
Fullscreen support
- F11 or Alt+Enter toggles borderless-desktop fullscreen at any time
- Picture preserves NES aspect ratio with integer (pixel-perfect) scaling — no stretching
SDL2 gamepad / controller support
- Xbox, PlayStation/DualSense, Switch Pro, and generic pads work out of the box
- First connected controller is NES port 1, second is port 2
- Hotplug: plug in or unplug at any time without restarting
- Bindings are fully configurable via
keybinds.ini(auto-generated on first run) - Analog stick optionally drives the d-pad (
analog = truein config)
macOS / Linux
- Native Apple Silicon and Intel macOS builds now supported
- Linux also works via the same POSIX build path
Full Changelog: v1.2.0...v1.3.0