
                         Texture Garden's History
                         ========================

        The history of the Texture Garden in reverse chronological order
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Note: * Readers are advised that this file provides information of quite a
        technical nature in places.
      * An up-to-date version of this document in HTML should be available
        on the web at: http://www.varuna.demon.co.uk/tmc/tghist.htm .

v1.00 - 01-Dec-96.
       The 'fix' for the optimised two dimensional inverse FFT routines
        implemented in v0.58 now no longer corrupt some textures (bugfix).
       The backdrop animation routines did not work on RISC OS 3.7.
        This has now been cured (bugfix).
       Memory allocation problems (introduced in v0.58) fixed (bugfix).
       What happened to version numbers 0.60 to 0.99? The version numbering
        is dictated in part by the fact that the files are timestamped with
        the current version number...

v0.59 - 25-Nov-96.
       Pinboard animation can now be quit from the icon bar menu (bugfix).
       Escape key made more responsive during virtual sprite processing.
       Remote control can not be quit by closing the main window (bugfix).
       Remote control will never open the preferences window (bugfix).

v0.58 - 25-Nov-96.
       By popular request, and after a discussion of the matter in the
        c.s.a.apps newsgroup, dragging an animation (in the form of a
        directory of sprite files to the icon bar icon now animates these
        sequentially on the pinboard (using *Backdrop).  The animation may
        reversed using the normal interface, and stopped from the icon bar
        menu. The files are not cached, so for maximum speed, animations
        should be played from withing a RAM based filing system. For those
        who want to be able to play back multiple image sprite files on
        their backdrop with full cacheing, it seems worth pointing out at
        this juncture that this is not the job of an algorithmic texture
        generation program, but should be performed by the program which
        manages the backdrop.  It is hoped thet the author will be able to
        point interested parties to such a program in the near future.
       Texture Garden is less likley to exit with an ungraceful beep when
        encountering errors when generating animations (bugfix).
       The two dimensional inverse FFT routines used have been optimised a
        bit more, producing a significant speed increase. Further
        improvements may well be possible if some mathematical elbow grease
        can be applied.
       Texture Garden can now be started up with no icon bar icon.  The
        syntax for doing this is "Run !TexturGdn -Remote".

v0.57 - 21-Nov-96.
       Cured serious bug which stopped resized textures from animating
        (bugfix).
       Cured problem which had crept in affecting the "Error command"
        (bugfix).
       Added "Registered" function which returns 0 if the user only has the
        Freeware version of Texture Garden.
       Low memory reports now no longer contain complete gibberish (bugfix).
       ZapTexture now offers support to files from PhotoDesk2.

v0.56 - 18-Nov-96.
       "DefineLightSource" command tweaked to reduce non-linearities near
        the zenith, and and its theta parameter's sign has reversed (to
        make the syntax sensible).  These changes mean that this command is
        not backwards compatable with the one in version 0.55 (bugfix).
       Messages file now reflects the changes since version 0.53 (bugfix).

v0.55 - 17-Nov-96.
       "DefineLightSource" and "ShineLightOnVirtualSprite" commands added
        These are used to produce a range of bumpmapping effects by drawing
        on techniques used in ray tracing.  More details are provided in
        "Docs.Language", "Docs.Technical" and "Docs.Features".
       Added options and preferences for changing the mutation of the
        location and colours of the light sources.
       Templates significantly redesigned as a consequence of this, with
        redesigned icons and new options added to the control window.
       "Specular", "Gourad", "Phong", "Specular" and "SpecularPhong"
        commands added.  These affect how individual lightsources interact
        with the textures' surfaces.
       Added "ResizeBumpMap" command to allow the front end to resize the
        new textures.
       Dragging a sprite file to the icon bar icon now tiles it on the
        backdrop by using *Backdrop with the -T option.  This will also
        work with JPEGs.  Although Acorn's Pinboard does not offer support
        for this yet, other programs do.
       Fixed problems associated with saving files to desktop programs
        which would not respond to WIMP messages (bugfix).

