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
+129 -90
View File
@@ -1,7 +1,9 @@
emulator: SDLPAL
type: libretro
core_classification: official_port
source: "https://github.com/sdlpal/sdlpal"
profiled_date: "2026-03-18"
upstream: "https://github.com/sdlpal/sdlpal"
profiled_date: "2026-03-25"
core_version: "v2.0.1"
display_name: "SDLPAL"
cores:
@@ -9,175 +11,171 @@ cores:
systems:
- sdlpal
# SDLPAL is an open-source reimplementation of the classic Chinese RPG
# "Xian Jian Qi Xia Zhuan" (Sword and Fairy / PAL) by SoftStar Inc.
#
# It does NOT include any game data. The original game files are proprietary
# and must be obtained separately (e.g. from the Steam release).
#
# The core accepts a .cfg file pointing to the game directory (needs_fullpath).
# When launched without a game (supports_no_game = true), it looks for data
# in <system_dir>/sdlpal/ (libretro.c:201-204).
#
# Data file search (util.c:728-781, UTIL_CheckResourceFiles):
# Required: 13 common .mkf archives + message file (word.dat or m.msg)
# Optional: sound files (voc.mkf, sounds.mkf), music files (midi.mkf, mus.mkf)
#
# Additional optional files loaded at runtime:
# desc.dat - object descriptions (global.c:204, DOS version only)
# mus.mkf - MIDI music archive (audio.c:305)
#
# All files are game data, not BIOS or firmware. No system files are needed
# beyond the original game resource files.
notes: |
No BIOS or firmware required. SDLPAL is a game engine that needs the
original PAL (Sword and Fairy) game data files to run.
Game engine reimplementing the classic Chinese RPG PAL (Sword and Fairy)
by SoftStar Inc. No BIOS or firmware required. All files are proprietary
game data from the original 1995 DOS or 1998 Win95 release.
Place game files in <system_dir>/sdlpal/ or point a .cfg file at the
game directory. The game is available on Steam (app 1546570).
Place game files in <system_dir>/sdlpal/ or point a .cfg at the game
directory. The game is available on Steam (app 1546570). Auto-detects
DOS vs Win95 game data.
The core supports both DOS (original 1995) and Win95 (1998 remake)
versions of the game data. It auto-detects which version is present.
The libretro port disables MP3, OGG, OPUS, native MIDI, and CD audio
backends (pal_config.h). Only RIX (mus.mkf) and software MIDI synthesis
via Timidity/TinySoundFont (midi.mkf + user-provided soundfont) are
available for music.
files:
# ================================================================
# Required game data archives (proprietary, not distributable)
# util.c:733-737 - UTIL_CheckResourceFiles common_files[]
# Required game data archives
# util.c:733-737 UTIL_CheckResourceFiles common_files[]
# global.c:175-182 PAL_InitGlobals
# ================================================================
- name: "abc.mkf"
category: game_data
path: "sdlpal/abc.mkf"
required: true
source_ref: "util.c:734, battle.c:879, global.c:55"
note: >
Animation/battle character data archive. Required for battle scenes
and character animations.
source_ref: "util.c:734, global.c:55, battle.c:879"
note: "Animation and battle character data archive."
- name: "ball.mkf"
category: game_data
path: "sdlpal/ball.mkf"
required: true
source_ref: "util.c:734, global.c:177"
note: >
Ball/magic effect graphics archive.
note: "Magic effect graphics archive."
- name: "data.mkf"
category: game_data
path: "sdlpal/data.mkf"
required: true
source_ref: "util.c:734, global.c:178"
note: >
Core game data archive containing scripts, events, and game logic.
note: "Core game data archive (scripts, events, game logic)."
- name: "f.mkf"
category: game_data
path: "sdlpal/f.mkf"
required: true
source_ref: "util.c:734, global.c:179"
note: >
Face/portrait graphics archive for character dialog.
note: "Face/portrait graphics archive."
- name: "fbp.mkf"
category: game_data
path: "sdlpal/fbp.mkf"
required: true
source_ref: "util.c:735, global.c:175"
note: >
Full-screen background picture archive (cutscenes, title screen).
note: "Full-screen background picture archive (cutscenes, title)."
- name: "fire.mkf"
category: game_data
path: "sdlpal/fire.mkf"
required: true
source_ref: "util.c:735, global.c:180"
note: >
Fire/spell effect graphics archive.
note: "Fire/spell effect graphics archive."
- name: "gop.mkf"
category: game_data
path: "sdlpal/gop.mkf"
required: true
source_ref: "util.c:735, res.c:234"
note: >
GOP (game object palette/graphics) archive.
note: "Game object palette/graphics archive."
- name: "map.mkf"
category: game_data
path: "sdlpal/map.mkf"
required: true
source_ref: "util.c:735, res.c:233, global.c:55"
note: >
Map tile and layout data archive for all game locations.
source_ref: "util.c:735, global.c:55, res.c:233"
note: "Map tile and layout data archive."
- name: "mgo.mkf"
category: game_data
path: "sdlpal/mgo.mkf"
required: true
source_ref: "util.c:736, global.c:176"
note: >
Map graphic object (sprite overlay) archive.
note: "Map graphic object (sprite overlay) archive."
- name: "pat.mkf"
category: game_data
path: "sdlpal/pat.mkf"
required: true
source_ref: "util.c:736, palette.c:53"
note: >
Palette data archive for color management.
note: "Palette data archive."
- name: "rgm.mkf"
category: game_data
path: "sdlpal/rgm.mkf"
required: true
source_ref: "util.c:736, global.c:181"
note: >
RGM graphics archive.
note: "RGM graphics archive."
- name: "rng.mkf"
category: game_data
path: "sdlpal/rng.mkf"
required: true
source_ref: "util.c:736, rngplay.c:402"
note: >
RNG animation/cutscene sequence archive.
note: "RNG animation/cutscene sequence archive."
- name: "sss.mkf"
category: game_data
path: "sdlpal/sss.mkf"
required: true
source_ref: "util.c:737, global.c:182"
note: >
SSS data archive.
note: "SSS data archive (message offsets in chunk 3)."
# ================================================================
# Message/text data (one of these is required)
# util.c:739-741 - msg_files[]
# Message/text data (both required in default mode)
# text.c:718-719 PAL_InitText
# ================================================================
- name: "m.msg"
category: game_data
path: "sdlpal/m.msg"
required: true
source_ref: "util.c:740, text.c:718"
note: "Message text data (dialog, story). Opened via UTIL_OpenRequiredFile in default mode."
- name: "word.dat"
category: game_data
path: "sdlpal/word.dat"
required: true
source_ref: "util.c:741, text.c:719, global.c:197"
note: >
Game text/dialog data file (DOS version). Contains all in-game text
strings. Either word.dat or m.msg is needed depending on game version.
note: "Word data (menu items, status labels, item/spell names)."
- name: "m.msg"
# ================================================================
# Object descriptions (DOS version only)
# global.c:204 PAL_LoadObjectDesc -> ui.c:864
# ================================================================
- name: "desc.dat"
category: game_data
path: "sdlpal/m.msg"
path: "sdlpal/desc.dat"
required: false
source_ref: "util.c:740"
note: >
Alternative message file format. Used by some game distributions
instead of word.dat. The core checks for a configured message file
first, then falls back to word.dat.
source_ref: "global.c:204, ui.c:864"
note: "Object description strings. DOS version only (skipped for Win95). Returns NULL if absent."
# ================================================================
# Embedded font files (optional, DOS game data)
# font.c:102-197 PAL_LoadEmbeddedFont
# ================================================================
- name: "wor16.asc"
category: game_data
path: "sdlpal/wor16.asc"
required: false
source_ref: "font.c:114"
note: "Chinese character code mapping for embedded font. Silently skipped if absent."
- name: "wor16.fon"
category: game_data
path: "sdlpal/wor16.fon"
required: false
source_ref: "font.c:172"
note: "Chinese character bitmap font data. Used with wor16.asc for DOS font rendering."
# ================================================================
# Sound effect files (optional, at least one recommended)
# util.c:743 - sound_files[]
# sound.c:962-975 SOUND_Init
# ================================================================
- name: "voc.mkf"
@@ -185,37 +183,78 @@ files:
path: "sdlpal/voc.mkf"
required: false
source_ref: "util.c:743, sound.c:969"
note: >
VOC format sound effects archive (DOS version). One of voc.mkf or
sounds.mkf is needed for sound effects.
note: "VOC format sound effects archive (DOS version). Preferred for DOS game data."
- name: "sounds.mkf"
category: game_data
path: "sdlpal/sounds.mkf"
required: false
source_ref: "util.c:743, sound.c:964"
note: >
WAV format sound effects archive (Win95 version). Alternative to
voc.mkf with higher quality audio.
note: "WAV format sound effects archive (Win95 version). Preferred for Win95 game data."
# ================================================================
# Music files (optional, at least one recommended)
# util.c:744 - music_files[]
# audio.c:302-305 AUDIO_OpenDevice
# ================================================================
- name: "midi.mkf"
category: game_data
path: "sdlpal/midi.mkf"
required: false
source_ref: "util.c:744, midi.c:78, midi_tsf.c:68"
note: >
MIDI music archive. Used when Music type is set to MIDI.
- name: "mus.mkf"
category: game_data
path: "sdlpal/mus.mkf"
required: false
source_ref: "util.c:744, audio.c:305"
note: >
RIX/OPL music archive. Default music source for the game. Contains
FM synthesizer music data played through OPL emulation.
note: "RIX/OPL music archive. Default music source, played through OPL emulation."
- name: "midi.mkf"
category: game_data
path: "sdlpal/midi.mkf"
required: false
source_ref: "util.c:744, midi.c:78, midi_tsf.c:68, midi_timidity.c:130"
note: "MIDI music archive. Used when Music=MIDI is configured in sdlpal.cfg."
# ================================================================
# AVI cutscene videos (Win95 version only, optional)
# aviplay.c:641-772 PAL_PlayAVI
# Guarded by fEnableAviPlay && fIsWIN95 (global.c:192)
# ================================================================
- name: "1.avi"
category: game_data
path: "sdlpal/1.avi"
required: false
source_ref: "main.c:197"
note: "Trademark screen video (Win95 only). Falls back to RNG animation if absent."
- name: "2.avi"
category: game_data
path: "sdlpal/2.avi"
required: false
source_ref: "main.c:237"
note: "Splash screen video (Win95 only). Falls back to sprite animation if absent."
- name: "3.avi"
category: game_data
path: "sdlpal/3.avi"
required: false
source_ref: "uigame.c:162"
note: "In-game event video (Win95 only)."
- name: "4.avi"
category: game_data
path: "sdlpal/4.avi"
required: false
source_ref: "ending.c:418"
note: "Ending sequence video part 1 (Win95 only)."
- name: "5.avi"
category: game_data
path: "sdlpal/5.avi"
required: false
source_ref: "ending.c:420"
note: "Ending sequence video part 2 (Win95 only)."
- name: "6.avi"
category: game_data
path: "sdlpal/6.avi"
required: false
source_ref: "ending.c:485"
note: "Ending sequence video part 3 (Win95 only)."