
                           TINX v1.00 beta 1

                           by Niklas Brunlid

***********************************************************************

  NOTES
 --------------
 Remember, this is a beta version, so back up anything important
before trying it out! Always a good rule anyhow.

 The "tinxconf" file *MUST* be present or the game will not start.
Also, there must be enough memory to hold the field (width*height/8),
all the worms and the missile (each 20 bytes). With a minimum screen-
size (240x105) and two teams this comes down to 3150+180=3330 bytes.

 This game requires TrigLib v3.2, TinxLib and HuffLib v1.1 (all
included). Note that "tinxconf" is a library, so if Fargo says
you're missing one, it's probably it.

 The purpose of the "tinxconf" file is to make it possible to share
and save settings when new versions comes out or when the calc is
reset'd. Currently, the file is subject to big changes, but if you
*really* want to keep your settings, mail me, and I'll send you it's
source.


  KEYS
 ------
 Title screen:
Enter key (pad): Start game
       MODE key: Options
            ESC: Quit

 Options:
 F1: Team options	HINT: You can change the contrast while
 F2: Game options	       in these options screens...
 F3: Worm options
ESC: Back to title screen

	 Team options:
	Arrow keys: Select team/worm
	     Enter: Change name of selected team/worm
	  Hand key: Select team for play. You have to select 2-4 teams.
	       ESC: Back to options screen

	 Game options:
	   Up/down: Select value
	Left/right: Change value
	       ESC: Back to options screen

		Values:
	       Frame delay: Sets the various delays to reduce the effects
	                     of low batteries.
	Field width/height: Size (in pixels) of the virtual playing field.
	           Gravity: Gravity constant.

	 Worm options:
	   Up/down: Select value
	Left/right: Change value
	       ESC: Back to options screen

		Values:
	        Jump angle: Angle of the worms' jumps.
	        Jump force: Force of the worms' jumps.
                Max. climb: Number of pixels a worm can climb, and drop
	                     before falling.
	         Max. fall: Number of pixels a worm can fall before getting
                             hurt [NOT IMPLEMENTED YET]
	      Start energy: Start energy of worms in the beginning of
	                     a game.

 In-game:
Left arrow/right arrow: Moves the current worm left/right
   Up arrow/down arrow: Controls aiming
              APPS key: Select weapon
              Hand key: Fire (hold down when appropriate)
       Enter key (pad): Jump
                    F1: Worm names on/off
                    F2: Worm energy levels on/off
                     P: Pause and display help/power-down box
                   ESC: Exit current game

  Selecting weapons
Just in case my excellent (?) GFX when selecting weapons is not
clear, here is a listing of what they are:

 F1: Missile	The standard missile. Medium damage.
 F8: Pass	A white flag; pass your turn
ESC: Cancel weapon change

More weapons to come...


  BUG STATUS
 ------------
 This section will list the bugs from different ROM versions and
memory conditions. So far there's only one report...

1.11 external: "works great".


  CONTACT AND OTHER STUFF
 -------------------------
All suggestions, comments and bug reports are very welcome! Send them to
   nma95nbr@student1.lu.se or e96nbr@efd.lth.se (preferred)

The newest updates can always be found at http://www.efd.lth.se/~e96nbr


Also, anyone out there with a good landscape generation algorithm?
I've mailed the author of FBombardment, but haven't got any reply
(come on, Ed).
NOTE: A nice(r) library may be on its way...


  CREDITS
 ---------
The Fargo Team (naturally).
Jimmy Pedersen for the key reading algorithm and more.
Jimmy Mrdell for a bunch of stuff (mostly the 68000 guide, which got
 me started), and HuffLib.
Andreas Ess for the landscape generation algorithm.
Marcus Geelnard for the arctan() algorithm in TrigLib.
Bryan Rabeler for maintaining the Fargo Archive.
The staff at TiCalc.org - I go there every day.
Everyone who has answered my questions on A92 and Calc-TI.
All Fargo programmers - keep it up!





