From 89ae6d6d0716a82630b33694fc8f506b411d3d9e Mon Sep 17 00:00:00 2001 From: Akkeoss Date: Fri, 11 Jul 2025 09:47:02 +0200 Subject: [PATCH] feat(core): add libretro genesisplusgx-ex for megadrive --- Config.in | 3 ++- configs/recalbox-odroidgo2_defconfig | 1 + configs/recalbox-rg353x_defconfig | 1 + configs/recalbox-rpi4_64_defconfig | 1 + configs/recalbox-rpi5_64_defconfig | 1 + configs/recalbox-x86_64_defconfig | 1 + package/libretro-genesisplusgx-ex/Config.in | 11 ++++++++ .../libretro-genesisplusgx-ex.mk | 27 +++++++++++++++++++ .../systems/megadrive/system.ini | 12 +++++++++ 9 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 package/libretro-genesisplusgx-ex/Config.in create mode 100644 package/libretro-genesisplusgx-ex/libretro-genesisplusgx-ex.mk diff --git a/Config.in b/Config.in index f27a702051..021a5ebbcf 100644 --- a/Config.in +++ b/Config.in @@ -213,7 +213,7 @@ menu "Libretro Cores" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-dice/Config.in" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-dinothawr/Config.in" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-dirksimple/Config.in" - source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-dolphin/Config.in" + source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-dolphin/Config.in" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-dosbox-pure/Config.in" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-easyrpg/Config.in" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-ecwolf/Config.in" @@ -231,6 +231,7 @@ menu "Libretro Cores" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-geargrafx/Config.in" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-gearsystem/Config.in" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-genesisplusgx/Config.in" + source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-genesisplusgx-ex/Config.in" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-genesisplusgxwide/Config.in" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-geolith/Config.in" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-gong/Config.in" diff --git a/configs/recalbox-odroidgo2_defconfig b/configs/recalbox-odroidgo2_defconfig index 7ec9c824c7..f47a74da8d 100644 --- a/configs/recalbox-odroidgo2_defconfig +++ b/configs/recalbox-odroidgo2_defconfig @@ -232,6 +232,7 @@ BR2_PACKAGE_LIBRETRO_GAMBATTE=y BR2_PACKAGE_LIBRETRO_GEARCOLECO=y BR2_PACKAGE_LIBRETRO_GEARSYSTEM=y BR2_PACKAGE_LIBRETRO_GENESISPLUSGX=y +BR2_PACKAGE_LIBRETRO_GENESISPLUSGX_EX=y BR2_PACKAGE_LIBRETRO_GENESISPLUSGXWIDE=y BR2_PACKAGE_LIBRETRO_GEOLITH=y BR2_PACKAGE_LIBRETRO_GONG=y diff --git a/configs/recalbox-rg353x_defconfig b/configs/recalbox-rg353x_defconfig index c7e532f018..ad9cd94099 100644 --- a/configs/recalbox-rg353x_defconfig +++ b/configs/recalbox-rg353x_defconfig @@ -222,6 +222,7 @@ BR2_PACKAGE_LIBRETRO_GAMBATTE=y BR2_PACKAGE_LIBRETRO_GEARCOLECO=y BR2_PACKAGE_LIBRETRO_GEARSYSTEM=y BR2_PACKAGE_LIBRETRO_GENESISPLUSGX=y +BR2_PACKAGE_LIBRETRO_GENESISPLUSGX_EX=y BR2_PACKAGE_LIBRETRO_GENESISPLUSGXWIDE=y BR2_PACKAGE_LIBRETRO_GEOLITH=y BR2_PACKAGE_LIBRETRO_GONG=y diff --git a/configs/recalbox-rpi4_64_defconfig b/configs/recalbox-rpi4_64_defconfig index 3554e9d5a2..412b1cbc57 100644 --- a/configs/recalbox-rpi4_64_defconfig +++ b/configs/recalbox-rpi4_64_defconfig @@ -264,6 +264,7 @@ BR2_PACKAGE_LIBRETRO_GAMBATTE=y BR2_PACKAGE_LIBRETRO_GEARCOLECO=y BR2_PACKAGE_LIBRETRO_GEARSYSTEM=y BR2_PACKAGE_LIBRETRO_GENESISPLUSGX=y +BR2_PACKAGE_LIBRETRO_GENESISPLUSGX_EX=y BR2_PACKAGE_LIBRETRO_GENESISPLUSGXWIDE=y BR2_PACKAGE_LIBRETRO_GEOLITH=y BR2_PACKAGE_LIBRETRO_GONG=y diff --git a/configs/recalbox-rpi5_64_defconfig b/configs/recalbox-rpi5_64_defconfig index 14bd7cfe0f..df2e1e3ea4 100644 --- a/configs/recalbox-rpi5_64_defconfig +++ b/configs/recalbox-rpi5_64_defconfig @@ -265,6 +265,7 @@ BR2_PACKAGE_LIBRETRO_GAMBATTE=y BR2_PACKAGE_LIBRETRO_GEARCOLECO=y BR2_PACKAGE_LIBRETRO_GEARSYSTEM=y BR2_PACKAGE_LIBRETRO_GENESISPLUSGX=y +BR2_PACKAGE_LIBRETRO_GENESISPLUSGX_EX=y BR2_PACKAGE_LIBRETRO_GENESISPLUSGXWIDE=y BR2_PACKAGE_LIBRETRO_GEOLITH=y BR2_PACKAGE_LIBRETRO_GONG=y diff --git a/configs/recalbox-x86_64_defconfig b/configs/recalbox-x86_64_defconfig index 4581d3aa13..496975a81b 100644 --- a/configs/recalbox-x86_64_defconfig +++ b/configs/recalbox-x86_64_defconfig @@ -305,6 +305,7 @@ BR2_PACKAGE_LIBRETRO_GAMBATTE=y BR2_PACKAGE_LIBRETRO_GEARCOLECO=y BR2_PACKAGE_LIBRETRO_GEARSYSTEM=y BR2_PACKAGE_LIBRETRO_GENESISPLUSGX=y +BR2_PACKAGE_LIBRETRO_GENESISPLUSGX_EX=y BR2_PACKAGE_LIBRETRO_GENESISPLUSGXWIDE=y BR2_PACKAGE_LIBRETRO_GEOLITH=y BR2_PACKAGE_LIBRETRO_GONG=y diff --git a/package/libretro-genesisplusgx-ex/Config.in b/package/libretro-genesisplusgx-ex/Config.in new file mode 100644 index 0000000000..7da6186175 --- /dev/null +++ b/package/libretro-genesisplusgx-ex/Config.in @@ -0,0 +1,11 @@ +config BR2_PACKAGE_LIBRETRO_GENESISPLUSGX_EX + bool "libretro-genesisplusgx-ex" + depends on BR2_PACKAGE_RETROARCH + depends on BR2_INSTALL_LIBSTDCPP + help + Expanded MAXROMSIZE for Sega Channel Revival. + + http://github.com/BillyTimeGames/Genesis-Plus-GX-Expanded-Rom-Size + +comment "LIBRETRO_GENESISPLUSGX_EX needs a toolchain w/ C++" + depends on !BR2_INSTALL_LIBSTDCPP diff --git a/package/libretro-genesisplusgx-ex/libretro-genesisplusgx-ex.mk b/package/libretro-genesisplusgx-ex/libretro-genesisplusgx-ex.mk new file mode 100644 index 0000000000..d40769bb6b --- /dev/null +++ b/package/libretro-genesisplusgx-ex/libretro-genesisplusgx-ex.mk @@ -0,0 +1,27 @@ +################################################################################ +# +# GENESIS-PLUS-GX-EX +# +################################################################################ + +# Commit of 2025/07/07 +LIBRETRO_GENESISPLUSGX_EX_VERSION = dea3528cc0e3f54098e1fb91e3ae7e0e5d90a590 +LIBRETRO_GENESISPLUSGX_EX_SITE = $(call github,BillyTimeGames,Genesis-Plus-GX-Expanded-Rom-Size,$(LIBRETRO_GENESISPLUSGX_EX_VERSION)) +LIBRETRO_GENESISPLUSGX_EX_LICENSE = COPYRIGHT +LIBRETRO_GENESISPLUSGX_EX_LICENSE_FILES = LICENSE.txt +LIBRETRO_GENESISPLUSGX_EX_NON_COMMERCIAL = y + +define LIBRETRO_GENESISPLUSGX_EX_BUILD_CMDS + $(SED) "s|-O2|-O3|g" $(@D)/Makefile.libretro + CFLAGS="$(TARGET_CFLAGS) $(COMPILER_COMMONS_CFLAGS_SO)" \ + CXXFLAGS="$(TARGET_CXXFLAGS) $(COMPILER_COMMONS_CXXFLAGS_SO)" \ + LDFLAGS="$(TARGET_LDFLAGS) $(COMPILER_COMMONS_LDFLAGS_SO)" \ + $(MAKE) CXX="$(TARGET_CXX)" CC="$(TARGET_CC)" -C $(@D) -f Makefile.libretro platform="$(RETROARCH_LIBRETRO_BOARD)" +endef + +define LIBRETRO_GENESISPLUSGX_EX_INSTALL_TARGET_CMDS + $(INSTALL) -D $(@D)/genesis_plus_gx_libretro.so \ + $(TARGET_DIR)/usr/lib/libretro/genesisplusgx_ex_libretro.so +endef + +$(eval $(generic-package)) diff --git a/package/recalbox-romfs2/systems/megadrive/system.ini b/package/recalbox-romfs2/systems/megadrive/system.ini index f5c96cdb0e..97c0355f8f 100644 --- a/package/recalbox-romfs2/systems/megadrive/system.ini +++ b/package/recalbox-romfs2/systems/megadrive/system.ini @@ -85,3 +85,15 @@ netplay = 1 softpatching = 0 compatibility = high speed = high + +[core.4] +package = BR2_PACKAGE_LIBRETRO_GENESISPLUSGX_EX +priority = 5 +emulator = "libretro" +core = "genesisplusgx_ex" +extensions = ".68k .bin .gen .md .mdx .smd .zip .7z" +netplay = 1 +softpatching = 1 +compatibility = high +speed = high +crt.available = 1 \ No newline at end of file -- GitLab