Skip to content

Translating map labels

Gong Xian edited this page Jun 5, 2022 · 18 revisions

Most strings for labels for map locations are written into 1ST_READ.BIN, while others are found in chapter script files.

Editing labels in 1ST_READ.BIN

The properties map labels that do not change throughout the game are located in 1ST_READ.BIN. Their properties are described in consecutive chunks of data.

This is an example found at 0x1928b8.

Offset Example value Description
0x0 00 00 00 ff Mask?
0x4 00 00 00 00 00
0x8 64 00 00 00 ID?
0xC 42 00 00 00 Label graphic width; default values are in multiples of 22 pixels per character
0x10 00 4c 22 8c Pointer to string; this one is "@fs22,22@fm24,0下町へ"
0x14 00 00 00 00 Floating point for X coordinate of hotspot location
0x18 9a 99 11 c1 Floating point for Y coordinate of hotspot location

The default strings change the text size to 22 and the character offset to 24. See the documentation on control codes.

To edit this label, write a new string into a free location, change the pointer to that location, and change the label graphic width accordingly.

Editing labels in script files

At 0x21581 in 1ST_READ.BIN is a string that is prepended to strings in the script files that contain the map location label: "@fs22,22@fm24,0"

When the map label is rendered, the number of characters in the string in the script file is used to calculate the length of the label graphic. It is recommended to edit kanji tiles in SKFONT.CG into the translated text and change the string in the script file to the former kanji. In order to facilitate this change, the above string should be changed to "@fs22,22@fm22,0", setting the @fm value equal to the @fs value.

As noted on the page on SKFONT.CG, an easy way to do this is to start with the first character in the Shift-JIS table and edit enough consecutive tiles to fit the translated label, then using the kanji that used to correspond to those tiles, such as the first four Shift-JIS characters: "亜唖娃阿". This can be repeated as many times as needed with successive characters to translate all such labels.