From e506386fc683b18c2e25a27e8c3f7a220a92e5e1 Mon Sep 17 00:00:00 2001 From: neonloop Date: Thu, 10 Feb 2022 15:46:51 +0000 Subject: Updates cores and moves to snes9x2005 fork --- patches/snes9x2005/0001-frameskip-interval.patc_ | 107 +++++++++++++++++++++++ patches/snes9x2005/0001-frameskip-interval.patch | 107 ----------------------- patches/snes9x2005/1000-trimui-support.patc_ | 46 ++++++++++ patches/snes9x2005/1000-trimui-support.patch | 46 ---------- 4 files changed, 153 insertions(+), 153 deletions(-) create mode 100644 patches/snes9x2005/0001-frameskip-interval.patc_ delete mode 100644 patches/snes9x2005/0001-frameskip-interval.patch create mode 100644 patches/snes9x2005/1000-trimui-support.patc_ delete mode 100644 patches/snes9x2005/1000-trimui-support.patch (limited to 'patches/snes9x2005') diff --git a/patches/snes9x2005/0001-frameskip-interval.patc_ b/patches/snes9x2005/0001-frameskip-interval.patc_ new file mode 100644 index 0000000..f1c431d --- /dev/null +++ b/patches/snes9x2005/0001-frameskip-interval.patc_ @@ -0,0 +1,107 @@ +diff --git a/libretro.c b/libretro.c +index 9b4599e..c768c42 100644 +--- a/libretro.c ++++ b/libretro.c +@@ -58,13 +58,11 @@ static int32_t samplerate = (((SNES_CLOCK_SPEED * 6) / (32 * ONE_APU_CYCLE))); + static unsigned frameskip_type = 0; + static unsigned frameskip_threshold = 0; + static uint16_t frameskip_counter = 0; ++static unsigned frameskip_interval = 0; + + static bool retro_audio_buff_active = false; + static unsigned retro_audio_buff_occupancy = 0; + static bool retro_audio_buff_underrun = false; +-/* Maximum number of consecutive frames that +- * can be skipped */ +-#define FRAMESKIP_MAX 30 + + static unsigned retro_audio_latency = 0; + static bool update_audio_latency = false; +@@ -345,6 +343,7 @@ void retro_deinit(void) + frameskip_type = 0; + frameskip_threshold = 0; + frameskip_counter = 0; ++ frameskip_interval = 0; + retro_audio_buff_active = false; + retro_audio_buff_occupancy = 0; + retro_audio_buff_underrun = false; +@@ -418,7 +417,7 @@ static void check_variables(bool first_run) + { + if (strcmp(var.value, "auto") == 0) + frameskip_type = 1; +- else if (strcmp(var.value, "manual") == 0) ++ else if (strcmp(var.value, "auto_threshold") == 0) + frameskip_type = 2; + } + +@@ -430,6 +429,14 @@ static void check_variables(bool first_run) + if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) + frameskip_threshold = strtol(var.value, NULL, 10); + ++ var.key = "snes9x_2005_frameskip_interval"; ++ var.value = NULL; ++ ++ frameskip_interval = 4; ++ ++ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) ++ frameskip_interval = strtol(var.value, NULL, 10); ++ + var.key = "snes9x_2005_overclock_cycles"; + var.value = NULL; + +@@ -535,7 +542,7 @@ void retro_run(void) + + if (skip_frame) + { +- if(frameskip_counter < FRAMESKIP_MAX) ++ if(frameskip_counter < frameskip_interval) + { + IPPU.RenderThisFrame = false; + frameskip_counter++; +diff --git a/libretro_core_options.h b/libretro_core_options.h +index 9b89154..41d5ff1 100644 +--- a/libretro_core_options.h ++++ b/libretro_core_options.h +@@ -87,9 +87,9 @@ struct retro_core_option_v2_definition option_defs_us[] = { + NULL, + NULL, + { +- { "disabled", NULL }, +- { "auto", "Auto" }, +- { "manual", "Manual" }, ++ { "disabled", NULL }, ++ { "auto", "Auto" }, ++ { "auto_threshold", "Threshold" }, + { NULL, NULL }, + }, + "disabled" +@@ -122,6 +122,29 @@ struct retro_core_option_v2_definition option_defs_us[] = { + }, + "33" + }, ++ { ++ "snes9x_2005_frameskip_interval", ++ "Frameskip Interval", ++ NULL, ++ "The maximum number of frames that can be skipped before a new frame is rendered.", ++ NULL, ++ NULL, ++ { ++ { "0", NULL }, ++ { "1", NULL }, ++ { "2", NULL }, ++ { "3", NULL }, ++ { "4", NULL }, ++ { "5", NULL }, ++ { "6", NULL }, ++ { "7", NULL }, ++ { "8", NULL }, ++ { "9", NULL }, ++ { "10", NULL }, ++ { NULL, NULL }, ++ }, ++ "4" ++ }, + { + "snes9x_2005_overclock_cycles", + "Reduce Slowdown (Hack, Unsafe, Restart)", diff --git a/patches/snes9x2005/0001-frameskip-interval.patch b/patches/snes9x2005/0001-frameskip-interval.patch deleted file mode 100644 index f1c431d..0000000 --- a/patches/snes9x2005/0001-frameskip-interval.patch +++ /dev/null @@ -1,107 +0,0 @@ -diff --git a/libretro.c b/libretro.c -index 9b4599e..c768c42 100644 ---- a/libretro.c -+++ b/libretro.c -@@ -58,13 +58,11 @@ static int32_t samplerate = (((SNES_CLOCK_SPEED * 6) / (32 * ONE_APU_CYCLE))); - static unsigned frameskip_type = 0; - static unsigned frameskip_threshold = 0; - static uint16_t frameskip_counter = 0; -+static unsigned frameskip_interval = 0; - - static bool retro_audio_buff_active = false; - static unsigned retro_audio_buff_occupancy = 0; - static bool retro_audio_buff_underrun = false; --/* Maximum number of consecutive frames that -- * can be skipped */ --#define FRAMESKIP_MAX 30 - - static unsigned retro_audio_latency = 0; - static bool update_audio_latency = false; -@@ -345,6 +343,7 @@ void retro_deinit(void) - frameskip_type = 0; - frameskip_threshold = 0; - frameskip_counter = 0; -+ frameskip_interval = 0; - retro_audio_buff_active = false; - retro_audio_buff_occupancy = 0; - retro_audio_buff_underrun = false; -@@ -418,7 +417,7 @@ static void check_variables(bool first_run) - { - if (strcmp(var.value, "auto") == 0) - frameskip_type = 1; -- else if (strcmp(var.value, "manual") == 0) -+ else if (strcmp(var.value, "auto_threshold") == 0) - frameskip_type = 2; - } - -@@ -430,6 +429,14 @@ static void check_variables(bool first_run) - if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) - frameskip_threshold = strtol(var.value, NULL, 10); - -+ var.key = "snes9x_2005_frameskip_interval"; -+ var.value = NULL; -+ -+ frameskip_interval = 4; -+ -+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) -+ frameskip_interval = strtol(var.value, NULL, 10); -+ - var.key = "snes9x_2005_overclock_cycles"; - var.value = NULL; - -@@ -535,7 +542,7 @@ void retro_run(void) - - if (skip_frame) - { -- if(frameskip_counter < FRAMESKIP_MAX) -+ if(frameskip_counter < frameskip_interval) - { - IPPU.RenderThisFrame = false; - frameskip_counter++; -diff --git a/libretro_core_options.h b/libretro_core_options.h -index 9b89154..41d5ff1 100644 ---- a/libretro_core_options.h -+++ b/libretro_core_options.h -@@ -87,9 +87,9 @@ struct retro_core_option_v2_definition option_defs_us[] = { - NULL, - NULL, - { -- { "disabled", NULL }, -- { "auto", "Auto" }, -- { "manual", "Manual" }, -+ { "disabled", NULL }, -+ { "auto", "Auto" }, -+ { "auto_threshold", "Threshold" }, - { NULL, NULL }, - }, - "disabled" -@@ -122,6 +122,29 @@ struct retro_core_option_v2_definition option_defs_us[] = { - }, - "33" - }, -+ { -+ "snes9x_2005_frameskip_interval", -+ "Frameskip Interval", -+ NULL, -+ "The maximum number of frames that can be skipped before a new frame is rendered.", -+ NULL, -+ NULL, -+ { -+ { "0", NULL }, -+ { "1", NULL }, -+ { "2", NULL }, -+ { "3", NULL }, -+ { "4", NULL }, -+ { "5", NULL }, -+ { "6", NULL }, -+ { "7", NULL }, -+ { "8", NULL }, -+ { "9", NULL }, -+ { "10", NULL }, -+ { NULL, NULL }, -+ }, -+ "4" -+ }, - { - "snes9x_2005_overclock_cycles", - "Reduce Slowdown (Hack, Unsafe, Restart)", diff --git a/patches/snes9x2005/1000-trimui-support.patc_ b/patches/snes9x2005/1000-trimui-support.patc_ new file mode 100644 index 0000000..96dcb78 --- /dev/null +++ b/patches/snes9x2005/1000-trimui-support.patc_ @@ -0,0 +1,46 @@ +diff --git a/Makefile b/Makefile +index b293853..bc220bd 100644 +--- a/Makefile ++++ b/Makefile +@@ -282,6 +282,20 @@ else ifeq ($(platform), gcw0) + FLAGS += -fomit-frame-pointer -ffast-math -march=mips32 -mtune=mips32r2 -mhard-float + FLAGS += -DFAST_LSB_WORD_ACCESS + ++else ifeq ($(platform), trimui) ++ TARGET := $(TARGET_NAME)_libretro.so ++ CC = $(CROSS_COMPILE)gcc ++ AR = $(CROSS_COMPILE)ar ++ SHARED := -shared -Wl,--version-script=link.T -Wl,--no-undefined ++ CFLAGS += -fsingle-precision-constant -fno-PIC -flto ++ CFLAGS += -DLSB_FIRST -DFAST_ALIGNED_LSB_WORD_ACCESS -DRIGHTSHIFT_IS_SAR ++ CFLAGS += -std=c99 -fomit-frame-pointer -ffast-math -mcpu=arm926ej-s -mtune=arm926ej-s ++ LDFLAGS += -flto ++ OPTIMIZE += -Ofast -DNDEBUG=1 ++ ifeq (,$(DEBUG)) ++ LDFLAGS += -s ++ endif ++ + # (armv7 a7, hard point, neon based) ### + # NESC, SNESC, C64 mini + else ifeq ($(platform), classic_armv7_a7) +@@ -570,10 +584,20 @@ endif + + ifeq ($(DEBUG),1) + FLAGS += -O0 -g ++else ifneq (,$(OPTIMIZE)) ++ FLAGS += $(OPTIMIZE) + else + FLAGS += -O2 -DNDEBUG + endif + ++ ++ifeq ($(PROFILE), GENERATE) ++ CFLAGS += -fprofile-generate=./profile/snes9x2005 ++ LIBS += -lgcov ++else ifeq ($(PROFILE), APPLY) ++ CFLAGS += -fprofile-use -fprofile-dir=../profile/snes9x2005 -fbranch-probabilities ++endif ++ + ifneq (,$(findstring msvc,$(platform))) + ifeq ($(DEBUG),1) + FLAGS += -MTd diff --git a/patches/snes9x2005/1000-trimui-support.patch b/patches/snes9x2005/1000-trimui-support.patch deleted file mode 100644 index 96dcb78..0000000 --- a/patches/snes9x2005/1000-trimui-support.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff --git a/Makefile b/Makefile -index b293853..bc220bd 100644 ---- a/Makefile -+++ b/Makefile -@@ -282,6 +282,20 @@ else ifeq ($(platform), gcw0) - FLAGS += -fomit-frame-pointer -ffast-math -march=mips32 -mtune=mips32r2 -mhard-float - FLAGS += -DFAST_LSB_WORD_ACCESS - -+else ifeq ($(platform), trimui) -+ TARGET := $(TARGET_NAME)_libretro.so -+ CC = $(CROSS_COMPILE)gcc -+ AR = $(CROSS_COMPILE)ar -+ SHARED := -shared -Wl,--version-script=link.T -Wl,--no-undefined -+ CFLAGS += -fsingle-precision-constant -fno-PIC -flto -+ CFLAGS += -DLSB_FIRST -DFAST_ALIGNED_LSB_WORD_ACCESS -DRIGHTSHIFT_IS_SAR -+ CFLAGS += -std=c99 -fomit-frame-pointer -ffast-math -mcpu=arm926ej-s -mtune=arm926ej-s -+ LDFLAGS += -flto -+ OPTIMIZE += -Ofast -DNDEBUG=1 -+ ifeq (,$(DEBUG)) -+ LDFLAGS += -s -+ endif -+ - # (armv7 a7, hard point, neon based) ### - # NESC, SNESC, C64 mini - else ifeq ($(platform), classic_armv7_a7) -@@ -570,10 +584,20 @@ endif - - ifeq ($(DEBUG),1) - FLAGS += -O0 -g -+else ifneq (,$(OPTIMIZE)) -+ FLAGS += $(OPTIMIZE) - else - FLAGS += -O2 -DNDEBUG - endif - -+ -+ifeq ($(PROFILE), GENERATE) -+ CFLAGS += -fprofile-generate=./profile/snes9x2005 -+ LIBS += -lgcov -+else ifeq ($(PROFILE), APPLY) -+ CFLAGS += -fprofile-use -fprofile-dir=../profile/snes9x2005 -fbranch-probabilities -+endif -+ - ifneq (,$(findstring msvc,$(platform))) - ifeq ($(DEBUG),1) - FLAGS += -MTd -- cgit v1.2.3