hbekel / charcomp

Generate complete C64 character ROM images from incomplete charsets

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

charcomp

Generate and normalize complete C64 character ROM images from incomplete charsets

Synopsis

$ charcomp incomplete.rom complete.rom

Description

Generates complete C64 character ROM files from possibly incomplete character sets by copying letters, digits and symbols into the default C64 character ROM. The relevant character ranges are copied from the location of their first occurence in the input ROM image and distributed throughout the output ROM image, generating reversed characters where required. The graphic characters will not be copied.

The main purpose of this tool is to generate character ROMs suitable for replacing the original ROM contents. Since most character sets available on the net are incomplete and often only consist of either the upper case or mixed case portions and may also lack graphic and/or punctuation characters, this tool can at least create a starting point for further editing. Graphic characters are never copied since it is assumed that a replacement ROM should retain the original graphic characters so that PETSCII-Art is displayed properly.

Examples

The charsets used in this examples are available from http://kofler.dot.at/c64/index.html

Quadro Graf (upper case only)

Quadro Graf input

$ charcomp quadro_graf.64c quadro_graf.rom

Result:

Quadro Graf output

Since this is an upper-case only charset, the lower case characters will still need some editing.

Antik 1 (mixed case only)

Antik 1 input

$ charcomp --mixed antik_1.64c antik_1.rom

Result:

Antik 1 output

Note that the --mixed option is needed to specify that the input charset is a mixed case charset.

The only symbol that may still need some polishing is the pi symbol.

If you want to separate the upper case and the mixed case portion, simply specify two output files:

$ charcomp --mixed antik_1.64c antik-upper.rom antik-mixed.rom

Result:

Antik 1 output upper case

and

Antik 1 output mixed case

Assault machine (upper case, no proper symbols)

Assault machine input

This input charset does not contain any usable symbols, so we skip the copying of symbols using the --skip-symbols option:

$ charcomp --skip-symbols assault_machine.64c assault-machine.rom

Result:

Assault machine output

Now we can edit the charset further:

Assault machine, editing symbols

Only the first occurences of the symbols were edited. In order to propagate these changes throughout the whole ROM image, we can run the edited rom image through charcomp again:

$ charcomp assault-machine-edited.rom assault-machine-edited.rom

Result:

Assault machine output

Preview images like these can be generated in PBM format instead of ROM images by specifiying the --bitmap option.

Options

Usage: charcomp [<input> [<output>]]
       charcomp [<input> [<output-upper> <output-mixed>

Options:
         -h, --help    : show this help text
         -v, --version : show version information
         -m, --mixed   : specify mixed case input file
         -b, --bitmap  : generate bitmap(s) instead of ROM images

         -L, --skip-letters : skip copying letters
         -D, --skip-digits  : skip copying digits
         -S, --skip-symbols : skip copying symbols

Build & Install from source

Linux, Cygwin & MacOSX:

$ cd charcomp-1.0
$ make
$ make install

Windows (using mingw32):

$ make CC=i686-pc-mingw32-gcc

PREFIX defaults to /usr/local. Use DESTDIR for staged installs.

LICENSE

   License GPLv3: GNU GPL version 3 .
   This is free software: you are free to change and redistribute it.
   There is NO WARRANTY, to the extent permitted by law.

About

Generate complete C64 character ROM images from incomplete charsets

License:GNU General Public License v3.0


Languages

Language:C 97.4%Language:Makefile 2.6%