Text Format
Contents
Extra Characters
For more information, see the Font page.
TacText | Event | Character Range |
---|---|---|
{0xD0??} | {D0}{??} | 00 to CF (do not use) |
{0xD1??} | {D1}{??} | D100 to D1CF |
{0xD2??} | {D2}{??} | D200 to D2CF |
{0xD3??} | {D3}{??} | D300 to D3CF |
{0xD4??} | {D4}{??} | D400 to D4CF |
{0xD5??} | {D5}{??} | D500 to D5CF |
{0xD6??} | {D6}{??} | D600 to D6CF |
{0xD7??} | {D7}{??} | D700 to D7CF |
{0xD8??} | {D8}{??} | D800 to D8CF |
{0xD9??} | {D9}{??} | D900 to D9CF |
{0xDA??} | {DA}{??} | DA00 to DA77 |
- You can technically use characters D0 to FF for D1 to DA, but there is no reason to do so.
Special Characters
Note: The "next Text Variable" ID is increased by 1 every time it is called, starting from 0. This is not affected by special characters that specify a defined Text Variable such as {0xE6}/{E6}.
For example:
{E4} - {E5}{br} {E4} - {E5}{end}
will print as:
"decimal value of TV $00" - "string value of TV $01"{br} "decimal value of TV $02" - "string value of TV $03"{end}
Char | TacText | Event | Description | Recommended Values (hex) |
---|---|---|---|---|
D9B9 | ??? | {D9B9} | Icon for the Circle button. | N/A? |
D9C7 | ??? | {D9C7} | Icon for the Triangle button. | N/A? |
D9C8 | ??? | {D9C8} | Icon for the Square button. | N/A? |
DA73 | {SP} | {DA73} | A half-space. Useful for shaving some pixels off a line in a dialog box. | N/A? |
E0 | {Ramza} | {Ramza} | Print World Unit 0x00's (#1) Name.
Despite not reading from text variables, will advance to the next text variable anyway. |
N/A |
E1 | {0xE1} | {unitname} | Prints a string defined in the next Text Variable. See String Fetching.
Is 8 sections off into EB, making this effectively a Unit Name retriever at section 0 for both BATTLE and WORLD strings. |
N/A |
E2 | {Delay ??} | {delay:??} | Wait a certain amount of frames before reading/printing the next characters. Default is 01. | 00 to FF |
E3 | {Color ??} | {font:??} | Changes the colour of the displayed text (varies depending on the dialogue type). Default is 00. | 00/04/08 |
E4 | {0xE4} | {E4} | Prints the next text variable as a decimal value. | N/A |
E5 | {0xE5} | {E5} | Prints a string defined in the next Text Variable. See String Fetching. | N/A |
E6 | {0xE6??} | {E6}{??} | Prints a defined Text Variable as a decimal value. | 00 to 7F |
E7 | {0xE7} | {E7} | ??? | |
E8 | {0xE8??} | {E8} | Next decimal number will use exactly ?? Spaces.
These spaces are empty characters that are just as wide as 0/1/2/3/4/5/6/7/8/9. |
01 to 0A |
E9 | {0xE9} | {E9} | Prints a string defined in the next Text Variable. See String Fetching. | N/A |
EA | {0xEA} | {EA} | Prints a string defined in the next Text Variable. See String Fetching. | N/A |
EB | {0xEB} | {EB} | Prints a string defined in the next Text Variable. See String Fetching. | N/A |
EC | {0xEC??} | {EC} | Displays a portrait? | 00 to 7F |
ED | {0xED} | {ED} | ??? | |
EE | {0xEE} | {EE} | ??? | |
EF | {0xEF} | {EF} | ??? | |
F0 | {0xF0} | {F0} | ??? Doesn't open dialogue | |
F1 | {0xF1} | {F1} | ??? Doesn't open dialogue | |
F2 | {0xF2} | {F2} | ??? Doesn't open dialogue | |
F3 | {0xF3} | {F3} | ??? Doesn't open dialogue | |
F4 | {0xF4} | {waitpress} | Displays a cursor and waits for the player to press a confirmation button before resuming to read/print characters. | N/A |
F5 | {0xF5??} | {F5}{??} | ??? | |
F6 | {0xF6??} | {F6}{??} | ??? | |
F7 | {0xF7} | {F7} | ??? | |
F8 | {Newline} | {br} | Inserts a line break. | N/A |
F9 | {0xF9} | {F9} | ??? | |
FB | {BeginList} | {FB} | Begins a list of user-selectable choices. See Choice List. Use {close} for messages with this. | N/A |
FC | {EndList} | {FC} | Ends a list of user-selectable choices. See Choice List. Use {close} for messages with this. | N/A |
FD | {0xFD} | {stayopen} | Force to close via event instruction {51} ChangeDialog when used with FE {end}.
Can be placed anywhere inside the dialogue text. May prevent closing entirely. |
N/A |
FE | {end} | String End. Close via player confirm button input. | N/A | |
FF | {close} | String End. Close automatically. {Close} for the FFTText Helper. | N/A |
String Fetching
Note: Special characters E1, E5, E9, EA, EB all use different values for each string you might seek. The string values below are according to EB - stick to EB and ignore the others as they all have access to the same strings.
To use, you need to write into the appropriate Text Variable a value that consists of the Offset defined in the tables below, plus the ID requested.
For example, let's say you want to fetch the string "Non-Charge" in an event. You would call it with character {EB} and with 0x000071E3 (Section 0x7000 + ID 0x01E3) written into address 0x80165EF4 (BATTLE Text Variable $00).
[EB] BATTLE/SQUAD Strings (BATTLE.BIN)
(Some notes on RAM locations can be found in the Discussion page.)
Offset | String Set |
---|---|
0000 | Event Text (Message ID starts at 0x0000 in this case).
Possibly buggy if dialog box isn't closed before loading another dialog box/rewriting the text variable. |
0800 | Section 2? |
1000 | Battle - Action Denied |
1800 | Battle - Action Effects |
2000 | Section 5? |
2800 | Section 6? |
3000 | Jobs - Names |
3800 | Items - Names |
4000 | In Events: ENTD Unit Nicknames by slot ID (0x00 to 0x14)
In Squad Formation: Units - Names (ATTACK.OUT) |
4800 | Unknown Japanese text |
5000 | Misc. Menus |
5800 | Roster Unit Nicknames by slot ID (0x00 to 0x13)
|
6000 | Section 13? |
6800 | Section 14? |
7000 | Abilities - Names |
7800 | Section 16? |
8000 | Battle - Navigation Messages |
8800 | Statuses - Names |
9000 | Formation/Squad/MC Text |
9800 | Section 20? |
A000 | Section 21? |
A800 | Section 22? |
B000 | Skillsets - Names |
B800 | Summon/Draw Out Display Names |
C000 | |
C800 | |
D000 | |
D800 | |
E000 | |
E800 | |
F000 | |
F800 |
[EB] WORLD/FORMATION Strings (WORLD.LZW)
Offset | String Set |
---|---|
0000 | Section 1? |
0800 | Section 2? |
1000 | Section 3? |
1800 | Section 4? |
2000 | Section 5? |
2800 | Section 6? |
3000 | Jobs - Names |
3800 | Items - Names |
4000 | Roster Unit Names |
4800 | Units - Names |
5000 | Misc. Menus |
5800 | World Help Messages |
6000 | Propositions (Completed) - Names |
6800 | Section 14? |
7000 | Abilities - Names |
7800 | Propositions - Rewards |
8000 | Tips - Names |
8800 | Section 18? |
9000 | Locations - Names |
9800 | Facts - Names |
A000 | World Map Menu |
A800 | Maps - Names |
B000 | Skillsets - Names |
B800 | Bar/Town Text |
C000 | Tutorials - Names |
C800 | Rumors - Names |
D000 | Propositions - Names |
D800 | Unexplored lands |
E000 | Treasures |
E800 | Record |
F000 | Person |
F800 | Propositions - Job Contents |
[E9] New Game Strings (OPEN.LZW)
Offset | String Set |
---|---|
0000 | Section 1? |
0800 | Section 2? |
1000 | Section 3? |
1800 | Section 4? |
2000 | Section 5? |
2800 | Section 6? |
3000 | Section 7? |
3800 | Section 8? |
4000 | Units - Names |
4800 | Section 10? |
5000 | Section 11? |
5800 | Section 12? |
6000 | Section 13? |
6800 | Section 14? |
7000 | Section 15? |
7800 | Section 16? |
8000 | Section 17? |
8800 | Section 18? |
9000 | Section 19? |
9800 | Section 20? |
A000 | Section 21? |
A800 | Section 22? |
B000 | Section 23? |
B800 | Birthday Entry |
C000 | Sound Test - Track Names |
C800 | Sound Test - Comments |
D000 | Section 27? |
D800 | Section 28? |
E000 | Section 29? |
E800 | Section 30? |
F000 | Section 31? |
F800 | Section 32? |
Choice List
Choice lists will create multiple selectable options in a dialogue, with each option being separated by a {Newline}/{br}. The first option will always return 0x00000000, and each extra line, when selected, will write a value with an increment of one. The returned value is written to Variable 0x0018.
Options cannot be spread over multiple pages. Thus the greatest number of options you may have, is 14.
Option Selected | Returned Value |
---|---|
1st | 0x00000000 |
2nd | 0x00000001 |
3rd | 0x00000002 |
4th | 0x00000003 |
5th | 0x00000004 |
6th | 0x00000005 |
7th | 0x00000006 |
8th | 0x00000007 |
9th | 0x00000008 |
10th | 0x00000009 |
11th | 0x0000000A |
12th | 0x0000000B |
13th | 0x0000000C |
14th | 0x0000000D |
For example:
{font:08}{Ramza}{br}{font:00} {FB}1. Kick the baby{br} 2. Don't kick the baby{FC}{end}
- Selecting "1. Kick the baby" will write 0x00000000 to Variable 0x0018
- Selecting "2. Don't kick the baby" will write 0x00000001 to Variable 0x0018
Text Variables
ID | BATTLE Address | WORLD Address |
---|---|---|
$00 | 0x80165EF4 | 0x801531D8 |
$01 | 0x80165EF8 | 0x801531DC |
$02 | 0x80165EFC | 0x801531E0 |
$03 | 0x80165F00 | 0x801531E4 |
$04 | 0x80165F04 | 0x801531E8 |
$05 | 0x80165F08 | 0x801531EC |
$06 | 0x80165F0C | 0x801531F0 |
$07 | 0x80165F10 | 0x801531F4 |
$08 | 0x80165F14 | 0x801531F8 |
$09 | 0x80165F18 | 0x801531FC |
$0A | 0x80165F1C | 0x80153200 |
$0B | 0x80165F20 | 0x80153204 |
$0C | 0x80165F24 | 0x80153208 |
$0D | 0x80165F28 | 0x8015320C |
$0E | 0x80165F2C | 0x80153210 |
$0F | 0x80165F30 | 0x80153214 |
$10 | 0x80165F34 | 0x80153218 |
$11 | 0x80165F38 | 0x8015321C |
$12 | 0x80165F3C | 0x80153220 |
$13 | 0x80165F40 | 0x80153224 |
$14 | 0x80165F44 | 0x80153228 |
$15 | 0x80165F48 | 0x8015322C |
$16 | 0x80165F4C | 0x80153230 |
$17 | 0x80165F50 | 0x80153234 |
$18 | 0x80165F54 | 0x80153238 |
$19 | 0x80165F58 | 0x8015323C |
$1A | 0x80165F5C | 0x80153240 |
$1B | 0x80165F60 | 0x80153244 |
$1C | 0x80165F64 | 0x80153248 |
$1D | 0x80165F68 | 0x8015324C |
$1E | 0x80165F6C | 0x80153250 |
$1F | 0x80165F70 | 0x80153254 |
$20 | 0x80165F74 | 0x80153258 |
$21 | 0x80165F78 | 0x8015325C |
$22 | 0x80165F7C | 0x80153260 |
$23 | 0x80165F80 | 0x80153264 |
$24 | 0x80165F84 | 0x80153268 |
$25 | 0x80165F88 | |
$26 | 0x80165F8C | |
$27 | 0x80165F90 | |
$28 | 0x80165F94 | |
$29 | 0x80165F98 | |
$2A | 0x80165F9C | |
$2B | 0x80165FA0 | |
$2C | 0x80165FA4 | |
$2D | 0x80165FA8 | |
$2E | 0x80165FAC | |
$2F | 0x80165FB0 | |
$30 | 0x80165FB4 | |
$31 | 0x80165FB8 | |
$32 | 0x80165FBC | |
$33 | 0x80165FC0 | |
$34 | 0x80165FC4 | |
$35 | 0x80165FC8 | |
$36 | 0x80165FCC | |
$37 | 0x80165FD0 | |
$38 | 0x80165FD4 | |
$39 | 0x80165FD8 | |
$3A | 0x80165FDC | |
$3B | 0x80165FE0 | |
$3C | 0x80165FE4 | |
$3D | 0x80165FE8 | |
$3E | 0x80165FEC | |
$3F | 0x80165FF0 | |
$40 | 0x80165FF4 | |
$41 | 0x80165FF8 | |
$42 | 0x80165FFC | |
$43 | 0x80166000 | |
$44 | 0x80166004 | |
$45 | 0x80166008 | |
$46 | 0x8016600C | |
$47 | 0x80166010 | |
$48 | 0x80166014 | |
$49 | 0x80166018 | |
$4A | 0x8016601C | |
$4B | 0x80166020 | |
$4C | 0x80166024 | |
$4D | 0x80166028 | |
$4E | 0x8016602C | |
$4F | 0x80166030 | |
$50 | 0x80166034 | |
$51 | 0x80166038 | |
$52 | 0x8016603C | |
$53 | 0x80166040 | |
$54 | 0x80166044 | |
$55 | 0x80166048 | |
$56 | 0x8016604C | |
$57 | 0x80166050 | |
$58 | 0x80166054 | |
$59 | 0x80166058 | |
$5A | 0x8016605C | |
$5B | 0x80166060 | |
$5C | 0x80166064 | |
$5D | 0x80166068 | |
$5E | 0x8016606C | |
$5F | 0x80166070 | |
$60 | 0x80166074 | |
$61 | 0x80166078 | |
$62 | 0x8016607C | |
$63 | 0x80166080 | |
$64 | 0x80166084 | |
$65 | 0x80166088 | |
$66 | 0x8016608C | |
$67 | 0x80166090 | |
$68 | 0x80166094 | |
$69 | 0x80166098 | |
$6A | 0x8016609C | |
$6B | 0x801660A0 | |
$6C | 0x801660A4 | |
$6D | 0x801660A8 | |
$6E | 0x801660AC | |
$6F | 0x801660B0 | |
$70 | 0x801660B4 | |
$71 | 0x801660B8 | |
$72 | 0x801660BC | |
$73 | 0x801660C0 | |
$74 | 0x801660C4 | |
$75 | 0x801660C8 | |
$76 | 0x801660CC | |
$77 | 0x801660D0 | |
$78 | 0x801660D4 | |
$79 | 0x801660D8 | |
$7A | 0x801660DC | |
$7B | 0x801660E0 | |
$7C | 0x801660E4 | |
$7D | 0x801660E8 | |
$7E | 0x801660EC | |
$7F | 0x801660F0 |