The Doomsday Engine FAQ

The FAQ for Doomsday, jDoom, jHeretic & jHexen.

http://www.doomsdayhq.com/

http://deng.sourceforge.net/

Version 1.03

24th November 2003


Contents

Contents. 2

1     Introduction. 8

1.1      What is Doomsday?. 8

1.2      About this FAQ. 8

1.3      Doomsday’s Features. 8

1.3.1      Graphics. 8

1.3.2      Sound. 9

1.3.3      Networking. 9

1.3.4      Other 9

1.4      What are jDoom, jHeretic and jHexen?. 10

1.5      Getting Started. 10

1.6      Getting Help. 11

1.6.1      Technical Forum Link. 11

1.6.2      Doomsday.out 11

1.7      Doomsday Documentation. 11

1.8      Where can I get Doomsday (and game.dlls)?. 12

1.9      What are Doomsday 'Snapshots'?. 12

1.10       Where can I get a reference for Doomsday’s extended features?  12

1.11       Where can I get a Doomsday Map extensions reference?. 13

1.12       Where can I get further help, downloads and discuss Doomsday?  13

1.13       What are the NewDoom Community Forums?. 13

1.13.1       Further information about NewDoom.. 13

1.14       Can I help with Doomsday?. 14

2     Launching Doomsday. 15

2.1      What is Kickstart?. 15

2.2      How can I play without KickStart?. 15

2.3      What is the -allowsoftware option?. 15

2.4      Why does it take several minutes for the models to load?. 15

2.5      Why won’t Doomsday start?. 16

3     Gameplay Issues. 17

3.1      What Game Modes are available. 17

3.2      Do the old cheat codes still work?. 18

3.3      Why does pressing/clicking Forward twice open doors?. 18

3.4      Why doesn't jumping work?. 18

3.5      Can I customise my game?. 18

3.5.1      How can I get a list of how many enemies killed, secrets found and items collected?. 18

4     Network Games. 19

4.1      Introduction to Network Gaming. 19

4.1.1      How do I play over the Internet?. 19

4.1.2      Which (TCP/IP) ports are used?. 20

4.1.3      Which Computer should be the server?. 21

4.2      Network Gaming - Using the GUI 21

4.3      Network Gaming - Using the console. 21

4.4      CLIENT MODE: 22

4.5      "NET" CONSOLE COMMAND. 22

4.5.1      Net init (service) 22

4.5.2      Net shutdown. 23

4.5.3      Net info. 23

4.5.4      Net modems. 23

4.5.5      Net tcpip address (addr) 23

4.5.6      Net tcpip port (num) 23

4.5.7      Net modem (num) 23

4.5.8      Net modem phone (num) 23

4.5.9      Net serial com (num) 24

4.5.10       Net serial baud (setting) 24

4.5.11       Net serial stop (setting) 24

4.5.12       Net serial parity (setting) 24

4.5.13       Net serial flow (setting) 24

4.5.14       Net search. 24

4.5.15       Net connect (server number) 25

4.5.16       Net servers. 25

4.5.17       Net mconnect (server number received from master) 25

4.5.18       Net players. 25

4.5.19       Net disconnect 25

4.5.20       Net server start 25

4.6      How do I automatically cycle through maps?. 25

4.7      Remote access to server 26

4.7.1      How to kick clients out of a game. 27

4.8      Using DMaster 27

5     Graphics. 28

5.1      Textures. 28

5.1.1      How do I disable High-Resolution textures?. 29

5.1.2      Where Can I get High-Resolution Textures From?. 29

5.2      What are Doomsday Graphic Patches?. 29

5.2.1      Where can I get Patch replacement graphics?. 30

5.2.2      Can I use patches with the same name for different games?  30

5.3      What are Sprite Frames?. 30

5.4      How can I make my own Sprites for Doom?. 31

5.5      What are Raw Screens?. 31

5.6      Light Maps. 31

5.7      What are Detail Textures?. 32

5.7.1      Where can I get Detail textures?. 32

5.8      How can I use 3D models instead of sprites?. 32

5.9      How can I get new effects like Blood, Particles and shiny skins?  33

5.9.1      Some extra packs. 33

5.10       How can I alter the lens flares appearance?. 33

5.11       How can I adjust contrast/gamma/etc.?. 34

5.12       How do I change the color depth?. 35

5.13       How do I uncap the frame rate in Doomsday?. 35

5.14       What is the best Field of View (FOV) setting for my monitor?  35

5.15       How do I take screenshots?. 35

6     Sound and Music. 36

6.1      How do I Use External Music (MP3, CD etc…)?. 36

6.1.1      Adding Music: Step 1. 36

6.1.2      Adding Music Step 2. 36

6.1.3      Adding Music Step 3. 37

6.2      How can I change the original Sound effects?. 37

7     WAD Files, PK3 Files, Mods and Resource Files. 38

7.1      What Are WAD/IWAD Files?. 38

7.2      Where can I get DOOM2.WAD or other official IWADs?. 38

7.3      Definitions and Files in WADs. 38

7.4      How can I open/edit WAD files?. 39

7.5      Automatic Loading of Data and Definitions. 39

7.6      What Are PK3 Files?. 39

7.7      Can I edit/add to/extract/view the contents of a PK3?. 39

7.8      Resource Files. 40

7.9      What are TC’s?. 40

7.10       Can I play Aliens TC?. 41

7.11       Can I play custom WADs?  WADs And Mods. 41

7.12       Can I play Deathkings with jHexen? How?. 41

7.13       How can I change the IWAD used?. 42

7.14       Can you add (favourite feature) to Doomsday?. 42

7.15       Can I customise my game myself?. 42

7.16       Can I use ‘Dehacked’ (DEH) Patches?. 42

8     The Console. 43

8.1      How do I use the console?. 43

8.2      Why is the console text unreadable when I use OpenGL?. 43

8.3      Can I change the menu background?. 43

9     Know Issues, Problems and Errors. 44

9.1      Where can I view a list of reported bugs?. 44

9.2      Network Problems. 44

9.2.1      What is Connection Refused / "Duplicate ID" 44

9.2.2      Client returns to main menu when connecting to server. 44

