← Previous → Next Contents

Last modified: Wed Jun 5 16:42:48 EDT 2019


Source ports

Categories of source ports

There are:

  1. Faithful source ports that retain the original DOOM model and rendering engine with at most minor tweaks.  These ports can potentially provide higher screen resolutions and work on newer operating systems without breaking compatibility with the original.
    DOOM 95 WinDoom NTDoom WinMBF Chocolate DOOM
  2. Enhanced source ports that try to improve on the original DOOM model and/or rendering engine.  These ports can provide drastically improved graphics and other features, but even minor dinking with the DOOM engine usually breaks compatibility in obvious ways.
    Edge PrBoom PrBoom-Plus glDoom Doomsday Risen3D DOOM Legacy ZDoomGL ZDoom Eternity DoomGL Vavoom Doom3D GZDoom
  3. Specialized ports that focus on multiplayer, client/server functionality.  I did not review these:  csDoom Skulltag Zandronum WDMP ZDaemon.
  4. Complete remakes that don't even use the original WAD files.  The only one so far is Classic DOOM 3.

The inconvenient truth is that most source ports that are playable on a modern PC either are incompatible with Vanilla DOOM or have intolerable defects.  The exceptions are Chocolate DOOM, which had the specific mission of remaining as close to Vanilla DOOM as possible, and PrBoom / PrBoom-Plus, which come very very close to being compatible with Vanilla DOOM.

Test method for source ports

Test procedure

  1. Install the port.
  2. Configure it as best can.
  3. Play E1M1 (Hangar) and look for reasons to trash it.
  4. If no reasons are found, play DOOM2 Level 3 (The Gantlet) and look for reasons to trash it.
  5. If I still have no reason to trash it, come back when time permits and play other levels until a discrepancy is found.

Following are five simple compatibility tests that can all be conducted in the vicinity of the starting point of E1M1.

Test #0:  Music

This is not a rigorous test since DOOM music always sounded different depending on your sound card, but a bad choice of sound font or glitchy OPL3 emulation is hard to ignore and will usually hit you in the face right at the start.  Having said that, problems with less frequently used instruments or effects can appear later on, e.g., when a sound that was intended to be subtle is replaced by screech, screech, screech....

The OPL3 sound ranks highly in the canon only because a Sound Blaster 16 is what most people played with back in the day.  The composer, Robert "Bobby" Prince, used a Roland SC-55 (according to Fraggle and other sources), of which you can find good samples here.

The following reference sounds were recorded from the analog output of the respective sound cards as E1M1 was playing in Vanilla DOOM, using whatever crappy 48 kHz PCI audio was handy.

FLAC fileDOOM Music Card setupSound cardSynth chipSynth typeSoundfont
Clicky"Sound Blaster"CT2800 Sound Blaster VIBRA 16Yahama OPL3FMN/A
Clicky"Sound Blaster AWE32"CT4390 Sound Blaster AWE64 GoldEMU8000Wavetable1 MB GM ROM
Clicky"Gravis UltraSound"Gravis UltraSound Rev. 2.4 ("Classic")GF1WavetableStandard Gravis PATs as loaded by DOOM
Clicky"General Midi"Yamaha DS-XG typeYMF724FWavetableDefault 2.5 MB ydsxg.dat

The OPL3 sound file records the normal behavior of Vanilla DOOM on a SB16, which is to play the music monophonically.  An undocumented environment variable setting is needed to enable [channel-flipped] stereo music:

C:\> SET DMXOPTION=-opl3

According to DOOM Wiki, the OPL3 stereo capability was disabled by default "for stability reasons."

Test #1:  Aspect Ratio

Examine the rectangular texture on the far wall dead ahead.  In Vanilla DOOM, the rectangle is slightly taller than it is wide.  In source ports with broken aspect ratio correction, the same texture usually appears to be slightly wider than it is tall or else perfectly square.

Right: 

Wrong: 

Wrong: 

Test #2:  That Sinking Feeling

Also from the starting position of E1M1, examine the barrel to your right.  Note that it has three horizontal ridges.  In Vanilla DOOM, the bottom ridge is as far from the floor as the top ridge is from the top of the barrel.  In some source ports, this barrel sinks into the floor so that the bottom ridge is basically on the floor.

Right:     Wrong: 

Ironically, this problem results from correct rendering of incorrect WAD data.  When an object has a Z coordinate (altitude) that is set too low, such that it should penetrate the floor, the Vanilla DOOM renderer draws the entire object anyway.  When the same data are used by a rendering engine that does the "right" thing, the affected object actually does sink into the floor.  Some ports rectify the problem by increasing the Z of affected objects, but the result doesn't look the same as Vanilla DOOM.

Test #3:  The Steep Stairs of Doom

