Fix doorway audio continuity and prepare v0.3.3 - #5
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.
Door loading could run the sound processor ahead of the frame-count clock, leaving subsequent frames without PCM, then speed up gameplay while repaying the timing debt. Adopt snesrecomp's extended-frame timing API and pace each completed iteration by its actual guest duration. Normal gameplay still drops excess wall-time debt, so Samus returns to normal speed after the door.
Fast loading work now waits for the audio consumer before overflowing the native sample ring, releasing the APU mutex during the bounded wait. If playback stalls, wait once and resume throttling only when the consumer progresses. Playback builds a small cushion after starvation. Linux pacing uses CLOCK_MONOTONIC so raw timer drift cannot make the guest fall behind the audio device. An independent SDL probe reproduced the test environment's raw-clock drift: about 4.75 seconds versus 5.00 seconds on the corrected system clock.
Add an F1 replay and CSV checker that require a real room transition and report missing/dropped output and post-exit speed. Buffer the optional trace to keep small filesystem writes from perturbing short measurements, and profile trace overhead. Prepare patch release v0.3.3 for Windows and Linux.
Validation:
Framework dependency: RetroPortingToolKit/snesrecomp#70 (merged to main). This game pins validated framework ancestor e2c75fd, which is included in that merge's history. The broader current-main upgrade exposed a separate legacy frame-driver compatibility failure, tracked as beads-8wg.6.7.
Fixes beads-8wg.6.5.