mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-13 12:22:33 -05:00
feat: add emulator/system pack generation, validation checks, path resolution
add --emulator, --system, --standalone, --list-emulators, --list-systems to verify.py and generate_pack.py. packs are RTU with data directories, regional BIOS variants, and archive support. validation: field per file (size, crc32, md5, sha1) with conflict detection. by_path_suffix index in database.json for regional variant resolution via dest_hint. restructure GameCube IPL to regional subdirs. 66 E2E tests, full pipeline verified.
This commit is contained in:
@@ -14,6 +14,15 @@ systems: [nintendo-gamecube, nintendo-wii]
|
||||
# Standalone: User/GC/ and User/Wii/
|
||||
# Libretro (RetroArch): system/dolphin-emu/GC/ and system/dolphin-emu/Wii/
|
||||
|
||||
pack_structure:
|
||||
libretro: "dolphin-emu"
|
||||
standalone: ""
|
||||
|
||||
data_directories:
|
||||
- ref: dolphin-sys
|
||||
destination: "Sys"
|
||||
source_ref: "Source/Core/Common/CommonPaths.h:128-141"
|
||||
|
||||
files:
|
||||
# -- GameCube IPL (Boot ROM) --
|
||||
# Region-specific, placed in GC/<region>/IPL.bin
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
emulator: gpSP
|
||||
type: libretro
|
||||
core_classification: community_fork
|
||||
source: "https://github.com/libretro/gpsp"
|
||||
profiled_date: "2026-03-18"
|
||||
upstream: "https://github.com/BASLQC/gPSP"
|
||||
profiled_date: "2026-03-21"
|
||||
core_version: "Git"
|
||||
display_name: "Nintendo - Game Boy Advance (gpSP)"
|
||||
cores:
|
||||
@@ -35,6 +37,9 @@ notes: |
|
||||
precise SWI behavior or BIOS checksum verification. The built-in BIOS
|
||||
works for the vast majority of the GBA library.
|
||||
|
||||
Upstream (Exophase v0.9) required the official BIOS with no fallback.
|
||||
The built-in open-source BIOS is a libretro port addition.
|
||||
|
||||
files:
|
||||
# -------------------------------------------------------
|
||||
# Game Boy Advance - BIOS (optional, built-in fallback)
|
||||
@@ -44,6 +49,7 @@ files:
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 16384 # 16 KB (0x4000)
|
||||
validation: [size]
|
||||
note: "Official GBA BIOS. Built-in open-source BIOS used as fallback. Real BIOS needed for full SWI accuracy and boot logo."
|
||||
source_ref: "libretro/libretro.c:1111"
|
||||
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
emulator: Handy
|
||||
type: libretro
|
||||
core_classification: community_fork
|
||||
source: "https://github.com/libretro/libretro-handy"
|
||||
profiled_date: "2026-03-18"
|
||||
profiled_date: "2026-03-21"
|
||||
core_version: "0.95"
|
||||
display_name: "Atari - Lynx (Handy)"
|
||||
cores:
|
||||
- handy
|
||||
systems: [atari-lynx]
|
||||
|
||||
notes: |
|
||||
@@ -36,8 +39,7 @@ files:
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 512
|
||||
md5: "fcd403db69f54290b51035d82f835e7b"
|
||||
sha1: "e4ed47fae31693e016b081c6bda48da5b70d7ccb"
|
||||
crc32: "0d973c9d"
|
||||
validation: [size, crc32]
|
||||
source_ref: "rom.h:48-49 (ROM_SIZE=0x200, ROM_CRC32=0xD973C9D), rom.cpp:76-128 (CRom constructor), libretro.cpp:1231-1258 (bios path + CSystem init)"
|
||||
notes: "Validated by CRC32 at load time. If invalid or missing, core uses HLE fallback (system.cpp HLE_BIOS_* functions). Games work without it but the real boot ROM provides accurate startup timing."
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
emulator: Ishiiruka
|
||||
type: libretro
|
||||
core_classification: enhanced_fork
|
||||
source: "https://github.com/libretro/ishiiruka"
|
||||
profiled_date: "2026-03-18"
|
||||
upstream: "https://github.com/Tinob/Ishiiruka"
|
||||
profiled_date: "2026-03-21"
|
||||
core_version: "Git"
|
||||
display_name: "Nintendo - GameCube / Wii (Ishiiruka)"
|
||||
fork_of: Dolphin
|
||||
cores:
|
||||
- ishiiruka
|
||||
systems: [nintendo-gamecube, nintendo-wii]
|
||||
|
||||
# Ishiiruka is a performance-focused Dolphin fork with custom GPU backends.
|
||||
@@ -19,6 +22,11 @@ systems: [nintendo-gamecube, nintendo-wii]
|
||||
|
||||
# Core options use "ishiiruka_" prefix (ishiiruka_dsp_hle, ishiiruka_efb_scale, etc.)
|
||||
|
||||
data_directories:
|
||||
- ref: dolphin-sys
|
||||
destination: "dolphin-emu/Sys"
|
||||
source_ref: "Source/Core/Common/CommonPaths.h:115"
|
||||
|
||||
files:
|
||||
# -- GameCube IPL (Boot ROM) --
|
||||
# Region-specific, placed in GC/<region>/IPL.bin
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
emulator: JollyCV
|
||||
type: libretro
|
||||
core_classification: official_port
|
||||
source: "https://github.com/libretro/jollycv"
|
||||
profiled_date: "2026-03-18"
|
||||
upstream: "https://gitlab.com/jgemu/jollycv"
|
||||
profiled_date: "2026-03-21"
|
||||
core_version: "2.0.0"
|
||||
display_name: "ColecoVision/CreatiVision/My Vision (JollyCV)"
|
||||
cores:
|
||||
@@ -47,11 +49,9 @@ files:
|
||||
# --- ColecoVision BIOS (required for CV games) ---
|
||||
- name: "coleco.rom"
|
||||
system: colecovision
|
||||
description: "ColecoVision BIOS ROM"
|
||||
required: true
|
||||
size: 8192
|
||||
md5: "2c66f5911e5b42b8ebe113403548eee7"
|
||||
sha1: "4aa1d9b48f39b68bb17b3d6997b74850c6089dc3"
|
||||
validation: [size]
|
||||
source_ref: "libretro/libretro.c:701, src/jcv_coleco.c:402-406"
|
||||
notes: "Mapped at 0x0000-0x1FFF. Replaced by SGM lower RAM when Super Game Module is active. Must be exactly 8192 bytes."
|
||||
|
||||
@@ -61,6 +61,7 @@ files:
|
||||
description: "VTech CreatiVision BIOS ROM"
|
||||
required: true
|
||||
size: 2048
|
||||
validation: [size]
|
||||
source_ref: "libretro/libretro.c:711, src/jcv_crvision.c:315-318"
|
||||
notes: "Mapped at 0xF800-0xFFFF. Must be exactly 2048 bytes."
|
||||
|
||||
|
||||
@@ -40,6 +40,7 @@ files:
|
||||
md5: "562d5ebf9e030a40d6fabfc2f33139fd"
|
||||
sha1: "b2e1955d957a475de2411770452eff4ea19f4cee"
|
||||
crc32: "8016a315"
|
||||
validation: [size, crc32]
|
||||
note: "Magnavox Odyssey2 BIOS (G7000 NTSC). Default BIOS, vpp=0."
|
||||
source_ref: "libretro.c:182-186"
|
||||
|
||||
@@ -54,6 +55,7 @@ files:
|
||||
md5: "f1071cdb0b6b10dde94d3bc8a6146387"
|
||||
sha1: "a6120aed50831c9c0d95dbdf707820f601d9452e"
|
||||
crc32: "a318e8d6"
|
||||
validation: [size, crc32]
|
||||
note: "Philips Videopac G7000 European BIOS. vpp=0, auto-sets PAL region."
|
||||
source_ref: "libretro.c:192-197"
|
||||
|
||||
@@ -68,6 +70,7 @@ files:
|
||||
md5: "c500ff71236068e0dc0d0603d265ae76"
|
||||
sha1: "5130243429b40b01a14e1304d0394b8459a6fbae"
|
||||
crc32: "e20a9f41"
|
||||
validation: [size, crc32]
|
||||
note: "Philips Videopac+ G7400 European BIOS. vpp=1, enables enhanced graphics."
|
||||
source_ref: "libretro.c:187-191"
|
||||
|
||||
@@ -82,6 +85,7 @@ files:
|
||||
md5: "279008e4a0db2dc5f1c048853b033828"
|
||||
sha1: "54b8d2c1317628de51a85fc1c424423a986775e4"
|
||||
crc32: "11647ca5"
|
||||
validation: [size, crc32]
|
||||
note: "Philips Videopac+ G7400 French BIOS (JoPac). vpp=1, enables enhanced graphics."
|
||||
source_ref: "libretro.c:198-203"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user