How to play Doom2 over a
Local Area Network (LAN)





Doom2.exe has built-in networking code that will allow you to play Doom2 with up to 4 other people in the same game. Players can play either against one another, or as a team against the monsters.

Getting Doom2 to work this way is done in 3 steps. Step 1 is physically connecting the machines together in a Local Area Network. Step 2 is getting the machines talking the IPX protocol over that network. Step 3 is getting Doom2 to use the IPX network to run a network game.
 

Step 1: Physical Network Connections

Each PC needs a network card. Some machines come with network cards built in. If yours didn't, you will need to install one, and it should install like any other device (like a sound card or modem). If you have to buy one, I highly recommend getting one that does BOTH 10-base-2 and 10-base-T. You never know whose netparties you will be going to in the future, and you will want your machine to be compatible with both of these kinds of networks.

Once you have your network cards installed and have run the setup programs that came with them, and they seem to test okay except for the loopback test, you will want to set up the network itself.

There are two kinds of physical networks you can make:
 

10-base-2, or Coaxial: The least expensive of the two physical networks. This uses "RJ45 Coaxial" cables and various fittings to connect the PCs together. It is less expensive because it does not require a hub or other switching device. Each PC must have an Ethernet card that supports a 10-base-2 connections.

A 2-machine 10-base-2 network will consist of 2 network cards (which are installed in each machine, of course), two T-connectors (one is attached to each network card), one RJ45 coaxial cable that connects one terminal on each PC's T-connector to the other PC's, and two little doo-dads called terminators. Each T-connector has two terminals, and one terminator is plugged into each T-connector, on the terminal that the RJ-45 cable is not occupying. The diagram below shows the arraingement. All of these parts should be available at your local computer store, and should not cost too much:

To add a third machine to a network as shown above, one would need an additional network card for it, one T-connector, and one more cable. The machine and its T connector would conceptually be placed in between the two machines that have the terminators. The new machine's T connector would have both of the cables plugged into it (no terminator is needed on middle machines), and the machines on the left end and right end would retain one terminator each. You can string as many PCs as you want into the network like this, adding T connectors and cables, as long as you keep the two machines with the terminators as the very first and very last machines in the chain.
 
 

10-base-T: A basic 10-base-T network uses a switchbox-looking device called a hub, and each of the network cards is connected directly into the hub with an RJ45 Catagory-5 cable. Instead of being a chain of machines like the 10-base-2 example above, a 10-base-T network is shaped like a star, with the hub in the middle.

Cat-5 cables look like oversized telephone cables and their cost varies depending on where you buy them. Some people can make 10-base-T cables, this requires a spool of the cable itself, the correct connectors, tools, and documentation of the pinout for the cable. Small (8 port) hubs cost between $20 - $40. The added cost of the hub is what makes this kind of network more expensive than 10-base-2.
 
 

Step 2: Getting the IPX protocol up and running.

The cables, hubs, etc make up the means by which the computers can "hear" one another's data, but in order to send meaningful information and not just noise, the computers have to speak the same language, more or less. The network language (or protocol as it's correctly called) that Doom2 understands is Novell's IPX protocol.

The machines that are shut all the way down to "Dosmode" for dooming (person clicks start, then shutdown, then "restart in MS-DOS mode") have a different procedure for setting up IPX networking than someone who just opens up a DOS window from within Windows95/98/whatever and plays it like that.

Windows-mode machines:

From the control panel, double click the "network" icon. Among the entries in this window, you will see one for your network card itself (this one has a little green square icon to the left of it). If you do not see this, then your network card is probably not installed correctly.

If you happen to already be set up for IPX, there will be a line mixed in among the networking entries that says something like:

IPX/SPX -> (name of your network card here)

If you do not see this, you can add it by clicking the "Add" button, then in the new window click "protocol" and then "Add" again. On the left of the new window, click "Microsoft", and on the right click IPX-SPX compatible protocol, and follow the prompts to the completion of the protocol's installation.

If later you have problems connecting to someone and want to try something different, one of the things to try is redoing this selection process, but instead of "Microsoft", pick "Novell" and "IPX ODI protocol".


DOSmode machines:
 

On the floppy disk that came with your network card, find the directory that has your IPXODI network drivers. This may take a few minutes and may be buried a ways into the directory structure. Some of the programs may be named lsl.com, ipxodi.com, or NE2000.com. You are most likely to find lsl.com named exactly this way, and the other programs may have different names, but hopefully will be grouped together in a way that helps you identify them.
 

