-&@Blitter OBject/Sprite designer V 2.??@By Andrew Banner. 9/4/94L This program is shareware and can be duplicated as much as you like as long)as you keep the registration to yourself.D If you are using the unregistered version then you'll note that theKsave option and the grab option have both been disabled as to stop you from.saving you work, so please register your copy. The cost to register is:N If you have a copy of the program then keep it and send only 12 Aust dollars.K If you want the registered disk (without the registration test on it) thenOsend 15 Aust dollars. This copy doesn't ask for the code each time it's loaded. Andrew Banner Po Box 2060Townsville, 4810 (Australia)LAlso state clearly your address on the envelope so I can send it back to youwithout any hassles.P--------------------------------------------------------------------------------HNOTE: The term 'Sprite' used in the following is not to be confused withNhardware sprites. The term 'Sprite' means both Sprites and Bobs. (mainly bobs)O When the designer is called up as an accessory, it will try to grab the spriteNbank from the current program, failing that it will start with an empty sprite>bank. (If there was one there from before, it will be erased!)I IMPORTANT NOTE: The designer will grab the sprite bank from the previousPprogram, erasing it when grabbing, so whatever changes you make to your sprites,Othey will PERMANENTLY be altered! and remember to grab them upon exiting again!K If you have any problems, like the program crashing or other errors then IMwould be most interested in hearing about it. Write any problems to me at theIfollowing address and I'll see to your problem and try to fix it for you.J(send a blank disk on it if the file needs correcting and enough money forLreturn postage) If the error you get is more cosmetic then fatal, then don'tDbother sending it too me, it's probably your fault that it happened!J An example of this is loading in a picture when you haven't the memory toOspare! Or any other minor faults!!! And also be careful when your memory is low2is the computer will CRASH if you run out of it!!!>@The following is a list of all the current commands/functionsE@Some key presses may be different from the keylist after compleation6@-----=====>>>>> Sprite bank functions <<<<<=====-----@--- Put Sprite

