*****************************************************************
***                                                           ***
***      ######   ##     ##  #######   ########  #######      ***
***     ##    ##  ##     ##  ##    ##  ##        ##    ##     ***
***     ##        ##     ##  ##    ##  ##        ##    ##     ***
***      ######   ##     ##  #######   #####     #######      ***
***           ##  ##     ##  ##        ##        ##   ##      ***
***     ##    ##  ##     ##  ##        ##        ##    ##     ***
***      ######    #######   ##        ########  ##    ##     ***
***                                                           ***
***                 ######   ########  #######                ***
***                ##    ##  ##        ##    ##               ***
***                ##        ##        ##    ##               ***
***                 ######   #####     #######                ***
***                      ##  ##        ##   ##                ***
***                ##    ##  ##        ##    ##               ***
***                 ######   ########  ##    ##               ***
***                                                           ***
***                        Version 2.1                        ***
***                                                           ***
*****************************************************************
***           Copyright (c) Michael J Stokes, 1996            ***
*****************************************************************

THIS PROGRAM IS FREEWARE

Disclaimer of Warranty
======================
 THIS SOFTWARE IS PROVIDED "AS IS", WITH NO WARRANTY WHATSOEVER EITHER
 EXPRESSED OR IMPLIED.  THE AUTHOR OF THE SOFTWARE ACCEPTS NO
 RESPONSIBILITY FOR ANYTHING THAT MAY HAPPEN TO YOU, YOUR COMPUTER OR
 ANYTHING ELSE AS A RESULT OF THE SOFTWARE.  YOU USE THIS SOFTWARE AT 
 YOUR OWN RISK.

Copyright & Trademarks
======================
 DOOM and DOOM II are trademarks of ID SOFTWARE.
 HERETIC and HEXEN are trademarks of RAVEN SOFTWARE.
 SuperSer is Copyright (c) Michael J Stokes, 1996.  All rights reserved.

=================
Table of Contents
=================

[X] What's New
[1] Introduction
[2] Getting Started
[3] Making a Connection
 [4] Communications Hardware
 [5] Creating a Serial Link
 [6] Creating a Modem Link
 [7] Creating a Parallel Port Link
[8] Editing the INI File
[9] The SuperSer Environment
 [10] The NODES Window
 [11] The CHAT Window
 [12] The NOTEPAD Window
 [13] The SEND FILE Window
 [14] The GET FILE Window
 [15] The PING System
[16] Starting a Network Game
[17] Accepting a Network Game
[18] Special Path Characters
[19] The Future of SuperSer
[20] Contacting the Author
Appendix A: Trouble Shooting
Appendix B: Cable Wiring


==============
[X] What's New
==============

 - Starting a net-game is now fixed
 - You can have different init strings for each port
 - The program always shells the correct command prompt.
 - Call answering is configurable to automatic, none at all and notify.
 - Support for drop-in lines
 - Configurable old deathmatch and tick-dup.
 - KEYBOARD INTERFACE!  At last.
 - Unlimited text box space.
 - Improved Game Speed
 - WAD Level Viewer Window
 - Automatic WAD Validator before games
 - Better handling of 3+ Nodes
 - Transfer more than 1 file per person at once.

================
[1] Introduction
================

 SuperSer is a Serial Communications Driver for games published by
 ID SOFTWARE.  SuperSer is a complete communications environment,
 allowing you to create complex networks of computers, all connected
 together and perform tasks like transfering files, chat, and of course,
 network games.

 SuperSer is a FREEWARE PRODUCT.

===================
[2] Getting Started
===================

 SuperSer is distributed in the file SS20.ZIP.

 1. Unzip the SuperSer files into the directory where you have
    an ID SOFTWARE game.  If you will not be using SuperSer for
    playing games, just create a blank directory and put it there.
 
 2. Use a text editor (such as MS-DOS EDIT) to edit the file
    SS20.INI, which contains details about your computer's hardware.
    If you have little technical experience and don't know what
    all the junk in the INI file is about, you can leave it as it
    is and use the default settings.
    See "Editing the INI File"
 
 4. Run SS20.EXE (no arguments are required)


