Doom (PrBoom)¶
Background¶
Port of prboom to libretro - plays Doom, Doom II, Final Doom and other Doom IWAD mods.
The PrBoom core has been authored by
- Florian Schulze
The PrBoom core is licensed under
A summary of the licenses behind RetroArch and its cores can be found here.
BIOS¶
Required or optional firmware files go in the frontend's system directory.
Filename | Description |
---|---|
prboom.wad | PrBoom requires data ROM 'prboom.wad' inside the SYSTEM directory. |
Extensions¶
Content that can be loaded by the PrBoom core have the following file extensions:
- .wad
- .iwad
- .pwad
RetroArch database(s) that are associated with the PrBoom core:
Features¶
Frontend-level settings or features that the PrBoom core respects.
Feature | Supported |
---|---|
Restart | ✔ |
Screenshots | ✔ |
Saves | ✔ |
States | ✕ |
Rewind | ✕ |
Netplay | ✕ |
Core Options | ✔ |
RetroAchievements | ✕ |
RetroArch Cheats | ✔ |
Native Cheats | ✔ |
Controls | ✔ |
Remapping | ✔ |
Multi-Mouse | ✕ |
Rumble | ✕ |
Sensors | ✕ |
Camera | ✕ |
Location | ✕ |
Subsystem | ✕ |
Softpatching | ✕ |
Disk Control | ✕ |
Username | ✕ |
Language | ✕ |
Crop Overscan | ✕ |
LEDs | ✕ |
Directories¶
The PrBoom core's library name is 'PrBoom'
The PrBoom core saves/loads to/from these directories.
Frontend's Save directory
File | Description |
---|---|
(content name)/*.dsg | Save |
(content name)/prboom.cfg | DOOM Config |
Geometry and timing¶
- The PrBoom core's core provided FPS (by default) is 60
- The PrBoom core's core provided sample rate is 44100 Hz
- The PrBoom core's base width is dependent on the Internal resolution core option.
- The PrBoom core's base height is dependent on the Internal resolution core option.
- The PrBoom core's max width is dependent on the Internal resolution core option.
- The PrBoom core's max height is dependent on the Internal resolution core option.
- The PrBoom core's core provided aspect ratio is 4/3
Loading DOOM¶
PrBoom can load wad, iwad, and pwad files. The PrBoom core requires data ROM 'prboom.wad' inside the loaded content's or system directory.
Tip
If you start the games by loading prboom.wad they will all share the same content name ("prboom" in this case), so the core will put the saves for every game in a single retroarch/saves/prboom/ folder and when playing Doom 2 for example you'll see Doom 1 saves, etc. which will cause confusion for the user. The games will also share the same game overrides/options files/remaps/etc. History tab will also lists each game as "prboom".
An example folder structure would be like so:
└── contents/
└── dooms/
├── doom/
│ ├── doom.wad
│ └── [music_files].mp3
└── doom2/
├── doom2.wad
└── [music_files].mp3
Game saves and internal configuration files will be created in the frontend-defined save directory, organised in folders matching the filenames of loaded content - for example:
└── saves/
└── PrBoom/
├── doom/
│ ├── prbmsav0.dsg
│ ├── prbmsav1.dsg
│ └── prboom.cfg
└── doom2/
├── prbmsav0.dsg
├── prbmsav1.dsg
└── prboom.cfg
Game saves are numbered from 'prbmsav0.dsg' to 'prbmsav7.dsg'.
SIGIL¶
Sigil (stylized as SIGIL) is the unofficial fifth episode of the 1993 video game Doom. Published by Romero Games on May 31, 2019, the Megawad was created by an original co-creator of Doom, John Romero, independently of the main game's then-current owner, Bethesda Softworks. It has nine missions, each with a deathmatch version, and a new soundtrack created by James Paddock and Buckethead.
You can get SIGIL here
Turn off 'Look on parent folders for IWADs' inside Quick Menu - Options. This is usually enabled by default, so disable it.
Make sure that you place the SIGIL wad files inside the same directory as your Doom/Ultimate Doom WAD file. You can name this either doomu.wad or doom.wad. Make sure there are NO doom2.wad files inside this same directory, or Sigil might not work properly.
An example folder structure would be like so:
Music¶
If mp3 files are detected in the game folder, PrBoom will play these tracks instead of the internal MIDI musics, see below for the required filenames for each game.
Doom¶
Note
Episode 4 doesn't have exclusive musics, it uses tracks from the previous episodes.
Filename | Description |
---|---|
bunny.mp3 | Endgame Music |
e1m1.mp3 | E1M1 |
e1m2.mp3 | E1M2 |
e1m3.mp3 | E1M3 |
e1m4.mp3 | E1M4 |
e1m5.mp3 | E1M5 |
e1m6.mp3 | E1M6 |
e1m7.mp3 | E1M7 |
e1m8.mp3 | E1M8 |
e1m9.mp3 | E1M9 |
e2m1.mp3 | E2M1 |
e2m2.mp3 | E2M2 |
e2m3.mp3 | E2M3 |
e2m4.mp3 | E2M4 |
e2m5.mp3 | E2M5 |
e2m6.mp3 | E2M6 |
e2m7.mp3 | E2M7 |
e2m8.mp3 | E2M8 |
e2m9.mp3 | E2M9 |
e3m1.mp3 | E3M1 |
e3m2.mp3 | E3M2 |
e3m3.mp3 | E3M3 |
e3m4.mp3 | E3M4 |
e3m5.mp3 | E3M5 |
e3m6.mp3 | E3M6 |
e3m7.mp3 | E3M7 |
e3m8.mp3 | E3M8 |
e3m9.mp3 | E3M9 |
inter.mp3 | Intermission Music |
intro.mp3 | Title Music |
victor.mp3 | Victory Music |
Doom II, Plutonia, TNT¶
Note
These 3 games share the same music filenames but the musics are actually different, for this reason it is recommended to have the games in separated folders.
Filename | Description |
---|---|
adrian.mp3 | MAP25 |
ampie.mp3 | MAP23 |
betwee.mp3 | MAP04 |
count2.mp3 | MAP21 |
countd.mp3 | MAP03 |
ddtbl2.mp3 | MAP14 |
ddtbl3.mp3 | MAP22 |
ddtblu.mp3 | MAP08 |
dead.mp3 | MAP10 |
dead2.mp3 | MAP16 |
dm2int.mp3 | Intermission Music |
dm2ttl.mp3 | Title Music |
doom.mp3 | MAP05 |
doom2.mp3 | MAP13 |
evil.mp3 | MAP31 |
in_cit.mp3 | MAP09 |
messag.mp3 | MAP20 |
messg2.mp3 | MAP26 |
openin.mp3 | MAP30 |
read_m.mp3 | Endgame Music |
romer2.mp3 | MAP27 |
romero.mp3 | MAP18 |
runni2.mp3 | MAP15 |
runnin.mp3 | MAP01 |
shawn.mp3 | MAP07 |
shawn2.mp3 | MAP19 |
shawn3.mp3 | MAP29 |
stalks.mp3 | MAP02 |
stlks2.mp3 | MAP11 |
stlks3.mp3 | MAP17 |
tense.mp3 | MAP28 |
theda2.mp3 | MAP12 |
theda3.mp3 | MAP24 |
the_da.mp3 | MAP06 |
ultima.mp3 | MAP32 |
SIGIL¶
Filename | Description |
---|---|
e5m1.mp3 | E5M1 |
e5m2.mp3 | E5M2 |
e5m3.mp3 | E5M3 |
e5m4.mp3 | E5M4 |
e5m5.mp3 | E5M5 |
e5m6.mp3 | E5M6 |
e5m7.mp3 | E5M7 |
e5m8.mp3 | E5M8 |
e5m9.mp3 | E5M9 |
inter.mp3 | Intermission Music |
intro.mp3 | Title Music |
Config¶
PrBoom's internal game settings can be found in the 'prboom.cfg' file inside each game's save directory.
Many of these settings may be changed from the in-game menu. A few notable options are as follows:
-
Options → General (page 1) → Framerate (35fps|40fps|50fps|60fps|70fps|72fps|75fps|90fps|100fps| 119fps|120fps|140fps|144fps|240fps|244fps)
Vanilla Doom has a native framerate of 35fps. This should be considered the 'correct' value, but it can lead to an irregular 'stuttering' effect on 60Hz LCD displays.
All framerates should maintain the proper game speed.
-
Options → General (page 1) → Gamma Correction (Off|Lv. 1|Lv. 2|Lv. 3|Lv. 4)
Sets display brightness.
-
Options → Screen Size (Low|High)
When set to 'Low', the HUD is shown at the bottom of the screen.
When set to 'High', the gameplay area fills the screen and no HUD is shown.
-
Options → Mouse Sensitivity
The 'horizontal' slider sets the movement speed when looking left/right with either the mouse or the gamepad right analog stick.
Core options¶
The PrBoom core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded.
Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch.
-
Internal resolution (restart) [prboom-resolution] (320x200|640x400|960x600|1280x800|1600x1000|1920x1200)
Configure the resolution. Requires a restart.
Internal resolution - 320x200
Internal resolution - 1920x1200
-
Mouse active when using Gamepad [prboom-mouse_on] (disabled|enabled)
Allows you to use mouse inputs even when User 1's device type isn't set to 'RetroKeyboard/Mouse'.
-
Look on parent folders for IWADs [prboom-find_recursive_on] (enabled|disabled)
Scans parent folders for IWADs. NOTE: You need to disable this if you want to run SIGIL.
-
Analog Deadzone (percent) [prboom-analog_deadzone] (15|20|25|30|0|5|10)
Sets the deadzone of the Gamepad analog sticks when the input device type is set to 'Gamepad Modern'.
User 1 device types¶
The PrBoom core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s):
- None - Input disabled.
- Gamepad Classic - Joypad
- Gamepad Modern - Joypad
- RetroKeyboard/Mouse - Keyboard and Mouse - Switch to this for keyboard and mouse input. Has keymapper support.
Joypad¶
User 1 input descriptors for 'Gamepad Classic' device type | RetroPad Inputs | PrBoom inputs |
---|---|---|
Use | Use | |
Run | Run | |
Show/Hide Map | Show/Hide Map | |
Show/Hide Menu | Show/Hide Menu | |
D-Pad Up | D-Pad Up | |
D-Pad Down | D-Pad Down | |
D-Pad Left | D-Pad Left | |
D-Pad Right | D-Pad Right | |
Fire | Fire | |
Strafe | Strafe | |
Strafe Left | Strafe Left | |
Strafe Right | Strafe Right | |
Previous Weapon | Previous Weapon | |
Next Weapon | Next Weapon |
User 1 input descriptors for 'Gamepad Modern' device type | RetroPad Inputs | PrBoom inputs |
---|---|---|
Menu Cancel | Menu Cancel | |
Quick Save | Quick Save | |
Show/Hide Map | Show/Hide Map | |
Show/Hide Menu | Show/Hide Menu | |
D-Pad Up | D-Pad Up | |
D-Pad Down | D-Pad Down | |
D-Pad Left | D-Pad Left | |
D-Pad Right | D-Pad Right | |
Menu Select | Menu Select | |
Quick Load | Quick Load | |
Previous Weapon | Previous Weapon | |
Next Weapon | Next Weapon | |
Use | Use | |
Fire | Fire | |
Toggle Run | Toggle Run | |
180 Turn | 180 Turn | |
X | Strafe Left/Right | |
Y | Move Forwards/Backwards | |
X | Look Left/Right |
Keyboard and Mouse¶
RetroKeyboard/Mouse inputs | Weapons |
---|---|
Keyboard 1 | Fist |
Keyboard 2 | Pistol |
Keyboard 3 | Shotgun |
Keyboard 4 | Chaingun |
Keyboard 5 | Rocket |
Keyboard 8 | Chainsaw |
Keyboard 0 | Best |
Keyboard Left Control | Fire |
Keyboard Right Control | Fire |
Wheel Up | Next Weapon |
Wheel Down | Previous Weapon |
Mouse 1 | Fire |
RetroKeyboard/Mouse inputs | Movement |
---|---|
Keyboard Up | Forward |
Keyboard Down | Backward |
Keyboard Left | Turn Left |
Keyboard Right | Turn Right |
Keyboard Left Shift | Run |
Keyboard Right Shift | Run |
Keyboard Less than < | Strafe Left |
Keyboard Greater than > | Strafe Right |
Keyboard Left Alt | Strafe |
Keyboard Right Alt | Strafe |
Keyboard Caps Lock | Autorun |
Keyboard Slash / | 180 Turn |
Keyboard Space | Use |
Mouse Cursor | Turn Left/Right |
Mouse 2 | Strafe |
Mouse 3 | Use |
Mouse 3 | Forward |
RetroKeyboard/Mouse inputs | Game |
---|---|
Keyboard F2 | Save |
Keyboard F3 | Load |
Keyboard F6 | Quicksave |
Keyboard F7 | Endgame |
Keyboard F9 | Quickload |
Keyboard F10 | Quit |
RetroKeyboard/Mouse inputs | Screen |
---|---|
Keyboard F1 | Help |
Keyboard Escape | Menu |
Keyboard Home | Setup |
Keyboard Pause | Pause |
Keyboard Tab | Automap |
Keyboard F4 | Sound Volume |
Keyboard F5 | HUD |
Keyboard F8 | Messages |
Keyboard F11 | Gamma Fix |
Keyboard F12 | Spy |
Keyboard Minus - | Smaller View |
Keyboard Plus + | Larger View |
RetroKeyboard/Mouse inputs | Automap |
---|---|
Keyboard f | Follow Mode |
Keyboard Minus - | Zoom in |
Keyboard Plus + | Zoom out |
Keyboard m | Mark Place |
Keyboard c | Clear Marks |
Keyboard o | Full/Zoom |
Keyboard g | Grid |
External Links¶
- Official PrBoom Website
- Official PrBoom SourceForge Repository
- Libretro PrBoom Core info file
- Libretro PrBoom Github Repository
- Report Libretro PrBoom Core Issues Here