Text Format

From Final Fantasy Hacktics Wiki
Revision as of 01:27, 4 June 2017 by Xifanie (talk | contribs)
Jump to navigation Jump to search

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)
E0 {Ramza} {Ramza} Print World Unit 0x00's (#1) Name. N/A
E1 {0xE1} {unitname} Prints the name associated with the slot specified in the next Text Variable.

BATTLE unit names inside of an event and WORLD unit names when on the world map.

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/08/10/18
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. N/A
FC {EndList} {FC} Ends a list of user-selectable choices. See Choice List. 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.

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 E5, E9, EA, EB all use different values for each string you might seek... you may as well stick to E5 and ignore the others as they all have access to the same strings.

E5 E9 EA EB BATTLE Strings WORLD Strings
0000 5800 9000 2000 Formation/Squad/MC Text
2000 7800 B000 4000 Skillsets - Names
2800 8000 B800 4800 Summon/Draw Out Display Names
7000 C800 0000 9000 Event Text (Message ID starts at 0x0000 in this case)
8000 D800 1000 A000 Battle - Action Denied
8800 E000 1800 A800 Battle - Action Effects
A000 F800 3000 C000 Jobs - Names
A800 0000 3800 C800 Items - Names
B000 0800 4000 D000 ENTD Unit Names by slot ID (0x00 to 0x14)
B800 1000 4800 D800 Unknown Japanese Text
C000 1800 5000 E000 Misc. Menus
E000 3800 7000 0000 Abilities - Names
F000 4800 8000 1000 Battle - Navigation Messages
F800 5000 8800 1800 Statuses - Names

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 greater number of options you may have, is 8: using a page.

Option Selected Returned Value
First 0x00000000
Second 0x00000001
Third 0x00000002
Fourth 0x00000003
Fifth 0x00000004
Sixth 0x00000005
Seventh 0x00000006
Eighth 0x00000007

For example:

{font:08}{Ramza}{br}{font:00}
{FB}1. Kick the baby{br}
2. Don't kick the baby{FC}{end}


Text Variables

ID Memory Address
$00 0x80165EF4
$01 0x80165EF8
$02 0x80165EFC
$03 0x80165F00
$04 0x80165F04
$05 0x80165F08
$06 0x80165F0C
$07 0x80165F10
$08 0x80165F14
$09 0x80165F18
$0A 0x80165F1C
$0B 0x80165F20
$0C 0x80165F24
$0D 0x80165F28
$0E 0x80165F2C
$0F 0x80165F30
$10 0x80165F34
$11 0x80165F38
$12 0x80165F3C
$13 0x80165F40
$14 0x80165F44
$15 0x80165F48
$16 0x80165F4C
$17 0x80165F50
$18 0x80165F54
$19 0x80165F58
$1A 0x80165F5C
$1B 0x80165F60
$1C 0x80165F64
$1D 0x80165F68
$1E 0x80165F6C
$1F 0x80165F70
$20 0x80165F74
$21 0x80165F78
$22 0x80165F7C
$23 0x80165F80
$24 0x80165F84
$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