Case study

Mega Man X Recompiled: a snesrecomp static recompilation

Statically translates the 65816 CPU code of the SNES Mega Man X (USA Rev 1) to C with the snesrecomp framework; the PPU, audio, DMA and other hardware run in the framework’s runtime, and a LakeSnes-derived interpreter executes whatever the static pass cannot prove. The C is generated locally from the user’s ROM, with function names imported from community DiztinGUIsh annotations. Playable Zero, co-op and rollback netplay, X2/X3 boss weapons and adaptive widescreen are layered on top, using assets extracted locally from the user’s own sequel ROMs.

Requirements & limits

  • Reviewed at the main commit of release v2.2.9-alpha (2026-10-18), which offers a Windows ZIP and a Linux AppImage. The snesrecomp README lists the game as fully playable, and this README says the adaptive widescreen renderer was playtested through the ending on Windows. Execution is interpreter-first: compiled bodies replace only code the analysis proves, the rest stays interpreted, and Rockman X (Japan v1.1) is a separate variant that keeps its original view.
  • Supply your own Mega Man X (USA) Rev 1 ROM as .sfc or .smc, headered or not. Zero, co-op and the X3 weapons also need the user’s Mega Man X3 USA ROM, and the X2 weapons the Mega Man X2 USA ROM; their assets are extracted on the user’s machine. README states that ROMs, extracted assets and the generated src/gen C are neither committed nor in the downloads; the Saber Zero sprites and sounds from the Zashiko Mod are included with permission for non-commercial use.
  • Source builds clone the snesrecomp, recomp-ui and dizProjects submodules, stage the ROM and run tools/regen.sh, which emits per-bank C from recomp/bank*.cfg. CMake with Ninja and SDL3, or SDL2 as a fallback, is the maintained build: Windows 10+ through MSYS2 mingw64 with Python 3.9+ and rustup, Linux with gcc or clang, and macOS on Apple Silicon or Intel.
  • CI compiles ROM-free setup hosts and runs the ROM-free CTest regressions; ROM-backed state tests and a replay suite that stops at the first WRAM, co-op, camera or VRAM mismatch need the user’s ROMs. A dated coverage checkpoint reports two 12,000-frame routes matching the control build’s CPU and WRAM traces and final snapshots, without comparing audio, and the v2.2.9 release notes report Windows and Linux checks of all 28 Boss Rush pairs. This collection ran none of them.
  • The project and the pinned snesrecomp framework are under the PolyForm Noncommercial License 1.0.0; the interpreter is LakeSnes-derived (MIT), vendored dependencies keep their own licenses, and Capcom keeps its game rights. README presents the project as part of R.A.I.D. (Retro AI Development), a Discord community for AI-assisted retro reverse engineering, but names no model or workflow for this repository; no REA use is established.

About this entry

Type
Case study
Category
Independent reconstruction cases
Relationship
Independent reconstruction project
Targets
Game

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · mstan/MegaManXSNESRecomp · Revision adc1fea
  2. symbols/README.md GitHub · mstan/MegaManXSNESRecomp · Revision adc1fea
  3. docs/mod-source-roms.md GitHub · mstan/MegaManXSNESRecomp · Revision adc1fea
  4. docs/validation/coverage-2026-09-28.md GitHub · mstan/MegaManXSNESRecomp · Revision adc1fea
  5. assets/saber-zero/CREDITS.md GitHub · mstan/MegaManXSNESRecomp · Revision adc1fea
  6. .github/workflows/build.yml GitHub · mstan/MegaManXSNESRecomp · Revision adc1fea
  7. .gitmodules GitHub · mstan/MegaManXSNESRecomp · Revision adc1fea
  8. .gitignore GitHub · mstan/MegaManXSNESRecomp · Revision adc1fea
  9. LICENSE GitHub · mstan/MegaManXSNESRecomp · Revision adc1fea
  10. README.md GitHub · RetroPortingToolKit/snesrecomp · Revision 0f5708d
  11. LICENSE GitHub · RetroPortingToolKit/snesrecomp · Revision 0f5708d
  12. https://github.com/mstan/MegaManXSNESRecomp/releases/tag/v2.2.9-alpha

More in Games

All 231 entries in GamesGames case studies (189)