What is it?

CHR2NAM is a small utility that makes creating NES demos and games easier. It creates a NAME table, a description of what tiles go on the NES' screen. As its inputs, CHR2NAM takes a binary image of an NES' "screen" and matches its graphics with data in a CHR-ROM file to generate the name table.

This is useful, and much quicker than laying out the graphics tile-by-tile in some other program. Do your work in a paint program, and just send it through these small utilities.


At the command line, type in CHR2NAM imagefile CHRfile NAMfile

The imagefile is the image that you want to convert into a nametable. It should be 256x240 pixels, the same size as the NES' name table. The image must also be in the NES' CHR format. You can convert a RAW binary image into this CHR format using my program, Raw2CHR.

The image must also be comprised of the same graphics, aligned at the same 8-pixel offset, as the CHR-ROM which you are using. If not, CHR2NAM won't be able to recognize the graphics to make a name table out of your image.

Now, the CHRfile is one background bank (256 tiles) of NES CHR data. If you have already made a CHR file out of your graphics, that's fine. Just specify that particular file on the command line. If you haven't made a CHR file from your graphics yet, you can make it using Raw2CHR and you can compress it using CHARlie. See the program flowchart for the steps to making your CHR-ROM and name table from a single image file.

The output (NAMfile) is the name table, usually 960 bytes in size. This entire file can be placed in the PPU's name table area.

Here is an example of what CHR2NAM can do. The leftmost image is the NES screen that I have laid out in Deluxe Paint. After saving the image and converting it to raw, and then to a CHR using Raw2CHR, and compressing it with CHARlie, the second image is the product. It is an optimized version of my screen, comprising only unique tiles. The third image is a thumbnail of the NAM table of my NES screen generated with CHR2NAM. Finally, the fourth image is the ultimate result of using the resultant CHR and NAM tables in an NES demo (with embellishments).

This program is just a small little utility, so I didn't spend (much) of a time (at all) 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.

Download CHR2NAM Amiga executable and C source code.
Download CHR2NAM MS-DOS executable. (Kindly provided by Fractal)