v0.54 - 14-Nov-96.
       "CreateColours(Model)" command added.  This is intended to replace
        the "CreateColoursUsingRGBData", "CreateColoursUsingHSVData" and
        "CreateColoursUsingCIEData" commands.  It takes as parameters
        either "RGB" (0), "HSV" (1) or "CIE" (2).  Parameters greater than
        2 are reserved and should not be used.  The use of the old commands
        is still allowable, and they will remain available.
        This fairly major has been made partly so that it will be easier to
        implement an editor for palette files, and partly for the sake of
        consistency with the new "SetColour" command.
       "SetColour" command added.  This chooses a colour to be used when
        painting directly to a virtual sprite, or when selecting the colour
        of lightsources.
       ZapTexture updated.  The RPC-specific SHIFT-cursor-left bug has
        been fixed and the following commands are now supported by the
        module: "CreateColours", "SetColour", "RGB", "HSV", "CIE",
        "Specular", "Gourad", "Phong", "DefineLightSource", and the cheesey
        "ShineLightOnVirtualSprite".

v0.53 - 10-Nov-96.
       Floyd-Steinberg dithering now used on the palette display.  This
        has the minor disadvantage of being slightly slower to generate.
       Palettes are now displayed with the lowest "height" on the left.
        This is more logical than the reverse and it now corresponds to the
        display produced by the raw palette files.
       Released onto the net 10-Nov-96.

v0.52 - 08-Nov-96.
       1024x1024 icon added and template options text made clearer.

v0.51 - 07-Nov-96.
       Added option to save animations as either directories of sprites
        or as multiple image sprite files.  This offers support to programs
        that produce animated GIFs from multiple sprite files now that
        Fresco supports animated GIFs as web page background images.
       Added support for playback of multiple image sprite files.  You
        can now view any sprite file using the program.  Documentation
        for these features is contained in section 01 of the
        "Docs.Technical" file.
       Resized "Aborted" sprite so that it now fits properly inside a 64
        pixel wide icon (bugfix).
       Extended the percentage commands to support fractional percentages.
       Loading of textures speeded up by using OS_EvaluateExpression.
       Mating modified so the father sometimes contributes his palette.
       "Docs" directory moved out of the application directory.
       Floyd-Steinberg dithering improved to eliminate horizontal
        lines in images.  It still produces more artefacts than !ChangeFSI.
       Palette directory reorganised to use Floyd-Steinberg dithering
        when the textures are displayed.

v0.50 - 27-Oct-96.
       Floyd-Steinberg dithering implemented.  This currently works in
        16, 256 and 32K colour modes.  The biggest improvements may be seen
        in 16 colour modes.  No dithering is required in 16M colour modes.
        2 and 4 colour mode dithering could easily be implemented, but would
        cause code bloat that is currently felt to be unjustifiable.
        See the "Dithering" section in the "Docs.Technical" file for more
        details.
       ErrorText <string> command provided.  This is similar to
        "Error(Value)" which generates an error report containing the value
        of its parameter.
       ReportText <string> command provided.  This is similar to
        "Report(Value)" which sends a WIMP message (no. &804C0) to a 
        debugging program.  This may be of use for sending commands to
        dircecly control !Zephyr.
       ScaledDithering(Value) command added to replace the cumbersome
       "If IsLessThanOrEqualTo(LogBitsPerPixel,&2) Then Dithering(&4000)
        Else If IsEqualTo(LogBitsPerPixel,&3) Then Dithering(&2000)
        Else Dithering(&0)" commands which were recommended until now.
       Added "AddToPercentage" command.
       Texture Garden now behaves better if there is no JPEG filetype
        icon in the WIMP sprite pool, by using the "file_xxx" sprite to
        replace it (bugfix).
       ALT-dragging a texture now indicates correctly whether the program's
        JPEG export option is being used (bugfix).
       Changing the template set in use now no longer discards any
        textures loaded.  Textures which are too large to fit in the new
        icons are resized accordingly.  Textures which are smaller than
        their new icon retain their size.

