Repository navigation
Releases
v0.1.3 - 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.
Correcting the previously assumed RAM chip changes memory/hardware hashes; CPU execution and final pixels match the previous release.
Source changes: #4.
v0.1.2 - Windows runtime packaging fix
Fix the Windows x64 package's missing Microsoft C++ runtime DLLs. The ZIP now includes MSVCP140.dll, VCRUNTIME140.dll and VCRUNTIME140_1.dll, so these dependencies no longer require a separate VC redistributable installation.
This is a packaging-only patch. The game executable and every other existing payload file are byte-for-byte identical to v0.1.1; only the three official x64 runtime DLLs and WINDOWS-RUNTIME.md are added. Existing renderers, mod defaults, settings, saves and normal audio defaults are preserved. This patch does not add automatic crash diagnostics to this game.
Validated from clean extractions: first launcher launch and real Play-to-game startup; loaded module paths resolve to the bundled DLLs; PE runtime dependency closure; all 900 frame hashes and the final image from a short startup/game route match the previous package. Kirby and Lost Levels custom scripts also reject missing runtime files and package the required DLLs. This is startup/package validation, not a fresh full-game content audit.
No game ROM, BIOS, player configuration, saves or generated diagnostic files are included. Keep using the same matching original game image as v0.1.1.
Source packaging changes: #3. Source commit: e578190af03945ccb95958e4441a4373997cfc7a.
Preserved executable: v0.1.1 source commit a756caecbff60f00943e79167fbe10eb925699cf. WINDOWS-RUNTIME.md records the prior ZIP identity and reproduction steps.
v0.1.1 — Mega Man 3 coverage update
Observed USA robot-master, Doc Robot, Break Man, fortress and ending paths now receive native coverage.
Original loaders and assisted encounters preserve native/interpreter hashes, pictures and complete states after harvesting. Fortress entry and the assisted original ending are covered; all fortress combat victories are not claimed.
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: a756caecbff60f00943e79167fbe10eb925699cf. Source changes: #1.
Windows runtime packaging update: v0.1.2 includes the VC++ runtime DLLs missing from this older ZIP. The game executable is unchanged.
v0.1.0 — cycle CPU default
The cycle CPU backend is now the default. The former backend remains available through explicit source-build selection.
Preserves the game enhancements and the accepted slowdown-reduction option. The owner confirmed the enemy-heavy Magnet Man ladder-area slowdown was resolved.
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 303681c7ccca35f6637e3242241186527be8eb5a.
Megaman3 — Linux (AppImage, initial/experimental)
Initial experimental Linux release — x86_64 AppImage.
Bring your own ROM. Place your legally-dumped Mega Man 3 (.nes) ROM in the same folder as the AppImage; it's auto-detected at launch. No ROM is included.
Run it
chmod +x Megaman3-x86_64.AppImage
./Megaman3-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.
v0.0.1 — Initial WIP Release
Mega Man 3 NES Static Recompilation — v0.0.1
First public release. This is a work in progress — expect gaps and rough edges.
What works
- Title screen with animated logo
- Main menu (GAME START / PASS WORD selection)
- Robot master stage select screen and navigation
- Loading into stages with background scrolling and basic enemies
- Player movement, jumping, and the Mega Buster
Known limitations
- Boss fights are untested and likely to stall or softlock
- Special weapons are untested
- Passwords are untested
- Visual elements may have minor glitches or missing sprites
- Audio is basic (APU registers captured, full mixing is WIP)
Building
See README for build instructions. Requires Visual Studio 2022 + CMake 3.20+. You must supply your own Mega Man 3 (USA) ROM.
macOS (Apple Silicon) build — Megaman3NESRecomp-macos-arm64.zip
Native arm64 .app (SDL2 bundled, ad-hoc signed). ROM not included.
Status: Largely untested / experimental. Please report any bugs by filing an issue on the repository.