Files
libretro/emulators/prboom.yml
T
Abdessamad Derraz c2dd7adea1 chore: move prboom pin to 4849268
I_FindFile now tries an absolute or folder-qualified name as given before the search (libretro/libretro.c:4332-4413). Same IWADs and config.
2026-10-23 15:52:34 +02:00

158 lines
5.7 KiB
YAML

emulator: PrBoom
type: libretro
core_classification: game_engine
source: "https://github.com/libretro/libretro-prboom"
upstream: "http://prboom.sourceforge.net/"
profiled_date: "2026-10-23"
source_commit: "4849268e7342494193f2bbf2d0128a751cf58da7"
core_version: "v2.5.0"
display_name: "Doom (PrBoom)"
cores: [prboom]
systems: [doom, heretic]
notes: |
PrBoom is a Doom source port based on MBF (Marine's Best Friend), itself
derived from Boom. The libretro port plays Doom, Doom II, Final Doom,
FreeDoom, Heretic, and custom WADs/PWADs.
prboom.wad, the engine data WAD (font glyphs, palette, colormaps,
sine/tangent tables, gamma tables, menu graphics), is compiled into the
core from src/prboom_wad_data.h, 143312 bytes, the same bytes as the
prboom.wad at the repository root (md5 72ae1b47820fcc93cc0df9c428d0face).
D_DoomMainSetup adds it as an embedded WAD after the IWAD and never opens
prboom.wad on disk (src/d_main.c:1449-1465).
Content is a .wad, .iwad, .pwad, .lmp, .m3u, .pk3, .ipk3 or .zip file
(libretro/libretro.c:1029). An IWAD is passed as -iwad and needs nothing
else (libretro/libretro.c:2621-2625). A PWAD with map markers, or a PK3,
is paired with an IWAD of the matching generation searched next to the
content, then in system/prboom/, then in system/ (find_iwad_for_kind,
libretro/libretro.c:2202-2266, 2647-2693, 2733-2754). A PK3 also loads
gzdoom.pk3, or else zdoom.pk3, from the same places before the mod
(find_base_resource, libretro/libretro.c:2274-2305, 2756-2790). When no
IWAD is paired, FindIWADFile tries the standard_iwads list through
I_FindFile and the core stops with "IWAD not found" if none is found
(src/d_main.c:146-158, src/d_main.c:1020-1038, src/d_main.c:1123-1124).
File names are matched case-insensitively (libretro/libretro.c:787-836).
I_FindFile search order (libretro/libretro.c:4332-4413). A name that is
absolute or contains a folder separator is first tried as given:
1. WAD directory (same folder as the loaded content)
2. system/prboom/ subdirectory
3. system/ directory directly
4. Parent folders of the WAD directory (recursive, if enabled)
A baseconfig is read from <content>.prboom.cfg beside the content, else
prboom.cfg through I_FindFile (libretro/libretro.c:2594-2599,
libretro/libretro.c:2811-2816).
files:
# ---- Doom 1 generation, in search order ----
- name: "doom.wad"
category: game_data
system: doom
required: false
source_ref: "libretro/libretro.c:2204-2206, libretro/libretro.c:2250-2261, src/d_main.c:153"
note: "Registered or Ultimate Doom. Paired with a Doom 1 PWAD."
- name: "doomu.wad"
category: game_data
system: doom
required: false
source_ref: "libretro/libretro.c:2204-2206, src/d_main.c:154"
- name: "freedoom1.wad"
category: game_data
system: doom
required: false
source_ref: "libretro/libretro.c:2204-2206, src/d_main.c:155"
- name: "freedoom.wad"
category: game_data
system: doom
required: false
source_ref: "libretro/libretro.c:2204-2206, src/d_main.c:156"
- name: "doom1.wad"
category: game_data
system: doom
required: false
source_ref: "libretro/libretro.c:2204-2206, src/d_main.c:157"
note: "Shareware Doom."
# ---- Doom 2 generation, in search order ----
- name: "doom2.wad"
category: game_data
system: doom
required: false
source_ref: "libretro/libretro.c:2207-2209, libretro/libretro.c:2250-2261, src/d_main.c:149"
note: "Paired with a Doom II PWAD or a PK3, and tried first when the PWAD's maps are not recognised."
- name: "doom2f.wad"
category: game_data
system: doom
required: false
source_ref: "libretro/libretro.c:2207-2209, src/d_main.c:148, src/d_main.c:1106-1107"
note: "French Doom II. The name selects the French language."
- name: "plutonia.wad"
category: game_data
system: doom
required: false
source_ref: "libretro/libretro.c:2207-2209, src/d_main.c:150, src/d_main.c:1110-1111"
- name: "tnt.wad"
category: game_data
system: doom
required: false
source_ref: "libretro/libretro.c:2207-2209, src/d_main.c:151, src/d_main.c:1108-1109"
- name: "freedoom2.wad"
category: game_data
system: doom
required: false
source_ref: "libretro/libretro.c:2207-2209, src/d_main.c:152"
# ---- Heretic ----
- name: "heretic.wad"
category: game_data
system: heretic
required: false
source_ref: "libretro/libretro.c:2214-2216, libretro/libretro.c:2250-2261, libretro/libretro.c:2667-2679"
note: "Paired only with a PWAD recognised as a Heretic add-on, never with a Doom one."
- name: "heretic1.wad"
category: game_data
system: heretic
required: false
source_ref: "libretro/libretro.c:2214-2216"
note: "Shareware Heretic."
- name: "blasphem.wad"
category: game_data
system: heretic
required: false
source_ref: "libretro/libretro.c:2214-2216"
# ---- ZDoom base resources for PK3 content ----
- name: "gzdoom.pk3"
category: game_data
system: doom
required: false
source_ref: "libretro/libretro.c:2274-2305, libretro/libretro.c:2756-2790"
note: "Loaded before a PK3 mod so the stock ZDoom assets it names resolve."
- name: "zdoom.pk3"
category: game_data
system: doom
required: false
source_ref: "libretro/libretro.c:2274-2305, libretro/libretro.c:2756-2790"
note: "Loaded before a PK3 mod when gzdoom.pk3 is not found."
- name: "prboom.cfg"
system: doom
required: false
unsourceable: "user settings in PrBoom's config format, with no canonical contents"
source_ref: "libretro/libretro.c:2594-2599, libretro/libretro.c:2811-2816, libretro/libretro.c:4332-4413"
note: "Passed as -baseconfig when no <content>.prboom.cfg sits beside the content."