Annotation of doom/windoom.doc, revision 1.1

1.1     ! root        1: WinDoom - V0.96
        !             2: 
        !             3: 14 Mar, 1998
        !             4: 
        !             5: CONTENTS:
        !             6: 
        !             7: i. foreword
        !             8: 1. What is WinDoom?
        !             9: 2. Program requirements
        !            10: 3. Setting up WinDoom
        !            11: 4. The console
        !            12: 5. Changing your controls
        !            13: 6. Using hi-res mode
        !            14: 7. Playing a network game
        !            15: a. Acknowledgments
        !            16: 
        !            17: ---------------------------------------------------------------------
        !            18: 
        !            19: i. Foreword - What's new with this version?
        !            20: 
        !            21: 1.  Fixed bug that kept left alt key from working.
        !            22: 
        !            23: 2.  Fixed "exit crash" bug.
        !            24: 
        !            25: 3.  Various memory leaks plugged.
        !            26: 
        !            27: 4.  Changed bind command to allow for key scancode entry.  This was
        !            28:     done solely to allow for foreign keyboard (or Dvorak) owners to
        !            29:     customize their controls.  You still can't change the weapons
        !            30:     keys nor can you change the console or menu keys.
        !            31: 
        !            32: NOTE: I cannot stress enough that you MUST have DirectX 5 installed
        !            33:       and working on your machine for this program to work.  If you
        !            34:       don't have DirectX 5, IT WILL NOT WORK. And no amount of com-
        !            35:       plaining to me about it will change that.
        !            36: 
        !            37: ---------------------------------------------------------------------
        !            38: 
        !            39: 1. What is WinDoom?
        !            40: 
        !            41: Thanks go first to id Software for making a great game then releasing
        !            42: the source code to it so we could have something else to play with.
        !            43: 
        !            44: I have changed no gameplay at all.  You CAN use some new cheat codes
        !            45: in the console but about all you can do now is get the backpack you
        !            46: couldn't get by cheating before.
        !            47: 
        !            48: WinDoom is my version (so far) of a Win32 port of the Linux Doom
        !            49: source code released by id Software.  I have gotten most of the
        !            50: features of the original program working but it isn't quite finished
        !            51: yet.  It does odd things occasionally.
        !            52: 
        !            53: Please DO E-Mail me with problems you've had with this especially if
        !            54: you can't get it working at all. I already know of most of the
        !            55: problems you may encounter and I am already addressing them.  But I
        !            56: want feedback about any problems you encounter.  There is a file
        !            57: generated in your game directory called windoom.dbg.  It contains
        !            58: some data that will probably be helpful to me in debugging whatever
        !            59: problem you've encountered. Screenshots may be helpful, too.
        !            60: 
        !            61: I have several very different systems to test this on and a LAN as
        !            62: well but I couldn't possibly duplicate the variety of systems you
        !            63: all have. Running it on your systems is the best testing I can get.
        !            64: 
        !            65: I know this is more like a public Beta test but I did want to share
        !            66: what I have done so far, though.
        !            67: 
        !            68: Also, please don't send me E-Mails asking for features or changes.
        !            69: There will be time enough for that after the game actually works
        !            70: properly. Please don't ask me to fix bugs in the original game. I'm
        !            71: just trying to make sure that changes I've made haven't introduced
        !            72: new bugs.
        !            73: 
        !            74: New revisions will be forthcoming soon.
        !            75: 
        !            76: Also, when I've got all the original Doom features working and the
        !            77: program stabilized, I will release my source code for the program.
        !            78: 
        !            79: To anyone working on their own Win32 ports of Doom: If you want to
        !            80: share programming information then all you have to do is ask. I'll
        !            81: tell you whatever I know if it will help.  I AM going to release my
        !            82: modified source code when I get this stabilized.
        !            83: 
        !            84: A few new things have been added along the way.
        !            85: 
        !            86: 1. A print screen key is now always available by pressing
        !            87:    the (Print Screen/Sys Rq) key on your keyboard.  If you
        !            88:    aren't playing a game, no message will appear on the
        !            89:    screen but a print screen PCX file WILL be generated.
        !            90: 
        !            91: 2. I have added a console similar to the Quake/Quake II
        !            92:    console.  It isn't as fancy and no doubt not as functional
        !            93:    as the Quake console but it works and any keyboard command
        !            94:    such as the cheats can be entered in the console.  Also,
        !            95:    all messages that appear on the screen briefly will be
        !            96:    displayed in the console.  The console key is the "`"
        !            97:    key.
        !            98: 
        !            99: 3. As you see above, a CD player is now supported.  A number
        !           100:    of features are planned for this (playlists, directory,
        !           101:    naming, song naming, etc.)  Trying to play a CD with no
        !           102:    CD in the drive will do nothing.  Removing the CD from the
        !           103:    drive while playing will result in the MIDI song being
        !           104:    restarted.  The CD player will detect if the CD has been
        !           105:    changed and start playing on the first music track (if
        !           106:    there is one) and will not play if there are no music
        !           107:    tracks.
        !           108: 
        !           109: 4. Midi file playing. Currently a single MIDI file will be played
        !           110:    (if it exists) in the game directory. The name of this file is
        !           111:    doomsong.mid.  It can be any valid MIDI file.  It will be played
        !           112:    ALL the time unless you turn on the CD player.
        !           113: 
        !           114: 5. There is now an "always_run" key. I got this idea from Chi
        !           115:    Hoang and his DOSDoom. The always_run key is the <CAPS LOCK>
        !           116:    key and it toggles between on and off.
        !           117: 
        !           118: 6. There is an "mvert" setting and an "mvert" key to toggle it on
        !           119:    and off.  It is persistent (gets saved and restored).
        !           120: 
        !           121: 7. Keyboard bindings have been added.
        !           122: 
        !           123: 8. Mouse and joystick bindings have been added.
        !           124: 
        !           125: 9. The system uses keyboard scancodes exclusively for system
        !           126:    controls.  All other values in windoom.ini are true=1 and
        !           127:    false=0.  true=on, false=off
        !           128: 
        !           129: 10.The ability to record, stop and play back demo from the console.
        !           130:    This is currently not working properly.  You can try it but it
        !           131:    probably won't work right.
        !           132: 
        !           133: ---------------------------------------------------------------------
        !           134: 
        !           135: 2. Program Requirements
        !           136: 
        !           137: This program is a Win32 application and REQUIRES DirectX 5
        !           138: (available for NT).  It would not have been possible to do
        !           139: what was done with DirectX 3.  DirectX 5 will be supported in
        !           140: the 5.0 version of NT. If you have Windows95 and you don't have
        !           141: DirectX 5, you can get it here:
        !           142: 
        !           143: http://www.microsoft.com/msdownload/directx5/directx5.htm
        !           144: 
        !           145: If you have NT 4.0 and want DirectX 5 you'll have to look around
        !           146: for it.  It's there but I don't know a stable place you can
        !           147: download it from.
        !           148: 
        !           149: If you want to run ANYTHING under Windows95 you really should
        !           150: have at least 16 Meg of RAM.  32 Meg is MUCH better. NT better
        !           151: have 32 to start with.
        !           152: 
        !           153: You must have a functioning TCP/IP connection to play a
        !           154: network game using this program.  Internet play is not stable
        !           155: at all and not recommended.
        !           156: 
        !           157: You CAN play with just the keyboard but both the mouse and
        !           158: a joystick (or other game controller) are supported.
        !           159: 
        !           160: There is a way for people who use NT 4 to run this program.
        !           161: There is a version of DirectX 5 for NT 5 floating around the
        !           162: Internet.  I found it at www.op3dfx.com on the 15 Jan, 1998
        !           163: news page. It appears to be the DirectX 5 from the NT 5 beta.
        !           164: I don't know that this is supposed to be distributed but I
        !           165: downloaded it and installed it on my NT 4.0 Server and it
        !           166: works.
        !           167: 
        !           168: As far as I can tell, no resolutions below 640x480 are supported
        !           169: by the DirectX 5 for NT drivers.
        !           170: 
        !           171: 
        !           172: ---------------------------------------------------------------------
        !           173: 
        !           174: 3. Setting up WinDoom
        !           175: 
        !           176: Create a directory and put the WinDoom.exe program in it
        !           177: along with the Doom IWAD of your choice  (I've tested this
        !           178: with all three of the Doom I wads (doom1.wad, doom.wad and
        !           179: doomu.wad) as well as doom2.wad, tnt.wad and plutonia.wad.
        !           180: 
        !           181: The order of precedence in looking for an IWAD is this:
        !           182: 
        !           183: doom2.wad    - retail Doom II wad file
        !           184: plutonia.wad - Another Doom II IWAD from id
        !           185: tnt.wad      - Another Doom II IWAD from id
        !           186: doomu.wad    - ultimate Doom I retail wad file
        !           187: doom.wad     - Doom I registered shareware wad
        !           188: doom1.wad    - Doom I unregistered shareware wad
        !           189: 
        !           190: When the program is first run, it will create a section in
        !           191: the win.ini file for WINDOOM that stores the location of
        !           192: the WinDoom program.  If you move the program or change the
        !           193: name of the directory in which the program is installed you
        !           194: need to update this ini file entry or remove it.
        !           195: 
        !           196: An ini file will be created (or updated) in the directory
        !           197: in which WinDoom is run with the configuration information
        !           198: for the program. Modifying this file is currently the only way
        !           199: to change some of the mouse/joystick mappings.
        !           200: 
        !           201: A way to change your keyboard mappings and the values for your
        !           202: mouse and joystick has been added to the console in the program.
        !           203: 
        !           204: Make sure your shortcut, if you create one, has the directory
        !           205: where you installed the program as the working directory.  It
        !           206: probably won't run otherwise.
        !           207: 
        !           208: I have not tried some of the original command line options to see
        !           209: if they work or not.  I have spent most of my time writing code
        !           210: to get the program working.  I will be testing the rest of these soon.
        !           211: 
        !           212: I have tested the following and know that they work:
        !           213: 
        !           214: -nomonsters
        !           215: -deathmatch
        !           216: -altdeath
        !           217: -net
        !           218: -skill
        !           219: -warp
        !           220: -episode
        !           221: -playdemo
        !           222: -timedemo
        !           223: -record
        !           224: -file
        !           225: -width
        !           226: -height
        !           227: 
        !           228: For information on how to use the options other than -net, -width
        !           229: and -height please see the official Doom FAQ.
        !           230: 
        !           231: I don't know of any others that are normally usable.
        !           232: 
        !           233: 
        !           234: ----------------------------------------------------------------
        !           235: 
        !           236: 4. The console
        !           237: 
        !           238: This program does not currently support the original music from 
        !           239: the game. It is stored in a format called "MUS" and is not
        !           240: directly playable by the MCI midi sequencer in Windows.
        !           241: 
        !           242: In order to still have music in the game, I wrote some routines
        !           243: to access and control the cd player that is found in most pc's
        !           244: today.
        !           245: 
        !           246: I made a vain attempt to map the cd controls into unused keys
        !           247: in the Doom keyboard but no combination I could think of made
        !           248: any sense.  So I created a console where cd commands could be
        !           249: entered.
        !           250: 
        !           251: While I was testing the code for controlling the cd player from
        !           252: the console, I remembered what an absolute pain it was to try 
        !           253: to enter cheat codes without being able to tell if the keys
        !           254: were entered properly.  I decided to allow cheat code entry
        !           255: into the console as well so I could see what I was typing.
        !           256: 
        !           257: I then decided to add NEW cheat codes that were similar to
        !           258: the ones I had gotten used to in Quake and Quake II. It sort
        !           259: of ballooned from there...
        !           260: 
        !           261: The console command key is "`".  This key both opens and closes
        !           262: the console.  The menu command key <ESC> also closes the console
        !           263: and starts the menu.  If the menu is up when you press the console
        !           264: command key, the menu will close and the console will open.
        !           265: 
        !           266: Here is a list of the commands you can now enter on the command
        !           267: line of the console:
        !           268: 
        !           269:    iddqd          - god mode
        !           270:    idfa           - full ammo
        !           271:    idkfa          - keys full ammo
        !           272:    idclev         - change level
        !           273:    idchoppers     - chainsaw and invulnerability
        !           274:    idclip         - no clipping toggle
        !           275:    idspispopd     - no clipping toggle
        !           276:    idbeholdi      - invisibility
        !           277:    idbeholdv      - invulnerability
        !           278:    idbeholds      - strength (berserk pack)
        !           279:    idbeholdr      - radiation/environment suit
        !           280:    idbeholdl      - light amplification goggles
        !           281:    idbeholda      - all map cheat
        !           282:    cd on          - starts your cd player (switches from midi)
        !           283:    cd off         - stops your cd player (switches to midi)
        !           284:    cd pause       - pause/resume cd music toggle
        !           285:    cd resume      - pause/resume cd music toggle
        !           286:    cd next        - play next song on cd
        !           287:    cd +           - play next song on cd
        !           288:    cd prev        - play previous song on cd
        !           289:    cd -           - play previous song on cd
        !           290:    cd XX          - plays song number specified in XX 00 to 99
        !           291:    midi pause     - pauses/resumes the midi playback (toggle)
        !           292:    midi resume    - pauses/resumes the midi playback (toggle)
        !           293:    quit           - quits the game (immediately)
        !           294:    god            - enable god mode (degreelessness?) toggle
        !           295:    map            - e?m? or map?? (Doom I or Doom II map names)
        !           296:    noclip         - no clipping toggle
        !           297:    give all       - gives full ammo,armor,health,weapons,keys
        !           298:    give ammo      - gives full ammo
        !           299:    give armor     - gives full armor
        !           300:    give health    - give 100% health
        !           301:    give weapons   - gives all weapons
        !           302:    give keys      - gives all keys
        !           303:    give backpack  - gives ammo backpack
        !           304:    always_run X   - toggles always run 0 = off, 1 = on
        !           305:    swap_stereo X  - toggles swap left/right 0 = off, 1 = on
        !           306:    bind           - binds a value to a cvar
        !           307:    record         - records a demo in new demo II format
        !           308:    finish         - stops recording a demo II format demo
        !           309:    play           - plays back a demo II format demo
        !           310:    cmdlist        - lists console commands
        !           311: 
        !           312:    The map and idclev commands are disabled from the console
        !           313:    during a network game. It crashes the machine you do it
        !           314:    on and locks up the KEY player's machine.  The other players
        !           315:    can exit the game but their systems are VERY slow. (You
        !           316:    have to hold the keys longer.)
        !           317: 
        !           318:    All the original cheat codes work EXACTLY as they did
        !           319:    originally.  No changes have been made to those. The
        !           320:    new MAP command works similarly to the MAP command in
        !           321:    Quake/QuakeII. If you want to select a Doom 1 or Doom
        !           322:    II level you type in MAP then the full name of the
        !           323:    map you want to load (E1M7 or MAP19).
        !           324: 
        !           325:    All the cheats are disabled during network games, also.
        !           326:    Note: This does not include the game control commands,
        !           327:    just the "cheats".
        !           328: 
        !           329:    A number of other commands are planned for this. Mostly
        !           330:    just game variables that you can set. (like always_run)
        !           331: 
        !           332:    All game input is dead while the console is active, so
        !           333:    be warned! The <ESCAPE> key as well as the "`" key will
        !           334:    terminate the console.  Any command that you have not
        !           335:    pressed <ENTER> to complete will be thrown away.  The
        !           336:    menu and console shut each other down when you call
        !           337:    them up.  They are mutually exclusive.
        !           338: 
        !           339: 
        !           340: ----------------------------------------------------------------
        !           341: 
        !           342: 5. Changing your controls
        !           343: 
        !           344: 
        !           345: With the "bind" command on the console, you can now change
        !           346: your keyboard mappings from the console.  Additional mappings
        !           347: and controls will be added later.
        !           348: 
        !           349: The bind command works backwards from the Quake bind command.
        !           350: You enter the bind command, the cvar you want a keystroke bound
        !           351: to followed by the key or the keyname.
        !           352: 
        !           353: Some keys are not printable and so are accessed through their
        !           354: keyname.  Other keys are printable and accessed directly by
        !           355: entering the actual key.
        !           356: 
        !           357: The following are the keyboard control cvars that have been
        !           358: implemented so far:
        !           359: 
        !           360: key_right       - the key to turn right - also used in menu
        !           361: key_left        - the key to turn left - also used in menu
        !           362: key_up          - the key to move forward - also used in menu
        !           363: key_down        - the key to move backward - also used in menu
        !           364: key_strafeleft  - key used to slide to the left
        !           365: key_straferight - key used to slide to the right
        !           366: key_fire        - key used to fire weapons
        !           367: key_use         - key used to open doors and flip switches
        !           368: key_strafe      - toggle key used to change turn to strafe
        !           369: key_speed       - key used to go faster (straight or turning)
        !           370: joyb1           - joystick button 1
        !           371: joyb2           - joystick button 2
        !           372: joyb3           - joystick button 3
        !           373: joyb4           - joystick button 4
        !           374: mouseb1         - left mouse button
        !           375: mouseb2         - right mouse button
        !           376: mouseb3         - middle mouse button
        !           377: 
        !           378: These cvars can be set to any printable character or they
        !           379: can be set to any of the following key names:
        !           380: 
        !           381: NULL        - do nothing
        !           382: BACK        - back-space
        !           383: ENTER       - normal enter key (may not function properly)
        !           384: LCTRL       - left control key
        !           385: LSHIFT      - left shift key
        !           386: RSHIFT      - right shift key
        !           387: LALT        - left alt key
        !           388: SPACE       - space bar
        !           389: CAPS        - caps lock key
        !           390: NUMLOCK     - numlock lock key
        !           391: SCROLL      - scroll lock key
        !           392: PAD7        - 7/home key on keypad
        !           393: PAD8        - 8/up arrow on keypad
        !           394: PAD9        - 9/page up on keypad
        !           395: PAD-        - the "-" key on keypad
        !           396: PAD4        - 4/left arrow on keypad
        !           397: PAD5        - 5 key on keypad
        !           398: PAD6        - 6/right arrow on keypad
        !           399: PAD+        - the "+" key on keypad
        !           400: PAD1        - 1/end key on keypad
        !           401: PAD2        - 2/down arrow on keypad
        !           402: PAD3        - 3/page down on keypad
        !           403: PAD0        - 0/insert on keypad
        !           404: PAD.        - ./delete on keypad
        !           405: PADENTER    - enter key on keypad
        !           406: RCTRL       - right control key
        !           407: PAD/        - the "/" key on keypad
        !           408: RALT        - right alt key
        !           409: HOME        - home key (grey)
        !           410: UP          - up key (grey)
        !           411: PAGEUP      - page up (grey)
        !           412: LEFT        - left arrow (grey)
        !           413: RIGHT       - right arrow (grey)
        !           414: END         - end key (grey)
        !           415: DOWN        - down key (grey)
        !           416: PAGEDOWN    - page down (grey)
        !           417: INSERT      - insert key (grey)
        !           418: DELETE      - delete key (grey)
        !           419: 
        !           420: The bind command currently works backward from the bind command
        !           421: in Quake.  The Quake bind command binds commands to keys.  This
        !           422: bind command binds keys to commands.  A subtle but important
        !           423: difference. (and one that may change)
        !           424: 
        !           425: Doom was designed with only a few customizable commands. The
        !           426: rest are set and unchangable.  Quake was designed with a very
        !           427: different idea about how the controls should work.
        !           428: 
        !           429: Doom may, at a later date, be converted to use the type of
        !           430: command control that Quake uses.  For now I have stayed with
        !           431: the original command implementation.
        !           432: 
        !           433: The commands in Doom are referred to as cvars.
        !           434: 
        !           435: The bind command syntax works like this:
        !           436: 
        !           437: BIND KEY_USE SPACE
        !           438: 
        !           439: Which will bind the space bar to the use cvar. You will get a
        !           440: message if the bind command is successful telling you that the
        !           441: cvar is bound to the key you specified like this:
        !           442: 
        !           443: CMD KEY_USE BOUND TO SCANCODE 57
        !           444: 
        !           445: In this case the space bar has a keyboard scan code of 57.
        !           446: 
        !           447: If the keyboard command you are trying to bind to a command
        !           448: cvar does not exist, you will get this error message:
        !           449: 
        !           450: BIND ERROR: INVALID KEY VALUE
        !           451: 
        !           452: If the keyboard command cvar you are trying to bind does
        !           453: not exist, you will get this error message:
        !           454: 
        !           455: BIND ERROR: INVALID CVAR
        !           456: 
        !           457: There is also another type of command you can issue at the
        !           458: console which is not listed above because it is used to
        !           459: set the value of some game control cvars.
        !           460: 
        !           461: Control cvars are not the same as command cvars.  Command
        !           462: cvars are used to generate program input.  Control cvars
        !           463: are used to control the way the program behaves.
        !           464: 
        !           465: The currently defined control cvars are:
        !           466: 
        !           467: always_run     - you always run in the game
        !           468: swap_stereo    - reverses stereo sound "panning"
        !           469: usemouse       - is mouse input available
        !           470: mousebfire     - which mouse button is used to "fire"
        !           471: mousebstrafe   - which mouse button toggles "strafe"
        !           472: mousebforward  - which mouse button moves you forward
        !           473: usejoystick    - is joystick input available
        !           474: joybfire       - which joystick button is used to "fire"
        !           475: joybstrafe     - which joystick button toggles "strafe"
        !           476: joybuse        - which joystick button opens doors/flips switches
        !           477: joybspeed      - which joystick button makes you run
        !           478: mvert          - 0 = mouse normal, 1 = mouse left/right only
        !           479: 
        !           480: The syntax for using these controls is simple. You enter the
        !           481: name of the cvar and the value you wish to assign to it like
        !           482: this:
        !           483: 
        !           484: always_run 0
        !           485: 
        !           486: If the cvar is valid and the value is within the acceptable
        !           487: limits, you will get a message like this:
        !           488: 
        !           489: always_run SET TO 0
        !           490: 
        !           491: If you enter an invalid cvar name, you will get this error
        !           492: message:
        !           493: 
        !           494: ERROR: INVALID CVAR
        !           495: 
        !           496: If you enter a valid cvar name but enter an invalid value for
        !           497: it, you will get this error message:
        !           498: 
        !           499: ERROR: INVALID VALUE
        !           500: 
        !           501: The usemouse and usejoystick cvars tell the program whether
        !           502: you want to use mouse and/or joystick input if either or both
        !           503: are available.
        !           504: 
        !           505: The value of 0 for either of these turns off the support for
        !           506: that device.  A value of 1 turns it back on.
        !           507: 
        !           508: The button numbers for the mouse and joystick start at 0 rather
        !           509: than 1. So a two button mouse has buttons 0 and 1. The left and
        !           510: right mouse buttons respectively. A joystick with two buttons
        !           511: also has buttons 0 and 1.  Which button is which usually depends
        !           512: on the joystick but the trigger is usually button 0 while the
        !           513: the other buttons are numbered starting at 1.  Some experimen-
        !           514: tation may be required before you get the buttons to work the
        !           515: way you expect them to.
        !           516: 
        !           517: Remember that usemouse must be set to 1 to be able to use a
        !           518: mouse and usejoystick must be set to 1 to be able to use a
        !           519: joystick with the program.
        !           520: 
        !           521: The functions defined in the cvars list are ALL the functions
        !           522: that could ever be assigned to mouse and joystick controls in
        !           523: Doom.  No other functions have ever been possible.
        !           524: 
        !           525: The changes you make to your controls with this are immediate
        !           526: and persistent. (meaning that they are saved in the windoom.ini
        !           527: file and are used the next time you start the WinDoom)
        !           528: 
        !           529: 
        !           530: ----------------------------------------------------------------
        !           531: 
        !           532: 6. Using hi-res mode
        !           533: 
        !           534: 
        !           535: Part of the reason for porting this code to Win32 was to be
        !           536: able to use high resolution video modes.
        !           537: 
        !           538: This program supports all video 8 bit (256) color modes that are
        !           539: available with the DirectDraw drivers on your computer.  Some are
        !           540: not recommended.  Do NOT try to use video modes where the height
        !           541: value is greater than the width value. (i.e. 320x400)  You will
        !           542: NOT be happy with the result and the program will probably die.
        !           543: 
        !           544: In order to know what video modes are available to you, you can
        !           545: look in the DirectX applet in your control panel or you can run
        !           546: the program once and look at the contents of the windoom.dbg
        !           547: file created in the directory where you installed the program.
        !           548: 
        !           549: Once you have run WinDoom a video mode list will be written to
        !           550: the windoom.dbg file.  You can pick a mode from this list as
        !           551: long as the height does not exceed the width and the color bits
        !           552: value is 8.
        !           553: 
        !           554: I have had some machines not give a picture when running in some
        !           555: of the high resolution modes even though the program was running.
        !           556: I could press escape, down, enter and "y" to exit the program
        !           557: but I never saw any output from the game.  I don't know what
        !           558: causes this.  I am investigating it.  If you have this problem
        !           559: please notify me and tell me what video setup you have.
        !           560: 
        !           561: The syntax for high the resolution modes is:
        !           562: 
        !           563: -width xxxx -height yyy
        !           564: 
        !           565: where the xxxx is the width you want to use (like 320) and the
        !           566: yyy is the height you want to use (like 240).  So to start
        !           567: WinDoom and run the program at 640x480 resolution, you would
        !           568: put the following parameters on the command line of your WinDoom
        !           569: shortcut:
        !           570: 
        !           571: -width 640 -height 480
        !           572: 
        !           573: You can access the command line for your shortcut by right
        !           574: clicking the mouse on the shortcut then selecting the properties
        !           575: option then clicking on the properties tab in the dialog box.
        !           576: 
        !           577: 
        !           578: DISCLAIMER
        !           579: 
        !           580: I make absolutely NO warrantees of any kind for this
        !           581: program.  I am not responsible for any consequences
        !           582: of anyone using this program.
        !           583: 
        !           584: id Software owns the rights to Doom and to the source
        !           585: code they distributed.  This program was compiled from
        !           586: source code to that game that was modified by me. So
        !           587: don't bug id Software if you've got a problem with
        !           588: this program.  I'm the one who screwed up. Tell me.
        !           589: 
        !           590: 
        !           591: ---------------------------------------------------------------------
        !           592: 
        !           593: 7. Playing a network game
        !           594: 
        !           595: Okay, this is little different than a DOS Doom network game.
        !           596: It's just like the Linux parameters, though.
        !           597: 
        !           598: What you want to do is create a shortcut to your game and
        !           599: then change the parameters of your shortcut to include the
        !           600: network commands on the command line.
        !           601: 
        !           602: The parameter to start a network game is "-net" (without the
        !           603: quotes).  You then follow the -net command with the player
        !           604: number your machine is going to be (1 to 4) and the IP
        !           605: addresses or hostnames of the OTHER systems you will be
        !           606: playing with. The IP addresses MUST be preceded by a period
        !           607: ".". If you leave off the leading period, the game will
        !           608: think that the IP address is a hostname and try to resolve
        !           609: it into an IP address (and die on you).
        !           610: 
        !           611: Sample command lines for two players would look like this:
        !           612: 
        !           613: machine 1: (hostname: rimmer IP address: 192.168.1.5)
        !           614: windoom -net 1 holly -deathmatch -nomonsters
        !           615: OR
        !           616: windoom -net 1 .192.168.1.4 -deathmatch -nomonsters
        !           617: 
        !           618: machine 2: (hostname: holly IP address: 192.168.1.4)
        !           619: windoom -net 2 rimmer -deathmatch -nomonsters
        !           620: OR
        !           621: windoom -net 2 .192.168.1.5 -deathmatch -nomonsters
        !           622: 
        !           623: In order to use hostnames rather than IP addresses you
        !           624: must either have DNS setup or have a valid hosts file.
        !           625: 
        !           626: If you add a third or fourth machine to the game you need
        !           627: to add the IP addresses of the OTHER machines to the
        !           628: command line on each machine. You do not put your own
        !           629: machine's IP address on the command line.  You also
        !           630: do not put how many machines are in the game after the
        !           631: -net command.  Only which player, out of the 4, you are.
        !           632: 
        !           633: The player numbers must be contiguous.  You can't have
        !           634: players 1,2 and 4.  Also, one player MUST be player 1.
        !           635: Player 1 is the KEY player and that machine coordinates
        !           636: all the other systems.
        !           637: 
        !           638: The number of players in the game is determined by how
        !           639: many IP addresses you put on the command line plus your
        !           640: machine.
        !           641: 
        !           642: The command line on the KEY player's machine in a four
        !           643: player game might look like this:
        !           644: 
        !           645: windoom -net 1 .192.168.1.3 .192.168.1.4 .192.168.1.5 -deathmatch -nomonsters
        !           646: OR
        !           647: windoom -net 1 cat holly rimmer -deathmatch -nomonsters
        !           648: 
        !           649: The other player's command lines in the same game might
        !           650: look like this:
        !           651: 
        !           652: windoom -net 2 lister holly rimmer -deathmatch -nomonsters
        !           653: OR
        !           654: windoom -net 2 .192.168.1.2 .192.168.1.4 .192.168.1.5 -deathmatch -nomonsters
        !           655: 
        !           656: windoom -net 3 lister cat rimmer -deathmatch -nomonsters
        !           657: OR
        !           658: windoom -net 3 .192.168.1.2 .192.168.1.3 .192.168.1.5 -deathmatch -nomonsters
        !           659: 
        !           660: windoom -net 4 lister cat holly -deathmatch -nomonsters
        !           661: OR
        !           662: windoom -net 4 .192.168.1.2 .192.168.1.3 .192.168.1.4 -deathmatch -nomonsters
        !           663: 
        !           664: If you start a network game and the program appears to be
        !           665: "hung" (black screen only), press and hold the escape
        !           666: key for a few seconds.  The program will terminate. It
        !           667: generates an error when shutting down but it doesn't
        !           668: affect game play.  I should have that error figured out
        !           669: soon.
        !           670: 
        !           671: I DO NOT know if the UDP datagrams used are robust enough
        !           672: to allow this to be played over the internet.  My assumption
        !           673: is that it would be but I don't know. I haven't tried it.
        !           674: 
        !           675: I have started up a four player game on my network and
        !           676: played at all four stations. Response was good and play
        !           677: appeared to be smooth.
        !           678: 
        !           679: I'd be interested to know if anyone is able to play this
        !           680: over the Internet with all the problems that entails. I can't
        !           681: because of my router.
        !           682: 
        !           683: ---------------------------------------------------------------------
        !           684: 
        !           685: a. Acknowledgements
        !           686: 
        !           687: Thanks to all of you who have downloaded the program (I'm not
        !           688: calling it a game. The game part comes from id!).  Your feedback
        !           689: has been very helpful and has made this a better program.
        !           690: 
        !           691: And to those of you who have had problems.  I thank you for
        !           692: your patience while I worked out the bugs you've reported.
        !           693: 
        !           694: Thanks again to id Software for making Doom.
        !           695: 
        !           696: Thanks to Chi Hoang, Andy Bay, and Bernd Kreimeier for the
        !           697: programming ideas.
        !           698: 
        !           699: Thanks to the other members of Project Doom for their support
        !           700: and interest.
        !           701: 
        !           702: Thanks to John Carmack, John Cash, Michael Abrash, Brian Hook
        !           703: for letting me peek over your shoulder (figuratively speaking)
        !           704: occasionally.  It's been very instructive.
        !           705: 
        !           706: 
        !           707: Microsoft(tm)(c) 1975-1998, Microsoft, Inc., All Rights Reserved.
        !           708: Quake(R)(c) 1996, id Software, Inc. All Rights Reserved.
        !           709: Quake II(R)(c)1997, id Software, Inc. All Rights Reserved.
        !           710: DOOM(R)(c) 1993, id Software, Inc. All Rights Reserved.
        !           711: DOOM(R) and the DOOM image are registered trademarks of
        !           712: id Software, Inc.
        !           713: 
        !           714: ---------------------------------------------------------------------
        !           715: 
        !           716: WARNINGS!
        !           717: 
        !           718: This program is by no means ready for prime time but it does work
        !           719: mostly.  The original music was a large part of Doom for some of
        !           720: us and this game isn't complete without it. It IS being worked on.
        !           721: It may not be possible, however, to play against other versions of
        !           722: Doom with this code.  I DO have the specifications for the IPX
        !           723: protocol used by the original Doom and I will attempt to make that
        !           724: work as well.
        !           725: 
        !           726: Supporting DOS Doom in network games is, therefore, doubtful but
        !           727: it may happen.  However if Chi and I can maintain the same message
        !           728: data for the networking, you should be able to play network games
        !           729: between the two.
        !           730: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.