FF8/String Encoding
From Final Fantasy Inside
String Encoding
FF8 strings are converted to byte arrays.Char Table Some of which aligns to the grid of text in the texture if you -32 from the value. Some values are 1 byte = 2 characters, most are 1 byte = 1 character. There are also special bytes that use up 1-3 bytes.
Special Bytes
These bytes are points where things are inserted or a change in formatting. Some just say to ignore this string unless the player unlocked something.
Starting Byte | Size | Name | Description |
---|---|---|---|
0x00 | 1 | NULL | End of string |
0x02 | 1 | \n | Inserts new line
Some areas ignore this character. |
0x03 | 2 | Name | When see 0x03??, in a string, it's usually a characters name. |
0x05 | 2 | Icon | 0x05?? used to draw a symbol from icons.tex, like controller buttons.
On PC it draws the letter of keyboard keys assigned to the controls. |
0x06 | 2 | Color | 0x06?? used to show a change in formatting like color |
0x0A | 2 | Special_Value | 0x0A?? can be a string or number value.
Depending on which string you are reading it can be a different value. |
0x0B | 2 or 3 | Cursor_Locations | Might be number of possible return values that determine whether this is 3 or 2 bytes.
Like YES or NO questions will only be 2 bytes |
0x0C | 2 | SpellID | Used to place a name of a spell. |