If you have any trouble with Doom Legacy, you might find a solution here.
If you find a solution to a problem that was not listed here, please tell us so that we can update the FAQ and help other people!
If you have a console, start DoomLegacy with the -h switch to see the help output.
Start with at least one switch to keep the Launcher from starting. It does not have to be a real switch, -nolaunch, or even -xx will do it.
If you do not have a console, you may want to start DoomLegacy without any switches, to get the built-in Launcher upon start. From the Launcher you can specify almost all switches. The switches -mb, -h are handled before the built-in Launcher runs, so would be ineffective.
I recommend using native video, and you must select your game.
> doomlegacy -native -game doom2
DoomLegacy 1.46 also recognizes the environment variable "UserProfile" as home, which appears on WinXP (and probably later versions of Windows too). This will make the parent of "My Documents" your home directory automatically.
The config settings are saved by DoomLegacy during program shutdown. If it is being killed some other way, the settings will not be saved.
If you are inconsisent about specifying your home directory, then DoomLegacy will create a new config file in each new location. If you find you have to setup your keyboard again, then you probably mistyped your -home directory name. Setup a profile or a batch file to start DoomLegacy instead.
OpenGL hardware rendering has its own separate config file. You will have to set all your settings again, sorry.
George will now have his own config settings. As long as you do not delete the file, George's settings will still be there next time he comes to visit.
Give your friend their own home directory, with its own config file
Make a directory named "george_home".
Start DoomLegacy with "-home george_home".
DoomLegacy will make a doomlegacy directory in the george_home directory, where it will put config.cfg and savegames. On Linux this is a hidden directory, so the george_home directory will appear empty, but it is not empty.
Starting DoomLegacy with the verbose switch (-v or -v2) will enable generating more messages, and will provide more detail about what DoomLegacy is doing. The -v2 switch dumps much more detail than you usually want to see, especially about video hardware.
Pre-release versions of DoomLegacy usually have debugging print statements (EMSG_debug) enabled full-time. Compiling with DEBUG_MESSAGES_ON enabled in doomdef.h, allows debug messages to be seen on the console and HUD at all times.
With a release version of DoomLegacy, use verbose (-v or -v2) to enable the same debug message displays. The message option control also can enable seeing debug messages during game play.
The development switch ( -devparm ) provides details meant for developing the game and game wads.
On Windows, the error messages go to a file "stderr.txt" that is left in the program directory.
The demos only record the player actions and movements. Every monster and object reaction is the result of applying random numbers as input.
To playback a demo, the engine must generate the exact same sequence of random numbers, and apply them to get the exact same situation that developed during the recording. The monsters must react and walk the exact same paths as when the demo was recorded. Almost every calculation of the DoomLegacy engine must come out identical to the recording Doom engine. The slightest difference in using a random number, or in calculating a monster, player, or projectile position, has cumulative effects in the playback. With the slightest position error, it rapidly gets to the point where the playback of player movements is completely irrelevant to the current situation.
Some attempts have been made fix this with compatibility enables in the code, to revert the engine to generate compatible output. The current demo compatibility code covers Doom demo and Boom demo formats. But still, the player will not stay in sync for more than a few seconds, and the aim is off when shooting. Some portion of the DoomLegacy code is generating slightly different player positions during playback.
DoomLegacy has its own variation on the demo format. Like Boom, it needs to record a whole bunch of optional settings, all which affect demo playback.
DoomLegacy 1.46, will playback demos recorded with DoomLegacy, and remain in sync. I will not make any guarantees on this for long demos, or every situation, as it has not been tested much.
However, if you're looking for the 100% authentic 1990s Doom experience, you could try Chocolate Doom.
The Boom SWITCHES lump is loaded for both Doom and Heretic game modes. The usage problem with Heretic was that in previous DoomLegacy the Heretic switch names were distinguished by having an episode number = 4, which required the SWITCHES lump to also have episode numbers = 4. Such a SWITCHES lump would not have worked with other ports.
This has been fixed in DoomLegacy 1.46, which has separate Doom and Heretic internal switch tables and does not use that scheme. For compatibility, a Heretic SWITCHES lump should have episode = 1, or even episode = 2, but DoomLegacy 1.46 will still accept episode numbers = 4.
First, check that the mouse/joystick is activated : go at the console and type either 'use_mouse' (or use the respective menuitem) or 'use_joystick'. If it is '0' or off then that mouse/joystick is disabled. Set the variable to 1. eg: 'use_mouse 1'.
Once the mouse or joystick is activated, you have to bind the buttons to controls in the setup controls menu.
Otherwise, the video mode you select is only temporary for this run of DoomLegacy. If you select some video mode that will not display properly and you have to abort, or even reboot, it does not become stuck to DoomLegacy. The next time DoomLegacy is started it will revert to the known good video mode saved in the config file.
Do not set a video mode to default until you know it is good. If you cannot see the video controls in the DoomLegacy menu, you will have to edit the config file by hand, or delete your config file to clear the bad video mode. The config file is re-written when DoomLegacy exits, so do not leave the config file open in your editor while running DoomLegacy.
The original Doom graphics were designed for a 320x200 VGA display with a 4:3 physical aspect ratio. Consequently the pixels on these displays had a 5:6 physical aspect ratio, unlike most modern displays which have square pixels. This makes rendering the graphics on modern displays somewhat complicated.
The menus and intermission screens are scaled at integer ratios to fit the screen. This will often leave bars at the edges. Because these are drawn using color palette graphics from the wad, attempts at finer interpolation required looking up blended colors in a palette which lead to a muddy look. Because of this the menus will be larger or smaller for some video display modes.
The game rendering is fully scaled to display the same view at all video display modes.
In software render mode, Doom Legacy will proportion the display to keep the original display appearance. It will display with filler bars if necessary to do this. The pixels will not be identical to those from the original Doom.
In OpenGL mode using fullscreen, the introduction and intermission pictures are stretched to fill the screen. This does not keep the original aspect ratio. The game rendering is adjusted to approximate the 320x200 screen size, and the field of view of the original software renderer, assuming the display is 4:3. There is a FOV control, but it zooms and does not change the aspect ratio.
When you have a 16:9 display, Doom Legacy displays expecting a 4:3 aspect, and the monitor will stretch it to the 16:9 shape. This will alter the appearance of rooms and sprites. Some monitors can be set to display a 4:3 aspect with black borders. The best alternative is to turn off fullscreen, and choose a window size that fills most of the screen.
There are limits to the monitor width because every texture segment saves display state in a structure of that maximum line width. To expand the line width limit for a few, we would have to do it for every user regardless of their hardware.
Eventually, this will have to be changed to allow using larger monitors in fullscreen. That will require a rewrite of most of the texture segment code to some other, slower, texture segment state storage scheme.
Is that cheating for one player to have such a wide view? It is more fair in deathmatch for all players to have the same field of view. There will have to be network controls to allow using wide field of view.
This will also have to be changed soon, as wide screen monitors are becoming more commonplace. However, I do not have one. All my monitors are still standard proportion.
The last I heard, there was still a DoomLegacy server up, but it was running an older DoomLegacy.
The Game server locations respond to requests. The interested parties should submit a request to the Game Server to host a DoomLegacy 1.46 Server.
A static IP address only has to be setup once in the DoomLegacy Server menu of each player.
If it is a dynamic IP address, then each player must setup the server IP address every time the server connects to the Internet, because that IP address will likely be different each time.
Your success at this may depend upon filtering done by your IP service providers. It will not work if they are blocking packets using the DoomLegacy port address (port 5029).
Your firewall also has to let through the DoomLegacy port address (port 5029).
Pick an IP address for your server, such as 192.168.3.1. All your player computers then need to have IP addresses on the subnet 192.168.3.xx, where xx is 2..254.
Modern internet communications should allow you to add this IP address to your recognized addresses for a particular hardware device. It should not have to replace any existing internet address.
Your firewall has to let through the DoomLegacy port address (port 5029).
The user reserved ports start at 5000. I recommend only going up from 5029, such as 5100 .. 5199, to avoid other programs.
All your players must specify the same port number on their command line, and fix their firewalls to allow through packets that use that port.
The previous versions of DoomLegacy should be eliminated from network usage for security reasons. With so many important bug fixes, there is no reason to be using older DoomLegacy for network play.
Bots appear to be a new feature that was being worked on by other team members. Being that they can only be activated by a obscure console command, they may not be totally finished. The bots might not be integrated with all DoomLegacy features either, such as network play, splitplayer, and saving games.
Making the bots compatible with network play will have to wait until a time when the whole bot system will get re-worked, integrated, and finished.