Files
libretro/emulators/sdlpal.yml
Abdessamad Derraz ebb55a445b 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.
2026-03-25 07:00:17 +01:00

261 lines
8.0 KiB
YAML

emulator: SDLPAL
type: libretro
core_classification: official_port
source: "https://github.com/sdlpal/sdlpal"
upstream: "https://github.com/sdlpal/sdlpal"
profiled_date: "2026-03-25"
core_version: "v2.0.1"
display_name: "SDLPAL"
cores:
- sdlpal
systems:
- sdlpal
notes: |
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 at the game
directory. The game is available on Steam (app 1546570). Auto-detects
DOS vs Win95 game data.
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
# 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, 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: "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 (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."
- 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)."
- 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."
- name: "gop.mkf"
category: game_data
path: "sdlpal/gop.mkf"
required: true
source_ref: "util.c:735, res.c:234"
note: "Game object palette/graphics archive."
- name: "map.mkf"
category: game_data
path: "sdlpal/map.mkf"
required: true
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."
- name: "pat.mkf"
category: game_data
path: "sdlpal/pat.mkf"
required: true
source_ref: "util.c:736, palette.c:53"
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."
- 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."
- name: "sss.mkf"
category: game_data
path: "sdlpal/sss.mkf"
required: true
source_ref: "util.c:737, global.c:182"
note: "SSS data archive (message offsets in chunk 3)."
# ================================================================
# 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: "Word data (menu items, status labels, item/spell names)."
# ================================================================
# Object descriptions (DOS version only)
# global.c:204 PAL_LoadObjectDesc -> ui.c:864
# ================================================================
- name: "desc.dat"
category: game_data
path: "sdlpal/desc.dat"
required: false
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)
# sound.c:962-975 SOUND_Init
# ================================================================
- name: "voc.mkf"
category: game_data
path: "sdlpal/voc.mkf"
required: false
source_ref: "util.c:743, sound.c:969"
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). Preferred for Win95 game data."
# ================================================================
# Music files (optional, at least one recommended)
# audio.c:302-305 AUDIO_OpenDevice
# ================================================================
- 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, 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)."