mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-10 21:43:23 -05:00
87 lines
3.4 KiB
YAML
87 lines
3.4 KiB
YAML
emulator: corsixth
|
|
type: standalone
|
|
core_classification: game_engine
|
|
source: "https://github.com/CorsixTH/CorsixTH"
|
|
upstream: ~
|
|
profiled_date: "2026-10-04"
|
|
source_commit: "2d4671e267cae25847432a2e7d4f814b44f91e35"
|
|
core_version: "0.70.1"
|
|
display_name: "Theme Hospital (CorsixTH)"
|
|
cores: [corsixth]
|
|
systems: [theme-hospital]
|
|
verification: existence
|
|
|
|
notes: |
|
|
CorsixTH is a Lua + C++ reimplementation of Bullfrog's Theme Hospital
|
|
engine. It reads graphics, sprites, levels and sounds from an
|
|
untouched Theme Hospital install (full retail/GOG or the shareware
|
|
demo).
|
|
|
|
App:checkInstallFolder() in CorsixTH/Lua/app.lua:1450 drives the
|
|
install discovery:
|
|
1. config.theme_hospital_install (user override) is tried first
|
|
(:1453). If unset or wrong, the loader scans a list of common
|
|
paths (:1471-1489) looking for a folder that passes
|
|
App:isThemeHospitalPath, which demands three subdirectories
|
|
named data, levels and qdata (:1435-1447).
|
|
2. Once a candidate is accepted, three sentinel files MUST exist
|
|
(:1521-1523):
|
|
DATA/VBlk-0.tab
|
|
LEVELS/Level.L1
|
|
QDATA/SPointer.dat
|
|
Any missing file aborts init with "Invalid Theme Hospital
|
|
folder specified in config file..." (:1526).
|
|
3. DataM/Demo.dat (:1535) marks the shareware demo install; its
|
|
presence switches a different corruption-size check on
|
|
ANIMS/WINLEVEL.SMK (243188), LEVELS/LEVEL.L1 (163948) and
|
|
DATA/BUTTON01.DAT (252811) at :1559-1561. Full installs instead
|
|
get soft size checks on ANIMS/AREA01V.SMK, WINGAME.SMK,
|
|
WINLEVEL.SMK, LOSE1.SMK and INTRO/INTRO.SM4 (:1563-1567).
|
|
4. QData/Font00V.dat is read unconditionally (:1576) and its CRC32
|
|
picks the charset (mik vs cp437).
|
|
|
|
Only the four files the loader *reads unconditionally* are tracked
|
|
below. The sound/music path uses the game's XMI tracks when a
|
|
SoundFont is available (App:findSoundFont at :1589 probes
|
|
GeneralUser-GS.sf2, FluidR3_GM.sf2, FluidR3.sf3 and three Linux
|
|
system paths); the SoundFont is a user preference, not game data.
|
|
|
|
Everything else (hundreds of SPR/TAB/DAT files, SMK movies, ADL /
|
|
XMI music) is loaded on demand from the install directory and is
|
|
not individually verified by the engine; a user who sets up the
|
|
Theme Hospital folder once has them all.
|
|
|
|
exclusion_note: "Theme Hospital install is scanned folder-wide; the engine only hard-checks a handful of sentinel files"
|
|
files:
|
|
- name: VBlk-0.tab
|
|
path: corsixth/Data/VBlk-0.tab
|
|
system: theme-hospital
|
|
category: game_data
|
|
required: true
|
|
description: "Theme Hospital core sprite index; sentinel checked at startup"
|
|
source_ref: "CorsixTH/Lua/app.lua:1521"
|
|
|
|
- name: Level.L1
|
|
path: corsixth/Levels/Level.L1
|
|
system: theme-hospital
|
|
category: game_data
|
|
required: true
|
|
description: "First Theme Hospital level file; sentinel checked at startup"
|
|
source_ref: "CorsixTH/Lua/app.lua:1522"
|
|
|
|
- name: SPointer.dat
|
|
path: corsixth/QData/SPointer.dat
|
|
system: theme-hospital
|
|
category: game_data
|
|
required: true
|
|
description: "Sprite pointer table; sentinel checked at startup"
|
|
source_ref: "CorsixTH/Lua/app.lua:1523"
|
|
|
|
- name: Font00V.dat
|
|
path: corsixth/QData/Font00V.dat
|
|
system: theme-hospital
|
|
category: game_data
|
|
required: true
|
|
description: "Theme Hospital font; CRC32 selects charset (mik vs cp437)"
|
|
source_ref: "CorsixTH/Lua/app.lua:1576-1584"
|