********************  Decsent v1.0 Gameplay Instructions  *******************

Table of contents
I.  Introduction
II.  Running the game
  A.  Installation & startup
  B.  Main Menu
    1.  New Game
    2.  Load Game
    3.  Multiplayer
    4.  Edit Level
    5.  Edit Keys
    6.  Quit Game
III.  Credits
IV.  Secrets of the game
V.  Internal knowledge for programmers
VI.  Conclusion

I.  Introduction
  Welcome to Decsent.  A 3-D world of excitement and adventure.  If you have
played the original Descent by Interplay, you will love this portable
adventure!  Fully editable levels, multiplayer gameplay, changeable keys,
and so much more make this 3-D test program intruiging to both gamers and
programmers alike.
  Simple to follow complimentary instructions make it all too hard to refuse
to put on your TI-82 calculator.  I will guide you personally through the
game using simple terminology that the less experienced will love.  Enough
talk, let's get to the game!



II.  Running the game
  Decsent requires almost all available memory to the calculator.  You might
be able to keep some programs on if they are small enough.  If you don't
care if you lose all of your programs then press 2nd-MEM-3-2 and your
calculator's memory will be cleared.  Once you have the right amount of space
on your calculator to load the programs continue on to the installation
section.

NOTE:  For advanced programmers, you need about 20K just to load it on and
25K - 26K to run it.

  A.  Installation & startup
  Before installing the files from a computer/calculator make sure you have
every single one or you will get errors when you run Decsent:

DECSCMP1               (Compressor #1)
DECSCMP2               (Compressor #2)
DECSDRAW               (Draws 3-D cube world)
DECSEDIT               (For editing the levels)
DECSENT                (Main controlling program)
DECSFIRE               (Enemy firing pattern)
DECSGRPH               (Draws items/robots)
DECSLASR               (Fires laser)
DECSMESG               (Displays running message)
DECSMISL               (Fires homing missle)
DECSPLAY               (Main game play program)
DECSRACT               (Reactor graphics)
DECSROBT               (Robot graphics)
DECSXPLD               (Explosion of robots/reactor)
DECSXTR1               (Extracts a level)
DECSXTR2               (Extracts current view)
DECSXTR3               (Extracts current block)
QCIRCLE                (Quick circle program (for explosions/missles))

Once you have made sure these files are transferred, then you can run the
program DECSENT.

WARNING:  Running any other program besides DECSENT could cause an error...
if this happens, I am NOT to be held responsible in any manner.

  B.  Main Menu
  Once you have started the game, you will notice a menu from which you have
many options to choose from.  I will be going through each one in simple
steps.

    1.  New Game
  Obviously, if you have never played the game in your life, you might want
to read on.  However, if you are up to the challenge of figuring out every
single thing on your own, that is up to you...I wouldn't really reccommend
it though.

NOTE:  It takes about 5 minutes to load a fully developed level.

    2.  Load Game
  After beating each level, your game is automatically saved so you can
return to where you left off if you die.  Just choose this option and the
level will be reloaded.

    3.  Multiplayer
  This option should only be used when both players know what they are doing.
Since this section isn't bug free, ALL instructions need to be followed very
carefully.
1)  Select Multiplayer from the main menu.
2)  You will be given a choice between Master or Slave calculator.  Master
and Slave are terms used in networked games for the computer.  In this game,
the Master calculator gets to load levels 1, 3, and 5.  The Slave calculator
gets to load levels 2, 4, and 6.  One calculator MUST be Master and the other
MUST be Slave.
3)  While the one calculator is extracting the level, you must wait in pause
mode on the other until the extracting is complete.  Once the first
calculator is in pause mode, press enter on the second, then press enter on
the first.
4)  During the game play, if someone blows up the reactor, the calculator
will pause.  Press the [GRAPH] key on the second calculator.  Wait until the
timer on the second calculator starts and press enter to continue on the
first calculator.  If nothing happens when you press the [GRAPH] key, then
press it again.
5)  The objective of the Multiplayer game is to survive the longest.  The
person who dies all the way first is the loser.  If both players reach the
end of the sixth level, then it is considered a tie.  If a player dies all
the way during the game, the calculator will pause.  Press [GRAPH] on the
other calculator and wait until it calculator exits the game also to press
enter on the first calculator.
6)  For advanced players/programmers, during the loading stage, the cable
does not need to be in.  If the cable is in the calculator, it slows it down
considerably.  You may also remove the cable during the game until the
reactor is blown.  Then re-insert it, and follow step 4.

