From e6a09129316d04907383b738576828c9ad0ae135 Mon Sep 17 00:00:00 2001 From: Rob Loach Date: Sat, 31 Oct 2026 17:37:00 -0400 Subject: [PATCH] core: Add jgenesis libretro core --- build-config.sh | 1 + dist/info/jgenesis_libretro.info | 74 ++++++++++++++++++++++++++++++++ libretro-build.sh | 1 + rules.d/core-rules.sh | 7 +++ 4 files changed, 83 insertions(+) create mode 100644 dist/info/jgenesis_libretro.info diff --git a/build-config.sh b/build-config.sh index 408cb527..c35661d0 100644 --- a/build-config.sh +++ b/build-config.sh @@ -43,6 +43,7 @@ include_core_genesis_plus_gx_wide include_core_picodrive include_core_blastem include_core_clownmdemu +include_core_jgenesis # --- Master System cores --- include_core_gearsystem diff --git a/dist/info/jgenesis_libretro.info b/dist/info/jgenesis_libretro.info new file mode 100644 index 00000000..86b9c9b8 --- /dev/null +++ b/dist/info/jgenesis_libretro.info @@ -0,0 +1,74 @@ +# Software Information +display_name = "Multi (jgenesis)" +categories = "Emulator" +authors = "James Groth" +corename = "jgenesis" +supported_extensions = "sg|sms|gg|gen|md|bin|smd|32x|nes|sfc|smc|gb|gbc|gba|pce|cue|chd|m3u" +license = "GPLv3" +permissions = "" +display_version = "0.14.1" + +# Hardware Information +manufacturer = "Various" +systemname = "Multi System" +systemid = "multi" + +# Firmware / BIOS +firmware_count = 12 +firmware0_desc = "bios_CD_U.bin (Sega CD US BIOS)" +firmware0_path = "bios_CD_U.bin" +firmware0_opt = "true" +firmware1_desc = "bios_CD_E.bin (Mega CD EU BIOS)" +firmware1_path = "bios_CD_E.bin" +firmware1_opt = "true" +firmware2_desc = "bios_CD_J.bin (Mega CD JP BIOS)" +firmware2_path = "bios_CD_J.bin" +firmware2_opt = "true" +firmware3_desc = "gba_bios.bin (Game Boy Advance BIOS)" +firmware3_path = "gba_bios.bin" +firmware3_opt = "true" +firmware4_desc = "syscard3.pce (Super CD-ROM2 System V3.xx)" +firmware4_path = "syscard3.pce" +firmware4_opt = "true" +firmware5_desc = "dsp1.rom (SNES DSP-1 Firmware)" +firmware5_path = "dsp1.rom" +firmware5_opt = "true" +firmware6_desc = "dsp2.rom (SNES DSP-2 Firmware)" +firmware6_path = "dsp2.rom" +firmware6_opt = "true" +firmware7_desc = "dsp3.rom (SNES DSP-3 Firmware)" +firmware7_path = "dsp3.rom" +firmware7_opt = "true" +firmware8_desc = "dsp4.rom (SNES DSP-4 Firmware)" +firmware8_path = "dsp4.rom" +firmware8_opt = "true" +firmware9_desc = "st010.rom (SNES ST010 Firmware)" +firmware9_path = "st010.rom" +firmware9_opt = "true" +firmware10_desc = "st011.rom (SNES ST011 Firmware)" +firmware10_path = "st011.rom" +firmware10_opt = "true" +firmware11_desc = "st018.rom (SNES ST018 Firmware)" +firmware11_path = "st018.rom" +firmware11_opt = "true" +notes = "(!) bios_CD_U.bin (md5): 2efd74e3232ff260e371b99f84024f7f|(!) bios_CD_E.bin (md5): e66fa1dc5820d254611fdcdba0662372|(!) bios_CD_J.bin (md5): 278a9397d192149e84e820ac621a8edd|(!) gba_bios.bin (md5): a860e8c0b6d573d191e4ec7db1b1e4f6|(!) syscard3.pce (md5): 38179df8f4ac870017db21ebcbf53114|[i] Sega CD requires the BIOS matching the game's region. Starting the core without content boots the Sega CD BIOS.|[i] CUE/BIN disc images must not be zipped; use the .cue, .chd, or .m3u directly.|[i] Game Boy Advance requires gba_bios.bin.|[i] PC Engine CD requires syscard3.pce.|[i] SNES coprocessor firmware is only needed by games that use it." + +# Libretro Features +savestate = "true" +savestate_features = "basic" +cheats = "false" +input_descriptors = "true" +memory_descriptors = "false" +libretro_saves = "false" +core_options = "true" +core_options_version = "2.0" +load_subsystem = "true" +supports_no_game = "false" +single_purpose = "false" +database = "Sega - SG-1000|Sega - Master System - Mark III|Sega - Game Gear|Sega - Mega Drive - Genesis|Sega - Mega-CD - Sega CD|Sega - 32X|Nintendo - Nintendo Entertainment System|Nintendo - Super Nintendo Entertainment System|Nintendo - Game Boy|Nintendo - Game Boy Color|Nintendo - Game Boy Advance|NEC - PC Engine - TurboGrafx 16|NEC - PC Engine CD - TurboGrafx-CD" +hw_render = "false" +needs_fullpath = "false" +disk_control = "true" +is_experimental = "true" + +description = "A multi-system emulator written in Rust, covering Sega SG-1000, Master System, Game Gear, Genesis/Mega Drive, Sega CD, 32X, NES, SNES, Game Boy, Game Boy Color, Game Boy Advance, PC Engine and PC Engine CD." diff --git a/libretro-build.sh b/libretro-build.sh index 4589825b..ebf4b5f3 100755 --- a/libretro-build.sh +++ b/libretro-build.sh @@ -166,6 +166,7 @@ build_default_cores() { libretro_build_core snes9x2005 libretro_build_core chimerasnes libretro_build_core clownmdemu + libretro_build_core jgenesis if [ $platform != "psp1" ]; then # Excluded for binary size reasons libretro_build_core fbneo diff --git a/rules.d/core-rules.sh b/rules.d/core-rules.sh index bb889869..35b70998 100644 --- a/rules.d/core-rules.sh +++ b/rules.d/core-rules.sh @@ -1148,6 +1148,13 @@ libretro_smsplus_name="SMSPlus GX" libretro_smsplus_git_url="https://github.com/libretro/smsplus-gx.git" libretro_smsplus_build_makefile="Makefile.libretro" +include_core_jgenesis() { + register_module core "jgenesis" -theos_ios -ngc -wii -psp1 -ps2 -ps3 -sncps3 -qnx +} +libretro_jgenesis_name="jgenesis" +libretro_jgenesis_git_url="https://github.com/RobLoach/libretro-jgenesis.git" +libretro_jgenesis_build_makefile="Makefile.libretro" + include_core_picodrive() { register_module core "picodrive" -theos_ios -ngc -ps3 -wii }