From a9fd90ad6ad724a5730f216a62ad8fdfbee79c98 Mon Sep 17 00:00:00 2001 From: Shaun Inman Date: Wed, 15 Feb 2023 09:00:39 -0500 Subject: [PATCH] added mgba to extras --- cores/makefile | 2 +- cores/patches/mgba.patch | 31 +++++++++++++++++++ makefile | 3 +- .../EXTRAS/Emus/rg35xx/MGBA.pak/launch.sh | 14 +++++++++ .../EXTRAS/Roms/Game Boy Advance (MGBA)/.keep | 0 .../EXTRAS/Roms/Super Game Boy (MGBA)/.keep | 0 6 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 cores/patches/mgba.patch create mode 100755 skeleton/EXTRAS/Emus/rg35xx/MGBA.pak/launch.sh create mode 100644 skeleton/EXTRAS/Roms/Game Boy Advance (MGBA)/.keep create mode 100644 skeleton/EXTRAS/Roms/Super Game Boy (MGBA)/.keep diff --git a/cores/makefile b/cores/makefile index d4ad7e1..9d2d075 100644 --- a/cores/makefile +++ b/cores/makefile @@ -1,7 +1,7 @@ # this logic was broken out from picoarch's all-in-one makefile CORES = fceumm gambatte gpsp pcsx_rearmed picodrive snes9x2005_plus -CORES+= beetle-vb fake-08 mednafen_supafaust pokemini # extras +CORES+= beetle-vb fake-08 mednafen_supafaust mgba pokemini # extras ############################### diff --git a/cores/patches/mgba.patch b/cores/patches/mgba.patch new file mode 100644 index 0000000..0a9e658 --- /dev/null +++ b/cores/patches/mgba.patch @@ -0,0 +1,31 @@ +diff --git forkSrcPrefix/Makefile.libretro forkDstPrefix/Makefile.libretro +index 108148f4579f4727146e5b8c1e05ef7382654208..4ff34d4c2b5c6031ce4c3256f1b70daba99a583c 100644 +--- forkSrcPrefix/Makefile.libretro ++++ forkDstPrefix/Makefile.libretro +@@ -417,6 +417,26 @@ else ifeq ($(platform), miyoo) + CFLAGS += -fno-common -ftree-vectorize -funswitch-loops + DEFINES += -std=c99 + ++# RG35XX ++else ifeq ($(platform), rg35xx) ++ TARGET := $(TARGET_NAME)_libretro.so ++ CC = $(CROSS_COMPILE)gcc ++ CXX = $(CROSS_COMPILE)g++ ++ AR = $(CROSS_COMPILE)ar ++ SHARED := -shared -Wl,--version-script=link.T ++ fpic := -fPIC ++ PLATFORM_DEFINES += -D_GNU_SOURCE -DHAVE_STRTOF_L -DHAVE_LOCALE ++ CFLAGS += -fomit-frame-pointer -ffast-math ++ CFLAGS += -marm -mtune=cortex-a9 -mfpu=neon-fp16 -mfloat-abi=hard -march=armv7-a ++ CFLAGS += -fno-common -ftree-vectorize -funswitch-loops ++ HAVE_NEON = 1 ++ ARCH = arm ++ BUILTIN_GPU = neon ++ CPU_ARCH := arm ++ MMAP_JIT_CACHE = 1 ++ HAVE_DYNAREC = 1 ++ DEFINES += -std=c99 ++ + # Windows + else + TARGET := $(TARGET_NAME)_libretro.dll diff --git a/makefile b/makefile index f0fd27c..b23bedf 100644 --- a/makefile +++ b/makefile @@ -79,9 +79,10 @@ bundle: cp ./cores/output/snes9x2005_plus_libretro.so ./build/SYSTEM/rg35xx/cores # extras + cp ./cores/output/fake08_libretro.so ./build/EXTRAS/Emus/rg35xx/P8.pak + cp ./cores/output/mgba_libretro.so ./build/EXTRAS/Emus/rg35xx/MGBA.pak cp ./cores/output/mednafen_vb_libretro.so ./build/EXTRAS/Emus/rg35xx/VB.pak cp ./cores/output/pokemini_libretro.so ./build/EXTRAS/Emus/rg35xx/PKM.pak - cp ./cores/output/fake08_libretro.so ./build/EXTRAS/Emus/rg35xx/P8.pak cp ./other/DinguxCommander/output/DinguxCommander ./build/EXTRAS/Tools/rg35xx/Files.pak cp -R ./other/DinguxCommander/res ./build/EXTRAS/Tools/rg35xx/Files.pak/ diff --git a/skeleton/EXTRAS/Emus/rg35xx/MGBA.pak/launch.sh b/skeleton/EXTRAS/Emus/rg35xx/MGBA.pak/launch.sh new file mode 100755 index 0000000..eb34ffc --- /dev/null +++ b/skeleton/EXTRAS/Emus/rg35xx/MGBA.pak/launch.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +EMU_EXE=mgba +CORES_PATH=$(dirname "$0") + +############################### + +EMU_TAG=$(basename "$(dirname "$0")" .pak) +ROM="$1" +mkdir -p "$BIOS_PATH/$EMU_TAG" +mkdir -p "$SAVES_PATH/$EMU_TAG" +HOME="$USERDATA_PATH" +cd "$HOME" +minarch.elf "$CORES_PATH/${EMU_EXE}_libretro.so" "$ROM" DMG &> "$LOGS_PATH/$EMU_TAG.txt" diff --git a/skeleton/EXTRAS/Roms/Game Boy Advance (MGBA)/.keep b/skeleton/EXTRAS/Roms/Game Boy Advance (MGBA)/.keep new file mode 100644 index 0000000..e69de29 diff --git a/skeleton/EXTRAS/Roms/Super Game Boy (MGBA)/.keep b/skeleton/EXTRAS/Roms/Super Game Boy (MGBA)/.keep new file mode 100644 index 0000000..e69de29