Chrono Trigger translation development system

0. Contents

This is the documentation of chronotools-1.1.7.
   1. Purpose
   2. Program list
      2.1. ctdump
      2.2. ctinsert
      2.3. other
         2.3.1. makeips
         2.3.2. unmakeips
         2.3.3. xray
         2.3.4. viewer
         2.3.5. spacefind
         2.3.6. taipus.rb
         2.3.7. sramdump
         2.3.8. base62
   3. Technical limitations
      3.1. Space
      3.2. Font
   4. Copying
   5. Requirements
   6. Changelog
   7. See also
   8. Downloading

1. Purpose

Tools aiding in Bisqwit's Finnish Chrono Trigger translation.

2. Program list

2.1. ctdump

sample Dumps the script and fonts from a given ROM.
Requires chrono-dumpee.smc.
Produces ct_eng.txt, ct8fn.tga and ct16fn.tga.

Sample of produced script:

;Battle tutorials, Zeal stuff, party stuff
*z;39 pointerstrings (12pix font)
$HSs4:
Taistelun aikana jokaisen iskun[nl]
   teho vaihtelee iskun mukaan.
$HSs6:
Ensinnäkin, voit iskeä myös[nl]
   useampaa, kuin yhtä vihollista[nl]
   kerralla.
$HSs8:
Voit esimerkiksi tähdätä tätä[nl]
   hirviötä...
(Dumped from inf's Finnish Chrono Trigger translation).

2.2. ctinsert

Reinserts the (edited) script and (edited) fonts to a ROM.
Requires ct.txt, ct8fn.tga and ct16fn.tga.
Produces ctpatch-hdr.ips and ctpatch-nohdr.ips.
Curiously, it doesn't require the ROM.

2.3. other

2.3.1. makeips

Compares two ROMs and produces a patch file in IPS format.

2.3.2. unmakeips

Reads a ROM and an IPS file and produces a patched ROM file.

2.3.3. xray

xray is a libggi-requiring application for browsing the ROM contents.

2.3.4. viewer

viewer requires S-Lang and is a textmode ROM browser originally developed by me for Pokémon hacking.

2.3.5. spacefind

A bin-packing algorithm test.

2.3.6. taipus.rb

This one is publicly available. It conjugates names in Finnish. It's supposed to get translated to SNES assembler by somebody.

2.3.7. sramdump

Views a sram dump file in a readable format.

2.3.8. base62

Converts addresses between hex and base62 formats. I.e. $C2:5D4C -> rRhU and vice versa.
This development system uses base62 in the script dumps to reduce the amount of code written.

3. Technical limitations

3.1. Space

The ROM doesn't have much space for text.
It does apply a compression method, but some text compresses better than some other.
This might cause problems if too much different words are used in the script, but it isn't a real problem preventing translation.

3.2. Font

The 12-pix font has only 96 characters available.
Originally the characters are arranged like this:
(Chrono Trigger English 12pix font)
My font contains currently this slightly rearranged character map:
(Chrono Trigger Finnish 12pix font)
You can imagine in your mind, about which characters you would replace with another to get support for Thai for example...

Similarly the 8-pix font has undergone some changes.
It has lots more redundant space though.
Originally:
(Chrono Trigger English 8pix font)
Bisqwit's Finnish 8pix Chrono Trigger font:
(Chrono Trigger Finnish 8pix font)

If you are translating to a language that utilizes lots of different symbols, you might want to try to base on the Japanese version instead. This utility pack bases on the English version.
(Sorry, I can't help you with the Japanese ROM.)

4. Copying

If you're interested, throw me email.
But read the translation project page first!

My email-address (sigh) is: bisqwit at iki dot fi

I'm not publishing files, because it's a well-known fact that many people in ROM hacking scene aren't very respectful to copyrights.

5. Requirements

A POSIX compatible system (like Linux or FreeBSD) with GNU tools (GNU make, GCC etc) is required.
These programs are archived as C++ source code only.

6. Changelog

Copypaste from the Makefile:
# VERSION 1.0.3 was the first working! :D
# VERSION 1.0.4 handled fixed strings too
# VERSION 1.0.5 found item descriptions
# VERSION 1.0.6 compressed better
# VERSION 1.0.7 compressed more carefully
# VERSION 1.0.8 documented the script
# VERSION 1.0.9 fixed "..." handling and located the font
# VERSION 1.0.10 had knowledge of character sets
# VERSION 1.0.11 had a working font insertor
# VERSION 1.0.12 had better knowledge of special codes
# VERSION 1.0.13 used 62-base numbers
# VERSION 1.0.14 added taipus.cc
# VERSION 1.0.15 updated FIN/README and ct_fin.txt, but neither are archived
# VERSION 1.0.16 added taipus.rb, fixed homepage urls and fixed mmap error checking.
# VERSION 1.0.17 working again; uses space better; little modularized
# VERSION 1.0.18 more of above
# VERSION 1.0.19 code organising... improved 'i' in 8x8 font.
# VERSION 1.0.20 binpacker changes, some translation done too
# VERSION 1.0.21 more translation, some documentation, font palette changes.
# VERSION 1.0.22 more translation, autowrapping support, conjugation detection code
# VERSION 1.1.0  did some assembly hacking, support for code patching
# VERSION 1.1.1  conjugating conjugating conjugating... work goes on
# VERSION 1.1.2  and so on
# VERSION 1.1.3  and so on... almost working! "case" still doesn't work.

7. See also

8. Downloading

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

Generated from progdesc.php (last updated: Mon, 30 Jun 2003 17:42:45 +0300)
with docmaker.php (last updated: Thu, 13 Feb 2003 15:11:29 +0200)
at Tue, 1 Jul 2003 02:42:00 +0300