It's time for another Grit release. There are three important changes compared
to previous versions.
First, palette merging is in (and there was much
rejoicing). If you use the -pS option, a shared palette will be
created and used in the graphics. Note that I still think palette merging
should be performed on the images themselves and not in the output
phase. If anyone's interested, I do have a small app that can do just
this.
Another big change is that handling
of shared data is now done correctly. The previous version
required two runs for this: one for the non-shared stuff, and then another
for the tileset itself. You also had to take care to disable the shared item
for the individual runs, otherwise the (useless) intermediates would be
exported as well. Grit 0.8 fixes all this. You can provide multiple
images and request a shared tileset and/or palette (with -pS,
-gS, or -fx) and it should work right. Grit will export the
individual parts first and save exporting the shared data for the end. For
example, if you have 5 files to be converted to maps with a shared tileset,
you'll get 5 maps, and one tileset and palette (instead of 5 of each like 0.7
did). You can tune the shared output names with -S and
-O (uppercase s and o) if necessary.
Thirdly, there is a new binary file-type available. I'm calling it GRF, for Grit RIFF File. This places the graphics, maps and palette in RIFF
chunks. The idea behind this was to have related data in a single file
instead of three different binaries. The chunked data-format also allows
easier extension and it's easy to make a generic loader for it too. For
details (including such a loader), see the the manual.
The -ftr option creates a GRF file, and you can also create GRF-formatted C/asm arrays using -fr.
I've also added something I like to call ‘fake’ compression, -Z0 (Z zero). This adds a header word to the data similar to the ones that the compressed data have. This consistency of data-formats is essential for the generic data-loader.
As I mentioned before,
there is also a proper demo project to show how you can use grit and its
various options. Take note of how it uses a separate makefile to prepare the
graphics. This way you can keep the main makefile pretty clean and it makes
it easier to insert customized conversion rules. Note: to build the demo project,
make sure GRIT points to the updated binary.
Linkies