This is the stairway that is to the left at the beginning of E1M1.  On Ultraviolence, there are goons hiding behind each of the columns (you can see the tops of their heads in this screenshot).  If you run up the stairs and hide in the back, do they follow you up the stairs?  In Vanilla DOOM, they can't.  In some source ports, they do.  Sometimes there is a compatibility switch affecting exactly this behavior.

Test #4:  The Long Shot

This is the view through the window that is to the right at the beginning of E1M1.  In the distance, in the part of the building on the other side of the courtyard, two goons are walking back and forth.  Can you take them out?  In Vanilla DOOM, it's pretty easy.  In some source ports, it's difficult or impossible.

This is another example where the source port doing things the "right" way is what breaks compatibility.  Vanilla DOOM had a feature called "auto aim" that granted a hit as long as the bearing was in the vicinity of correct.  By calculating trajectories accurately in three dimensions instead of only vaguely in only two dimensions, source ports alter the gameplay.

Evaluation criteria

Requirements

  1. DOOM levels from DOOM.WAD and DOOM2.WAD must play almost exactly as they did in Vanilla DOOM, the only permissible changes being to correct serious bugs that existed in Vanilla DOOM.  I don't want a new game that is better than DOOM—I want DOOM.  Modes of failure:  monsters do things that they couldn't do in Vanilla DOOM; targeting is different; triggers that are supposed to open doors or whatever don't work (possibly preventing you from finishing the level); any other discrepancies from the original.
  2. My track ball must work and work smoothly.  Modes of failure:  doesn't work at all or is "jerky" (smooth movement of the track ball fails to translate into smooth movement on screen).
  3. I must be able to remap key bindings.  The track ball lets me move and turn with great flexibility, but the home row keys for my left hand must be strafe left, fire, strafe right.
  4. It must be possible to make the graphics look good on my CRT.  Modes of failure:  gamma correction doesn't work; gamma correction works but the graphics still look dim or dingy.  So maybe DOOM was meant to be dark and dingy.  I don't care.  I cranked the gamma up to its maximum in the original and I want to do the same thing now.  (See notes about why gamma correction matters.)
  5. The aspect ratio of rendered graphics must be correct.  Mode of failure:  in part or in whole, the display is vertically compressed, resulting from a failure to correct for the non-square pixels of the 320×200 mode and/or for widescreen monitors.  On a CRT, this problem can be avoided by sticking with graphics modes that have an 8:5 storage aspect ratio (the display aspect ratio remains 4:3).  The only standard alternative is 640×400, but 1024×640 or 1280×800 would probably work.
  6. There can be no glaring bugs that detract from gameplay.  Modes of failure:  rendering bugs (worse than Vanilla DOOM); clipping bugs (worse than Vanilla DOOM); hangs; crashes; settings that won't stick; broken or buggy sound.
  7. The original music had better work.
  8. It has to work under Windows XP or Linux; otherwise, I may as well run Vanilla DOOM.

Nice-to-haves

  1. PLUTONIA.WAD, TNT.WAD and the Icarus PWAD should play almost exactly as they did in Vanilla DOOM.  This would be a requirement if I had played those wads back in the day, but I didn't, so I would not notice if they played differently now.
  2. Screen resolution should be at least 640×400, preferably 1024×768.
  3. OpenGL would be nice.

Non-requirements

  1. 3-D sprites.
  2. Multiplayer.
  3. Exhaustive configurables for every possible gameplay nit—if these make it trickier to get full DOOM compatibility, then they are counter-productive.
  4. Ability to replace original music with ABBA.
  5. Ability to create or use new wads.
  6. True 3-D gameplay.
  7. Other Special Features that didn't exist in Vanilla DOOM.
  8. Compatibility with Heretic, Hexen, BOOM, or anything else other than Vanilla DOOM.

On gamma correction

DOOM existed long before there was an LCD monitor on every desktop.  The graphics were always too dark.  If you couldn't get gamma correction to work, everything was black.  But LCD monitors have an interesting flaw—they can't do black!  All dark colors are brighter than they would be on a CRT.  So, ironically, the infamously dark DOOM graphics look fine and dandy without a lot of gamma correction.

Most of the screenshots in these pages were taken while I was still using an old CRT, and not the brightest one ever made, so they might look overexposed on an LCD screen.

Other notes on DOOM lighting

DOOM's software renderer makes more distant objects appear darker, as if all light were emitted from the player.  This effect is usually eliminated in OpenGL ports.  While this makes everything look better, it unfortunately makes it impossible to see some "lighted corners" that are used to hint at the existence of a secret, such as the example from E2M2 shown below.  The extra lighting is only visible when the surrounding area is affected by distance-darkening.


← Previous → Next Contents
KB
Home