PROGRAM:        Sqrxz
VERSION:        1.0.0
AUTHOR:         Jimmy Mardell
PORTER:         James Vernon
GENRE:          Platform
DEVICE:         TI-84+CE
PLATFORMS:      TI-OS (via "Asm(" command)
RELEASED:       February 2016


####################
## What is Sqrxz? ##
####################

    Sqrxz is a Mario Bros similiar game. The TI-84+CE version is a port of a
    TI-85/86 game by Jimmy Mardell, which in turn is a clone of a PC game with
    the same name that Jimmy happened to like very much (you can download a
    remake of the original with the link at the end of this file).
    
    The goal of the game is to control an ugly bug (a Sqrxz) through a
    dangerous world filled with traps and enemies such as Blobs, Hedgehogs,
    Bats and more.


##################
## Installation ##
##################

    Use TI Connect CE to send the following files to your calculator:
    
    sqrxz.8xp               Program (run from RAM)
    sqrxzs.8xv              Sprite data (can be archived to preserve RAM space)
    sqrxzt.8xv              Title screen data (can also be archived)
    
    To run the game, select the "Asm(" command from the catalog menu, press
    [PRGM] and select SQRXZ.
    
    You will also need at least one world (a set of levels) on your calculator
    to play. World files can be archived as well. The following worlds are
    included in this zip file:
    
    sqrxztut.8xv            Tutorial World (1 level)
    sqrxzwd1.8xv            Sqrxz World Part I (4 levels)
    sqrxzwd2.8xv            Sqrxz World Part II (4 levels)
    sqrxzwd3.8xv            Sqrxz World Part III (4 levels)
    sqrxzwd4.8xv            Sqrxz World Part IV (3 levels)


######################
## Choosing a World ##
######################

    When you start Sqrxz, the title screen will appear. Press any key to
    continue to the "Choose World" screen.
    
    Press [Up] and [Down] to move between the worlds, or press [MODE] if you
    have more than 16 worlds on your calculator to move to the next page.
    
    Press [ENTER] to select a world, or press [CLEAR] to quit the game.


