Skip to content

Use the shared desktop host for X2/X3 save states and rewind - #77

Merged
mstan merged 3 commits into
mainfrom
codex/mmx23-state-menus
Sep 12, 2026
Merged

Use the shared desktop host for X2/X3 save states and rewind#77
mstan merged 3 commits into
mainfrom
codex/mmx23-state-menus

Conversation

@mstan

@mstan mstan commented Sep 12, 2026

Copy link
Copy Markdown
Member

X2 and X3 still used the older desktop include, so the shared save-state browser and rewind filmstrip were unreachable. Make that include a small adapter over the current desktop host, retaining the games' native widescreen and Cx4 hooks.

Opt-in F7/F8 defaults migrate legacy quick-load bindings to F11/F12 and support recomp-ui rebind/clear. Modal keyboard controls reach the browser, audio pauses during menus, snapshots capture completed raster boundaries, and file loads/reset invalidate rewind history.

Reuse the rollback execution serializer for title state extensions, including Cx4's previously missing clock anchor. This fixes a measured replay divergence without changing the existing core RTLS layout or adding netplay UI.

Validation: both games compile as Windows SDL3 playable builds and Linux SDL2 ROM-free setup hosts. ROM-backed checks pass full state equality, 30-frame replay, file load in a fresh process, rewind restoration, F7/F8 dispatch, keyboard save, and launcher rebind/clear. Both actual windows pass the virtual-controller open/navigate/close check for both menus and resume through 900 frames. Save-menu and game screenshots inspected. No unrelated test-suite changes.

Beads: beads-8wg.2.37; game integrations beads-8wg.18.1 and beads-8wg.19.1.

@mstan
mstan merged commit 5e059a8 into main Sep 12, 2026
8 checks passed
@mstan
mstan deleted the codex/mmx23-state-menus branch September 12, 2026 08:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant