                          GORILLAS: The Fixed Edition
                         Version 1.0 - 7th August 2006

                       http://telcontar.net/Misc/Gorillas/


                                 ** READ ME **


-- Introduction --

 Lots of people have become aware that the classic game of QBasic Gorillas does
 not function correctly on modern computers. The normal symptoms are extremely
 sluggish gameplay, and in some cases the program may crash with an OVERFLOW
 error. This version of Gorillas attempts to address both of these issues,
 reflecting fixes already put in place in my sequel Deluxe Edition.

 If you're only looking for a copy of Gorillas that works, look no further. If
 you're interested in the specifics of the fixes, I have detailed them below.

 If you still have problems with the game, feel free to contact me (see the
 address at the end of the read me).

 Enjoy.

 - Telcontar.


-- Playing the game --

 To play Gorillas, either run the Gorillas.bat file supplied with the game (has
 an icon of a window containing a gear wheel for those with file extensions
 hidden), or type the following commands at the command line:
 
  cd path-to-gorillas
  qbasic /run gorilla.bas
  
 Gorillas runs under Microsoft QBasic and the above methods both assume that
 QBASIC.EXE is in your command-line path or in the same folder as the game. You
 can also associate .bas files with QBasic or drop the game file onto QBASIC.EXE
 in Windows Exlporer.
 
 For details on how to obtain QBasic please see the Gorillas Deluxe Web page:
 
  http://telcontar.net/Misc/Gorillas/


-- Changes --

 The most important change was disabling the speed calibration, which seemed to
 serve no real purpose except overcompensate on fast PCs. This involved
 making the following change to SUB Rest():

  ' t2# = MachSpeed * t# / SPEEDCONST
  t2# = 0

 This causes Rest() to immediately exit upon being called. Simply using
 EXIT SUB however, does yield a game that runs far too fast; providing t# with
 a value is needed to slow the game down to a sensible speed.


 Another major problem is that on faster PCs, CalcDelay!() crashes with an
 "OVERFLOW" error. I have thus switched CalcDelay!() to CalcDelay#() -- it now
 uses double-precision floating-point maths. Given that speed calibration is
 disabled anyhow, this has no effect on game speed. Incidentally, SUB Rest() was
 already using double-precision maths anyhow. Craziness.

 MachSpeed is calculated using CalcDelay#() so thus it has also been declared
 as DOUBLE to match. MachSpeed is also unused now.


 Finally, I have adjusted the value of SunHt. This is the y co-ordinate of the
 lowest pixel of the sun, used in collision detection. If the banana is about to
 strike a yellow pixel, but the y co-ordinate is <= SunHt, the game realises that
 the pixel it found is the sun, and the sun pulls a face.
 
 Unfortunately, the value of SunHt is out by one and on occasion, bananas impact
 with the sun and blow a hole in it. I changed the value from 39 to 43 in Gorillas
 Deluxe for safety, and since it appears to be fine, I have repeated that change
 here.
 

-- Telcontar --

 Web: http://telcontar.net/
 Contact: http://telcontar.net/About/contact.php
