Description: | A NES CHR-ROM Optimizer | Install: | charlie.lha | Size: | 5kb 5 | Date: | 20 Sep 06 | Author: | Chris Covell, AmigaOS 4.0 compile by Spot / Up Rough | Submitter: | Spot / Up Rough | Email: | spot/triad se | Category: | emulation/utility | License: | Other | Distribute: | yes | Min OS Version: | 4.0 |
CHARLIe - A NES CHR-ROM Optimizer
By Chris Covell, AmigaOS 4.0 compile by Spot / Up Rough
CHARlie is a small utility that optimizes or compresses the graphics
data in a character ROM (most commonly for the NES/Famicom) to save
space, to make the graphics storage more efficient, and to free up
unused space in the CHR-ROM if more space is needed.
It does this by checking for duplicate tiles in a CHR-ROM file. It
can then mark the tile with a box, or eliminate it altogether and
compress the remaining tiles.
Usage
-----
At the command line, type in CHARlie infile outfile [-c]
The infile is the CHR-ROM file that you want to optimize. It should
be precisely 4096 bytes large, if you're dealing with just one array
of tiles to fit into a single NES pattern table. Of course, a single
valid CHR-ROM bank is 8192 bytes, but if you use the [-c] option with
a file larger than 4096 bytes, CHARlie will try to fit as much as it
can from that file into the smallest space possible in the outfile.
Not using the [-c] option will not affect the positioning of graphics
in CHR banks that might be 8k or larger.
By default, CHARlie will replace a redundant character tile with a
square marker. You can then use the space provided by all the markers
for more graphics data in your NES programs. But, if you provide the [-c]
argument on the command line, CHARlie will not use those markers. Instead,
when it finds a duplicate tile, it will just eliminate that tile, and move
all other tiles up to fill that gap. This will compress all the tiles into
as little space as possible, freeing up more room at the bottom of the
character array.
This program is just a small little utility, so I didn't spend (much) of a
long time coding it. As such, it is again in my favourite flavour of
spaghetti-code. The C source code is included, if you want to improve on
it at all. Go ahead. Caveat emptor. Have fun!
| |