v0.49 - 20-Oct-96.
       Added the option to use Texture Garden from the command line.
        This may be used to tell the program to process files by generating
        requests from other programs.
        The syntax is "Run !TexturGdn -file <batchfile>".
        More details may be found under "Batch processing" in the
        "Docs.Technical" file.
       Cured bug which generated error messages in batch file generation
        (bugfix).
       Added "Percentage" command.
       Added "Add(A,B)", "Subtract(A,B)", "Min(A,B)", "Max(A,B)",
        "Multiply(A,B)" and "ScaledMultiply(A,B)" functions.  These are
        intended to be complete replacements for:
        "Combine(UnboundedAddition,A,B)",
        "Combine(UnboundedSubtraction,A,B)", "Combine(Maximise,A,B)",
        "Combine(Minimise,A,B)" and "Combine(Multiplication,A,B)".
        These functions have been added for a number of reasons.  Improved
        readability of textures is one factor.  Another is that because all
        commands using combination types currently execute using
        self-modifying code, this may produce a performance hit when using
        the StrongARM processor.  As the "Multiplication" command was used
        internally in resizing textures, this operation should now be much
        faster.  The old commands now merely call their new replacements
        so the new ones should consequently always be used in place of their
        predecessors.  The old commands will be retained.
       LinearFieldSegment command was reported as being broken.  After a
        close inspection it was decided to be beyond repair.  One minor
        problem with it was fixed, and it was then abandoned, with changes
        in its documentation to reflect its true errant behaviour.
       LinearSegment command replaces the functions previously performed
        by LinearFieldSegment.  It's behaviour is more intuitive than
        its predecessor (bugfix).
       Changed all the old textures that needed changing, so that the
        above guidelines are now being followed.  A number of textures and
        palette files relied upon the LinearFieldSegment command with
        parameters that produced strange behaviour.  Some of these 
        textures now have a completely different appearance, and usually
        not one that is as pleasing as the previous texture.  None of the
        textures have had their filename changed.
       Added a few Percentage commands to selected textures whilst doing
        this.  
       Wimpslot decreased back down to 224K.
       Complicated change to the way that the commands that output to
        sprites do their dithering.  Originally, these routines corrupted
        the seed of the random number generator.  This is now fixed, but
        with the result that the dithering patterns on all textures now
        works from a different seed.  Also one texture ("Demo.SPLODG.JPG")
        which depends on the seed now displays properly (it was broken
        before) (bugfix).
       Error(Value) command provided for debugging purposes.  This
        terminates texture generation and generates an error report
        containing the value of its parameter.
       Report(Value) command provided for debugging purposes.  This
        is very similar to the "Error" command, but sends the value to
        a WIMP debugging program such as my own !Zephyr.
       Added "Aborted" message when escape is pressed, or there is an
        error in texture generation.
       Close icon added to the control window.  ADJUST-clicking on the
        main window's close icon closes this and leaves the control window
        open.  Clicking on the icon bar restores things to normal.

v0.48 - 17-Oct-96.
       Terrible bug (introduced in version 0.47) involving severe
        crash when planting one texture on top of an existing one
        eliminated (bugfix).
       Selecting a directory from the menu structures now opens it rather
        than its parent (bugfix).
       Wimpslot increased to 256K after receiving advice.  It is probably
        possible to reduce this to 224K without problems.

v0.47 - 13-Oct-96.
       Problem involving JPEG value in options window resolved (bugfix).
       Fixed problem involving large complex textures failing to breed
        due to a lack of allocated memory for keeping track of their
        internal bracket structures (bugfix).
       The hourglass is used when saving and loading textures as text.
       Terrible bug (introduced in version 0.45) involving the program
        producing errors if the "ptr_hand" sprite was not in the WIMP's
        sprite pool fixed (bugfix).
       ZapTexture has failed to work on RISC-PCs up to this point due to
        memory management problems which would only become manifest when
        !Zap used dynamic areas.  These problems should now have been fixed
        and ZapTexture should now be fully RISC-PC compatible.  Thanks are
        extended to James Harvey for the initial bug report, and to James
        Holtom for the use of his RISC-PC (bugfix).
       Cosmetic improvements to ZapTexture to slightly reduce problems at
        low width settings.
       Fixed bug causing all the fractal noise commands to never return
        if they were fed large second parameters.  These commands are now
        slightly slower as a result (bugfix).
       Corrected documentation relating to "LinearFieldSegment" (bugfix).
       The incorrectly selected icons in various templates have been
        deselected, and those with incorrect numbers have been renumbered
        so that textures in them display properly (bugfix).
       Added the "Cosmetic improvements" section to the "!ReadMe" file.
       Added the "CreateColoursUsingCIEData" command.  The PRM's
        documentation on the SWI used by this command seems to be completely
        wrong and the SWI itself behaves in a very strange fashion,
        however, hopefully everything will work.
       Terrible bug (introduced in v0.40) involving complete machine
        lockups if textures were dragged into icons where texture
        generation had been aborted for some reason has now been completely
        eliminated (bugfix).
       Unresponsive Escape key (from v0.45) made responsive again (bugfix).
       Pressing SHIFT and ALT while dropping a dragged a texture into
        an icon deletes the contents of that icon and frees any memory
        allocated to it.  This may be of use to those working with memory
        restrictions.
       Trying to edit or overwrite textures when they are being bred from
        is now not allowed as it can cause problems (bugfix).
       Operation of F1 and F4 hotkeys slightly improved (bugfix).

