Use the shared desktop host for X2/X3 save states and rewind - #77
Merged
Conversation
This was referenced Sep 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.