Part 1: edit your net.cfg

Once you've located your three programs, look around that area on the floppy disk for a text config file. It may be called net.cfg.

Edit your net.cfg (or whatever its called) file. You are likely to find a number of lines that have been commented out with semi-colons or another comment-denoting character like "#". You typically need to uncomment some of them to tell the network card what to do. Here is an example net.cfg (this may not work with your network card; its just here to explain some things):

**********************************
C:\NET>type net.cfg
Protocol IpxOdi

    Ipx Sockets = 32
Link Driver NWMLID
       Frame ETHERNET_802.3
       Protocol IPX 00 ETHERNET_802.3

;    frame ETHERNET_802.2
;    frame ETHERNET_II
;    frame ETHERNET_SNAP
Netware DOS Requester
       FIRST NETWORK DRIVE = F
************************************

Your net.cfg is likely to have a lot more information, with most if not all of it commented out (like the three "frame ETHERNET" statements above). You only need to uncomment one of each type of statement by removing the semicolon; the manufacturer just puts them all in there so that people can see what types of things are available.

In the case of the above net.cfg: NWMLID happens to be the name of one of the driver programs (will explain that later). This particular card requires this entry, your net.cfg may or may not have an entry like this. It is very likely to have "Frame" definitions and a Protocol definition (for this net.cfg it is Protocol IPX 00 ETHERNET_802.3). Follow the syntax shown in your own net.cfg, and you should pick 802.3 and protocol IPX 00 (or E0 perhaps) like the one above.

The things that must match between your PC and other PCs you are connecting to are: frame type and Protocol IPX and your number. If your line reads like this:

Protocol IPX 00 ETHERNET_802.3

then the other machines must also use IPX 00 and 802.3. If one machine is set to IPX E0 in this case, that machine will be unable to join the same games as the IPX 00 machines.
 

Part 2: load your drivers in the correct order

Each of these three programs must be run in the correct order to initialize the machine's networking. They depend on one another and will not even load in the wrong order, much less work for Doom2. If you load one out of order, it will complain and give you icky errors, possibly including annoying beeping.

You will also see errors if you tried to load them in the correct order, but one of them failed to work (problem in net.cfg perhaps) and you didnt realize it and loaded the next driver anyway.

The first driver to load is your LSL driver (Link Support Layer, lsl.com is its name on many netcards.)

The second one is your Link driver. I don't know of a hard and fast naming convention to help you identify it, except that sometimes it has the network card manufacturer's name codified in the program name. This is what mine says when I run it without running LSL.com first - - note how it because it is a hardware level driver, it references my ISA Bus. This characteristic may be universal and may help you in figuring out which of your programs is the Link driver:

*******************
C:\>c:\net\nwmlid
ISA-Bus Ethernet MLID v6.01 (950711)
(C) Copyright 1994 - 1995 All Rights Reserved.

NWMLID-DOS-1: The LSL is not loaded.

C:\>
********************

The third one is your IPXODI driver. This is what mine says when I load it without running any of the others:

*********************
C:\>c:\net\ipxodi

NetWare IPX/SPX Protocol  v3.01 (941031)
(C) Copyright 1990-1994 Novell, Inc.  All Rights Reserved.

IPXODI-301-13: The LSL is not loaded.  Please load the LSL then IPXODI.
**********************
  p>If you want to unload your drivers, you have to do it in the reverse order they loaded, using the correct command line parameter to cause it to remove itself from memory. My netcard drivers use a "-u" parameter to unload.

Using my network card as an example, if I wanted to unload my drivers, i would type:

ipxodi.com -u
nwmlid.com -u
lsl.com -u

if -u doesent work for you, try   /?   and see if the program will give you a helpful list of parameters (including how to unload it).
 

Once you have your drivers loading and unloading cleanly, make .bat files to do it for you. One convention is to make a "startnet.bat" which loads each of the three programs, in the correct order. Then, "stopnet.bat" unloads each of the three, in the correct order.

Here are what mine look like:

**************************
C:\>type startnet.bat
c:\net\lsl.com
c:\net\nwmlid
c:\net\ipxodi
 

C:\>type stopnet.bat
c:\net\ipxodi -u
c:\net\nwmlid -u
c:\net\lsl -u

C:\>\
**************************
 