v0.46 - 10-Oct-96.
       Problem (introduced in version 0.45) involving errors after making
        or previewing animations resolved (bugfix).
       Fixed problem (introduced in version 0.45) with SuperUser's
        checksum report occurring in an incorrect icon, and causing
        textures not to be loaded if the pointer is moved away from the
        current icon while the checksum report is being displayed (bugfix).
       "MakeVirtualSprite" and "MakeSpriteFromVirtualSprite" implemented.
        These commands quietly usher in a new era of texture generation
        within Texture Garden by providing full support for multiple layer
        textures.  This is described in the "Docs.Technical" file, and in
        the "Docs.Language" file.
       Fixed problems with poor indentation of palette definitions within
        loops as exposed by new multiple layering feature (bugfix).
       Clarified documentation relating to TG_miscop (bugfix).
       Preferences now include which preferences window is displayed.
       Custom squeezing is now no longer used as this proved not to be
        StrongARM aware.
       Decimal numbers now used for animation frame number.

v0.45 - 08-Oct-96.
       You can now resize textures by dragging their edges as well as
        their corners.
       Resizing and texture dragging are now indicated by appropriate
        pointer shapes which provide feedback about when the pointer is
        correctly positioned.
       Resizing now works in the control window (bugfix).
       Problem involving crashes upon presses of Escape fixed.
        The key is not quite as responsive as a result (bugfix).
       The Escape key now aborts from breeding properly (bugfix).
       Longstanding problem involving double-clicks on textures not
        being recognised and triple and quadruple clicks being required
        finally tracked down (bugfix).
       Problem with animation routines coming to a halt if the desktop
        failed to multitask for more than a second or so solved (bugfix).
       Added the "Getting started" section to the "!ReadMe" file.

v0.44 - 05-Oct-96.
       Fixed problem with using "Write/Click/Drag" icon types in my
        dialogue boxes which meant the caret needed to be positioned
        manually inside them by using simple "Writable" icons which the
        WIMP deals with correctly.  The WIMP still cannot consistently
        cope with situations where it has to borrow the caret from another
        application (bugfix).
       Noticed problems with "Raw" file export to text editors and
        similar applications.  This seemed to be because Texture Garden was
        taking such a long time to generate the data that by the time it had
        finished the editor had forgotten all about what was going on. This
        had the unfortunate side effect that the file was left in the
        "!Scrap" directory and not deleted. This turned out to be the straw
        that broke the camel's back for the raw file option. It has been
        completely deleted and replaced by a far more useful array of
        information concerning the sprite which is to be saved.
       Added "Rapid exit" option and preference.
       Added "Resize and "ResizeSprite" commands.  These take all the
        effort out of resizing textures.
       Added front end to exploit the new "Resize and "ResizeSprite"
        commands.  You can now resize textures dynamically by dragging 
        their bottom right-hand corners.

v0.43 - 29-Sep-96.
       SWI "XOS_SynchroniseCodeAreas" called where self-modifying code is
        used.  If there is a performance hit when using this on older
        machines, it is quite small.  This means calling the SWI
        "XOS_PlatformFeatures" is probably not needed.
       New style "OS_File" commands used for loading code.  Whether the
        program works on StrongARM chips now depends mainly upon:
        * Whether all the self-modifying code has been identified.
        * Whether Acorn's directives have been correctly implemented.
        * Whether "Absolute" files compressed using "!Crunch" work.
        * Whether any PC indexing needs adjusting (unlikely).
        Proper testing will occur at my earliest convenience.
       Memory reorganization so that the limit of 32 third party extensions
        is eliminated.  This change has also has the pleasing effect of
        shaving about 2048 bytes from the "GardenSpt" module.
       Added "TwoDimensionalStore", "TwoDimensionalSwap" and 
        "TwoDimensionalMask(Type)" commands.  New internal "TG_miscop"
        Texture Garden call added with two reason codes for memory
        allocation.
       !Zap mode updated so it recognises the new commands.
        "Resize", "MakeVirtualSprite" and "MakeSpriteFromVirtualSprite"
        also added at this stage so the user should not need to update
        their !Zap mode too frequently.

v0.42 - 22-Sep-96 (released only to those who had problematical versions).
       Messages routines updated to fix severe problems in a small number
        of cases.