STRONG NOTE:  Failure to follow these directions to the letter will increase
the probability of errors.  If serious enough, they will cause the program
to crash.  If this happens, I am NOT to be responsible in any way.

    4.  Edit Level
  Editing a level in any game is always fun.  This level editor is easy to
understand, as well as fun to use.  First, however, I need to tell you a
little about Decsent.  In the world of Decsent, you will notice that all the
cubes are connected and some of them have items to pick up as well.  I have
created a level editor to manage making and filling in levels easily.
  I have already mentioned sides.  Each cube has six sides.  Since making a
level can take anywhere from 30 minutes to 2 hours, I recommend you design
your level on paper first with the following things in mind:
1)  Every level needs a starting cube, reactor, and exit cube.
2)  You can only have 4 connections maximum to other cubes.
3)  You can only have a total of 126 cubes.
  Once you have made a level (if you do it on paper) that qualifies to all
three specifications, you may start building your level.  Just follow the
instructions below:
1)  Choose Level Editor from the main menu.
2)  You will be asked if you wish to edit the level that is saved or to
start a new one.  Choose whichever one you wish to edit.  If the level is
the one that is saved, then you will have to wait while it loads.
3)  Start building your level.  Press the [ Y= ] key to enter the editor.
The first thing you will see is something like this:
BLOCK: 1                      (current block you are sitting in)
SIDE: 0                       (type of connection)
CONNECT: 2                    (block connected to)
CENTER: 0                     (What is in the center of the current block)
This tells you that you are currently in block one (with nothing in it)
facing an open connection to block 2.
SIDE: 0  =  open connection             CENTER: 0  =  nothing
SIDE: 1  =  wall...no connection        CENTER: 1  =  key
SIDE: 3  =  regular door                CENTER: 2  =  cloak
SIDE: 4  =  door requiring key          CENTER: 3  =  extra life
SIDE: 5  =  exit door                   CENTER: 4  =  prox. bombs
SIDE: 6  =  locked door                 CENTER: 5  =  laser
                                        CENTER: 6  =  invulerability
CENTER: 7  =  shield                    CENTER: 8  =  energy
CENTER: 9  =  robot                     CENTER: 10  =  reactor
CENTER: 13  =  end of level             CENTER: 14  =  homing missles
3)  Press enter to continue to the menu.  Here you will see the editor's main
menu.  Choosing Side will edit the side you are currently facing.  Center
will edit the center of the current block.  Save level does just exactly
that.  Return will send you back to the game.  Cube warp will warp you to
another cube.
4)  The Side Menu:  You have two options...Connecting a cube or removing a
connection (placing a wall).

Connect Cube Mode:
In connect cube, you must either know what cube you are connecting it to or
if it is a new block you may press 0 and the calculator will do the rest.
Don't waste cubes.  If you disconnect a cube all the way, it still exists and
so you wasted one of your 126 total cubes.

Place Wall Mode:
When placing a wall/door, it is ONLY placed on the side you are currently
facing.  This makes it possible to invent traps never before thought of in
Decsent.  Be careful when you add traps...the level editor isn't very smart.
In the level editor, add the traps last, get the basic layout first.  When
making a door requiring a key, make sure you set the key outside the door
someplace.  Also, with a door requiring a key, have only one entrance to an
area.  Once, the maximum number of keys (3) is reached, you can walk through
any door (except the exit) with ease.  The best way to go about this is by:
(Blue) Key, (Blue) Door, (Yellow) Key inside (Blue) Door, (Yellow) Door
inside (Blue) Door, (Red) Key inside (Yellow) Door, (Red) Door inside
(Yellow) Door.  This is the most error free way of doing this, there are
other ways, but this is the best.

5)  The Center Menu:  You are given 14 options in this menu which are simple
to understand.  Please only put one reactor in a level and one end of level.
Although you can have more, this is the most recommended method.  The best
way to put in an end of level marker is to place an exit door, which can only
be opened after the reactor is blown in a regular game (you can just open it
in level editing mode), then behind the exit door put an end of level marker
in the block.
6)  Save Level:  This option saves the level onto a blank screen.  This can
take up to 6 minutes (takes slightly longer than loading).  I'm sorry about
this, but compression of anything always takes longer on a calculator.
7)  Cube Warp:  When you choose this option, you will be asked what cube you
wish to be warped to.  If you get stuck in a trap, just enter this mode and
warp to cube 1.  Your orientation in the cube will not be corrected when you
use this, you can do that on your own.  This is also useful when you make
connections that take you clear across the level.

