Repository navigation
Add replay-safe host UI actions and graceful exit - #217
Merged
Merged
Conversation
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.
The current published engine lacks the exit endpoint used by the latest Super Metroid pause Options panel. Add
snesrecomp_request_exit()through SDL's existing quit event so callers return normally and configuration, SRAM and host resources use ordinary shutdown.Add
snesrecomp_host_frame_is_live()for game-owned UI callbacks. Speculative run-ahead and netplay rollback replay cannot request application exit or commit UI settings. The replay flag spans the host's complete replay callback, including title hooks.Validation:
Do not merge before the combined built-runtime/owner handoff. This branch contains no generator changes or save-state migration.
Built integration validation: frozen Super Metroid Options branch 227e6af with combined engine cb85 (audio216 + exit217) passes all16 CTests and a real freshbooted ROM test. Actual Options input changes HUD/VSync, restores the tab after fileload, preserves navigation under run-ahead, then exits0 through SDL_QUIT. VSync1/RunAhead1 and an8-byte isolated nativeSRAM sentinel persist. Permanent regression: tools/test_pause_options_live.py; exact EXE SHA in options-final227/sm-pause-options-yruwjunh/report.json. Main merge remains owner-gated.
Owner accepted the combined cb85d33 visual/gameplay handoff on 2026-10-26 and explicitly requested merge. Combined regression: MMX 23 executed CTests pass (2 optional Saber fixtures skipped), MMX and SMW normal movement plus same/fresh-process current-build save/load pass; Windows Super Metroid 16/16 tests and real Options Exit 0 with config/SRAM persistence pass. Existing matched runtime evidence remains valid. Steam Deck hardware is unavailable and has no hardware-audio pass.