PalRed engine demo v0.6 by WolfWings
wolfwngs@muq.org

+-----------------------------------------------------------------------+
| NOTE: PALRED IS NOT MEANT FOR LOW-COLOR IMAGE CONVERSION! IT IS MEANT |
| FOR HIGH-COLOR AND TRUE-COLOR IMAGE CONVERSION! A SEPERATE PROGRAM TO |
| BE RELEASED WILL BE TARGETTED AT THE LOW-COLOR IMAGE CONVERSION SIDE! |
| IT WILL BE MERGED IN AT SOME POINT IN THE FUTURE, BUT PALRED IS *NOT* |
| MEANT TO BE THE END-ALL CONVERTER FOR ALL TYPES OF IMAGES, ONLY 24BIT |
| ONES! IT IS A DEMO OF PALRED TECHNOLOGY, NOT A FINISHED PROGRAM! :-)  |
|                                                                       |
| I REALLY appreciate all the feedback I've been getting, but just wait |
| till you see the next program. :-) It'll be worth the wait, I promise |
| you that. I'm working on super-generalizing my method, which I'm most |
| definately patenting ASAP. Yes, this system I've figured out is going |
| to be that useful in the new program, for one simple reason. It's not |
| going to be GameBoy-specific. It's going to be able to convert images |
| to any tile specifications requested. As in, SNES, GameBoy, _NEO-GEO_ |
| and others, including palette choice limitations, the works. First, I |
| need to finish building the scripting language for controlling my pet |
| code, the PalRed engine. I've already finished a great deal of the o- |
| so-nasty coding needed for the engine itself, it's just the scripting |
| language interpreter that I need to finish now. >^.^<                 |
+-----------------------------------------------------------------------+

To start, run the program. It will scan for all .BMP files in the current
directory, and display a list along the left-hand side of the screen. Use
the up and down arrows, and the page-up and page-down keys to scroll over
the list. To pick a file, hit Enter. To reduce the number of palettes for
the final image, press the Minus(-) key. Conversely, to increase the size
of the available palette, press the Plus(+) key. To abort altogether, hit
the Escape key.

Note that the .bmp file MUST be 24-bit. Yes, 24-bit. I designed the method
of reduction specifically to cope with nasty, colorful 24-bit images. Support
for different .BMP formats will be included in future versions.

As it stands now, once it has finished converting the image, it will dump out
a file, FILE.GBR, loadable by the GBTD and GBMB tools by Harry Mulder.
IT WILL OVERWRITE EXISTING FILE.GBR FILES!

Some examples of input and output filenames:
  SNAKE.BMP
    writes out SNAKE.GBR
  HOWL.BMP
    writes out HOWL.GBR

Future versions will support exporting to GBR/GBM format, including output
filename selection and all that good stuff, including built-in reduction of
tiles, al la GameMan.

Planned support will include advanced scaling options as well, to facilitate
loading images much larger than you wish, without relying on intermediate,
and often very sub-standard, scaling systems. My scaling system will be much
the same as that available through Image Alchemy (www.handmadesw.com) which
is currently the best image scaling and general transformation software that
I know of anywhere.

Future versions will also support a new technique which allows for "56-color"
images, at the cost of even more setup complexity for the actual still, and,
sadly, almost zero chance of using it for animations. This technique AMAZINGLY
improves many images, even with my existing color reduction system, which
itself can be improved a bit still possibly. :-)

Known Issues
SGB palettes are saved, but the first color might well be vastly different
between the various palettes. Will be addressed in the full version of PalRed.
Memory usage can go through the roof. This will ALSO be addressed in the full
version of PalRed, most likely through LZO compression of certain tables.

Release History
0.1     The first release, it worked. :-)
0.2     The second release. Fixed several GLARING typo's and errors in the
        code that were the cause of the somewhat hit-and-miss color reduction
        the previous version was making. Image quality has improved by leaps
        and bounds in this version. :-)
0.3     The third release.
        GUI input file selector added.
        1-8 palette support added. Saves .GBR files with SGB palettes if
        total palettes <= 4. I am well aware of the fact that SGB palettes
        share the first color. I will address this in the full PalRed.
        Minor tweaks and speedups here and there, likely unnoticable.
0.4     Support for any size bitmap added, limited by real-mode memory
        constraints. (Current version is not limited by real-mode memory,
        but by DPMI server memory limits.)
0.5     High-end improvements and bug-fixes on pedantic low-color images,
        and VASTLY increased memory usage due to speedups for much larger
        images. I appologize for the memory gobbling, but it's a 10-fold
        speedup and better as the number of tiles goes up, as without the
        larger memory usage, the computation time rises exponentially. I
        chose to keep the computation time roughly linear, at the expense
        of a table that peaks at a size of (Tiles * Tiles * 4) bytes in
        size. It releases the memory as it goes, so if it hits virtual
        memory, as it shrinks the tile-count, it will lower it's memory
        requirements on the fly to get off the virtual memory ASAP. :-)
0.6     Temporary "hack" bugfix version, to address concerns of dithering
        in v0.4 vs. v0.5, as well as adding a feature for "no" dithering,
        which does indeed turn off dithering. Random is the v0.4 method,
        Error Diffusion is the v0.5 method. Enjoy folks. :-)
