Files
libretro/emulators/uqm.yml
T
Abdessamad Derraz eb75c2d1f5 docs: read uqm content checks from the engine
The engine checks no hash: only the Windows installer compares the packages.nsh MD5s, so validation and verification go. The content pack stays required from LoadKernel, which exits without a .rmp index at the content root and names the pack.
2026-11-09 17:19:16 +01:00

128 lines
6.1 KiB
YAML

emulator: "The Ur-Quan Masters"
type: standalone
core_classification: game_engine
source: "https://github.com/juj/sc2-uqm"
upstream: "https://sourceforge.net/projects/sc2/"
profiled_date: "2026-10-04"
source_commit: "ff2444088d42e80612fd28f79d368783e244a606"
core_version: "0.8.0"
version_basis:
kind: file
path: "sc2/src/uqmversion.h"
pattern: '#define UQM_MAJOR_VERSION_S\s+"(\d+)"[\s\S]*?#define UQM_MINOR_VERSION_S\s+"(\d+)"[\s\S]*?#define UQM_PATCH_VERSION_S\s+"(\d+)"[\s\S]*?#define UQM_EXTRA_VERSION\s+"([^"]*)"'
format: "{1}.{2}.{3}{4}"
display_name: "The Ur-Quan Masters"
cores: [uqm]
systems: [ur-quan-masters, star-control-2]
notes: |
The Ur-Quan Masters (UQM) is the open-source port of Toys for Bob's
Star Control II, built from the sources Toys for Bob released in 2002.
The engine runs on top of its own virtual filesystem (uio) and expects
a content/ tree with a packages/ subdirectory holding zip archives
renamed with the .uqm suffix.
prepareContentDir() in src/options.c:136 searches for content/
relative to the executable (default locations are CONTENTDIR, "",
"content", "../../content", while macOS also probes the app bundle). A
sentinel file content/version must exist (lines 138-182) or the game
logs "Could not find content" and exits.
mountContentDir() (src/options.c:330-361) mounts content/ at the uio
root and then mounts every .zip or .uqm file under content/packages/
below it (line 357, mountDirZips at 463-489). The archive name is not
read. LoadKernel then needs at least one .rmp index at the content
root (src/uqm/setup.c:113-115), and without one the game logs "Could
not load basic content", names uqm-0.8.0-content.uqm and exits
(src/uqm/starcon.c:194-204). The content pack carries uqm.rmp and
base/. A content/ tree that already holds them unpacked passes the
same check, as the tree at this pin does.
3DO music (uqm-0.8.0-3domusic.uqm) and voice overs
(uqm-0.8.0-voice.uqm) are optional sections (installer lines 315,
329, SectionIn 1 4 6). They go in content/addons/, not packages/:
a .uqm there is mounted at "addons" (src/options.c:393-402) and
loadAddon opens addons/3domusic, addons/3dovoice and addons/remix
(options.c:518-551, uqm/setup.c:118-132). Placed in packages/ their
files would sit at the root and the addon would not load. The four remix packs (uqm-remix-disc1.uqm
through uqm-remix-disc4-1.uqm) are only in SectionIn 6 ("Full").
content/base, content/addons and the two .key sentinel files
(uqm.key, menu.key) are shipped verbatim in the source repository
and are not external data, so they are not listed here.
The engine checks no hash. The MD5 values come from
build/win32_install/packages.nsh, autogenerated by procpkgs.sh at
release time, and only the Windows installer compares them, offering
a fresh download on a mismatch (uqm-installer.nsi:132-190).
files:
- name: uqm-0.8.0-content.uqm
path: uqm/content/packages/uqm-0.8.0-content.uqm
system: ur-quan-masters
category: game_data
required: true
installed_on: [retropie]
md5: "6cbc9d51fa63e07c0f4d1d061136d816"
description: "UQM core game data archive"
note: "Published apart from the source release. Carries uqm.rmp and base/: without a .rmp index at the content root the game exits with \"Could not load basic content\". Any .zip or .uqm in content/packages is mounted, the name is not read. The RetroPie scriptmodule downloads it into content/packages."
source_ref: "sc2/src/uqm/starcon.c:194-204, sc2/src/uqm/setup.c:113-115, sc2/src/options.c:354-359, sc2/src/options.c:463-489, sc2/src/options.c:491-515, sc2/build/win32_install/packages.nsh:3-5"
- name: uqm-0.8.0-3domusic.uqm
path: uqm/content/addons/uqm-0.8.0-3domusic.uqm
system: ur-quan-masters
category: game_data
required: false
installed_on: [retropie]
md5: "9e5801d45ca12028b486cdeb83568c02"
description: "UQM 3DO music track pack"
note: "The RetroPie scriptmodule downloads it into content/addons."
source_ref: "sc2/build/win32_install/packages.nsh:6-8; sc2/build/win32_install/uqm-installer.nsi:315-327, sc2/src/options.c:393-402, 518-551, sc2/src/uqm/setup.c:118-132"
- name: uqm-0.8.0-voice.uqm
path: uqm/content/addons/uqm-0.8.0-voice.uqm
system: ur-quan-masters
category: game_data
required: false
installed_on: [retropie]
md5: "fc89f77d7b66c2669abca6c157f5259a"
description: "UQM alien-race voice-over pack"
note: "The RetroPie scriptmodule downloads it into content/addons."
source_ref: "sc2/build/win32_install/packages.nsh:9-11; sc2/build/win32_install/uqm-installer.nsi:329-341, sc2/src/options.c:393-402, 518-551, sc2/src/uqm/setup.c:118-132"
- name: uqm-remix-disc1.uqm
path: uqm/content/addons/uqm-remix-disc1.uqm
system: ur-quan-masters
category: game_data
required: false
md5: "09f242d8d72166d1d5ccbd3d99c93e7d"
description: "Precursor Remix disc 1 (modern remixes)"
source_ref: "sc2/build/win32_install/packages.nsh:12-14; sc2/build/win32_install/uqm-installer.nsi:345-358, sc2/src/options.c:393-402, 518-551, sc2/src/uqm/setup.c:118-132"
- name: uqm-remix-disc2.uqm
path: uqm/content/addons/uqm-remix-disc2.uqm
system: ur-quan-masters
category: game_data
required: false
md5: "fbc8bdcb709939d559d8c7216ad15cc2"
description: "Precursor Remix disc 2"
source_ref: "sc2/build/win32_install/packages.nsh:15-17, sc2/src/options.c:393-402, 518-551, sc2/src/uqm/setup.c:118-132"
- name: uqm-remix-disc3.uqm
path: uqm/content/addons/uqm-remix-disc3.uqm
system: ur-quan-masters
category: game_data
required: false
md5: "5ccc6d4ac301ae98e172ac6835dcdead"
description: "Precursor Remix disc 3"
source_ref: "sc2/build/win32_install/packages.nsh:18-20, sc2/src/options.c:393-402, 518-551, sc2/src/uqm/setup.c:118-132"
- name: uqm-remix-disc4-1.uqm
path: uqm/content/addons/uqm-remix-disc4-1.uqm
system: ur-quan-masters
category: game_data
required: false
md5: "3fb63f4ac514343ed4b4b5b194c413fb"
description: "Precursor Remix disc 4-1"
source_ref: "sc2/build/win32_install/packages.nsh:21-23, sc2/src/options.c:393-402, 518-551, sc2/src/uqm/setup.c:118-132"