From 8aa3a79bbed36430f48466a3f7f1e5de7f5cd8af Mon Sep 17 00:00:00 2001 From: neonloop Date: Thu, 19 Jan 2023 15:38:41 +0000 Subject: Adds snes9x2010 core --- .gitignore | 1 + Makefile | 9 ++++- overrides.c | 2 ++ overrides/snes9x2010.h | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 overrides/snes9x2010.h 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 \ +} -- cgit v1.2.3