libretro / gambatte-libretro

Hard fork of Gambatte to the libretro API.
http://sourceforge.net/projects/gambatte/
GNU General Public License v2.0
105 stars 79 forks source link

Core-specific fastforward RetroPad command not working with RunAhead #197

Closed Ryunam closed 3 years ago

Ryunam commented 3 years ago

There seems to be a performance regression related to fastforward, when using the latest gambatte libretro core for Windows 10 x64 with RunAhead set to ON.

If RunAhead is active (either with just one instance or with a second instance), the fastforward feature in RA will:

I have not performed a bisect yet, but I do have an older version of the core lying around and dating back to 2020 and I can observe a clear difference between the two builds. I am attaching the two files here for a quick comparison:

gambatte_libretro (latest from buildbot).zip gambatte_libretro (build from 23-10-2020).zip

Ryunam commented 3 years ago

Thanks to the help of @bslenul, I think I have narrowed down this issue to the following points:

jdgleaver commented 3 years ago

@Ryunam Thank you for reporting this!

It was a real head scratcher, but here's the fix: https://github.com/libretro/RetroArch/pull/12828

Note that the in-core fastforward key still overrides the usual frontend hotkey setting, since that's the way the RETRO_ENVIRONMENT_SET_FASTFORWARDING_OVERRIDE callback has to work... I hope that's not too awkward....

Ryunam commented 3 years ago

Perfect, thank you as usual for fixing this so quickly! I also now understand how the override callback works a bit more clearly, so that is totally fine.