Last Updated - 22/8/99

By Mandeep 'Pharaoh' Gill

with the support of Thierry Van Elsuwé aka 'Hurdler'


Introduction
Download and Installation
GL Doom Legacy FAQ
Specific 3D Card FAQs
Known Bugs
Benchmarks


Introduction

    In 1994 iD software released shareware Doom, and I won't talk about the commercial history of Doom as everyone already knows it, and if you don't, go to Doomworld and read up.
    Having made their millions from its success, iD software went and released the full source code for Doom, or rather a tweaked up version of the Linux source code. Chi Hoang was the first to make a move on this, releasing DosDoom, which was originally just a cross compiled version of the Linux source code. However, this was enough to get the Legacy team, Denis Fabrice & Boris Pereira, started on their own DOS source port, called Doom Legacy.
    After several releases and an eventual port to the Win32 environment, Fab produced a Glide renderer; Glide is 3dfx's propietry API for their Voodoo based 3D cards. Why a 3dfx only renderer instead of a Direct3D or OpenGL renderer is mainly because of the incredibly good documentation which 3dfx have for Glide programming. The Legacy Team recently asked Thierry Van Elsuwé to make an OpenGL renderer for Doom Legacy. Surprisingly enough, a fair bit of the Glide code is common to the OpenGL renderer, e.g. algorithms to convert the 2D BSP tree into a 3D polygonal level.
    The GL Doom Legacy renderer had now gone through a lot of public alpha releases, and although a lot of the bugs and problems have now been sorted, a few remain, and people still have problems running it on their 3D card, which is the point of this FAQ.


Download and Installation

    Download
    Setting up GL Doom Legacy is a lot easier now, everything you need to play GL Doom Legacy is contained in 1 package, which you can download from official Doom Legacy page, here.

    Installation
    Having downloaded ~700kb zip file, extract it into a new GL Doom Legacy directory, e.g. C:\games\gllegacy\. Once this is done, you will need to obtain a Doom.wad or Doom2.wad file, these contains all of the levels, enemies, weapons, etc (like the '.pak' file used by Quake based games). If you have neither of these, you can download the shareware version of Doom 1 and use the Doom1.wad file included with that from here.
    You should probably delete the files 'autoexec.cfg' and 'launcher.cfg' as they can cause a lot of unwanted problems if you have a non-standard setup, e.g weird keys, or different directory structure.
    The last file needed is the 'opengl32.dll' driver for your specific 3D card, those that know what they are doing can set that up themselves, but it will be explained later.
    Before playing, you will need to set up the 'Doom Legacy Launcher' by Fab, included with the zip file. This nifty little program makes configuring input/output settings, managing Doom games and initializing multiplayer games a breeze, and should always be used to start a game of GL Doom Legacy.
    To set up the Doom Legacy Launcher, you will have to create a shortcut to the program 'launcher.exe' somewhere where you can quickly access it (or just run the program directly), and a small message saying that this is the first time you have used the launcher will be presented. Click the 'OK' button, and the 'Game Setup' menu will be presented; here you must choose 'gllegacy.exe' as the Doom executable, and select whatever Game Wads you have, e.g. Doom, Doom2, Final Doom.

    Everything has now been installed and setup correctly in order to run GL Doom Legacy, but if it doesn't work read the rest of the FAQ below.


GL Doom Legacy FAQ

    If you have any errors or problems, the first step is to delete all of the config, .cfg, files in the GL Legacy directory, as these are usually the source of the errors.
    Then make sure that you have:
 
The latest version of GL Doom Legacy, currently 1.29 beta-4
An OpenGL ICD or Mini-GL driver in your GL Legacy or windows/system directory
The latest drivers for your 3D accelerator

    The following FAQ is split into 2 section, the Critical Errors FAQ, for problems preventing the game from loading, and the Game FAQ, for problems within the game itself.
 

Critical Errors FAQ
Q The game starts up in Software mode
A The r_opengl.dll has not been loaded, so the program loads up in software mode.
You need a copy of 'glu32.dll' in your /windows/system/ directory, you should have it already, but if you don't, you can get it from Microsoft.
Make sure you have an opengl32.dll driver for your 3D card either within your /windows/system directory or in the GL Legacy directory itself.
Lastly, you must use the Doom Legacy Launcher and choose 'OpenGL' as the render mode in the setup menu.
Q What is the difference between an ICD and a Mini-GL, and what should I use for GL Doom Legacy?
A An ICD, Independant Client Driver, is a full OpenGL renderer for your 3D Card/CPU which accelerates and draws all of the functions defined by the OpenGL 1.1 standard. As a result, you only need one OpenGL ICD to run all OpenGL based programs as all of their functions will be accelerated by this one OpenGL driver.
On the other hand, a Mini-GL is a cut down version of an ICD which only has supports the OpenGL functions required by a specific game. For example, Quake 2 will not use every OpenGL function, therefore 3dfx released a Mini-GL for Quake 2 which only accelerates the OpenGL functions which Quake 2 needs, rather than an ICD which would accelerate all OpenGL functions whether they were required by a specific program or not.
Which is better depends on the system, a Mini-GL will always perform faster than an ICD in the same program, such as GL Doom Legacy, but it is far simpler from a user point of view to just install one ICD which can be used by all programs correctly instead of several Mini-GLs for each individual program.
Q The game loads up in OpenGL mode but is incredibly slow, what's wrong?
A There is more than likely no hardware accelerated opengl32.dll file present in either your GL Doom Legacy directory or your Windows/system direcory, this is needed to set up 3D hardware acceleration. If no hardware accelerated opengl32.dll driver is present, GL Doom Legacy will load up the Microsoft software GL renderer present in the /windows/system directory. This driver renders using your CPU and as a result the performance is very poor and not recommended, unless you like playing your games at 2 fps.
Q The game crashes on startup with, "could not load library 'r_opengl.dll'", and then loads in software mode
A The OpenGL driver which you have placed in your GL Doom Legacy directory does not contain enough hardware accelerated functions for the program to successfully initialize the OpenGL renderer. This usually occurs with some cards Mini-GL drivers, e.g. S3 Savage3D, just use the ICD instead.
Q The game crashes on startup with, "could not set video mode 'xxx X yyy'"
A This error is caused by the game trying to startup in a video mode that your 3d card cannot set, go into the legacy.cfg or config.cfg file and change the scr_height and scr_width lines to the required resolution.
Q The game crashes on startup with the error "A wad file could not be found"
A There is either no Doom3.wad or no main Doom1/2.wad in the GL Doom Legacy directory, go to the installation section of the FAQ to see where to obtain them from.
Q The 3dfx version crshes on startup
A Don't try to run the 3dfx version, it is old and very buggy. The OpenGL version is far modern, stable, and more advanced, use it instead.

Game FAQ
Q Where have the coloured lights or coronas gone?
A Firstly, make sure you are running the latest version of GL Doom Legacy; you must also be playing Doom2 levels, the lighting effects have not added to Doom1 yet.
To get the dynamic lights on weapon projectiles, you must set the console command 'gr_dynamiclighting' to 1.
Q What is this 'FOV' command, and how do I use it?
A The command 'gr_fov' refers to the field of view of sight. Its default is 90 degrees, but it can be changed to anything between 1 and 179, with 1 'squashing' the view, and 179 'stretching' the view. It can provide some very wierd effects at certain values, e.g gr_fov 120 gives an slightly elongated view.
However, it is best used as a zoom mechanism, for example, just add the folowwing lines to your autoexec.cfg file:

alias zoom_in "gr_fov 80; wait; gr_fov 70; wait; gr_fov 60; wait; gr_fov 50; wait; gr_fov 40; wait; gr_fov 30; wait; gr_fov 20; wait; gr_fov 10"
alias zoom_out "gr_fov 20; wait; gr_fov 30; wait; gr_fov 40; wait; gr_fov 50; wait; gr_fov 60; wait; gr_fov 70; wait; gr_fov 80; wait; gr_fov 90"

Then bind 2 keys to 'zoom_in' and 'zoom_out', and enjoy taking those sniper shots at imps :).

