Repository navigation
Releases
v1.12.5
Owner approved all five NES title builds after the final combined technical gate. This release includes the qualified native execution/presentation optimization package. Exact scoped measurements and limitations: https://github.com/mstan/nesrecomp/blob/886692b/docs/validation/2026-10-31-final-campaign-handoff.md
Updated nesrecomp pin, qualified per-title optimization policy and verified Windows runtime dependencies. Final standard-game comparisons are neutral/inconclusive; gains from separate scoped workloads are not attributed to every title.
SHA256 (SuperMarioBrosRecomp-1.12.5-windows-x64.zip): 7519c518703ec61632e4ebc79aac891f8ed70fa1cd3b2cdfe038a4a1bf7365c4. No ROM is included; use your own supported dump. Native saves/settings are preserved.
Packaging-only followup89e4d5d adds full Game/NESRecomp/SDL2/ImGui license notices. Qualified executable/runtime are unchanged; release tag retains the approved runtime source.
Super Mario Bros. 1.12.4
Updated to NESRecomp 0.4.3 at 721c68c313e729710203f6825e9bcb9042eb5bcc. This Windows x64 build retains the qualified native PPU/APU services and packed PPU path. The matched stock workload has a modest 2.74% median CPU reduction.
Performance figures describe five alternating 1,200-frame gameplay pairs with independent pre/post baseline controls on the same host, SDL software rendering and emulated/mixed/queued audio through dummy output. Expanded custom-mode timing is unverified; no every-mode performance claim.
All 124 generated C units across the release suite match the qualified generator output. This exact shipping executable passes 720-frame old/new hardware, PCM, picture and current-build save/load replay comparisons, in addition to the earlier full 13-profile feature gate and owner visual approval. Native in-game saves remain separate from disposable build-specific execution snapshots.
One archive contains the game, required runtime libraries and optional mod catalog. No ROM, owner settings or saves are included.
Full validation and measured scope.
Title commit: 45f95754f8ad6e04fc39966505c94af9783bd787.
v1.12.3 - accept equivalent World ROM headers
Fixes "ROM verified" in the launcher followed by "ROM cartridge metadata differs from this build" on Play when using the modern No-Intro Super Mario Bros. (World) file.
Accepts both the NES 2.0 World file (CRC32 393A432F, SHA-1 33d23c2f2cfa4c9efec87f7bc1321ce3ce6c89bd) and older iNES file (CRC32 3337EC46, SHA-1 ea343f4e445a9050d4b4fbac2c77d0693b1d0922). Their PRG+CHR game data is identical: CRC32 D445F698. The new build uses the modern World header and USA-compatible NTSC profile. No ROM editing is required.
The shared runtime accepts equivalent header encodings while retaining cartridge wiring/RAM/timing and program-data checks. No player toggle is required. Existing renderer and optional enhancement defaults, automatic diagnostics, bundled Microsoft C++ runtimes and normal audio remain enabled as before.
Validation: all three tested header variants match previous-release and interpreter hashes/picture over 900 gameplay frames; real launcher Play/render/audio startup passes with old and modern World files; wrong mapper, mirroring, RAM, PAL-only timing, console and altered program bytes remain rejected. Windows GCC/MSVC contracts, extracted ZIP dependencies, matching retained symbols and both packaged header boots pass. 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, run SuperMarioBrosRecomp.exe and select your own supported World ROM. No ROM, player settings, saves, logs or dumps are included. SHA256SUMS.txt covers the archive. The archive contains neither CD Speed nor Fast Loading packages.
Changes: #12 and mstan/nesrecomp#75.
v1.12.2 - Super Mario Bros. startup diagnostics
Windows startup diagnostics are now automatic, starting before the launcher opens. After reproducing a failure, send the diagnostics folder beside the executable, including the timestamped .log and matching .dmp if created. Read-only installations fall back to %LOCALAPPDATA%\NESRecomp\diagnostics. Nothing uploads automatically.
If the executable cannot start at all, run Collect-Diagnostics.cmd from the extracted folder and send its diagnostics output. This also records loader exit codes, GPU driver details and stdout/stderr before the game can create its own log. See DIAGNOSTICS.md in the ZIP.
Fixed packaging: include the required Microsoft C++ runtime DLLs. The previous Windows ZIP relied on the VC redistributable already being installed; missing runtimes can prevent startup before the launcher.
Validation: clean-extraction launcher and real Play-to-game startup; exact previous-release and interpreter hashes/picture over a 900-frame gameplay route; runtime dependency inventory; matching retained crash-analysis symbols; missing-ROM logging; actual pre-main DLL-loader failure collection; LOCALAPPDATA fallback. Windows crash-handler drills include access violation, abort, stack overflow, and a fault before launcher initialization. The reporter's specific crash was not reproduced on this host.
Windows x64, USA/shared NTSC ROM required. No ROM, player settings/saves or generated diagnostic files are included. Normal audio defaults and existing renderer/mod defaults are retained.
Source: 33aaaa819cc91f67a04395837dd3cf4439d6c013. Changes: #11.
v1.12.1 — Super Mario Bros. coverage update
Observed USA/shared NTSC paths receive native coverage. This package includes the current widescreen scroll-phase correction and Windows x64 HLE renderer default.
Fresh HLE startup and all 32 original area loaders/assisted exits pass exact native/interpreter hashes, pictures and full states in 32:9, including the actual 8-4 ending. Exit positioning and player form/lives are assisted; obstacle traversal and Bowser combat victories are separate. LLE cycle states require an LLE build.
Windows x64. Matching North American/shared NTSC retail ROM required; no ROM is included. Extracted production package launcher/settings and representative gameplay replays pass. Audio is enabled at normal volume by default; optional enhancements retain their existing defaults. ZIPs exclude ROMs, BIOS files, saves, settings and debug artifacts.
Source: 94febc59debbdc5485bbb25353a79406a7612c15. Source changes: #10.
v1.12.0 — cycle CPU default
The cycle CPU backend is now the default. The former backend remains available through explicit source-build selection.
Preserves local two-to-four player co-op, adaptive widescreen, voxel views, character replacements and modern HD Mods. Corrected Captain Falcon, Pikachu and HD previews passed the owner playtest. Mario host and Luigi guest cycle online previews also passed. Focused rollback and LAN launch/return/rematch checks passed. WAN, separate-machine and macOS netplay qualification are outside these checks. Includes standard default-off Mods and a separate 16:9 widescreen preset.
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 c647c1c7966d375485ea1805d2dac31615fdcc1f.
SMB v1.12.0-rc1 - Windows co-op rollback netplay playtest
Windows x64 playtest build for Super Mario Bros. simultaneous co-op over rollback netplay, with two to four players and spectators online.
Download the ZIP below, extract it, and send the same ZIP to everyone playing. Each player supplies their own Super Mario Bros. (World) ROM (PRG+CHR CRC32 D445F698). Windows needs the Microsoft Visual C++ x64 runtime, as with previous builds.
- Start the executable and select your ROM.
- The host enables Mods > Gameplay > Simultaneous Co-op and selects two, three or four players. Co-op uses the shared 4:3 camera; it excludes widescreen and character-replacement mods.
- Open Netplay > Online Netplay, create/join the same room, assign seats and start. Seats 1–4 are Mario, Luigi, Wario and Waluigi. Each participant uses their player-1 controller bindings for their assigned seat.
The host's co-op settings are synchronized for the session. Quickstates, turbo and input scripts are unavailable during online play. Online rooms support up to four players; LAN / Direct IP currently supports two.
Validation: built with MSVC 19.41, netplay/rollback enabled and developer tracing disabled. A 300-frame headless startup check passed with zero dispatch misses; the standard release packager's inventory and archive checks passed. Broader Linux QA is documented in the merged engine PR #24. Internet multiplayer playtesting is still pending; this is a prerelease for that test.
Source: game merge e6445d0; engine 44e1476 (included in engine merge 0c50497); recomp-net 588059c; recomp-ui b9ef2f5. No ROMs or saves are included.
v1.11.0 - Simultaneous co-op
Simultaneous local co-op
Play Super Mario Bros. with 2, 3, or 4 players at once. Enable Simultaneous Co-op in Mods > Gameplay, choose the player count, and assign each player's keyboard or gamepad in Controls.
- Fixed roster: Mario, Luigi, Wario, and Waluigi. Wario and Waluigi use recolored Mario sprites and the same movement.
- Shared 4:3 camera, resources, and team lives. Players do not block one another. Ally-kicked shells can hurt teammates; fireballs cannot.
- A team attempt ends when everyone dies. There is no respawn during an attempt; fallen players return at the next level or team retry.
- Co-op is disabled by default and is mutually exclusive with widescreen, Voxel 3D, and every character replacement mod. Enabling it switches off conflicting selections.
- Local play only; this release does not add online co-op.
Fixes and other changes
- Fixed P3/P4 control binding, capture, and reset, including saved bindings reaching the game from the Linux AppImage launcher.
- Fixed the long Windows launch delay caused by redirected logging.
- Improved the co-op title menu, character colors, and camera transitions, including when only one player remains alive.
- Updated the optional Sonic replacement's movement, collisions, rings/shields, and original sound playback. Sonic remains separate from co-op and requires a verified owner-supplied ROM.
- Packages now include the Sonic audio library's attribution and license notice.
Downloads
| Download | Initial setting |
|---|---|
SuperMarioBrosRecomp-windows-x64.zip |
Stock; enable co-op or other mods in Mods |
SuperMarioBrosRecomp-widescreen-windows-x64.zip |
Widescreen preset; enabling co-op switches to 4:3 |
SuperMarioBrosRecomp-linux-1.11.0-x86_64.AppImage |
Stock; enable co-op or other mods in Mods |
SHA256SUMS.txt contains checksums for all three downloads. No ROMs, saves, or derived owner-ROM assets are included.
Validation includes packaged 2/3/4-player activation and saved settings on both platforms, actual launcher control capture/restart, the co-op rules and camera checks, and all 32 native level-exit fixtures. The final stock packages preserve all 120 reference route frame hashes; Linux stock and widescreen runs match the corresponding Windows hashes and screenshots. This is automated coverage, not a complete four-person campaign playthrough.
v1.10.0 - Widescreen camera anchoring
Widescreen now anchors the camera at the start and end of an area, reducing empty space around the stage. Mario can stand near either edge of the widened screen. Small fixed rooms, including pipe intros and individual underground bonus rooms, stay centered.
- Camera: Anchor at area edges is the default within Widescreen (Experimental) in Mods.
- Keep native view centered restores the previous camera presentation.
- Extended enemy loading follows the visible area. Both enemy movement policies remain available.
- Stock play retains its original renderer and game logic. Widescreen stays disabled in the standard packages.
| Download | Initial setting |
|---|---|
SuperMarioBrosRecomp-windows-x64.zip |
Stock; enable widescreen in Mods |
SuperMarioBrosRecomp-widescreen-windows-x64.zip |
Widescreen 16:9, edge-anchored camera, enemies move on load |
SuperMarioBrosRecomp-linux-1.10.0-x86_64.AppImage |
Stock; enable widescreen in Mods |
SHA256SUMS.txt contains checksums for all three downloads. No ROMs, saves, or derived owner-ROM assets are included.
Experimental widescreen savestates from earlier builds are incompatible with the updated world-cache format. Special objects and linked balance platforms still have native limits; this update does not expand those systems. See WIDESCREEN.md for details.
Validation covers stock parity, camera placement and native pixels at 16:9/21:9/32:9, live Fit resizing, saved Mods choices, fixed rooms, goal flags, enemy movement, and deterministic save/load. Clean Windows packages retain all 120 stock route frame hashes. Linux AppImage stock and widescreen runs match all 120 corresponding Windows hashes and both screenshots, with zero dispatch misses. The owner approved the 32:9 preview.
v1.9.0 - Experimental adaptive widescreen
This release replaces SMB's old widescreen implementation with a custom renderer and extended level cache. The option is labeled Widescreen (Experimental) in the launcher's Mods screen.
- Adaptive Fit window, 16:9, 21:9, and 32:9, with centered or edge-aligned HUD.
- Ordinary enemies, Piranha Plants, and independent moving platforms load across the widened view.
- Choose Preserve original 4:3 activation or Move when loaded in the wide view.
- Fixes boundary color changes, split enemy/platform sprites, misplaced Goomba groups, missing plants, and the goal flag carrying into 1-2.
- Stock play retains the original renderer. Widescreen remains default-off in the standard packages.
Downloads:
| Download | Initial setting |
|---|---|
SuperMarioBrosRecomp-windows-x64.zip |
Stock; enable widescreen in Mods |
SuperMarioBrosRecomp-widescreen-windows-x64.zip |
Widescreen 16:9; enemies move on load |
SuperMarioBrosRecomp-linux-1.9.0-x86_64.AppImage |
Stock; enable widescreen in Mods |
The Windows widescreen preset now uses a portable Mods selection. The old widescreen.ini and arbitrary-margin syntax are retired. SHA256SUMS.txt contains checksums for all three downloads. No game ROMs or derived owner-ROM assets are included.
Experimental limits: linked balance platforms, bosses, frenzy controllers, power-ups, and projectiles still have native limits. Player interactions still use the original five enemy slots. Whole-stage viewing/simulation is not included, and every world has not been validated. Experimental mod savestates may be incompatible with earlier builds. See WIDESCREEN.md for details.
Validation: production Windows packages retain all 120 stock route frame hashes; Linux AppImage stock and widescreen runs match all 120 corresponding Windows hashes and screenshots. Targeted checks cover sprite boundaries, plant visibility, flag transitions, lift movement/riding, activation policies, and deterministic save/load.