
                                   V1.3.1
                                          
                                      
                                        
                                
                                    
                                    


                                      by

                                    VOLCANO



    
     VOLCANO is not responsible for any loss, expenses or damage of any 
     kind, direct or indirect, caused by this program or by any use of  
     this program, the medium it is installed om or by possible misuse. 
    

INDEX

1 ........................ General
  1.1 ....................... Description
  1.2 ....................... Hardware requirements
  1.3 ....................... Distributing
  1.4 ....................... Technical stuff
2 ........................ Installing
  2.1 ....................... Note on screenmodes
3 ........................ The menu
  3.1 ....................... Random level generator
4 ........................ The game
  4.1 ....................... Controls
  4.2 ....................... The ships
  4.3 ....................... Powerups
  4.4 ....................... Tips & tactics
  4.5 ....................... Levels
5 ........................ Troubleshooting
  5.1 ....................... Common problems
  5.2 ....................... Known bugs
  5.3 ....................... Fixed bugs
6 ........................ Version information
  6.1 ....................... Version history
  6.2 ....................... To do
7 ........................ Authors & contacting VOLCANO
  7.1 ....................... Special thanks

1. General

    This game is freeware. Jup, that's right, we're giving our hard
    work away, for FREE! So, please enjoy it and drop us an e-mail to
    let us know our work wasn't for nothing.

    This game is also our first one that was released. (And hopefully not
    the last =)

  1.1 Description

    So what is this all about, I can hear you ask.
    Basicly you take a ship, take off and beat the living hell out
    of your friend(s), all flying in a big cavern.

    Also known as cave-flying in Finland ("luolalentely" :)

  1.2 Hardware reqiurements

    Required:
    a fast 486, 4 megs of free ram and a VGA-card +display.
    (might work even with less ram. UNTESTED!)

    Recommended:
    Pentium, 4 megs, Soundcard (SB or compatible), SVGA and couple of friends
    (the more the merrier :)

    I have personally tested this on P233MMX, P120 and P90. All worked
    fine. A friend claims, that the game is playable even on his 486/100.

  1.3 Distributing

    You are encouraged to distribute this game. Give it to your friends,
    upload to a BBS or the Internet. You MAY copy it freely as long as
    no extra prise is asked and the copy is identical to the original
    packet.

    You may NOT put this game onto CD-collections, hardware bundles or
    use it otherwise commercially without asking the authors first.
    (see: section 7, "Contacting VOLCANO")

  1.4 Technical stuff (to anyone interested)

    This game is programmed with DJGPP using Allegro 3.1
    Thanks Shawn & contributers for this great library!
    ( Allegro is an all-round game library for DJGPP and other platforms )

    Internaly this game works at steady 200 fps. If the computer
    cannot maintain the speed it will skip frames (= jerky motion).
    If the computer is really slow, the game will drop internal
    speed accordingly (though this shouldn't happen).

    The game consists  of a dozen headers and a couple C++ code files.
    Total of over 2000 lines of code. Not a nice thing to debug,
    you know :(  Source? Well, I might release it someday...

2. Installing

    Installing is really quite straight-forward. Just Unzip the packet
    to a directory of your choosing (which you propably have already
    done ;) and that's it. Don't forget to unzip with subdirectories (-d).

    "pkunzip -d viper121.zip c:\viper"
    Would unzip the game into directory C:\VIPER.

  2.1 Note on screenmodes

    The default screenmode is a MODE-X mode, sized 400x300.
    Unfortunately it isn't available on every VGA/SVGA card. If
    the default mode is not available use the -s command switch
    to specify another mode:

    SWITCH      SCREENMODE      HARDWARE        NOTES

    -s320       320x240         VGA (MODE-X)    Should be always available
    -s400       400x300         VGA (MODE-X)    This is the default mode
    -s640       640x480         SVGA            Needs VESA 1.x/2/3

    for example "play -s320"  would start the game in mode 320x240.


3. The menu

    After you have launched the game you will see the menu. From there
    you can change the number of lives, players or the level to be played.
    Up and down arrows move the highlight up and down and left and right
    are used to change the value. Enter is used to start the game or quit.

    If you choose EXTERNAL LEVEL as level you are asked to specify a name of
    external level, when you select start. You can use the mouse or keyboard.
    With keyboard, TAB will take you to the next field and shift + TAB to the
    previous. Use enter to select. If you press Cancel the game will exit.

    Choose RANDOM LEVEL to play a random level :)
    Pressing enter on it will re-generate the random level.
    You can then change the options, generate a new level or save your
    current level. Saved levels can be loaded with EXTERNAL LEVEL option
    and edited in graphic programs if wished. (They are standard image
    files)

    You can choose a CHRONO LEVEL in the same way as an external level.
    Chrono game will have weapons turned into training duds and will only
    push the other player. The objective of chrono levels is to fly through
    the checkpoints as fast as possible.

    Press enter on Select music to select music. This will now play every
    time you start the game. If you want to turn the music off, press
    esc on the music selection (or select Cancel).

    There is now an options menu. You can change some things that affect
    the visual or miscancellous aspects of the game. Obviously the more
    visual quality, the more cpu power is required. The halfline mode
    will drop visual quality and thus enchance the frame-rate.
    If you deselect the buffered mode the game won't use doublebuffer,
    thus increasing frame-rate on slower computers. However when not
    buffered the statistic panels will have some flickering.

    Options can be saved from the "save cfg" button in the options menu.
    Once saved options can be restored from "load cfg" and will also be
    loaded next time. To restore default settings delete file "viper.cfg"
    from the game directory.


4. The game

    The game itself is pretty straight-forward. The game begins with
    you all suspended in mid air, slowly begining to fall.

    You can control your ship by turning and applying thrust. The ship
    will *not* travel to the direction it faces, but continue the course
    it was sent originally like a space-craft. Only gravity, drag or your
    engine can change your direction of flight.

    Every time you burn your engine or use shields your ship consumes fuel
    (the rightmost gauge). Beware not to run out of it, as then you cannot
    use engines and will propably crash.

    You can shoot your opponents with your ships forward pointing auto-
    cannon (5 rounds a second) or defend against enemy bullets with your
    shields. Shields will consume energy (the left of the gauges) and will
    cease to function once depleted. Reloading requires fuel.
    
    You can land your ship on horizontal areas of level. You will have to
    land nose pointing straight up or you'll crash. Once landed your fuel
    tanks will be filled.

    There is now a new twich. You can go for a swim in the water. The
    lift of the water exeeds gravity, so you'll float. But your shields
    will be unavailable...

    The game ends after all players except one has lost all lives. The
    remaining player is the winner.

    During chrono games you will see you next checkpoint as a red rectangle.

    If you want to play with the computer use command switch "-c" or choose
    CPU from options menu.
    The computer player is currently disabled and will only hover.

  4.1 Controls

    Here are the default keys:

    Key       Player1   Player2     Player3     Player4

    Thrust      UP         S           Y           9
    Left        LEFT       Z           G           I
    Right       RIGHT      C           J           P
    Shield      DOWN       X           H           O
    Shoot       RSHIFT     TAB         V           7

    Show FPS    F1
    Hide FPS    F2

    These can be changed from the options menu ("set keys").
    If you want to save them, select "save cfg". It will save setting and
    keys.

  4.2 The ships

    The ships have different characteristics, which are described here:
    (If you don't like them, just select "identical" from the options menu.
    This feature will be turned on during chrono games to make things fair.)

    Ship 1 (grey)
        This ship is the average one. Exactly like the original version.
        Also when identical ships is selected, all ships are similar to
        this.

    Ship 2 (blue)
        This ship is made to fly. It is extremely fast, but not too
        manouverable. Also the batteries and fuel tank are small.

    Ship 3 (red)
        This one is the dreadnought. It carries loads of fuel and energy
        and fires extremely fast. Handles like a truck though...

    Ship 4 (yellow)
        This one is quite fast and extremely manouverable. A bit limited
        fuel tanks and batteries, but quite good all-round ship.


  4.3 Powerups

    If you have enabled powerups from the menu, they will appear at random
    on the playing field. One should appear every 15-20 seconds, but some-
    times it can take longer. And remember, you can only have one. If you
    pick up another you will lose the previous one, even if you pick up
    a fuel powerup...

    * Speedshot

        You can fire faster for 10 seconds.

    * Multicannon

        This will enable you to spray bullets all around you. Only approx.
        10 shots.

    * Spreadfire

        Fires 3-5 bullet formation in front of you. 10 seconds.

    * Rapid bullets

        Your bullets will travel 4x faster than normal for 15 seconds.

    * Backfire

         Get an extra cannon. One that points behind :) (13 seconds)

    * Targeter

         You will get a targeting beam pointing from your nose and a
         lead circle. Ie. if you fire when your targeting beam and the
         lead circle overlap you WILL hit your target if it WON'T change
         course or speed. (30 seconds)

    * Scattergun

         Your gun will start to jiggle as you shoot, never firing two
         bullets at the same direction again... until 15 seconds has
         passed.

    * Blowout

         Blows a wave of compressed air from you pushing everybody in
         your vicinity. Appears only if "scrap push" is enabled.

    * Afterburner

         Just as the name suggests. Double engine power, quadruble fuel
         consumption and huge flame out of your six. The flame will kill
         anybody that hits it except you yourself.

    * Power down

         Got too much power in your engines? Well, not after this one.
         Drops engine efficiensy to 50%, but fuel consumption is still
         the same...

    * Power steering

         Your ship turns 50% faster for 10 seconds.

    * Extra life
    * Fuel
    * Teleport

        These should be self evident :)

    * TRAPPED!

        Tough luck. These can be turned off from the options menu.
        (But what is more fun than watch on opponent die from one of these :)
    

  4.4 Tips & tactics

    Here a some helpful playing tips:

    * Always watch your fuel! Nothing is more embarrassing than running
      out of fuel in middle of a furious battle.

    * Remember you can't control your ship with shields on. It's easy
      to avoid opponent's bullets just to crash onto a wall.

    * Use your shields wisely. If your opponent gets you in between his
      bullets and a wall in hope of crashing you, drop your shields and
      try to run between two shells. The bullets might miss you, but the
      wall is solid as a rock.

    * Try to get your opponent between your bullets and a wall ;)

    * If you are flying down too fast, remember you can BOUNCE off level
      surfaces (if there is one).

    * Don't fly to your own bullets!


  4.5 Levels

    Some description about the levels. The maker is in parentheses.

    1. The Cavern (Toni)

        A typical cave. Has some landing spots and lots of stalagmites
        (or are they stalagtites, I can't remember) hanging from the
        ceiling. There are two main areas where fighting takes place:
        The center clearing and the area just under it.

    2. Finland (Toni)

        Nice easy level. Good for starters as it isn't too tight and
        has lots of landable areas. If one gets patriotic enough he
        can always start to defend the Finnish Flag... ;)

    3. Squares (Toni)

        Tight level for experts. This level has lots of narrow corridors
        and one big fighting arena around an L shaped block. Fast action
        packed gameplay.

    4. Grasslands (Johan Henrikson, see 7.1 "Special Thanks")

        A bit harder level with small landing-areas. Mostly ment for
        rookies though. A fast level but few survives the adventure.

    5. Sandland (Toni)

        A nice simple level. Have a nice flight around the rocks or go
        for a swim in the lake. (Note that this is the only level with
        water).

    6. The Great Testing Level (Toni)

        This level is included for nostalgic reasons. This was the first
        level made for viper and it was used during the early making
        and testing. Has extremely many landable areas (some are very
        low hills, if you can land on a level spot). No fancy graphics
        or finnishing.

    Moonbase (Toni)

        This level is mainly a chrono level. Fly around the stone blocks
        in fiqure eight (sort of).


