mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-12-15 15:11:32 +00:00
1134 lines
43 KiB
Text
1134 lines
43 KiB
Text
ZDOOM v1.22
|
||
December 12, 1999
|
||
|
||
A port of id Software's original Linux Doom source code to Win32 and Linux
|
||
with additional enhancements by Randy Heit (rheit@iastate.edu).
|
||
|
||
ZDoom's homepage is at: http://zdoom.notgod.com/
|
||
|
||
|
||
Contents
|
||
|
||
1. Introduction
|
||
1-1. Significant differences between ZDoom and regular Doom
|
||
1-2. 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 Messages menu
|
||
3-7. The Video Modes menu
|
||
3-8. 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 network game with the DOS version
|
||
6-2. Playing a network game the nice way
|
||
6-3. Playing a network game the old way
|
||
6-4. Configuring ICQ to launch an Internet game
|
||
6-5. Playing with a modem/serial/parallel cable connection
|
||
|
||
7. Known bugs
|
||
|
||
8. Acknowledgments
|
||
|
||
|
||
1. Introduction
|
||
===============
|
||
|
||
ZDoom is an enhanced port of the official DOOM source code. Originally for
|
||
Win32 (Windows 95/98/NT), it is now available for Linux as well.
|
||
|
||
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. 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 (actually UDP) networking.
|
||
- Quake-style key bindings.
|
||
- Jumping.
|
||
- Crosshairs.
|
||
- Walk over/under other things.
|
||
- Hexen-style map editing.
|
||
- Almost full BOOM support.
|
||
|
||
|
||
1-2. 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
|
||
ftp.idsoftware.com.
|
||
|
||
ZDoom on Windows systems 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
|
||
http://www.microsoft.com/NTServer/all/downloads.asp).
|
||
|
||
ZDoom for Linux requires Hermes. You can get it from http://hermes.terminal.at
|
||
|
||
|
||
2. Command line parameters
|
||
==========================
|
||
|
||
ZDoom supports many command line parameters. They are described below:
|
||
|
||
2-1. Configuration options
|
||
--------------------------
|
||
|
||
-bits <numbits>
|
||
Specifies the display depth. Currently, only 8 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.
|
||
|
||
-cdrom
|
||
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<65>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<6F>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). Values too
|
||
high will also cause problems, because the game will use the system
|
||
heap to obtain memory too. If the zone heap is too large, it will have
|
||
to use virtual memory, and everything will be slower. 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:
|
||
|
||
doom2f.wad
|
||
doom2.wad
|
||
plutonia.wad
|
||
tnt.wad
|
||
doom.wad
|
||
doom1.wad
|
||
|
||
ZDoom will look for the IWAD in the current directory, in the same
|
||
directory as zdoom.exe, in the directory set in the DOOMWADDIR
|
||
environment variable, and in the directory set in the HOME environment
|
||
variable.
|
||
|
||
-m (DOS only)
|
||
Displays the MIDAS configuration screen when the game starts so you
|
||
can pick your soundcard if it isn't detected properly. Sorry, but there
|
||
isn't any way to save this configuration.
|
||
|
||
-noflathack
|
||
Some wads were able to use new flats with the original Doom.exe. ZDoom
|
||
will normally try and detect them. Use this switch to prevent that.
|
||
|
||
-noidle (Win32 only)
|
||
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.
|
||
|
||
-nommx
|
||
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 isn't actually used, so this switch
|
||
doesn't do anything.
|
||
|
||
-nomusic
|
||
Prevents the playback of music.
|
||
|
||
-noptc (Win32 only)
|
||
This forces ZDoom to use DirectDraw directly instead of using PTC as
|
||
an abstraction layer on top of it. Setting the cvar vid_noptc to 1
|
||
has the same effect as this command line option, and is also
|
||
remembered so that you don't need to type it in each type you run
|
||
the game. Unless you have problems with video, it is recommended that
|
||
you let ZDoom use PTC.
|
||
|
||
-nosfx
|
||
Prevents the playback of sound effects. Because of the nature of MOD
|
||
music, this also disables playback of MODs.
|
||
|
||
-nosound
|
||
Disables both music and sound effects.
|
||
|
||
-notrans
|
||
Disables translucency.
|
||
|
||
-primarysound (Win32 only)
|
||
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.
|
||
|
||
-wavonly (Win32 only)
|
||
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
|
||
added.
|
||
|
||
2-2. Play options
|
||
-----------------
|
||
|
||
-avg
|
||
Stands for "Austin Virtual Gaming." Automatically advances to the next
|
||
level after 20 minutes. This is equivalent to +set timelimit 20 or
|
||
-timer 20.
|
||
|
||
-fast
|
||
Sets the dmflags cvar to make the monsters as fast as in nightmare mode
|
||
even if you aren't playing nightmare.
|
||
|
||
-nomonsters
|
||
Sets the dmflags cvar so that monsters are not spawned on levels.
|
||
|
||
-respawn
|
||
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 turbo <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<64>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.
|
||
|
||
-bex <bexfile[.bex]>
|
||
This is the same as -deh, except the default file extension is .bex.
|
||
|
||
-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 automatically play the specified demo when it starts. 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
|
||
------------------
|
||
|
||
-noblit
|
||
Causes ZDoom not to update the display on the screen, but it stills
|
||
draws everything to an internal buffer. Only useful with -timedemo.
|
||
|
||
-nodraw
|
||
Causes ZDoom not to draw anything at all. Only useful with -timedemo.
|
||
|
||
-debugfile
|
||
Causes ZDoom to write network debugging information to a file called
|
||
debugN.txt where N is your player number.
|
||
|
||
-devparm
|
||
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
|
||
------------------------
|
||
|
||
-altdeath
|
||
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.
|
||
|
||
-deathmatch
|
||
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.
|
||
|
||
-extratic
|
||
Causes ZDoom to send a backup copy of every movement command across the
|
||
network.
|
||
|
||
-host <x>
|
||
This machine will function as a host for a multiplayer game with <x>
|
||
players (including this machine). It will wait for other machines to
|
||
connect using the -join parameter and then start the game when
|
||
everyone is connected. See section 6 for more details.
|
||
|
||
-join <host>
|
||
Connect to a host for a multiplayer game. See section 6 for more
|
||
details.
|
||
|
||
-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 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. To automatically
|
||
load skins at game startup, create a skins directory (in the same directory
|
||
as zdoom.exe), and place your skins in it. You can also load skins from
|
||
the command line with -file.
|
||
|
||
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 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
|
||
up.
|
||
|
||
Lookspring
|
||
When on, releasing the +mouselook key will automatically center your
|
||
view.
|
||
|
||
Lookstrafe
|
||
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<6F>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
|
||
killed.
|
||
|
||
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.
|
||
|
||
Some of the DM-only flags (such as item respawning) can also be enabled
|
||
for singe player and co-op can be enabled by opening the console and setting
|
||
the alwaysapplydmflags cvar to 1.
|
||
|
||
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:
|
||
|
||
Messages
|
||
Displays the messages menu.
|
||
|
||
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.
|
||
|
||
Brightness
|
||
Controls how bright the display is.
|
||
|
||
Crosshair
|
||
Selects one of eight crosshairs or no crosshair at all. Some of these
|
||
crosshairs are probably of dubious value but are available anyway.
|
||
|
||
Column render mode
|
||
Selects a column renderer. Original is the one used by DOOM. And
|
||
optimized is a new one that can as much as double the framerate on
|
||
modern processors. If you're using a 486, you should definitely
|
||
be using the original renderer, because the optimized one will cut
|
||
your framerate by at least half.
|
||
|
||
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.
|
||
|
||
Stretch status bar
|
||
When turned on, the status bar will always be as wide as the screen.
|
||
|
||
Screen wipe style
|
||
Selects the style of screen wipe to use between levels. "None" means to
|
||
just switch directly to the new screen. "Melt" is the style used by
|
||
Doom. "Burn" makes the old screen burn into the new one. "Crossfade"
|
||
fades out the old screen while fading the new one in at the same time.
|
||
|
||
DirectDraw palette hack (Win32 only)
|
||
If you have trouble with the palette, your video card probably has buggy
|
||
drivers. Turn this on, and ZDoom will reset the palette every frame
|
||
and not just when it changes.
|
||
|
||
Use fuzz effect
|
||
Controls whether the fuzz effect will be used for partially invisible
|
||
things. If turned off, then translucency will be used instead.
|
||
|
||
Rocket trails
|
||
Controls whether rockets leave a trail of particles behind them.
|
||
|
||
Blood type
|
||
Determines the way blood is draw: as sprites only, particles only,
|
||
or both.
|
||
|
||
Bullet puff type
|
||
Determines the way bullet puffs are drawn: either as sprites or as
|
||
particles.
|
||
|
||
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 Messages Menu
|
||
----------------------
|
||
|
||
This menu lets you adjust how messages are displayed on the screen.
|
||
Possible items you can select from this menu are:
|
||
|
||
Scale text in high res
|
||
When turned on, message text is enlarged on higher resolutions so that
|
||
it takes up about as much space as it would on a 320x200 screen.
|
||
|
||
Minimum message level
|
||
This is the minimum message level (see below) that will be shown.
|
||
|
||
The remaining items control the colors used to display messages each level
|
||
of message:
|
||
|
||
Item pickup
|
||
Messages that appear when you pick up an item.
|
||
|
||
Obituaries
|
||
Messages that appear when a player dies.
|
||
|
||
Critical messages
|
||
Anything that doesn't fit into one of the other categories.
|
||
|
||
Chat messages
|
||
Messages from another player.
|
||
|
||
Team messages
|
||
Messages from a teammate who is only speaking to his team.
|
||
|
||
Centered messages
|
||
Messages in the middle of the screen
|
||
|
||
3-7. 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.
|
||
|
||
3-8. 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
|
||
command.
|
||
|
||
|
||
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<6C>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
|
||
command:
|
||
|
||
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."
|
||
|
||
and
|
||
|
||
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
|
||
menu:
|
||
|
||
backspace
|
||
tab
|
||
enter
|
||
ctrl
|
||
shift
|
||
kp* * on the numeric keypad
|
||
alt Either the left or right Alt key
|
||
space
|
||
capslock
|
||
numlock
|
||
scroll Scroll Lock
|
||
kp7 7 on the numeric keypad
|
||
kp8 8 on the numeric keypad
|
||
kp9 9 on the numeric keypad
|
||
kp- - on the numeric keypad
|
||
kp4 4 on the numeric keypad
|
||
kp5 5 on the numeric keypad
|
||
kp6 6 on the numeric keypad
|
||
kp+ + on the numeric keypad
|
||
kp1 1 on the numeric keypad
|
||
kp2 2 on the numeric keypad
|
||
kp3 3 on the numeric keypad
|
||
kp0 0 on the numeric keypad
|
||
kp. . on the numeric keypad
|
||
kana
|
||
convert
|
||
noconvert
|
||
yen
|
||
kp= = on some numeric keypads
|
||
circumflex
|
||
kanji
|
||
stop
|
||
ax
|
||
unlabeled
|
||
kp, , on some numeric keypads
|
||
kp/ / on the numeric keypad
|
||
sysrq
|
||
home
|
||
uparrow
|
||
pgup
|
||
leftarrow
|
||
rightarrow
|
||
end
|
||
downarrow
|
||
pgdn
|
||
ins
|
||
del
|
||
lwin The left Windows key
|
||
rwin The right Windows key
|
||
apps The application menu key
|
||
pause The pause key
|
||
mouse1 The left mouse button
|
||
mouse2 The right mouse button
|
||
mouse3 The middle mouse button
|
||
mouse4 The fourth mouse button if yours has one
|
||
joy1 - joy32 All 32 joystick buttons supported by Windows
|
||
mwheelup The mouse wheel was rolled up
|
||
mwheeldown The 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. If you want
|
||
to try it, a good frontend to try is ZM (http://www.doomworld.com/zm).
|
||
|
||
6-1. Playing a network game with the DOS version
|
||
------------------------------------------------
|
||
|
||
The information in the following sections about network games does *not*
|
||
apply to the DOS version of ZDoom. While networking with the DOS version is
|
||
untested, it should work just like the original DOOM: through sersetup
|
||
or ipxsetup. If you want to try it, rename zdoomdos.exe to whatever sersetup
|
||
or ipxsetup expects (it varies depending on which game they came with). BE
|
||
SURE TO RENAME THE ORIGINAL DOOM.EXE, DOOM2.EXE, HERETIC.EXE, OR HEXEN.EXE
|
||
TO SOMETHING ELSE BEFORE YOU DO THIS. Then launch a game using DM or some
|
||
similar program. Please note that due to the size of the network packets
|
||
used during game startup, you may experience access violations with the DOS
|
||
version.
|
||
|
||
6-2. Playing a network game the nice way
|
||
----------------------------------------
|
||
|
||
As of version 1.19, starting network games has been vastly simplified. The
|
||
old method is retained for compatibility (see the next section), but you
|
||
are encouraged to use this new method. Not only is the new method easier,
|
||
but it should work with IP masquerading, providing that only the machines
|
||
connect to the host use IP masquerading. What follows are Jeffrey Cuenco's
|
||
instructions for using them:
|
||
|
||
The syntax for these command-line parameters are as follows:
|
||
|
||
To start (host) a game you simply type:
|
||
|
||
zdoom -host <x>
|
||
|
||
where x is the number of players that are going to be in the game
|
||
(including yourself).
|
||
|
||
To join a game you simply type:
|
||
|
||
zdoom -join <host ip>
|
||
|
||
where host ip is the ip address of the "host" computer.
|
||
|
||
These functions simplify the netgame process by having one computer, the
|
||
"host," accept connection requests from other computers running ZDoom.
|
||
The host then sends back a response packet to the client, which contains
|
||
the client's console number. When the total number of hosts connected to
|
||
the host + the host itself equals the number of players specified in
|
||
"-host," then the host sends a packet to all the clients connected to the
|
||
host, containing the ip addresses of all the other computers connected to
|
||
the host excluding the ip of the host itself and your ip (which you already
|
||
have). When each client receives this "all here" packet, then it stores
|
||
each address under a different index in the array that holds all the
|
||
addresses of the client computers you're playing against. After each
|
||
client successfully receives the "all here" packet and has already sent
|
||
ACKs (acknowledgement packets) to the host, then the host sends a "Go"
|
||
packet to all clients stating that it's ok to start the netgame. What
|
||
follows this is the normal activity that you've already seen after you
|
||
execute "-net ..."
|
||
|
||
6-3. Playing a network game the old way
|
||
---------------------------------------
|
||
|
||
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 192.168.0.1 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-4. 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!
|
||
|
||
6-5. 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
|
||
http://www.microsoft.com/windows95/downloads/contents/wurecommended/s_wunetworking/dun13win95/default.asp
|
||
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. Known Bugs
|
||
=============
|
||
|
||
* 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.
|
||
|
||
|
||
8. Acknowledgments
|
||
==================
|
||
(in no particular order)
|
||
|
||
id Software / These are the people who developed Doom and later released
|
||
John the source code for the Linux port. Without them, there
|
||
Carmack would be no ZDoom. I have also used some of the functions
|
||
from their Quake2 game DLL source.
|
||
|
||
Bernd Packaged up id's Linux code for the initial source release.
|
||
Kreimeier
|
||
|
||
Raven Portions of Heretic and Hexen were used in ZDoom.
|
||
Software
|
||
|
||
Chi Hoang Responsible in one way or another for BOOM. It provided a
|
||
Team TNT significant codebase for ZDoom. Information about BOOM can
|
||
be found at the Team TNT website:
|
||
http://www.teamtnt.com/boompubl/ixboom.htm
|
||
|
||
Lee Killough For all his brilliant work on both BOOM and later MBF.
|
||
Portions of MBF were used in ZDoom, primarily to fix BOOM
|
||
bugs.
|
||
|
||
Yoghurt Creator of the Cajun Bot. http://www.doomworld.com/doombot/
|
||
|
||
Sebastien Created qmus2mid which I used to determine the structure of
|
||
Bacquet DOOM's MUS lumps so that the game would have music.
|
||
|
||
Andy Bay Original input code is from his (discontinued) ATB Doom port.
|
||
|
||
Peterri Original 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/.
|
||
|
||
Glenn "Gaffer" Developed the Prometheus Truecolor library. OpenPTC was used
|
||
Fiedler for the latest version of ZDoom, and older versions of PTC
|
||
were used for older versions of ZDoom. Its homepage is at
|
||
http://www.gaffer.org/ptc/.
|
||
|
||
Markus Wrote the miniLZO library, which ZDoom uses for data
|
||
F.X.J. compression. Its webpage is at
|
||
Oberhummer http://wildsau.idv.uni-linz.ac.at/mfx/lzo.html
|
||
|
||
Greg Lewis Released his DeHackEd source, without which adding
|
||
DeHackEd support would have been much harder.
|
||
|