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: |