Chronotools - fonts and character sets

0. Contents

This is the documentation of chronotools-1.15.4.
   1. Introduction
   2. Terms
      2.1. Script character set
      2.2. 12pix font mapping
      2.3. 8pix font mapping
      2.4. 12pix font file
      2.5. 8pix font file
      2.6. VWF8 font file (optional)
      2.7. Locked symbols
      2.8. Typefaces
   3. Constraints
      3.1. Character set limits
         3.1.1. Limits in the 8pix font
            3.1.1.1. Reserved slots (in character set)
            3.1.1.2. Reserved slots (in tilemap)
            3.1.1.3. Usable slots
         3.1.2. Limits in the 12pix font
      3.2. The positional constraints
   4. Hints
   5. The VWF8 character mapping
   6. Downloading

1. Introduction

Chronotools has been designed to allow as much localization of Chrono Trigger as possible. This includes the possibility of using nearly any character set besides the English one.

2. Terms

In this document (and many others), the following terms are used.

2.1. Script character set

This encoding is your system-dependent encoding of characters to byte values. It is used in your script files and in your configuration file. It is not used in the patch or ROM.

The name of this encoding is written to the characterset field in your configuration file.
Some possible values include:
iso-8859-1 Western European encoding, aka. "latin1"
iso-8859-2 Polish, Czech, Slovak, Slovenia, Hungarian
iso-8859-5 Cyrillic encoding: Russian, Ukrainian, Belarusian
iso-8859-7 Greek encoding
iso-8859-8 Modern Hebrew encoding
iso-8859-9 Turkish, Maltese, Esperanto
iso-8859-10 Estonian, Latvian, Lithuanian, Greenlandic, Saami
iso-8859-11 Thai
iso-8859-16 Albanian, Croatian, Romanian, Gaelic etc with Euro
windows-1250 Microsoft version of iso-8859-2
windows-1251 Microsoft version of iso-8859-5
windows-1252 Microsoft version of latin1 and latin9
utf-8 The unicode character encoding
shift-jis Microsoft doublebyte Japanese encoding

2.2. 12pix font mapping

This is the array of characters specified using the font12_N settings in your configuration file.
Your 12pix font file (font12fn) must match exactly the contents of this array (excluding the typefaces).
In addition to the font12_N settings, also def12sym settings can be used to specify the contents of the font.

This mapping is used by:

Therefore, all character symbols that appear in those texts must be present in the 12pix font mapping (and consequently, in the 12pix font).

2.3. 8pix font mapping

This is the array of characters specified using the font8_N settings in your configuration file.
Your 8pix font file (font8fn) must match exactly the contents of this array.
In addition to the font8_N settings, also def8sym settings can be used to specify the contents of the font.

This mapping is used by:

Therefore, all character symbols that appear in those texts must be present in the 8pix font mapping (and consequently, in the 8pix font).

2.4. 12pix font file

This font file contains the actual character symbols of the 12pix font. When you edit it, please remember the restrictions listed in the image format guide and that it must match the contents of the font12_N map.

2.5. 8pix font file

This font file contains the actual character symbols of the constant-width 8pix font (used for most of the status screen content). When you edit it, please remember the restrictions listed in the image format guide and that it must match the contents of the font8_N map.

2.6. VWF8 font file (optional)

This font file contains the actual character symbols of the variable-width 8pix font (used for the aspects you select it for). When you edit it, please remember the restrictions listed in the image format guide.
Constraints for its character mapping are explained later in this document.

2.7. Locked symbols

When a symbol is "locked", using the lock12syms or lock8syms directive in the configuration file, it means that the position of the symbol in question will not be changed in the font in question.
This is useful for symbols that have positional constraints. These symbols are:

2.8. Typefaces

Typeface in Chronotools is a technique to provide the same 12pix text in different font styles. An example typeface could be italic.

This is accomplished by copying a region of the font to a different location in the font, editing it and then declaring it in the configuration file using the typeface statement.

3. Constraints

3.1. Character set limits

Due to how Chrono Trigger is built, there are several limitations in how you can build the fonts and character tables.

For understanding the explanations here you need to have rudimentary understanding of hex numbers.

3.1.1. Limits in the 8pix font

The 8pix font has 256 different indexes - $00 to $FF for characters. There's no way around it. But not all of them can be used freely.
3.1.1.1. Reserved slots (in character set)
This list tells which symbols may not be used in 8pix character set, because they already have different meanings. I'm not sure of the status of areas $10-$1F and $30-$3F.
3.1.1.2. Reserved slots (in tilemap)
This list tells which slots from the 8pix tilemap can not be used, because they are already used for something else.
3.1.1.3. Usable slots
This leaves the following areas for your use: VWF8 needs quite many slots from the tile table (110, to be exact) to draw the symbols on. This is an unavoidable technical limitation.

3.1.2. Limits in the 12pix font

The 12pix font has 768 different indexes - $000 to $2FF for characters.
It was this way in the Japanese version (yes, only 768!), and it wasn't changed in the USA version.
But there are some constraints regarding their use. This leaves the following areas for your use: However, characters in the $100-$2FF range take two bytes of ROM space whereas characters below the $100 marker take only 1 byte. This aspect may well be ignored, because Chronotools automatically rearranges the fonts optimally under the given constraints.

3.2. The positional constraints

This is where it all gets problematic.

Some texts are displayed in multiple fonts. Characters that are used to compose those strings must appear in exactly same positions in all of the fonts the strings are written in.

Character names (Crono, Marle, Lucca and so on) are displayed in 8pix font (equipment screen, save-game) and 12pix font (dialog). Therefore all the characters that may compose their names must be in same slots in both of those fonts.

This restriction applies to all the character symbols that are or could be used in any of the following things:

Generally, this includes all the alphabet symbols as well as some punctuation.

This effectively means the following things:

This restriction may make things difficult for languages that have lots of character symbols. Unfortunately, there's currently no way around it in Chronotools.

4. Hints

5. The VWF8 character mapping

Since VWF8 is never used for printing text other than that is under the "positional constraints" rule, the VWF8 character map is practically the same as the 8pix font map. Technically though, it allows 768 symbols just as the 12pix font does.

6. Downloading

The official home page of chronotools is at http://iki.fi/bisqwit/source/chronotools.html.
Check there for new versions.

Generated from source/fonts.php (last updated: Fri, 18 Feb 2005 15:07:18 +0200)
with docmaker.php (last updated: Sat, 13 Dec 2008 16:26:19 +0200)
at Tue, 03 Feb 2009 10:57:01 +0200