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
+26 -55
View File
@@ -1,63 +1,34 @@
# Play! emulator BIOS profile
# Generated from source analysis of https://github.com/jpd002/Play-
# Commit analyzed: HEAD as of 2026-03-17
emulator: "Play!"
emulator: play
type: libretro
core_name: play_libretro
core_classification: official_port
source: "https://github.com/jpd002/Play-"
profiled_date: "2026-03-18"
upstream: "https://github.com/jpd002/Play-"
profiled_date: "2026-03-24"
core_version: "Git"
display_name: "Sony - PlayStation 2 (Play!)"
systems: [sony-playstation-2]
cores:
- play
systems:
- sony-playstation-2
bios_directory: null
bios_detection: "hle"
bios_selection: "not_applicable"
validation:
method: "none"
note: >
Play! is a full HLE (High-Level Emulation) PS2 emulator. It does not load or
require any real PS2 BIOS dump. The LoadBIOS() function in Ee_SubSystem.cpp
(which would read ./vfs/rom0/scph10000.bin) is commented out in PS2VM.cpp:ResetVM().
files: []
# No BIOS files required.
# IOP modules (rom0:SIO2MAN, rom0:PADMAN, rom0:MCMAN, rom0:MCSERV, etc.)
# are all replaced by HLE implementations in Source/iop/IopBios.cpp.
# The EE kernel/OS is reimplemented in Source/ee/PS2OS.cpp.
virtual_filesystem:
# Play! uses a virtual filesystem for memory cards and disc access,
# but these are runtime directories, not BIOS files.
mc0: {default: "vfs/mc0", purpose: "Memory card slot 0 (save data)"}
mc1: {default: "vfs/mc1", purpose: "Memory card slot 1 (save data)"}
host: {default: "vfs/host", purpose: "Host filesystem access"}
cdrom0: {default: null, purpose: "Disc image (set per-game)"}
memory_layout:
EE_RAM: {size: "32 MB (0x02000000)"}
EE_BIOS: {size: "4 MB (0x00400000)", note: "Allocated but unused, HLE replaces real BIOS"}
IOP_RAM: {size: "2 MB (0x00200000)"}
SPU_RAM: {size: "2 MB (0x00200000)"}
# Full HLE PS2 emulator by Jean-Philip Desjardins.
# All PS2 subsystems are reimplemented in C++: EE kernel (PS2OS.cpp),
# IOP BIOS modules (IopBios.cpp), GS, SPU2, VU units.
# The libretro core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY.
#
# LoadBIOS() exists in Ee_SubSystem.cpp:832 but is commented out at line 232.
# IOP modules (SIO2MAN, PADMAN, MCMAN, MCSERV, CDVDMAN, CDVDFSV, etc.)
# are all HLE-replaced via m_hleModules in IopBios.cpp:279-290.
# _IOP_EMULATE_MODULES=1 is unconditionally defined in CMakeLists.txt:24.
#
# source_ref: Source/ee/Ee_SubSystem.cpp:232 (LoadBIOS commented out)
# source_ref: Source/iop/IopBios.cpp:279-290 (HLE module table)
# source_ref: Source/PS2VM.cpp:483-537 (ResetVM — no BIOS loading)
# source_ref: Source/ui_libretro/main_libretro.cpp:546-568 (retro_init — no file I/O)
# source_ref: README.md:4 ("Using an external BIOS file is not necessary or possible.")
# source_ref: play_libretro.info (firmware_count absent = 0)
notes: |
Play! does not require any PS2 BIOS files. Unlike PCSX2, it uses High-Level
Emulation to reimplement the PS2 kernel, IOP BIOS modules, and system services
entirely in C++.
Full HLE emulator. No BIOS or firmware files required. firmware_count=0 confirmed by source.
Key HLE components:
- EE kernel: Source/ee/PS2OS.cpp (handles BootFromCDROM, BootFromFile, syscalls)
- IOP BIOS: Source/iop/IopBios.cpp (HLE modules for rom0:PADMAN, MCMAN, MCSERV, etc.)
- No rom0/rom1/erom files are loaded at runtime
The legacy LoadBIOS() function in Source/ee/Ee_SubSystem.cpp references
"./vfs/rom0/scph10000.bin" but this call is commented out in PS2VM::ResetVM()
and has no effect on emulation.
mc2_ings.ico is not referenced anywhere in Play! source code. That file is
specific to PCSX2's memory card icon handling, not Play!.
The libretro core supports: .elf, .iso, .cso, .isz, .bin disc images.
Extensions handled in main_libretro.cpp:retro_get_system_info().
files: []