Upload an image

169.44 KB
WAD Type
ZDOOM v1.16
December 1998 (sixth release)

A port of id Software's original Linux Doom source code to Win32
with additional enhancements by Randy Heit (rheit@usa.net).

ZDoom's homepage is at: http://zdoom.notgod.com/


  1. Introduction
1-1. What's new in 1.16?
1-2. What happened to 1.15?
1-3. Installing ZDoom

  2. Command line arguments
2-1. Configuration options
2-2. Play options
2-3. Loading options
2-4. Debug options
2-5. Multiplayer options
2-6. Other options

  3. Configuring ZDoom
3-1. The Player Setup menu
3-2. The new Options menu
3-3. The Configure Controls menu
3-4. The Gameplay Options menu
3-5. The Display Options menu
3-6. The Video Modes menu
3-7. Changing settings not found in a menu

  4. The Console
4-1. Activating the console
4-2. Using the console

  5. Key bindings

  6. Playing a network game
6-1. Playing a LAN game
6-2. Configuring ICQ to launch an Internet game
6-3. Playing with a modem/serial/parallel cable connection

  7. Editing ZDoom

  8. Known bugs

  9. Credits

1. Introduction

ZDoom is an enhanced port of the official DOOM source code to Win32. As
such, it not only works with (and requires) Windows 95/NT 4.0, but it also
adds new features not found in the version published by id Software. 

ZDoom may be used and distributed free of charge. It must not be sold for
profit. These are terms set forth by the Doom Source Code license, the
MIDAS Digital Audio System license, and the Prometheus Truecolor license.

1-1. What's new in 1.16?

Bug fixes:
* No more limit on size of savegames or demos.
* Screen resolutions above 320x200 are now the proper brightness (they were
  too bright before.)
* Improved the brightness of the console font.
* Bullet puffs can show up on the floor and ceiling and not just walls.
* Missile weapons can trigger gun activation lines.
* Barrels now bounce around as much as they did in original DOOM. (They were
  too "inert" in 1.14.)
* If a demo is being recorded, quitting the game normally will save the demo
  to disk. (Previously, you had to use the stop command to do this.)

New features for players:
* Proper support for BOOM maps.
* Mouse wheel support and weapnext/weapprev commands.
* Doublebindings.
* Better analog joystick support.
* 180 degree turn command for keyboarders.
* Damage done by a rocket to its shooter is configurable and defaults to the
  original Doom behavior.
* User-configurable gender. (Even though I don't have any new player sounds,
  at least the obituaries are gender-aware. :-)
* Teamplay mode.
* New cvar to disable manual aiming of the BFG to prevent someone from
  shooting it at the floor and quickly triggering tracer damage before.
* Maps no longer need to have as many deathmatch starts as there are players
  in a deathmatch game.
* Support for Doom Legacy skins.
* Rewrote the MIDI/MUS code so that it has a working volume control.
* Many more console commands and cvars.

New features for editors:
* Proper support for BOOM maps.
* Obituaries are configurable with a .bex patch.
* Moster paths
* Colored lighting
* Fog can be applied to only part of a level instead of all of it.
* Per-sector gravity settings.
* Support for up to 256 ambient sounds (as opposed to the limit of 64 in
  earlier versions).
* Sector damage adjustable from between 0-255 points of damage.
* Changable camera views.
* The following editing features that were introduced in Hexen are also
  available in ZDoom:
  - Most line specials take arguments that modify their behavior.
  - ACS scripting.
  - Hubs.
  - Earthquakes.
  - Dormant monsters.
  - Trigger events to happen on monster deaths.
  - "Waggling" floors.
  - Pillar builders.
  - Push activation lines (walking into a wall can trigger an event).
  - Thing spawning (e.g. for traps/gifts).

Significant differences between ZDoom and regular Doom:

- Will work under Windows NT with sound.
- Free look (look up/down).
- High resoulutions.
- Translucency.
- A console.
- MOD and MIDI support.
- Better mouse support.
- Limited TCP/IP networking.
- Quake-style key bindings.
- Jumping.
- Crosshairs.
- Walk over/under monsters.

1-2. What happened to 1.15?
That was the DOS port I did earlier. There were enough minor differences
between it and 1.14a to warrant the new version number. I also plan on
porting this version to DOS when I have the time, but it will retain the
1.16 version stamp.