#############
## Playing ##
#############

    You control the ugly little bug with the arrow keys as follows:

    LEFT    - move left
    RIGHT   - move right
    UP      - jump (2nd can also be used for this)
    DOWN    - walk slower (Alpha can also be used for this)

    Why would you want to walk slower than regular? It's because that usually
    Sqrxz will run over holes in the ground that are one tile wide (if you
    don't happen to stop directly above a hole, which isn't likely). But
    if you hold the DOWN button down, and move left/right, the speed is reduced
    and you can thus fall down in holes more easily. Another reason you maybe
    want to walk slow is that most enemies (not all!) walk in that pace, and
    sometimes you might want to follow them.

    Other keys are:

    MODE    - pause the game
    DEL     - give up this life (if you get stuck)
    CLEAR   - quit all the way out of the game
    MATH    - teacher key, saves current game state and quits to homescreen to
              be resumed when the game is next run
    
    At the bottom of the screen you will find two bars; the blue bar is how
    much oxygen you have left in your lungs (decreases when you're in water)
    and the red bar is how much time you have left. You usually have more than
    enough time to beat a level, but it could be changed so that you have to
    hurry through the level. When the time is up, you lose a life.


###############
## The Tiles ##
###############

    There are a lot of different tiles in Sqrxz. Some are background, some
    are foreground (obstacles). Here is a complete list:

    BACKGROUND TILES
         Trees
         Small stones
         Tombstone
         Fences
         Plants
         Letters
         Safe sign  - usually before the exit door
         Exit door  - the goal of each level!
         Water      - When you're in water, the blue bar will decrease.
                      When not in water, it will increase. If the bar reaches
                      empty, you drown. Note: bugs can't swim, and you'll fall
                      as fast in water as in air.

    FOREGROUND TILES
         Bricks         - these can be crushed with your (Sqrxz) head
         Steel brick    - harder bricks, can't be crushed
         Earth,
         Tower,
         Rock,         
         Bridge ramp    - Forground obstacles that are just in the way
         Bridge         - When standing on a bridge, it will fall apart
                          immediately. You have to run on a bridge if you don't
                          want to fall down.
         Portcullis     - When you walk under a portcullis, it will fall down
                          when you've left that square and thus not allowing
                          anything passing through. Can be good to stop
                          enemies, but can also trap you...
         Spikes         - Avoid these by all means! Sqrxz is a poor bug with no
                          armor.
         Spike traps    - These are nasty ones! When walking on a trap, it will
                          spring immediately and you die. And there is no way
                          to find out if a tile is a spike trap until it's too
                          late...
         Lever          - Pulling a lever will save your position. If you die
                          on the level, you don't have to start from the
                          beginning.
         Sausages       - Yummy! Sqrxz LOVES sausages, and there seem to be
                          someone leaving a damn lot of sausages in each world.
                          If you manage to eat 16 sausages without dying
                          inbetween (the counter resets if you die), you get an
                          extra life.
         Extra life     - Sometimes you can find an extra life on a level. It
                          looks like a small orange Sqrxz. Touching it will
                          give you an extra life. However, when you see an
                          extra life you should beware! A Creator of the World
                          is usually nasty to put a lot of traps around an
                          extra life so it's either hard, or impossible to
                          reach it!


#################
## The Enemies ##
#################

    There are five different enemies, and all will walk/move straight forward
    and turn around at obstacles. All enemies walk/move slower than Sqrxz
    (except the green man).

     Blob       - A primitive enemy. Just jump on it and it will die.
     Hedgehog   - These can be quite annoying. You can't kill it by jumping
                  on it because of it's spikes (you'll be the one who die
                  instead).
     Bat        - Since the bat is flying, it never changes it's vertical
                  coordinate. Jumping on it will kill it though.
     Green man  - A man running around with a helmet on his head - the
                  definately most advanced enemy in Sqrzx. It's running
                  at the same speed as Sqrxz do, which means it doesn't fall
                  down in small holes. Also, because of the helmet, you can't
                  kill the man by jumping on it. If you do, the man will hide
                  inside the helmet, and wait a few seconds before running
                  again. When he starts running again, he will change
                  direction.
     Fish       - Swims in water, always at the same height. You can't
                  kill it though, so it's a combination between a hedgehog
                  and a bat (since it doesn't fall down).

    When you jump on an enemy (except Hedgehog and Fish), you can jump from the
    back of the enemy and thus reaching higher than you usually should. To
    do this you have to jump on the enemy and hold down the jump button (UP
    or 2nd) at the same time. However, you can't hold the button down - you
    have to release it after the jump and the pressing it again before landing.
    This is made on purpose as Sqrxz shouldn't be bouncing around that easily.


#####################
## Version History ##
#####################

    1.0.0 <> February 2016
        - Ported from TI-86 version
        - Used the graphics from the original PC game
        - Added more levels (inspired by the PC remake extra levels)
        - Added Teacher Key


#########
## FAQ ##
#########

    Q: WHAT THE TELL DOES SQRXZ MEAN!?!? How do you pronounce it!?
    A: I have NO IDEA. I will ask the author of the PC game when I see him.
       As for pronouncing, I pronounce it SKWER-ks  (not -zee at the end).

    Q: Can I run worlds made for the TI-83+/84+ version of Sqrxz?
    A: YES, you can because the world format is identical. You can send the
       .8xp file to your calculator and it will be detected.


################
## Game Hints ##
################

    * Jump on enemies to reach higher. This is necessary in almost
      every level... to do that, jump on an enemy, and before you land
      on it's back, you must first have released the jump key, and then
      pressed it down again when landing. With practice, this is very
      easy.

    * Don't kill an enemy unless necessary!! There is no score in Sqrxz,
      so there's no need. But more important, you very often have to
      get "help" from the enemies by using them...

    * ALL levels in the default Sqrxz worlds are possible to solve!!!
      Some of them are quite tricky though... quite often you have to
      prepare escape routes, trap enemies etc, before going on the "main
      course".


############################
## Making Your Own Worlds ##
############################

    Head to www.jvti.org to download the World Editor to make your own worlds
    full of fun levels with nasty traps and baddies! :)


#################
## Source Code ##
#################

    The source code to this game is included in this zip file, and you are free
    to use any bits of code if you find them useful. However I would appreciate
    if credit is given where it is due (to either myself/Jimmy or others for
    bits of code that I’ve borrowed) :)


################
## Disclaimer ##
################

    This program is written in assembly language and therefore could crash your
    calculator, although it has been tested extensively and shouldn't cause any
    issues. In any case, I take no responsibility for the consequences of you
    using this program on your calculator. To avoid any potential data loss, I
    recommend archiving any programs/variables on your calculator before
    running this or any other assembly program/application.


##################
## Thanks to... ##
##################

    Many thanks go out to the following people:

    - Jimmy Mardell for the original calculator versions of Sqrxz.
    - Marcus Westerlund for the original PC Sqrxz.
    - Wayne Chen for converting the PC Sqrxz levels for Jimmy's calculator
      versions.
    - Rodolphe Boixel for the 2010 remake of Sqrxz (link at bottom).
    - Rabia Sahaib for the additional levels in the 2010 remake, from which the
      Tutorial World and World IV levels are based on.
    - WikiTI for the collection of 84+CE information.
    - Matt "MateoConLechuga" Waltz for some improvement ideas borrowed from
      the C library source for sprite & LCD routines, and especially for CEmu.
    - calc84maniac for SPASM-ng.


###################
## Closing Notes ##
###################

    Feel free to email with any issues / bug reports at jamesv82@live.com.au.
    You can find links to some of my other games at www.jvti.org. Thanks for
    playing :)
    
    Sqrxz PC remake (not by me):
    www.sqrxz.de/sqrxz/