v0.41 - 19-Sep-96.
       Messages routines revamped and "Messages" file closed properly.
       Message compression routines optimised, resulting in !MsgPress
        application.
       Palette files moved into a Textures directory inside !TexturGdn
        so the !Zap mode does not need to treat files beneath a "Palette"
        directory specially.
       Interactive help for greyed out menu entries added.

v0.40 - 13-Sep-96 (private version released to JK).
       Pre-interpretation memory restrictions on the length of file that
        could be dealt with without producing address exceptions reduced
        and error checking of file size implemented (bugfix).
       Menu structures now behave better if "small_diro" and "small_appo"
        sprites are not in the WIMP's sprite pool (bugfix).
       Removed bug that meant that memory in the internal sprite area
        was never released.  This caused playing an animation to make
        Texture Garden's Wimpslot to grow by several hundred kilobytes
        unnecessarily (bugfix).
       Split resource sprites into two areas in the hope of slightly 
        improving performance.  Removed some unnecessary palettes from
        these sprites.
       Elusive bug in mutator causing long texture files to give address
        exception when breeding finally tracked down (bugfix).
       "Textures.!ReadMe" file modified so that it is more aesthetically
        pleasing in the new !Zap mode and it has a "Checksum" which
        enables it to be loaded by unregistered users of Texture Garden.
       Animations may now be applications (i.e. start with a "!").
       Pressing "Escape" now stops animations and breeding as well as
        aborting drags.
       Caret handling improved so hot keys work more intuitively.
       Memory handling made more effective so Wimpslot minimised.  This
        is now down to 224K.
      
v0.39 - 12-Sep-96.
       Bugs discovered in recently changed hotkey routines, entailing
        a comprehensive rewrite.  The WIMP is not expecting to encounter
        menus arising from dialogue boxes, and this still causes problems.
        These are as follows:
        * Most hot key generated dialogue boxes temporarily disturb a few
          pixels in the corner of the screen with their hidden parent menu.
        * The "Palette" and "SaveAni" dialogue boxes are brought up with
          a small leading menu.  This involves unlinking the pointer,
          moving the mouse over the sub-menu pointer , and then moving it
          back again.  This is a bit ugly.  There may yet be ways of hiding
          the leading menu, though making it vanish looks very difficult.
          The problem is that the "Wimp_DecodeMenu" SWI fails to keep
          track of sub-menus if they are opened directly by the program,
          and not by the WIMP.  I therefore have to pretend that the user
          has selected the sub-menu themselves.  Totally bypassing the
          "Wimp_DecodeMenu" SWI and writing code specifically may solve 
          this, but means doing all the work in the program.
        * "Wimp_DecodeMenu" relies on the fact that the window handles of
          the dialogue boxes encounters in menu structures remain unchanged
          from when the sub-menu is created to when the "DecodeMenu" SWI is
          called.  Because my palette window needs to be deleted and
          recreated if its sprite area changes position in memory, the
          WIMP's menu decoding has forgotten about the dialogue box because
          it has changed its handle.  At the moment this causes the entire
          menu to collapse.
        * Icons in previous dialogue boxes cause subsequent menus to
          collapse in an unintuitive manner.
       Palette box redesigned again, this time to prevent the icons in
        the dialogue box from acting as items in a previous menu and
        causing palette selection menu trees to vanish too easily.
        
v0.38 - 11-Sep-96.
       Laborious and complicated fix for RISC PC icons in menus.  These
        now work with all current versions of the WindowManager module.
        The problems of the truncated menu widths were solved by padding
        the filenames with CHR$160s (a hard space).  The only side effect
        of this for the user is that palette and animation directories
        and filenames are now not allowed to end with this character.
        
v0.37 - 10-Sep-96.
       Name of task registered with task manager now "Texture Garden".
       Multiple running now prevented.
      
v0.36 - 10-Sep-96.
       Numerous modifications as a result of feedback from Tom Hughes:
        * Options dialogue made less chunky.
        * System sprite pool now no longer interfered with.
        Request for comments notice modified as a result of positive
        RISC PC test results.
       Preferences and options for hiding and killing the "Options" menu
        implemented.
       Errors when trying to use batch files eliminated (bugfix).
      
v0.35 - 09-Sep-96.
       Hot dialogue boxes now have had their parent menu reduced to only
        a few pixels.  They have still not vanished.
       Palette box redesigned so "Add" and "Delete" icons are less
        prominent and "Select palette" has been moved to the left and is
        consequently quicker to access.
       Five more hot key functions added and the option to load the
        texture generation program into a text editor has been moved from
        F5 to F9 to retain the logic of the layout.
       Problems with template workspace solved by loading all templates
        into memory at the same time.
       !Help file made more coherent.
      
