OS4 DepotLogo by Liksmaskaren 
(anonymous IP:,2207) 

   Bug tracker
   Locale browser


   o Audio (343)
   o Datatype (51)
   o Demo (203)
   o Development (597)
   o Document (22)
   o Driver (97)
   o Emulation (147)
   o Game (1005)
   o Graphics (498)
   o Library (116)
   o Network (232)
   o Office (66)
   o Utility (926)
   o Video (69)

Total files: 4372

Full index file
Recent index file



Support the site

 Readme for:  Emulation » Utility » charlie.lha


Description: A NES CHR-ROM Optimizer
Download: charlie.lha       (TIPS: Use the right click menu if your browser takes you back here all the time)
Size: 5kb
Date: 20 Sep 2006
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
FileID: 2085
Comments: 0
Snapshots: 0
Videos: 0
Downloads: 299  (Current version)
299  (Accumulated)
Votes: 0 (0/0)  (30 days/7 days)

Show comments Show snapshots Show videos Show content Show crashlogs Replace file 

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.

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!

Copyright © 2004-2024 by Björn Hagström All Rights Reserved