Mother 3/Main script

From Data Crystal
Jump to navigation Jump to search

This is a sub-page of Mother 3.

Main script
Game Mother 3
Start Address 0x136A6F4
End Address 0x1433D7B
# of Entries 2002 (0x7D2)
Entry Length Variable
Total Length 824968 bytes (0xC9688)
Back to the ROM map

Overview

This table holds the text used by NPC dialogue and game logic scripts, among other things. As with game logic, the files are organized in pairs, with one common block of text at the beginning and other files per map.

File formats

The first file in each pair is a sequence of 16-bit offsets, one for each line of text in the second file. The offsets are in bytes in the original game.

The second file contains the actual text data. The beginning of the file seems to begin with FFFF (representing the empty string) and the number of valid non-empty lines, and after that it's just text and the text's control codes.

Text control codes

In the original game, control codes begin with characters with a value of 0xFF00 or above.

TO-DO: formatting

FF00

Often comes after an FF03 code. The sequence "FF03 FF00" waits for the player to press a button and then clears the textbox.

FF01: Line break

Moves the text cursor down to the next line.

FF02

Used at the end of menu choices

FF03

Often comes before an FF00 code. The sequence "FF03 FF00" waits for the player to press a button and then clears the textbox.

FF04 xxxx: Pause

Waits for $xxxx frames before continuing to print any more text

FF05 xxxx

TO-DO

FF06 xxxx: Menu

TO-DO

FF07: Event

TO-DO

FF08 xxxx

TO-DO

FF09: Center text?

This command is only used in certain certain lines of the opening cutscene of the game. All uses of it were replaced by FF0A in the fan translation.

FF0A: Center text

TO-DO: for the current line only?

FF0B: Alternate font

Switches to the Dosei/Saturn font

FF0C xxxx

TO-DO

FF26 xxxx yyyy: Print emphatic character name

Prints the name of character xxxx with yyyy "long mark" characters inserted after the last character that makes a vowel sound (i.e., the last character in the name that isn't ん or ン). If the name consists entirely of these two characters, no long marks will be printed. In the English fan translation, this code just prints the character's name normally.

For example, [FF26 0001 0003] will print as フリントーーー with Flint's default name, or as ジョーーーン if he's been named ジョン instead.