9.2.3      Clients can't find the server (TCP/IP). 44

9.2.4      Clients experience ‘warping’. 44

9.2.5      Gameplay is very lagged. 45

9.2.6      Wrong flat textures on clientside. 45

9.3      Graphics Problems. 45

9.3.1      What do the DirectX errors when using Direct3D mean?. 45

9.3.2      What can I do to get a Voodoo2 working?. 45

9.3.3      Why does Doomsday run so slow (under 1 FPS) 45

9.3.4      Why do rooms with lots of light slow the game down?. 46

9.3.5      Why do lens flares slow down the game immensely! 46

9.3.6      The gamma levels are too bright/dark (D3D). 46

9.3.7      Gamma Problems. 46

9.3.8      Why is the player sprite visible when looking down?. 46

9.3.9      Why are some of the textures missing?. 46

9.3.10       Hi-res textures are unused with pwads that have textures. 46

9.3.11       Why do the screen borders flicker when I size down?. 47

9.3.12       Some textures (water and the portals especially) aren’t shown, leaving flat white areas. 47

9.3.13       Wrong flat textures on clientside. 47

9.3.14       Multiple Overlapping Items. 47

9.3.15       Why do I have strange problems with textures?. 47

9.4      Sound Problems. 48

9.4.1      Why do the sound effects echo/repeat distractingly?. 48

9.4.2      FMOD Problems. 48

9.5      Other Known Issues. 48

9.5.1      The game crashes often or there are strange lockups. 48

9.5.2      Why does it say "PNAMES not found"?. 48

9.5.3      Why does it say "STTMINUS (or M_NMARE etc.) not found"?  49

9.5.4      What does “R_InitTextures: Missing patch in texture…” mean?  49

9.5.5      Why don’t some Wads work with jDoom?. 49

9.5.6      jDoom: lost souls spawned inside walls/ outside map. 49

9.5.7      jDoom: Some enemies Revived by Archvile are invulnerable  49

9.5.8      jHexen: Problem replacing Yorick's Skull 49

9.5.9      jHexen: Cannot progress shortly after going through Axe Key Door 49

10       Miscellaneous. 51

10.1       How about a Duke Nukem 3D port?. 51

10.2       How about a Strife port?. 51

10.3       How can I record movies (Doom Demos)?. 51

10.4       Can I convert demo movies into standard video formats?. 52

10.5       Why can't I play old (LMP) demos?. 52

10.6       Why does the game suffer from momentary pauses?. 53

10.7       Who has contributed to this FAQ?. 53

11       Acknowledgements and Thanks. 54

12       Appendix A -Command Line Options. 56

12.1       General options. 56

12.2       Configuration options. 57

12.3       DED options. 58

12.4       Multiplayer options. 58

12.4.1       Options for a server 58

12.4.2       Options for a client 59

12.5       Graphics options. 59

12.5.1       Textures. 60

12.5.2       OpenGL renderer 61

12.5.3       Direct3D renderer 62

12.6       Sound options. 63

12.7       Plugin options. 64

12.7.1       DeHackEd reader 64

12.8       Development options. 64

Appendix A – Console Commands. 66

Appendix B – Console Variables (cvars). 71

1         Introduction

1.1      What is Doomsday?

The Doomsday Engine is an enhanced and extended Win32 version of the DOOM engine. It was originally based on the Hexen source code but parts of it have later been completely rewritten. Doomsday is only an engine:

You will also need a Game DLL. Three such DLLs are being developed alongside the engine: jDoom, jHeretic and jHexen.

Doomsday is a direct descendant of JHexen. The first version of JHexen was released in October 1999. The first version of Doomsday was released in February 2000.

The engine, jDoom, jHeretic and jHexen are being developed by Jaakko Keränen. Of late, an increasing number of people have been involved in the project (see Acknowledgements).

Doomsday is based at http://www.doomsdayhq.com.

1.2      About this FAQ

This FAQ is a compilation of materials by Skyjake (Jaakko Keränen) and others (see acknowledgements)

Information about concepts, options and how to’s are under their respective headings – for information about errors and solutions to problems go to section 9 - Know Issues, Problems and Errors.

1.3      Doomsday’s Features

1.3.1      Graphics

1.3.2      Sound

1.3.3      Networking

1.3.4      Other

1.4      What are jDoom, jHeretic and jHexen?

As mentioned above; jDoom, jHeretic and jHexen are Game DLLs for the Doomsday Engine. These are developed by Jaakko Keränen alongside Doomsday and allow the original games to be played via the Doomsday engines features.

1.5      Getting Started

What you need to get started:

Please note that if you wish to use Kickstart (the Doomsday launcher) you will need to use a directory path that conforms to DOS standards (i.e. no spaces, 8 characters or less for each individual folder name for example c:\games\Doomsday is fine but c:\program files\games\doomsday will cause kickstart to fail)

For example Doom2.WAD should go into data\jdoom within your Doomsday install folder, whereas Hexen.WAD should go into data\jHexen within the installation folder.

You can use Kickstart to automatically run GLBSP.

To use GLBSP manually (located in your main doomsday install folder), simply use windows explorer and drag and drop the IWAD onto the GLBSP program – the program will the create a data file (with the same name as the IWAD with the extension .gwa) in the same location as the dragged IWAD (so if the IWAD was in the location described above the data file also now in the correct place).

1.6      Popular Doomsday Downloads

Here is a brief list of popular addon packs for the Doomsday user, this is an incomplete list and further details on these and other packs are available later in this guide. You may obtain these files and others from: Doomsday HQ, the NewDoom Forums, the Model Yard, fallen man’s links page (see Modelyard) and Slidespace.

1.6.1      jDoom

jDRP – jDoom Resource Pack

jDTP – jDoom Texture Pack

Abbs Alternate Model’s Pack

Detail Textures Pack

jDUI – jDoom User Interface pack

jDEP – jDoom Environment Pack

1.6.2      jHeretic

jHRP – jHeretic Resource Pack

jHUI – jHeretic User Interface pack

1.6.3      jHexen

jXRP – jHexen Resource Pack

1.7      Getting Help

