Strict Standards: Declaration of action_plugin_importoldindex::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /freeola/users/0/0/sr0193000/htdocs/dokuwiki/lib/plugins/importoldindex/action.php on line 8

Strict Standards: Declaration of action_plugin_include::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /freeola/users/0/0/sr0193000/htdocs/dokuwiki/lib/plugins/include/action.php on line 140

Strict Standards: Declaration of action_plugin_discussion::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /freeola/users/0/0/sr0193000/htdocs/dokuwiki/lib/plugins/discussion/action.php on line 955

Strict Standards: Declaration of action_plugin_blog::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /freeola/users/0/0/sr0193000/htdocs/dokuwiki/lib/plugins/blog/action.php on line 154

Strict Standards: Declaration of action_plugin_importoldchangelog::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /freeola/users/0/0/sr0193000/htdocs/dokuwiki/lib/plugins/importoldchangelog/action.php on line 157

Deprecated: Assigning the return value of new by reference is deprecated in /freeola/users/0/0/sr0193000/htdocs/dokuwiki/inc/parserutils.php on line 205

Deprecated: Assigning the return value of new by reference is deprecated in /freeola/users/0/0/sr0193000/htdocs/dokuwiki/inc/parserutils.php on line 208

Deprecated: Assigning the return value of new by reference is deprecated in /freeola/users/0/0/sr0193000/htdocs/dokuwiki/inc/parserutils.php on line 389

Deprecated: Assigning the return value of new by reference is deprecated in /freeola/users/0/0/sr0193000/htdocs/dokuwiki/inc/parserutils.php on line 530

Strict Standards: Declaration of cache_instructions::retrieveCache() should be compatible with cache::retrieveCache($clean = true) in /freeola/users/0/0/sr0193000/htdocs/dokuwiki/inc/cache.php on line 291

Deprecated: Function split() is deprecated in /freeola/users/0/0/sr0193000/htdocs/dokuwiki/inc/auth.php on line 154

Strict Standards: Only variables should be passed by reference in /freeola/users/0/0/sr0193000/htdocs/dokuwiki/doku.php on line 71
nex docs:making_doom_last_longer

How To Make Doom Last Longer

Doom was a defining moment in the computer games industry. It set the standard for first person shooters for years to come. Developed by 'id software' and released in 1993, it combined an immersive 3D environment with graphic violence to produce a highly controversial and extremely popular game. Doom was also one of the first 3D engines to support modularity in its design. Amateur users could create their own textures and maps to use in the game without needing to change any of the actual game code. This set the stage for the Quake engine, which many of today's most current releases are still based on (at the time of writing this includes games such as Half-Life 2, Jedi Knights 3, Quake IV and of course, Doom 3). The Quake engine in fact shares a lot of code from the Doom engine so it really has made its mark. Quake is still considered to be the most modular of all 3D engines (which is why it spawned so many 'conversions'. In fact, Half-Life was originally just a conversion of the original game but eventually they started recoding large sections of the engine themselves and licensed some of the Quake 2 engine's source code, incorporating it into their modified version of the original Quake engine).

The level design and game play in Doom was also very impressive. For a game with very little story, you felt immersed in the game very quickly and would often find your heart pounding and sweat dripping from your eyebrows. Doom's realism was very new in a time where Mario-style game play was king. In Doom, you had just one life. In Doom, you felt that you HAD to survive.

Doom Box ArtUnfortunately, on superficial inspection, Doom has not really stood up to the test of time. When Doom came out, personal computers where still fairly limited. The notion of separate 'video cards' just to handle graphics wasn't even on people's minds. In truth, the fact that any kind of realistic 3D was achieved in Doom is amazing. But games have come on an awful lot in the last 14 years. Each new game making the last one look a little unrefined, with Doom at the root of the tree. In fact, the 'sequel' Doom 3 is actually a remake of the original Doom, though it is hard to discern the similarities at times. But so strong was the Doom 3 developer team's conviction to remake their original Doom (since it was primarily the same people who worked on both games) that they all told the owners of id software that they would either have to let them remake the game, or fire them. One employee was reportedly fired for this, but the owners did back down and allow the 'sequel' to be made. This shows just how important the developers felt their game was.

But despite Doom 3 really being a remake rather than a sequel, it still doesn't capture the sense of the original (though it is a very good game in its own right). It seems a shame that Doom might be cast into the realms of “good for the time” when it was so ahead of its time. Luckily, this can, in part, be remedied. And that is the point of this little tutorial.