=======================
[3] Making a Connection
=======================

 As mentioned above, SuperSer allows all kinds of connections to take
 place between your computers and others on the network, for example:
 
  +John+           +Michael+------+Katherine+
       |           |                   |
       +Bill+------+                (Modem)
                                       |
                +Sarah+-------------+Robert+
                |                          |
             +Andrew+                      |
                |                 +Kylie+--+
             (Modem)
                |
              +Tom+

 All of these people can communicate and play multiplayer games with
 each other!  As long as there is a path from one person to another,
 it is possible.  You are free to use any kind of connection with
 SuperSer - either a NullModem cable, a Modem or a Parallel Port Cable,
 each packet of data will find it's way to the right place.

 For an example, in the above setup, Katherine and Andrew might be
 transfering a large file, while John, Michael, Robert and Kylie enjoy
 a game of DOOM II.  At the same time, Sarah, Tom and Bill could be
 playing HEXEN.  

 SuperSer also allows dynamic connections, similar to Plug & Play.  Just
 connect a new computer in to the network, run SS20.EXE and that person
 will instantly be admitted into the network.  And when the other people
 return from their network games, or whatever, the new person will be there.


===========================
[4] Communications Hardware
===========================
 
 Obviously when it comes to communications, the faster the better.  A
 16550 or better high speed UART card is highly reccomended, as well as
 a 28.8K modem, and of course, fast computers.  SuperSer does support
 older hardware, however.

 Minimum Requirements:
  * 386 Processor
  * 4MB Ram (for NetGames)
  * 1 or more 8250 UART
  * VESA Video Card 640x480x256


==========================
[5] Creating a Serial Link
==========================

 To create a link known as a Null Modem Connection, you must obtain a null
 modem cable suitable for use with your computers.  In other words, it must
 have the correct plug on both ends.  Also, it must be long enough.  If you
 want to make one of these cables yourself, the wiring details are in
 Appendix B.

 Simply plug the cable into the backs of the two computers, and run SuperSer.
 If the port you have plugged the cable into is not currently setup for use
 with SuperSer, you must set it up first.  See "Editing the INI File".

 Note that with serial links, both ends MUST use the same baud rate.


=========================
[6] Creating a Modem Link
=========================
 
 Assuming you have your modem already plugged in and switched on, and that
 the modem port is setup in your SS20.INI file, then you are ready to get
 under way.

 In the SuperSer environment, click on the button labeled "Modem".  You will
 be presented with a dialog box which is used to set the parameters for
 dialing another person.  Select the COM port and the Phone Number, select
 any other options, and press DIAL.  SuperSer will attempt to establish a
 connection with the remote modem.

 Call answering is now configurable.  You can select NONE, NOTIFY or ANSWER.
 * If you select NONE, you are responsible for answering any calls by
   clicking "Answer" in the Modem Dialog.
 * If you select NOTIFY then SuperSer will tell you when it detects a call.
   You still have to manually answer with the method described above.
 * If you select ANSWER, SuperSer will attempt to answer the call.  Note
   that this could happen during a NetGame.


=================================
[7] Creating a Parallel Port Link
=================================

 SuperSer 2.1 can support parallel port linkups.  However, this part of the
 program has not been fully tested.  If you know what you are doing, try
 this with a standard 4bit cable.  If you do test the parallel port system,
 please email the author and describe what happened.  I would like to know
 how reliable the parallel port code is.


========================
[8] Editing the INI File
========================

 The SS20.INI is where all of SuperSer's options can be controlled.  Use
 an ASCII text editor (such as DOS EDIT) to view and change its contents.
 The INI file is organised into the following sections:

 [General]
 Node=n                   This command allows you to manually specify your
                          node number.  Normally SS creates one for you.
 Name=XXX                 Allows you to specify your name. Use up to 20
                          letters.
 Mode=n                   Video Mode.  0=640x480, 1=800x600, 2=1024x768
 RequestSend=n            Automatic response to a person sending you a
                          file:  0=ask you, 1=yes, 2=no.
 RequestGet=n             Automatic response to a person asking you to
                          send them a file: 0=ask you, 1=yes, 2=no
 Mouse=n                  Enable the mouse?  0=no, 1=yes.  Defaults to
                          YES.

 [ComN]
 Enabled=n                Enable this port or not?  1=enabled, 0=disabled.
 Port=0xNNN               Specifies the IO address of the port.
 Irq=n                    Specifies the IRQ of the port.
 Baud=NNNN                Specifies the BPS rate to use.  Note that when
                          using a serial cable link, both computers must
                          use the same BPS.  Also note that when typing
                          the BPS rate, LEAVE OFF THE LAST TWO ZEROS.
 ModemInit=XXX            This allows you to change the modem init string
                          that will be used with this port.
 AnswerType=n             Specifies the kind of auto-answer for modems.
                          0=none, 1=autoanswer, 2=notify

 [LptN]
 Enabled=n                Enable this port or not?  1=enabled, 0=disabled.
 Port=0xNNN               Specifies the IO address of the port.
 Irq=n                    Specifies the IRQ of the port.

 [Desktop]
 Colour=n                 Value 0 to 255.  The background colour of your
                          desktop area.  Normally BLUE(9).
 Wallpaper=XXX.bmp        Selects a 256 colour BMP file to display in the
                          background.
 
 [NetGame]
 Doom=XXX                 Path and filename of the DOOM.EXE
 Doom2=XXX                Path and filename of the DOOM2.EXE
 Heretic=XXX              Path and filename of the HERETIC.EXE
 Hexen=XXX                Path and filename of the HEXEN.EXE
 WadPath=XXX              Specifies the path to WAD files.  This string is
                          not used unless you specify it.  See [16].
 TickDup=n                Manual tick-dup overide.  Note "TickDup" not
                          "TickDupe"
 OldDM=n                  Use old style deathmatch?  0=no, 1=yes.

 [Settings]
 ...                      This section only contains internal information
                          that SuperSer writes.


