aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorneonloop2022-03-27 17:11:07 +0000
committerneonloop2022-03-27 17:11:07 +0000
commit5a5baa280f725d25f38f1025d92fb521fdba8940 (patch)
tree076f7ee822cf92f9327a3b4aaeb465a5cdaa41b2
parent8870de89ba1ad9ae08e5f4c7602007b05fab5f3e (diff)
downloadpicoarch-5a5baa280f725d25f38f1025d92fb521fdba8940.tar.gz
picoarch-5a5baa280f725d25f38f1025d92fb521fdba8940.tar.bz2
picoarch-5a5baa280f725d25f38f1025d92fb521fdba8940.zip
Updates patches for upstream snes9x2002 changes
-rw-r--r--overrides/snes9x2002.h9
-rw-r--r--patches/snes9x2002/0001-frameskip-interval-max.patch33
2 files changed, 37 insertions, 5 deletions
diff --git a/overrides/snes9x2002.h b/overrides/snes9x2002.h
index 00ff40b..fb54780 100644
--- a/overrides/snes9x2002.h
+++ b/overrides/snes9x2002.h
@@ -5,23 +5,22 @@ static const struct core_override_option snes9x2002_core_option_overrides[] = {
.key = "snes9x2002_frameskip",
.info = "Skip frames to avoid audio crackling. Improves performance at the expense of visual smoothness.",
.default_value = "auto",
- .retro_var_value = "Frameskip ; disabled|auto|threshold"
},
{
.key = "snes9x2002_frameskip_threshold",
+ .desc = "FS Threshold (%)",
.info = "When 'Frameskip' is set to 'Threshold', sets how low the audio buffer can get before frames will be skipped.",
- .retro_var_value = "FS Threshold (%); 30|40|50|60",
},
{
.key = "snes9x2002_frameskip_interval",
+ .desc = "FS Interval",
.info = "The maximum number of frames that can be skipped before a new frame is rendered.",
.default_value = "4",
- .retro_var_value = "FS Interval; 1|2|3|4|5|6|7|8|9"
},
{
.key = "snes9x2002_overclock_cycles",
- .info = "Hack, unsafe. Requires restart.",
- .retro_var_value = "Overclock (Restart); disabled|compatible|max"
+ .desc = "Overclock (Restart)",
+ .info = "Alleviate normal SNES slowdown. Compatible keeps as much compatibility as possible. Max will reduce more slowdown but break more games.",
},
{ NULL }
};
diff --git a/patches/snes9x2002/0001-frameskip-interval-max.patch b/patches/snes9x2002/0001-frameskip-interval-max.patch
new file mode 100644
index 0000000..737936d
--- /dev/null
+++ b/patches/snes9x2002/0001-frameskip-interval-max.patch
@@ -0,0 +1,33 @@
+diff --git a/libretro/libretro.c b/libretro/libretro.c
+index 5f947ef..dc48f3d 100644
+--- a/libretro/libretro.c
++++ b/libretro/libretro.c
+@@ -105,10 +105,6 @@ typedef enum
+ FRAMESKIP_FIXED_INTERVAL
+ } frameskip_type_t;
+
+-/* Maximum number of consecutive frames that
+- * can be skipped */
+-#define FRAMESKIP_MAX 30
+-
+ static frameskip_type_t frameskip_type = FRAMESKIP_NONE;
+ static unsigned frameskip_threshold = 0;
+ static unsigned frameskip_interval = 0;
+@@ -638,7 +634,7 @@ void retro_run (void)
+ retro_audio_buff_underrun;
+
+ if (!skip_frame ||
+- (frameskip_counter >= FRAMESKIP_MAX))
++ (frameskip_counter >= frameskip_interval))
+ {
+ skip_frame = false;
+ frameskip_counter = 0;
+@@ -652,7 +648,7 @@ void retro_run (void)
+ (retro_audio_buff_occupancy < frameskip_threshold);
+
+ if (!skip_frame ||
+- (frameskip_counter >= FRAMESKIP_MAX))
++ (frameskip_counter >= frameskip_interval))
+ {
+ skip_frame = false;
+ frameskip_counter = 0;