LibretroDroid icon indicating copy to clipboard operation
LibretroDroid copied to clipboard

Flycast works, but is too fast

Open JustMeDaFaq opened this issue 4 years ago • 4 comments

Hi, flycast (dreamcast emu) works, but is too fast and doesnt have sound (sounds is probably due to its too fast, since no sound is also when fast forwarding in retroarch) Tested with latest libretrodroid and latest flycast from: http://buildbot.libretro.com/nightly/android/latest/arm64-v8a/

Audio is broken in fast forward if threaded rendering in the core is enabled, that's a core thingy tho. Works with it beeing disabled tho.

So the only issue left is the its beeing to fast I guess

JustMeDaFaq avatar Jan 25 '21 19:01 JustMeDaFaq

Hi @JustMeDaFaq , thank you for reporting this. I still haven't tried flycast in Lemuroid, so I've no idea what might be wrong.

Just looking at the code it seems they're calling RETRO_ENVIRONMENT_GET_FASTFORWARDING in retro_run(), which is not implemented in LibretroDroid, maybe always returning false might make it run at the correct speed.

Swordfish90 avatar Jan 25 '21 23:01 Swordfish90

@Swordfish90 Thanks for the hint, adding:

            case RETRO_ENVIRONMENT_GET_FASTFORWARDING:
                *((bool*) data) = false;
                return true;

makes sound available, game runs still super fast tho. Could be similiar to the PPSSPP speed issue i believe

Edit: Oh yeah, 60fps games (like Sonic 2) are running normally (with the environment variable above added), looks similiar to the ppsspp speed/throttling thingy? How does retroarch itself makes that working?

Edit2: Retroarch is solving that with an technique called Ausiodsync. If I set this to off, the core behaves the same in retroarch like in libretrodroid.

JustMeDaFaq avatar Jan 26 '21 12:01 JustMeDaFaq

Ausiodsync does not seem to be complicated, I have implemented this feature on LibretroDroid

a7150607 avatar Aug 17 '21 07:08 a7150607

@a7150607 mind sharing your solution?

JustMeDaFaq avatar Aug 17 '21 07:08 JustMeDaFaq