***************************************************************************
*    Ascii Paint 0.4a by Toby Jacobs - AKA Tobriand                        *
*    Makefile from one of Mr_Mirko's examples - Thanks Mr_Mirko!          *
*    There's no way I could have written my own yet!                      *
*    Framebuffer and clearing code by Synkro from his "Hello World"       *
*    tutorial. If you're new to C for the GP and don't know where to      *
*    start, there's nowhere better imo than that tutorial. Thanks Synkro! *
*    Delay code from Don on the GP32x boards - and its a lot cleaner than *
*    what I had before, I can tell you! So thanks Don, too :)             *
*                                                                         *
*    Coded using Mr_Mirko's SDK 0.7 and Devkitadvance combined and made   *
*    compile after a long time of sitting there doing nothing. Thanks     *
*    again Mr_Mirko - your SDK is unbelievably clearer to the novice      *
*    programmer than the official one!                                    *
*                                                                         *
*    Special thanks go to Herb12 and Don who helped me fiddle with a      *
*    fair bit of code yesterday when I was still very very very green     *
*    around the edges as opposed to just very very green.                 *
*                                                                         *
***************************************************************************

And now I've pasted in the same header as there is in the code (which should be included)
here's the instructions for use.

INSTALLATION:

Put Asciiart.fxe in GPMM or wherever you want it
Then create a directory called ASCIIART in GPMM. You shouldn't need to stick anything there, but if it isn't created manually, the program won't do it for you.



INSTRUCTIONS:
Inside the intro bit:
Press Start whenever to start painting.
Press A to view the instructions below in brief.
Press Select to go to the name-changing bit - up and down change the letter. 
Press B to toggle whether or not it tries to load, or simply runs the bit of the loading
function that actually does the writing to the screen.

Inside the painting bit:
Press L to change the ASCII character used as the brush
Press R to change the colour you're painting with.
Press B to erase the current square. If you hold B, you *MAY* be able to move and erase at the same time.
Press START and L and R to restart. Hopefully you don't need perfect timing anymore (first stabs at multiple buttons did, but I think its over that...)
Press START to clear the screen and start over with your cursor positioned where it is.
Select saves the current Array.
Press A to drop back to the menu.
A note on the menu:
When I wrote the intro function, and everything else, I was intending it to only execute once. As such, going to the menu and then pressing start won't *always* result in the same image you left there. If you want to be sure of getting the same, or a very very similar, picture, make sure you have LOAD turned off when you press start to leave the menu, and don't be too surprised if colour data doesn't turn out quite right (it didn't in a couple of my tests). Though I think I've got that fixed.

Press SELECT to save.
A Note on saving:
Whilst the resultant file is MUCH smaller than it would be were it a pixel-by-pixel RGB save (probably in my own format, since that's what I'd understand), and is a nice and easy
to open text file that you can stick into notepad or metapad and think about how nice your
art is, what it *doesn't* save are overlays - so if you stick a "~" over a "." and think it 
looks nice, only the one you put on second would actually get saved. If anyone sees a simple way round this, by all means add it yourself or tell me, but I probably won't try and work one out myself; I've spent too long on the save bits already.
NB: As of 0.4 characters do not overwrite one another, they replace eachother. This does limit things a bit, but since its impossible to save over-written characters easily, I thought I'd take them out.


ISSUES?
If you turn the GP32 off and on quickly before opening this, sometimes you get a split-screen error. Just turn off leave for 5 seconds, and turn on to fix. Going to the menu *may* do it, but I doubt it.
The program is very unstable on the emulator for some reason. I haven't got a clue why. It seems to be a lot more stable on actual hardware, but bear in mind it is liable to lock for some reason at any time if its on the emulator (and maybe on the real thing, but I haven't come across that yet).

TO DO:

*Maybe* do background filling. But somehow I doubt it.



VERSION HISTORY:

0.4a:
 - A bug which meant that you could overlay the save name selector with Ts has been taken out.
 - I've reduced the delays from 15 to 10, since 15 is too slow on actual hardware, I feel.

0.4:
Lots and lots new in this release. Its probably the final one for the time being, I think. 
 - Multiple save names (only with letters, though)
 - Automatically remembers last saved 
 - "8" and "." brushes changed to "\" and "/" respectively, since I found myself wanting slashes, and not using those, added in preliminary code for background filling (I won't finish it though)
 - Removed overlay effects
 - Fixed a couple of saving bugs
 - Drastically reduced the number of lines involved in colour and brush selection. 
 - Finally, having got A back from restart, it now drops to the menu - *without* erasing your drawing, so it shouldn't matter if you hit it by mistake.

0.3: 
 - Title Screen and help in place

0.2: 
 - Saving
 - Loading
 - a couple of code cleanups to make it not depend on a bug somewhere.

0.1: 
 - Initial release
 - all brushes
 - colours
 - field areas and similar defined and working.

LICENSE: 

Please distribute the source with the program, since I spent so damn long annotating it. Other than that, do whatever the smeg you want with it. But please leave the various names I've mentioned (including mine) in somewhere if the end result is even remotely similar.