Repository navigation
Finish widescreen simulation and pause Options for v0.3.16 - #36
Merged
Merged
Conversation
- Add HLE replacements for GameState_15_Paused_Async (0x8290E8), HandlePauseScreenLrInput (0x82A50C), and HandlePauseScreenStart (0x82A5B7) - New top-level pause menu tab: Game Options (menu_index=2) - 3-way tab cycling via L/R: Map <-> Equipment <-> Game Options - Game Options screen with 5 items: Graceful Exit, Toggle FPS, Toggle Widescreen, Audio Settings, Back - Graceful Exit saves SRAM and returns to launcher - Added transition states for smooth animations between all 3 screens - Extended menu_index mapping with indices 7-13 for new transitions
- variables.h: correct joypad button masks to ROM's SNES auto-joypad order; add joypad1_lastkeys/joypad1_prev - gen_stubs.c: make pause HLE LLE-safe. In LLE scheduler, run only host-side panel logic (HleSmPauseHostTick) and yield back to interpreter at vanilla routine entry (no guest dispatcher re-entry). In HLE, dispatch vanilla pause screens. Unify tab to host flag; keep menu_index in 0..7 (panel covers Map) - main.c: reset host Options panel when leaving pause state - sm_pause_options: add host overlay for 3rd pause tab - build/scripts/gitignore tweaks (support local tooling)
…ences (PauseMenu_2/3/4/5/6/7) instead of jumping straight to menu_index 0/1
Reorder the in-game OPTIONS menu so HUD ANCHORING sits directly under WIDESCREEN (with 32 px visual indent) so the dependency is obvious. Add RowEnabled() to disable HUD anchoring interaction when widescreen is off; render disabled rows in COL_DIM. When widescreen is turned on, default hud_anchored to 1 (Edges) so the feature activates immediately. Move/Adjust/Activate all respect RowEnabled() and skip disabled rows.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
One hook runs the ROM's own pause routine in both execution modes; leaving uses the ROM's fade-outs, and the panel's open state is part of snapshots. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Fullscreen, vsync, frame blend, run-ahead, and window scale join the five existing SM video rows, so every setting the runner exposes for live editing can now be changed from the pause panel. The host's setters clamp like the config parser and mark the config dirty; the host writes config.ini at shutdown, so the choices persist. Window scale is disabled while in fullscreen, where the host ignores it. snesrecomp is pinned to PR #186's head (adf6f6d): the host_api.h get/set pairs, three new keymap entries, and the g_config_dirty shutdown write over f68aa0f. The PR is open and unmerged; the pin follows it to merge. Co-Authored-By: Qwen3.8 27B <noreply@qwen.ai>
Co-Authored-By: Qwen3.8 27B <noreply@qwen.ai>
The Options tab gains an Exit row between Window scale and Back. Accepting it calls the framework's snesrecomp_request_exit: the main loop ends the run on its next pass, after the requesting frame has presented, through the normal shutdown path, so any config the panel dirtied is written to config.ini before the window closes. The row fits by tightening the layout to eleven rows at 13px pitch (reaching 180, still clear of the 198 separator and the 204 hint). The test fakes the request as a latch and re-drives the navigation; all golden hashes were recalibrated for the new layout, with the exit section and the fullscreen revisit keeping their self-consistency. The snesrecomp pin moves to 425b532, one commit beyond open PR #186's head adf6f6d. That commit adds the exit API and exists only locally (branch pr186-with-request-exit) until it is pushed to the PR's branch. Co-Authored-By: Qwen3.8 27B <noreply@qwen.ai>
mstan
force-pushed
the
fix/wide-enemy-activation-20261026
branch
from
October 26, 2026 17:25
00686a5 to
dc6bdeb
Compare
…tion-20261026 # Conflicts: # framework_pins.txt
mstan
marked this pull request as ready for review
October 26, 2026 17:42
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.
Enemies and common projectiles now remain active throughout the visible wider view. Native 4:3 keeps its original behavior and compiled execution path. This also integrates the owner-accepted pause Options tab from #26 and prepares v0.3.16 on the merged audio/exit engine.
The simulation viewport is sampled before execution, serialized in current-build states and diagnostic replays, and fixed to one host-authoritative profile during netplay. The renderer stays read-only. Netplay geometry controls are locked for the match. The original ROM path remains available as a build-time reference.
Validation: strict-idempotent regeneration; Windows 17 native tests; real margin AI, natural projectile emission, controlled pirate laser culls and real beam lifetime checks across the supported widths; current-build/fresh-process states and six invalid-input rejection cases; real Options settings, run-ahead navigation and Exit 0 with native SRAM/config persistence. Matched native gameplay uses 0.9800x baseline CPU time across three 3900-frame samples and preserves exact full WRAM. Delay-sync and rollback pairs with different local aspects agree on the host viewport before frame 0.
The owner accepted the prepared Crocomire, Options and combined SM/MMX/SMW engine handoff. #35 and engine RetroPortingToolKit/snesrecomp#216/#217 are merged. Final exact-head diagnostic replay passes boot/gameplay, renderer changes, loads, bounded history and damage rejection. Release workflow 40368939563 passes all four native platform builds, tests and runtime package audits. The actual Windows release archive also boots its owned ROM and reaches live Ceres gameplay for 13,321 unpaced frames at the 32:9/90 presentation preset, with audio emulation enabled and dummy output. No full-campaign or actual 90 Hz pacing claim comes from that packaging smoke test. Steam Deck hardware is unavailable for its remaining ordinary-gameplay audio check; that report stays explicitly unverified. Existing conservative ROM-only script boundaries remain unchanged.