Skip to content

Latest commit

 

History

History
111 lines (93 loc) · 5.85 KB

File metadata and controls

111 lines (93 loc) · 5.85 KB

Mega Man X4 Recompiled — v0.0.2-alpha

🆕 New in v0.0.2

  • Experimental Widescreen (true 16:9). X4's opt-in wide field of view is now available from the launcher's Widescreen (EXPERIMENTAL) toggle — it widens the three-layer scrolling background and re-anchors the health/weapon HUD to the true 16:9 edges, without disturbing world sprites. 4:3 remains the default; flip the toggle to try 16:9.
  • OpenGL is now the default renderer (full-rate hardware presentation). Software is still one click away in the launcher (Settings → Renderer).
  • A large batch of framework engine improvements since v0.0.1 — full-rate OpenGL presentation, audio reserve/transient hardening (the MMX4 attract-demo audio fix and beyond), and byte-verified static + overlay dispatch. X4 was re-recompiled and re-validated against the updated framework.

The first public cut, made days after first boot. Mega Man X4 boots and plays as a native Windows program — no emulator behind it — on the PSXRecomp framework, the same one behind TombaRecomp, MegaManX5Recomp and MegaManX6Recomp. The game's MIPS code is machine-translated ahead of time into native C and compiled into a real Windows executable that runs on a faithful simulation of the PS1 hardware plus the recompiled PS1 BIOS.

✨ Highlights — what works

  • Boots and plays. BIOS → disc detect → engine load → intro cinematics → title → attract demos → into the game, with no known crashes on the covered path.
  • The intro cinematics decode and play (the X vs. Zero opening), riding the faithful CD read/seek-timing work that unlocked MMX5's FMV.
  • Correct-by-hardware controller handling. X4 shipped before the DualShock existed and its pad driver rejects analog pads outright — exactly like the real console, where a DualShock with the analog LED lit is ignored by this game. The runtime presents the plain digital pad X4 expects, and the launcher offers no pad-mode selector (there is exactly one valid mode). Keyboard and SDL gamepads both work.
  • A recompiler milestone made X4 possible: X4's engine keeps inline data tables inside its code, which tripped the old function-extent heuristic into classifying ~261 KB of real engine code (7,373 functions) as data. The new control-flow-aware extent analysis recovers them — this fix benefits every PSXRecomp title.
  • Fast loading (turbo loads). Loads fast-forward the whole machine at full host speed while keeping authentic 1× guest CD timing (and audio) intact.
  • Supersampling + anti-aliasing. Internal-resolution SSAA (1×–4×) with optional linear present filtering.
  • Graphical launcher. Pick BIOS / disc / memory cards, verify the disc, and configure renderer, supersampling, and controller — choices persist between launches.
  • Self-contained overlay toolchain. As you explore new areas the runtime converts the game's streamed ARC overlay code to native code in the background — no developer tools needed; the release bundles a fully self-contained toolchain (embedded Python + TinyCC).

⚠️ Known issues

  • Early preview — not verified deep into stages. The covered path (intro, title, menus, attract, starting a game) works with no known crashes, but X4 has ~2,800 not-yet-recompiled code regions that an unvisited area may hit. By design that halts the program loudly instead of silently misbehaving — if it happens to you, please report where you were.
  • Memory-card save/load not yet verified end-to-end in this build (the card hardware layer is exercised and healthy).
  • Widescreen is experimental and opt-in. Authentic 4:3 remains the default; enabling the launcher toggle widens X4's background, actor activation/despawn, and draw-cull bounds for a true 16:9 field of view. Player health/weapon HUD pieces move to the 16:9 left boundary and enemy/boss health pieces move to the 16:9 right boundary without changing their original layout.

📝 Setup

  • Bring your own PlayStation BIOS (SCPH1001.BIN) and Mega Man X4 (USA, SLUS-00561) disc image — the launcher asks for each. Verify your disc against DISC.md before reporting regressions. Use .cue + .bin (or .bin); do not convert to a 2048-byte "cooked" .iso — that discards the XA sectors the movies and audio stream from.
  • Options live in the launcher's Settings and are remembered between launches.
  • The overlay cache grows as you play; please keep overlay_captures.json private — it contains game code read from your disc (see README).

Mega Man X4 Recompiled — v0.0.3-alpha

This release replaces the old in-tree launcher with the shared Dear ImGui recomp-ui launcher. BIOS/disc selection, settings, controls, memory cards, and the Launch button now use the DPI-independent shared layout, addressing the inaccessible/broken launcher reported in issue #3.

Launcher and packaging

  • Uses the current shared recomp-ui PSX profile and game-specific launcher art.
  • Bundles the matching fonts and assets beside the executable.
  • Preserves the existing renderer, widescreen, controller, and runtime choices while removing the fixed old launcher layout.

All existing alpha caveats and game-compatibility notes above still apply.

Mega Man X4 Recompiled — v0.0.4 audio latency test 1

This prerelease reduces X4's host audio cushion from 180 ms to 60 ms. The smaller cushion should make sound effects respond much sooner. It is an X4-only choice: the framework retains the safer 180 ms default for games that need it to cover long audio-production stalls.

Please report whether the delay is improved and whether you hear any new crackle, especially during stage transitions, cutscenes, or loading.