You might put the path to startnet.bat in your c:/windows/dosstart.bat file. This will cause your PC to automatically load your DOS network card drivers when you shut down to DOSmode. Otherwise, you can just load it from the command line when you're ready to do networking.
 

Step 3: Get Doom talking over the network

Now that your network protocol seems to be set up correctly, go into your Doom2 directories on both machines and type   DM   and hit enter. If it returns "bad command or file name", you need to upgrade to Doom2 version 1.9.

From this window, set up the parameters for the game you want to play, making sure to select the correct number of players and IPX Network, and both of you hit F10 to begin.

If the game loads and begins: great.

If the game does not start, thats okay too. Getting IPX Doom to work correctly usually takes a few adjustments the first time you fire it up.
 

Common problems:
 

#1: IPX not detected

If you see this error:

****************************
Found response file "DM$$$.TMP"!
Communicating with interrupt vector 0x60
IPX not detected
****************************

It means that the network drivers on that machine are not loaded correctly; Doom2 does not see an IPX network to send data to.
 

#2: Game does not start, display sits and spins

Normally, when you hit F10, you will see a blue display on your screen that looks like this:

+----¦DOOM II Network Play¦----+
¦ Looking for 2 players...     ¦
¦ ( ) Player 1                     ¦
¦ (|) Player 2                       ¦
¦         Searching...              ¦
+-----¦Press ESC to abort¦-----+

and when the other player hits F10 too, it will disappear and the game will load in its place.

If you both hit F10 and the blue windows are sitting there chirping away, with the game not starting and the line next to Player 2 spinning in a circle, it usually means that the two machines are not talking IPX with exactly the same parameters.

Diagnosing IPX mismatches can be confusing at first, but the more you do it, the better you get at it. Here are some hints that should be helpful.

---Windows machines and Dosmode machines can play Doom together, HOWEVER, the Windows machine must have its IPX configured to specify the "frame type" as something other than "auto", which happens to be the Windows default setting. From the control panel, double click the Network icon, and then select the IPX/SPX entry for the network card and click properties. From there, take the Frame Type off of "Auto" and make it match what the Dosmode IPX machine has (802.3 for example).

---if a Windows machine still refuses to talk to a DOS machine for Doom, try changing the IPX protocol from Microsoft's version to Novell's version.

---on Windows machines, re-check the installations of the network cards and the IPX protocols.

---on DOSmode machines, make certain that the machines' net.cfg parameters all match. A Protocol IPX 00 machine will not connect with a Protocol IPX E0 one, for example. This is most easily noted when you have a group of 4 people or so, and three can connect just fine but one can connect to noone.

---make sure you don't have a physical LAN problem. If you are using a 10-Base-T network: on the hub, are the "link lights"for both of the PC's ports illuminated? If you are using 10-Base-2, is one of your T-connectors bad, or is a terminator not seated all the way?

---If you have more than 2 PCs in the LAN, see who can successfully connect to whom. Sometimes it is one machine with the problem, and its helpful to isolate it early on.

---You might sometimes see puzzling things like: Mark's PC can connect to both Jason's and Robert's, but Jason and Robert cannot connect to one another. Especially when you have mixed operating system modes (Windows vs. Dosmode), you just have to work through strange things as you encounter them. Most problems like this are resolvable, with persistance.
 

#3: One machine locks up after hitting F10, may sit and spin for a moment first

This tends to mean that the one machine is unhappy with some aspect of its network card drivers or hardware settings. Things that have fixed it in the past for me are: rebooting the machine and trying again, unloading and reloading the network drivers, or finding a hardware or driver issue that was making the card malfunction. This one can be a challenge to fix.

One machine I dealt with would do this repeatedly, and here is what it took to make it work. You had to boot the machine into Windows, and with the Windows IPX settings matching the DOS driver's frame type, you would connect with another machine in Doom2 and go all the way in game. Then, you quit the game, shut down into dosmode, and loaded the typical dos-mode drivers over top of the windows ones. Then and only then would it work, and occasionally it would not work and you had to do it a second time. Strange machine for sure. (Old P-120 with a nasty buggy motherboard).

#4: Other hints:

If you know for a fact that one machine is very consistant with its IPX and doom-connectivity, and a relatively new machine is having a problem, always place fault with the new machine and work to make it match the known-good one. It's a waste of time to go messing around in a known-good machine when the problem is very likely to be on the other one.

Persistance is the key if you have problems!!!