Skip to content

Releases

v1.3.1 - cartridge header compatibility

Choose a tag to compare

@mstan mstan released this 19 Oct 18:24
15d532f

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.

Separate USA Rev 1/NTSC and Europe/PAL downloads are retained and tested with legacy/NES 2.0 headers.

Source changes: #5.

v1.3.0 — cycle CPU default

Choose a tag to compare

@mstan mstan released this 05 Oct 06:06

The cycle CPU backend is now the default. The former backend remains available through explicit source-build selection.

Includes separate USA/NTSC and Europe/PAL Windows archives. Both region builds passed the owner playtest.

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 8d800cab034c08ddf13f7ba7a6f76018fef7ca01.

v1.2.0 - USA and EU builds

Choose a tag to compare

@mstan mstan released this 24 Sep 15:55

Dr. Mario v1.2.0 corrects the ROM-region mismatch in earlier builds. The existing recompilation is now the EU variant, and the supplied Japan/USA Rev 1 ROM has its own generated USA variant.

Choose the asset that matches both your platform and ROM:

ROM Windows Linux
Japan/USA Rev 1 (headerless CRC32 DE581355) DrMarioRecomp-usa-windows-x64.zip DrMario-usa-x86_64.AppImage
Europe (headerless CRC32 9735D267) DrMarioRecomp-eu-windows-x64.zip DrMario-eu-x86_64.AppImage

No ROM is included. Extract the Windows ZIP and run DrMarioRecomp.exe, or run the matching Linux AppImage. Select your own matching ROM when prompted. An AppImage also detects a single .nes file placed beside it.

Both variants passed Windows and Linux smoke tests with zero dispatch misses. The USA build additionally completed scripted menu/gameplay and 24,876 deterministic randomized frames with zero dispatch misses. Two-player mode and endings remain unverified. Release archives include the project and dependency licenses.

DrMario — 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 Dr. Mario (.nes) ROM in the same folder as the AppImage; it's auto-detected at launch. No ROM is included.

Run it

chmod +x DrMario-x86_64.AppImage
./DrMario-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.1.0

Choose a tag to compare

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

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

Dr. Mario NES Recompilation v1.0.0

Choose a tag to compare

@mstan mstan released this 28 Mar 17:39

Dr. Mario NES Recompilation v1.0.0

First public release. Static recompilation of Dr. Mario (NES) to native x64.

Features

  • Full title screen, options menu, and 1-player gameplay
  • Configurable keyboard controls via keybinds.ini (Player 1 + Player 2)
  • TOML-based recompiler configuration (game.toml)
  • CHR ROM bank switching (all 4 banks)
  • Save states (F6/F7)
  • Turbo mode (F5)
  • All three music types work (Fever, Chill, Off)

Known Issues

  • Audio plays slightly faster than original hardware. The VBlank timing mechanism (ops counter) doesn't perfectly match NES cycle timing, causing music and sound effects to play at a slightly elevated tempo. This is a framework-level issue being tracked for a future fix.
  • 2-player mode is untested (keyboard controls are mapped but gameplay is unverified)
  • Level completion cutscenes and ending sequences are untested

Quick Start

  1. Download and extract
  2. Run DrMarioRecomp.exe
  3. Select your Dr. Mario (USA) ROM when prompted

ROM Compatibility

ROM CRC32 Status
Dr. Mario (USA) 0x9735D267 ✅ Supported

Built with NESRecomp.