libretro / snes9x2005

Snes9x 2005. Port of SNES9x 1.43 for libretro (was previously called CAT SFC).
Other
15 stars 32 forks source link

Add optional automatic frame skipping #77

Closed jdgleaver closed 3 years ago

jdgleaver commented 3 years ago

This PR uses the new RETRO_ENVIRONMENT_SET_AUDIO_BUFFER_STATUS_CALLBACK environment callback (added here: https://github.com/libretro/RetroArch/pull/11451) to implement optional automatic frame skipping.

A Frameskip core option has been added, with the following settings:

Note that this requires an audio buffer of sufficient size - setting frontend Audio Latency to 128 ms seems to be the sweet spot.

Tested on an RG350M (with Audio Latency at 128 ms), adjusting the Frameskip option allows even the most demanding games to run without crackling audio (and frames are only skipped when necessary)

In addition, this PR cleans up the core options header file (which is at present in a dreadful mess - it seems that several copy/paste errors were made in the past...)

MarioKartFan commented 3 years ago

@jdgleaver Hello and thanks for the contributions. Your changes lock up the 3DS port (using latest development builds) whenever frameskip is set to Auto.