This guide and the documents within the Doomsday Docs folder should be your first stop but the Doomsday Technical Forums are available for new problems that may occur. Please look at the next few sections for details:

1.7.1      Technical Forum Link

http://forums.newdoom.com/forumdisplay.php?s=&forumid=44

When asking for help you may need to supply further information such as OS (Windows 2000/XP/Longhorn etc…), hardware and driver information.

1.7.2      Doomsday.out

You may be asked to supply the Doomsday.out file. This file is a log of what the Doomsday engine was doing as it ran – it will log errors warning and other information. If Doomsday fails it will attempt to show you the file in order for you to see what went wrong, if Doomsday crashes (i.e. you get the Windows debug report dialog) you will not get this, however the file will still be available from this folder within your Doomsday installation directory:

For jDoom: run\jDoom\doomsday.out

For jHeretic: run\jDoom\doomsday.out

For jHexen: run\jDoom\doomsday.out

For example if your installtin folder is c:\program files\doomsday the doomsday.out file for jDoom would be in this folder:

c:\program files\doomsday\run\jDoom\doomsday.out

1.8      Doomsday Documentation

Additional documentation is available in the Doc\ folder within the Doomsday installation folder and from the main Doomsday Website (http://www.doomsdayhq.com).

Beginner.txt

A Beginner's Guide to Doomsday. Installation instructions and basic usage information for a first-time user.

CmdLine.txt

Doomsday command line options. A quick reference listing all the command line options recognized by Doomsday, with a short explanation for each.

DEDDoc.txt

Doomsday Engine Definition reference. An in-depth look into the syntax and uses of DED files.

InFine.txt

InFine scripts reference. InFine scripts are used to define interludes and finale animations.

DHistory.txt

Doomsday version history.

DSS.txt

Doomsday directory structure standard. Mod-makers and other developers are encouraged to follow the structure described here.

Network.txt

Multiplayer games with Doomsday. Some details about network games running on Doomsday.

Example.bat

Example batch file for launching.

1.9      Where can I get Doomsday (and game.dlls)?

An up-to-date version history of the Doomsday engine (including jDoom, jHeretic and jHexen) are available at:

http://www.doomsdayhq.com/changes.php

1.10What are Doomsday 'Snapshots'?

Doomsday snapshots are beta release (unfinished / incomplete / untested) versions of the main Doomsday binaries (executable files). While snapshots often include bug fixes and new features they can by there nature introduce new errors and issues. It is recommended that only expert users make use of snapshots unless you have a specific issue that is resolved by a snapshot release.

1.11Where can I get a reference for Doomsday’s extended features?

Up-to-date documentation is always available at http://www.doomsdayhq.com/

Map Makers also see 1.7

1.12Where can I get a Doomsday Map extensions reference?

The Extended General Line And Sector Type Reference (XGRef) can be downloaded from:

http://iki.fi/code/files/XGRef.pdf

1.13Where can I get further help, downloads and discuss Doomsday?

Go to the forums on New Doom (http://forums.newdoom.com) the actual Doomsday thread is located here:

http://forums.newdoom.com/forumdisplay.php?s=&forumid=12

1.14What are the NewDoom Community Forums?

The forums at NewDoom cover a variety of subjects around the Doom franchise including the Doomsday Engine.

Located here: http://forums.newdoom.com/forumdisplay.php?s=&forumid=12

You will need to register (for free) before you can post messages to the forum

The forums are divided into several sections:

Doomsday is fortunate to have a large and interested community which is constantly producing new add-ons and levels for the Doomsday project, please remember to be polite and check that you posting in the appropriate place. Also please remember to search the forums before asking questions.

1.14.1 Further information about NewDoom Forums

You may have a custom Avatar (thumbnail image under your name) and slogan (a little bit of text beneath your name) but only after posting 60 messages (for avatar) and 60 days (custom text). Don’t spam the forums just to get your 60 posts as you’ll only end up banned by the forum’s administrators.

1.15Can I help with Doomsday?

Of course you can; if you look round the forums you’ll find that many people help with new graphics, sounds, gameplay mods and even new levels. There are plenty of guides available.

If you want to help with the main Doomsday source first check Doomsday on sourceforge where the entire CVS tree is available for download so you can see what your getting into (if you don’t know what CVS is you are probably out of your depth and might want to get some more experience before diving in).

Look at the: WAD Files, PK3 Files, Mods and Resource Files section for more help on enhancing to Doomsday.

2         Launching Doomsday

2.1      What is Kickstart?

Kickstart is a frontend for Doomsday written in Pascal, it is part of the Doomsday download package.

Important – Kickstart Does not support long filenames (for example c:\program files\games\Doomsday to use it you must place it within a MS-DOS safe folder name i.e. C:\Games\doomsday).

2.2      How can I play without KickStart?

Advanced users may find Kickstart somewhat limiting so can use the command line options to customise their game (in fact kickstart merely automates this procedure by compiling the command line for you – is possible to extract the correct settings from kickstart configuration files in order to base your custom settings on).

For example, use the following batch file (Run\jDoom\Play.bat, all of this on one line):

@..\..\Bin\Doomsday -game ..\..\Bin\jDoom.dll -gl ..\..\Bin\drOpenGL.dll -file your-wad-file -basedir ..\.. %1 %2 %3 %4 %5 %6 %7 %8 %9

2.3      What is the -allowsoftware option?

You need a video card that supports hardware accelerated 3D rendering. Most modern cards do. If Doomsday gives you an error message saying that "the driver is not accelerated, use -allowsoftware" there are two things that might be wrong:

There's no fix for case one, except to use the -allowsoftware command line option, which enables Doomsday to run (very slowly) in software rendering mode. In the second case, you can either try to update your OpenGL drivers or try the Direct3D renderer instead.

2.4      Why does it take several minutes for the models to load?

Thanks to M. G. Troyas 

The reason might be that Norton Antivirus (or some other antivirus program, but probably NAV) is running in the background and scans the opened files, slowing everything down. Disabling the antivirus program makes things work at normal speed.

Other things you can do to alleviate this problem include using Disk defragmenter, and ensuring you have sufficient RAM.

2.5      Why won’t Doomsday start?

Unfortunately like many games there are a number of reasons why Doomsday won’t start – Here is a general troubleshooting list. For more specific help check Section 9 (Problems and Issues)’

3         Gameplay Issues

3.1      What Game Modes are available

One Game DLL, such as jDoom, is able to run in many different modes. Each mode emulates a specific version of the original game and typically has its own IWAD file. In some cases two modes can have a resource with the same name. This is a problem if the same resource file can't be used by both modes.

The resource class directory can have a subdirectory for each game mode. When Doomsday looks for an external resource, it first checks the current game mode's subdirectory. If no suitable resource is found there, the class directory is searched instead.

Below is a list of all the game modes supported by jDoom, jHeretic and jHexen.

Game

Mode

Description

jDoom

doom1-share

Shareware Doom

 

doom1

Registered Doom

 

doom1-ultimate   

Ultimate Doom (has a 4th episode)

 

doom2

Doom 2

 

doom2-plut        

Final Doom: Plutonia Experiment

 

doom2-tnt         

Final Doom: TNT Evilution

jHeretic   

heretic-share

Shareware Heretic

 

heretic

Registered Heretic

 

heretic-ext

Heretic: Shadow of the Serpent Riders (has episodes 4, 5)

jHexen

hexen

Hexen

 

hexen-dk

Hexen: Death Kings of Dark Citadel

 

hexen-demo        

The 4-level Hexen Demo

For example, textures meant only for Final Doom: Plutonia Experiment would be placed in the directory Data\jDoom\Textures\doom2-plut\.

3.2      Do the old cheat codes still work?

Yes, but only the way they did in the original Doom. The console commands that correspond to the cheat codes are different, for example the "warp" command has the functionality of IDCLEV.

3.3      Why does pressing/clicking Forward twice open doors?

Pressing or clicking the Forward or Strafe key two times in a rapid succession simulates a press of the Use key. The cvar ctl-use-dclick controls this behaviour. Setting it to zero will disable the feature.

3.4      Why doesn't jumping work?

After you've created a Jump binding in the Controls menu you'll also need to enable jumping on the whole. This can be done in the Gameplay & HUD Options menu (starting from version 1.01) or by setting the console variable AllowJump to one

3.5      Can I customise my game?

You can customise almost every element of Doomsday based games (i.e. jDoom) via DED files. For more information on customisation look at the DED documentation within the Docs folder of your installation directory.

Also look on the Doomsday HQ forum on NewDoom.com for lots of customised modifications for all Doomsday Games.

3.5.1      How can I get a list of how many enemies killed, secrets found and items collected?

Simply type:

map-cheat-counter 63

for all the above at the console or for hust number of kills type:

map-cheat-counter 1

4         Network Games

4.1      Introduction to Network Gaming

Using DirectPlay, the Doomsday engine is capable of multiplayer games over the Internet, a local area network (LAN), a modem or a serial link. This document describes how to use the Server and Client setup screens and the "net" console command, which can also be used to setup and configure network games.

Please make sure your DirectX drivers are recent enough (at least version 6.0).

4.1.1      How do I play over the Internet?

jDoom networking doesn't yet work very well over the Internet. It's not even worth a try unless you know the connection will have <500ms ping and can sustain a reliable transfer rate of at least 3 kB/s.

Use the TCP/IP protocol, port number zero. This'll let DirectPlay decide the ports to use. If a firewall is being used, the port number can be used to set a specific port for all traffic. The port must be the same for both the server and the client.

Clients must know the server's IP address. The Windows utility winipcfg can be used to find it out (run it on the computer that will be the server).

Start the server using the Multiplayer menu.

The clients will need to type the server's IP address to the TCP/IP Address box before they can click the Search button. After a moment the server should appear in the Located Servers list. The client can then click the Connect button, after which the game begins.

When the game is running, the Multiplayer menu can be used to disconnect or change the game setup (map, skill, etc.).

Up to 16 players are supported.

Useful console commands: net info, ping.

Useful console variables:

net_FrameInterval sets the number of tics between frames sent from the server to the clients. Can be used to reduce the bandwidth requirement, but makes gameplay choppier for clients. Only for the server.

PredictTics sets the maximum number of clock ticks (35 Hz) for the client to predict ahead if the frame from the server doesn't arrive in time. Best set to a big value like 35 (predicts one second).

net_SkewDampen controls client time skew. Time skew means that the client tries to interpolate the frames arriving from the server so that they be will shown at the right time. The purpose of this is to eliminate the cases where the frames from the server get delayed from some reason and then arrive too late. The best value depends on the latency variance of the connection. If the latency doesn't change at all, a small value like 4 should do well.

net_ShowSkew is used to enable or disable the displaying of the time skew in the console.

net_StressMargin controls the sensitivity with which the server reacts to excess or missing ticcmds from a client. A good value should be around 10. Set to a small value like zero to one if too many commands are being buffered (clients lag for no apparent reason).

net_Dev shows some network debug info on-screen (for server only). The first line, G<number>, is the game time. For each client a following line is printed:

<client#>:<time dif.>[<lag stress>](<# of buf.cmds>/<client run time>)

Time dif. is the difference between current server time and the time of the most recent command received from the client. Positive lag stress means the client is missing cmds, negative stress means there are too many commands. # of buf.cmds is the number of commands in the buffer waiting to be executed. Client run time is the time of the command that was last executed.

Setting net_Latencies to one will show the same info in the console.

4.1.2      Which (TCP/IP) ports are used?

From DirectX 6.0 documentation:

[When you have set Doomsday's TCP/IP port to zero] The TCP/IP service provider uses port 47624 to send and receive enumeration requests. Communications are sent on the port range 2300-2400. To work through a firewall, all computers must be using DirectPlay 6.0 (or newer) and the ports 47624, and the range 2300-2400 must be open for both inbound and outbound TCP and UDP traffic. Note: DirectPlay starts assigning ports at 2300 and works its way up, sequentially. It is possible to open a smaller range starting at 2300.

If an application selects a specific port to use, all communication is sent through that port, and it is only necessary to open that one port (for both inbound and outbound using TCP and UDP).

4.1.3      Which Computer should be the server?

Ideally the machine with the fastest processor and connection should be the server

4.1.4      What is Dedicated Server mode?

When a computer is in this mode it not only acts as a host to clients but will not be actually playable as a client itself. No graphics or sound engine will be loaded and as such the efficiency of the server will increase.

4.2      Network Gaming - Using the GUI

The graphical user interface provided by Doomsday offers a simple way to host and join multiplayer games. It can usually be accessed via the "Multiplayer" menu.

Use of the setup screens should be self-explanatory.

With TCP/IP, use port number zero. If you're behind a firewall, open a port of your choice and set its number in the TCP/IP protocol setup screen. Don't use the same port number that's used by the server you will be connecting to, or the master server's port number (10123).

4.3      Network Gaming - Using the console

4.3.1      Operating a Non-Dedicated Server from the console

  1. Configure the server by setting proper values for the console variables "server-name", "server-info", "server-game-map", "server-game-episode", "server-game-skill" etc.
  2. Initialize the service provider, i.e. the network protocol. First set the service provider's configuration variables, for example TCP/IP's "net-ip-port". Then give the network initialization command, for instance "net init tcpip".
  3. Start the server with the command "net server start".
  4. Use the command "setmap" to change the level at any time. "setcolor" will change your player color. I'll let you guess what "setname" does.
  5. The command "net server close" will shut down the server and disconnect all clients.

4.3.2      Operating dedicated servers from the console

You start a dedicated server by using the "-dedicated" command-line option (more information about command line options in CmdLine.txt).

The game begins but all you'll see is a text mode representation of the console. You can now start the server exactly like a non-dedicated one, but you don't have to worry about your name and player color because the server naturally hasn't got a player when running in dedicated mode. You can place the init commands in autoexec.cfg for convenience.

Note: Player limit is 15 on dedicated servers.

4.3.3      Connecting as a client from the console

Connecting to a server as a client is quite straightforward. Before doing anything it's a good idea to make sure your player name and color are what you want them to be. You can use the commands "setname" and "setcolor" even when off-line.

Notice that you can use your player number as a color if you do "setcolor 4" (both Doom and Heretic have four player colors: 0-3).

Hexen has eight colors, so you'll need to use "setcolor 8". This means your color will be chosen automatically following the same logic as in the original Doom, Heretic and Hexen.

1. Set the protocol's configuration variables, for example "net-ip-address" and "net-ip-port" with the TCP/IP protocol.

TCP/IP notes: the port should be zero if you're not behind a firewall, or some specific port of your choice (you'll need to open it) if you are behind a firewall. You can't use the same port number as the server, neither can you use the master server's port number 10123.

2. Initialize the protocol with the "net init (service)" command.

3. Issue the command "net search" as many times as it takes to see the server you're looking for (usually two times).

4. "net connect (server number)" will connect you to the server.

5. "net disconnect" will disconnect you.

4.4      "NET" CONSOLE COMMAND

4.4.1      Net init (service)

(service) is one of: tcpip (or tcp/ip), ipx, modem or serial.

Initializes the network driver for use with the specified service provider. This command must be given before any of the other network commands. To make things easier, you could for example place a "net init ipx" in your autoexec.cfg so the IPX network driver is automatically initialized when the Doomsday engine is started.

If you want to change the service provider at runtime, you must first use "net shutdown" and then initialize the provider you want.

4.4.2      Net shutdown

Shuts down the current network driver. You don't have to use this command unless you mean to change the service provider at runtime.

4.4.3      Net info

Displays the current network settings along with some debug information.

4.4.4      Net modems

If the Modem service provider is in use, this command displays a list of available modems. Use "net modem (num)" to select one from the list.

4.4.5      Net tcpip address (addr)

Before you can connect to a server using TCP/IP, you need to specify the server's IP address. For example: "net tcp/ip address 127.0.0.1". The program winipcfg can be used to find out your own IP address, if your computer is going to be a server (winipcfg supposedly comes with Windows). If the IP address of the server you frequently connect to doesn't change, it's good to place this command into autoexec.cfg.

4.4.6      Net tcpip port (num)

If necessary, this command can be used to set the port to use when connecting. Leave to zero if you know nothing about TCP/IP ports.

4.4.7      Net modem (num)

Selects the active modem from the list displayed by "net modems".

You only need to issue this command if you're using the Modem service provider.

4.4.8      Net modem phone (num)

Sets the phone number to dial to if connecting to a server using

the Modem service provider. You must set the phone number before

using the command "net servers".

4.4.9      Net serial com (num)

Sets the COM port to use with the Serial Link service provider. Notice that usually this is the only config command you need to give with the Serial Link service. The other settings are given reasonable defaults when the service is initialized.

4.4.10 Net serial baud (setting)

 (setting) is one of: 110, 300, 600, 1200, 2400, 4800, 9600, 14400,

19200, 38400, 56000, 57600, 115200, 128000, 256000.

4.4.11 Net serial stop (setting)

 (setting) is 0-2:

0 = one stop bit

1 = 1.5 stop bits

2 = 2 stop bits

4.4.12 Net serial parity (setting)

(setting) is 0-3:

0 = no

1 = odd

2 = even

3 = mark

4.4.13 Net serial flow (setting)

 (setting) is 0-4:

0 = no flow control

1 = software flow control (xon/xoff)

2 = hardware flow control with RTS

3 = hardware flow control with DTR

4 = hardware flow control with RTS and DTR

4.4.14 Net search

If you want to connect to a server and you have configured your service provider with the necessary commands listed above, this command lists all the servers that can be found. Unless you're using the IPX service provider, there will be a slight delay before this command gives you the server list because DirectPlay has to first make the actual connection between the computers. It's best to keep repeating this command until you see the server you want.

4.4.15 Net connect (server number)

Connects to the specified server. Only works after "net search" shows the number of the server (usually zero).

4.4.16 Net servers

Connects to the master server and retrieves a list of running servers. You must set the console variable "net-master-address" before you can use this command. "net-master-port" should be zero, or a port of your choice (not 10123) if you're behind a firewall.

SailorSat's master server IP: 137.226.156.135

4.4.17 Net mconnect (server number received from master)

This command connects to the specified server. Only works after "net servers" has successfully ended and the list of servers has been printed in the console.

4.4.18 Net players

When issued on the server, this command displays a list of all the connected players. For clients this command just displays the name of the server player and the client's own name.

4.4.19 Net disconnect

Disconnects from the server you're currently connected to. Automatically done when you return to the operating system. You will naturally have to disconnect from a server if you want to connect to another one.

4.4.20 Net server start

If you want your computer to be a server, use this command after initializing the network driver. It will start the game so other players will be able to join.

The server is responsible for choosing the game specific multiplayer settings, such as the map to play in. The server is able to change the current map with the console command "setmap". net server close

Stops the current game and disconnects all connected players.

4.5      How do I automatically cycle through maps?

Servers can set up a sequence of maps to cycle through automatically. This is done by defining the cycling rules with the console variable "server-game-mapcycle" and then, after starting the server, issuing the command "startcycle". The command "endcycle" ends map rotation.

Note: You must enclose a string in quotes if it contains spaces.

For example:

> server-game-mapcycle "F:10 22 23"

The cycling rules have a very simple format:

(rule)[,(rule)] (map) [(map) [...] ] [(rule) ... ]

(Brackets [ and ] enclose optional parts here.) (rule) can be either "Frags:X" or "Time:X", where X is either the maximum number of frags or maximum amount of time in minutes. The words "Frags" and "Time" can be abbreviated down to one letter. The comma between rules can be replaced with a semicolon, a plus character, a forward slash or a backslash. Map numbers always consist of two digits. Either or both digits of a map number can be replaced with an asterisk (*), which makes the server replace it with a random number.

It's not that difficult, really. Take a look at the examples:

"F:10 11 12 13 14 2* T:15,F:5 37"

The cycle consists of maps E1M1, E1M2, E1M3, E1M4, a random map from the second episode and E3M7 (assuming this is not Hexen or Doom II). For the first five maps the rule for changing the map is a maximum of 10 frags. The last map (E3M7) will end when either 15

minutes has passed or someone gets 5 frags.  "Frag:5 **  25  24  23 Tim:1 11"

The cycle consists of a completely random map, E2M5, E2M4, E2M3 and E1M1. The first four maps will end when someone gets 5 frags. The last map (E1M1) ends after one minute of gameplay. The extra spaces between the map numbers are ignored.

4.6      Remote access to server

Clients are able to create a remote connection to the server's console. The server can set a password with the console variable "server-password".

When a client issues the "login" console command, a remote connection is started. If the server has a password, it must be given to "login" as an argument, for instance "login foobar". After logging in any consequent commands are executed on the server's console. The remote connection can be terminated with the

"logout" command.

4.6.1      How to kick clients out of a game

Servers can use the console command "kick" to get rid of unwanted players. The number of the player to kick out is given as an argument, for instance "kick 2". Player numbers can be found out with the "net info" command.

4.7      Using DMaster

DMaster is a simple master server program that can be used to keep track of all the running Doomsday servers on the Internet. Clients can ask the master for a list of servers. Use the console variables "net-master-address" and "net-master-port" to define the

master server's IP address and TCP/UDP port. Port number zero is  DirectPlay's autodetection port, it should work under most conditions. Before starting a server, set the cvar "server-public" to one to allow the server to inform the master of its existance. After "net init (something)", clients can use the console command"net servers" to send a server list request to the master. The returned list of servers has indices, use "net mconnect (index)" to connect to one of the listed servers.

5         Graphics

5.1      Textures

Normal wall textures and flats can be replaced with TGA (Truevision Targa), PNG (Portable Network Graphics) or PCX (Zsoft Paintbrush) images. The engine currently supports these image formats:

Pixel size                 

PCX          

PNG

TGA

8-bit (paletted)*          

Yes

Yes

-

16-bit                     

-

-

Yes**

24-bit                     

-

Yes          

Yes**

32-bit (alpha channel)     

-

Yes

-

* = the palette does not have to match the palette of the game

** = TGAs must be type 2 (uncompressed, unmapped RGB)

Note- that 32-bit images are just 24-bit images with an additional 8 bits per pixel for the alpha channel. Contact Skyjake if you feel that it's necessary to add support for other formats.

The recommended format for high-resolution textures is paletted PNG. It is the easiest format in which to distribute the textures due to its small size. Since the palette doesn't have to be the same as the game's, it should be enough for many textures.

The high-resolution textures can be of any size. The engine will render them scaled so that they fit the size of the original texture. This means the aspect ratio of the new texture doesn't have to be the same as of the original texture. Note that the engine will have to resize all textures so that their dimensions are powers of two (e.g. 32, 64, 128, 256). This means TGA/PNG textures whose width and height are already powers of two can be loaded faster.

Color keying is done if the file name of the image ends in "-ck", for example brnbigc-ck.png. Both cyan (0,255,255) and purple (255,0,255) are used as keys. An alternative way to have transparency is to use an alpha channel. In it, white (255) means opaque and black (0) is fully transparent. All values in between can be used, too, for partly translucent pixels. When using an alpha channel, the "-ck" suffix is not needed.

To create a high-resolution texture for the wall texture STARTAN3 you'd place a TGA file named startan3.tga or a PNG file named startan3.png into the Textures directory. The file names of images that replace flats must begin with "flat-", e.g. to replace the flat FLOOR7_2 you'd need to have a TGA file flat-floor7_2.tga in the Textures directory. If there are both PNG and TGA versions of the same texture, the engine will use the PNG version.

NOTE- The file names of the high-resolution textures must match the *texture* names, not the names of the patches that make up the textures. For example: DOOR2_5 is a patch name, DOOR3 is the texture that uses DOOR2_5.

5.1.1      How do I disable High-Resolution textures?

To disable high-resolution textures use the command line option

"-nohightex". The option "-texdir" can be used to change the directory from which the textures are searched.

5.1.2      Where Can I get High-Resolution Textures From?

More texture-related resources are available at DoomsdayHQ:

    http://www.doomsdayhq.com/files.php?class=4&type=3

And look for the jDoom Texture Pack (jDTP) in the Resources forum within the Doomsday HQ forums here:

 http://forums.newdoom.com/showthread.php?s=&threadid=9832.

Links to other high-resolution texture sites:

    http://switch.to/doom2textures

    http://switch.to/heretictextures

    http://switch.to/hexentextures

5.2      What are Doomsday Graphic Patches?

Patches are images that are commonly used in game menus and intermission screens. Like textures, patches can be replaced with TGA, PNG or PCX images. The Patches resource class directory is searched using the lump names of the original patches. For example, to replace the Doom menu title, you would place the file m_doom.png to the Patches directory.

The original data lumps are required even if an external resource is found, because the original data includes information about offsets and the on-screen size of the patch. This means the image from the external resource can be of any arbitrary resolution: it will be scaled to match the original patch.

Currently external patch resources are not precached, which may cause slight delays when the patches are first loaded.

5.2.1      Where can I get Patch replacement graphics?

You can look around the forums and Fallen Mans links site (check the resources forum within the Doomsday HQ forums). Also you can download a rollup of common replacement graphics (HUD, Title screens, intermissions etc) b various people in the jDoom User Interface Pack (jDUI) check the Resources forum within the Doomsday HQ forums for more details.

5.2.2      Can I use patches with the same name for different games?

Some games (such as Doom 1 and Doom 2) use the same names for specific patches even though they are different in each game (a good example being Titlepic).

To combat this simply place external patches in a sub folder with the same name as the gamemode you are playing. For example for doom 1 you may place all your patches in the root Data\jDoom\patches folder whereas for Doom 2 you can place it’s unique patches in Data\jDoom\Patches\doom2. To find out the various Game modes available see section 3.1.

5.3      What are Sprite Frames?

Sprite frames are patches. They can be replaced with external resources just like all other patches (with the same rules for different game modes). The same restrictions apply, though: the dimensions of the external resource do not affect the actual size of the sprite frame. This means the external resources must really be *high-resolution* versions of the original images. Otherwise the size and/or aspect ratio will not be right for the resource.

For example, in order to replace the Doom medikit (lump name MEDIA0), one would place the file media0.png into the Patches directory.

Color-mapped versions of sprite frames can have external resources, too. To indicate that a resource is color-mapped, its name is formed like this:

    (patchName)-table(classNum)(tableNum).ext

(patchName) is the sprite frame lump name. (classNum) is the number of the color translation class. This number is always zero in jDoom and jHeretic. In jHexen, it's the player's class (0=Fighter, 1=Cleric, 2=Mage). tableNum is the index number of the color translation table. jDoom and jHeretic have 4 tables, jHexen has 8. For example: playa1-table01-ck.png would be the Doom player sprite frame A1 with color table 1. The -ck suffix makes the image color keyed (i.e. special colors indicate transparent pixels).

5.4      How can I make my own Sprites for Doom?

First get yourself a Wad editor (doesn't matter which check the WAD file section for more information on editors) and find the sprites you are trying to replace - extract them and open them in a graphics editor now resize the image to at least 4x (8x might be better) the original size keeping the aspect ratio (this should mean Doomsday won't distort your sprite frame when it's placed in engine).

Now make a note of the dimensions of the frame (width and height) and filename and make a new file (this is important for copyright reasons) and either draw the image from scratch. You may wish to take further positioning notes so that custom sprites will line up with the originals. Another method (that was used by id themselves) is to make or find a 3D model of the sprite and take pictures of it from different angles (and different states: attacking, dead etc…) and paste them in.

I'd recommend saving the files as 24bit pngs, but if you feel confident you can try saving space by using custom palettes with 8 bit images. You should already have the right filename because you used the original file for the aspect ratio. Now simply place them in your patches folder to replace the original just like any other patch.

5.5      What are Raw Screens?

Some background pictures are in the raw screen format, which is used to store 320 x 200 pixel paletted images. A lump containing a raw screen image (for example Heretic's TITLEPIC) is exactly 320 x 200 = 64000 bytes long. Raw screens can be replaced with external resources in the Patches directory.

5.6      Light Maps

Light maps are monochrome images that can be used with dynamic lights. The dimensions of a light map must be powers of two, for example 256 x 256. If the map contains an alpha channel, the actual color values are ignored; only the alpha values are significant. If the map doesn't have an alpha channel, one is generated by averaging the color values of the image.

Example: If you assign the light map "Round" to a light source, images with that file name are searched from the LightMaps directory. The accepted image formats are PCX, TGA and PNG. If Round.pcx, Round.tga or Round.png is found, it will be loaded.

5.7      What are Detail Textures?

Detail textures are grayscale images that are rendered on top of normal textures when walls and planes are viewed from close by. A signed-add blending is used, which lets the detail texture either darken or brighten the underlying texture: black => dark, gray => no change, white => bright.

Detail textures can be assigned to specific wall textures and flats using Detail definitions (Details.ded). The definition is described in the Doomsday Engine Definitions Reference (DEDDoc.txt).

Detail textures can be loaded from PCX images or raw image data. Either way, the image must be inside a WAD file or loaded using the "-file" option. When using the "-file" option to load detail textures, the file names of the images become lump names (see "-file" option).

PCX images used as detail textures must have a color depth of 8 bits and their width and height must be powers of two. The palette should be a grayscale one. It's possible to use other colors but the result can be weird due to the way the blending of detail textures is done.

If the source data is a raw image, it must be either 64x64, 128x128 or 256x256 pixels in size. Raw images contain only the pixel values, (one byte per pixel) and have only one color component per pixel (they're black and white images), which means the lump or file that contains the detail texture can either be 4096, 16384 or 65536 bytes long.

Using the default scaling, the pixels of detail textures are four times smaller than the pixels of regular textures.

The console variables rend-tex-detail, rend-tex-detail-far, rend-tex-detail-strength and rend-tex-detail-scale control the rendering of detail textures.

5.7.1      Where can I get Detail textures?

Check the main Doomsday HQ webpage under ‘Textures’ for a detailed textures pack.

5.8      How can I use 3D models instead of sprites?

See: How can I get new effects like Blood, Particles and shiny skins?

5.9      How can I get new effects like Blood, Particles and shiny skins?

For jDoom 3D models and other effects can be acquired from the jDRP (jDoom Resource Pack) available from http://modelyard.newdoom.com. After installing ensure you enable the 3D Models option in the Graphics Options menu by setting it to 'Yes'.

You can also get alternative model sets from the Doomsday HQ homepage (under models).

See the Doomsday forums for more on jHexen/jHeretic addons

5.9.1      Some extra packs

Place these packs (as they are – don’t try extracting the files- into your data\jDoom\auto folder)

For skyboxes and fog try the jDoom Environment Pack here:

ftp://jfiles@server1.thefourwinds.net/jdoom/slide/environmentpack.pk3.zip

For enhancing the original doom text, title screens, intermission screens and HUD graphics try the jDUI:

 ftp://jfiles@server1.thefourwinds.net/jdoom/slide/jdui/jdui.pk3.zip

You can customise the jDUI with your own favourite graphics from the web.

5.10How can I alter the lens flares appearance?

The console command flareconfig 0 tex 2 activates the flares that have rings (put that in autoexec.cfg for it to run automatically; remember that autoexec.cfg should be in your runtime directory Run\jDoom\). The default lens flares are activated with the command flareconfig 0 tex -1.

Add these lines in Defs\jDoom\User.ded if you want to make the health bonuses a bit brighter: (if User.ded doesn't exist, just create a new file)

Light { State = "BON1"; Size = 0.7; }

Copy Light { State = "BON1A"; }

Copy Light { State = "BON1B"; }

Copy Light { State = "BON1C"; }

Copy Light { State = "BON1D"; }

Copy Light { State = "BON1E"; }

See Doc\DEDDoc.txt to see what other things can be done with Light definitions.

5.11How can I adjust contrast/gamma/etc.?

Starting from Doomsday 1.5.5 it's possible to adjust gamma correction, display contrast and brightness using console variables. The requirement is that your display adapter supports hardware gamma ramps.

The console variables are:

vid-gamma

Gamma correction factor. 1.0 is the default, which results in no correction. Values greater than 1.0 increase display brightness. The smallest value you can use is 0.1.

vid-contrast

Display contrast. 1.0 is the normal contrast level. If you increase contrast it's a good idea to increase vid-bright as well.

vid-bright

Display brightness. 0.0 is the normal brightness. Positive values increase brightness, negative values decrease it. Good values are pretty small: if you for example set vid-contrast to 1.2 it might be good to set vid-bright to 0.1.

When using these variables make sure the software gamma correction is turned off: setgamma 0.

If your display adapter doesn't support hardware gamma ramps or you're using an old version of the engine, you might try the following:

The PLAYPAL lump consists of 14 palettes each 256 colors long. Doomsday only uses the first palette (the first 3*256 bytes) but it's best to operate on all of them.

Extract PLAYPAL to a file using the -dumplump option or a simple WAD extractor (Wintex for example).

Open the file with an image editor such as Paint Shop Pro or Adobe Photoshop as a raw image. I'm sure other programs support the raw format as well. You're most likely prompted for the format of the image (raw images are just pixel data): set width to 256 and height to 14 (as interleaved RGB). You should get a nice picture of the palettes, each row being a separate one.

Now tune the image with gamma correction, brightness, contrast, etc.

When you're finished, save the palette image back to the file and load it into the game.

You don't need to create a WAD file out of the modified palette lump, the engine can read single data lumps as well. You can use the -file command line option, or put the new palette file to your defaultWads in the .cfg file. You can also load the palette at runtime (with the "load" console command) but it won't necessarily have an effect everywhere that way. Certainly not before forcing a texture reload.

5.12How do I change the color depth?

Use the -bpp command-line option. Some versions of Windows 95 do not support color depth changes without restarting the computer, though (with the OpenGL renderer). In that case you must change the Windows desktop color depth.

5.13How do I uncap the frame rate in Doomsday?

Originally Doom based game ran at 35FPS (Frames Per Second), doomsday can smooth camera, and sprite and object movement: go to Graphics Options in the control panel and select ‘Smooth Camera Movement’, to smooth Actor movement go to Objects and enable ‘Smooth Actor Rotation’ and choose to smooth sprite and object  Movement, as required, from the ‘Smooth Actor Movement’.

5.14What is the best Field of View (FOV) setting for my monitor?

Most resolutions can use 90 Degrees to give a realistic view; because they are at the same aspect ratio, the most common exception to this is 1280x1024. At 1280x1024 the width, relatively, decreases by about 12 percent, so for this resolution the best FOV is 84.4 degrees.

5.15How do I take screenshots?

Screenshots can be taken with the console command "screenshot". You could for example bind it to F12: "bind f12 screenshot". A 24-bit Targa file will be written.

6         Sound and Music

6.1      How do I Use External Music (MP3, CD etc…)?

Doomsday can play various external music files using the FMOD library (http://www.fmod.org/). FMOD supports many music file formats including MP3, OGG, MOD and S3M (mods are a good choice due to their good quality/size ratio). External music files can be played at any time using the playext console command.

NOTE On some systems, using FMOD with Doomsday has caused lock-ups or       other unwanted behavior. If this appears to be the case for you, you should disable FMOD with the "-nofmod" option. However, this will also make it impossible to play external music files such as MP3s.

Like other external resources, placing a music file into the Music resource class directory is enough. The file name must match the lump name of the original music data lump. For example, to replace the music for Doom's first episode's second map, the file d_e1m2.mp3 would be placed in the Music directory.

It is also possible to store music files into a WAD. Again, you must name the lumps so that they match the lumps of the original songs, and are thus loaded instead of them. Any music files supported by FMOD can be loaded from a WAD.

Another way to specify an external resource file is to use the "Ext" key of a Music definition (in Audio.ded). An example of editing the definitions: You have a terrific song called song.mp3 and you'd like to hear it instead of Doom's regular "e1m2".

6.1.1      Adding Music: Step 1

The first thing to decide is whether you want to play the song from where it's currently located, or do you want to move it under the Doomsday directory. In the latter case it would be easy to distribute the song and its definition file to others, since they wouldn't have to worry about where the music file is. If you decide to move the song, create a directory under