What exactly is wrong with Doom?

Original Doom ScreenshotWell… to the purest, nothing I suppose. But for many of today's gamers, first sight of Doom may cause them to laugh at how dated it looks… and sounds. But in truth, there is not much else wrong with it. And most of the graphical drawbacks were actually self-imposed by John Carmack (the designer of the Doom engine) at id software in order to make it run faster on the machines of the day. There are also a few compatibility issues with today's systems. Doom takes no advantage of modern hardware capabilities and in fact doesn't work with certain modern devices and certain popular operating systems.

The music in Doom was programmed MIDI, which just doesn't cut it in today's world. However, the actual composition itself was very fitting and really very well done. The atmospheric sounds were actually superb in Doom and there really isn't anything wrong with them at all. All one might ask is that they take advantage of the surround sound systems of many of today's computer systems.

What can we improve?

Updated Doom ScreenshotHere comes the really interesting thing. John Carmack and id software actually released the source code to the Doom engine a number of years ago as open source. This has spawned a number of groups wishing to bring the Doom engine up to date. However, the actual maps and content to the game itself are not free and must be purchased.

There are quite a few open source engines based on the Doom engine source code and we will be using one of them to update the game with better graphics. We will also be importing new 3D models into the game to replace the 2D sprites that were used in the original. And lastly, we will put detailed textures in to replace the existing low resolution ones.

The new engine will also produce surround sound for hardware that supports it, but the music is still a problem. However, there is a fairly large website dedicated to reproducing sound tracks from old computer games. The largest project they have yet attempted is, interestingly enough, the Doom soundtrack. And it's really very good. So we can substitute that into the game as well.

And that about rounds up what we're going to do. That should leave us with a fairly modern looking game, but with everything that made Doom great. And best of all, all the improvements are free: We just need to purchase the original game.

What do we need?

A (preferably quite fast) internet connection, and a copy of Doom. Apart from Doom itself, everything else can be downloaded from the internet. I will also assume that you are using the Windows XP operating system. Partly because statistically you probably are, and partly because if you are using something like GNU/Linux, you can probably figure out what you need to do from my Windows instructions. If you're using an Apple computer, you're on your own because I know nothing of your world.

Getting the stuff we need

First things first: Get Doom. If you have any of the original Doom games kicking about (Doom or Doom II), then they are fine. If not, you can get all the original games in one go (“Ultimate Doom”, “Doom II” and “Final Doom”) by purchasing “Doom: Collector's Edition”. Sadly, it's becoming a little hard to get hold of that now though. In fact getting hold of any boxed version of Doom is pretty tricky these days. Your best bet might be to buy it using steam. They sell a pack with all the Doom games that have been released. It's a pretty good deal, but an even better one is the id Super Pack which includes nearly all the id software games, including Heretic, Hexen and Quake which I show you how to update in this and other tutorials on this site. I'm not sure if the packs will be around forever, but you will certainly be able to buy them individually from steam for quite a while. If you just want to see a shinier Doom and are not bothered about playing the full game, you might be better off just getting the shareware version of Doom for free. If you want to do that, you can get it from Either way, I will assume from this point on that you have either the shareware or full version of Doom from the places I have suggested.

The next thing to do is install Doom if you have not done so already. The steam package is the same as any other steam game so I won't go into it (see their instructions for help). The shareware edition comes in a zip file. So just make a new folder on your C:\ drive called “Doom95sw” and extract all the files in the zip in there. Once Doom is installed, we need to get the new engine we will be running it on.

The engine we will be using is called 'Doomsday' and you can download it from Make sure you get the correct version. Assuming you are using Windows, this is the one marked 'windows'. Make sure you get the latest release as well. I also recommend you get the Windows version that comes with an installer.

Installing the Doomsday Engine

When you run the installer for Doomsday, it will ask you where you want to install. “C:\Program Files\Doomsday” will be fine for most people. The installer will then ask you for the WAD files for the games you want to use the Doomsday engine for. If you purchased one of the steam packs as mentioned above, they will be in various directories in “C:\Program Files\Steam\steamapps\common”. You should be finding the WAD for “Ultimate Doom” and browse to the “ultimate doom\base” directory to find the “DOOM.WAD” file. Since we're doing that, you may as well install the other ones as well. Doom 2's WAD can be found in “doom 2\base” and is called “DOOM2.WAD”. The Final Doom - TNT and Final Doom - Plutonia WADs can be found at “final doom\base\TNT.WAD” and “final doom\base\PLUTONIA.WAD”.

