aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorneonloop2023-01-19 15:38:41 +0000
committerneonloop2023-01-19 15:38:41 +0000
commit8aa3a79bbed36430f48466a3f7f1e5de7f5cd8af (patch)
treeb5d295f521868d021e33517d583c13fe4919b54a
parent9128b4e516438301cfcfa7f400d9a4b46bac73ac (diff)
downloadpicoarch-8aa3a79bbed36430f48466a3f7f1e5de7f5cd8af.tar.gz
picoarch-8aa3a79bbed36430f48466a3f7f1e5de7f5cd8af.tar.bz2
picoarch-8aa3a79bbed36430f48466a3f7f1e5de7f5cd8af.zip
Adds snes9x2010 core
-rw-r--r--.gitignore1
-rw-r--r--Makefile9
-rw-r--r--overrides.c2
-rw-r--r--overrides/snes9x2010.h89
4 files changed, 100 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index 9e6bce1..61f0877 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,3 +24,4 @@ picoarch
/snes9x2002
/snes9x2005
/snes9x2005_plus
+/snes9x2010
diff --git a/Makefile b/Makefile
index 28cc4de..44c2c68 100644
--- a/Makefile
+++ b/Makefile
@@ -24,7 +24,7 @@ LDFLAGS = -lc -ldl -lgcc -lm -lSDL -lasound -lpng -lz -Wl,--gc-sections -flto
CORES = beetle-pce-fast bluemsx fceumm fmsx gambatte gme gpsp mame2000 pcsx_rearmed picodrive quicknes smsplus-gx snes9x2002 snes9x2005 $(EXTRA_CORES)
ifneq ($(platform), trimui)
-CORES := $(CORES) fake-08 snes9x2005_plus
+CORES := $(CORES) fake-08 snes9x2005_plus snes9x2010
endif
beetle-pce-fast_REPO = https://github.com/libretro/beetle-pce-fast-libretro
@@ -88,6 +88,8 @@ snes9x2005_plus_REVISION = performance
snes9x2005_plus_FLAGS = USE_BLARGG_APU=1
snes9x2005_plus_TYPES = smc,fig,sfc,gd3,gd7,dx2,bsx,swc,zip
+snes9x2010_TYPES = smc,fig,sfc,gd3,gd7,dx2,bsx,swc,zip
+
ifeq ($(platform), trimui)
OBJS += plat_trimui.o
CFLAGS += -mcpu=arm926ej-s -mtune=arm926ej-s -fno-PIC -DCONTENT_DIR='"/mnt/SDCARD/Roms"'
@@ -445,6 +447,11 @@ snes9x2005_plus_ICON_URL = https://raw.githubusercontent.com/FunKey-Project/FunK
snes9x2005_plus_ICON = snes
snes9x2005_plus_ROM_DIR = /mnt/SNES
+snes9x2010_NAME = snes9x2010
+snes9x2010_ICON_URL = https://raw.githubusercontent.com/FunKey-Project/FunKey-OS/master/FunKey/package/PocketSNES/opk/snes/snes.png
+snes9x2010_ICON = snes
+snes9x2010_ROM_DIR = /mnt/SNES
+
define CORE_opk =
$1_NAME ?= $1
diff --git a/overrides.c b/overrides.c
index 2fe0111..4d195c7 100644
--- a/overrides.c
+++ b/overrides.c
@@ -15,6 +15,7 @@
#include "overrides/snes9x2002.h"
#include "overrides/snes9x2005.h"
#include "overrides/snes9x2005_plus.h"
+#include "overrides/snes9x2010.h"
#include "util.h"
static const struct core_override overrides[] = {
@@ -34,6 +35,7 @@ static const struct core_override overrides[] = {
snes9x2002_overrides,
snes9x2005_overrides,
snes9x2005_plus_overrides,
+ snes9x2010_overrides,
};
static const struct core_override *override;
diff --git a/overrides/snes9x2010.h b/overrides/snes9x2010.h
new file mode 100644
index 0000000..faddc84
--- /dev/null
+++ b/overrides/snes9x2010.h
@@ -0,0 +1,89 @@
+#include "overrides.h"
+
+static const struct core_override_option snes9x2010_core_option_overrides[] = {
+ {
+ .key = "snes9x_2010_region",
+ .desc = "Region (Restart)",
+ .info = "'PAL' is 50hz, 'NTSC' is 60hz. Games will run faster or slower than normal if the incorrect region is selected.",
+ },
+ {
+ .key = "snes9x_2010_aspect",
+ .blocked = true,
+ },
+ {
+ .key = "snes9x_2010_frameskip",
+ .info = "Skip frames to avoid audio crackling. Improves performance at the expense of visual smoothness.",
+ .default_value = "auto"
+ },
+ {
+ .key = "snes9x_2010_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.",
+ },
+ {
+ .key = "snes9x_2010_overclock",
+ .desc = "SuperFX OC",
+ .options = {
+ { "5 MHz (Underclock)", "5 MHz" },
+ { "8 MHz (Underclock)", "8 MHz" },
+ { "9 MHz (Underclock)", "9 MHz" },
+ { "10 MHz (Default)", "Default" },
+ { "11 MHz", NULL },
+ { "12 MHz", NULL },
+ { "13 MHz", NULL },
+ { "14 MHz", NULL },
+ { "15 MHz", NULL },
+ { "20 MHz", NULL },
+ { "30 MHz", NULL },
+ { "40 MHz", NULL },
+ { NULL, NULL},
+ },
+ },
+ {
+ .key = "snes9x_2010_overclock_cycles",
+ .desc = "Overclock (Restart)",
+ .info = "Alleviate normal SNES slowdown. Compatible keeps as much compatibility as possible. Max will reduce more slowdown but break more games.",
+ },
+ {
+ .key = "snes9x_2010_reduce_sprite_flicker",
+ .desc = "Reduce Flicker",
+ .info = "Raises sprite limit to reduce flickering in games.",
+ },
+ {
+ .key = "snes9x_2010_block_invalid_vram_access",
+ .desc = "Block Invalid VRAM",
+ .info = "Some homebrew/ROM hacks require this option to be disabled for correct operation. Requires restart.",
+ },
+ { NULL }
+};
+
+me_bind_action snes9x2010_ctrl_actions[] =
+{
+ { "UP ", 1 << RETRO_DEVICE_ID_JOYPAD_UP},
+ { "DOWN ", 1 << RETRO_DEVICE_ID_JOYPAD_DOWN },
+ { "LEFT ", 1 << RETRO_DEVICE_ID_JOYPAD_LEFT },
+ { "RIGHT ", 1 << RETRO_DEVICE_ID_JOYPAD_RIGHT },
+ { "A BUTTON ", 1 << RETRO_DEVICE_ID_JOYPAD_A },
+ { "B BUTTON ", 1 << RETRO_DEVICE_ID_JOYPAD_B },
+ { "X BUTTON ", 1 << RETRO_DEVICE_ID_JOYPAD_X },
+ { "Y BUTTON ", 1 << RETRO_DEVICE_ID_JOYPAD_Y },
+ { "START ", 1 << RETRO_DEVICE_ID_JOYPAD_START },
+ { "SELECT ", 1 << RETRO_DEVICE_ID_JOYPAD_SELECT },
+ { "L BUTTON ", 1 << RETRO_DEVICE_ID_JOYPAD_L },
+ { "R BUTTON ", 1 << RETRO_DEVICE_ID_JOYPAD_R },
+ { NULL, 0 }
+};
+
+const struct core_override_fast_forward snes9x2010_fast_forward = {
+ .type_key = "snes9x_2010_frameskip",
+ .type_value = "auto",
+ .interval_key = "snes9x_2010_frameskip_interval"
+};
+
+#define snes9x2010_overrides { \
+ .core_name = "snes9x2010", \
+ .fast_forward = &snes9x2010_fast_forward, \
+ .actions = snes9x2010_ctrl_actions, \
+ .action_size = array_size(snes9x2010_ctrl_actions), \
+ .options = snes9x2010_core_option_overrides \
+}