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,7 +1,9 @@
emulator: TIC-80
type: libretro
core_classification: game_engine
source: "https://github.com/libretro/TIC-80"
profiled_date: "2026-03-18"
upstream: "https://github.com/nesbox/TIC-80"
profiled_date: "2026-03-25"
core_version: "0.80.0"
display_name: "TIC-80"
cores:
@@ -10,22 +12,17 @@ systems:
- tic80
notes: |
TIC-80 is a fantasy computer for making, playing and sharing tiny games.
The libretro port wraps the nesbox/TIC-80 engine as a submodule.
Fantasy computer for making, playing and sharing tiny games.
The libretro repo wraps nesbox/TIC-80 as a submodule; the libretro
wrapper (tic80_libretro.c) lives in the upstream repo itself.
The core loads .tic cartridge files (and .png for cart-as-image format)
entirely through the libretro data buffer (need_fullpath = false,
tic80_libretro.c:340). Content bytes are passed directly to tic80_load()
at retro_load_game() (tic80_libretro.c:1152).
Content loaded entirely via libretro data buffer (need_fullpath = false,
tic80_libretro.c:340). No call to RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY.
No code path reads any file from the system directory. All VM resources
(sprites, palette, font, sound engine) are compiled into the binary.
The core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. There is no
code path that reads any file from the system directory. No BIOS, firmware,
or boot ROM exists for this platform -- TIC-80 is a self-contained virtual
machine with all system resources built into the engine binary.
The TIC-80 VM provides 80x45 tilemap, 240x136 screen, 256 8x8 sprites,
4 channels of sound, and supports Lua, Moonscript, JavaScript, Wren,
Fennel, Squirrel, Ruby, Python, and Janet as scripting languages.
TIC_MODULE_EXT (dynamic scripting plugins) is disabled in libretro
builds via #if !defined(__LIBRETRO__) in tic80_config.h:36.
files: []
@@ -34,14 +31,12 @@ platform_details:
extensions: "tic, png"
source_ref: "tic80_libretro.c:339"
notes: |
.tic is the native cartridge format containing code, sprites, map,
sound, and music data. .png support allows loading cartridges
.tic is the native cartridge format. .png loads cartridges
encoded as cover images (code stored in PNG metadata).
runtime:
source_ref: "nesbox/TIC-80 (submodule at core/)"
notes: |
The entire TIC-80 runtime (CPU, GPU, APU, scripting engines) is
compiled into the core binary. No external dependencies at runtime.
Entire runtime compiled into the binary. No external dependencies.
State serialization uses TIC_PERSISTENT_SIZE * 4 bytes of pmem()
data (tic80_libretro.c:1203-1243).