If you installed the shareware edition and followed my instructions with it, it should be in “C:\Doom95sw”. In this instance you are looking for the “doom1.wad” file.

You will also notice that there are spaces for the original (non-ultimate edition) Doom as well as the Heretic and Hexen games. This is because every game on this list is based on the same Doom engine, and thus the Doomsday engine has been set up to work with any of them as long as we supply it with the correct WAD file. But I'll leave that up to you to explore, we're really only going to be concentrating on Doom in this tutorial. If you purchased the id Super Pack, you will be able to get the Heretic and Hexen games. Heretic is at “heretic shadow of the serpent riders\base\HERETIC.WAD” and Hexen is at “hexen\base\HEXEN.WAD” within the steam folder mentioned earlier.

If you want to get a hold of the WAD files for the shareware versions of Heretic and Hexen, you can get them straight from id software: here for Heretic and here for Hexen for Hexen. But they are bundled as part of their original shareware distributions from there, and it is a tad tricky getting the WAD files out of Heretic if you're running XP. Basically you need to extract Heretic's zip file somewhere and open up a command prompt. Navigate the command prompt to get to the directory you extracted Heretic to. Then use the command: “copy HTIC_V12.1/B+HTIC_V12.2/B HTIC_V12.rar/B”. After that you should be able to open up the file “HTIC_V12.rar” using winRAR. You'll find a file called “Heretic1.wad” in the RAR file and that's the one you need to use when installing Doomsday. So just extract it somewhere before you install and make sure you rename it from “Heretic1.wad” to just “Heretic.wad”. Otherwise Doomsday won't know what it is. Hexen is easier: You just extract the zip file and the “Hexen.wad” file should be accessible from there.

It might take the installer a little bit of time to process all the WAD files we've given it, so have patience. If you're asked about addons, just ignore that for now and continue the installation.

That's all you need to get things going so try running Doom now. You will soon find yourself in a surprisingly similar version of Doom to the original. In fact, we've only really achieved one thing so far: It works under Windows XP. It is actually higher quality than the original Doom was, but I bet you can hardly tell as it's still a lot lower quality than most games these days. So how about we make things a little more current?

Making Doomsday better

You may be thinking that not a lot has changed, and you would be right. Actually, there have been some fairly major improvements made but they aren't all that obvious. The maps have been changed from line scanning to polygon. This means that modern graphics cards can now be used to speed things up. It also allows for dynamic and coloured lighting which has been added. Also, the liquid effects are now a little more realistic. There are still another three obvious graphical improvements that we can make: Improve the quality of the in-game textures, add atmospheric effects and replace the the 2D sprites with 3D models. All are easily done.

First off, we'll put the new models in. We need the JDoom resource pack which you can download here. You need to extract all the files in the zip to the “C:\Program Files\Doomsday\snowberry\addons” folder. The next time you load Doomsday, go to the Ultimate Doom section and select 'Add-Ons'. You should now be able to select jDoom Resource Pack. Doing this will give you the new models. Remember that you have to tick it to do this. These can also be applied to Doom 2 and the Final Doom packs.

Now we need to put the detailed textures in. You can get the detailed textures from here. Copy the file to the “C:\Program Files\Doomsday\snowberry\addons” folder. Again, the next time you load Doomsday, go to the Ultimate Doom section and select 'Add-Ons'. You should now be able to select something beginning with jdtp. Doing this will give you the new textures. These can also be applied to Doom 2 and the Final Doom packs.

Improving the environment involves three packs. You can get the JDoom environment pack, the Final Doom environment pack and the JDoom rain pack from here. Copy all the files to the “C:\Program Files\Doomsday\snowberry\addons” folder. The next time you load Doomsday, go to the Ultimate Doom section and select 'Add-Ons'. You should now be able to select two things beginning with jdep and one beginning with doom_rain. Doing this will give you the new environments and a bit of rain in parts of doom. These can also be applied to Doom 2 and the Final Doom packs.

As a quick last improvement, we can also make the interface graphics a little better. grab the jDoom User Interface pack from here. Again, copy the file to the “C:\Program Files\Doomsday\snowberry\addons” folder. The next time you load Doomsday, go to the Ultimate Doom section and select 'Add-Ons'. You should now be able to select something beginning with jdui. Doing this will give you the new interface graphics. These can also be applied to Doom 2 and the Final Doom packs.

You might also want to boost the screen resolution and colour depth as well and run it full screen. To do this, you go to the 'Settings' tab for each game.

