Please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Doom II: Hell on Earth (PC)

From The Cutting Room Floor
Jump to: navigation, search

Title Screen

Doom II: Hell on Earth

Developer: id Software
Publisher: GT Interactive
Platforms: DOS, Mac OS Classic, PC-98, Xbox 360, PlayStation 3
Released in JP: September 29, 1995
Released in US: October 10, 1994
Released in EU: 1994

CodeIcon.png This game has unused code.
GraphicsIcon.png This game has unused graphics.
SoundIcon.png This game has unused sounds.
TextIcon.png This game has unused text.
DebugIcon.png This game has debugging material.
RegionIcon.png This game has regional differences.
Carts.png This game has revisional differences.

ProtoIcon.png This game has a prototype article
PrereleaseIcon.png This game has a prerelease article

And you were just a scroll away from being fired too...
Oh dear, I do believe I have the vapors.
This page contains content that is not safe for work or other locations with the potential for personal embarrassment.
Such as: Romero being Romero.

Released just ten months after the first game, Doom II: Hell on Earth was hardly a large change from its predecessor...but it did get a commercial release.


Revisional Differences
Not as many as the previous game.

Unused Code

The original waterfall textures.
animdef_t		animdefs[] =
    {false,	"SWATER4",	"SWATER1", 	8},
    {true,	"WFALL4",	"WFALL1",	8},

Code exists to animate the WFALL1-4 textures and SWATER1-4 flats, however these are not present in this game. Both WADs in Final Doom later take advantage of this unused code by adding textures using and between the WFALL1 and WFALL4 names, allowing them to animate. The original patches intended for the waterfall were included with the textures John Romero released.

    {SPR_PAIN,12,8,{NULL},S_PAIN_RAISE2,0,0},	// S_PAIN_RAISE1
    {SPR_PAIN,11,8,{NULL},S_PAIN_RAISE3,0,0},	// S_PAIN_RAISE2
    {SPR_PAIN,10,8,{NULL},S_PAIN_RAISE4,0,0},	// S_PAIN_RAISE3

The Pain Elemental has a raise state, allowing it to be revived by the Arch-Vile, but Pain Elementals normally explode on death, leaving behind no corpse to be revived. The raise sequence can be seen in-game, but not under any intended circumstance: When killed by a crusher, Pain Elementals will be crushed into a pool of gibs like other monsters. If an Arch-Vile comes across these gibs, it can resurrect them. However, in doing so, the gibs' height of zero is retained on the revived monster, turning it into what the community has dubbed a "ghost" monster, where only splash damage and Arch-Vile attacks can hit it reliably.

Sliding Doors

The source files p_doors.c and p_switch.c have some remnants of code for sliding doors. These are restricted to the commercial version (Doom II). They would've been created with line action 124, but the code to activate them was commented out in the source.

Anyone familiar with Doom's renderer knows that sectors can only change vertically, the result of using a static BSP tree defined in the NODES lump for each map. To work around this limitation, these doors aren't sectors at all – they're animated textures applied to a linedef. They would use the textures GDOORF1-4 (front) and GDOORB1-4 (back), which aren't present in the final version. The code sets the blocking flag when the door is closed, preventing you and monsters from passing through it, and unsets it when the door is open.

The video to the right shows these doors in action using the original code, which is a bit bugged: sometimes the doors don't close properly and since the blocking flag doesn't stop hitscans or projectiles, they can pass through these doors like they're not even there. It's subjective, but the limited amount of animation paired with the fact that they're paper thin also makes them look terrible.

These doors are functional in the v1.4 and v1.5 Doom betas.

(Code restoration, video: fraggle)

Unused Graphics


Menu heading and option for a display options menu. These are leftovers from Doom 0.5 alpha.


Headings for the load and save game menus. These menus just reuse their option graphics for their headings.

Read This!

Additionally, the "Read This!" menu option does not appear in Doom II, but its graphic is still present in the IWAD.

Which Episode?
Knee-Deep in the Dead
The Shores of Hell

As are all of the graphics for Doom's episode selection menu. In the version of Doom II bundled with the Doom 3: BFG Edition, these lumps are used with the exception of M_EPI3 (Inferno), but the actual graphics have been altered to read "Which expansion?", "Hell on earth", and "No rest for the living".