***********************************************************************


  HISTORY
 ---------
970717	v0.01	First release. Need better landscape algorithm.
970718	v0.02	Added aiming using TrigLib v2.0
970806	v0.04	Started programming again, fixed some bugs, new TrigLib
970807	v0.10	Mostly bugfixing. Added firing with projectile.
970808	v0.20	Second release. Added jumping.
970810	v0.25	Added missile impact and a simple form of explosion
	    	 "a la Scorched Earth".
970812	v0.26	Some minor space-saving (longword=>word, word=>byte) to
	    	 prepare for adding of more worms.
	v0.29	Added some extra worms, plus names and energy level
	    	 above each worm and the ability to turn them both off.
970813	v0.30	Added a title screen (ugly!)
970813	v0.35	Scrolling title screen (with wrong version number).
	    	 Lots of internal changes (codesplitting).
	    	 Added pause/help screen.
970817	v0.39	Major internal reconstructing. Scrapped one virtual
	         screen => 3360 bytes less required free memory when
	    	 running. Aiming, Firing and Jumping not reconstructed
	    	 yet.
	v0.40	Everything back to normal again, except for an increase
	    	 in program size by 192 bytes :(
970818	v0.41	Some optimization (actually just size reduction by 52
	    	 bytes).
970819	v0.45	Added pause function with instructions, credits and a
	    	 power-down feature.
970820	v0.47	Added control of all worms. Also removed animation of
	    	 "explosion" for practical reasons.
970821	v0.48	Fixed a couple of bugs in the firing. Some experiments
	    	 with running with interrupts on and disabling auto-ints
	    	 1&2, so far unsuccessful... :(
	v0.50	Moved the landscape generation to a library.
970827	v0.51	Fixed the "jumping up a wall"-bug. Also implemented a
	         work-around for the scrolling title picture bug.
970830	v0.53	Implemented a rudimentary routine to make a worm fall
		 if a drop is greater than 2 pixels. You can now also
		 die when you jump into the "water".
970831	v0.54	*Probably* solved the scrolling title screen bug.
	v0.55	Made the sprite background buffers masked - easier to
		 add new stuff later.
	v0.60	Worms now fall when the ground disappears under them, and
		 drown if they fall/walk under the "waterline".
970901	v0.61	Added a very simple timer using auto-int 5.
970905	v0.65	Added seconds counter. Players now have limited time.
970906	v0.70	More massive internal changes, making adding new weapons
		 easy (hopefully) by creating an extremely simple sprite
		 movement language (direction/force, move all sprites
		 until everyone is either on the ground or under water).
	v0.71	Blinking worms when drowning.
	v0.72	Sprite engine re-done, now handles multiple missile
		 types. Also tried compressing sprites, but only gained
		 some 150 bytes.
	v0.73	Worms now disappear when they fall outside the screen to
		 the left and right. Better collision mask for missile.
	v0.74	Slightly modified TinxLib, gives more interesting scenery.
970907	v0.75	Worms flying away on missile impact (randomly). Also added
		 "generating landscape" message.
970908	v0.76	Separate collision masks for spritess facing left/right.
970913	v0.80	Worms now fly away with a force/direction depending on
		 their position relative to the missile impact.
970917	v0.81	Fixed some bugs in the sprite movement engine. Also added
		 some delays on impact and a semi-animated explosion.
970922	v0.82	Beat the A68K bug. First steps towards real worm energies.
		 Aim is now directly above worm's head when aiming up.
970924	v0.84	Small alterations in the decimal output routines.
	v0.85	Worms display *real* energy when hurt. Still not perfect.
	v0.89	Gone into beta stage. All essentials are in place, now it's
		 time to have some *fun* with the code... :)
		Corrected the version number on the title "picture".
970925	v0.90	A nicer missile sprite. Still not animated, though...
		Added text on the title page, plus a "show sprites" option.
970928	v0.92	Animated missile (9 frames). Also added one worm to make
		 team play possible (for player).
		Fixed bug that made worms forget their aim angle.
	v0.93	First steps towards multiple weapons.
		Added a small animation on the title screen :)
