Panda3DS
Panda3DS copied to clipboard
Why did there is a non-FPS limit ?
Games run so fast like every game i have tested.
Hello Yeah you're right, this should be implemented eventually. I wanted to do mixed sync like Redream at first (syncing to audio and video) but I will likely have to implement a temporary solution until audio is implemented.
Anyways the behavior of the game are funny sometimes
On a related note, I want to at least put out a sort of "ideal end goal" request that it be similar to the way Dolphin, mGBA, and Duckstation handle their FPS cap limiter where you can not only just specify what sort of FPS cap you want but it'll even sync the audio pitch accordingly so that you don't get weird and/or poor-quality sounding audio, especially when running at slower-than-native speeds.
In other words, if you cap a 60fps game to 30fps, it'd run both the game and audio at half-speed but also have the audio play back at half the sample rate and therefore subsequently half the pitch (e.g. a 1000Hz sine wave with a sample rate of 48kHz played back at half speed is identical to a bog-standard 500Hz sine wave with a sample rate of 24kHz).
Thing is, the alternative is the non-default audio mode that Dolphin calls "audio stretching" which, if I'm honest, just sounds pretty terrible fidelity-wise whenever you're running at less-than-native speeds. That being said, if your performance is fluctuating greatly, then I can see a situation where this "audio stretching" could actually sound better since having the audio pitch constantly going up and down would sound pretty terrible musically. And of course, when running at faster-than-native, "audio stretching" is the better choice since it's really doing audio squishing in such a case which has a far less impact on fidelity.
So I guess the tl;dr is:
matching audio pitch to the frame rate is better when:
-
emulation speed dips just a little below native speed
-
emulation speed is locked to a frame rate that is less than native
and "audio stretching" as Dolphin calls it is better when:
-
emulation speed wildly varies
-
emulation speed is locked to a frame rate that is greater than native