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).