Files
libretro/emulators/wolf4sdl.yml
T

500 lines
16 KiB
YAML

emulator: Wolf4SDL
type: standalone
core_classification: game_engine
source: "https://github.com/KS-Presto/Wolf4SDL"
upstream: "https://github.com/KS-Presto/Wolf4SDL"
profiled_date: "2026-10-20"
source_commit: "dc8b250af35fb0ace68db5eb879490b50068c20e"
core_version: "v2.0"
version_basis:
kind: file
path: "wl_main.c"
pattern: '"Wolf4SDL (v[0-9][0-9.]*[0-9A-Za-z]*)\\n"'
display_name: "Wolfenstein 3D (Wolf4SDL)"
cores: [wolf4sdl]
systems: [wolfenstein3d]
verification: existence
notes: |
SDL port of the Wolfenstein 3D and Spear of Destiny engine, from the
id Software source release. The game a binary plays is chosen at build
time: version.h:4 skips its own defaults when VERSIONALREADYCHOSEN is
set, and the build then takes UPLOAD, GOODTIMES, SPEAR and SPEARDEMO
from the compiler flags. RetroPie builds five binaries this way:
shareware v1.4 (CARMACIZED UPLOAD), Apogee v1.4 (CARMACIZED), GT v1.4
(CARMACIZED GOODTIMES), Spear of Destiny (CARMACIZED GOODTIMES SPEAR)
and the Spear demo (CARMACIZED SPEAR SPEARDEMO).
CheckForEpisodes (wl_menu.c:3740) picks the data extension by probing
for vswap.<ext> in the working directory: wl1 for a shareware build,
wl6 then wl3 then wl1 for a full Wolfenstein build, sdm for the Spear
demo, and for Spear of Destiny sod, sd1, sd2 or sd3 after --mission 0
to 3 (wl_main.c:1721-1730). Every data file is then opened as
<name>.<ext> with a lowercase name and no directory, so it is read from
the working directory. A file that cannot be opened ends in
CA_CannotOpen and the program quits.
Each binary reads eight files: vswap (id_pm.c:36), vgadict, vgahead and
vgagraph (CAL_SetupGrFile, id_ca.c:440), maphead and gamemaps
(CAL_SetupMapFile, id_ca.c:531, gamemaps because every build is
CARMACIZED), audiohed and audiot (CAL_SetupAudioFile, id_ca.c:599).
The help and end texts and the demos come from vgagraph, since
version.h defines ARTSEXTERN and DEMOSEXTERN (wl_text.c:762-766,
wl_game.c:1139-1146).
The only content check is the length of vgahead: its size divided by
three must equal NUMCHUNKS + 1 or the engine quits with "Wolf4SDL was
not compiled for these data files" (id_ca.c:473-480), unless
--ignorenumchunks is given (wl_main.c:1754-1755). NUMCHUNKS is 156 for
the shareware build, 161 for Apogee, 149 for GT (gfxv_wl6.h:187), 169
for Spear and 133 for the Spear demo, so each binary accepts only the
release it was built for.
Spear of Destiny mission 1 reads the original game under the sd1
extension, hence the sd1 aliases on the sod set.
The engine checks no hash on any data file.
Written by the engine, not read as data: config.<ext> and savegames
in ~/.wolf4sdl (wl_menu.c:3745-3760), and screenshots.
files:
# Wolfenstein 3D shareware (.wl1)
- name: "vswap.wl1"
installed_on: [retropie]
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D shareware page file: wall textures, sprites and digitized sounds"
required: false
source_ref: "id_pm.c:36-41, wl_menu.c:3805-3809"
- name: "vgadict.wl1"
installed_on: [retropie]
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D shareware Huffman dictionary of the graphics file"
required: false
source_ref: "id_ca.c:449-454, wl_menu.c:3805-3809"
- name: "vgahead.wl1"
installed_on: [retropie]
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D shareware graphics chunk offsets"
required: false
min_size: 471
max_size: 473
validation: [size]
source_ref: "id_ca.c:462-480, wl_menu.c:3805-3809"
- name: "vgagraph.wl1"
installed_on: [retropie]
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D shareware graphics chunks: pictures, fonts and text articles"
required: false
source_ref: "id_ca.c:498-503, wl_menu.c:3805-3809"
- name: "maphead.wl1"
installed_on: [retropie]
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D shareware map offsets and tile info"
required: false
source_ref: "id_ca.c:541-546, wl_menu.c:3805-3809"
- name: "gamemaps.wl1"
installed_on: [retropie]
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D shareware level maps"
required: false
source_ref: "id_ca.c:81-82, 556-561, wl_menu.c:3805-3809"
- name: "audiohed.wl1"
installed_on: [retropie]
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D shareware audio chunk offsets"
required: false
source_ref: "id_ca.c:606-608, wl_menu.c:3805-3809"
- name: "audiot.wl1"
installed_on: [retropie]
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D shareware AdLib sound effects and music"
required: false
source_ref: "id_ca.c:613-618, wl_menu.c:3805-3809"
# Wolfenstein 3D, three episode release (.wl3)
- name: "vswap.wl3"
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D, three episode release page file: wall textures, sprites and digitized sounds"
required: false
source_ref: "id_pm.c:36-41, wl_menu.c:3828-3835"
- name: "vgadict.wl3"
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D, three episode release Huffman dictionary of the graphics file"
required: false
source_ref: "id_ca.c:449-454, wl_menu.c:3828-3835"
- name: "vgahead.wl3"
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D, three episode release graphics chunk offsets"
required: false
source_ref: "id_ca.c:462-480, wl_menu.c:3828-3835"
- name: "vgagraph.wl3"
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D, three episode release graphics chunks: pictures, fonts and text articles"
required: false
source_ref: "id_ca.c:498-503, wl_menu.c:3828-3835"
- name: "maphead.wl3"
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D, three episode release map offsets and tile info"
required: false
source_ref: "id_ca.c:541-546, wl_menu.c:3828-3835"
- name: "gamemaps.wl3"
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D, three episode release level maps"
required: false
source_ref: "id_ca.c:81-82, 556-561, wl_menu.c:3828-3835"
- name: "audiohed.wl3"
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D, three episode release audio chunk offsets"
required: false
source_ref: "id_ca.c:606-608, wl_menu.c:3828-3835"
- name: "audiot.wl3"
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D, three episode release AdLib sound effects and music"
required: false
source_ref: "id_ca.c:613-618, wl_menu.c:3828-3835"
# Wolfenstein 3D (.wl6)
- name: "vswap.wl6"
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D page file: wall textures, sprites and digitized sounds"
required: false
source_ref: "id_pm.c:36-41, wl_menu.c:3811-3825"
- name: "vgadict.wl6"
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D Huffman dictionary of the graphics file"
required: false
source_ref: "id_ca.c:449-454, wl_menu.c:3811-3825"
- name: "vgahead.wl6"
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D graphics chunk offsets"
required: false
source_ref: "id_ca.c:462-480, wl_menu.c:3811-3825"
- name: "vgagraph.wl6"
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D graphics chunks: pictures, fonts and text articles"
required: false
source_ref: "id_ca.c:498-503, wl_menu.c:3811-3825"
- name: "maphead.wl6"
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D map offsets and tile info"
required: false
source_ref: "id_ca.c:541-546, wl_menu.c:3811-3825"
- name: "gamemaps.wl6"
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D level maps"
required: false
source_ref: "id_ca.c:81-82, 556-561, wl_menu.c:3811-3825"
- name: "audiohed.wl6"
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D audio chunk offsets"
required: false
source_ref: "id_ca.c:606-608, wl_menu.c:3811-3825"
- name: "audiot.wl6"
category: game_data
system: wolfenstein3d
description: "Wolfenstein 3D AdLib sound effects and music"
required: false
source_ref: "id_ca.c:613-618, wl_menu.c:3811-3825"
# Spear of Destiny (.sod)
- name: "vswap.sod"
aliases: ["vswap.sd1"]
category: game_data
system: wolfenstein3d
description: "Spear of Destiny page file: wall textures, sprites and digitized sounds"
required: false
source_ref: "id_pm.c:36-41, wl_menu.c:3850-3863"
- name: "vgadict.sod"
aliases: ["vgadict.sd1"]
category: game_data
system: wolfenstein3d
description: "Spear of Destiny Huffman dictionary of the graphics file"
required: false
source_ref: "id_ca.c:449-454, wl_menu.c:3850-3863"
- name: "vgahead.sod"
aliases: ["vgahead.sd1"]
category: game_data
system: wolfenstein3d
description: "Spear of Destiny graphics chunk offsets"
required: false
min_size: 510
max_size: 512
validation: [size]
source_ref: "id_ca.c:462-480, wl_menu.c:3850-3863"
- name: "vgagraph.sod"
aliases: ["vgagraph.sd1"]
category: game_data
system: wolfenstein3d
description: "Spear of Destiny graphics chunks: pictures, fonts and text articles"
required: false
source_ref: "id_ca.c:498-503, wl_menu.c:3850-3863"
- name: "maphead.sod"
aliases: ["maphead.sd1"]
category: game_data
system: wolfenstein3d
description: "Spear of Destiny map offsets and tile info"
required: false
source_ref: "id_ca.c:541-546, wl_menu.c:3850-3863"
- name: "gamemaps.sod"
aliases: ["gamemaps.sd1"]
category: game_data
system: wolfenstein3d
description: "Spear of Destiny level maps"
required: false
source_ref: "id_ca.c:81-82, 556-561, wl_menu.c:3850-3863"
- name: "audiohed.sod"
aliases: ["audiohed.sd1"]
category: game_data
system: wolfenstein3d
description: "Spear of Destiny audio chunk offsets"
required: false
source_ref: "id_ca.c:606-608, wl_menu.c:3850-3863"
- name: "audiot.sod"
aliases: ["audiot.sd1"]
category: game_data
system: wolfenstein3d
description: "Spear of Destiny AdLib sound effects and music"
required: false
source_ref: "id_ca.c:613-618, wl_menu.c:3850-3863"
# Spear of Destiny mission pack 2 (.sd2)
- name: "vswap.sd2"
category: game_data
system: wolfenstein3d
description: "Spear of Destiny mission pack 2 page file: wall textures, sprites and digitized sounds"
required: false
source_ref: "id_pm.c:36-41, wl_menu.c:3864-3870"
- name: "vgadict.sd2"
category: game_data
system: wolfenstein3d
description: "Spear of Destiny mission pack 2 Huffman dictionary of the graphics file"
required: false
source_ref: "id_ca.c:449-454, wl_menu.c:3864-3870"
- name: "vgahead.sd2"
category: game_data
system: wolfenstein3d
description: "Spear of Destiny mission pack 2 graphics chunk offsets"
required: false
min_size: 510
max_size: 512
validation: [size]
source_ref: "id_ca.c:462-480, wl_menu.c:3864-3870"
- name: "vgagraph.sd2"
category: game_data
system: wolfenstein3d
description: "Spear of Destiny mission pack 2 graphics chunks: pictures, fonts and text articles"
required: false
source_ref: "id_ca.c:498-503, wl_menu.c:3864-3870"
- name: "maphead.sd2"
category: game_data
system: wolfenstein3d
description: "Spear of Destiny mission pack 2 map offsets and tile info"
required: false
source_ref: "id_ca.c:541-546, wl_menu.c:3864-3870"
- name: "gamemaps.sd2"
category: game_data
system: wolfenstein3d
description: "Spear of Destiny mission pack 2 level maps"
required: false
source_ref: "id_ca.c:81-82, 556-561, wl_menu.c:3864-3870"
- name: "audiohed.sd2"
category: game_data
system: wolfenstein3d
description: "Spear of Destiny mission pack 2 audio chunk offsets"
required: false
source_ref: "id_ca.c:606-608, wl_menu.c:3864-3870"
- name: "audiot.sd2"
category: game_data
system: wolfenstein3d
description: "Spear of Destiny mission pack 2 AdLib sound effects and music"
required: false
source_ref: "id_ca.c:613-618, wl_menu.c:3864-3870"
# Spear of Destiny mission pack 3 (.sd3)
- name: "vswap.sd3"
category: game_data
system: wolfenstein3d
description: "Spear of Destiny mission pack 3 page file: wall textures, sprites and digitized sounds"
required: false
source_ref: "id_pm.c:36-41, wl_menu.c:3871-3876"
- name: "vgadict.sd3"
category: game_data
system: wolfenstein3d
description: "Spear of Destiny mission pack 3 Huffman dictionary of the graphics file"
required: false
source_ref: "id_ca.c:449-454, wl_menu.c:3871-3876"
- name: "vgahead.sd3"
category: game_data
system: wolfenstein3d
description: "Spear of Destiny mission pack 3 graphics chunk offsets"
required: false
min_size: 510
max_size: 512
validation: [size]
source_ref: "id_ca.c:462-480, wl_menu.c:3871-3876"
- name: "vgagraph.sd3"
category: game_data
system: wolfenstein3d
description: "Spear of Destiny mission pack 3 graphics chunks: pictures, fonts and text articles"
required: false
source_ref: "id_ca.c:498-503, wl_menu.c:3871-3876"
- name: "maphead.sd3"
category: game_data
system: wolfenstein3d
description: "Spear of Destiny mission pack 3 map offsets and tile info"
required: false
source_ref: "id_ca.c:541-546, wl_menu.c:3871-3876"
- name: "gamemaps.sd3"
category: game_data
system: wolfenstein3d
description: "Spear of Destiny mission pack 3 level maps"
required: false
source_ref: "id_ca.c:81-82, 556-561, wl_menu.c:3871-3876"
- name: "audiohed.sd3"
category: game_data
system: wolfenstein3d
description: "Spear of Destiny mission pack 3 audio chunk offsets"
required: false
source_ref: "id_ca.c:606-608, wl_menu.c:3871-3876"
- name: "audiot.sd3"
category: game_data
system: wolfenstein3d
description: "Spear of Destiny mission pack 3 AdLib sound effects and music"
required: false
source_ref: "id_ca.c:613-618, wl_menu.c:3871-3876"
# Spear of Destiny demo (.sdm)
- name: "vswap.sdm"
installed_on: [retropie]
category: game_data
system: wolfenstein3d
description: "Spear of Destiny demo page file: wall textures, sprites and digitized sounds"
required: false
source_ref: "id_pm.c:36-41, wl_menu.c:3880-3885"
- name: "vgadict.sdm"
installed_on: [retropie]
category: game_data
system: wolfenstein3d
description: "Spear of Destiny demo Huffman dictionary of the graphics file"
required: false
source_ref: "id_ca.c:449-454, wl_menu.c:3880-3885"
- name: "vgahead.sdm"
installed_on: [retropie]
category: game_data
system: wolfenstein3d
description: "Spear of Destiny demo graphics chunk offsets"
required: false
min_size: 402
max_size: 404
validation: [size]
source_ref: "id_ca.c:462-480, wl_menu.c:3880-3885"
- name: "vgagraph.sdm"
installed_on: [retropie]
category: game_data
system: wolfenstein3d
description: "Spear of Destiny demo graphics chunks: pictures, fonts and text articles"
required: false
source_ref: "id_ca.c:498-503, wl_menu.c:3880-3885"
- name: "maphead.sdm"
installed_on: [retropie]
category: game_data
system: wolfenstein3d
description: "Spear of Destiny demo map offsets and tile info"
required: false
source_ref: "id_ca.c:541-546, wl_menu.c:3880-3885"
- name: "gamemaps.sdm"
installed_on: [retropie]
category: game_data
system: wolfenstein3d
description: "Spear of Destiny demo level maps"
required: false
source_ref: "id_ca.c:81-82, 556-561, wl_menu.c:3880-3885"
- name: "audiohed.sdm"
installed_on: [retropie]
category: game_data
system: wolfenstein3d
description: "Spear of Destiny demo audio chunk offsets"
required: false
source_ref: "id_ca.c:606-608, wl_menu.c:3880-3885"
- name: "audiot.sdm"
installed_on: [retropie]
category: game_data
system: wolfenstein3d
description: "Spear of Destiny demo AdLib sound effects and music"
required: false
source_ref: "id_ca.c:613-618, wl_menu.c:3880-3885"