That's basically it.  Have fun building your own levels!


    5.  Edit Keys
  You may do this at any time during or before the game.  The default
controls are:

[ Y= ]                       (reserved for entering the editor)
[GRAPH]                      (reserved for multiplayer mode)
[MODE]                       (exits the game to a sub menu)
<left>                       (turns ship left)
<up>                         (turns ship to face down...airplane controls)
<right>                      (turns ship right)
<down>                       (turns ship to face up...airplane controls)
[MATH]                       (moves forward)
[x^-1]                       (moves backward)
[VARS]                       (slides left)
[CLEAR]                      (slides right)
[TAN]                        (tilts left)
[ ^ ]                        (tilts right)
[ - ]                        (moves up)
[ + ]                        (moves down)
[ 0 ]                        (fires homing missle)
[ . ]                        (drops prox. bomb...disabled option)
[ENTER]                      (fires lasers)

    6. Quit Game
  This is pretty obvious of what it will do...it will leave Decsent with a
nice message.  Please wait a few seconds though, while it frees up useful
memory.



III.  Credits
I would like to thank the following people for encouraging me to get this
awesome game completed:

   Name                   E-mail address             Web-page
-----------------------------------------------------------------------------
   Thomas J. Hruska       thruska@tir.com            www.geocities.com/
                                                     SiliconValley/Heights/
                                                     8504
   Nathan Buzdor   nbuzdor@nitro.dorms.utoledo.edu   aslan.dorms.utoledo.edu
   TI-CALC mailing list                              www.ticalc.org
   Bryan Rabeler          brabeler@ticalc.org        www.lhq.com/~bryan



IV.  Secrets of Decsent
WARNING:  DO NOT READ THIS SECTION UNLESS YOU FIND DECSENT TOO DIFFICULT!!!
  Decsent has many secrets to it.  First, make a map of the level you are
playing as you play it.  Second, try to stay "upright" in the level so you
won't get lost.  If you still have difficulty with the level, read on.

Secrets/hints:
1)  Make sure there are no traps as you move through the level.  Look behind
you.
2)  Enemies fire only after a certain amount of time has elapsed.  This time
decreases as the levels increase.  In multiplayer mode on level 6, the time
is about one second.  If that time elapses and no enemy is on the screen, the
next enemy you do see will fire at you.  There is no way to tell how much
time is left before the next enemy fires.
3)  Every time you move, after the reactor is blown, the time is decreased by
one second.  Don't rotate/turn your ship unless you have to.
4)  The laser upgrades speed up destruction of enemies.
5)  Pick up items disappear even if you are maxxed out on an item.
6)  All pick up items are circles...enemies are actually drawn.
7)  You can't save a game in multiplayer mode.
8)  There are no cheat codes.
9)  Maximums are:  4 laser, 200 shielding, 200 energy, and 30 missles.
10)  Watch your shielding and energy.  Run out of either and consider
yourself a goner.
11)  Energy is required to fire homing missles in levels 2-6.  The amount
required is increased each level making it a very challenging game.  The
lasers require extra energy to fire each level.
12)  Destroying the reactor gives you 5000 points in all levels, destroying
an enemy is 200 points.
13)  The cloak and invulnerable only works for 30 seconds but the only way to
tell that either has turned off is by moving about or noticing that the
nearest enemy will fire at you.
14)  If you die, you go back to the beginning of the level with level one
laser, 100 shielding, 100 energy, 5 homing missles, one less life, and you
can't get your items back (adds a bit of a challenge to the game).
15)  Missles are always twice as powerful as lasers.
16)  Every 1000 points, there is a chance that the destroyed robot will drop
a pick-up item.  The reactor doesn't drop anything.
17)  You can have 2 times the level # of lasers (You can have Laser Level 12
in Level 6...don't die though!).
There are a few others but I will let you figure them out on your own.