971002	v0.94	Temporary options screen plus some internal changes that
		 will make worm naming possible.
971003		Made all those internal changes work. Now possible to have
		 "infinite" number of worms on-screen. For testing I have
		 activated four "teams" of four worms each.
971004	v0.95	Two real teams can now compete. Also started work on name
		 changing within Tinx.
971005	v0.96	Name changing complete. Five teams are included, adding
		 more is just a matter of space. :)  Next up: real team
		 play, i.e. "next player" is in another team.
	v0.97	Done. All that's missing now is proper messages when a
		 team is gone and when one team is the winner. I'll deal
		 with ties later.
971006	v0.98	Added a whole bunch of messages, plus an "are you sure"
		 message when quitting a game. Also fixed a bug which
		 caused direct impact when firing.
971007		Began preparations for making the field size adjustable.
		 Fixed a bug that disabled the name changing (!)
971010		Field size is now adjustable in the source. Will create
		 the menu for it in v0.99.
		All settings (team/worm names, field size etc) are now in
		 a separate config file called "tinxconf" on the calc.
971011	v0.99	Fixed a major bug in the "change player" routines. If you
		 hadn't selected teams from the top down, strange things
		 would happen.
		Fixed worms energies so they don't display numbers like
		 "005" and "015", but "5" and "15".
971013		Added the "game options" screen. Still only two values to
		 change, though...
971016	v0.99r2	Walking->falling now uses gravity.
		Re-designed the game options screen. All those values
		 *will* be "activated" soon... promise!
971018		Reduced size by implementing a new key reading routine.
971019		Sprite-background collision somewhat redone to fix a bug.
		 A sideeffect is that it is harder to get a direct hit if
		 someone is standing right by the edge, but it's also
		 easier to "blow" him away... ;)
		Implemented all but the last value on the game options
		 screen. Configuration "file" is now a library.
971020	v0.99r3	Added option for frame delay - now you can play till your
		 batteries drain out! Also increased the jump angle by 5
		 degrees to make it a *little* harder.
971025	v1.00b1	Separated game options info game and worm options. Added
		 two new values: jump angle and jump force. Some cosmetic
		 changes on all options screens.
		Started implementing wind. Currently it only affects the
		 missile. Will have two option values.


  PLANNED FEATURES - PLEASE MAIL YOUR COMMENTS
 ----------------------------------------------
* Freeze time on "are you sure" message for quitting a game?
* Team/worm statistics.
* Bridges and caves and stuff - possibly even moving water...
* More weapons. Just kicking and some sort of gun (unaffected by
   gravity). Possibly dynamite and mines.
* Flipping sprites - halving the memory needed to store sprites. Currently
   this only saves ca 100 bytes, but maybe when the number of sprites
   increases...
* In the same line: compressed sprites. Currently on hold for the same
   reason.
* Add-on title and menu GFX, reduces size if you *really* want to save
   those bytes.
* A better landscape generator (COMING SOON)
* Power-ups, teleports - I'm dreaming here :)


  PLAYER'S REQUESTS (as suggested by feedback)
 ----------------------------------------------
* More smooth, "intelligent" sprite-screen following method.
* CPU controlled worms - this is a tough one - help!
* Options, options and even more options!
* No wind :(
* More weapons.
* The ability to assemble a team of 1-4 players with any worms.
   Highly unlikely due to the way teams are managed right now...


  KNOWN BUGS
 ------------
* If you fire and the missile goes "under the screen" then I'm not
   responsible for what you hit ;)  Sometimes this causes a crash...
* If one worms ends up under another, it can't move. This may or may not
   be fixed, since it may contribute to the gameplay later.
  This "bug" creates another; if you're trapped and try to move, the
   worm will animate, and trap itself when it is free later (there
   will be leftover pixels on-screen). Can be fixed by not allowing
   animation when you can't go left/right - what do you think?
  This may have fixed itself - don't know how though :o]
