=================================================================== +-----------------------------------------------------------------+ XXXX XX X XXXXXX XX X XXX XX XX XX XX XXXX XXX XX XX XXXXX X XXX XX XX XX XXXXX X X XX XX XX XX X XX XX XX X XX X XX XX XX XXXX X XX XXXXXX XX XXX v1.1.0 For the TI-92 II +-----------------------------------------------------------------+ =================================================================== SMQ is a side-scrolling adventure for the TI-89, TI-92 Plus, and TI-92 II graphing calculators. SMQ was written entirely in MC68000 assembly language. I have made an official SMQ web site. Please look here for new versions, screenshots, and level sets: http://mf.calc.org/smq/ SMQ may be distributed freely, but please do not alter or rename the files. Also, do not separate this document from the game. Please read the disclaimer information at the bottom before using this program. ------------------------------------------------------------------- Requirements ------------------------------------------------------------------- * A TI-92 II graphing calculator. NOTE: A TI-89 and TI-92 Plus version is availible on the SMQ web site. NOTE: SMQ will not run correctly on ordinary TI-92's due to speed and memory restrictions. * A link cable (such as TI-Graph Link) NOTE: SMQ is an assembly language program. It cannot be typed in like regular "TI-BASIC" programs. ------------------------------------------------------------------- Installation ------------------------------------------------------------------- 1) Install Fargo II. NOTE: Please refer to the documentation included with Fargo II, specifically fargo.txt, for instructions on how to complete this step. 2) Send the following libraries to your calculator: flib gray4lib hufflib NOTE: Make sure you are using the most recent versions. 3) Send the SMQ files to your calculator: smq.92p smqlib.92p smqlvl.92s (or any other level set) 4) To play, enter "smq()" at the command line (without the quotes), or run smq from a shell. INSTALLATION NOTES: - YOU MUST HAVE THE MOST RECENT VERSIONS OF THE SHELL AND LIBRARIES IN ORDER FOR THE GAME TO RUN CORRECTLY. SMQ may not work properly with older versions of the libraries. - You must have up to 35-40k free RAM before executing the program. The exact amount depends on whether grayscale is enable, and whether you are running the program from a shell. - Smqlib may need to be kept in the MAIN folder. - A set of SMQ levels must be on the calculator in order to play the game. One set, smqlvl, is included. - Level sets must be unarchived when you try to use them. They may be in any folder. - All level sets will work on either a TI-89, TI-92, or TI-92 Plus, regardless of what calc they were made on. However, due to the differences in screen size, a level made for the TI-92(Plus) may play much differently on a TI-89, and vice-versa. Also, the header of TI-89/92(Plus) level sets must be changed slightly in order for TI-Graph Link for TI-92 to accept them. ------------------------------------------------------------------- SMQ TI-89/92+ to TI-92 Level Converter for DOS ------------------------------------------------------------------- If you try to send a TI-89/92+ file to a TI-92 using a TI-Graph Link(TM), you will probably recieve a "Not Individual" error. You can fix this yourself by using a hexeditor to change the first 8 bytes of the file to "**TI92**". To make it easier, I've included a DOS program, smq92.exe, that will do this for you. Usage: smq92 ------------------------------------------------------------------- Main Menu ------------------------------------------------------------------- These selections are available from the main menu: * New - Starts a new game. * Continue - This will start you from either the last continue point you started at, or the beginning of the last stage you were on. * Options - Opens the options menu. * Load - This allows you to load a level set. - Sets of SMQ levels are stored in external string variables. The default variable is "smqlvl", and the default folder is "main". You can specify other worlds by choosing Load from the main menu. This will bring up a simple browser. Use up and down to cycle through the selections. Left and right are used to switch between folders and files. ------------------------------------------------------------------- Options ------------------------------------------------------------------- In addition to the options, you'll also find the credits and version number on the options screen. Here are the available options: * Speed (0-15) - Game speed. 1 is slowest, 15 is fastest. 12 is default. * Exploding Bricks (On/Off) - Choose whether bricks explode when you breaks them. If the game slows down when there are many objects on the screen at once, try setting this to off. * Grayscale (On/Off) - Toggle grayscale. If you prefer speed over graphics, turn grayscale off. * Threshold (1-64) - This defines the height at which vertical scrolling takes place on the TI-89. If you don't like the default setting, try playing with this variable. 40 is default. This setting is not accessible on a TI-92(Plus). ------------------------------------------------------------------- Controls ------------------------------------------------------------------- In order to accommodate the different key layouts of the TI-89 and TI-92's, I tried to select the keys that seemed most appropriate for each calculator. "A" Button: TI-89 - [2nd] TI-92 - [F2] or [F5] Jump & Swim "B" button: TI-89 - [<>] (Diamond) TI-92 - [F1] Accelerate & Fire Down: Crouch & Enter vertical pipe Up / Down: Manually scroll up or down. (TI-89 only) Right: Go into a sideways pipe. APPS: Push once to pause, again to resume. MODE: Push to toggle the score bar on and off. ESC: Quit the game. [+] / [-]: Adjust the LCD contrast. ------------------------------------------------------------------- Game Notes ------------------------------------------------------------------- * Domino Effect: You can get many points by using the domino effect. There are three ways to do it: - Jump on multiple baddies without touching the ground. - Hit multiple baddies with the same turtle shell. - Kill multiple enemies while invincible. When killing enemies using any of the previous three methods, the following scale of points is used: 100, 200, 400, 800, 1000, 2500, 5000, ? * The high score is reset whenever you load a level set. Also, in order for a high score to register, your game must end. That means you must either lose all of your lives, or beat the game. * Running before you press down to duck might allows you to fit under tight places when you're big. * In the water worlds, there are deep holes in the seafloor will try to suck you in. * Power-ups can be found in bricks as well as "?" boxes, so break as many bricks as you can. * Greed Effect: Don't get greedy when it comes to points or lives, or you may go back to zero! ------------------------------------------------------------------- FAQ's ------------------------------------------------------------------- Q: When I try to run SMQ, the screen just flashes, or nothing happens. A: You probably have an old version of the assembly shell on your calculator. First download the newest version (links to them are on my web page), then reset your calculator and completely reinstall the shell. While you're at it, download the newest libraries as well. Q: I am trying to run SMQ archived and I get an "out of memory" message, yet I have a lot of free memory. A: When you run an "archived" program, the program is first copied to RAM before it is run. For this reason, you need enough memory free for the program to be copied, in addition to the regular requirements. Q: SMQ says I am out of memory, and my calculator crashes a few moments later. I know there was plenty of free RAM. A: You probably have an outdated graphlib. Older versions of it returned the wrong value when enabling grayscale. Download the latest version of DoorsOS and use the version of graphlib included with it. Q: SMQ crashes and I am using PlusShell. A: PlusShell has a bug concerning the heapalloc function that causes programs to crash if a large enough block of memory is not availible. There's nothing I can do about this, its something that is wrong with the shell. DoorsOS seems to have fixed this problem. Q: I sent a level set to my calc, but it doesn't show up in the menu. A: Either you have an outdated version of SMQ, or the level set was made for SMQ v0.9.9 or earlier, in which case it must be converted. In SMQ v1.0, major changes were made to the level set format that made it implausible to maintain backwards compatibility. See the SMQ webpage for details about converting older level sets. Q: How can I speed up SMQ? A: The power of the batteries seems to make a big difference, so try replacing them regularly. Also, try turning off grayscale through the options menu. I have optimized many of the routines so that they will be faster when grayscale is off. Although some graphic detail is sacrificed, I think it is well worth the tremendous speed increase. If you think you've found a bug, please send me an e-mail describing the bug. Include all relevant information such as what calc you are using (89, 92 Plus, 92 II, etc.), what shell (Fargo, DoorsOS, PlusShell) and what you did to make the bug happen. I usually need to replicate the bug before I can fix it, so any information you can provide will help. Please send bug reports to dbarnes@calc.org. Thanks! ------------------------------------------------------------------- Disclaimer ------------------------------------------------------------------- There is always the risk that an assembly language program may cause your calculator crash or freeze. While it is unlikely (impossible?) that a program can cause permanent damage to the device, I cannot be held responsible for loss of data, damage to your calculator, etc. Use this program at your own risk. If your calculator crashes, check your owners manual for instructions on how to recover it. The source code for this game is completely original (with the exception of shared library routines) and was written without knowledge of or access to the source code for any NES game. This program is NOT public domain, but it may be distributed freely as long as it is not altered and this document accompanies it. This program is intended only for private, non-profit, and educational use. Any other use is strictly prohibited. TI-Graph Link is a trademark of Texas Instruments. This program is not endorsed by Texas Instruments, nor am I affiliated with them in any way. ------------------------------------------------------------------- Latest Changes ------------------------------------------------------------------- - ver 1.1.0 03-30-2000 * Changes: - Attempted to improve the physics. They should be more responsive now. - Addressed some collision detection issues. Notably, getting through holes in the floor and ceiling should be easier now. - Cleaned up the source code considerably. - Fixed a bug where you would get stuck on corners while ducking. - Fixed a bug where collision detection would sometimes get screwed up if you went down a pipe while ducking. - Fixed a bug in the sprite clipping routine. - No more PlusShell version. To make PlusShell people happy, though, I am now using hufflib instead of ziplib. - There might be a few other changes too... ------------------------------------------------------------------- Special Thanks To... ------------------------------------------------------------------- - Xavier Vassor and Cedric Couffignal for DoorsOS. - Rusty Wagner for PlusShell and Virtual-TI. - Marc Teyssier for ziplib. - David Ellsworth for Fargo. - Jimmy Mårdell for hufflib and sprmaker. - Gareth for files.txt. - Dimension-TI and Adam Berlinsky-Schine for web hosting. - Thomas Corvazier and Pierre Henninger for Street Fighter 2. Many thanks to all who have supported SMQ during its development! - Don