V.  Internal Knowledge For Programmers
Decsent uses compression/decompression techniques that I invented.  Using the
idea of bits and bytes, I used two pieces of paper to invent the entire game.
On one piece, I wrote down everything that I wanted in the game.  On it, I
wrote down how many bits I was going to use for each side/center.  I came up
with the following screen layouts:

1248 124 124 124 124 124 124 | 1248 124 124 124 124 124 124 | 1248163264 12...
1248 124 124 124 124 124 124 | 1248 124 124 124 124 124 124 | 1248163264 12...
1248 124 124 124 124 124 124 | 1248 124 124 124 124 124 124 | 1248163264 12...
...

Where 1248 is, is the bit data for the center.
Where 124 is, is the bit data for a single side.
Where 1248163264 is, is the bit data for a connection.

With this knowledge, its easy to invent a compression/decompression program
with ease.  You are limited to 126 cubes and 4 sides per cube if you use my
method.  However, inventing a program that allows you to see in all 24
possible directions (maximum # in Decsent) would be a huge task if not
impossible and slow.  So, I created the first six items in L1 to be
translating the current cube being loaded from matrix [E] into matrix [D] a
snap.  The lists look like this (all items will have the layout of:
Description (default)):

L1 = {Side 1 (1), Side 2 (2), Side 3 (3), Side 4 (4), Side 5 (5), Side 6 (6),
Red Key (0), Yellow Key (0), Blue Key (0), reserved (0), reserved (0),
reserved (0), reserved (0), reserved (0), reserved (0), Cloak (0), Lives (3),
Prox. Bombs (0), Laser Level (1), Invulnerability (0), Shield (100),
Energy (100), Robot Block 1 (0), Robot Block 2 (0), Robot Block 3 (0),
Robot Block 4 (0), Robot Block 5 (0), Robot Block 6 (0), Robot Block 7 (0),
reserved (0), Robot Block 9 (0), Reactor Destroyed (0), reserved (0),
reserved (0), reserved (0), reserved (0), Homing Missles (5),
Editing Level (0), Current Block (1), Waiting Message 1 (0),
Waiting Message 2 (0), Waiting Message 3 (15), Message Counter (0),
Score (0), Dead (0), Multiplayer (0), Slave/Master (0)

L5 = Instructions for displaying text

L6 = {Exit Game (22), Look Left (24), Look Up (25), Look Right (26),
Look Down (34), Forward (41), Backward (51), Slide Left (44),
Slide Right (45), Tilt Left (54), Tilt Right (55), Move Up (85),
Move Down (95), Fire Missle (102), Drop Prox. Bomb (103), Fire Lasers (105),
Level # (1), Lives (3), Laser Level (1), Shield (100), Energy (100),
Homing Missles (5)

Formulas:
1)  A shield orb is worth 5+5*Level #.
2)  A energy orb is worth 5+10*Level #^2/Laser Level #.
Both formulas have 5 additional points added on.

Calculate number one:
I estimated that the 5 robots would fire Level # of times would fire Level #
of times to get a shield orb.  So I got the resulting formula:  5*Level #.

Calculate number two:
This one took a while to come up with.  I was trying to figure out how much
energy it took to kill 5 robots (the number needed for 1000 points) each
level.  The amount of restored energy should come close to the amount lost.
since it takes fewer shots to destroy a robot as you get higher laser levels,
I had a tough time coming up with a quick explicit formula that worked the
way I wanted it to.  The steps shown below show how I simplified it to the
above equation:

5((2 * Level #/Laser Level #) * Level #) =
5 * Level # * (2 * Level #/Laser Level #) =
10*Level #^2/Laser Level #



VI.  Conclusion
  I, Thomas J. Hruska, wrote Decsent for the public use of the Internet.  I
now release this as public domain as long as credit is given to me.  This
5 month project was a strain on me and my calculator.  I will not accept
contributions/payments for this game and therefore no one else may either.
Programmers, please respect this game and treat it as though you had wrote
it, do not add vile messages that are degrading to anyone or graphics that
would provoke anger or be insulting.  This is just proper programming
etiquette.  Also, programmers, when transferring to other calculators from
the computer, make sure the write protect attribute is on.

Thomas J. Hruska
thruska@tir.com
shinelight@geocities.com
http://www.geocities.com/SiliconValley/Heights/8504

Shining Light Productions
"Meeting the needs of fellow programmers"
JavaScript
TI-BASIC
QuickBasic
C/C++
