Repository navigation
Releases
v1.2.1 - cartridge header compatibility
Fixes launcher verification succeeding but Play rejecting equivalent original ROM headers. This build uses the shared cartridge correction and regenerated native code. Legacy iNES, NES 2.0 and multi-region containers are accepted for the matching game data and resolved board; board/RAM/console/program-data checks and qualified regional timing remain enforced. No player setting is required.
Validation: 900-frame native/interpreter/header comparisons and real launcher Play pass. Extracted production ZIPs pass dependency and header-boot checks. Existing UI pin, renderer, enhancements and normal player audio defaults are retained. Automated tests use muted output. These checks cover header/startup regression, not a new complete mechanics audit. Native Linux x86_64 recheck passed under Ubuntu/WSL with system SDL2 selected explicitly: released-source game builds, 900-frame legacy/NES 2.0/multi-region native/interpreter comparisons with matching Windows state hashes and pixels, and real SDL/recomp-ui launcher Play under private Xvfb/software OpenGL. Linux GCC/Clang header contracts and source CLI generation/static-library checks also pass. The published Windows archives are unchanged. Default SDL2 discovery is fixed on current engine/game source branches (mstan/nesrecomp#77). For immutable release-tag source, explicitly set SDL2_DIR to the native system SDL2 CMake package, or build the latest source branch for automatic detection.
Extract the entire Windows ZIP and select your own matching original ROM. USA retail inputs are preferred where available. No ROM, player settings, saves, logs or dumps are included. CD Speed and Fast Loading packages are absent. SHA256SUMS.txt covers every archive.
Source changes: #2.
v1.2.0 — cycle CPU default
The cycle CPU backend is now the default. The former backend remains available through explicit source-build selection.
Preserves mouse aiming, crosshair and timed Zapper hits. The owner confirmed both aiming and shots work.
Validation covers the recorded short owner playtests and focused automated checks. Full-game completion and new Linux/macOS runtime qualification are not claimed by this Windows release.
Game archives contain no ROM or personal save data. Select the matching original ROM at first launch. Legacy binary save states require the retained legacy backend; they do not load in cycle mode. Existing cartridge battery/password progress is preserved through the documented storage/import workflow.
Source default: master at 10c558c99b74438044961598013566e66710fc88.
v1.1.0 — Duck Hunt (stack-idiom fix)
Native PC build of Duck Hunt (NES, Zapper) via NESRecomp.
Changes since v1.0.0
- Engine bump to current master, including the "PLA/PLA/RTS = return two levels up" abort-caller stack-idiom fix (the recompiler no longer lets that idiom underflow the 6502 stack pointer). Plus accumulated engine accuracy/renderer improvements.
Install
- Windows x64. Unzip and run
DuckHuntRecomp.exe. No ROM included — select your legally-obtained Duck Hunt (World) ROM on first launch. - Zapper: mouse mode is enabled — aim with the mouse, left-click to shoot.
- Controls rebindable in
keybinds.ini; F5 turbo, F6/F7 save/load state, F11/Alt+Enter fullscreen.
Duck Hunt NES Recomp v1.0.0
Duck Hunt — Static Recompilation for PC
First release. Native PC port of Duck Hunt (NES) via static recompilation.
Highlights
- Mouse-as-Zapper — point and click to shoot, with on-screen crosshair
- Full two-phase Zapper light detection (anti-cheat + hit detection), matching real hardware behavior
- All three game modes selectable (Game A / B / C)
Controls
- Mouse — aim and left-click to fire
- Tab — Select (cycle game modes on title screen)
- Enter — Start
- Arrow keys — D-Pad
- Z / X — A / B buttons
Requirements
- Windows x64
Duck Hunt (World).nesROM placed in the same directory as the executable
Known Limitations
- Minor title screen color issues in lower half
- Top row tile corruption during gameplay
- Basic audio (APU work-in-progress)