← Previous → Next Contents

Last modified: Sat Feb 10 14:52:06 EST 2018

Best enhanced source port:  PrBoom-Plus

(Texture format GL_RGBA, 8xAA and 16xAF, render_fov=90, qdgamma 1.25.)

Description:  Enhanced source port.  Fork of PrBoom with minor enhancements.

Released source:  http://sourceforge.net/projects/prboom-plus/

Latest source:  svn co https://svn.prboom.org/repos/branches/prboom-plus-24/prboom2

PrBoom-Plus version was released in January 2016 after a four year hiatus.  Unfortunately, enhancements to the automap that were made between versions and introduced a crash on launch problem that can occur when OpenGL is enabled.  This patch sacrifices some automap functionality to avoid that crash.

PrBoom-Plus is a relatively modest fork off of PrBoom.  I did most of my compatibility testing with PrBoom some years ago, but migrated to PrBoom-Plus in 2009 because I could not get a correctly scaled widescreen picture from PrBoom after upgrading to a 16:9, 1920×1080 monitor.

I played PrBoom all the way through E1, E2 and E3 in OpenGL without encountering a serious problem.  Considering that most source ports flunk out before finishing E1M1, that is quite an achievement.  Older versions of PrBoom had various glitches, but I had no problems with the later versions.

When running on Linux, user input and rendering are smooth.  The last time I tried Windows—PrBoom 2.3.1 on Windows XP SP2—it was not so smooth.

There are separate sensitivity controls for the vertical and horizontal axes of the mouse / track ball, and you get plenty of headroom on both.

A raft of run-time options controls compatibility nits like the stair-climbing ability of goons, but the simplest thing is to use the command-line switch –complevel, which takes a magic number as documented in README.compat to specify what version of DOOM to emulate.

Beware:  PrBoom and PrBoom-Plus do not default to Vanilla-compatible behavior the way that Chocolate DOOM does.  If you don't use the –complevel command-line switch, you will encounter incompatibilities with vanilla DOOM.  The only complevels relevant here are those that emulate the variants of DOOM 1.9:  refer to README.compat for the others.

2doom2_19_compatibilityDOOM 2 1.9
3ultdoom_compatibilityUltimate DOOM
4finaldoom_compatibilityFinal DOOM

The "rare" Anthology variant of Final DOOM is not yet emulated.

Video configuration

Following are the lines in my prboom-plus.cfg that differ from the default video configuration.  All of these correspond to settings that can be made in the setup menus.  To get correct results, it is vital to set Options → General → Screen Resolution to the native resolution of the monitor.

videomode                 "OpenGL"
screen_resolution         "1920x1080"
use_fullscreen                1
screenblocks                 11
usegamma                      4
gl_texture_filter_anisotropic     4
hud_displayed                 1
hudadd_secretarea             1
hudadd_smarttotals            1
hudadd_crosshair              1
hudadd_crosshair_target       1
render_stretch_hud            1
render_multisampling          8

When OpenGL is enabled, the graphics get much darker, requiring some tweaking in the monitor, Nvidia driver, or X server.

render_multisampling is AA.  The program's setup does not allow setting it to 16.  Manually editing the config file to do so causes it to be reset to 0 on the next run.

Sound configuration

PrBoom-Plus supports many options for MIDI output, including:

What I've been having the most luck with actually is to use FluidSynth not directly from PrBoom-Plus but indirectly through a FluidSynth-enabled SDL library.  This requires a small patch.  After the patch, you choose SDL as the preferred MIDI player in setup, but you get FluidSynth.  The sound font to use is specified by the snd_soundfont line in prboom-plus.cfg, just like when using FluidSynth directly.

[More info on selecting sound fonts:  "You either have to set the SDL_SOUNDFONTS environment variable to some path or the game can call Mix_SetSoundFonts.  The latter takes priority but if you want to override it, set SDL_FORCE_SOUNDFONTS to 1."]

Got illegal instructions?

The configure script automatically adds –march=native to the compile line, overriding any attempts to build binaries that are compatible with other, older CPUs.  This patch stops that.  (It looks like --disable-cpu-opt was supposed to do something relevant, but it has no effect.)

Memorable glitches that went away

OpenGL rendering nit, PrBoom or PrBoom-Plus 2.4.5.

Just for fun

This patch turns the left Control key into an extra-special "kaboom" key for use when life gets complicated and the demons are closing in.  Note that this is hacked in with blatant disregard for all sorts of things and will void your warranty, break your demos, make multiplayer impossible, etc.

See also the built-in option to allow jumping (General → Compatibility with common mapping errors → Allow jump).

← Previous → Next Contents