Repository navigation
Conversation
Tatsuya79
commented
Oct 30, 2026
- Removed the old workaround
- Removed fastforward_after_frames and its five-frame delay.
- Removed the temporary audio-blocking changes performed during those five frames.
- Improved fast-forward recovery
- Immediately resets the frame pacing anchor, timer period, and frame-time history when fast-forward ends.
- Allows VRR timing to resynchronize without waiting several frames.
- Added VRR-specific audio synchronization
- With Exact Sync enabled and operational DRC, audio uses nonblocking writes.
- The frame timer controls video pacing without waiting for the audio buffer.
- DRC remains active to compensate for audio/video clock drift.
- Added reversible audio handling
- If DRC becomes unavailable, the normal audio synchronization policy is restored.
- Fast-forward, pause, and menu handling retain their existing policies.
- Audio blocking is changed only when the requested state differs from the current state.
- Preserved existing audio processing
- No changes to the DRC algorithm, resampler, timing skew, audio latency, or sink-rate estimation.
Remove check for fastforward_after_frames being 1.
|
The fast-forward recovery fix works perfectly here! VRR actually feels even smoother overall, especially after closing and reopening a core. :) I noticed one issue with 30 fps Dreamcast games, though: with frame-rate detection disabled, they appear to run at 60 fps and twice their intended speed. I’m attaching a test ROM with scrolling that should run at 30 fps to demonstrate this. The interesting part is the frame pacing for flycast :
Keeping this smoother pacing while preserving the correct game speed would make this even better. The original fast-forward issue is resolved in my tests, so this is already a very positive improvement! |
|
I think Flycast is outside of libretro specifications, probably setting 60hz while sending audio samples for 30. |
|
There's this new "Vblank Pacing" option that helps a lot with Flycast : flyinghead/flycast#2562 Still not perfect 30 fps scrolling but a lot better than before without detect frame rate changes. Unfortunately this Vblank option messes with detect framerate changes. |
|
This has been committed to RA master branch as an attempt for equivalency, please check what it's doing for you: |
|
You can use the new RA builds with the new commits and still get the behavior present in this PR by switching audio sync to off. VRR will follow video timing in priority. |