The game should be looking pretty good now. Still retro to be sure. But if it wasn't, it just wouldn't be true to the original. But that about raps it up for the graphics. Now we just have to give it some kick-ass music.

If you are also following along with the Heretic and Hexen stuff for the Doomsday engine, you can get the Heretic resource pack here. The Hexen resource pack is here. Heretic doesn't really need a texture pack as these come in the resource pack. However, you can get one for Hexen from fileplanet. You will have to register with them, but there is an option where you can register for free. Install these in the same way I have been describing for the Doom packages. I'm sure you can figure it out by now. There is also a rain file for Hexen which you can get here.

Adding Kick-Ass Music

We have managed to get a pretty good looking version of Doom going. But the MIDI music of the original would be terrible now. We could download one of the packages of MP3 files of the Doom MIDI files put through a really good sound card, but at the end of the day, MIDI is a bit past it most of the time now.

So, what to do. Well, I'll tell you. I found a rather interesting site on the internet called OverClocked Remix. You can have a look at it at Anyway, it is a site set up for amateurs to upload their own remixed versions of old computer game theme tunes. Bit weird, but cool. They've had one or two site wide projects to do an album's worth of remixes for a particular computer game. And, as I'm sure you've guessed, one of them was a double album of all the Doom music. And, as I was quite surprised to discover, it KICKS ASS!!

So, why don't we just plug that right into Doom? I can't think of a single reason not to. So let's go ahead and do it.

First things first, let's go and get the music. You can download all the tracks separately, but the server can be a bit dodgy, and takes ages to go through them all. So I suggest you use the BitTorrent instead. You'll need a BitTorrent client for that of course. Azureus seems pretty popular, so you may as well get that one. You can get it from here but I'm not going to go into how you get it working. There's lot of help on the internet about BitTorrents, and teaching you that stuff isn't really what this essay is about. So, assuming you can deal wit BitTorrents, the one you're looking for is:

We'll need to convert the music files to something that Doomsday can better understand. So go and get the conversion software we'll be using called oggdropXPd. After running the program, just copy all the FLAC files you downloaded onto the program window. This will make a bunch of ogg files. Make sure you do this for both the FLAC folders (Disk One and Disk Two). Once you've got the files, make a folder called 'music' in the “C:\Program Files\Doomsday\data\jdoom” folder. Now get all the ogg files and copy them into the new folder.

Now there is a slightly technical bit. We need to make a reference file so that jDoom knows what music to play. So, in the “C:\Program Files\Doomsday\defs\jdoom” folder, make a folder called “auto” if it isn't there already. In the 'auto' folder, make a new text file called 'music.txt'. Open it up and enter the text below:

# jDoom: Doom 1 Music Pack

Header { Version = 6; }

#####====--- MUSIC ---====#####

