****************** Archimedes Sprite Displayer V2.13 ****************** ©1996-97 Tim Jackson Revision Date: 24-Mar-97 What is Archimedes Sprite Displayer? ------------------------------------ Archimedes Sprite Displayer (ASD) is a program to load and display sprite files from Acorn Archimedes computers (or Acorn Risc PCs in Archimedes mode). What do I need to run it? ------------------------- Any Amiga with WB2.04+. Probably. What files should I have? ------------------------- In this distribution, there should be the following files: ASD * The main program ASD.info ASD.doc * This document file ASD.doc.info ASD.guide * An AmigaGuide version of this document ASD.guide.info All these files should be present in any distribution of ASD. At-a-glance guide to improvements since version 2.11 ---------------------------------------------------- Well, I've made absolutely LOADS of changes since V2.11. Version 2.12 was never released because it became V2.13 before I got round to uploading it. Firstly, I've managed to speed up ASD loads!! Here's the results of a test done on my A1200/EC020/6Mb, loading a 640x256 Mode 12 picture from hard drive: Version Time (secs) ASD V2.11 80 ASD V2.12 24 That's a speed increase of nearly 3.5 times!! The next big change is that 256 colour pictures can now be loaded, with some limitations... - Sprites with 256 colour PALETTES should load absolutely fine, as support for these is now complete. - However, sprites in 256 colour modes which have less than 256 colours in the palette data (what a daft idea, Acorn!) will not be loaded correctly. Because I STILL haven't figured out how to load the palette properly, I decided to let you display the picture but only with a greyscale palette. The picture itself will be loaded fine but a 256 greyscale palette will be used. This may or may not look OK but at least you can see the picture and you can always load it into a paint program and change the palette manually. I reckon this is better than nothing. What's more, high colour sprites (e.g. 32000 colours) can also be loaded in a similar way to 256 colour pictures with less than 256 palette entries - i.e. with a greyscale palette. Sprites in 16 million colours are actually stored as JPEG files on the Archimedes and a message to this effect will be displayed if you try to load one. Load them using MultiView or something instead. Next, you can also now load pictures with no palette data at all. A greyscale palette will be used. Again, this may or may not look right but in my tests it usually gives a decent(ish) image. The picture itself will of course be loaded OK. You can now view ALL sprites within a sprite file. Before, if you had a sprite file with 5 sprites in, you'd only be able to see the first one. Now, all sprites in a file will be shown in turn. Workbench support has been improved: you can now load as many sprites as you want by shift-clicking. Also, you now get WB requesters for most errors. For those who prefer the keyboard, I've put some keyboard commands in for when viewing images. In addition, I've corrected a bug which sometimes caused ASD to crash if you aborted whilst loading a picture. Sorry about that! Also, I have corrected a bug which meant that if you tried to use the filerequester to load a file which had a path ending in ':', it didn't work. For example, trying to load RAM:picture via the filerequester didn't work. It now does. I still have my doubts about some of the routines associated with the filerequester though, so if you get the error 'Can't find file' when you try to load a file via the requester, please let me know. Make sure the file exists, though (check it by loading via the CLI)!! Another tiny bug meant that sometimes if you clicked the left mouse button, ASD didn't abort. This should now work properly. ASD is now better at recognising files which are not Archimedes sprite files. It seems to spot most files which are not sprite files now. Finally, I've made a small technical change to support the official format better: any sprites with non-null extension areas will now be loaded correctly. You probably won't notice this; I've never come across a sprite with an extension area but I thought I might as well implement the standard as thoroughly as possible (more work yet though! :). Copyright & Distribution ------------------------ Archimedes Sprite Displayer is FREEWARE. That means you can copy it and freely distribute it (including uploading to BBS/Aminet etc.), as long as: - You don't charge anything for it (except a nominal charge for disk+copying) - You include ALL the files listed above in any distribution. - You don't modify any files. (For inclusion on compilation CDs or magazine coverdisks/cover CDs, contact me. Any other queries, contact me. No permission is necessary for inclusion on Aminet or Fred Fish CDs.) The copyright of the program remains with me at all times. Disclaimer ---------- You use this program entirely at your own risk. The author will accept no responsibility whatsoever for any loss or damage caused by this program including but not limited to loss of or damage to data. Why write ASD? -------------- I wrote this program because I use Archimedes computers regularly and I haven't yet found a program on the Amiga which will load Archimedes Sprite files. I believe that a program to convert Sprites to IFFs exists on the Archimedes but I don't have it. So, Archimedes Sprite Displayer was born. It took me many months to develop it into the program you're (hopefully) about to use. OK, what does it do exactly? ---------------------------- Archimedes Sprite Displayer will display any Archimedes sprite which is in a 16, 256 or high colour mode. This means almost any sprite you're likely to have. But what doesn't it do? ----------------------- Archimedes Sprite Displayer will not SAVE the sprite out as anything, just display it. However, if you want to convert the sprite to IFF, all you need is a screen grabbing utility (I recommend QuickGrab by Steve Hines - find it on Aminet in gfx/misc/QuickGrab1_1.lha). This shouldn't prove too much of a problem. I'm sorry there isn't a save function, but I'm a fairly new programmer on the Amiga (better late than never!) so I haven't worked out how to save IFFs yet. If you know how to do this in C or E, let me know and I'll implement it. Only 16, 256 and high colour modes are supported. If you want to load sprites with 2 or 4 colours, you can easily do this by converting them to 16 colour sprites on the Archimedes. However, not all 256 colour sprites are properly supported yet. My problem is with deciphering the ridiculously complicated 256 colour file format used by most sprites (256 colour sprites with only a 16 or 64 colour palette!!). You can, however, load these sprites using a greyscale palette which usually gives a reasonable representation. Similarly, high colour images can be loaded with a greyscale palette. Flashing colours will not be displayed. If Archimedes Sprite Displayer encounters a flashing colour, it will just display the first colour of the two. This shouldn't be a problem - I don't think anyone actually uses this useless part of the sprite specification. Sprite masks will be ignored. This shouldn't cause too much of a problem unless you've done a lot of sketching with transparent ink in which case it might look a bit messed up. I'll sort this problem out soon. Sprites which have left hand wastage set to anything except 0 and right hand wastage set to anything but 31 will have a small border down one or both side(s). If you don't know what this means, don't worry too much. It shouldn't stop the sprite loading and you probably won't even notice it. Again, this minor problem will probably disappear with the next version. I'm afraid the program is still not terribly fast, even though this version is a big improvement over previous ones. I'm still trying to work out how I can make it faster, though. How do I use it? ---------------- First, you'll need an Archimedes sprite. Of course, you can't use Archimedes disks in your Amiga, so the best way to get them onto your Amiga is to use a MS-DOS® disk (don't forget only use 720K unless you have a HD drive on your Amiga). Archimedes computers with RISC OS 3+ can read MS-DOS disks as standard, RISC OS 2 users will need a driver to read them (you can get one but I can't remember what it's called). Likewise, WB2+ users can use CrossDOS® (supplied with WB3+) to access MS-DOS® disks, otherwise there are programs like MessyDOS which do the same. Anyway, once you have your sprite file, using Archimedes Sprite Displayer is very easy. Simply run it in the following ways: >>> From the CLI Call with the following syntax ASD If you call ASD without supplying a filename, an ASL file requester will be displayed. If ASD cannot open asl.library, an error will be displayed. >>> From Workbench Clicking once on the program icon, hold down shift and double click on the icon(s) of the image(s) you wish to load. Alternatively, simply double click on the ASD program icon and an ASL file requester will be displayed. If asl.library cannot be opened, an error will be displayed. Finally, you can of course make ASD the defualt tool for your sprite files and then simply double click on them. Viewing Pictures ---------------- Having started the program and selected a sprite, it will begin to load. At this point, if the sprite is in a 256 colour mode with less than 256 palette entries, it is in a high colour mode or the sprite has no palette, you will get a requester asking you what you want to do. If you select 'Continue loading', the picture will be loaded with a greyscale palette. If you select 'Skip this picture', the loading of that sprite will be aborted and ASD will move onto the next sprite, if there is one. You will now see the image of the sprite begin to build up on the screen. To move onto the next sprite in the file, or the next sprite file selected (if there are no more sprites in the current file), click any mouse button or press a key. Here's a summary of commands whilst viewing a picture: Any mouse button...........Move on to next picture Escape.....................Quit program Any other key..............Move on to next picture ASD will write information to a console window showing information about the files you loaded. If you started ASD from Workbench, you'll need to close this window by pressing ENTER. Future Improvements (subject to support) ------------------- I would like to improve ASD in the following ways in the future: - Implement an IFF save function (if someone will tell me how 2 do it...) - Add proper support for 256 colour sprites with 16/64 colour palettes - Speed it up even more (any suggestions?) - Add full support for sprite masks - Implement proper wastage handling - Make it possible to scroll around pictures which are bigger than 640x256 - Improve CLI interface (support for patterns etc.) - Make a QUIET Workbench tooltype to inhibit information output Known Bugs ---------- I don't know of any bugs at the moment (but then again, if I did I'd probably have corrected them by now..!) However, If you find a sprite file which is in any of the supported modes but doesn't load, please send it to me so that I can find out what's wrong. Equally, if you find any other bugs or just have a suggestion, please write to me. Version History --------------- V1.x Initial test versions. Didn't work very well. V2.00 First decent version but bugs galore. V2.01 Added auto-resolution selection, corrected bug in mode handling. V2.02 Tidied up a bit, big loading bug sorted out. V2.03 Added WB loading & file requester plus abort while loading option. Also made mouse detection OS friendly. V2.04 Corrected bugs in error handler and file requester loading routine. V2.05 Corrected bug in file requester startup. (File requester causing a few probs, as you can see...) V2.06 Messed around with mode parsing and auto-resolution selection a bit. V2.07 Corrected bug which meant ASD sometimes got x-size of sprites wrong. V2.08 Corrected bug which corrupted display if very small sprites were loaded with certain screenmodes. V2.09 Corrected bug which caused a software failure if an attempt was made to load a sprite with no palette. V2.10 Implemented recognition (but not loading) of all modes. V2.11 FIRST PUBLIC RELEASE. A 'tidied-up' version for distribution. File requester also improved. V2.12 Optimised to speed up significantly. Corrected bug which sometimes caused crashes if loading was aborted. Corrected (yet another) bug in filerequester - this time it didn't load files which were in a root directory/ the root of an assign eg assign:file V2.13 Loads of improvements: some 256 colour loading, loading of sprites with no palette and high colour sprites, improved WB support, extension area support. Removed bug which sometimes meant clicking left mouse button didn't abort program. Keyboard commands implemented. » Contact me! « --------------- I want to know what you think of Archimedes Sprite Displayer. There's no point in me developing it further if nobody uses it. So, if you like it, please contact me. I don't ask for any money (ASD is FREEWARE), just that you write. I must stress, PLEASE WRITE!! If you don't write, I don't know you're out there, using ASD! Even if you just want to say hi and tell me what you think of ASD, please e-mail me. I WANT TO HEAR FROM YOU! You can also help me. I want to know how to save IFFs. If you know how to do this in C or (preferably) E, TELL ME ABOUT IT! I'm sure it can't be that hard, there's loads of programs that do it. Also, if you can explain the file format of 256 colour sprites (with 16 or 64 colour palettes) better than the Acorn PRMs, let me know! My e-mail contact address is as follows: tim_jackson@bigfoot.com I occasionally use IRC and when I do, my usual nick is Arcline. I tend to hang around on IRCnet. A list of IRCnet servers can be found at: http://www.irchelp.org/irchelp/networks/servers/ircnet.html