Difference between revisions of "PrBoom+"

From DoomWiki.org

[checked revision][checked revision]
(Added to OpenGL Ports category)
m (Automated edit - avoid redirect)
(36 intermediate revisions by 15 users not shown)
Line 2: Line 2:
 
|title = PrBoom+
 
|title = PrBoom+
 
|logo = [[Image:PrBoom+ logo.png]]
 
|logo = [[Image:PrBoom+ logo.png]]
|developer = [[Andrey Budko (entryway)]]
+
|developer = [[Andrey Budko (entryway)]], [[Christoph Oelckers (Graf Zahl)]], [[Fabian Greffrath]]
 
|baseparent = [[PrBoom]]
 
|baseparent = [[PrBoom]]
 
|standard = [[Doom]], [[Boom]], [[MBF]]
 
|standard = [[Doom]], [[Boom]], [[MBF]]
|programming language = [[Wikipedia:C (Programming Language)|C]]
+
|programming language = {{wp|C (programming language)|C}}
 
|status = Active
 
|status = Active
 +
|initialversion = 2.2.6.3
 
|platform = Cross-Platform
 
|platform = Cross-Platform
 
|license = {{GPL||2+}}
 
|license = {{GPL||2+}}
 
|website = [http://prboom-plus.sourceforge.net/ http://prboom-plus.sourceforge.net/]
 
|website = [http://prboom-plus.sourceforge.net/ http://prboom-plus.sourceforge.net/]
|repotype = Subversion
+
|repotype = Git
|repourl = [https://www.crowproductions.de/repos/prboom/branches/prboom-plus-24/prboom2/ crowproductions.de]
+
|repourl = [https://github.com/coelckers/prboom-plus GitHub]
 
}}'''PrBoom+''' (also ''PrBoom-plus'') is a [[source port]] based on [[PrBoom]]. '''GLBoom+''' is a common name for a build of PrBoom+ compiled with OpenGL support. It is developed by [[Andrey Budko (entryway)]].
 
}}'''PrBoom+''' (also ''PrBoom-plus'') is a [[source port]] based on [[PrBoom]]. '''GLBoom+''' is a common name for a build of PrBoom+ compiled with OpenGL support. It is developed by [[Andrey Budko (entryway)]].
  
