Death Rally - The Duel 'developer' version

by Patai Gergely

patai_gergely@fastmail.fm
http://www.hszk.bme.hu/~pg429/


General information

You can see the changes at the end of this file, in the history
section. 

After two years of doing nothing I looked at the code and concluded
that I don't really feel like finishing it. Nevertheless, the
code might be useful for others as it uses some interesting
ideas regarding physics, level storage, vector sprites and so on.
I converted it to ION and Venus so it can be run both on the 83 and
the 83+. Not tested with Mirage, but it should work.

There are 11 tracks and 5 cars in this final release. The cars
only differ in their looks, and the opponent always gets the
same brand. Collision is possible, and the race finishes after

3 laps by declaring a winner.

By the way, don't forget to use the brakes. You will need them often.
Note that you should stay on the road if you want your lap counted.
Don't even waste your time with looking for shortcuts - there aren't
any. (Don't be fooled by The Crossing...) Of course, you won't be
penalised if you skid out in a corner, just make sure that you have
at least touched all of them in the proper order. The CPU driver
doesn't use them, so you can gain advantage with clever steering.

The 'Compete' item in the menu reveals an AI tuning tool. This
wasn't intended to stay in the final game, but since this is a
developer version, I let it stay. You can get some interesting
behaviour by modifying these values, e. g. drunk driving. :)

If you want to add new cars and tracks, you can do it without any
modification in the code. Check out the files cardata.inc and
trkdata.inc in the source directory. I have provided some hints
concerning the format of these files. You should be able to
figure it out... Really clever ones are welcome to make a graphical
editor. :)


Files

DRALLY.83p - TI-83 ION version
DRALLYv.83p - TI-83 Venus version
DRALLY.8xp - TI-83+ ION version


Requirements

The program won't run unless there is at least 7 kilobytes of 
free RAM available. If you are unsure, just try to run it, and
it will tell you if there isn't enough memory.


Game controls

In general, Mode is used to escape to the main menu and 2nd selects
anything currently highlighted. Everything else should be pretty
self-explanatory. The detailed controls are as follows:

Menu:
       up/down - choose menu item (the keys do not repeat)
           2nd - execute selection

Practice - track selection:
       up/down - choose track
           2nd - proceed to car selection
          mode - return to the main menu

Practice - car selection:
       up/down - choose car
           2nd - start practice
          mode - return to the main menu

Credits screen:
          mode - return to the main menu

In-game controls:
left/right/4/6 - steer
      up/2nd/8 - accelerate
  down/alpha/2 - decelerate/reverse
          mode - quit the race (return to the main menu)
         clear - quit the program (immediately)


Future additions:
  - up to those who decide to finish it :)


Thanks to:
  - Rth Istvn for thorough testing and constructive ideas :)
  - Michael Nock (chickendude) for helping with the buggy 8xp file
  - Joe Wingbermuehle for the IonFastCopy routine
  - The coder of ZASMLOAD for ZASMLOAD (used in the initial phase)
  - The guys on the Assembly-83 list for putting my self-esteem to
    the right place :)
  - And those on the Maxcoderz boards, because they want to be thanked
    so badly :D

  - in advance: the one who takes up the daunting task of finishing
    this piece of crap


Known bugs:
  - there are still occasional rendering errors on the left side, but
    they are never spectacular (only some doubled pixels); I have no
    idea whatsoever how to fix this


History (with the date of finishing the actual version and the size of
the main program):

2004/08/06 - Version dev (10334 bytes)
  - got fed up seeing the beast sitting on my hard disk doing nothing...
  - loads of new tracks added (by Rth Istvn)
  - improved AI: can be tuned, more human-like
  - menu selection interference bug fixed
  - car information block removed


2002/09/09 - Demo Release 10 (9235 bytes)
  - two new car models added: A-model and Tuuli
  - improved physics:
      - cars can now have different driving properties
      - possibility of finetuning
      - no more odd reverse steering
      - no more rotation while parking
      - the car eventually comes to a stop if nothing is pressed
  - added CPU driver (currently only as a ghost opponent)
  - changed name

2002/08/25 - Demo Release 9 (7755 bytes)
  - slow progress again; I expected a more peaceful summer...
  - laps are checked and counted from now on
  - existing tracks were redesigned to be compatible with the checker
  - a new track was added
  - track selection screen redesigned a bit; track names are displayed
  - internal code restructuring

2002/06/02 - Demo Release 8 (7486 bytes)
  - car information block added
  - started implementation of the physics engine
  - top speed of cars increased by 50%
  - introduced advanced camera handling

2002/05/08 - Demo Release 7 (6252 bytes)
  - added support for more cars
  - new loader with program writeback; needs much less memory to run

2002/04/28 - Demo Release 6 (5956 bytes)
  - a virus attack almost washed away the whole project...
  - menu controls changed (2nd is used to select items)
  - added support for more tracks
  - added credits screen
  - memory requirements decreased despite the increased size

2002/04/02 - Demo Release 5 (5390 bytes)
  - new release just to show that there is actually some progress :)
  - many variables moved out of the user RAM
  - game menu introduced
  - more optimisations in the sprite and background drawing routines

2002/02/25 - Demo Release 4 (4807 bytes)
  - calculator file names changed
  - much better optimised sprite routine
  - some unused code was thrown out resulting in another great cut in
    size
  - loader rewritten, got 48 bytes shorter

2001/12/27 - Demo Release 3 (5332 bytes)
  - slow progress due to the fact that I started my university studies
    in September
  - fixed bugs in background drawing: rendering errors on the two
    sides finally cured
  - pregenerating the picture of the car: significant speed increase
  - limited sprite sizes had to be introduced for the same reason
  - history section included in the documentation

2001/07/08 - Demo Release 2 (4963 bytes)
  - improved speed and drastically reduced size (own memory management
    implemented)
  - added acceleration/deceleration: 64 different speed levels instead
    of 2

2001/06/12 - Demo Release 1 (>7000 bytes)
  - the core of the track drawing routine already done
  - vector graphics used for the picture of the car