---P This function lets you put the edited image/block into the sprite bank. It willKreplace the old sprite when you click over it unless it's the next past the final sprite.@--- Get Sprite ---M This function calls up the sprite bank for you to select the sprite to edit,Pas with all bank functions, clicking outside the display area cancels selection.@--- Insert Sprite ---H This function is the same as Put Sprite except the edited image will bePinserted between the selected sprite and the following ones in the bank and willnot erase the old one."@--- Delete Sprite/s ---L This function lets you delete the selected sprites in the bank permanently!=This is a continuous command, click outside the area to exit.(@--- Delete sprite block ---N Clicking on the delete block function lets you erase a whole block of spritesLat a time. Just select first and last sprite then press Y to confirm delete./@-----=====>>>>> Disk functions <<<<<=====-----#@--- Load sprite bank ---F Loads in a new sprite bank, destroying the old bank and it's palette!@--- Save Bank ---O Saves the whole sprite bank and it's palette to disk. This should be done evenMif your editing the sprites from a program. This command should be used everyK15 minutes to ensure you don't loose to much because of power failure, etc.@--- Merge Bank ---L Merges a sprite bank with the current one, the palette of the first bank isused.3@-----=====>>>>> Grabbing functions <<<<<=====-----@--- Load Picture ---K This function will ask you to select an IFF picture file to load into it's&memory bank for later sprite grabbing.N Make sure you have ENOUGH spare memory to load in the picture or else you may)loose all your sprites! (Program failure)"@--- Send sprite/s ---I You can save a selected block of sprites to disk as an iff picture file!G Type in the x sprite size (usually 16) then type in the y sprite size,Lyou will then be ask to select the first and last sprite in a block from theKbank to use. The sprites will be copied into the picture file in a x/y gridNformation. A file requester will appear, asking for you to type in a filename,9If you wish to cancel then select cancel or press ESCAPE.N You can save the iff picture file to Ram disk if you like, so you can quicklyJswap AMOS with Deluxe paint (etc) with the iff files. (See next command toget your sprites back) @--- Grab sprite/s ---L After the picture is loaded into memory, you can then grab the images usingNthis command. Any sprite which is partly out of the bounds of the picture willHNOT be grabbed so keep the grabbing box within the sides of the picture!0@ -- Keys to use when grabbing from a picture --O F1-f4/f5-f8 moves the picture screen around on the display area if the screenMis too small or too large. Some pictures may look distorted so you'll have to6change it's X position on the screen to straighten it!N Cursor U/D/L/R: Changes the amount of sprites to be grabbed in X and Y ways.G Space: Grabs images and inserts them onto the end of the sprite bank. Escape: Cancel this functionL The system of grabbing goes like this: Move the mouse to where you wish toLstart. Hold down the right mouse button and drag the box to desired box sizeN(watch the size at the top of the screen to gauge it's size). You then use theMcursor keys to select how many sprites down and across the screen you wish toOgrab in grid formation. Press space to grab or escape to exit. The sprites willPappear at the end of the sprite bank. Use the 'grab picture palette' command toKgrab the picture's colours. (make sure your in the right resolution or yourLsprites will look distorted. Ham pictures use a special technic of colouringAwhich AMOS' sprites don't support! So they'll look quite strange!P Holding down the left mouse button repositions the top of the box for grabbing.@--- Delete picture ---< Click on this fuction to free up memory used on the picture!@--- Convert sprites to icons ---M First select the start sprite and the end sprite, then either choose to sendPthem back to your previous program (My computer sometimes crashes when I do thisJ???) or you can save the icons to disk. If the icons are sent back to yourPprevious program (and it doesn't crash!) they will overwrite the old icons (???)H The icons grabbed will be exactly the same as the sprites. (x,y,colour)3@-----=====>>>>> Palette functions <<<<<=====------!@--- Edit colours ---O Lets you change the colours of the palette by using the Red Green Blue values.#@--- Spread colours ---P This function asks you to select the first colour and then second colour before4calculating the shades needed to blend between them./@--- Double of Halve palette size <; and '> ---P The palette range is between 2 and 32 colours (+32 in extra half brite mode) in?low resolution and between 2 and 16 colours in high resolution.K Changing the palette size doesn't effect the sprites in the bank, only theNimage on screen. If you are only using a 4 colour palette then when you PUT orOINSERT a sprite into the bank, it will only store those colours, saving memory.P When the sprite bank is displayed, the number to the right of the sprite numberNis how many bit planes the sprite is using. The menu bar will usual flash whenPyou alter the colours (It remaps it'self to grab the best available colours for,you so it's always visible and decipherable)K If you have a 64 colour image on screen, you can halve the resolution to 2Ncolours, change modes, etc before returning to the original resolution withoutMlose! Just make sure you DON'T update the undo buffer by editing the picture!J This theory also works with the cut buffer and also using the resize sizeKoption! I't not a recommended thing to swap resolutions without putting the;sprite into the bank first! (Just in case) (Er, I think???)@--- Renew stencil ---C This function resets the stencilled colours back to normal colours@--- Edit stencil ---M When selected, a screen will appear with all the colours of the palette. TheFtop row is the before colours and the bottom row is the after colours.M To use: Click on any on screen colour (anywhere) to high-light the colour onOthe top row, then using the same procedure, select the after colour (which then)will appear underneath the before colour)K Repeat this process until you have altered all the colours you want beforeJusing the next function below. (Also clicking on Renew stencil clears it),@--- Overlay stencil (Cycle stencil) ---P This function will alter the old colours in the image on screen to the new onesOselected by the edit stencil function. It saves you the pain-staking trouble of8going over your image individually with the new colours.Example:N A picture of a sprite is on the screen using the colours red, blue and yellowLYou want red to become light grey, blue to become red and yellow to stay thesame.L You first renew the stencil (if needed) before selecting the colours in theedit stencil to the new ones.O Then click on Overlay stencil and the image will change all the before coloursPto the after colours! If the before colour is the same as the after one, then itJwon't be altered! (This function is used for rapid recolouring of sprites)/@-----=====>>>>> tool functions <<<<<=====-----2@--- scroll up <8> down <2> left <4> right <6> ---D These functions scrolls the whole image in the selected directions.9@--- Flip <*> Flip left <(> Flip right <)> Mirror ---P Flips or Mirrors the whole image. Flipping left or right will cause some of the*image to alter in size if it's not square!N The maximum size of the sprite is 96 pixels by 128 pixels, if you need largerBsprites then this then you'll have to use another sprite designer!@--- Rotation by degree <1> ---J This will rotate the whole image by any degree between 0 and 360 degrees.M The control of this function is done on the X mouse axis. Click to paste theLrotated image. Move the mouse left or right for the correct angle then leave Reduce double ---K If applicable, these functions will either double the size of the image orGhalve it. Remember this function is PERMANENT (no undo!) so be careful!;@--- Draw Paint Spray Brush (see later) ---,@--- Dot <.> Line Circle Box ---J The DOT function puts a dot only under the cursor, so the faster you move,around, the wider the gap betweens the dots.N The freehand DRAW function puts a line from last position to current positionJunder the mouse cursor with the selected colour (hold left or hold right).M The PAINT function is the same as dot except it will paint the area with the-selected colour. (Click left or right to use)P The LINE function will draw a line from where you hold the mouse key down untilyou release it elsewhere.N The BOX function draws a box from where you hold the mouse key down until yourelease it elsewhere.L The CIRCLE function draws an ellipse from where you hold the mouse key downPuntil you release it. The radius is from where you first held the mouse key fromK The SPRAY function will spray a stencilled colour over the stenciled area.I NOTE: This is NOT the same as stencil overlay! It uses it's own stencil.M To use: Click right when inside the zoom zone to show the spray stencil. TheGtop row of colours are the spray colours and the bottom colours are thestencilled background colours.I Clicking left always relates the spray colours and clicking right alwaysLrelates to the paper colours. You can click anywhere on the screen to toggleJthe colours on and off. (Use left or right click to choose spray or paper)K The spray gun will ONLY spray the random colours chosen in the top row andHthe only background colours affected by the spray are the SELECTED paper@colours, any non-selected colours are not affected by the spray!*@--- Truncate up <3> Truncate left <0> ---O These functions will copy the image either to the top or to the left corner ofPthe image before truncating the remaining bottom and right edges until the image?is the smallest size possible without corrupting it in any way!K Also clicking right on the flip left/right icons will truncate the rotated9image up. (This is useful for rotating long thin objects)@--- Change Hot Spot ---O This function changes the position of the sprite's invisible handle from whereit is to be displayed from.N Click on the zoom area where the hot spot should go. It will stay there untilMyou select another sprite from the bank. It is saved when you PUT the sprite.B No functions have any affect on the hot spot (like flipping, etc)7 The hot spot is reconised by a box on the zoom screen.4@--- Hot spot X Hot spot Y ---L These two functions will flip the hot spot from side to side. (Usually used&when mirroring sprites...(Multi copy)) @--- New animation ---N Selecting this, you will be asked to select a series of sprites to use in the:animation, clicking outside the area starts the animation.2 Move the mouse around to position the animation. C Press left or right cursor keys to slow or speed up the animation. Press SPACE to exit animation@--- Last animation ---P This will display the last animation. (Usually done after a bad sprite has been8edited and altered to test the animation sequence again)O Note: If you either insert or delete sprites then the old animation may becomecorrupt.3@-----=====>>>>> Multi copy commands! <<<<====-----@--- Toggle switch ---L This icon will toggle between normal and display selected icons menus mode.G When this icon is high-lighted, you then can click on the following to7high-light them as well without them having any effect!< Scroll Up, Down, Left, Right, Flip Hot Spot X/Y, Flip left,B Flip right, Flip image, Mirror image, Zoom double, Reduce double,D Rotation by degree, Overlay stencil, Truncate up and Truncate left!O Turning the toggle switch off will stop the commands from working when copying"even when they are still selected!@--- Multi copy ---P After you have selected which icons you want to use with the last command aboveH(None selected means the images will be copied without any alterations.)F You will be asked to select the first sprite to start at in the bank.P You will then be asked to select the last sprite of the bank to be copied, thenNasked where about in the sprite bank you wish the final results to be inserted in the bank!N If you select all three options correctly then the program will automaticallyIget each of the selected sprites from the bank, use all the selected toolPcommands on the image before re-inserting the resulting image back into the bank'without corrupting the original images!N This function is used for mass copying of arcade sprites. E.G: Like mirroringPall the animated steps of a person walking, running, etc around. and/or changingNthe colours of the sprites and/or rotating them in any direction, etc,etc,etc.2@-----=====>>>>> Copy/Paste buffer <<<<<=====-----@--- Cut block ---L When selected, this will copy a block from the displayed image and store itNinto the cut/paste buffer. Use the left and right mouse keys to size the blockand press space to copy it.@--- Paste block ---K This is one of the drawing modes, it places the block under the mouse whenPclicked. Either pressing or clicking on the other drawing modes will cancel this@--- edit buffer ---I This option will toggle between the edited image and the selected block!O All the image functions can be used to alter the block, even changing the sizeNof it! Remember that the edited brush is exactly the same as the normal image,Pall commands work the same with the brush. So you can alter the brush in any way5before press again to return to the normal image.L Press to select brush mode, the brush will move with the mouse over theOzoom area. The brush is centred automatically so you don't have to truncate the%cut block up or left before using it!P While in edit buffer mode, you can put the cut image into the sprite bank as a key, the computer will grab the bufferNimage and will insert it at the beginning of the sprite bank so it can be usedKas a blitter object over the normal image! So if by any chance you might beIclever enough to bypassing my system of pasteing, you will find the brushDsitting at the front of the bank! Kindly remove it, I've tested manyMcombinations to stop this from happening, but if you find a new one then yourmove clever then me!!!@--- The Undo key ---P This function will usually undo the last command used on the selected image, it7works with both the edited buffer and the normal image!8 Changing resolutions may clear the buffers so watch it!M The only command I know of which this function doesn't work with is the zoom"double and reduce double commands!@--- Clear sprite ---> This will clear the image/block to the right selected colour.6@--- Quit and or Grab to amos ---? These two functions will return you back to your AMOS program.P The Quit & Grab function will grab your sprites for you while the Quit functionerases them upon exiting!L Remember to always save your sprites to disks, I cannot be held responsibleLif you lose your sprites. (These things can happen so save it to disk or ramOdisk from time to time) (Errors like 'out of memory' or fooling around with allPthe different resolutions will cause it to crash, you cannot recover the sprites*, nor your previous program afterwards!!!)&@--- X Overscan Y Overscan ---8@--- Lacing Hi-lo resolution ---D These first two functions toggles the x and y overscans on and off.! Lacing toggles lacing on and off9 Hi-lo resolution toggles the screen to hi-res or low-res7Normal screen sizes: 320x256 640x256 320x512 640x512X overscan: +32 or +64 (hires)Y overscan: +28 or +56 (laced)M When the accessory is run, a 320x256 by 32 colour screen appears. You cannot@enter Hi-res mode when there are more then 16 colours on screen!P Using the x and y overscan, the screen becomes 356x284 pixels in size! So usingPthis mode makes the designer show it's true power! The screen will automaticallyMremap it'self to any mode, making the most of the available space so using an(extra large screen makes editing easier!L Just make sure you've got plenty of memory spare to use the larger screens!J A hires+laced+16 colour+x and y overscan screen (704x568) screen takes upabout 200 K of memory!!!!!M Opening a large screen without the required memory could be fatal! Save your,sprites first before attempting these modes! @--- Quick paint ---O Press space whenever your over the zoom area to paint the area under the mouse#with the LAST selected colour used.8@--- Zoom in <+> and Zoom out <-> & various commands ---F Press the plus or minus keys to zoom into and out of the image/block.@This is a very useful feature for editing fine detailed sprites!N Use the cursor keys to scroll around the zoom area if it's less then the sizeof the whole image.M Pressing will quickly move the zooming area to the position of the mouseHcursor. This can be used with both the zooming area and the sprite area.O This is useful when editing a large sprite (96x128) using a zoom factor of 16,PIt will flick the zoom area to the new area under the cursor! (Just like Dpaint)M Press the <,> key then click on any colour on the screen with either left orCright mouse keys to use that as the new colour! (Same as dpaint IV)P Press the <[> or the <]> keys to decrease or increase the current colour numberLby one. (This is used when you have many shades and can't remember which oneNwhich! So increasing/decreasing the colour by one is an easy way to keep trackof the colours)8 Press to list all the keys for all the commands!' Pressing calls up this file!L When the mouse is over the sprite zone area, click to alter the size of theNimage/block your editing and click again to set the new size. You can click onOthe sprite image again to alter the size to a larger size again then press UNDOMto bring back the truncated part of the image! (As long as you didn't use anyother commands of course)N I don't think I've left anything out. If there's any problems with it, if youNfind a genuine error in the program (and it's not obvious cause if it is, thenPI'll find it myself after sending the program away! Ahhhhh!!!!) then write to me>, telling me what the problem is and I'll see if I can fix it!M If you would like new commands added (in perhaps the next improved version),Pthen explain to me exactly what it is, how it works, etc... Some of the commandsLin this version are probably unique and never used before, this is because IPspend alot of time drawing sprites for my games/programs and I know exactly whatFI want from a sprite generator! So this designer is perfect for all myGrequirements!!! You may have different ideas on what commands should be0implemented in a more advanced future version???P One thing my next version will have is a map playfield option, which will allowFyou to test your sprites in a grid formation for later use in mapping!O Another thing I may also add is gradient fills. Both of these things are goingMto take up alot of memory, that is why I didn't write them into this version.K You will find by listing the memory banks that I've used quite a few smallLmachine code routines! These were all written on my AMOS Assembler (released&the same time as this sprite designer)H The bueaty of my AMOS Pro assembler is the fact it's an AMOS accessory!M I quickly used the assembler to grab and send the machine code routines backOand forth between the two programs! You see, when promted to send the assembledJcode back to AMOS, I have the option of sending the ASCII data with it! SoLwhen I grab the bank back from the listing, The assembler will automaticallyNdecrunch the ascii code for me to instantly edit it again! The bank number andPname are also memorised so when sending the data again, I don't have to remember+the bank number or the optimised bank name!O As you will see with some of the commands in the designer (like Rotate 90 deg,KTruncate up/left, Degree Rotation and even the zoom itself!) you'll see the:advantages of having machine code with your AMOS programs.5 A good example of the power of machine code is this:AMOS Professional: Rem count to 1 million Timer=0 For N=0 To 999999 : Next N Print Timer/50.0-The result of the above listing on an 'A1200' AMOS Professional: 16.36 seconds,AMOS Pro Compiler: 12.48 seconds %131 faster-AMOS Assembler : 0.66 seconds %2478 fasterOIf you don't believe this then test the listings for yourself (This was done onMan Amiga 1200 so yours might be slower (if so, try the basic version as well)( Reserve As Work 15,100 : ADR=Start(15)= For N=1 To 7 : Read NUM : Doke ADR,NUM : ADR=ADR+2 : Next N0 Data $203C,$0000,$0000,$5380,$6E00,$FFFC,$4E754 Loke Start(15)+2,1000000 : Rem count to 1 million!" Timer=0 : Call 15 : ? Timer/50.0The assember listing:; count from 1 million to zero$ move.l 1000000,d0; d0=1 millionloop:, subq.l 1,d0; subtract 1 quickly from d0+ bgt loop; if d0>0 then back to loop rts; return to amosO If your interested in the assembler then I'm sure you'll track it down. If youIdon't know the first thing about machine code then there no problem, I'veKwritten a tutorial explaining how to program in it! (for beginners/novices)Bwhich is included with the assembler. (The text is about 40k long)N If you own deluxe paint (or any other powerful paint programs) then you might4want to share the sprites between both the packages!O Using the Ramdisk option is the fastest way of sending the iff screen back andNforth from the designer and the paint package. This is why I've used the multiCx/y grab function!!! (Press AMIGA+G to use after picture is loaded)K I hope you enjoy using this sprite designer without too much trouble!.....N This sprite designer was written on An Amiga 1200 40HD, So I have 2 megabytesKto use when writting this program. Smaller memory users may or may not haveFany problems with memory requirements, I hope not. Bye................