5. Troubleshooting

  5.1 Common Problems

    P: The game drops me to DOS and throws a screenfull of errors!
    P: The screen is blank, but I can hear the game play!
    P: There are strange artifacts in the screen.
    P: The screen if doubled!

    S: These errors are most propably due unavailable screen mode.
       Have you looked at section 2.1 "Note on screenmodes"?
       Quick solution: run game with "play -s320"


    P: I don't hear any sounds!

    S: 1. Sometimes Allegro fails to autodetect your soundcard. If
          you have a SB-compatible one try setting the BLASTER-variable
          if it isn't already set.
       2. If you have a PnP soundcard and using DOS, ensure you have
          runned all nescessary drivers.
       3. Sometimes Win95 somehow seems to kill digital fx from ALL Allegro
          programs! (I managed to do it with Frontier + Evolution Midi
          playing at the same time, non-allegro games played fine!)


  5.2 Known bugs

    * The statistics are not entirely accurate. Powerups seem to add
      hits that are not hits...

    The following are not bugs:

    * The explosion sound isn't heard.
      All the sound channels are in use and the explosion isn't played.

    * Bullets destroy each others. This is meant to happen, don't
      complain about it!


  5.3 Fixed bugs

    * Sometimes explosions near ground makes a little hole in the ground.
      (fixed after V0.91b)

    * In rare occurances when two (or more) ships collide the resulting
      explosion leaves a mark on the level. (after V0.91b)

    * Two variables were mixed in collision detection, resulting in a degree
      of inaccuracy. (after V0.94)

    * The level generator used to write to unreserved memory locations with
      unpredictable results. (after V1.00)

    * NULL pointer caused a SIGSEGV if you chose external level before
      playing any other level in Dos. (after V1.0.3)

    * The random level-generator sometimes makes unconnected areas.
      (after V1.1.0)