============================
[9] The SuperSer Environment
============================

 SuperSer uses a high resolution windowed environment.  In the background
 is your "desktop".  On top of that is the "toolbar" which is found along
 the bottom of the screen.  Other windows also float around.

 ** FAKE MOUSE SYSTEM **
 SuperSer includes a fake mouse.  The fake mouse activates if you have not
 loaded a mouse driver or if you have disabled the mouse in the INI file.
 Here are the key mappings:
 L-SHIFT:   Left mouse button
 R-SHIFT:   Right mouse button
 HOME:      Move mouse up
 DELETE:    Move mouse left
 END:       Move mouse down
 PAGE-DOWN: Move mouse right

 ** THE TOOLBAR **
 The toolbar contains 5 buttons and one combo-box.  The buttons are
 TOOLS:     Access the SuperSer Toolbox.
 GAME:      Start a Network Game
 DOS-SHELL: Shell to MS-DOS
 QUIT:      Exit the SuperSer Environment
 MODEM:     Access modem related features (dialing and answering)

 Note that these 5 buttons can also be accessed with the keys F1 to F5.

 The combo-box contains a list of SuperSer's Verbs.  These are different
 things you can do to other people.  For example, you can CHAT a person.
 To use these, select the verb you want from this list and then click on
 the name of the person to use it with in the NODES window.

 CHAT:      Start a chat session 
 NOTEPAD:   Start a draw session
 VOICE:     Start a voice chat session              [Not finished yet]
 SEND FILE: Send a file to another person
 GET FILE:  Request a file from another person
 PING:      "Ping" a person to test response time.

 All SuperSer windows can be moved by clicking and dragging their title bar,
 and some windows can be sized by clicking and dragging the bottom right hand
 corner of their frame.


=====================
[10] The NODES Window
=====================

 The Nodes Window is a fairly central part of the SuperSer Environment.
 It contains a list of all the people currently connected to the network,
 including yourself.  You can perform various actions on these people.
 Clicking on yourself with the LEFT MOUSE BUTTON allows you to change your
 name.  Clicking the LEFT MOUSE BUTTON on anybody else in the window performs
 the currently selected VERB on the person.  Clicking the RIGHT MOUSE BUTTON
 on anybody on the window reveals their node number.

 Note: Unlike other windows, the NODES window cannot be closed.


====================
[11] The CHAT Window
====================

 A Chat window is created when you perform the CHAT verb on another person.
 A large white window is revealed that is divided into 2 parts, similar to
 the UNIX "talk" utility.  The top half is where text you type goes, and the
 bottom half is where the remote text goes.  You can have multiple chat
 windows open to different people at the same time, but only one to each
 person.  You can also clear the chat window by clicking the right mouse
 button on it.

 Tip: Pressing Control+G causes both computers to beep.


=======================
[12] The NOTEPAD Window
=======================

 The Notepad window is created when you perform the NOTEPAD verb on another
 person.  An empty window appears on the screen.  You can sketch in the
 window by clicking and dragging the mouse cursor.  The remote user can do
 the same.  Your drawings will appear in BLUE, while the remote user's
 drawings will appear in RED.  To clear the window, click the right button on
 it.  Once again you can have multiple notepad windows open to different
 people, but only one to each person.


