Text File
---------------------------
Readme file for RMSetup 4.0
---------------------------
8th May 1995, ALPHA release 1, not for general distribution.
Be sure to look in "The changed list" for a large list of new features.
== Contents.
Notice.
Intro.
Excuses.
Files.
What does it do? (When would I use it?)
What do you need?
How do I set it up?
RMSetup command line options.
Results.
Miscellaneous and technical notes.
The to do list.
The changed list.
What do I want?
What else do I want?
Who am I?
== Notice.
RMSetup is copyright (c) 1994 by Antony Suter.
RMSetup is free of charge and may be freely distributed.
RMSetup was built with the help of source code supplied free no obligation
by ID Software for their serial and network drivers for DOOM.
This software is written for a specific purpose, to play multiplayer DOOM,
and contains no code to attempt to modify or otherwise cause harm to your
computer. I will not be held responsible for your computer seeming to break
by your using this software.
This software may freely distributed as long as (A) there is no charge for
RMSetup itself, and (B) this document file follows it wherever it goes. You
may distribute this software with other commercial software.
The principals used in this software could easily be modified for use with
any game or other software.
== Intro.
Greetings. This is yet another release of a driver that will allow anywhere
from 2 to 4 players playing DOOM over serial lines.
Current version of RMSetup is release 4.0.
Last released version was called RMSSetup and was 2.5.5 BETA.
== Excuses.
I continued working on RMSetup imediately after the 2.5.5 release, but then I
gained a full time job (with lots of commuting), and I still study part time.
Darn. Trust real life to get in the way. Now I use computers with ethernet
cards in them...
== Files.
RMSETUP.EXE is the program and is release 4.0.
RMSETUP.DOC is this file.
== What does it do? (When would I use it?)
Allows 3 or 4 players (or 2) to play DOOM by just using serial cables.
As noted, you can play with just 2 players using RMSetup, however, other
drivers for serial 2 player might be faster because of RMSetup's overhead
in packetising the data.
This program will work with Heretic, Doom2 and Doom by Id Software. And even
maybe Rise of the Triad by Apogee.
== What do you need?
You need a computer for each player, up to a maximum of four. Another
computer could be used as a server.
You also need a a minimum of a cable for each player except one. These cables
are standard NULL modem cables. Fully shielded and grounded cables are
preferable (to reliably use higher speeds).
Two computers need one serial port each, the remaining computers need two
serial ports each.
Each computer needs to use RMSetup, currently of the same version.
Having 16550A serial chips is a definite and serious plus, they will be used
automatically.
== How do I set it up?
Chain the computers together with the two slowest computers at the end of the
chain.
eg. The first setup I ever tested with was:-
+------+ +------+ +------+
|386-40| <-----cable-----> |486-66| <-----cable-----> |486-40|
+------+ +------+ +------+
port 1 port 1 port 2 port 1
For a four player setup, you need to run the serial lines at high speeds to
stay within DOOM's internal timeouts.
== RMSetup command line options.
These are fairly simple at the moment. Note that a 16550A FIFO will be used
automatically and transmits 16 characters and receives 8 characters at a
time. Most parameters are currently fixed, eg. buffer size, etc.
Note that RMSetup will pass through to DOOM all parameters that you put
on the command line, just like SERSETUP or IPXSETUP.
-rmsnode <pn> <tp>
eg. "-rmsnode 1 3" for node 1 out of 3.
<pn> is the node number from 1 to <tp>.
<tp> is the total number of nodes from 2 to 4.
This parameter is needed. Each computer must be a different node
number to work properly. Each computer must have the same total number
of nodes to work properly.
4 is the current maximum number of nodes handled by RMSetup. DOOM allows
for 8 nodes but only 4 players, as of DOOM version 1.2 and up.
-rmsline [<port number>] [<port name>] [addr <port address>]
[irq <port IRQ>] [speed <bps>]
Examples:
For standard ports:-
eg. "-rmsline 2" for COM2.
eg. "-rmsline com2" for COM2.
eg. "-rmsline 2 speed 19200" for COM2 with speed 19200.
For nonstandard ports:-
eg. "-rmsline com3 irq 5" for nonstandard COM3.
eg. "-rmsline addr 0x678 irq 15 speed 57600" for non standard port
at address 0x678 with irq 15 and speed 57600.
This parameter has changed a lot since the last release. There is now
support for nonstandard addresses and IRQ numbers.
<port number>
Specifies the standard com port of that number. Range from 1 to 4.
Assigns standard port address and port IRQ.
<port name>
Specifies the standard com port of that name. Range from COM1 to
COM4. Assigns standard port address and port IRQ.
addr <port address>
Specifies a non-standard port address in decimal (eg. "1000") or
hex. (eg. "0x3E8").
irq <port IRQ>
Specifies a non-standard port IRQ in decimal (eg. "11") or hex.
(eg. "0xB"). Range from 0 to 15.
speed <bps>
Specifies the speed in bps to use. Speeds allowed are 9600, 11520,
12800, 14400, 19200, 23040, 28800, 38400, 57600 and 115200. Defaults
to 9600.
force8250
Forces RMSetup to treat the port like a plain 8250. Use this if
you have a chip with a FIFO but it doesn't work properly.
Notes:
* Any combination of the above options may be used.
* A port address is required and can be specified by "<port number>",
"<port name>" or "addr <port address>".
* If no port IRQ is specified by using "<port number>", "<port name>"
or "irq <port IRQ>", the IRQ number will be autodetected. If your
port address is not correct your computer will most likely lockup.
* As a rule each port must have a different IRQ, ie. use ports 1&2 or
1&4 or 2&3 or 3&4 or nonstandard ports.
* If you have a special expensive multi-port serial card, you may use
the same IRQ on as many ports as you like.
* One line is needed for each computer on the end of the chain.
Two lines are needed for each computer within the chain.
For multiple lines, use multiple "-rmsline" options.
eg. "rmsetup -rmsnode 1 3 -rmsline COM2 -rmsline COM3".
* To get real results from DOOM you need to up the speed of your lines.
Use the highest speed that gives you smooth operation. If you set
your speeds too high for your computer to handle, DOOM will lockup,
sometimes with a Strange Verticle Interlaced Effect (SVIE(TM)).
* See section on "Testing so far".
-rmsticdup <td>
eg. "-rmsticdup 1"
Sets the "ticdup" option in Id's communication structure. Set to 1
normally for smoothest operation on fast computers (ie. Pentia class).
Set from 2 to 5 for better serial response but a slower frame rate.
Frame rate is (35 / <td>). Defaulted to 1 in RMSSetup 2.5.5. Defaults
to 2.
-rmsextratics <et>
eg. "-rmsextratics 1"
Sets the "extratics" option in Id's communication structure. Set to 1
for Doom to send backup tics in each packet. Set to 0 normally by Id's
IPXSETUP and SERSETUP. Defaulted to 1 in RMSSetup 2.5.5. Defaults
to 0.
If you seem to be getting a lot of "consistency errors" and you know
that everyone is using the same version of Doom, setting this to 1 will
improve the situation.
-rmsstart <en>
eg. "-rmsstart heretic"
Attempts to start the program <en>. Doesn't try to start anything else
if it fails. Do not give an extension of ".exe" or anything else. ".exe"
will be appended. If not given the default action is to attempt to start,
in the following order:-
HERETIC.EXE,
DOOM2.EXE,
DOOM.EXE, and
ROTT.EXE.
The first one successful is what runs, so don't keep these games
in the same directory.
-vector <vecter number>
Supported as like standard DOOM multiplayer drivers.
Specifies the software interrupt that RMSetup and DOOM use to talk to
each other.
Has been modified to accept a vector number in decimal (eg. "100") or
hex. (eg. "0x64").
== Results.
Some of the time, not all of the computers will start up, ie. initial RMSetup
handshaking works fine but one DOOM computer (node 1) doesn't get past
"sending network info". This problem may be fixed sometime.
The vital sent-once-only startup packet is being lost in the rush to
get started. The temporary "fix" is to keep re-starting the computers until
successful. It has been statistically proven that yelling "WORK" a few times
at the crucial moment helps greatly. Also lowering the speeds can help. But
still be prepared for some frustrating times.
In testing, it worked fine with both lines operating at 19200, but was slow
and somewhat jerky. We had great success with one line at 38400 and another
line at 23040 and later at 28800. At these speeds play with three computers
was smooth.
Some people in New Zealand {the people who say "Rutch un thuck un cr'my" (#)
when talking about cheesecake (sorry guys :-)} have achieved regular games
of four player. They each have a faster 486 and ran two lines at 38400 and
one at 57600. You could use slower computers if you had 16550A FIFO serial
ports. Aint PC serial ports wonderful?
To work out the maximum speed down the whole chain do this:-
-> Sum the inverses of each line speed, and then invert the sum.
ie. With two lines at 19200 our overall speed was:-
1 / (1 / 19200 + 1 / 19200) = 9600
With one line at 38400 and the other at 28800 our overall speed was:-
1 / (1 / 38400 + 1 / 28800) = 16457
The NZ Guys with two lines at 38400 and the other at 57600
(with four computers) got:-
1 / (1 / 38400 + 1 / 38400 + 1 / 57600) = 14400
(#) Of course, Americans say "Retch n theck and cremy", British say "R'ch
nd th'ch nd cramy" and Europeans say it with greatly mixed results. Then
there are people who say "<insert appropriate Swahili here>". Naturally,
I say "Rich and thick and creamy".
Well... at least we all play the same game.
== Miscellaneous and technical notes.
This software is written for a specific purpose, to play multiplayer DOOM,
and contains no code to attempt to modify or otherwise cause harm to your
computer. I can not be held responsible for your computer seeming to break
by your using this software.
There is no serial handshaking support, hardware or software.
There is no modem support, currently, but RMSetup should not hangup DTR when
it exits so you can dial with your favorite comms program, then keep
restarting RMSetup to use different wads, etc.
RMSetup needs to packetise data and simulate a little network for proper
operation.
The StartupFudge(TM) stuff does this. For the first 5 minutes from when
DOOM starts transmitting, DOOM is only allowed to send the same packet to
the same machine 3 times a second. Hopefully this will stop the flooding
that causes mis-starts.
== The to do list.
IPX support.
Add support for more direct serial lines between computers using whatever
spare ports are availiable to speed up operation. This will relieve some
burden on some computers but will not increase the burden of any.
Add support for reading config info from a file in addition to the
command line.
(Maybe add new Fudge(TM) technology to solve DOOM startup problems.)
(Maybe add new Fudge2(TM) technology to reduce the number of redundant
DOOM packets traveling around.)
Note: send me email about which features you want to see.
== The changed list.
4.0
- Packet passing from one line to another is now done immediately
instead of by polling - mush less jerky, and 4 player should work
properly...
- Implemented a StartupFudge(TM) technology.
- Changed the packet format to reduce the number of times the data is
copied around to increase RMSetup throughput.
- Fixed code for using IRQs 8 to 15.
- Now attempts to start, in the following order:-
HERETIC.EXE,
DOOM2.EXE,
DOOM.EXE, and
ROTT.EXE.
The first one successful is what runs, so don't keep these games
in the same directory.
- New options -rmsticdup, -rmsextratics and -rmsstart. Look them up.
- Renamed from RMSSETUP to RMSETUP.
- No longer BETA, because it works just fine.
- Changed the maximum number of allowed serial ports from 2 to 4.
- Added code to allow multiple RMSetup lines to use the one IRQ.
These last two might not be very useful on an ISA or VesaLB computer unless
you have the right multi-port serial card. PCI serial ports should be fine.
2.5.5 BETA
- New configuration options for nonstandard serial ports.
- Now compiling with Borland C 4.0 with full optimization.
2.4.9 BETA
- Solved serial lockups.
2.2.4 BETA
- Ye original. Had serial lockups.
== What do I want?
Please send to me (by email please) all bug reports being as explicit as
possible about the faults that you find. I am aware of some but send yours
anyway - just dont resend it several days later because you think i'm not
listening to you. I might not respond to all email, but I generally do.
== What else do I want?
Mail me a postcard (or postcard email)... RMSetup is free, but by all
means send me international cheques in Australian dollars (AUD) for any
amount you choose (eg. AUD $30 - about USD $22). The more I receive the
more I will work to improve RMSetup.
== Who am I?
Antony Suter.
Once called Rohaan by my friends, but now called "Oh no, not again."
by my enemies. Also known as the Chicken Caller or "Cluck oh no, not
cluck again." by my enemies.
Email:
nb. Only send mail to my first address, unless you have a major problem.
antony@werple.mira.net.au
It changed from antony@werple.apana.org.au. Use the NEW one only.
[s871780@minyos.cs.rmit.edu.au]
[s871780@yallara.cs.rmit.edu.au]
Don't use these unless you really have to. Not guaranteed to work.
Snail:
167 York Rd
Mt Evelyn, 3796
Victoria
AUSTRALIA
== This readme file will self destruct in 5 seconds...