6. Version information

  6.1 Version history

    V0.90b First released version (9. Sep 1998)
        * 2-4 players
        * 2 levels (though both made in a hurry)
        * 3 screenmodes
        * 2 known bugs

    V0.91b
        * 3 levels
        * fixed "small-holes-in-the-ground" bug
        * fixed "explosion-droppings" bug
        * half of the screen isn't wasted anymore in 2 player game

    V0.92b
        * 4 levels
        * minor changes in the code
        * finished the docs
        * description of levels
        * due to unfortunate occurances this was never released

    V0.93b
        * 5 levels
        * finally added checks to the code.
        * SUPPORT FOR EXTERNAL LEVELS ADDED!
          see "levels.txt" in directory "\levels"
        * corrected the file_id.diz (it had been wrong since V0.91)

    V0.93+
        * corrected Johan's homepage-address (see 7.1 Special Thanks)
        * added FPS-counter

    V0.94
        * added computer player

    V1.00
        * a minor bug fixed
        * some general tidying of code
        * added powerups!
        * added support for MIDI music during the game (directory "\music")
        * added water!
        * added random level generator!
        * 6 levels

    V1.0.1
        * a major bug fixed concerning the level generator
        * made the level generator adjustable with preview
        * changed version numering (I think this is more informative :)

    V1.0.2
        * added distortion when player bounces too fast
        * added stars to background
        * adjusted level generator (should produce less levels with un-
          connected areas). Still haven't been able to eliminate them...
        * added "options" menu
        * the game won't terminate immediatly when the 2nd last player has
          died so tie games are now possible

    V1.0.3
        * halfline rendering (increase speed)
    
    V1.1.0
        * fixed a bug that caused a SIGSEGV if you chose external level
          without playing a normal level first
        * the level size isn't fixed anymore
        * generated level can now be saved
        * powerups can be trapped
        * the ships are now unique

    V1.2.0 
        * keysetup
        * more balanced ships
        * single buffered mode (increase speed, add some flashing)
        * level generator upgraded:
           + unconnected areas-bug fixed
           + new motif
           + added objects
        * options can be saved
        * new powerup: Backfire
        * added pause (press "pause/break")

    V1.3.0
        * new gamemode: chrono levels
        * new powerups: targeter,scattergun,blowout,power down,afterburner
        * added powered by Allegro logo :)
        * improved some graphics a bit
        * explosions spray srcapnels (non-lethal, but push you)
        * tweaked the ships a bit more
        * added statistics

    V1.3.1 This version
        * fixed a bug that prevented to change option "scrap push"
        * new powerups: teleport, power steering, drunken bullets(desc)
        * big explosions


  6.2 To do
        
    There are still some things I'd like to do:

    * More levels
    * network/nullmodem support


7. Authors & Contacting VOLCANO

    VOLCANO is a Finnish gamegroup.
    At present we have two members.

    Toni Ylisirni: code, graphics, sound, some levels.
    Johannes Kivikangas: graphics, moral support, suggestions

    If you have comments, bug reports, or just want to ask something
    you can contact VOLCANO by e-mail or MB-Net (an awesome BBS in
    Finland)

    E-Mail: tylisirn@multi.fi
    MB-Net, conf 99: Toni Ylisirni 

    Newest version of viper will be available at VOLCANO's web site:
    http://www.geocities.com/TimesSquare/bunker/1766/volcano.html

  7.1 Special thanks

    We would like to thank the following people:

    DJ Delorie for DJGPP
    Shawn Hargreavers for Allegro
    Robert Hhne for RHIDE
    Everyone who has sended comments/bugs/suggestions

    And many thanks goes to Johan Henriksson for level and help with AI.
    * Visit his homepage: http://come.to/jhewok


                                - The End -
