diff options
Diffstat (limited to 'patches/pcsx_rearmed/0001-audio-frameskip.patch')
-rw-r--r-- | patches/pcsx_rearmed/0001-audio-frameskip.patch | 197 |
1 files changed, 0 insertions, 197 deletions
diff --git a/patches/pcsx_rearmed/0001-audio-frameskip.patch b/patches/pcsx_rearmed/0001-audio-frameskip.patch deleted file mode 100644 index e4160c7..0000000 --- a/patches/pcsx_rearmed/0001-audio-frameskip.patch +++ /dev/null @@ -1,197 +0,0 @@ -diff --git a/frontend/libretro.c b/frontend/libretro.c -index 650676f..0243fa0 100644 ---- a/frontend/libretro.c -+++ b/frontend/libretro.c -@@ -96,17 +96,25 @@ static int show_advanced_gpu_unai_settings = -1; - static int show_other_input_settings = -1; - static float mouse_sensitivity = 1.0f; - --unsigned frameskip_type = 0; --unsigned frameskip_threshold = 0; --unsigned frameskip_counter = 0; --unsigned frameskip_interval = 0; -+typedef enum -+{ -+ FRAMESKIP_NONE = 0, -+ FRAMESKIP_AUTO, -+ FRAMESKIP_AUTO_THRESHOLD, -+ FRAMESKIP_FIXED_INTERVAL -+} frameskip_type_t; -+ -+static unsigned frameskip_type = FRAMESKIP_NONE; -+static unsigned frameskip_threshold = 0; -+static unsigned frameskip_interval = 0; -+static unsigned frameskip_counter = 0; - --int retro_audio_buff_active = false; --unsigned retro_audio_buff_occupancy = 0; --int retro_audio_buff_underrun = false; -+static int retro_audio_buff_active = false; -+static unsigned retro_audio_buff_occupancy = 0; -+static int retro_audio_buff_underrun = false; - --unsigned retro_audio_latency = 0; --int update_audio_latency = false; -+static unsigned retro_audio_latency = 0; -+static int update_audio_latency = false; - - static unsigned previous_width = 0; - static unsigned previous_height = 0; -@@ -1217,20 +1225,33 @@ static void retro_audio_buff_status_cb( - - static void retro_set_audio_buff_status_cb(void) - { -- if (frameskip_type > 0) -+ if (frameskip_type == FRAMESKIP_NONE) - { -- struct retro_audio_buffer_status_callback buf_status_cb; -+ environ_cb(RETRO_ENVIRONMENT_SET_AUDIO_BUFFER_STATUS_CALLBACK, NULL); -+ retro_audio_latency = 0; -+ } -+ else -+ { -+ bool calculate_audio_latency = true; - -- buf_status_cb.callback = retro_audio_buff_status_cb; -- if (!environ_cb(RETRO_ENVIRONMENT_SET_AUDIO_BUFFER_STATUS_CALLBACK, -- &buf_status_cb)) -+ if (frameskip_type == FRAMESKIP_FIXED_INTERVAL) -+ environ_cb(RETRO_ENVIRONMENT_SET_AUDIO_BUFFER_STATUS_CALLBACK, NULL); -+ else - { -- retro_audio_buff_active = false; -- retro_audio_buff_occupancy = 0; -- retro_audio_buff_underrun = false; -- retro_audio_latency = 0; -+ struct retro_audio_buffer_status_callback buf_status_cb; -+ buf_status_cb.callback = retro_audio_buff_status_cb; -+ if (!environ_cb(RETRO_ENVIRONMENT_SET_AUDIO_BUFFER_STATUS_CALLBACK, -+ &buf_status_cb)) -+ { -+ retro_audio_buff_active = false; -+ retro_audio_buff_occupancy = 0; -+ retro_audio_buff_underrun = false; -+ retro_audio_latency = 0; -+ calculate_audio_latency = false; -+ } - } -- else -+ -+ if (calculate_audio_latency) - { - /* Frameskip is enabled - increase frontend - * audio latency to minimise potential -@@ -1244,13 +1265,9 @@ static void retro_set_audio_buff_status_cb(void) - retro_audio_latency = (retro_audio_latency + 0x1F) & ~0x1F; - } - } -- else -- { -- environ_cb(RETRO_ENVIRONMENT_SET_AUDIO_BUFFER_STATUS_CALLBACK, NULL); -- retro_audio_latency = 0; -- } - - update_audio_latency = true; -+ frameskip_counter = 0; - } - - static void update_variables(bool in_flight); -@@ -1535,23 +1552,23 @@ static void update_variables(bool in_flight) - #ifdef GPU_PEOPS - int gpu_peops_fix = 0; - #endif -- unsigned prev_frameskip_type; -+ frameskip_type_t prev_frameskip_type; - - var.key = "pcsx_rearmed_frameskip_type"; - var.value = NULL; - - prev_frameskip_type = frameskip_type; -- frameskip_type = 0; -+ frameskip_type = FRAMESKIP_NONE; - pl_rearmed_cbs.frameskip = 0; - - if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) - { - if (strcmp(var.value, "auto") == 0) -- frameskip_type = 1; -+ frameskip_type = FRAMESKIP_AUTO; - if (strcmp(var.value, "auto_threshold") == 0) -- frameskip_type = 2; -+ frameskip_type = FRAMESKIP_AUTO_THRESHOLD; - if (strcmp(var.value, "fixed_interval") == 0) -- frameskip_type = 3; -+ frameskip_type = FRAMESKIP_FIXED_INTERVAL; - } - - if (frameskip_type != 0) -@@ -2639,23 +2656,23 @@ void retro_run(void) - * be skipped */ - pl_rearmed_cbs.fskip_force = 0; - pl_rearmed_cbs.fskip_dirty = 0; -- if ((frameskip_type > 0) && retro_audio_buff_active) -+ -+ if (frameskip_type != FRAMESKIP_NONE) - { -- bool skip_frame; -+ bool skip_frame = false; - - switch (frameskip_type) - { -- case 1: /* auto */ -- skip_frame = retro_audio_buff_underrun; -+ case FRAMESKIP_AUTO: -+ skip_frame = retro_audio_buff_active && retro_audio_buff_underrun; - break; -- case 2: /* threshold */ -- skip_frame = (retro_audio_buff_occupancy < frameskip_threshold); -+ case FRAMESKIP_AUTO_THRESHOLD: -+ skip_frame = retro_audio_buff_active && (retro_audio_buff_occupancy < frameskip_threshold); - break; -- case 3: /* fixed */ -+ case FRAMESKIP_FIXED_INTERVAL: - skip_frame = true; - break; - default: -- skip_frame = false; - break; - } - -@@ -3005,8 +3022,9 @@ void retro_deinit(void) - /* Have to reset disks struct, otherwise - * fnames/flabels will leak memory */ - disk_init(); -- frameskip_type = 0; -+ frameskip_type = FRAMESKIP_NONE; - frameskip_threshold = 0; -+ frameskip_interval = 0; - frameskip_counter = 0; - retro_audio_buff_active = false; - retro_audio_buff_occupancy = 0; -diff --git a/frontend/libretro_core_options.h b/frontend/libretro_core_options.h -index 9045791..9188f8b 100644 ---- a/frontend/libretro_core_options.h -+++ b/frontend/libretro_core_options.h -@@ -105,7 +105,7 @@ struct retro_core_option_definition option_defs_us[] = { - { "10", NULL }, - { NULL, NULL }, - }, -- "1" -+ "3" - }, - { - "pcsx_rearmed_bios", -diff --git a/frontend/main.c b/frontend/main.c -index bf682ee..05c0f9e 100644 ---- a/frontend/main.c -+++ b/frontend/main.c -@@ -156,7 +156,9 @@ void emu_set_default_config(void) - #if defined(HAVE_PRE_ARMV7) && !defined(_3DS) /* XXX GPH hack */ - spu_config.iUseReverb = 0; - spu_config.iUseInterpolation = 0; -+#ifndef(_MIYOO) - spu_config.iTempo = 1; -+#endif - #endif - new_dynarec_hacks = 0; - cycle_multiplier = 200; |