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:
Abdessamad Derraz
2026-03-22 14:02:20 +01:00
parent d2adde9846
commit 1d350f0578
21 changed files with 17218 additions and 150 deletions

View File

@@ -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."