=========================
[13] The SEND FILE Window
=========================

 The Send File Window appears when you perform the SEND FILE verb on another
 person.  It allows you to specify a file you have access to and send it to
 a remote user.  Type the filename or the full path and filename of the
 file in the text-input-box, and press enter.  The remote user will be asked
 if he or she wants to receive the file.  If so, the progress window will
 appear, showing the percentage of the file transfer completed so far.
 Either you or the remote user may abort the transfer by closing the progress
 window.  You can have multiple file transfer windows, but only one per
 person.

 See [18] for details on special characters you can use in the filename.


========================
[14] The GET FILE Window
========================

 This file is like the send file window, except you are requesting a file from
 the remote user.  This option is not as useful as the send file option because
 it requires you to know the location and name of the file on the remote
 computer.  However, it is provided just in case.  Type in the name of the
 file, press enter and if the remote user agrees, his/her copy of SuperSer
 will automatically foreward the file back to you.

 See [18] for details on special characters you can use in the filename.

====================
[15] The PING System
====================

 If you perform the PING action on a user, a small message is sent to their
 machine.  Their machine beeps, and a return message is sent back to you.
 If your copy of SuperSer receives the message, a dialog box appears to
 confirm that the user is on-line.

 Note that their machine will not receive the message if they are in DOS
 or are playing a network game.  In this case, the message will wait until
 they return to the SuperSer environment.  In this way you can tell when a
 person comes back.  Be careful, however, not to create a huge queue of beeps
 for when they return!


============================
[16] Starting a Network Game
============================

 To organize a network game, select the GAME button from the toolbar.  You
 will be presented with a large dialog box of options.  You must choose:

 GAME:       Doom, Doom II, Heretic, Hexen or Strife
 LEVEL:      The level number.  To specify an episode (Doom & Heretic),
             simply type 12 for episode 1, level 2.
 DEATHMATCH: Select this option to have a deathmatch game, or leave it
             blank to have a co-operative game.  You can select an "old"
             deathmatch game by altering the INI file (see above).
 ARGUMENTS:  This long text-input-box allows you to specify custom arguments
             to the game, eg -TURBO 200  These arguments will be passed to
             all users.  See [18] for details on special characters you can 
             use in this box.
 PLAYER N:   These fields allow you to select the other players in the game.
             Player one is always you, while you can select the other players.
             You can't select a person twice, however.

 Note that SuperSer will automatically parase the arguments field and work
 out what WAD files you have specified (if any..).  It will then check to
 make sure you have these WADs.  If you don't, the game cannot go ahead.
 The moderator of the game (you) must have all of the required WADs.

 Once this is done select "Play" and SuperSer will contact the other game
 members.  If all accept, you will be informed and the game will commence.
 If not, the game is aborted.  You may abort the game yourself if the
 players are taking too long to respond by clicking the right mouse button.


=============================
[17] Accepting a Network Game
=============================

 Should another member of the network include you in a network game they
 are organising, a window will appear on your screen displaying details
 of the proposed game and the players to participate.  You can either 
 select NO to abort the process, or YES to join in.  SuperSer will then 
 contact the game organizer and you will be notified when all the other 
 players are ready.  If another member of the game aborts the process, 
 then you will be notified and returned to the desktop.

 Note that SuperSer will automatically parase the game arguments and find
 out what WADs are required for the game.  If you don't have any of them,
 you will automatically abort the game after pressing YES, and you will be
 asked if you want to automatically download them from the game moderator.
 This allows you to automatically grab any required wads.

============================
[18] Special Path Characters
============================

 SuperSer allows you to use special directives in the NetGame's ARGUMENTS
 field, and the Send and Get file dialog boxes.  These arguments allow
 you to minimize the amount you type and also make your pathnames machine
 independant.

 For example: person A stores his WADs in C:\WADS but person B stores his
 WADs in C:\DOOM2\WADS.  If person A then starts a game and selects the
 path of his wad, it won't exist on player B's computer!  To fix this,
 both players could use a WAD-PATH.  This is a simple string stored in the
 INI file under the [NetGame] section.  Then, the game could be setup as:

 -FILE $wCOOL.WAD

 The $w token will be replaced by whatever is stored in the INI file.  That
 way both person A and person B can access the wad.  Other special tokens you
 can use are:
  $w  =  The "WadPath=" setting in [NetGame]
  $c  =  Custom value, "CustomPath=" setting in [NetGame]
  $g  =  The EXE name of the game (N/A in file transfers)

 In this way, you can also be more accurate when requesting a file from
 somebody.  Eg to get a specific wad you could type $wUNREAL.WAD.