PrBoom+ is based on the [[PrBoom]] 2.5.x line of development. It can currently be compiled in [[Wikipedia:POSIX|POSIX]], [[Source port#Windows|Windows]] and [[Wikipedia:Mac OS X|Mac OS X]] environments. The current version is {{:PrBoom+/Version}}, released on {{:PrBoom+/Date}}. The project saw its first developments in 2004, starting off as an unnamed PrBoom modification, but after gaining numerous additions over PrBoom it eventually adopted the separate PrBoom+ title in 2005.
+
PrBoom+ is based on the [[PrBoom]] 2.5.x line of development. It can currently be compiled in {{wp|POSIX}}, [[Source port#Desktop|Windows]] and {{wp|Mac OS X}} environments. The current version is {{:PrBoom+/Version}}, released on {{:PrBoom+/Date}}. The project saw its first developments in 2004, starting off as an unnamed PrBoom modification, but after gaining numerous additions over PrBoom it eventually adopted the separate PrBoom+ title in 2005.
 +
 
 +
Since version 2.5.1.5, PrBoom+ is released with support for the [[UMAPINFO]] standard, retaining the same name, but visually separated in version number with the letters ''um'', referring to the initials of the standard.
  
 
==PrBoom+ features==
 
==PrBoom+ features==
In addition to all PrBoom features, PrBoom+ offers
+
In addition to all PrBoom features, PrBoom+ offers:
 
* [[Chasecam]] for [[demo]] playbacks
 
* [[Chasecam]] for [[demo]] playbacks
 
* Changing the speed of the game in-game (for demo playback, recoding TAS demos, and for just playing at different speed)
 
* Changing the speed of the game in-game (for demo playback, recoding TAS demos, and for just playing at different speed)
Line 29: Line 32:
 
* Customizable [[HUD]] with the <tt>-PRBHUD-</tt> lump
 
* Customizable [[HUD]] with the <tt>-PRBHUD-</tt> lump
 
* Video capture with the [[Source port parameters#-viddump <filename>|<tt>-viddump</tt>]] [[source port parameters|parameter]] (requires external programs)
 
* Video capture with the [[Source port parameters#-viddump <filename>|<tt>-viddump</tt>]] [[source port parameters|parameter]] (requires external programs)
 +
* Support for [[jumping]] when not recording demos
 +
* Optional [[free look]] (though, by default, aiming is not affected and [[autoaim]] behaves as if the line of sight remained horizontal. Free aim can be enabled when not recording demos)
 
===OpenGL mode features===
 
===OpenGL mode features===
 +
In OpenGL mode PrBoom+ offers three rendering paths:
 +
* OpenGL 2.0. The ''shader'' mode. This includes support for shaders using the {{wp|ARB assembly language}}.
 +
* OpenGL 1.2 (Will detect OpenGL 1.3 as well)
 +
Both these are considered the ''main support'' levels. One additional rendering path is also supported:
 +
* OpenGL 1.1. This is used as a compatibility mode in case the videocard does not support the previously mentioned render paths.
 
In addition to all aforementioned PrBoom+ features, in OpenGL mode PrBoom+ can also use:
 
In addition to all aforementioned PrBoom+ features, in OpenGL mode PrBoom+ can also use:
 
* [[ZDoom]]-style high-resolution textures/flats/sprites (replacements located between [[HI_START]] and HI_END markers)
 
* [[ZDoom]]-style high-resolution textures/flats/sprites (replacements located between [[HI_START]] and HI_END markers)
 
* Support for [[PNG]] and DDS formats for high-res textures
 
* Support for [[PNG]] and DDS formats for high-res textures
 
* [[GZDoom]]-style [[skybox]]es through the GLDEFS lump (or its alias GLBDEFS)
 
* [[GZDoom]]-style [[skybox]]es through the GLDEFS lump (or its alias GLBDEFS)
* Optional animation blending for animated flats and textures, similar to [[ZDoomGL]]
+
* Optional animation blending for animated flats and textures, similar to [[ZDoomGL (v1)]]
* Optional [[free look]] (though aiming is not affected and [[autoaim]] behaves as if the line of sight remained horizontal)
 
 
* Details textures (also defined in GLDEFS lump)
 
* Details textures (also defined in GLDEFS lump)
 
* Optional textured [[automap]]
 
* Optional textured [[automap]]
Line 48: Line 57:
 
  }
 
  }
  
Where detail_name is a bmp/png/tga/jpg/pcx/gif lump between the HI_START/HI_END markers. You don't need to add the texture to TEXTURES1. Default values are (width:16 height:16 offset_x:0 offset_y:0)
+
Where detail_name is a bmp/png/tga/jpg/pcx/gif lump between the HI_START/HI_END markers. You do not need to add the texture to TEXTURES1. Default values are (width:16 height:16 offset_x:0 offset_y:0)
  
 
Example:
 
Example:
Line 71: Line 80:
 
   }
 
   }
 
  }
 
  }
 +
 +
==PrBoom+um==
 +
Version 2.5.1.5 was released as a test version by the PrBoom+ team, but was also the first official release of PrBoom+ with [[UMAPINFO]] support. Initially created by [[Graf Zahl]], his branch was first build upon PrBoom+ 2.5.1.4, with a first release on April 22, 2017.
 +
 +
Since 2.5.1.5, every version since of PrBoom is of the UMAPINFO branch, with the original creator of PrBoom+, [[Andrey Budko (entryway)]] declaring it as its successor.
 +
 +
==Compatibility modes==
 +
PrBoom+ supports various of 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 [[Source port cheat codes#Boom|cheat code]] {{c|tntcomp}} can be used ingame. The game can also be launched with the [[Source port parameters#-complevel <compatibility level>|{{c|-complevel}}]] [[parameter]], or with default_compatibility_level in the config file, followed by one of the following numbers:
 +
 +
{{complevels}}
 +
 +
* If a custom wad has "BOOM compatible" in its description, use ''"9 - Boom v2.02"''.
 +
* If a custom wad has "MBF compatible" in its description, use ''"11 - MBF"''.
 +
 +
==Launchers==
 +
* [https://github.com/Electric1447/PRLauncher-plus/ PRLauncher-plus]
 +
* [https://github.com/DerTodIstEinDandy/PrBoom-Launcher PrBoom-Launcher]
 +
 +
<gallery mode="nolines" widths="250px" heights="160px">
 +
PRLauncher-plus_v0.6.2.1.png|PRLauncher-plus v0.6.2.1
 +
PRBoom-Launcher.png|PrBoom-Launcher v0.1.2
 +
</gallery>
  
 
==See also==
 
==See also==
 
 
*[[PrBoom]]
 
*[[PrBoom]]
 +
*[[DSDA-Doom]]
  
 
==External links==
 
==External links==
  
 
*[http://prboom-plus.sourceforge.net/ PrBoom+]
 
*[http://prboom-plus.sourceforge.net/ PrBoom+]
*{{dwforums|31039|PrBoom-Plus thread}} at the [[Doomworld forums]].
+
*{{dwforums|31039|PrBoom-Plus thread}} at the [[Doomworld forums]]
 +
*{{dwforums|106866|PrBoom+ 2.6.1um}} at the Doomworld forums
 +
*[https://github.com/alexey-lysiuk/prboom-macos/releases Unofficial compilations for macOS]
  
 
{{s-start}}
 
{{s-start}}
Line 85: Line 120:
 
{{s-bef|before=[[PrBoom]]}}
 
{{s-bef|before=[[PrBoom]]}}
 
{{s-ttl|title=PrBoom+}}
 
{{s-ttl|title=PrBoom+}}
{{s-non|reason=Active}}
+
{{s-aft|after=[[DSDA-Doom]]}}
 
{{s-end}}
 
{{s-end}}
 
[[Category:Source ports]]
 
[[Category:Source ports]]
Line 91: Line 126:
 
[[Category:Doom ports]]
 
[[Category:Doom ports]]
 
[[Category:Limit removing source ports]]
 
[[Category:Limit removing source ports]]
 +
[[Category:MBF-compatible]]
 
[[Category:OpenGL ports]]
 
[[Category:OpenGL ports]]

Revision as of 12:59, 8 August 2022

PrBoom+
PrBoom+ logo.png
Standard Doom, Boom, MBF
Codebase PrBoom
Developer(s) Andrey Budko (entryway), Christoph Oelckers (Graf Zahl), Fabian Greffrath
Initial release 2.2.6.3
Latest release 2.6.66 (2023-06-20, 9 months ago)
Development status Active
Written in C
Target Platform Cross-Platform
License GNU General Public License v2+
Website http://prboom-plus.sourceforge.net/
Source Repository

(Git)

GitHub
PrBoom+ (also PrBoom-plus) is a source port based on PrBoom. GLBoom+ is a common name for a build of PrBoom+ compiled with OpenGL support. It is developed by Andrey Budko (entryway).

PrBoom+ is based on the PrBoom 2.5.x line of development. It can currently be compiled in POSIX, Windows and Mac OS X environments. The current version is 2.6.66, released on 2023-06-20. The project saw its first developments in 2004, starting off as an unnamed PrBoom modification, but after gaining numerous additions over PrBoom it eventually adopted the separate PrBoom+ title in 2005.

Since version 2.5.1.5, PrBoom+ is released with support for the UMAPINFO standard, retaining the same name, but visually separated in version number with the letters um, referring to the initials of the standard.

PrBoom+ features

In addition to all PrBoom features, PrBoom+ offers:

  • Chasecam for demo playbacks
  • Changing the speed of the game in-game (for demo playback, recoding TAS demos, and for just playing at different speed)
  • Automatic loading of WADs necessary for playback, chosen by demo name or by information present in demo file (if recorded with PrBoom+)
  • Accurate Doom v1.2 emulation if needed during demo playback or requested by user
  • Support for DeePBSP and ZDBSP extended nodes
  • Support for the MUSINFO lump shared with Risen3D, ZDoom and GZDoom
  • MIDI output with OPL emulation, FluidSynth, PortMidi, or SDL
  • Ogg Vorbis and MP3 playback
  • Speed optimisations for very large levels, compared to PrBoom
  • Customizable HUD with the -PRBHUD- lump
  • Video capture with the -viddump parameter (requires external programs)
  • Support for jumping when not recording demos
  • Optional free look (though, by default, aiming is not affected and autoaim behaves as if the line of sight remained horizontal. Free aim can be enabled when not recording demos)

OpenGL mode features

In OpenGL mode PrBoom+ offers three rendering paths:

  • OpenGL 2.0. The shader mode. This includes support for shaders using the ARB assembly language.
  • OpenGL 1.2 (Will detect OpenGL 1.3 as well)

Both these are considered the main support levels. One additional rendering path is also supported:

  • OpenGL 1.1. This is used as a compatibility mode in case the videocard does not support the previously mentioned render paths.

In addition to all aforementioned PrBoom+ features, in OpenGL mode PrBoom+ can also use:

  • ZDoom-style high-resolution textures/flats/sprites (replacements located between HI_START and HI_END markers)
  • Support for PNG and DDS formats for high-res textures
  • GZDoom-style skyboxes through the GLDEFS lump (or its alias GLBDEFS)
  • Optional animation blending for animated flats and textures, similar to ZDoomGL (v1)
  • Details textures (also defined in GLDEFS lump)
  • Optional textured automap

Detail texture definition

A detail texture is defined in a GLDEFS text lump. The syntax is as follows:

detail
{
  (walls | flats) [default_detail_name [width [height [offset_x [offset_y]]]]]
  {
    texture_name [detail_name [width [height [offset_x [offset_y]]]]]
  }
}

Where detail_name is a bmp/png/tga/jpg/pcx/gif lump between the HI_START/HI_END markers. You do not need to add the texture to TEXTURES1. Default values are (width:16 height:16 offset_x:0 offset_y:0)

Example:

detail
{
  walls smooth01 32.0 //default detail for walls (width = 32, height = 16, offset_x/y = 0)
  {
    brick7  detstone 64.0 64 10.532
    brick8  detail02 // detail02 16 16 0 0
    water1 // do not apply default detail to water
    water2
    water3
    water4
  }
  flats // no default detail for flats
  {
    grass1 Grass01 32 32
    NUKAGE1 detslime 16 16 0 0 // different offsets for animated flats make sense
    NUKAGE2 detslime 16 16 4 4
    NUKAGE3 detslime 16 16 8 8
  }
}

PrBoom+um

Version 2.5.1.5 was released as a test version by the PrBoom+ team, but was also the first official release of PrBoom+ with UMAPINFO support. Initially created by Graf Zahl, his branch was first build upon PrBoom+ 2.5.1.4, with a first release on April 22, 2017.

Since 2.5.1.5, every version since of PrBoom is of the UMAPINFO branch, with the original creator of PrBoom+, Andrey Budko (entryway) declaring it as its successor.

Compatibility modes

PrBoom+ supports various of 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 ingame. 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)
  • If a custom wad has "BOOM compatible" in its description, use "9 - Boom v2.02".
  • If a custom wad has "MBF compatible" in its description, use "11 - MBF".

Launchers

See also

External links

Source code genealogy
Based on
PrBoom
PrBoom+ Base for
DSDA-Doom