Like in the original game, the "ouch" face was meant to occur if the player lost 20 or more health in a single attack. A mistake in the game's coding makes it visible only if you gain 20 or more health while taking damage, rendering the face unseen outside of uncommon situations, like getting hurt while standing on a medikit. Like most of Doom's status bar faces, the ouch face has five different sprites depending on how healthy the player is.


Two unused frames for the pistol. Why they're not used is unknown.

The recoil seems reasonable enough.

An unused frame for the BFG. Again, why it's unused is a mystery.


DMENUPIC is a rather impressive graphic that's used in place of the TITLEPIC and INTERPIC in the Xbox Live Arcade version. It is still included in the IWAD for the version included in Doom 3: BFG Edition, but goes unused in favor of the original INTERPIC.


This multiplayer menu option graphic is present in the Doom 3 BFG Edition IWAD. It's used in the console versions, but the PC version doesn't have multiplayer support.

Unused Messages

Medikit Message

If the player gets a medikit with less than 25 health, this should be displayed:

Picked up a medikit that you REALLY need!

However, health is added before the check is made, so the player's health is always greater than 25 when it checks which message to use.

Quit Messages

There are several unused quit messages defined in the source code:

fuck you, pussy!
get the fuck out!
you quit and i'll jizz
in your cystholes!
if you leave, i'll make
the lord drink my jizz.
hey, ron! can we say
'fuck' in the game?
i'd leave: this is just
more monsters and levels.
what a load.
suck it down, asshole!
you're a fucking wimp!
don't quit now! we're
still spending your money!
Page intentionally left blank.

The first seven messages are under a comment saying "FinalDOOM?", but this was added by Bernd Kreimeier when he was cleaning the source for release to the public. These messages were never intended for Final Doom - they were "development mode only" messages written by John Romero. "Ron" referred to Ron Chaimowitz, CEO of GT Interactive.

(Source: John Romero - 5 Years of Doom)

Unused Sounds

There is a single sound included in both Doom and Doom 2, called DSSKLDTH, which due to its position whithin both WAD files, seems to have originally been intended to serve as the Lost Soul's death sound. However, it's simply a duplicate of the DSOOF sound the player makes when bumping into a wall, due to Lost Souls simply reusing the fireball explosion sound (DSFIRXPL). The sound file's name, possibly coming from "Skull Death" was probably a leftover from the Doom Press Release Beta's version of the lost soul, whose death animation consisted in breaking apart and falling into pieces. This file is also present in the Final Doom IWADs.

Debug Mode

Entered by passing the parameter "-devparm" when starting the game, the Doom engine's debug mode is pretty bare-boned. You can take screenshots (in PCX format) by pressing F1 (which replaces its original function of bringing up the help screen), and a series of dots appears in the bottom left that roughly indicate the frame rate. One dot indicates the full 35FPS, while more dots indicate a frame rate of 35/(number of dots).

Store Demo Mode

Curiously, there's a check in the engine for a "Store Demo" mode - If MAP01 is not present in DOOM2.WAD, then all player input will be disabled, resulting in the game going through the pre-recorded demo loop until the computer is turned off or the program is forcefully terminated.

(Source: Doomworld)

Regional Differences


According to the German Strafgesetzbuch §86a, the usage of unconstitutional symbols (Nazi symbolism, basically) is forbidden outside of certain contexts such as research and teaching. Because the two secret maps, Wolfenstein and Grosse, use those symbols, the German version does not contain these maps, to prevent the game from being the subject of search-and-seizure procedures.

The game engine has a special catch to handle this: If the player takes the secret exit in level 15 and the MAP31 lump is absent, the engine will instead send the player to level 16 as if they had taken the normal exit. However, if players of the German version use cheats in attempt to warp to the missing levels, the game crashes.

(Source: Doom Wiki: Doom II - Legal Issues In Germany)


Doom II was translated into French by Art of Words and published by Virgin. This translation is derived from version 1.8, contains French text strings in the executable instead of English, and uses DOOM2F.WAD, which contains French translations of any graphical text, for its data. DOOM2F.WAD does not contain the unused legacy graphics from Doom. The images used for detail settings in the options menu overlap because that menu was never updated to account for the larger graphics. Likewise, some graphics that are centered in the English versions aren't in French. The setup program and command line tools have also been translated.

(Information and video: fraggle)