Skip to content

Releases: mstan/MegaManX2Recomp

Mega Man X2 v0.1.1 - audio crackle fixed

Choose a tag to compare

@mstan mstan released this 06 Aug 01:59

Audio: family-wide crackle fixed

The shared engine retired a hardcoded 534 output samples per audio callback
regardless of how many the host actually asked for, so consumption tracked the
callback rate and ignored the callback size. Any host not asking for exactly
534 drove the DSP output ring permanently out of balance.

Measured on the Super Mario Kart port before the fix: 17.8 k samples/s consumed
against 32.04 k/s produced, the ring pinned at its cap, and 43% of every audio
sample generated was discarded
- 384,032 of them carrying audible music - in
64,935 separate drop runs. Tempo survived because the drops landed as thousands
of very short runs per second, which is why this was heard as static rather than
as obviously wrong pitch.

The consumer now retires exactly as many samples as it emits frames, converts
the SPC's native 32040 Hz onto the device rate with continuous-phase
interpolation, and steers ring occupancy with a +/-0.5% servo (about 8 cents,
well below audibility) so the guest and the audio device can no longer drift
apart. Starvation fades over 64 frames instead of cutting to silence.

After the fix, same measurement: 0 samples dropped, 0 audible drops, 0 drop
runs, occupancy stable, consumed/produced 0.999, no steady-state underruns.

Engine: snesrecomp 1c271f9 + ad7860b. Launcher: recomp-ui 58e9d72.

Mega Man X2 v0.1.0 — SDL3 + first Linux build

Choose a tag to compare

@mstan mstan released this 05 Aug 07:19

What's new

First release with SDL3 and a Linux build.

  • Ported to SDL3 (SDL2 remains available for local builds). Latest recomp-ui
    compiles its SDL3 backend unconditionally, so the previous hardcoded SDL2
    wiring no longer worked at all.
  • First Linux AppImage for Mega Man X2. State — config.ini,
    keybinds.ini, rom.cfg, saves/, mods/ — lives next to the .AppImage,
    survives updates, and re-anchors if you move the file. Drop your ROM beside
    the .AppImage and it is picked up automatically.
  • Windows archive now uses portable ZIP paths, so Linux and Steam Deck
    extractors rebuild the bundled assets/ and mods/packages/ hierarchy
    correctly. Previously a Proton user's extraction produced files literally named
    assets\fonts\... and the launcher found no fonts and no mods.
  • Fixed a black screen under SDL3: SNES frames are opaque RGB with a zero alpha
    byte, which SDL3 blended away to the clear colour (audio kept playing).
  • Production builds no longer announce a TCP debug server they do not have.

Notes

  • A verified Mega Man X2 (USA) ROM is required and is not included.
  • Windows: extract the full archive, then run MegaManX2SNESRecomp.exe. The
    bare .exe will not run without the bundled SDL3.dll, MinGW runtime DLLs and
    assets/.
  • Linux: chmod +x the .AppImage and run it from a writable folder — that
    folder is where your config and saves live.
  • Widescreen is a default-off option on the launcher's Mods page.

Mega Man X2 Recompiled v0.0.1

Choose a tag to compare

@mstan mstan released this 28 Jul 19:12

Initial release

  • First packaged Windows release of Mega Man X2 (USA) recompiled for native
    desktop execution.
  • Includes the shared launcher, display and audio settings, key rebinding,
    crash diagnostics, and the built-in mod loader.
  • The bundled Mega Man X2 Widescreen package is available from the
    launcher’s Mods page and is disabled by default.

Notes

  • Windows zip only. Extract the full archive, then run
    MegaManX2SNESRecomp.exe.
  • A verified Mega Man X2 (USA) ROM is required and is not included.
  • Widescreen is experimental; stage-by-stage validation is still in progress.