Music { ID = "None"; }
Music { ID = "e1m1"; Lump = "D_E1M1"; Ext = "data\jdoom\music\DSoP_01_Hangarmageddon(E1M1).ogg"; }
Music { ID = "e1m2"; Lump = "D_E1M2"; Ext = "data\jdoom\music\DSoP_03_IndustrialStrength(E1M2).ogg"; }
Music { ID = "e1m3"; Lump = "D_E1M3"; Ext = "data\jdoom\music\DSoP_08_TheChemicalImps(E1M3).ogg"; }
Music { ID = "e1m4"; Lump = "D_E1M4"; Ext = "data\jdoom\music\DSoP_02_TheRedMoon(E1M4).ogg"; }
Music { ID = "e1m5"; Lump = "D_E1M5"; Ext = "data\jdoom\music\DSoP_20_TheDarkSideOfPhobos(E1M5).ogg"; }
Music { ID = "e1m6"; Lump = "D_E1M6"; Ext = "data\jdoom\music\DSoP_06_Reprocessed(E1M6).ogg"; }
Music { ID = "e1m7"; Lump = "D_E1M7"; Ext = "data\jdoom\music\DSoP_14_InfectedLab(E1M7).ogg"; }
Music { ID = "e1m8"; Lump = "D_E1M8"; Ext = "data\jdoom\music\DSoP_16_TheGlassMoon(E1M8).ogg"; }
Music { ID = "e1m9"; Lump = "D_E1M9"; Ext = "data\jdoom\music\DSoP_15_SecretsAndLies(E1M9).ogg"; }
Music { ID = "e2m1"; Lump = "D_E2M1"; Ext = "data\jdoom\music\DSoP_13_Infiltrator(E2M1).ogg"; }
Music { ID = "e2m2"; Lump = "D_E2M2"; Ext = "data\jdoom\music\DSoP_10_ThisCantBeGood(E2M2).ogg"; }
Music { ID = "e2m3"; Lump = "D_E2M3"; Ext = "data\jdoom\music\DSoP_12_Intermission.ogg"; }
Music { ID = "e2m4"; Lump = "D_E2M4"; Ext = "data\jdoom\music\DSoP_07_GhostsOfMars(E2M4).ogg"; }
Music { ID = "e2m5"; Lump = "D_E2M5"; Ext = "data\jdoom\music\DSoP_14_InfectedLab(E1M7).ogg"; }
Music { ID = "e2m6"; Lump = "D_E2M6"; Ext = "data\jdoom\music\DSoP_18_AriaOfTheDamned(E2M6).ogg"; }
Music { ID = "e2m7"; Lump = "D_E2M7"; Ext = "data\jdoom\music\DSoP_11_JadeSpawn(E2M7).ogg"; }
Music { ID = "e2m8"; Lump = "D_E2M8"; Ext = "data\jdoom\music\DSoP_05_TheLeaningTowerOfBabel(E2M8).ogg"; }
Music { ID = "e2m9"; Lump = "D_E2M9"; Ext = "data\jdoom\music\DSoP_04_MysteryMeat(E2M9).ogg"; }
Music { ID = "e3m1"; Lump = "D_E3M1"; Ext = "data\jdoom\music\DSoP_04_MysteryMeat(E2M9).ogg"; }
Music { ID = "e3m2"; Lump = "D_E3M2"; Ext = "data\jdoom\music\DSoP_17_OceanPollen(E3M2).ogg"; }
Music { ID = "e3m3"; Lump = "D_E3M3"; Ext = "data\jdoom\music\DSoP_09_DemonConGusto(E3M3).ogg"; }
Music { ID = "e3m4"; Lump = "D_E3M4"; Ext = "data\jdoom\music\DSoP_16_TheGlassMoon(E1M8).ogg"; }
Music { ID = "e3m5"; Lump = "D_E3M5"; Ext = "data\jdoom\music\DSoP_14_InfectedLab(E1M7).ogg"; }
Music { ID = "e3m6"; Lump = "D_E3M6"; Ext = "data\jdoom\music\DSoP_06_Reprocessed(E1M6).ogg"; }
Music { ID = "e3m7"; Lump = "D_E3M7"; Ext = "data\jdoom\music\DSoP_11_JadeSpawn(E2M7).ogg"; }
Music { ID = "e3m8"; Lump = "D_E3M8"; Ext = "data\jdoom\music\DSoP_19_IronCathedral(E3M8).ogg"; }
Music { ID = "e3m9"; Lump = "D_E3M9"; Ext = "data\jdoom\music\DSoP_15_SecretsAndLies(E1M9).ogg"; }
Music { ID = "inter"; Lump = "D_INTER"; Ext = "data\jdoom\music\DSoP_12_Intermission.ogg"; }
Music { ID = "intro"; Lump = "D_INTRO"; Ext = "data\jdoom\music\DSoP_00_WelcomeToHell(Intro).ogg"; }
Music { ID = "bunny"; Lump = "D_BUNNY"; Ext = "data\jdoom\music\DSoP_22_ElectroCuteBunny(TheEnd).ogg"; }
Music { ID = "victor"; Lump = "D_VICTOR"; Ext = "data\jdoom\music\DSoP_21_DarknessDawning(TextMusic).ogg"; }

Save the file, then close it. You now need to rename the file as 'Music.ded' (you might need to change windows to show file endings for known file types. You can do this by going to “My Computer” then going to Tools → Folder Options and then the View tab. Then untick “Hide extensions for known file types”). Once that's done, you're all set. When you next load up Doom, you will hear a new kick ass soundtrack.

If you're looking for similar options for Heretic and Hexen, you can get music from I'll let you figure out how to do that (not too different from above).


So there we have it. I hope this has been helpful to you and that anyone who has never played any of these classic id games will be able to get a flavour for them. If you have any questions, comments or corrections to this tutorial, just drop me a line or add a comment. Doom really was and is a great game. And no matter how good any new version of the engine is, it still won't live up to my first memory when I was in that first corridor hearing monster screams and crapping myself. Ah… if only all games were so good.

Strict Standards: Only variables should be passed by reference in /freeola/users/0/0/sr0193000/htdocs/dokuwiki/doku.php on line 79