Skip to content

Releases: mstan/LegendOfZeldaNESRecomp

v1.7.0 — Stock (HUD scroll-tear fix)

Choose a tag to compare

@mstan mstan released this 19 Jun 22:29

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)

Choose a tag to compare

@mstan mstan released this 19 Jun 22:29

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:

  1. The patched ROM — apply the included ZeldaHD.ips (repo hdpatch/) to your
    own stock PRG0 ROM to produce the ROM this build expects (CRC32 0xFD9C577F).
  2. A user-supplied "Zelda Remastered" HD texture pack. Enable it in the
    launcher's Settings → HD Texture Pack (point at the folder with hires.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)

Choose a tag to compare

@mstan mstan released this 19 Jun 19:24

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):

  1. Supply your Zelda PRG0 ROM (SHA-1 DAB79C84934F9AA5DB4E7DAD390E5D0C12443FA2).
  2. python apply_hd_patch.py --rom "<your zelda.nes>" --ips ZeldaHD.ips --out zelda_hd.nes
  3. Download Zelda: Remastered and drop its hires.txt + PNGs into hdpack/.
  4. 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

Choose a tag to compare

@mstan mstan released this 17 Jun 22:38

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)

Pre-release

Choose a tag to compare

@mstan mstan released this 17 Jun 22:38

v1.5.0 — Linux (AppImage)

Native Linux build of the v1.5.0 recompilation, packaged as a self-contained x86_64 AppImage.

Usage

  1. Download ZeldaNES-x86_64.AppImage and make it executable: chmod +x ZeldaNES-x86_64.AppImage
  2. Drop your legally-obtained Legend of Zelda (USA) .nes ROM in the same folder — the AppImage auto-detects it. (Or pass the ROM path as an argument.)
  3. 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

Choose a tag to compare

@mstan mstan released this 03 Jun 00:42

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.c build artifacts
    (regenerated on every build) to cut repo noise.

Full Changelog: v1.3.0...v1.4.0

ZeldaNES — Linux (AppImage, initial/experimental)

Choose a tag to compare

@mstan mstan released this 14 Jun 22:10

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

Choose a tag to compare

@mstan mstan released this 29 May 19:47

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 = true in 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

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 07 Apr 22:05

Full Changelog: v1.1.0...v1.2.0

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 28 Mar 17:39

Full Changelog: v1.0.0...v1.1.0