feat: re-profile 40 emulators, harden CI workflows

profile emulators pd777 through tic80, add frozen snapshots
(puae2021, snes9x2002/2005/2010, stella2014/2023).

CI: replace github-script with gh CLI, add test execution,
job-level permissions, propagate changed output, pin jsonschema.
This commit is contained in:
Abdessamad Derraz
2026-03-25 07:00:17 +01:00
parent 0543165ed2
commit ebb55a445b
69 changed files with 2337 additions and 1544 deletions

View File

@@ -1,226 +1,179 @@
emulator: SAME CDi
type: libretro
cores: [same_cdi]
core_classification: community_fork
source: "https://github.com/libretro/same_cdi"
profiled_date: "2026-03-18"
upstream: "https://github.com/mamedev/mame"
profiled_date: "2026-03-25"
core_version: "Git"
display_name: "Philips - CDi (SAME CDi)"
cores: [same_cdi]
systems:
- cdi
notes: |
SAME CDi is a Single Arcade Machine Emulator fork of MAME libretro, stripped
down to just the Philips CD-i driver. The core hardcodes "cdimono1" as the
forced system (retro_init.cpp:86) and searches for MAME ROM ZIPs in:
forced system (retro_init.cpp:86,454) and searches for MAME ROM ZIPs in:
<system_dir>/same_cdi/bios/
The ROM path (-rp) is built at retro_init.cpp:534 as:
<game_path>;<system_dir>/same_cdi/bios/
MAME expects each romset as a ZIP containing the individual ROM files listed
below. The ZIP filenames (cdimono1.zip, cdimono2.zip, cdibios.zip) match
the MAME driver names. Only cdimono1.zip is required for consumer CD-i games;
cdimono2.zip and cdibios.zip are optional (Mono-II and Quizard arcade).
MAME expects each romset as a ZIP containing the individual ROM files.
The ZIP filenames match the MAME driver names. Only cdimono1.zip is required
for consumer CD-i games; other ZIPs are for alternate hardware models or
Quizard arcade (unreachable without boot_from_cli core option).
cdi2015 is an older MAME 2015-based CD-i core with the same BIOS layout.
The driver includes 5 system ROM sets (cdimono1, cdi910, cdimono2, cdi490a,
cdibios) plus Quizard arcade game ROM sets (clones of cdibios with i8751
protection MCU dumps). Upstream MAME has additional ROM sets not present
in this fork (gpi1200, Italian Quizard variants, cdimono2 alternate BIOS).
ROM definitions: src/mame/drivers/cdi.cpp lines 574-650.
System forced: src/osd/libretro/libretro-internal/retro_init.cpp:86.
BIOS path: src/osd/libretro/libretro-internal/retro_init.cpp:534.
Firmware list: same_cdi_libretro.info firmware0-2.
ROM definitions: src/mame/drivers/cdi.cpp:574-640.
Quizard game ROMs: src/mame/drivers/cdi.cpp:662-820.
System forced: retro_init.cpp:86,454,525.
BIOS path: retro_init.cpp:534.
files:
# =====================================================
# cdimono1.zip - Philips CD-i Mono-I (PAL) - REQUIRED
# Contains main CPU BIOS + servo/slave MCU dumps
# =====================================================
# Main CPU BIOS (one of three, selected via MAME BIOS switch)
- name: "cdi200.rom"
zip: "cdimono1.zip"
system: cdi
region: [north-america]
required: true
size: 524288 # 0x80000
crc32: "40c4e6b9"
sha1: "d961de803c89b3d1902d656ceb9ce7c02dccb40a"
note: "Magnavox CD-i 200 BIOS. Default BIOS for cdimono1."
source_ref: "src/mame/drivers/cdi.cpp:577"
- name: "cdi220b.rom"
zip: "cdimono1.zip"
system: cdi
region: [europe]
required: true
size: 524288 # 0x80000
crc32: "279683ca"
sha1: "53360a1f21ddac952e95306ced64186a3fc0b93e"
note: "Philips CD-i 220 F2 BIOS. Alternate BIOS for cdimono1."
source_ref: "src/mame/drivers/cdi.cpp:579"
- name: "cdi220.rom"
zip: "cdimono1.zip"
system: cdi
region: [europe]
required: false
size: 524288 # 0x80000
crc32: "584c0af8"
sha1: "5d757ab46b8c8fc36361555d978d7af768342d47"
note: "Philips CD-i 220 BIOS (alternate, does not boot). Marked non-working."
source_ref: "src/mame/drivers/cdi.cpp:581"
# Servo MCU (MC68HC705C8A) - shared with cdi910 dump, BAD_DUMP
- name: "zx405037p__cdi_servo_2.1__b43t__llek9215.mc68hc705c8a_withtestrom.7201"
zip: "cdimono1.zip"
- name: cdimono1.zip
category: bios_zip
system: cdi
required: true
size: 8192 # 0x2000
crc32: "7a3af407"
sha1: "fdf8d78d6a0df4a56b5b963d72eabd39fcec163f"
note: "Servo MCU 2.1, taken from cdi910 (BAD_DUMP, no Mono-I specific dump)."
source_ref: "src/mame/drivers/cdi.cpp:584"
note: "Forced system. Main CPU BIOS (3 region variants via MAME BIOS switch) + servo/slave MCU dumps."
source_ref: "src/mame/drivers/cdi.cpp:574-589"
contents:
- name: cdi200.rom
description: Magnavox CD-i 200 BIOS (default, US)
size: 524288
crc32: "40c4e6b9"
sha1: "d961de803c89b3d1902d656ceb9ce7c02dccb40a"
- name: cdi220b.rom
description: Philips CD-i 220 F2 BIOS (alternate, PAL)
size: 524288
crc32: "279683ca"
sha1: "53360a1f21ddac952e95306ced64186a3fc0b93e"
- name: cdi220.rom
description: Philips CD-i 220 BIOS (non-working, does not boot)
size: 524288
crc32: "584c0af8"
sha1: "5d757ab46b8c8fc36361555d978d7af768342d47"
- name: "zx405037p__cdi_servo_2.1__b43t__llek9215.mc68hc705c8a_withtestrom.7201"
description: Servo MCU 2.1 MC68HC705C8A (BAD_DUMP, from cdi910)
size: 8192
crc32: "7a3af407"
sha1: "fdf8d78d6a0df4a56b5b963d72eabd39fcec163f"
- name: "zx405042p__cdi_slave_2.0__b43t__zzmk9213.mc68hc705c8a_withtestrom.7206"
description: Slave MCU 2.0 MC68HC705C8A (BAD_DUMP, from cdi910)
size: 8192
crc32: "688cda63"
sha1: "56d0acd7caad51c7de703247cd6d842b36173079"
# Slave MCU (MC68HC705C8A) - shared with cdi910 dump, BAD_DUMP
- name: "zx405042p__cdi_slave_2.0__b43t__zzmk9213.mc68hc705c8a_withtestrom.7206"
zip: "cdimono1.zip"
system: cdi
required: true
size: 8192 # 0x2000
crc32: "688cda63"
sha1: "56d0acd7caad51c7de703247cd6d842b36173079"
note: "Slave MCU 2.0, taken from cdi910 (BAD_DUMP, no Mono-I specific dump)."
source_ref: "src/mame/drivers/cdi.cpp:587"
# =====================================================
# cdimono2.zip - Philips CD-i Mono-II (NTSC) - OPTIONAL
# MACHINE_NOT_WORKING in MAME
# =====================================================
- name: "philips__cdi-220_ph3_r1.2__mb834200b-15__02f_aa__9402_z04.tc574200-le._1.7211"
zip: "cdimono2.zip"
- name: cdimono2.zip
category: bios_zip
system: cdi
required: false
size: 524288 # 0x80000
crc32: "17d723e7"
sha1: "6c317a82e35d60ca5e7a74fc99f665055693169d"
note: "Mono-II main CPU BIOS. Philips CDI-220 PH3 R1.2."
source_ref: "src/mame/drivers/cdi.cpp:623"
note: "CD-i Mono-II (NTSC). MACHINE_NOT_WORKING. Listed in .info as optional."
source_ref: "src/mame/drivers/cdi.cpp:609-618"
contents:
- name: "philips__cdi-220_ph3_r1.2__mb834200b-15__02f_aa__9402_z04.tc574200-le._1.7211"
description: Mono-II main CPU BIOS, Philips CDI-220 PH3 R1.2
size: 524288
crc32: "17d723e7"
sha1: "6c317a82e35d60ca5e7a74fc99f665055693169d"
- name: "zc405351p__servo_cdi_4.1__0d67p__lluk9404.mc68hc705c8a.7490"
description: Mono-II servo MCU 4.1
size: 8192
crc32: "2bc8e4e9"
sha1: "8cd052b532fc052d6b0077261c12f800e8655bb1"
- name: "zc405352p__slave_cdi_4.1__0d67p__lltr9403.mc68hc705c8a.7206"
description: Mono-II slave MCU 4.1
size: 8192
crc32: "5b19da07"
sha1: "cf02d84977050c71e87a38f1249e83c43a93949b"
- name: "zc405351p__servo_cdi_4.1__0d67p__lluk9404.mc68hc705c8a.7490"
zip: "cdimono2.zip"
- name: cdibios.zip
category: bios_zip
system: cdi
required: false
size: 8192 # 0x2000
crc32: "2bc8e4e9"
sha1: "8cd052b532fc052d6b0077261c12f800e8655bb1"
note: "Mono-II servo MCU 4.1."
source_ref: "src/mame/drivers/cdi.cpp:626"
note: "CD-i BIOS for Quizard arcade. MACHINE_IS_BIOS_ROOT. Subset of cdimono1 + slave MCU."
source_ref: "src/mame/drivers/cdi.cpp:630-640"
contents:
- name: cdi200.rom
description: Magnavox CD-i 200 BIOS (same as cdimono1)
size: 524288
crc32: "40c4e6b9"
sha1: "d961de803c89b3d1902d656ceb9ce7c02dccb40a"
- name: cdi220b.rom
description: Philips CD-i 220 F2 BIOS (same as cdimono1)
size: 524288
crc32: "279683ca"
sha1: "53360a1f21ddac952e95306ced64186a3fc0b93e"
- name: "zx405042p__cdi_slave_2.0__b43t__zzmk9213.mc68hc705c8a_withtestrom.7206"
description: Slave MCU 2.0 (BAD_DUMP, same as cdimono1)
size: 8192
crc32: "688cda63"
sha1: "56d0acd7caad51c7de703247cd6d842b36173079"
- name: "zc405352p__slave_cdi_4.1__0d67p__lltr9403.mc68hc705c8a.7206"
zip: "cdimono2.zip"
- name: cdi910.zip
category: bios_zip
system: cdi
required: false
size: 8192 # 0x2000
crc32: "5b19da07"
sha1: "cf02d84977050c71e87a38f1249e83c43a93949b"
note: "Mono-II slave MCU 4.1."
source_ref: "src/mame/drivers/cdi.cpp:629"
note: "CD-i 910-17P Mini-MMC (PAL). MACHINE_NOT_WORKING. Not in .info firmware list."
source_ref: "src/mame/drivers/cdi.cpp:591-607"
contents:
- name: "philips__cd-i_2.1__mb834200b-15__26b_aa__9224_z01.tc574200.7211"
description: CD-i 910-17P Mini-MMC BIOS (default)
size: 524288
crc32: "4ae3bee3"
sha1: "9729b4ee3ce0c17172d062339c47b1ab822b222b"
- name: cdi910.rom
description: CD-i 910 alternate BIOS
size: 524288
crc32: "2f3048d2"
sha1: "11c4c3e602060518b52e77156345fa01f619e793"
- name: "zx405037p__cdi_servo_2.1__b43t__llek9215.mc68hc705c8a_withtestrom.7201"
description: Servo MCU 2.1 (same ROM as cdimono1, not BAD_DUMP here)
size: 8192
crc32: "7a3af407"
sha1: "fdf8d78d6a0df4a56b5b963d72eabd39fcec163f"
- name: "zx405042p__cdi_slave_2.0__b43t__zzmk9213.mc68hc705c8a_withtestrom.7206"
description: Slave MCU 2.0 (same ROM as cdimono1, not BAD_DUMP here)
size: 8192
crc32: "688cda63"
sha1: "56d0acd7caad51c7de703247cd6d842b36173079"
- name: "ti_portugal_206xf__tibpal20l8-15cnt__m7205n.7205.bin"
description: PAL chip dump
size: 324
crc32: "dd167e0d"
sha1: "2ba82a4619d7a0f19e62e02a2841afd4d45d56ba"
- name: "ti_portugal_774_206xf__tibpal16l8-10cn_m7204n.7204.bin"
description: PAL chip dump
size: 260
crc32: "04e6bd37"
sha1: "153d1a977291bedb7420484a9f889325dbd3628e"
# =====================================================
# cdibios.zip - CD-i BIOS for Quizard arcade - OPTIONAL
# Subset of cdimono1 ROMs + slave MCU, used by Quizard games
# =====================================================
# cdibios reuses cdi200.rom and cdi220b.rom (same hashes as cdimono1)
# plus the slave MCU. Listed here for completeness of the ZIP contents.
- name: "cdi200.rom"
zip: "cdibios.zip"
- name: cdi490a.zip
category: bios_zip
system: cdi
required: false
size: 524288 # 0x80000
crc32: "40c4e6b9"
sha1: "d961de803c89b3d1902d656ceb9ce7c02dccb40a"
note: "Magnavox CD-i 200 BIOS (same as cdimono1). For Quizard arcade."
source_ref: "src/mame/drivers/cdi.cpp:639"
- name: "cdi220b.rom"
zip: "cdibios.zip"
system: cdi
required: false
size: 524288 # 0x80000
crc32: "279683ca"
sha1: "53360a1f21ddac952e95306ced64186a3fc0b93e"
note: "Philips CD-i 220 F2 BIOS (same as cdimono1). For Quizard arcade."
source_ref: "src/mame/drivers/cdi.cpp:641"
- name: "zx405042p__cdi_slave_2.0__b43t__zzmk9213.mc68hc705c8a_withtestrom.7206"
zip: "cdibios.zip"
system: cdi
required: false
size: 8192 # 0x2000
crc32: "688cda63"
sha1: "56d0acd7caad51c7de703247cd6d842b36173079"
note: "Slave MCU 2.0 (BAD_DUMP, same as cdimono1). For Quizard arcade."
source_ref: "src/mame/drivers/cdi.cpp:645"
# =====================================================
# Additional MAME romsets (not in libretro .info firmware list)
# These are part of the MAME driver but not declared as
# required firmware by the libretro core.
# =====================================================
# cdi910 - CD-i 910-17P Mini-MMC (PAL) - MACHINE_NOT_WORKING
- name: "philips__cd-i_2.1__mb834200b-15__26b_aa__9224_z01.tc574200.7211"
zip: "cdi910.zip"
system: cdi
required: false
size: 524288 # 0x80000
crc32: "4ae3bee3"
sha1: "9729b4ee3ce0c17172d062339c47b1ab822b222b"
note: "CD-i 910-17P Mini-MMC BIOS. Not listed in libretro firmware."
source_ref: "src/mame/drivers/cdi.cpp:594"
- name: "cdi910.rom"
zip: "cdi910.zip"
system: cdi
required: false
size: 524288 # 0x80000
crc32: "2f3048d2"
sha1: "11c4c3e602060518b52e77156345fa01f619e793"
note: "CD-i 910 alternate BIOS. Not listed in libretro firmware."
source_ref: "src/mame/drivers/cdi.cpp:596"
# cdi490a - CD-i 490 - MACHINE_NOT_WORKING
- name: "cdi490a.rom"
zip: "cdi490a.zip"
system: cdi
required: false
size: 524288 # 0x80000
crc32: "e2f200f6"
sha1: "c9bf3c4c7e4fe5cbec3fe3fc993c77a4522ca547"
note: "CD-i 490 BIOS. Not listed in libretro firmware."
source_ref: "src/mame/drivers/cdi.cpp:633"
- name: "impega.rom"
zip: "cdi490a.zip"
system: cdi
required: false
size: 262144 # 0x40000
crc32: "84d6f6aa"
sha1: "02526482a0851ea2a7b582d8afaa8ef14a8bd914"
note: "CD-i 490 MPEG audio decoder ROM."
source_ref: "src/mame/drivers/cdi.cpp:636"
- name: "vmpega.rom"
zip: "cdi490a.zip"
system: cdi
required: false
size: 262144 # 0x40000
crc32: "db264e8b"
sha1: "be407fbc102f1731a0862554855e963e5a47c17b"
note: "CD-i 490 MPEG video decoder ROM."
source_ref: "src/mame/drivers/cdi.cpp:637"
note: "CD-i 490. MACHINE_NOT_WORKING. Not in .info firmware list."
source_ref: "src/mame/drivers/cdi.cpp:620-628"
contents:
- name: cdi490a.rom
description: CD-i 490 main CPU BIOS
size: 524288
crc32: "e2f200f6"
sha1: "c9bf3c4c7e4fe5cbec3fe3fc993c77a4522ca547"
- name: impega.rom
description: MPEG audio decoder ROM
size: 262144
crc32: "84d6f6aa"
sha1: "02526482a0851ea2a7b582d8afaa8ef14a8bd914"
- name: vmpega.rom
description: MPEG video decoder ROM
size: 262144
crc32: "db264e8b"
sha1: "be407fbc102f1731a0862554855e963e5a47c17b"
platform_details:
cdi:
@@ -232,4 +185,4 @@ platform_details:
rom_path_flag: "-rp"
rom_search_path: "<game_path>;<system_dir>/same_cdi/bios/"
supported_extensions: ["chd", "iso", "cue"]
source_ref: "retro_init.cpp:86,534 same_cdi_libretro.info"
source_ref: "retro_init.cpp:86,454,525,534"