v0.34 - 08-Sep-96.
       More major changes to the options and preferences windows.
        These are now split from one another into two distinct regions.
        Options are specific to the version of the program running,
        whereas preferences may be saved to disc.
        Preferences may only be accessed through the icon bar icon.
       Option for setting the options to the preferences (Prefs... Set).
       Preferences can be copied to the local options [Options.CopyOpts].
       Style-guide style "Cancel" icons added to the dialogue boxes.

v0.33 - 07-Sep-96.
       Options window completely redesigned with new "Output" category.
       Added "Open main window" and "Open options window" options.
       Added "JPEG" and "Mono" options, and a backend that uses these in
        conjunction with a JPEG quality variable.  This was done to shield
        the user from some of the complexities of !ChangeFSI's command-
        line options.
       Palette and animation menu structures now conform to the protocol
        I have inverted for handling clicks in menus arising from
        dialogue boxes: click with adjust and he whole menu tree is
        redrawn, click with select and the tree collapses as far as the
        last dialogue box.
       !Sprites22 and !Sprites files updated with more 3D icons.
      
v0.32 - 06-Sep-96.
       Major changes to the way F5 exports its file.
        Now it goes via a "Textures" directory within !Scrap.
        This means that:
        * It will now work with !Edit and all other editors.
        * The file's status is not set by the editor as changed.
        * !Zap can now use the fact that the file is within a "Textures"
          directory to set the editing mode correctly.
        * Unfortunately, the title of the editor's window is set to the
          ugly path within !Scrap, and if it is saved from the editor
          then that is where it goes. 
        * If it is saved from the editor into Texture Garden then the
          title of the editor's window changes to <Wimp$Scrap>.
        * Dragging from Texture Garden to the icon bar icon of an editor
          has also been "fixed", but using some dodgy code that could
          have unexpected side effects if more than one program is being
          run which accepts text files at the icon bar.  This problem
          can be demonstrated by loading two text editors and dragging
          a file directly from Texture Garden into each in turn.  As
          this kind of circumstance will probably occur very infrequently,
          this problem has not yet been addressed.
        * Using a directory in shared workspace is not ideal.  However,
          short of applying for a Texture Garden filetype allocation,
          this is the best solution envisaged so far.
       "" marks and trailing "."s added to this file for clarity.

v0.31 - 05-Sep-96.
       ZapTexture syntax colouring mode for !Zap released.
       Various bugfixes associated with the crunching method employed.
       Palette and animation windows stay open after all menu clicks.
       Hot dialogue boxes now open better on RISC PCs, though now
        underneath each dialogue box is hiding a small menu that
        generates it.  This should vanish, but how?
       !Sprites22 and !Sprites files updated with slightly 3D icons.
      
v0.30 - 27-Aug-96.
       Version number confusion cleared up.
       !Sprites22 and !Sprites files updated with better icon versions.
       Textures can now be dragged properly at all times (bugfix).
       The order of this file reversed and its format improved.
       "ptr_hand" sprite used for drags.
       Texture dragging improved (bugfix).
       Templates improved for low eigenfactor modes.
       "Options" templates improved to provide more room.
       Messages file adjusted in line with above.
       Default animation settings improved (bugfix).
       24 bpp and 16 bpp colour options in any mode on any hardware.
       Floyd-Steinberg potential problem side-stepped.
       Documentation updated to reflect the above changes.
      
v0.20 - 10-Aug-96.
       First version released on the net in the hope of getting
        feedback from RISC-PC owners.
      
v0.10  Interactive help on menu entries debugged.
      
v0.07  Corrections to template file.
       Symmetry x,y and rotational, x2, x4, etc.
       MessageTrans used for text.
       MessageTrans used for menus.
       Size of artefacts option.
       Development version issued to a friend.
       New templates designed.
      
v0.06  Menus debugged.
       Added Extension modules for 3rd party extensions.
       Better memory management.
       Animation added.
       Registration checksum introduced.
      
v0.05  Kaleidoscopic options added.
       Palette options added.
      
v0.04  Artefact options added.
       Language improved.
      
v0.03  Hourglass used.
      
v0.02  Desktop front-end, etc.
      
v0.01  Original FFT prototype.
