Preshift Menu Help
==================

Preshifting is a technique used to increase the speed of sprite plotting.
A preshifted sprite can be written to the screen 4 pixels at a time instead
of one.

**NOTE** : PRESHIFTING IS ONLY AVILABLE IN FSP2 FORMAT FILES.

Up to four copies of the sprite may need to be stored - if you want to plot
a sprite at ANY horizontal position you will need all four.

Let's say that n is an integer. If you want to plot your sprite at x
coordinates which are 4n+0 (eg 0,4,8,12,16...) you must switch on the toggle icon marked '0' for that sprite.  If you want to plot the sprite at x
coordinates of 4n+1 (1,5,9,13,17...) you must switch on the toggle marked
'1' and so on.

Using preshifting with all toggles 0-3 on will mean a lot of memory is used
for the sprite file, but the sprite can be plotted in any position.  If the
sprite isn't going to move horizontally, you can save memory by just setting
the '0' toggle.

Note that the settings of the preshifting controls will affect every FRAME
of the sprite that is showing, but the controls must be set individually
for each separate sprite.

Advanced Use
============

To get the best from FastSpr you'll have to know a bit about how it works.
A sprite can be plotted using up to three techniques.

(1) The STRB block
==================

This moves pixels to the screen one pixel at a time.  It can write any shape
of sprite, but only manages one pixel every 6 cycles (ARM 2).  This is the
method used exclusively in FSP1 format files.  This technique can also clip
a sprite to any horizontal position.  Stores 4 bytes in the file per pixel.

(2) The STR block
=================

This moves pixels to the screen four at a time.  It can only write a 
horizontal line of four pixels which start where the x coordinate is a
multiple of 4.  It can only clip to windows where the horizontal coordinates
are multiples of 4.  Speed is roughly one pixel every two cycles.  Stores 2
bytes in the file per pixel.

(3 The STM block
=================

This moves pixels to the screen 12 or 28 at a time.  It can only write a 
horizontal line of 12 or 28 pixels which start where the x coordinate is a
multiple of 4.  It can only clip to windows where the horizontal coordinates
are multiples of 4.  Speed is about 1 pixel per cycle.  Stores just over one
byte in the file per pixel.

Note that there are a lot of other overheads such as clipping tables, which
increase the size of the file further.

FSPConv compiles files which will plot as much of the sprite as possible
using (3), plot as much of the rest as possible with (2), and plot what's
left with (1).

You may permit or forbid FSPConv to use (2) and (3) for a particular sprite
with the toggles at the bottom of the sprite window.  Points to note:

  If you switch off the STR and STM block you are no longer using
   preshifting at all.  The sprite will be plotted as if it were from an
   FSP1 format file and the settings of the toggles 0-3 are ignored.

  Solid sprites of 15 (or just over) or 31 (or just over) pixels in width
   can be plotted very quickly using STM blocks.

  Transparent areas may reduce the plotting speed as STR or STM blocks are
   more difficult to produce (as there are fewer continuous horizontal lines
   of pixels) and the rest will need to be plotted using an STRB block.
   
You can make a big difference to the size of your sprite file with the pre-
shifting controls.  Experiment to find the ideal set for your application.   
   
   
