________________________________________________________________________ P H O E N I X - The ultimate (?) shoot-em-up for TI-89/92/92+/V200!! Version 7.6 - Released September 14, 2004 This program is freely redistributable. There is no warranty. E-Mail - pad@calc.org Web Page - http://pad.calc.org/ ________________________________________________________________________ _____________________________________ TABLE OF CONTENTS 1. Introduction ..................................................... 28 2. System requirements .............................................. 55 3. Legal stuff ...................................................... 69 4. Instructions ..................................................... 88 Installation/Startup ...... 90 Gameplay ................. 121 5. Shop Items ...................................................... 183 6. Player Ships .................................................... 264 7. Contacting the Programmer ....................................... 303 8. Acknowledgements ................................................ 334 9. Version History ................................................. 367 10. The Future ..................................................... 598 _____________________________________ INTRODUCTION Phoenix is a free/open source shoot-em-up style game for the TI-89, TI-89 Titanium, TI-92, TI-92 Plus, and Voyage 200 calculators. This game was mostly written in the early part of 1998 forthe TI-92. It is now also available for the TI-89 and TI-92 Plus. This game was written completely in 68000 assembly language to fully take advantage of the calculator's capabilities. It's features include many levels, many enemies, smooth gameplay, and the ability to purchase upgrades to your ship and new ships. The current version also has multiple difficulty levels and a high score table, and game saving capability. If you want to obtain other calculator programs or learn more about TI calculators, I would suggest visiting the web sites listed below. They all have large archives as well as help sections. If you don't know how to transfer programs to your calculator, or how to run them once you've transferred them, you should read the help sections on these sites, or the FAQ on my web page. http://www.ticalc.org/ http://www.calc.org/ http://www.calcgames.org/ Modification of this program is encouraged. To facilitate this, I have made this program free/opensource software, and supplied another document, 'INTERNAL.TXT', which describes the internal workings of the program. _____________________________________ SYSTEM REQUIREMENTS For TI-92 and TI-92 II users: * Fargo II must be installed * 16K of memory is needed to store the game * 4K of free memory is needed to run the game For TI-89, TI-89 Titanium, TI-92 Plus, and Voyage 200 users: * 16K of memory is needed to store the game * No shell or kernel is required (but it will work with one) * All hardware and AMS versions are OK (at least up to AMS version 2.08 and hardware version 2.00, which were the most recent versions at the time of release; it should probably work on newer versions also) _____________________________________ LEGAL STUFF Since you did not pay me anything for the right to use this software, there is no warranty of any kind. This software has been tested, and at the time of release the author was not aware of any serious problems with it. However, there is still a possibility of unforeseen problems. If you do encounter any problems with this program, please inform me as soon as possible (of course, I cannot guarantee that I will fix such problems). This entire program is copyrighted by me, but may be freely used, copied, and/or modified by any means with no restrictions. However, I would appreciate if you at least do the following if you are making a modified version: - Don't add any restrictions to its distribution or modification - Supply complete source code - Give me a reasonable amount of credit _____________________________________ INSTRUCTIONS Part I: Installation / startup You can run this program just as you would any other program; simply send the "phoenix" program to the calculator and run it, by typing the command 'phoenix()' on the home screen. If you are using a TI-92, you must have the Fargo II operating system installed first. Then send 'phoenix.92p' to the calculator. If you are using a TI-89 or TI-89 Titanium, no shell or kernel is required, though Phoenix should work with one. You only need to send 'phoenix.89z' to the calculator. If you are using a TI-92 Plus or Voyage 200, no shell or kernel is required, though Phoenix should work with one. You only need to send 'phoenix.9xz' to the calculator. Note that (on the TI-89 and TI-92 Plus) some shells may not allow you to run Phoenix from them. This particularly may occur under certain old versions of Universal OS which have a bug with a kernel function for launching programs. If this happens, it is not a bug in Phoenix. You can work around this problem by running it from the home screen instead. You can also select the program's name from the var-link menu if you don't feel like typing it. If you have AMS version 2.03, you may get an error message that says something like "ASAP or exec string too long". This is because this version of the AMS has a very annoying limit on the size of programs. To solve this problem, you can upgrade to a newer version of the AMS (available from TI's web site) or use one of the various programs that defeats the limit. Part II: Gameplay When you first run Phoenix, you will see the title screen. This screen will identify the game and give you a list showing what each fucntion key does. F1, F2, F3, and F4 will select the difficulty level and start the game. The higher numbered keys will give you a more difficult game, but you get a higher bonus if you win if you play a higher difficulty level. The other function keys display additional information. TI-89 only: After choosing the difficulty level, you then go to the speed selection. Normal speed runs the game at the same speed versions 3.0 and before on the TI-89, as well as all TI-92 versions of Phoenix. If you select Fast, it will run 1.5 times the normal speed. This makes the game much harder, but you will get an extra bonus if you finish at this speed. Inverse Mode: To play the game in inverse colors (white ships on a black background), type a capital "I" while on the title screen; the game will then be played in inverse. Once you select the difficulty level, the game play will begin almost immediately. Your ship (an object which vaguely resembles the Greek letter sigma (summation symbol) on its side) can be controlled by the cursor pad. The condition of your ship is indicated by the line on the bottom of the screen which seperates the game play area from the title. The line originally goes all the way across the screen but gets shorter whenever you are damaged. Colliding with the walls will damage your ship very quickly, so be careful not to get too close to them! If the line completely runs out, you will be destroyed the next time you are hit. The LOCK key on the TI-92 or 2nd on the TI-89 will fire the selected weapon. If you hold it down, it will fire automatically, but at a rather slow rate. You can probably fire much more rapidly if you click the button as fast as possible. The default auto-fire rate is 3 shots per second. If you purchase the rapid-fire unit, the rate will be 10 shots per second. Firing at an extremely high rate is not always useful, since you are limited in the number of bullets you can have on screen at a time. The limit will initially be 16, but you can purchase extra bullets during the game to raise it to 24. To select weapons, use the corresponding function keys (TI-92) or the number keys (TI-89). You can only have one weapon selected at a time, but you can change weapons as often as you want to. It is possible for bullets from several different weapon types to be on the screen at the same time. When you first start playing, only weapon 1 will be available. However, you can purchase additional weapons later on in the game. The APPS key will save the game and then exit. Because of the trick that Phoenix uses to save the game without taking up extra memory, the saved game may not be kept permanently. If you do a lot of stuff on your calcultor after saving the game, you will probably lose the saved game. If you copy Phoenix from one calculator to another, the saved game will not be kept. If the saved game does remain, it will resume automatically the next time you run Phoenix. If you complete the entire game, you will reach a scoring screen. This tells you the amount of points you get in each category, as well as your total score. If you enter the high score table, you can type in your name. You can enter up to 19 characters here. Once you've finished the whole game, it will continuously loop back through everything. You are only scored for the first time you go through the game. The high score table is also displayed when you lose the game. If you don't finish the game, you don't get a chance to have a high score. _____________________________________ SHOP ITEMS At certain points in the game, you will have the oppurtunity to enter the Phoenix Shop wehere you can purchase various useful items. You will only enter the shop if you have at least 50 credits. You can collect money while playing the game by moving your ship over it (the money is represented by $ and $$ symbols). When you collect money, it is automatically teleported to the First Intergalactic Bank so that you can easily spend it anywhere in the universe. The following items are available at the Phoenix shop: Price Item Description $50 Shield Recharge This increase your shield strength by 1 step if it has been damaged. $100 Extra Bullet This increases the number of bullets that can be on the screen at once. Initially, you can have 16 bullets on the screen at once. By purchasing extra bullets, you can increase this limit to 24. $250 Double Shoot This weapon allows your ship to fire two shots at once. Both shots a fired straight ahead. Once you have purchased this weapon, you can select it by pressing F2 (TI-92) or 2 (TI-89). $400 Triple Shoot This weapon allows your ship to fire three shots at once. One shot is fired straight ahead, and the other two are fired to the sides. These shots travel faster than normal ones. Once you have purchased this weapon, you can select it by pressing F3 (TI-92) or 3 (TI-89). $500 Quadruple Shoot This weapon fires four shots at a time. Two shots will be fired from each side of the ship. The shots will alternate between moving forward and moving to the side. From each side of the ship, one of the shots will go left and one will go right. Once you have purchased this weapon, you can select it by pressing F4 (TI-92) or 4 (TI-89). $1000 Rapid-Fire Unit This allows you to fire rapidly by simply holding down the fire button. You can fire 10 shots per second with this, provided the total number of bullets on-screen remains within your limit. $1250 Dual Plasma This is a much more powerful weapon than the previous ones. It fires two plasma shots at a time. Each of them does seven times as much damage as a shot from the first four weapons. Once you have purchased this weapon, you can select it by pressing F5 (TI-92) or 5 (TI-89). $1500 Heavy Destroyer This supplies you with the Heavy Destroyter ship. See the next section for a description of it. $1750 Golden Arches This is a very unique weapon. It fires shots which travel backwards and then swing forwards. This weapon does slightly more damage than the the Dual Plasma Cannon, although it can be difficult to control. Once you have purchased this weapon, you can select it by pressing F6 (TI-92) or 6 (TI-89). $2000 The Phoenix This supplies you with The Phoenix, the ultimate ship. See the next section for its description. $2500 Triple Plasma This weapon is similar to the Dual Plasma Cannon, but it fires three bullets instead of two. Once you have purchased this weapon, you can select it by pressing F7 (TI-92) or 7 (TI-92). $3000 Deluxe Plasma This is the most powerful weapon in the game. It fires four shots at a time, each of which does 10 times as much damage as the bullets from the first four weapons. This weapon is selected with the F8 key (TI-92) or the 8 key (TI-89). _____________________________________ PLAYER SHIPS There are three possible ships you can use. If you accumulate enough credits, you may purchase some of the more advanced ships. Note that you always trade in your old ship when purchasing a new one, so you cannot switch back without purchasing another ship of the previous type. If you are playing on the Beginner or Intermediate levels, you will be able to receive a new ship for free after completeling a certain portion of the game. The possible ships are: 1. SIGMA (Default Ship) This is the standard ship. It has no special features. 2. Heavy Destroyer ($1500) This ship is slightly larger than Sigma, so you will be more likely to be hit when using it. However, it has several useful defensive mechanisms which more than make up for this. It comes with heavy armor, allowing you to survive up to 5 hits after the shields are gone. The armor cannot be repaired after it is damaged. In addition, this ship has a radar scrambler which confuses guided projectiles. This ship also has a special weapon, which can be activated by pressing SPACE (Diamond on the TI-89). This will fire two large guided bombs in rapid succession. These bombs will target the toughest enemy that exists when they are fired. 3. The Phoenix ($2000) This ship is smaller and faster. In addition, it has a special weapon which can be activated by pressing SPACE (Diamond on the TI-89). It can be fired a maximum of once every 3 seconds. This weapon fires 8 projectiles in a spread in front of the ship. It also generates an energy field which will destroy approximately half of the enemy bullets on the screen as well as some of the player's bullets. _____________________________________ CONTACTING THE PROGRAMMER If you find any bugs in this game or have suggestions or comments about it, please tell me in E-Mail! If you are writing to report a bug, please be sure to tell me exactly what the problem is and describe exactly what you did before the problem occured. If you don't do so, it will be very hard for me to tell what is going wrong! You should also tell me which version of Monster you have and which calulator you use in any mail you send me. My main E-Mail address is: pad@ocf.berkeley.edu I will usually answer my E-Mail within a week. If you don't get any answer in two weeks, you can try sending to the following backup addresses: pad@calc.org pad@davnet.org padavidson@wisc.edu pad@cs.wisc.edu If your E-Mail is set up to block all messages except those from certain addresses, always be sure that you have un-blocked my address before sending anything to me (best to un-block all of them, since I might answer from a different one than you sent to). You can always get the latest version of this game, as well as other programs of mine, from my web page. The addresses are: http://www.ocf.berkeley.edu/~pad/ http://pad.calc.org/ _____________________________________ ACKNOWLEDGEMENTS This game is my own work. However, there are a few others whose assistance was invaluable in producing this game, and there efforts will be acknowledged here, in no particular order: David Ellsworth Fargo II and the Fargo II development tools, also a small bit of FLIB code I used Olivier Lesteven TEOS and the TEOS development tools Brian Anderson and The A68K assembler, used to assemble almost all Charlie Gibbs calculator assembly programs, including Phoenix Tleilax DB92, an amazing on-calculator debugger Rusty Wagner of ACZ The VTI calculator emulator, which provides the ultimate testing environment on a computer Scott Noveck of ACZ Suggesting the name of Ship III (The Phoenix) Zeljko Juric The TI-GCC library, whose documentation helped to explain some ROM functions and also showed me how to do OS key-reading and HW detection, and also for writing the launcher program "phxrun" that is needed for AMS 2.03 The inspiration for this game comes primarily from these computer games: Battle Squadron (Amiga) - Innerprise, 1989 Deluxe Galaga (Amiga) - Edgar M. Vidgal, 1993-1994 Tyrian (PC) - Epic Megagames, 1995 _____________________________________ VERSION HISTORY Version Date Bytes Lines Description 0.01 22-Mar-98 2279 1021 First version 0.02 23-Mar-98 2833 1237 Fixed small collision detection bug Added level 3 and implemented bosses 0.03 24-Mar-98 3955 1503 Timing fixed Damage to player's ship implemented Enemies changed Increased number of levels to 6 Default weapon changed to single shot Title screen added Implemented enemy explosions 0.04 25-Mar-98 4746 1737 Optimized scrolling Added 6 more levels Implemented auto-fire 0.05 26-Mar-98 4879 1801 Added Weapon 2 0.10 29-Mar-98 6926 2422 Fixed bullet selection Added Weapons 3 and 4 Added pause capability Made large explosions for bosses Added Phoenix Shop Added money to collect 0.30 30-Mar-98 8726 2916 Fixed money size Added arrow-shooting enemies Added cross enemies and bosses Added radar scrambler Added plasma cannons 0.60 1-Apr-98 8906 2982 Implemented "Golden Arches" 0.61 5-Apr-98 8902 2979 Widened ship's boundaries "$" bonuses now give only $25 0.70 3-May-98 10470 3444 Screen sides now tile-based Graphics completely redrawn each frame Removed Single Plasma Cannon Added ultimate weapon Created two levels of rapid-fire "$" bonus value raised to $50 Added final enemy Put small delay between levels Made "Golden Arches" more powerful 0.72 4-May-98 10893 3603 Full power start-up gone New levels added (total of 28) Level delay removed Added "operator" enemies 0.73 4-May-98 10981 3611 Added another level (total of 29) Fixed small level loading bug Made the final level harder Optimized enemy bullet routines 0.80 25-May-98 11712 3907 Changed some weapons a little Lowered prices in Phoenix Shop Phoenix Shop entry changed a little Optimized enemy firing Added "Random X" level series Added triangle levels (total of 36) Modified enemy control 0.81 23-Aug-98 11753 3920 Changed some enemy movement patterns Fixed a couple of small bugs Optimized display a little 0.83 14-Sep-98 12806 4195 Implemented scoring Partially implemented difficulty selection Optimized some code Fixed enemy entrance problem 1.00 23-Sep-98 13498 4467 Implemented difficulty levels Adjusted default scores 2.0 7-Feb-99 14898 5062 Optimized display routines Split source into multiple files Restored cursor speed on exit Modified quadruple weapon slightly Reduced memory usaged a lot Added expert difficulty level Redesigned title screen Improved shop display Added save-game capability Fixed an enemy bullet bug Added $500 bonuses Added horizontal speed increase Replaced "Deluxe Plasma Cannon" No longer needs FLIB 3.0 10-Mar-99 15591 5380 Fixed prices in shop Adjusted end-of-game display Added new enemies Added new levels Enemy handling improved Fixed small bug with spinning enemies 3.5 19-Oct-99 15582 5767 Now uses same source for all calcs Fixed ROM 1.05 incompatibly on TI-89, 92+ Fixed display problems on the TI-89 3.6 20-Oct-99 15582 5772 Fixed shop display on the TI-89 3.7 22-Oct-99 15582 5800 Fixed some more serious shop problems Corrected TI-89 title screen text 3.8 23-Oct-99 15580 5804 Fixed save game problem 3.9 24-Oct-99 15580 5804 Fixed highscore entry problem 5.0 17-Apr-00 16401 6293 Implemented two new ships for the player Switched to TEOS build tools on 89/92+ Made shields equal on TI-89 Changed some shop prices Removed two shop items Optimized player weapon code for space Added internal documentation text file Added lots of new comments to the code Fixed a very small collision-detection bug Slightly improved guided enemy bullets Redesigned player boundaries Optimized initialization code 5.1 18-Apr-00 16385 6293 Fixed top line corruption on TI-89 Now works in Universal OS Fixed shop display on TI-89 Fixed going off screen after buying ship Buying new ship gives full shields Optimized free ship screen 5.2 19-Apr-00 16375 6338 Scaled shield bar for TI-89 Fixed boss explosion / money drop Fixed free ship font size on TI-89 Fixed top line display on TI-89 Protected against over-purchasing shields 6.0 14-May-00 16237 6838 Split enemy firing into separate file Redesigned level loading Increased power of Ship III's weapon Added more comments to the code Optimized all 3 main object structures Completed internal documentation Made Ship II smaller so it's hit less Removed top line on TI-89 Archive no longer contains subdirectory Fixed bug in free ship screen Made wheel enemies have large explosions Solid spinners can become small ships Made super-bosses fire more powerfully Changed special weapon to Diamond on TI-89 Made Ship III weapon destroy fewer bullets New shield shown on ship purchase Ship III weapon no longer destroys money Added inverse display mode Fixed slight positioning error on weapon 6 7.0a 8-Jun-00 17335 7384 Fixed collision detection bug in inverse Implemented true collision detection Optimized various routines Removed the Ship III penalty Named the additional ships Changed Heavy Destroyer's special weapon Added swooping wave ships & levels Added final mega-boss 7.0b 12-Jun-00 17271 7432 Fixed serious interrupt bug Fixed shop exiting slow-down problem Optimized code Reformatted source to 8 space tabs 7.0c 25-Jun-00 17271 7521 Made TI-89/92+ versions "nostub" 7.0 30-Jul-00 17026 7499 Redesigned some level laoding (smaller) Implemented crash protection Optimized several routines for size Fixed various bugs Rewrote player bullet handling (smaller) 7.01 31-Jul-00 17021 7512 Fixed Heavy Destroyer special weapon bug Fixed minor title screen bug Updated internal documentation Fixed bug in crash handler Slightly adjusted golden arches 7.02 5-Aug-00 17033 7517 Fixed bug making some enemies invincible Correct title screen text Fixed serious superboss shooting bug 7.1 21-Aug-00 17285 7665 Fixed lock-up on TI-89 when archived Implemented text "compression" Implemented ON-key break debugging option Added 'Legal Info' on title screen Can no longer over-purchase bullets Stopped free ship keypress falling through Fixed non-finishing bug Fixed scoring with respect to speed 7.2 5-Nov-00 17277 7690 Runs at same speed on HW2 as HW1 Fixed 2 bugs on the TI-92/92+ Several small optimizations 7.3 26-Nov-00 17281 7691 Free ship level doesn't remove money Fixed damage calculaton with Ship II Removed unused files from distribution 7.4 5-Feb-01 16278 7619 Made some enemy bullets smoother Optimizations (1K smaller on TI-92/92+) Fixed possible bug in HW version detection Boss firing alignment improved Over-purchase protection on all shop items Added 'phxrun' launcher for AMS 2.03 users Rearranged shop display slightly Fixed possible bug in crash handler 7.42 3-Aug-01 16286 7619 Restores hardware settings better on exit 7.5 27-Mar-03 16210 7626 No longer stops clock on AMS 2.08 Optimized various things Buying weapon auto-selectes it 7.51 6-Apr-04 16214 7626 Compatible with TI-89 Titanium 7.6 14-Sep-04 16138 7653 Optimized for size Updated manual ______________________________________ THE FUTURE This is probably the last major version of this game. I may make some more releases in the 7.x series to fix bugs (though I hope there aren't any) or to make minor changes, but I don't expect to do anything more than that. In addition to this Phoenix, I have already released a "Platinum Edition" of Phoenix, which has grayscale, scrolling backgrounds, and some new levels and many enhancements to the existing ones. This new version is now essentially complete.