Q Why does everyone look 'flat' when looking up or down at almost 90 degrees?
A The Doom engine was made to operate on 386s/486s, and as a result sprites, rather than polygons were used for enemies and objects. However, as Doom originally did not allow looking up or down, sprites for viewing enemies or objects from 90 degrees above or below were not needed.
Because of this, the enemies appear 'flat' from these angles, as no sprites exist that can be drawn instead.
Q What's up with the disappearing walls?
A The 'mlook' code has not been optimized yet, so some walls disappear when they're not supposed to. You can use the console command 'gr_crappymlook' to change the amount of walls that disapper. 
Valid values are, '0' - (default, fastest) lots of walls disappear, '1' - few walls disappear, '2' (slowest) no walls disapper. Using the value '1' is recommended as a speed/quality tradeoff.
Q Why are there white line/cracks between polygons?
A This is a result of the conversion from the 2D BSP tree used to render Doom normally into the true 3D level. It has not been completely finished yet, hence the program's beta state, it will be sorted in future releases.
Q Why do the demos get out of sync?
A This is usually caused by having an old version of the Doom wad files, free upgrades/patches can be downloaded from Doomworld.
Also, make sure that the console command 'gravity' is set to 1.


Specific 3D card FAQs

    This is the part of the FAQ which, although maintained my myself, is based on submissions and mini-FAQs by yourself. I aim to have FAQs for all of the popular 3D cards here, but obviously I don't own them all. If you wish to contribute a FAQ for a 3D card, please mail it to me, Pharaoh. Here's what we have got so far:
 
Board Manufacturer
Card
FAQ Submitted by
ATi Rage Pro Gregory Dick
3dfx
Voodoo Graphics
Voodoo 2
Voodoo 3
Pharaoh
Thierry Van Elsuwé
Kibble / Pharaoh / Spoonman / Mark Giles
Nvidia
Riva 128/Riva 128ZX
Riva TNT
Riva TNT 2
Kesler
Mancubus II
DrJones / Mike Ravkin
Matrox
G200
Gregory Shrago
Rendition Verite 2200 ¥ the Mighty Cactus
S3
Savage3D
Pharaoh / Alex Shall

    The individual FAQs will open up in a new window so that unwanted FAQs will not be shown. We need FAQs for other cards, especially Matrox G400, and S3 Savage4. If you have any of these working with GL Doom Legacy please sent me a quick mini-FAQ.


Known Bugs

    If you have read through the FAQs and still have a problem, or think you have found a bug, please read through this list of know bugs before sending anything to either myself or Thierry.

Benchmarks

    These benchmarks are not supposed to prove what card is better than what, they are just here to give an indication to the performance that you should expect under GL Doom Legacy for each 3D card. All of the benchmarks were done by the console command 'timedemo demo1' under Doom2. If several types of driver are available, e.g. ICD, MiniGL and Mesa, the one providing the fastest performance is shown. Any tweaks which will boost the performance will be used, check the individual FAQs for the listings of tweaks available. If a 3D card can not do a certain Video Mode, N/A is written.
 
3D Card System OpenGL Driver 640x480 800x600 1024x678
Voodoo 1 K6/2 350, 64mb Ram Mini-GL 1.46 44 fps N/A N/A
Voodoo 2 Pentium 150, 48mb Ram Mini-GL 1.47 58 fps 50 fps N/A
Voodoo 3 3000 PII 266, 160mb Ram, Win NT4
Mini-GL 1.48
143 fps
99 fps
64 fps
Riva 128ZX Cyrix MII 300, 64mb Ram OpenGL ICD 39 fps N/A N/A
Riva TNT Celeron 450, 128mb Ram OpenGL ICD 111 fps 80 fps 55 fps
Riva TNT2 K6/2 333, 64mb Ram OpenGL ICD 52 fps 53 fps 48 fps
Savage 3D Celeron 450, 128mb Ram OpenGL ICD 67 fps 40 fps 26 fps


And that's it...

    I hope that this FAQ has answered all of your questions regarding GL Doom Legacy and that it had enabled you to play the game to its fullest. If you have any further questions, or answers for that matter, send them my way, Mandeep 'Pharaoh' Gill, and I will put them into the FAQ.

Credits

    Thierry Van Elsuwé - For coding GL Doom Legacy, and for allowing me to write this FAQ.
    Fab and Boris - For writing the incredible Doom Legacy in the first place and making it the best source port out there.
    All of those who have submitted card FAQs and Benchmarks.
    Finally iD software - For making Doom in the first place, and then being cool enough to release the sources so that others may learn from and improve upon Doom.
 
 

Mandeep 'Pharaoh' Gill