mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-01 00:27:20 -05:00
Each standalone profile records where its version is read: the source at its pin (clk 2026-07-23-136-g9020107, shadps4 0.20.1 WIP, eden v0.2.0-401-g26a03d2), the APK, binary or archive read (kind package), or, where no reading can be made, kind unverified with the reason: a host the tools cannot read, a forge gone or not answering, no build recorded as read, a pin on another branch. Those keep their value, unconfirmed.
116 lines
4.7 KiB
YAML
116 lines
4.7 KiB
YAML
emulator: "CorsixTH"
|
|
type: standalone
|
|
core_classification: game_engine
|
|
source: "https://github.com/CorsixTH/CorsixTH"
|
|
upstream: ~
|
|
profiled_date: "2026-10-04"
|
|
source_commit: "e5668b9b2a6f59c492b2446821528d67f5d0ee53"
|
|
core_version: "v0.70.1-263-ge5668b9"
|
|
version_basis:
|
|
kind: tag
|
|
tag: "v0.70.1"
|
|
distance: 263
|
|
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 (:1473-1491) 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
|
|
(:1523-1525):
|
|
DATA/VBlk-0.tab
|
|
LEVELS/Level.L1
|
|
QDATA/SPointer.dat
|
|
Any missing file aborts init with "Invalid Theme Hospital
|
|
folder specified in config file..." (:1528).
|
|
3. DataM/Demo.dat (:1537) 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 :1561-1563. Full installs instead
|
|
get soft size checks on ANIMS/AREA01V.SMK, WINGAME.SMK,
|
|
WINLEVEL.SMK, LOSE1.SMK and INTRO/INTRO.SM4 (:1565-1569).
|
|
4. QData/Font00V.dat is read unconditionally (:1578) and its CRC32
|
|
picks the charset (mik vs cp437).
|
|
|
|
The install root is read as a tree. FileSystem:setRoot() lists the
|
|
root, each subdirectory is listed the first time a path crosses it,
|
|
and every name is matched after normalise() upper-cases it
|
|
(CorsixTH/Lua/filesystem.lua:59-76, 93-117, 243-272). Graphics,
|
|
sprites, levels, sounds and movies are opened from that tree on
|
|
demand, so the install is declared as one directory. The files the
|
|
loader names at startup keep their own entries, written with the
|
|
upper-case names the DOS release ships and the lookup normalises to.
|
|
|
|
The sound/music path uses the game's XMI tracks when a SoundFont is
|
|
available (App:findSoundFont at :1591 probes GeneralUser-GS.sf2,
|
|
FluidR3_GM.sf2, FluidR3.sf3 and three Linux system paths), and the
|
|
SoundFont is a user preference, not game data.
|
|
|
|
files:
|
|
- name: "corsixth/"
|
|
path: "corsixth/"
|
|
type: directory
|
|
system: theme-hospital
|
|
category: game_data
|
|
required: true
|
|
description: "Theme Hospital install directory (full game or demo)"
|
|
source_ref: "CorsixTH/Lua/filesystem.lua:64-76, CorsixTH/Lua/app.lua:1435-1447, 1454, 1501"
|
|
note: "Accepted as an install when it holds data, levels and qdata subdirectories. The rest of the tree is opened by name on demand."
|
|
|
|
- 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:1523"
|
|
note: "Looked up as Data/VBlk-0.tab."
|
|
|
|
- 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:1524, 1562"
|
|
note: "Looked up as Levels/Level.L1. With the demo marker present, a size more than 1024 bytes away from 163948 is reported as corrupt and the game still starts."
|
|
|
|
- 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:1525"
|
|
note: "Looked up as QData/SPointer.dat."
|
|
|
|
- name: "FONT00V.DAT"
|
|
path: "corsixth/QDATA/FONT00V.DAT"
|
|
system: theme-hospital
|
|
category: game_data
|
|
required: true
|
|
description: "Theme Hospital font, its CRC32 selects charset (mik vs cp437)"
|
|
source_ref: "CorsixTH/Lua/app.lua:1578-1586"
|
|
note: "Looked up as QData/Font00V.dat."
|
|
|
|
- name: "DEMO.DAT"
|
|
path: "corsixth/DATAM/DEMO.DAT"
|
|
system: theme-hospital
|
|
category: game_data
|
|
required: false
|
|
description: "Demo marker: its presence selects the demo graphics set and the demo size checks"
|
|
source_ref: "CorsixTH/Lua/app.lua:1537-1541, 1560-1563"
|
|
note: "Looked up as DataM/Demo.dat. Absent from a full install."
|