This recompilation is a byproduct of developing psxrecomp — the games are the proving ground, the framework is the goal. These are in-development previews, not finished ports — expect rough edges, and depth will keep landing over months, not days. My time for any one title is limited, so I ask for your patience. Contributions are welcome — testing, issues, and PRs to the game or framework all help and will accelerate this game's polish. More on the why at: Recomp + AI: 5 Months Later »
Mega Man X6 (USA, SLUS-01395, disc revision v1.1) statically recompiled to a native PC executable with PSXRecomp — the same framework behind TombaRecomp.
This repository contains the game-specific configuration, seeds, tools, and build glue for running Mega Man X6 on the PSXRecomp framework. The game's MIPS code is machine-translated ("recompiled") ahead of time into native C, then compiled into a real Windows program that runs the game's own logic on a faithful simulation of the PS1 hardware (GPU, SPU, GTE, memory cards) plus the real, recompiled PS1 BIOS — no high-level emulation shims.
It does not contain the Mega Man X6 disc image, a retail PS1 BIOS, generated game code, or any decompiled game C. Release builds include the MIT-licensed OpenBIOS from PCSX-Redux; game data and an optional retail BIOS come from your own legally obtained assets.
The Mods catalog incorporates an adaptation of Mega Man X6 Tweaks, authored by acediez (RHDN project thread). acediez explicitly granted permission to adapt and ship his work as part of Mega Man X6 Recompiled. Every included tweak remains opt-in and disabled by default.
The English retranslation by
DuoDynamo is included with his direct
redistribution approval and remains opt-in and disabled by default. The extra
portrait/palette work credited to MetalWario64 is neither included nor enabled
while separate approval remains pending. See
mods/preloaded/ATTRIBUTION.md.
Important files:
game.toml: runtime / recompiler / video / controller / widescreen config.mods/preloaded/: built-in mod catalog and attribution/permission ledger.seeds/: Ghidra-derived function starts and game-specific seed data.tools/regen.ps1: regenerates the recompiled C output.tools/package_release.ps1: builds the redistributable release zip.psxrecomp-v4.pin: framework commit this project is known-good against.ISSUES.md: game-specific issue log.DISC.md: source-disc identity and verification hashes.WIDESCREEN.md: design notes for the experimental 16:9 mode.
Playable preview — v0.0.1-alpha. This is the first public cut. Mega Man
X6 boots from the PS1 BIOS and plays — through the opening, into stages, with
working controller input and memory-card save/load, and no known crashes.
It has not yet been verified all the way to the end, so treat it as a very
playable preview rather than a certified full playthrough.
| Area | State |
|---|---|
| PS1 BIOS boot | Works (real recompiled BIOS) |
| Disc-detect / boot | Works (loads ROCK_X6.DAT, reaches the engine) |
| X-vs-Zero / Space Colony intro FMV | Plays; opt-in skip features available under Mods |
| Controller | Works; DualShock/analog and rumble supported |
| Stage gameplay | Works (not yet verified all the way to the end) |
| Memory-card save / load | Works (standard PS1 .mcd, emulator-compatible) |
| Renderers | Software and OpenGL (GPU); Software is the default this release (see ISSUES.md #7), OpenGL selectable |
| Widescreen 16:9 | Experimental, opt-in (2D wider field of view) |
Known issues: see ISSUES.md for the current issue log (including
renderer notes) and the remaining enhancement follow-ups.
MegaManX6Recomp supports opt-in enhancement packages without permanently patching your disc. Mega Man X6 Tweaks-derived packages expose their changes as individual launcher features, including configurable animation timing, status adjustments, and optional voice hooks.
![]() |
![]() |
| An alternate Japanese-style title screen from Mega Man X6 Tweaks. | Tweaks are enabled and configured feature-by-feature in the launcher. |
The experimental widescreen package renders a genuinely wider 2D field of view instead of stretching the original 4:3 picture.
These are the framework features that are already working in this build:
- Two renderers. A CPU software rasterizer (this release's default) and a GPU-authoritative OpenGL backend, both selectable in the launcher. Software is the default here because OpenGL shows intermittent flicker in this build (see ISSUES.md #7); OpenGL also serves as the automatic fallback path.
- Fast loading (turbo loads). While a load is in progress the whole machine fast-forwards at your PC's full speed, then drops back to normal the instant it finishes — so disc loads complete far faster while all of the game's internal timing (and audio) stays correct. Authentic 1× disc timing is kept; the speed comes from the load fast-forward, not from speeding up the emulated CD (which would break timing). On by default; toggleable in the launcher.
- Opt-in FMV skips. The Capcom logo and opening movie play by default. Separate skip features are available under Mods; the deprecated generic Settings toggle is disabled.
- Experimental widescreen (16:9). A genuine wider field of view for the 2D
stage engine — more of the scene is drawn on both sides, not a stretched
picture. Opt-in and experimental; some 2D/HUD/FMV elements and background
seams can still look off. See
WIDESCREEN.md. - DualShock controller by default. MMX6 will not poll buttons until it detects an analog-capable pad, so the runtime presents a DualShock by default. Adjustable stick deadzone; per-player override in the launcher.
- Supersampling + anti-aliasing. Internal-resolution SSAA (1×–4×) with optional linear present filtering for clean edges.
- Graphical launcher. OpenBIOS works out of the box. Pick your disc and memory cards, optionally select your own verified retail BIOS, and configure renderer / supersampling / widescreen / controller before launching.
- Feature-oriented mod loader. The release preloads the adapted MMX6 Tweaks catalog as 15 package families with 203 independently configurable, default-disabled feature rows in the launcher.
- Download
MegaManX6Recomp-v*-windows-x64.zipfrom Releases and extract it. - Run
MegaManX6Recomp.exe. A launcher window opens. - OpenBIOS is selected automatically. Optionally select your legally obtained
SCPH1001.BINin the BIOS row. - Set the game disc: select your legally obtained Mega Man X6 (USA, v1.1, SLUS-01395) disc image. The launcher verifies the ISO9660 header, region, and serial.
- Optionally adjust renderer, supersampling, screen look, widescreen, and controller settings, then press Launch. Your choices are remembered.
Accepted disc formats: .cue + .bin (preferred — pick the .cue) and .bin.
Do not convert the disc to a 2048-byte "cooked" .iso — that discards the
Mode-2 Form-2 XA sectors MMX6 streams its FMV/audio from. If the header or game
ID does not match SLUS-01395, the launcher warns and tries to run it anyway.
Selected paths persist next to the executable (disc.cfg and settings.toml).
Clear the BIOS row to return from an optional retail selection to OpenBIOS.
Builds on Windows (MSYS2/MinGW).
Requirements:
- A C/C++ toolchain (MSYS2
mingw-w64-x86_64) and CMake 3.20+. - Mega Man X6 (USA, v1.1, SLUS-01395) disc image (
.cue+.binor.bin). Not included. Verify it againstDISC.mdbefore reporting regressions. - Optional Sony SCPH1001 BIOS ROM (
SCPH1001.BIN). Not included. - The
psxrecompframework available at the sibling path../psxrecomp(linked in as thepsxrecomp-v4junction at thepsxrecomp-v4.pinSHA), plus a recompiled BIOS inpsxrecomp/generated/(see the framework README).
The recompiler needs the game's PS-X EXE extracted from the disc. A helper is included:
python3 ../psxrecomp/tools/extract_psx_exe.py "mmx6/Mega Man X6 (USA) (v1.1).bin" SLUS_013.95 mmx6/SLUS_013.95Generate the recompiled C, then build and run:
# Regenerate generated/SLUS_013.95_{full,dispatch}.c from the disc/EXE.
# This also emits the widescreen sites, so a regen is required after changing them.
# Windows: pwsh tools/regen.ps1
# (or invoke the recompiler directly:
# ../psxrecomp/recompiler/build/psxrecomp-game.exe --config game.toml)
cmake -S . -B build -G "Unix Makefiles"
cmake --build build -j16
./build/mmx6-runtime.exeSDL3 is the default host backend. To build the explicit SDL2 compatibility
fallback, add -DPSX_SDL_BACKEND=SDL2 to the configure command above. CMake
prints the selected backend and never silently changes it.
To build the redistributable Windows release (regens, builds with the launcher,
bundles assets + cache, and zips it): pwsh tools/package_release.ps1.
Most options are exposed in the launcher and persist to settings.toml. The
underlying defaults live in game.toml:
[video]—renderer(opengl/software),supersampling(1–4),antialiasing,texture_filtering,aspect_ratio(4:3/16:9).[controller]—default_analog(DualShock on by default),deadzone.[runtime]—disc_speed(kept at1x),turbo_loads,fast_boot,overlay_cache.[widescreen]*— 2D widescreen projection / background-streamer hooks (gen-time; changing these requires a regen and overlay-cache rebuild).
| PSX button | Keyboard |
|---|---|
| D-Pad Up / Down / Left / Right | Arrow keys |
| Cross | X |
| Square | Z |
| Circle | S |
| Triangle | A |
| L1 / R1 | Q / W |
| L2 / R2 | E / R |
| Start | Enter |
| Select | Right Shift |
| Turbo | Tab (hold) |
| Fullscreen | F11 / Alt+Enter |
A game controller (Xbox, PlayStation, or any SDL-recognized pad) is supported via SDL when connected. MMX6 expects an analog pad, so a DualShock/analog controller is presented by default.
| PSX button | Xbox controller |
|---|---|
| D-Pad Up / Down / Left / Right | D-pad or left stick |
| Cross | A |
| Circle | B |
| Square | X |
| Triangle | Y |
| L1 / R1 | LB / RB |
| L2 / R2 | LT / RT |
| Start | Menu |
| Select | View / Back |
Release builds include input.ini next to MegaManX6Recomp.exe. Edit it to
change controller device index, deadzone, or button mapping.
Save and load work. The runtime uses standard PS1 memory-card images
(.mcd / .mcr) compatible with DuckStation, PCSX-Redux, Mednafen, ePSXe, and
similar emulators. Cards are stored in the saves directory and managed in the
launcher's memory-card UI. Runtime memory-card files are local artifacts and must
not be committed.
Why isn't the game already at full speed everywhere? Most of MMX6's code is
converted ("recompiled") into a fast native program ahead of time. But
PlayStation games don't keep all of their code in memory at once — they stream
extra chunks of code off the disc as you reach new areas (these chunks are
called overlays; MMX6 streams most of its game logic from ROCK_X6.DAT). We
can't convert a chunk we've never seen, and the only way to see it is for someone
to actually visit that area. Until then, that area's code runs in a slower
compatibility mode.
Releases ship a head start. The cache folder next to the executable
contains pre-converted native code for areas covered so far, and that work is
reused across launches. While you play, the runtime records newly visited areas
into overlay_captures.json and your own cache grows automatically.
Please do not post overlay_captures.json publicly. It contains verbatim
snapshots of the game's code read from your disc, which is copyrighted material —
keep it on your own machine, alongside your disc image.
- Use the real recompiled BIOS and real hardware simulation in PSXRecomp.
- No HLE BIOS shims, no stubs, no fake events, no hand-edited generated files.
- Framework changes go in
mstan/psxrecomp, not here. - Game binaries, generated code, memory cards, Ghidra databases, and build outputs stay local.
- See
CLAUDE.mdfor project-specific rules.
PolyForm Noncommercial 1.0.0. See LICENSE.
Mega Man X6 is copyright Capcom. This repository contains none of the game's
original binaries or assets. Release packages include PCSX-Redux OpenBIOS under
the MIT notice in bios/OpenBIOS.LICENSE; they contain no retail BIOS, game
assets, or disc data. The release executable and bundled cache folder contain
statically recompiled (machine-translated) builds of the game's code.
R.A.I.D. — Retro AI Development · a Discord for AI-assisted retro reverse-engineering, decomp & recomp



