aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorneonloop2021-10-20 14:46:17 +0000
committerneonloop2021-10-20 14:46:17 +0000
commit7c003401f4f1e5463f20af1dc63b25ad8a15e3c1 (patch)
tree2483c34fe9a7f585ea2065566071469a7963fe78
parent0a40303ac6cea506ff678986af5c43d3f689352b (diff)
downloadpicoarch-7c003401f4f1e5463f20af1dc63b25ad8a15e3c1.tar.gz
picoarch-7c003401f4f1e5463f20af1dc63b25ad8a15e3c1.tar.bz2
picoarch-7c003401f4f1e5463f20af1dc63b25ad8a15e3c1.zip
Adds QuickNES core
-rw-r--r--.gitignore1
-rw-r--r--Makefile10
-rw-r--r--overrides.c2
-rw-r--r--overrides/quicknes.h87
-rw-r--r--patches/quicknes/1000-trimui-build.patch25
5 files changed, 123 insertions, 2 deletions
diff --git a/.gitignore b/.gitignore
index 5cd686a..7170363 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,5 +13,6 @@ picoarch
/mame2000
/mame2003_plus
/pcsx_rearmed
+/quicknes
/snes9x2002
/snes9x2005
diff --git a/Makefile b/Makefile
index 19d2e38..e8fb0f2 100644
--- a/Makefile
+++ b/Makefile
@@ -20,7 +20,7 @@ LDFLAGS = -lc -ldl -lgcc -lm -lSDL -lasound -lpng -lz -Wl,--gc-sections -flto
# EXTRA_CORES += fbalpha2012
# EXTRA_CORES += mame2003_plus
-CORES = beetle-pce-fast fceumm gambatte gpsp mame2000 pcsx_rearmed snes9x2002 snes9x2005 $(EXTRA_CORES)
+CORES = beetle-pce-fast fceumm gambatte gpsp mame2000 pcsx_rearmed quicknes snes9x2002 snes9x2005 $(EXTRA_CORES)
beetle-pce-fast_REPO = https://github.com/libretro/beetle-pce-fast-libretro
beetle-pce-fast_CORE = mednafen_pce_fast_libretro.so
@@ -38,6 +38,8 @@ mame2003_plus_REPO = https://github.com/libretro/mame2003-plus-libretro
pcsx_rearmed_MAKEFILE = Makefile.libretro
+quicknes_REPO = https://github.com/libretro/QuickNES_Core
+
ifeq ($(platform), trimui)
OBJS += plat_trimui.o
CFLAGS += -mcpu=arm926ej-s -mtune=arm926ej-s -fno-PIC -DCONTENT_DIR='"/mnt/SDCARD/Roms"'
@@ -147,7 +149,7 @@ fbalpha2012_PAK_NAME = Arcade (FBA)
fceumm_ROM_DIR = FC
fceumm_TYPES = fds,nes,unf,unif
-fceumm_PAK_NAME = Nintendo
+fceumm_PAK_NAME = Nintendo (fceumm)
gambatte_ROM_DIR = GB
gambatte_TYPES = gb,gbc,dmg,zip
@@ -180,6 +182,10 @@ needs-swap
endef
+quicknes_ROM_DIR = FC
+quicknes_TYPES = nes
+quicknes_PAK_NAME = Nintendo
+
snes9x2002_ROM_DIR = SFC
snes9x2002_TYPES = smc,fig,sfc,gd3,gd7,dx2,bsx,swc,zip
snes9x2002_PAK_NAME = Super Nintendo
diff --git a/overrides.c b/overrides.c
index fdb010e..2cc9488 100644
--- a/overrides.c
+++ b/overrides.c
@@ -5,6 +5,7 @@
#include "overrides/gpsp.h"
#include "overrides/mame2000.h"
#include "overrides/pcsx_rearmed.h"
+#include "overrides/quicknes.h"
#include "overrides/snes9x2002.h"
#include "overrides/snes9x2005.h"
#include "util.h"
@@ -16,6 +17,7 @@ static const struct core_override overrides[] = {
gpsp_overrides,
mame2000_overrides,
pcsx_rearmed_overrides,
+ quicknes_overrides,
snes9x2002_overrides,
snes9x2005_overrides,
};
diff --git a/overrides/quicknes.h b/overrides/quicknes.h
new file mode 100644
index 0000000..f132951
--- /dev/null
+++ b/overrides/quicknes.h
@@ -0,0 +1,87 @@
+#include "overrides.h"
+
+static const struct core_override_option quicknes_core_option_overrides[] = {
+ {
+ .key = "quicknes_use_overscan_h",
+ .desc = "Horiz. Overscan",
+ .info = "When disabled, crop out (horizontally) the potentially random glitchy video output that would have been hidden by the TV screen bezel.",
+ },
+ {
+ .key = "quicknes_use_overscan_v",
+ .desc = "Vert. Overscan",
+ .info = "When disabled, crop out (vertically) the potentially random glitchy video output that would have been hidden by the TV screen bezel.",
+ },
+ {
+ .key = "quicknes_palette",
+ .desc = "Palette",
+ .options = {
+ { "default", "Default" },
+ { "asqrealc", "ASQ's Real" },
+ { "nintendo-vc", "Nintendo VC" },
+ { "rgb", "Nintendo RGB PPU" },
+ { "yuv-v3", "FBX's YUV-V3" },
+ { "unsaturated-final", "FBX's Unsaturated" },
+ { "sony-cxa2025as-us", "Sony CXA2025AS US" },
+ { "pal", "PAL" },
+ { "bmf-final2", "BMF's Final 2" },
+ { "bmf-final3", "BMF's Final 3" },
+ { "smooth-fbx", "FBX's Smooth" },
+ { "composite-direct-fbx", "FBX's Compos. Direct" },
+ { "pvm-style-d93-fbx", "FBX's PVM Style D93" },
+ { "ntsc-hardware-fbx", "FBX's NTSC Hardware" },
+ { "nes-classic-fbx-fs", "FBX's NES-Classic FS" },
+ { "nescap", "RGBSource's NESCAP" },
+ { "wavebeam", "nakedarthur's Wavebeam" },
+ { NULL, NULL},
+ },
+ },
+ {
+ .key = "quicknes_no_sprite_limit",
+ .info = "Removes the 8-sprite-per-scanline hardware limit. Reduces flickering at the risk of visual glitches.",
+ },
+ {
+ .key = "quicknes_audio_eq",
+ .desc = "Audio EQ",
+ },
+ {
+ .key = "quicknes_audio_nonlinear",
+ .info = "'Non-Linear' simulates the NES APU. 'Linear' is less accurate but faster. 'Stereo Panning' adds depth with panning techniques and reverb.",
+ },
+ {
+ .key = "quicknes_turbo_pulse_width",
+ .desc = "Turbo (in frames)",
+ .info = "Specifies on / off frame count when turbo buttons are held."
+ },
+ {
+ .key = "quicknes_up_down_allowed",
+ .desc = "Allow Opp. Input",
+ .info = "Enabling allows pressing both left and right (or up and down) directions at the same time. May cause glitches."
+ },
+ {
+ .key = "quicknes_aspect_ratio_par",
+ .blocked = true
+ },
+ { NULL }
+};
+
+me_bind_action quicknes_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 ", 1 << RETRO_DEVICE_ID_JOYPAD_A },
+ { "B ", 1 << RETRO_DEVICE_ID_JOYPAD_B },
+ { "A TURBO ", 1 << RETRO_DEVICE_ID_JOYPAD_X },
+ { "B TURBO ", 1 << RETRO_DEVICE_ID_JOYPAD_Y },
+ { "SELECT ", 1 << RETRO_DEVICE_ID_JOYPAD_START },
+ { "START ", 1 << RETRO_DEVICE_ID_JOYPAD_SELECT },
+ { NULL, 0 }
+};
+
+#define quicknes_overrides { \
+ .core_name = "quicknes", \
+ .actions = quicknes_ctrl_actions, \
+ .action_size = array_size(quicknes_ctrl_actions), \
+ .options = quicknes_core_option_overrides \
+}
diff --git a/patches/quicknes/1000-trimui-build.patch b/patches/quicknes/1000-trimui-build.patch
new file mode 100644
index 0000000..8cc40f9
--- /dev/null
+++ b/patches/quicknes/1000-trimui-build.patch
@@ -0,0 +1,25 @@
+diff --git a/Makefile b/Makefile
+index 2405fd3..a075991 100644
+--- a/Makefile
++++ b/Makefile
+@@ -383,6 +383,20 @@ else ifeq ($(platform), miyoo)
+ PLATFORM_DEFINES += -O3 -fomit-frame-pointer -march=armv5te -mtune=arm926ej-s -ffast-math
+ CXXFLAGS += -fno-rtti -fno-exceptions
+
++# TRIMUI
++else ifeq ($(platform), trimui)
++ TARGET := $(TARGET_NAME)_libretro.so
++ CC = $(CROSS_COMPILE)gcc
++ CXX = $(CROSS_COMPILE)g++
++ AR = $(CROSS_COMPILE)ar
++ SHARED := -shared -Wl,--version-script=link.T -Wl,-no-undefined
++ PLATFORM_DEFINES := -DNO_UNALIGNED_ACCESS
++ PLATFORM_DEFINES += -Ofast -fomit-frame-pointer -march=armv5te -mtune=arm926ej-s -ffast-math -fno-PIC -flto
++ CXXFLAGS += -fno-rtti -fno-exceptions
++ ifeq (,$(DEBUG))
++ LDFLAGS += -s
++ endif
++
+ # Windows MSVC 2017 all architectures
+ else ifneq (,$(findstring windows_msvc2017,$(platform)))
+