
!Multi - Multisynch sprite display.

 1991 Alun Jones.

This software is in the Public domain. You may copy it
and  distribute it, so long  as the entire application
directory is kept complete and  no charge  is made for
it. Please let me have a copy of any improvements made
and let me know about any bugs.

My address is : auj@uk.ac.aber 

Snail Mail    :

     Alun Jones
     Sunny Bank,
       Tregynon,   
        Newtown,
 Powys SY16 3EH.

This application will display sprites of any height up
to 592  pixels tall.  To use it,  drag the sprite file
onto  its  icon.  The  file  will  then be  loaded and
displayed using interlace to emulate the high vertical
resolution.  When the picture has loaded, press RETURN
once or twice for best display results. This is needed
as I don't  know how to check  the  current  interlace
position,  which means I can't automatically align the
picture to it (Confused ? you will be...)
Pressing SPACE will return you to the desktop.

I do not  guarantee that this  application will work !

Alun.

(Over to Bryan)

------------------------------------------------------

Version 1.01

Hacks by Bryan Hogan 25th June 1991 (sorry Alun):

Can now deal with pictures upto 800x592. This makes it
possible to display super VGA and other large pictures
without  missing  much.  Also  added  check  to see if
sprite  is in a normal  mode and less  than 300 pixels
high,  and if so don't interlace it.  Why 300?  Well I
figured  that if the  sprite  was only just too big it
would  be  better to lose a bit than squash it up.  So
Multi now makes a reasonable attempt at displaying any
sprite.

I used  !ModeDef by Nick Jarman to  create the 800x296
mode 80. Because this only allows the resolution to be
given in characters (8 pixels) I couldn't create a 300
high  mode to  give a full 800x600 interlaced  display
but as my Acorn  monitor can't display this many lines
anyway it doesn't really seem to matter.

This  big mode is also  useful for  displaying 640x480
pictures  because  scaling  them up to  800x600  gives
Translator  more  pixels  with which to dither and get
the colour correct.

Final note to  everyone : interlaced pictures are best
viewed from a  few feet back,  because the  flicker is
then less noticeable.

email : 
  I unfortunately no longer have email access, but can
  be contacted on a friends account - jt@doc.ic.ac.uk

snail mail : 
  Bryan Hogan,
  26, Anson House,
  Churchill Gardens,
  London, 
  SW1V 3AQ.

------------------------------------------------------

Version 1.10

Extra additions. 3rd July 91:

Now centres sprite on the screen.

Removed  "!" from  iconbar text  because I  thought it
looked a bit untidy ! (And against Acorn's style)

Sprites with a mask used to have it plotted  below the
sprite  itself,  often  wrapping  round the screen and
causing an error. Mask is now ignored.

Sprite files  containing  multiple  sprites can now be
stepped through by clicking the left mouse button. The
middle button or the spacebar returns to the desktop.

If a sprite doesn't have a palette then  it is assumed
to be in the standard wimp colours,  so these are read
and used for display. This avoids getting the flashing
colours used for icons, which looks a bit silly.

Clicking  on Multi's  icon  reloads the  last  picture
displayed.  This is  useful  when you are tweaking the
settings   in  Translator  to try  and  get  the  best
possible picture,  or just so  your  favourite picture
is only a click away.

BH.

------------------------------------------------------

Version 1.11

(Back to me, Alun!)
Removed a  nasty  bug  which  it  took me 6  months to
notice  -  now gives true interlace,  which should cut
down the flicker problem quite nicely.  (I got the *TV
commands the wrong way round !)

Now   that interlace  works  properly,  the use of the 
RETURN key becomes apparent :-) 
If the display  flickers when you load a sprite,  then 
press RETURN and it should stop  flickering.  Pressing
RETURN again should return it to its original state.

Incorporated  mode 80  handling  into the  ShadowModes
module and  removed the MemAlloc usage from !RunImage.

Removed  a  bug  which  then  showed up in  the screen
centering routine, which could cause Address Exception
errors.

Alun.

------------------------------------------------------

Version 1.12   21st October 1991

Back to Bryan (again!)

Clears keyboard buffer before returning to the desktop
otherwise any key presses end up in Edit windows.

Now uses mode 80 to display big, upto 800x300, but non
interlaced pictures. NB: this only works properly with
256 colour sprites.  Hmmm, don't know whether to leave
this in now.

Created new mode 81, a 960 x 256 mode 24 type. This is
used when  the 'HiRes'  menu  option is ticked.  I use
this  option  to  display GIF pictures of upto 640x512
that  have  been  scaled  3:2  in  the X direction  by
Translator.  As noted above this gives more pixels for
dithering, often resulting in a better colour match.

Added  mode 81 to ShadowModes module.  Changed version
number to 1.12 (same as Multi itself).

Current control summary (while picture displayed):

Mouse button    Keyboard         Action
------------    --------         ------
   Left          Shift       Step through sprites.
   Middle        Space       Return to desktop.
   Right         Return      Re-align interlace.

Left click on the Multi icon reloads the last picture.

As you can probably tell, I like to do everything with
the mouse (ooh err!).

22nd October....... Version 1.20

Wrote my first ever module, DoubleMode, and it worked!
This provides one command:
  DoubleMode <mode>
which attempts to claim  double the screen memory used
by <mode>, eg. DoubleMode 15 gives 320K screen memory.
Multi now uses this instead of the ShadowModes module,
thus avoiding having  almost twenty mode numbers taken
up by dummy modes.

Placed local error handler in display routine. This is
for two reasons: 1, to catch "not enough memory" error
from DoubleMode command ;  2, because  having the file
left open by errors caused by typing errors when I was
changing the program was really starting to annoy me!

30th Oct, minor additions, version 1.21 :

Mode 24 sprites now work (though how many mode 24 pics
have you come across? No, me neither!).
VGA modes 25-28  now work.  Identical  to modes 18-21.
Should now work with all modes from 0-28,  except mode
23 of course (and 22, because that doesn't exist!).

31st Oct, version 1.22 :

To finish off the job I started with DoubleMode and be
really friendly about using extra mode numbers, I made
Multi read  the  numbers  from a file.  Then I wrote a
little  utility to directly poke new mode numbers into
the modules and rewrite the ModeNums file.  This trick
is  obviously  dependent  on the  offsets  within  the
modules  not changing, so be very  careful if they are
altered.  You have been warned!   If the ModeNums file
doesn't exist then it is  just created with  the given
mode numbers.

Hopefully(!), these will be the last changes I make to
Multi, because it seems to deal with most things now.

Bryan.
