Updates:
29 December 1995
18 April    1995 
09 February 1995 
28 January  1995 (Original modification)

IPXSETUP (Master/Slave) 

In order to make network play of DOOM easier to start, I have modified the 
IPXSETUP source code. One of the problems often times encountered whilst 
initiating network play is that one (or more) of the nodes has not been
passed the proper command line arguments; and, therefor, one (or more) of the
nodes is knocked out of the game immediately and then, of course, everyone 
needs to rerun IPXSETUP.  Basically what I have done is allowed for a "master"
and "slave" relationship between the network nodes.  One player declares 
themself the "master" and the other players are "slaves" at startup.  The
"master's" command line arguments are passed along to all the slaves;  in this
way, all the nodes invoke DOOM with the same command line arguments.  

What's new (1.5):

1. Added -Class (-C) and -randclass (-?) parameter for use with Hexen.
2. Added -Launch (-L) parameter to allow the user to specify what game to 
   launch (e.g., "-Lauch heretic" will run heretic).
3. Made -nojoy, -nomouse, -nosound, -nomusic, -nosfx local node only parameters.
   These parameters are not passed by the master and are not ignored by the 
   local node.
4. Also made -turbo a local node only parameter; there is now a new switch 
   -noturbo (-N) that the master may throw in order to disable anyone from using
   the -turbo switch.
5. The game launched now is passed a response file (NETWORK.RSP); in this way 
   is many parameters as wanted can be passed.  

What's old (1.30):

1. Previously, if the Master node loaded a configuration file (.cfg) with the
-config switch, then this parameter was sent to all the slaves.  This "bug"
has been fixed and now each node will load configuration files properly.  That
is, if a Master is passed a -config switch it does not pass this parameter
along to the slaves; and each Slave may use -config switch to load their own
configuration file. 

Whats old (1.20):

1. Removed the "-slave" parameter.  Now if IPXSETUP is run without "-master"
then the node will wait for a "master" node. Note that it is required that
one of the nodes be "master" or the game will never start.

2. Fixed a bug which lost the last command line parameter when a response file
was used.

3. Added shorthand notation for command line parameters.  These parameters are
CASE SENSATIVE.  Paramters marked with an '*' which require a second parameter 
can have an optional space (' ') between the shorthand and the required second 
parameter (e.g., "-nodes 3" can now be passed as "-n 3" or "-n3").  Paramters
marked with an "L" are local node only parameters (not passed by the master).
Paramters marked with an "M" are master node only parameters.
*L	-C = -class
 L	-? = -randclass
* M	-L = -launch
  M	-N = -noturbo
  M	-m = -master	
  M	-b = -msg 
* M	-h = -dehack
* M	-n = -nodes
*	-p = -port
*	-v = -vector
* M	-f = -file
*L	-c = -config
* M	-l = -loadgame
  M	-d = -deathmatch
  M	-a = -altdeath
  M	-r = -respawn
  M	-x = -nomonsters
* M	-t = -timer
* M	-s = -skill
* M	-w = -warp
*L	-T = -turbo
  M	-F = -fast
* M	-R = -record
* M	-P = -playdemo
* M	-X = -maxdemo
 L	-J = -nojoy
 L	-M = -nomouse
 L	-S = -nosound
 L	-U = -nomusic
 L	-Y = -nosfx

Whats original:

Three switches have been added: -master, -msg, and -dehack.

-master sets a node up as the "master."  The "master's" command line arguments 
are passed to ALL other nodes the nodes.  Only one node may be "master."

-msg displays the parameter following -msg on all the node's consoles prior to
launching DOOM.  Use quotes ("") to encompass more than one word as a single
argument(e.g., `IPXSETUP -master -msg "Prepare to die!" -deathmatch'). If -msg
appears in a response file then the entire line following the -msg keyword is
treated as the message and therefor quotes are not needed.

-dehack will launch the DEHACKED program to patch DOOM prior to launching DOOM.
In this way, everyone plays with the same version of the DOOM executable.  The 
parameter following -dehack is the patch file for DEHACKED to load (i.e., 
`IPXSETUP -dehack fire.deh' will spawn the command `DEHACKED -load fire.deh' 

Another change to the code I made was to close the opened socket if the program
is abnormally terminated (i.e., ctr-c).

The original IPXSETUP source was written for Borland C; I have translated it
for MS C.  I think it should still be compilable under Borland C but have not
verified this.

Note that when using response files, all arguments prior to the response file
are ignored by IPXSETUP.  This is how it was written and I didn't change it.

I hope these modification make your network experiences a little easier.  If 
you have any suggestions for other enhancements please let me know.

	Micah Nutt (74642,363 at Compuserve).
