Files
libretro/emulators/prboom.yml
T
Abdessamad Derraz e7aa9e870b fix: state libretro core versions from their code
Each libretro profile records version_basis and core_version is read
there at its pin. snes9x states 1.63 in snes9x.h, nestopia 2.0.0, mgba
0.11.0, vice 3.10, atari800's libretro tree 7.0.0. Cores whose build
takes its version from git carry the nearest tag in describe form
(flycast v2.7-90-ge88b0ce, ppsspp, duckstation, gearcoleco), placeholders
copied from .info files (Git, SVN) are replaced by the code's statement,
and a code that states none is null with kind none.
2026-10-27 19:21:27 +01:00

162 lines
5.8 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"
version_basis:
kind: file
path: "libretro/libretro.c"
pattern: 'info->library_version\s+=\s+"([^"]+)'
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."