Last modified: Wed Jun 5 16:42:48 EDT 2019
There are:
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.
Following are five simple compatibility tests that can all be conducted in the vicinity of the starting point of E1M1.
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 file | DOOM Music Card setup | Sound card | Synth chip | Synth type | Soundfont |
---|---|---|---|---|---|
Clicky | "Sound Blaster" | CT2800 Sound Blaster VIBRA 16 | Yahama OPL3 | FM | N/A |
Clicky | "Sound Blaster AWE32" | CT4390 Sound Blaster AWE64 Gold | EMU8000 | Wavetable | 1 MB GM ROM |
Clicky | "Gravis UltraSound" | Gravis UltraSound Rev. 2.4 ("Classic") | GF1 | Wavetable | Standard Gravis PATs as loaded by DOOM |
Clicky | "General Midi" | Yamaha DS-XG type | YMF724F | Wavetable | Default 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."
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:
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.
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.
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.
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.
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.