1-3. Installing ZDoom

To use ZDoom, unzip both zdoom.exe and zdoom.wad into your existing Doom 
directory. (You must already have an existing copy of Doom to use this
program.) If nothing else, you need to download the shareware Doom, which
is available in several places on the Internet. To truly take advantage of
ZDoom, though you need the full game. The Depths of Doom Trilogy can be had
fairly cheaply and includes Ultimate Doom, Doom II, and The Master Levels
for Doom II.

ZDOOM REQUIRES an IWAD from a 1.9 version of Doom. If you have a lesser
version, you can find patches to upgrade your version at

ZDoom also requires Microsoft’s DirectX 3 or later. If you are using
Windows 95, you can download the latest version from Microsoft’s website at
http://www.microsoft.com/directx. Windows NT 4.0 users can get it as part of
Service Packs 3 and 4 (which are available at

2. Command line parameters

ZDoom supports many command line parameters. They are described below:

2-1. Configuration options

-mode <modeid>
    Specifies the vide mode to use. Currently, only INDEX8 is supported.

-width <x>
-height <y>
    Specifies the desired resolution of the screen. If only one of -width
    or -height is specified, ZDoom will try to guess the other one based on
    a standard aspect ratio. If the specified resolution is not supported
    by your DirectDraw drivers, ZDoom will try various resolutions until it
    either finds one that works or gives up. To determine which resolutions
    ZDoom can use, use the vid_describemodes command from the console once
    you have started the game.

    Causes ZDoom to look for savegames and zdoom.cfg in a directory called
    C:\ZDOOMDAT. Screenshots will also be saved in this directory.

-config <configfile>
    Causes ZDoom to use an alternative configuration file. If configfile
    doesn't exist, it will be created.

-heapsize <x>
    This is the size in megabytes of the zone memory manager’s heap. If set
    too low, problems will almost certainly arise. 6 megabytes is probably
    a reasonable minimum to use for this parameter, although ZDoom won’t
    stop you from using something smaller like 0.5 megabytes (which will
    almost certainly give you a Z_Malloc error if you try it). By default,
    the heap size is 8 megabytes.

-iwad <iwadfile[.wad]>
    The IWAD file specified after this parameter will be used as the game
    IWAD file instead of the default one. Normally, ZDoom looks for IWADs
    in the following order and uses the first one it finds:


    When the user presses Alt-Tab to switch from ZDoom to another window,
    ZDoom will normally reduce its priority class so that it doesn't slow
    the rest of the system down. By specifying this parameter, ZDoom will
    try to run at full speed even when it isn't the active window.

    Causes ZDoom not to use any MMX code. Normally, ZDoom should be able to
    figure out on its own whether the processor supports MMX or not and
    will act accordingly. Currently, MMX is only used in a few isolated
    situations, and you probably won't notice a difference if you use this
    option to turn it off.

    Prevents the playback of music.

    Prevents the playback of sound effects. Because of the nature of MOD
    music, this also disables playback of MODs.

    Disables both music and sounf effects.

    Disables translucency.

    If DirectSound is available, this parameter will cause ZDoom to try to
    use the primary buffer for mixing. This can potentially lower sound
    latency but also introduces the possibilty for more sound problems.

    Forces ZDoom to use the standard Windows wave device for sound output
    instead of DirectSound. If you experience problems with sound, it may
    be worthwhile trying this parameter, although it will generally
    introduce a large amount of latency, causing sounds to be heard later
    than expected.

-transfile <transfile[.tch]>
    Causes ZDoom to use an alternative translucency cache file. This file
    is automatically generated if it doesn't already exist and is used to
    speed up startup by eliminating the need to recalculate the
    translucency tables every time the game is started. By default, ZDoom
    will look for a file called transtab.tch in the same directory that it
    resides in. If the .tch extension is omitted, it will automatically be

2-2. Play options

    Stands for "Austin Virtual Gaming." Automatically advances to the next
    level after 20 minutes. This is equivalent to +set timelimit 20 or
-timer 20.

    Sets the dmflags cvar to make the monsters as fast as in nightmare mode
    even if you aren't playing nightmare.

    Sets the dmflags cvar so that monsters are not spawned on levels.

    Sets the dmflags cvar so that monsters respawn even if you aren't
    playing at nightmare difficulty.

-timer <x>
    Causes ZDoom to automatically advance to the next level after x
    minutes. This is equivalent to +set timelimit <x>.

-turbo <x>
    Causes player movement to be x% as fast as normal. Valid values are
    10-256, with 100 being normal. Values larger than 100 are considered
    cheating. This is equivalent to +set tunbo <x>.

2-3. Loading options

-deh <dehfile[.deh]>
    Causes ZDoom to apply a DeHackEd or .bex patch to the game. This must be
    a text patch; binary patches are not supported. (As far as I know, most
    patches are text patches so this shouldn’t be too much of a problem.)
    Also, only patch format 6 is known to be supported. Other formats may
    or may not work properly. If the .deh extension is omitted, ZDoom will
    automatically add it. If this is a .bex patch, however, the extension
    does need to be included.

-fastdemo <demofile[.lmp]>
    This is the same as the -fastdemo parameter from BOOM. It works just
    like -timedemo except it plays demos as fast as they will go.

-file <file1[.wad]> [[file2[.wad]] [[file3[.wad]] [...]]]
    Used to load one or more PWAD files which generally contain user-
    created levels. Files listed further right take precedence to files
    listed before them, so as an example, if both file1.wad and file2.wad
    contain have a MAP01, the MAP01 in file2.wad would be used instead of
    the one in file1.wad If the .wad extension is omitted, ZDoom will
    automatically add it.

-loadgame <x>
    Automatically loads savegame x, where x is 0-7 corresponding to one of
    the savegame slots.

-maxdemo <x>
    Specifies the initial size of the recording buffer used with the -record
    parameter. This buffer will grow as needed, but you might want to use
    this parameter to avoid any potential pauses when the buffer grows. The
    default size of 128k is large enough for about 10 minutes of a
    deathmatch, although the actual amount of space used by a demo depends
    on what happens in the demo (due to the rudimentary delta compression
    ZDoom applies to demos): If you did nothing but stand still, this should
    be large enough for about 5.5 days.

-playdemo <demofile[.lmp]>
    ZDoom will play the specified demo and then quit. If the .lmp extension
    is omitted, it will automatically be added.

-record <demofile[.lmp]>
    Records a demo. The -warp parameter or +map command should also be used
    if you don't want to record the demo on MAP01 or E1M1. To stop the demo
    recording, use the "stop" console command. If the .lmp extension is
    omitted, it will automatically be added. Unlike regular DOOM, only one
    person in a multiplayer game needs to specify the -record parameter if
    they want to record a demo. However, if someone quits before the person
    recording the demo does, the person recording will automatically quit,
    too, because I didn't bother to give demos a way to record when a player
    leaves the game.

-skill <x>
    Sets the initial skill level. This is overridden if you start a new
    game from the New Game menu.

-timedemo <demofile[.lmp]>
    Plays back a demo faster than -playdemo and displays a framerate when
    the demo is over. If the .lmp extension is omitted, it will
    automatically be added.

-warp <m>
-warp <e> <m>
    For Doom II, starts the game on map m. For other versions of doom,
    starts the game on episode e, map m. The +map command can also be used
    to perform this action, but it expects the actual name of the map.
    (i.e. MAP01, E1M1, ...)

2-4. Debug options

    Causes ZDoom not to update the display on the screen, but it stills
    draws everything to an internal buffer. Only useful with -timedemo.

    Causes ZDoom not to draw anything at all. Only useful with -timedemo.

    Causes ZDoom to write network debugging information to a file called
    debugN.txt where N is your player number.

    Prints a message telling you that you can take screenshots with the
Print Screen key. With the original Doom, using -devparm was the only
way to take screenshots. With ZDoom, screenshot is just another command.

+set developer 1
    Prints a bunch of debugging messages to the console.

2-5. Multiplayer options

    Informs ZDoom that you will be playing a deathmatch game and sets the
    dmflags cvar so that items other than invulnerability and invisibilty
    respawn after being picked up. Only player 1 needs to specify this.

    Informs ZDoom that you will be playing a deathmatch game and sets the
    dmflags cvar so that weapons stay behind when a player picks them up.
    Only player 1 needs to specify this.

-dup <x>
    Causes ZDoom to transmit fewer player movement commands across the
    network. Valid values range from 1-9. For example, -dup 2 would cause
    ZDoom to send half as many movements as normal.

    Causes ZDoom to send a backup copy of every movement command across the

-net <console> [hosts] ...
    Informs ZDoom that you will be playing a network game. See section 6
    about network games below for more details.

-port <x>
    Specifies an alternate IP port for this machine during a network game.
    By default, the port 5029 is used.

2-6. Other options

In addition to the above parameters, console commands can be included on
the command line by preceding them with a ‘+’. Some, however, will cause
the game to crash if you use them (such as cheats). If you wish to
change a cvar in this manner, it is a good idea to use the set command. This
is because any set commands will be executed just after the config file is
loaded, and all other commands are executed after every game subsystem has
been initialized. For example, to turn on developer messages when you start
ZDoom, use the command line:

    zdoom +set developer 1

instead of

    zdoom +developer 1

If you use the second line, you'll miss out on all the developer messages
that get generated during the startup process.

For a complete list of console commands and cvars, refer to the
commands.txt file. If you want to get the most from ZDoom, I highly
recommend at least glancing at it.

3. Configuring ZDoom

Zdoom now includes a new options menu which can be used to set some of the
game’s new options. A new control configuration menu is also included that
can be used to easily assign some commands to different keys without a
separate setup program.

3-1. The Player Setup menu

This menu is found on the main menu and is used to select your player's
name, team, suit color, gender, skin, and autoaim setting.

Your player's name will be displayed on the scoreboard in deathmatch games
and in the obituaries that are printed when you die. In teamplay games, your
team name is used to identify which team you are on and also appears in the
deathmatch scoreboard.

The suit color is controlled with three sliders; one for each of red,
green, and blue color components. Because the Doom palette only has 256
colors, not all possible combinations will look good. The current color
is displayed on an animated player character to the right of the sliders.

Your player's gender can be male, female, or neuter (cyborg). However,
unless you have a soundpack or a skin with non-male sounds, your player will
still sound like the male DOOM marine. Some obituaries (such as "Zathras
checks his glasses") will adjust themselves to fit the gender you select.

You also have the option of looking like something other than the DOOM
marine by picking a skin. ZDoom doesn't come with any, but it is compatible
with skins developed for Doom Legacy. You can find skins to download from
their site at http://frag.com/doomlegacy/dl_skins.htm. Currently any skins
you want to be able to use or see other people using need to be specified
on the command line with the -file parameter. In a future version, I plan
to set things up so that you will be able to store skins in a folder and
use them without having to do anything special when you load the game.

The autoaim settings controls how close your vertical aim should be from a
monster before ZDoom will adjust your aim to shoot it. By default, this
value is set to always which means that it behaves just like the original
Doom. Never indicates that ZDoom will never adjust your aim for you, and
you will shoot where you aim. There are also intermediate values which
adjust how much leeway you can have in your aim.

3-2. The new Options menu

ZDoom's Options menu is different from the options menu in the original
Doom and contains the following items:

Customize Controls
    Displays the customize controls menu.

Go to console
    Opens the console.

Gameplay Options
    Displays the gameplay options menu.

Display Options
    Displays the display options menu.

Set video mode
    Displays the video modes menu.

Mouse speed
    Adjusts how sensitive ZDoom is to mouse movements.

MIDI Music Volume
    Adjusts the volume of MIDI and MUS music. This is the type of music
    found in the levels that come with DOOM and does not affect the volume
    of MOD music.

MOD Music volume
    Adjusts the volume of MOD music. Setting this to a high setting will
    usually result in nasty-sounding aliasing. Note that this only effects
    the volume of MOD music and not MUS or MIDI music.

Sound volume
    Adjusts the volume of sound effects.

Always Run
    When on, you will always run whether or not you are holding down the
    +speed key. By default, you can also change this setting by pressing
    the caps lock key while playing a game.

Always Mouselook
    When on, moving the mouse up and down will always cause you to look up
    and down instead of only when the +mouselook key is pressed.

Invert Mouse
    When on, mouselooking is reversed so that pushing the mouse forward
    causes you to look down, and pulling the mouse back causes you to look

    When on, releasing the +mouselook key will automatically center your

    When on, moving the mouse left and right will always cause the player
    to move in the corresponding direction.

Reset to defaults
    Select this item to set all options to their default values.

Reset to last saved
    Select this item to set all options to the values contained in the
    configuration file.

3-3. The Configure Controls menu

This menu is found on the options menu and lists several controls and up to
two keys assigned to that control. There may be more than two keys assigned
to a control, but only two of them will be shown at a time. If there are no
keys assigned to the given control, this will be indicated with ???.

To change the keys assigned to a control, use the up and down arrow keys to
select the control you wish to change. To assign a new key to the control,
press Enter and then the key you want to activate this control. If you
decide you don’t want to assign a new key to the control, press Escape. To
remove all keys for the selected control, press Backspace instead of Enter.

This menu only lists a select few commands, but they are the ones that are
most likely to be used during gameplay. To assign other commands to keys,
you can use the bind command from the console.

3-4. The Gameplay Options menu

This menu is found in the options menu and controls several options
related to game play and map directly to different dmflags values. The
dmflags value corresponding to the current settings can be found at the
bottom of the menu. Many of these settings apply only to deathmatch games
and are indicated by a (DM) after their names. During a multiplayer game,
only player 1 can change these settings. Currently, there are 18 dmflags
that can be set from this menu:

Falling damage
    When set to yes, falling long distances will cause players damage.

Weapons stay (DM)
    When set to yes, weapons won't disappear when they're picked up. This
    is the default when started with -deathmatch.

Allow powerups (DM)
    When set to yes, powerups (such as light amplification goggles) will
    be spawned on levels.

Allow health (DM)
    When set to yes, any items that give you health (such as stimpacks)
    will be spawned on levels.

Allow armor (DM)
    When set to yes, armor will be spawned on levels.

Spawn farthest (DM)
    When set to yes, dead players will respawn as far as possible from
    other players.

Same map (DM)
    When set to yes, exiting a level will restart the current one instead
    of advancing to another.

Force respawn (DM)
    When set to yes, dead players will respawn immediately.

Allow exit (DM)
    When set to no, anyone who tries to leave the level will be instantly

Infinite ammo
    When set to yes, weapons do not deplete their ammo.

No monsters
    When set to yes, monsters will not be spawned on levels.

Monsters respawn
    When set to yes, monsters respawn (just like nightmare difficulty).

Powerups respawn
    When set to yes, powerups other than invulnerability and invisibility
    will respawn. This is the default for -altdeath.

Fast monsters
    When set to yes, monsters will be faster than normal (just like
    nightmare difficulty).

Allow jump
    When set to yes, players can jump.

Allow freelook
    When set to yes, players can look up and down.

Friendly fire
    When set to yes, players on the same team can hurt each other. If you
kill a teammate, you also lose a frag. If this is set to no, players on
the same team will still be able to push each other around with their
weapons, but they won't be able to hurt each other. This flag only has
an effect when teamplay is on. Otherwise, all players can always hurt
each other.

The final option on this menu, "Teamplay," is not a dmflag. When it is on,
the deathmatch scoreboard will also show the name's of players' teams, and
the game will also use the setting of the friendly fire dmflag.

3-5. The Display Options menu

This menu is found in the options menu and controls various aspects of the
display. Options currently available are:

Screen size
    Controls the size of the screen used to draw the players view. Larger
    sizes require more processing power to draw but also look better.

    Controls how bright the display is.

    Selects one of eight crosshairs or no crosshair at all. Some of these
    crosshairs are probably of dubious value but are available anyway.

Detail mode
    Controls vertical and horizontal pixel doubling. This is similar to the
    low detail mode of the original Doom which would double the size of
    pixels horizontally except that it can also do the same vertically.
    Doubling horizontally will almost always result in a speedup
    significantly larger than doubling them vertically.

Stretch short skies
    When turned on, short sky textures (such as the ones included with
    Doom) are stretched vertically so that they don't wrap when you look up
    or down.

Scale status bar
    When turned on, the status bar will always be as wide as the screen.

Rotate automap
    When turned on, the automap will rotate to keep the area that you are
    facing toward the top of the map.

Overlay automap
    When turned on, the automap will first be overlayed on top of the
    player view before being drawn fullscreen.

Standard map colors
    When turned on, ZDoom will use the automap colors from the original
    Doom instead of the colors specified with the am_*color cvars.

3-6. The Video Modes menu

The video modes menu can be used to select the current display mode and
switch between windowed mode and full screen. This menu can be found as a
selection inside the Options menu. Note that this screen will let you
choose non-8 bit modes. I am currently working on true color support, but
decided to release this version of ZDoom before I had finished it.

3-7. Changing settings not found in a menu

There are many settings (cvars) that aren’t listed in any menu. To change
these you need to use the console (see section 4). For a complete list of
these, refer to the commands.txt file.

4. The Console

ZDoom has a console very similar to Quake's. Almost all game settings and
controls can be accessed from it. For a complete list of console commands
and cvars, see the commands.txt file.

4-1. Activating the console

There are two ways to activate the console: From the Options menu, and with
the toggleconsole command. The console can always be activated by selecting
"Go to console" from the Options menu. While playing a game, pressing a key
bound to the toggleconsole command can also activate the console. By
default, this is the ` key, but it can be changed to any key with the bind

4-2. Using the console

Using the console is fairly simple. Just type in commands and press Enter
to execute them. To scroll around in the console’s text buffer, you can use
the Page Up and Page Down keys. Pressing Shift-Page Up scrolls to the top
of the buffer, while pressing Shift-Page Down scrolls to the bottom.
Without pressing Shift, these keys will scroll one line at a time in the
corresponding direction.

A handy feature of the console that was added in 1.13 is tab-completion. To
use it, begin typing a command, and then press tab repeatedy to cycle
through all the commands that begin with whatever you typed.

To deactivate the console, you can press either ` or Escape. This will also
erase any text you might have been typing on the command line.

5. Key bindings

ZDoom supports Quake-style controls as opposed to those of the original 
Doom. To bind a command to a key, use the bind command followed by the key
to bind and the command(s) to bind to it. Multiple commands should be
separated by semicolons (;) and if there are any spaces in the commands,
they need to all be enclosed in quotation marks (").

For example, to make the Page Up key cause the player to look up, use the 

bind pgup +lookup

From now on, pressing Page Up will cause you to look up. Since this is also
an action command (it begins with a '+'), releasing Page Up will also
execute the -lookup command, which will cause you to stop looking up.

You can also refer to keys by scancodes instead of names. For instance,

bind #3 "echo I don't like my pistol."


bind 2 "echo I don't like my pistol."

will both do the same thing, because 3 is the scancode for the "2" key.

If you use key names, the keys are assumed to be arranged in a Qwerty
layout. This may be somewhat confusing because the console uses the layout
selected in the Keyboard control panel (which might not be Qwerty), but I
decided to do it this way for consistancy. Thus, if you wanted to assign the
key directly to the right of the tab key to a command, you would use
"bind q <command>" even if that key isn't labeled Q on your keyboard.

All key bindings are automatically saved in the config.cfg file when the
game quits.

The following special keys as well as the alphanumeric keys are named and
can be bound. These are the same keys displayed in the Configure Controls

kp** on the numeric keypad
altEither the left or right Alt key
scrollScroll Lock
kp77 on the numeric keypad
kp88 on the numeric keypad
kp99 on the numeric keypad
kp-- on the numeric keypad
kp44 on the numeric keypad
kp55 on the numeric keypad
kp66 on the numeric keypad
kp++ on the numeric keypad
kp11 on the numeric keypad
kp22 on the numeric keypad
kp33 on the numeric keypad
kp00 on the numeric keypad
kp.. on the numeric keypad
kp== on some numeric keypads
kp,, on some numeric keypads
kp// on the numeric keypad
lwinThe left Windows key
rwinThe right Windows key
appsThe application menu key
pauseThe pause key
mouse1The left mouse button
mouse2The right mouse button
mouse3The middle mouse button
mouse4The fourth mouse button if yours has one
joy1 - joy32All 32 joystick buttons supported by Windows
mwheelup The mouse wheel was rolled up
mwheeldownThe mouse wheel was rolled down

Note that i_remapkeypad must be "0" for kp0, kp., kp1, kp2, kp3, kp4, kp6,
kp7, kp8, and kp9 to be treated as distinct keys.

6. Playing a network game

Due to changes ZDoom has made to the message format of network games, you
will definitely not be able to play a network game between ZDoom and
another version of Doom. Since ZDoom uses the UDP protocol for networking,
it is possible to play a game on the Internet as well as a LAN.

6-1. Playing a LAN game

To begin a network game, start ZDoom with the "-net" command-line
parameter. This is *different* from the DOS version of Doom (but the same
as the Linux version). The -net parameter takes the form:

    -net <console> [machine1] [machine2] ...

<console> is the player number that your machine is playing as (1 to 8)
and is followed by the addresses of the other machines in the network game.
These addresses can be either IP addresses like or hostnames
like some.machine.com. To specify an alternate port to connect to on the
other machines, append a colon to the address and follow it with the port
number you wish to use (i.e. some.machine.com:26000).

The number of players in a netgame is determined by the number of machines
after <console> in the -net parameter. For a two-player game, you would
only list one other machine. For a four-player game, you would list three.

Each player must choose a different console number. One person *must* be
console 1, and there can be no gaps between console numbers. For instance,
in a two-player game it's okay for one player to be console 1 and the other
to be console 2, but it's not okay if one player is console 1 and the other
is console 4.

An example for a two-player game:

    One machine named joe runs:         zdoom -net 1 bob -deathmatch
    The other machine named bob runs:   zdoom -net 2 joe -deathmatch

It's also possible to start a network game on your own machine if you run
ZDoom in a window with the -nomusic and -noidle parameters:

    Start the first copy of zdoom:
        zdoom -net 1 localhost:26000 -port 26001 -noidle -nomusic

    Then start the second copy:
        zdoom -net 2 localhost:26001 -port 26000 -noidle -nomusic

This works much nicer under Windows NT than it does under 95/98.

6-2. Configuring ICQ to launch an Internet game

I don't personally recommend using ZDoom on the Internet (and have never
tried it), but if you want to give it a try, it's just like setting it up
for a LAN game. You might also want to try specifying the -extratic and
-dup 2 parameters to help compensate for the latency the Internet
introduces. Doomworld's Linguica has also provided instructions for setting
up ICQ to launch a game of ZDoom:

    With a little tweaking I was able to successfully configure the nearly
    ubiquitous program ICQ to launch ZDoom games with literally the click of
    a button. Here's how: Go into the "Preferences" menu in ICQ and then
    "Internet Phone/Games/Chat." Then click on "New External." You'll be
    given a box with three empty lines to fill in. In the first line, type
    in the title of the application, i.e. "ZDoom." In the second line, type
    in the path to your zdoom.exe -- "C:\DOOM2\zdoom.exe" or whatever. In
    the third line, type in the following: "-net 2 %i -extratic -dup 2
    -deathmatch -nomonsters -skill 5 -warp 01 -nomusic" which will configure
    ZDoom to DM on Map01 with the optimum TCP/IP deathmatch settings. Then
    click on the "Client/Server Application" button. This will bring up two
    additional lines to fill in. In the fourth line, type the same thing as
    in line 2: "C:\DOOM2\zdoom.exe" or whatever. In the fifth line, type
    "-net 1 %i -extratic -dup 2 -deathmatch -nomonsters -skill 5 -warp 01
    -nomusic" which once again configures ZDoom for optimum Internet play.
    It's exactly the same as line 3 except it has "-net 1" instead of
    "-net 2." Once all this is typed in, press OK. Then, if you want to DM a
    friend who has similarly enabled his ICQ, simply click on their name,
    click on "Internet Phone/Games," and then on "ZDoom." And away you go!

Doomworld also hosts the "ZDoom TCP/IP Deathmatch Resource"
(http://www.doomworld.com/dmdoom/) for locating other people to play with on
the Internet.

6-3. Playing with a modem/serial/parallel cable connection

ZDoom only supports UDP games. However, using Microsoft's Dial-Up Networking
(included with Windows 95/98/NT), it should be possible to also play a game
on two computers connected with modems or null-modem serial or parallel
cables. My only network connection is my Ethernet card, so I haven't
actually tried this, but I can't see any reason why it shouldn't work.

If you're running Windows 95, go download Dial-Up Networking 1.3 from
and install it.

If you're running Windows 98, open the "Add/Remove Programs" control panel
and click the Windows Setup tab. Choose "Communications" from the components
list and click "Details..." If there isn't a check by "Dial-Up Networking"
and "Dial-Up Server," check them and click OK. Click OK again to close the
control panel.

Now go visit http://www.geocities.com/TimesSquare/Fortress/4004/guide.html
and start reading the section entitled "Configuring the Dial-Up-Server." Once
you have everything set up, start a game using the instructions for starting
a LAN game above.

If you want to use two computers connected directly using a parallel or
serial cable, you also have to use Microsoft's Direct Cable Connection.

7. Editing ZDoom

Information about editing ZDoom has been separated into a separate archive
and is no longer available with ZDoom itself. Download zdoomedt.zip if you're
interested in editing for ZDoom or seeing a demonstration pwad.

8. Known Bugs

* Demos from other versions of Doom and earlier versions of ZDoom tend to
  get out of sync. Unfortunately, this is unavoidable, and you will just
  have to live with it. Demos recorded with one version of ZDoom should play
  back on the same version with no problems.
* When played in a window on Windows NT, the mouse can sometimes go crazy.
  You can get around this by pausing and unpausing the game several times
  or Alt-Tabbing out of ZDoom and back into it. Alternatively, you can also
  set the in_mouse cvar to "2" to force ZDoom to use DirectInput to read
  the mouse, but this may make the mouse very jerky while using the keyboard
  at the same time.
* Some machines were incapable of running version 1.13 and died inside of
  I_StartGraphics. I have been unable to reproduce this on my machine and
  could find nothing wrong with the code, so my best guess is that it's a
  driver problem (if it still happens).
* I've had reports that ZDoom will rearrange the icons on the desktop after
  quitting the game in fullscreen. I have not had this happen to me, but it
  appears to be a DirectDraw problem.

If you find another bug with ZDoom, first try and duplicate it. If you
can't duplicate it, it's probably either a problem with your system or 
omething that I won't be able to fix unless I stumble on it. (I actually
did find an obscure bug this way!) If you can duplicate the problem, run
the game in a window, and send me the contents of the dialog box that pops
up when it dies. If you have Drwatson (found in the \windows\system
directory of Windows 95B and 98), also run that beforehand and send me a
copy of the log file it generates (provided that it's not too large). Also
describe what you were doing when the problem occured and list any PWADs or
DeHackEd patches you were using at the time.

9. Credits
(in no particular order)

id SoftwareThese are the people who developed Doom and later released
John Carmackthe source code for the Linux port. Without them, there
would be now ZDoom. I have also used some of the functions
from their Quake2 source.

B. KrenheimerPackaged up id's Linux code for the initial source release.

Chi HoangResponsible in one way or another for BOOM. I've used some
Team TNTof its source in ZDoom. Information about BOOM can be found
at the Team TNT website:

SebastienCreated qmus2mid which I used to determine the structure of
BacquetDOOM's MUS lumps so that the game would have music.

Andy BayOriginal input code is from his (discontinued) ATB Doom

PeterriOriginal sound code and some assembly is from his
Kangaslampi(discontineud) NTDOOM port. He was also the person primarily
responsible for writing the MIDAS Digital Audio System
1.1.2, which is used for all sound effects and MOD music.
It is copyright 1996,1997 Housemarque Inc. It can be found
at http://www.s2.org/midas/.

Gaffer/XtaticDeveloped the Prometheus Truecolor library. I used a
tweaked version of PTC 0.72b for this version of ZDoom.
Its homepage is at http://www.gaffer.org/ptc.

Markus FranzWrote the miniLZO library, which ZDoom uses for data
Xaver Johannescompression. Its webpage is at

Andy BakerDevised the stealth monsters. He used to head the DOSDoom
project at http://frag.com/dosdoom.

Greg LewisReleased his DeHackEd source, without which adding
DeHackEd support would have been much harder.

Denis FabriceResponsible for Doom Legacy which is where I derived the
Boris Pereiraaspect ratio correction and initial freelook code from.
The Doom Legacy homepage is at http://frag.com/doomlegacy.
Help improve the database by uploading an image
Creative Commons License