_______________________________________________________________________ Monster - The ultimate (?) grayscale breakout-like game for TI-89/92+! Version 1.2 - released April 22, 2009 This program is in the public domain. There is no warranty. pad@ocf.berkeley.edu http://www.ocf.berkeley.edu/~pad/ ________________________________________________________________________ _____________________________________ TABLE OF CONTENTS 1. Introduction ..................................................... 25 2. System requirements .............................................. 45 3. Legal stuff ...................................................... 95 4. Instructions .................................................... 115 5. Bonus Items ..................................................... 160 6. Contacting the Programmer ....................................... 180 7. Acknowledgements ................................................ 207 8. Version History ................................................. 242 9. The Future ...................................................... 282 _____________________________________ INTRODUCTION Monster is a free/open source breakout-like game for the TI-89, TI-89 Titanium, TI-92 Plus, and Voyage 200 calculators. This program is written completely in 68000 assembly language to fully take advantage of the calculator's capabilities. 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.calcgames.org/ Modification of this program is encouraged. To facilitate this, the source code is available and there are no restrictions on redistribution. _____________________________________ SYSTEM REQUIREMENTS CALCULATOR: TI-89, TI-89 Titanium, TI-92 Plus, or Voyage 200 This program has been extensively tested on both the TI-89 and TI-92 Plus calculators. It is supplied in different versions for each calculator; you must use the version for your calculator. Although this has not been tested as thoroughly, the TI-89 version should work on the TI-89 Titanium and the TI-92 Plus version should work on the Voyage 200. HARDWARE (HW) VERSION: HW1 or HW2 (and probably beyond) This program has been extensively tested under hardware version 1 and 2 and is fully compatible with both of them. If any other versions are ever released, this program may or may not be compatible. AMS VERSION: Any (except the very old 1.00 for the TI-92 Plus) This program has been tested extensively with AMS versions from 1.00 up to 2.09 and is compatible with all of them. This program should also work on future AMS versions as well, though it is possible that unexpected changes to the AMS will cause the program to fail. The only exception is the very old AMS 1.00 for the TI-92 Plus. This program (along with many others) will not work on this AMS version; you need to use AMS version 1.01 or later. Note that this affects only the TI-92 Plus; there are no problems with AMS 1.00 on the TI-89. When using AMS version 2.03, the size limit will be a problem. You can overcome this either by installing a newer AMS version, installing an older AMS version, or using one of the various programs that circumvents this limit, such as the ttstart launcher (available from http://tict.ticalc.org/). problems. MEMORY: Less than 50K is needed, and files can be archived You can see the amount of memory needed by examining the file size. Note that if you are running an archived program, it must be copied to RAM to run. The program must allocate 4K (under HW1) or 8K (under HW2) of additional RAM when run, and 2K more of free RAM is needed to save the game. KERNEL / SHELL: None needed This is a nostub program, so no shell or kernel is required to run it. However, it generally can be run from a shell or with a kernel installed. If it does not, this is probably due to a bug in the shell or kernel (in particular, one very old version of Universal OS had a bug that prevented running nostub programs from kernel-based shells; however, all recent versions are OK). _____________________________________ 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). All portions of the program made by me are copyrighted by me, but may be freely used, copied, and/or modified with no restrictions. There are a few small sections based on the TIGCC library, which also may be freely redistributed. 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 To install the game on your calculator, you only need to send the program file. For the TI-89 and TI-89 Titanium, this file should be called 'monster.89z' on the computer; for the TI-92 Plus and Voyage 200 it is 'monster.9xz'. Once it is installed, type monster() on the home screen to run the program. Additionally, the game creates a variable called 'mnstdata' when you exit which stores saved games, high scores, and options. You can safely delete 'mnstdata' but then its data may be lost. All of the files can be archived, but 'mnstdata' will be saved into RAM on exit (even if it was archived before). You also must have at least one level file on the calculator to play the game. These are supplied in the 'levels' directory and 'levels2' directories. Running it normally will show you the title screen, which lists the keys to press to start playing or view more information. Since you can read it (I hope) I won't describe it again here. Note that you will get higher scores for choosing higher speeds (you get a speed bonus which increases somewhat for higher speeds; in addition, the victory bonus which is given only if you when depends on the speed as well). If you have more than one level file, the level selector will appear after you select the speed. Use the up and down arrows to select a level, and press enter to begin. The gameplay is like breakout. I hope you know the basic idea. The controls for the gameplay are: Left and right arrow keys Move paddle 2nd (or LOCK/hand on 92+) Release ball (and slow down while moving) (and fire lasers, if you have them) . (dot) Quit game + and - Adjust contrast APPS Save game and exit P Pause game (press F1 to resume) If you save the game, gameplay will resume immediately at the point you left off the next time you run the program. The level file you selected before must still be on your calculator. _____________________________________ BONUS ITEMS Each brick destroyed will deploy a bonus approximately 10% of the time. Bonuses will not be dropped from where they cannot be collected, and only one can be on screen at a time. The bonuses appear as follows: Expand paddle Line with arrows pointing outward at ends Extra life Heart followed by plus sign Slow balls Ball with parentheses around it Multi-ball Three balls in a row Brickthru Ball with an arrow through it Increase score Number 500 Two blasts Laser weapon (20 shots per collection of this) _____________________________________ 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@davnet.org 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 address is: http://www.ocf.berkeley.edu/~pad/ _____________________________________ 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 Brian Anderson and The A68K assembler, used to assemble almost all Charlie Gibbs calculator assembly programs Tleilax DB92, an amazing on-calculator debugger Rusty Wagner of ACZ The VTI calculator emulator, which provides the ultimate testing environment on a computer MarkuSoft They GrayImag image converter Corey Taylor of the ACZ the CalcGS map editing software 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 Thomas Nussbaumer The ExePack utilities which compress the program quite a great deal Adrian Posor The ever-important beta testers, who have made Aaron Povolish sure that this program is bug-free Jacob P. Paul Griffin Bhunavesh Bhatt Testing on the TI-89 Titanium _____________________________________ VERSION HISTORY Sizes listed here are for the uncompressed TI-89 version of the program. Version Date Bytes Lines Description 0.10 31-Oct-01 8859 3200 First version 0.26 6-Dec-01 11579 3893 Added scoring and high score table Improved ball trail Implemented speed selection Implemented slow paddle movement Added 4 more levels Implemented flashing when round lost Added score and brickthru bonuses 0.66 2-Feb-02 11463 4431 Fixed title screen contrast change Implemented external level support Improved random bounce adjustments Implemented lasers Improved scoring Added pause feature 0.82 30-Mar-02 11379 4465 Redesigned bouncing control Increase block/screen size on TI-92 Plus 0.83 4-Jul-02 11379 4465 Updated PPG launcher for AMS 2.07 0.99 30-Apr-04 11341 4563 No longer stops clock on AMS 2.08 Optimized grayscale routines Added to default levels Compatible with TI-89 Titanium 1.0 16-Sep-04 11287 4582 Optimized for size 1.2 19-Apr-09 11261 4623 Added some validation of level data Optimized ROM calls Added an easy level set ______________________________________ THE FUTURE I don't plan to make any further changes to this game.