PrBoom
From DoomWiki.org
PrBoom | |
Standard | Doom, Boom, MBF |
---|---|
Codebase | Boom |
Developer(s) | Florian Schulze (Proff), Colin Phipps (cph), Rob Young (RjY), Andrey Budko (entryway) |
Initial release | 2.0.2 (1998-11-15, 26 years ago) |
Latest release | 2.5.0 (2008-11-09, 16 years ago) |
Development status | Discontinued |
Written in | C |
Target platform | Cross-platform |
License | GPLv2+ |
Website | http://prboom.sourceforge.net/ |
Source Repository
(SVN) |
crowproductions.de |
PrBoom, originally short for "Proff Boom", is a source port for Windows, Linux/POSIX, OpenVMS and Mac OS X based initially on Boom, but later merged with LxDoom and LsdlDoom. As a result of this merger, PrBoom is compatible with both Boom and MBF. It includes OpenGL features for the renderer (as GLBoom) as well as some enhancements over the engines it is based on, such as being able to handle levels with twice as many segs, vertices and sidedefs than usual. In addition to the code from its predecessors, it incorporates bits of code from the Eternity Engine, and PrBoom+.
PrBoom was maintained by Rob Young (RjY), with occasional contributions from Andrey Budko (entryway). Florian Schulze (Proff) and Colin Phipps (cph), who accompanied Proff for the first few years after the merge with LxDoom, have retired from the PrBoom development team. Development moved to PrBoom+ instead; until that fork was also retired with DSDA-Doom as its de-facto successor.
Unlike other source ports that concentrate on offering many new game features or changes, such as ZDoom, EDGE and the Eternity Engine, PrBoom aims to act as a stable port of the more established or traditional engines.
PrBoom uses the SDL library to abstract away operating system or platform specifics. As a result it supports a very large variety of platforms. In addition to the PC, it has been compiled for the GP2X and various Mac models, among others. The source port, packaged with Freedoom, is included in the Fedora RPM software repository.
Contents
Compatibility modes and settings[edit]
PrBoom supports various compatibility settings to adjust its behavior, much like those initially implemented for MBF. In addition to individual settings for each difference in behavior, it allows the user to set compatibility levels to behave like earlier versions and modifications of the Doom engine. With the compatibility levels PrBoom may provide almost flawless compatibility with regular demos, as well as those recorded with Boom engines.
To change compatibility levels, the cheat code tntcomp can be used in-game. The game can also be launched with the -complevel parameter, or with default_compatibility_level in the config file, followed by one of the following numbers:
Level | Emulated engine |
---|---|
-1 | Engine defaults ("current version") |
0 | Doom v1.2 (note: flawed in PrBoom; requires PrBoom+ 2.5.0.8 or later) |
1 | Doom v1.666 |
2 | Doom v1.9 |
3 | Ultimate Doom & Doom95 |
4 | Final Doom |
5 | DOSDoom |
6 | TASDoom |
7 | Boom's inaccurate vanilla compatibility mode |
8 | Boom v2.01 |
9 | Boom v2.02 |
10 | LxDoom |
11 | MBF |
12 | PrBoom v2.03beta |
13 | PrBoom v2.1.0 |
14 | PrBoom v2.1.1 - 2.2.6 |
15 | PrBoom v2.3.x |
16 | PrBoom v2.4.0 |
17 | Engine defaults ("current version") |
21 | MBF21 (note: requires DSDA-Doom) |
In practice, complevels 2 and 9 are the ones used in the overwhelming majority of cases.
Demo recording[edit]
PrBoom's compatibility with demos from the plain Doom engine, Boom and MBF also allows it to behave like these while playing, whether recording new demos or not. PrBoom in Doom compatibility mode treats straferunning differently than usual, which makes it possible to identify demos recorded with it. This is due to the Compet-n rules which require demos to be recorded with the DOS executables included with the games. In addition, PrBoom includes features which make it possible to "cheat" by using saved games to record demos in several stages. The offshoot engine PrBoom+, on the other hand, has all the compatibility options of PrBoom yet treats straferunning in the same way as the unmodified games.
When using a compatibility mode during demo recording, PrBoom marks the resulting demo with the corresponding version header information. Since PrBoom can handle larger or more detailed levels than its predecessors, this may produce demos that are not compatible with the engine versions it is emulating.
Libretro PrBoom[edit]
PrBoom 2.5.0 was selected to be included in the libretro API, a universal platform used by the RetroArch frontend. Through RetroArch, PrBoom, called lr-prboom in the source code, is included as a core, a dynamic library providing a generalized platform for settings, controls and more to be called from and towards the frontend. This version of PrBoom has several modifications to be included in libretro:
- Support for framerates up to 244 FPS
- The default framerate is 60 FPS (35 FPS is the correct value, but leads to stuttering on 60 Hz LCD displays.)
- Support for internal resolution up to 1920x1200, in 4:3 aspect ratio
- The default is 320x200, and can be increased to 640x400, 960x600, 1280x800, 1600x1000 and 1920x1200 respectively
- Can search in parent folders for IWADs
Supported platforms[edit]
Through RetroArch, Libretro PrBoom runs on a vast range of platforms. The list of platforms known to run the PrBoom core are:
- Apple: macOS (Intel x86 processors and Apple ARM based silicon), iOS, tvOS (Apple TV)
- GCW Zero
- Google: Android (ARM and x86)
- Linux (ARM and x86)
- Microsoft: Xbox (RetroArch 1.7.0 unofficially), Xbox 360 (RetroArch 1.0.0.2 unofficially), Xbox One, Xbox Series X and Series S
- Nintendo: GameCube, Wii, Wii U, Nintendo Switch, Nintendo 3DS, NES Classic, SNES Classic
- Pandora (console)
- Raspberry Pi
- Sony: PlayStation 2, PlayStation 3 (RetroArch 1.9.0 unofficially), PlayStation Portable, PlayStation Vita, PlayStation TV, PlayStation Classic
- Valve: Steam Link
- Microsoft Windows (95, XP, 7, 8, 10, 11)
Trivia[edit]
- John Carmack chose PrBoom as a base for the 2009 Doom Classic (iOS) port.[1]
See also[edit]
External links[edit]
- PrBoom official site
- PrBoom 2.02 binary, hosted by Doomworld
- PrBoom 2.02 source code, hosted by Doomworld
- TeamTNT's Go Get It download page, includes mirrors for PrBoom 2.02
- PrBoom for OpenVMS, ported by Alexey Chupahin
- discussion prior to the merger at Doomworld, 1998-08-03
- announcement of the PrBoom/LxDoom/LsdlDoom merger, 2000-09-17
- LsdlDoom link #1, link #2
- SVN log retrieved by cia.vc
- Libretro PrBoom documentation, hosted by libretro.com
- RetroArch Official Platform list, hosted by retroarch.com
References[edit]
- ↑ Carmack, John. "iPhone Doom Classic Progress Report." id Software (archived 🗺). Retrieved 1 October 2022.
Source code genealogy | ||
---|---|---|
Based on | Name | Base for |
Boom v2.02 | PrBoom v2.02 | Merged |
Based on | Name | Base for |
LxDoom | PrBoom v2.1.0 | Doom Classic (iOS) |
LsdlDoom | DS Doom | |
PrBoom v2.02 | PrBoom+ | |
Rockdoom | ||
SvStrife |