===========================
[19] The Future of SuperSer
===========================

 Some things that I have thought up and have had suggested to me for
 improving SuperSer are:

 - Support for DUKE NUKEM 3D from 3d Realms          *               *
 - Support for QUAKE from ID (when released) ??      *               *
 - Create a SuperSer "server" for dial-ins, etc      * Working on it *
 - Compression during file transfers                 * Working on it *

 If you have a suggestion to make concerning the improvement of SuperSer,
 please email <stokfam@mail.psinet.net.au>


==========================
[20] Contacting the Author
==========================

 The author, Michael Stokes can be contacted at the following:

 Email:  stokfam@mail.psinet.net.au
 WWW:    http://www.psinet.net.au/~stokfam/

 Please do not hesitate to contact the author to report bugs or any
 improvements you would like to be made.

 You can get the latest version of SuperSer from the above WWW address.


============================
Appendix A: Trouble Shooting
============================

 PROBLEM:  SuperSer says I need a VESA driver

 SOLUTION: SuperSer has a windowed environment, and runs in 640x480
           graphics.  Some video cards require that you load in a
           special VESA driver in order for this to work.  You will
           need to consult your video card manual for more information.

 PROBLEM:  SuperSer tells me about an "IRQ Conflict" or something!?

 SOLUTION: If you have changed the settings in the SS20.INI file, you
           may have assigned the same IRQ line to two different ports.
           Because of the way the PC was designed, this is not possible.
           You will have to change your port setup.

 PROBLEM:  SuperSer loads but the mouse wont move.

 SOLUTION: There are two possible reasons for this to happen:
           * Check to see if you have installed a mouse driver and your
             mouse is connected to the computer correctly.
           * You may have your mouse connected to COM1, for example
             and you are trying to use that port for SuperSer.
             You can do this if you wish, but you will not be able
             to use the mouse while SuperSer is running.
           If you know that you are trying to use your mouse port for
           a SuperSer connection, then you may use the fake-mouse
           system.  See [8] for info on disabling the mouse.

 PROBLEM:  SuperSer loads but the screen goes weird.

 SOLUTION: In this case either your video card or your monitor may not
           be able to handle the high resolution modes SuperSer uses.
           If you have changed the video mode in SS20.INI, try a lower
           mode.

 PROBLEM:  Two computers are connected but SuperSer doesn't respond.

 SOLUTION: Check SS20.INI to make sure that the COM ports that you have used
           are setup correctly (they must be enabled and have the correct
           port and irq), and you are both using the same baud rate.  If this
           is all correct, restart one copy of SuperSer.  If still nothing
           happens, check to make sure the cable is of the correct type.

 PROBLEM:  "I can see John's name but he can't see mine."

 SOLUTION: This situation could arise if the two copies of SuperSer were
           started at a conflicting time and the information got lost.
           Restart YOUR copy of SuperSer.  If the problem still persists, 
           see the solution above.

 PROBLEM:  The computer crashes and when SuperSer is restarted, the list of
           people on the network remains empty.

 SOLUTION: The other computers on the network need to be notified that
           the topology has changed.  Simply change your name temporarily,
           and then change it back if needed.  You can also try clicking the
           right mouse button on the desktop.  These two actions cause change
           in the network.

 PROBLEM:  "My modem isn't working properly"

 SOLUTION: It is often a good idea to customize your modem initalization
           string.  To do this with SuperSer, edit SS20.INI and change the
           ModemInit= setting in the appropriate section.

 PROBLEM:  Multiplayer Games become slow or lagged.

 SOLUTION: Decrease traffic on the network.  The more data trying to fit
           through a single modem link the slower games will go.  If you
           are using any 8250 UARTs, then that is probably the problem.
           Or, change the "TickDup" setting in the [NetGame] section of the
           INI file.  Set it from 2 to 5.  This will cause an apparant speed
           increase in your game, although you will also experience a loss
           of accuracy.

========================
Appendix B: Cable Wiring
========================

 This section contains details about the wiring of a standard 3 wire null
 modem cable.

 Plug #1           Plug #2
   TX <-------------> RX
   RX <-------------> TX
  GND <-------------> GND

 * On a 9 pin plug, TX is pin 3, RX is 2 and GND is 5.
 * On a 25 pin plug, TX is pin 2, RX is 3 and GND is 7.

 This will create a cable sufficient for use with SuperSer.

 If future versions of SuperSer support LPT or parallel port connections,
 a wiring layout of the cable involved will also appear here.

END OF README.TXT

