aboutsummaryrefslogtreecommitdiff
path: root/patches/snes9x2005
diff options
context:
space:
mode:
authorneonloop2023-07-24 22:07:02 +0000
committerneonloop2023-07-24 22:07:02 +0000
commit694af47e2b3dc8c24dac704f293f4bcf9ab67858 (patch)
tree381e226413736125f116696671bbc58d61cc2981 /patches/snes9x2005
parentecb3c7bf765a84413ac0a53ffca7c8bf470c821f (diff)
downloadpicoarch-694af47e2b3dc8c24dac704f293f4bcf9ab67858.tar.gz
picoarch-694af47e2b3dc8c24dac704f293f4bcf9ab67858.tar.bz2
picoarch-694af47e2b3dc8c24dac704f293f4bcf9ab67858.zip
Changes funkey-s platform to unix-armv7-hardfloat-neon
More generic platform is supported by more cores, fewer patches needed to get cores to build. Adding new cores is easier. unix-armv7-cortexa7-hardfloat-neon causes warnings, maybe SDK bug? Generic platform may not be as optimized, but speed difference can be fixed with patches if discovered.
Diffstat (limited to 'patches/snes9x2005')
-rw-r--r--patches/snes9x2005/0001-frameskip-interval.patc_107
-rw-r--r--patches/snes9x2005/1000-trimui-support.patc_46
-rw-r--r--patches/snes9x2005/1001-funkey-s-support.patch93
3 files changed, 0 insertions, 246 deletions
diff --git a/patches/snes9x2005/0001-frameskip-interval.patc_ b/patches/snes9x2005/0001-frameskip-interval.patc_
deleted file mode 100644
index f1c431d..0000000
--- a/patches/snes9x2005/0001-frameskip-interval.patc_
+++ /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_
deleted file mode 100644
index 96dcb78..0000000
--- a/patches/snes9x2005/1000-trimui-support.patc_
+++ /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
diff --git a/patches/snes9x2005/1001-funkey-s-support.patch b/patches/snes9x2005/1001-funkey-s-support.patch
deleted file mode 100644
index 1825917..0000000
--- a/patches/snes9x2005/1001-funkey-s-support.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-diff --git a/Makefile b/Makefile
-index 23b8979..0a09e85 100644
---- a/Makefile
-+++ b/Makefile
-@@ -74,13 +74,46 @@ ifeq ($(platform), unix)
- fpic := -fPIC
- SHARED := -shared -Wl,--no-undefined -Wl,--version-script=link.T
- CFLAGS += -fno-builtin -fno-exceptions -ffunction-sections
--# ARM
-+# (armv7 a7, hard point, neon based) ###
-+# NESC, SNESC, C64 mini
-+else ifeq ($(platform), classic_armv7_a7)
-+ TARGET := $(TARGET_NAME)_libretro.so
-+ fpic := -fPIC
-+ SHARED := -shared -Wl,--version-script=link.T -Wl,--no-undefined
-+ CFLAGS += -Ofast \
-+ -flto=4 -fwhole-program -fuse-linker-plugin \
-+ -fdata-sections -ffunction-sections -Wl,--gc-sections \
-+ -fno-stack-protector -fno-ident -fomit-frame-pointer \
-+ -falign-functions=1 -falign-jumps=1 -falign-loops=1 \
-+ -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-unroll-loops \
-+ -fmerge-all-constants -fno-math-errno \
-+ -marm -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard
-+ CC = $(CROSS_COMPILE)gcc
-+ AR = $(CROSS_COMPILE)ar
-+ CXXFLAGS += $(CFLAGS)
-+ CPPFLAGS += $(CFLAGS)
-+ ASFLAGS += $(CFLAGS)
-+ HAVE_NEON = 1
-+ ARCH = arm
-+ BUILTIN_GPU = neon
-+ USE_DYNAREC = 1
-+ ifeq ($(shell echo `$(CC) -dumpversion` "< 4.9" | bc -l), 1)
-+ CFLAGS += -march=armv7-a
-+ else
-+ CFLAGS += -march=armv7ve
-+ # If gcc is 5.0 or later
-+ ifeq ($(shell echo `$(CC) -dumpversion` ">= 5" | bc -l), 1)
-+ LDFLAGS += -static-libgcc -static-libstdc++
-+ endif
-+ endif
-+#######################################
-+# generic ARM
- else ifneq (,$(findstring armv,$(platform)))
- TARGET := $(TARGET_NAME)_libretro.so
- fpic := -fPIC
- SHARED := -shared -Wl,--no-undefined -Wl,--version-script=link.T
-- CC = gcc
-- CXX = g++
-+ CC = $(CROSS_COMPILE)gcc
-+ CXX = $(CROSS_COMPILE)g++
- PLATFORM_DEFINES += -marm
- ifneq (,$(findstring softfloat,$(platform)))
- PLATFORM_DEFINES += -mfloat-abi=softfp
-@@ -306,38 +339,6 @@ else
- endif
- OPTIMIZE += -Ofast -DNDEBUG=1
-
--# (armv7 a7, hard point, neon based) ###
--# NESC, SNESC, C64 mini
--else ifeq ($(platform), classic_armv7_a7)
-- TARGET := $(TARGET_NAME)_libretro.so
-- fpic := -fPIC
-- SHARED := -shared -Wl,--version-script=link.T -Wl,--no-undefined
-- CFLAGS += -Ofast \
-- -flto=4 -fwhole-program -fuse-linker-plugin \
-- -fdata-sections -ffunction-sections -Wl,--gc-sections \
-- -fno-stack-protector -fno-ident -fomit-frame-pointer \
-- -falign-functions=1 -falign-jumps=1 -falign-loops=1 \
-- -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-unroll-loops \
-- -fmerge-all-constants -fno-math-errno \
-- -marm -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard
-- CXXFLAGS += $(CFLAGS)
-- CPPFLAGS += $(CFLAGS)
-- ASFLAGS += $(CFLAGS)
-- HAVE_NEON = 1
-- ARCH = arm
-- BUILTIN_GPU = neon
-- USE_DYNAREC = 1
-- ifeq ($(shell echo `$(CC) -dumpversion` "< 4.9" | bc -l), 1)
-- CFLAGS += -march=armv7-a
-- else
-- CFLAGS += -march=armv7ve
-- # If gcc is 5.0 or later
-- ifeq ($(shell echo `$(CC) -dumpversion` ">= 5" | bc -l), 1)
-- LDFLAGS += -static-libgcc -static-libstdc++
-- endif
-- endif
--#######################################
--
- # Windows MSVC 2010 x64
- else ifeq ($(platform), windows_msvc2010_x64)
- CC = cl.exe