Files
libretro/emulators/vkquake.yml
T
Abdessamad Derraz 856383136e feat: profile batocera vulkan quakes, supermodel
Batocera 43.1 ships vkQuake, vkQuake2, vkQuake3 and a Supermodel held
at 0eef09ba for the Raspberry Pi 4; none had a profile, so a targeted
pack dropped them. Each profile is read from the commit Batocera
builds. Collected with them: the Quake 1.06 id1/pak0.pak, the same file
in the shareware and registered releases, and the Games.xml that
Supermodel revision installs.
2026-10-17 12:33:33 +02:00

81 lines
3.6 KiB
YAML

emulator: vkQuake
type: standalone
core_classification: game_engine
source: "https://github.com/Novum/vkQuake"
upstream: "https://sourceforge.net/projects/quakespasm/"
profiled_date: "2026-10-17"
source_commit: "6f9c012a9176ee36663fd7a6d30b6291a0dbbcc1"
core_version: "1.33.0"
display_name: "Quake (vkQuake)"
cores: ["vkquake"]
systems: [quake]
notes: |
Vulkan Quake engine derived from QuakeSpasm. VKQUAKE_VERSION 1.33,
VKQUAKE_VER_PATCH 0 (Quake/quakever.h:37-41). GAMENAME = "id1"
(Quake/quakedef.h:37).
COM_InitFilesystem takes the base directory from -basedir, otherwise
host_parms->basedir (Quake/common.c:2463-2467). COM_AddGameDirectory
opens <basedir>/<dir>/pak0.pak, pak1.pak, ... and stops at the first
index that does not open (Quake/common.c:2241-2245). Right after
id1/pak0.pak it mounts vkquake.pak, built from Misc/vq_pak and embedded
in the binary (Quake/common.c:2257-2282); it carries default.cfg, three
menu pictures and entity fixes, no gfx.wad and no palette.
gfx.wad and gfx/colormap.lmp come from id1/pak0.pak; without either the
engine stops with Sys_Error (Quake/wad.c:80-87, Quake/host.c:1093-1095).
gfx/pop.lmp, present only in the registered id1/pak1.pak, sets the
registered cvar (Quake/common.c:1458-1484).
COM_LoadPackFile compares the file count (339) and the CRC of the pak
directory against id1/pak0.pak v1.00, v1.01 and v1.06
(Quake/common.c:56-59, 2105-2118). A mismatch only sets com_modified;
the file is still mounted. With com_modified set and no gfx/pop.lmp the
engine stops (Quake/common.c:1464-1470), so -game, -hipnotic and -rogue,
whose paks differ from id1/pak0.pak, need the registered id1/pak1.pak.
-rogue and -hipnotic add rogue/ and hipnotic/ after id1/
(Quake/common.c:2507-2510). Batocera 43.1 runs
`vkquake -basedir /userdata/roms/quake` and adds -hipnotic or -rogue
from the ROM name (configgen generators/vkquake/vkquakeGenerator.py).
Background music is streamed from <game>/music/trackNN.<ext>, ogg, opus,
flac, mp3 and wav, when present (Quake/bgmusic.c:29, 321).
files:
- name: "pak0.pak"
category: game_data
system: quake
path: "id1/pak0.pak"
required: true
source_ref: "Quake/common.c:2241-2245 (pak%i.pak loop), 2496 (id1 by default); Quake/wad.c:80-87 (gfx.wad fatal)"
note: "Shareware and registered Quake data, one file in both releases. Directory CRC compared to v1.00, v1.01, v1.06; a mismatch does not refuse the file."
- name: "pak1.pak"
category: game_data
system: quake
path: "id1/pak1.pak"
required: false
source_ref: "Quake/common.c:2241-2245 (pak%i.pak loop), 1458-1470 (gfx/pop.lmp, registered check)"
note: "Registered episodes 2 to 4. Read only after pak0.pak opens. Needed by -hipnotic, -rogue and -game."
unsourceable: "retail data the collection does not hold; a same-named file of another game must not stand in"
- name: "pak0.pak"
category: game_data
system: quake
path: "hipnotic/pak0.pak"
required: false
source_ref: "Quake/common.c:2509-2510 (-hipnotic), 2241-2245 (pak%i.pak loop)"
note: "Scourge of Armagon data. Loaded with -hipnotic."
unsourceable: "retail data the collection does not hold; a same-named file of another game must not stand in"
- name: "pak0.pak"
category: game_data
system: quake
path: "rogue/pak0.pak"
required: false
source_ref: "Quake/common.c:2507-2508 (-rogue), 2241-2245 (pak%i.pak loop)"
note: "Dissolution of Eternity data. Loaded with -rogue."
unsourceable: "retail data the collection does not hold; a same-named file of another game must not stand in"