Difference between revisions of "FF8/String Encoding"

From Final Fantasy Inside
< FF8
Jump to navigation Jump to search
my_wiki>Sebanisu
(Started stream encoding entry. still more to do but wanted to start special characters.)
 
my_wiki>Sebanisu
m (formatted header)
Line 1: Line 1:
[https://sourceforge.net/p/ifrit/code-0/HEAD/tree/trunk%20ifrit-code-0/Resources/textformat.ifr source for some of text codes]
+
= String Encoding =
=== String Encoding ===
+
FF8 strings are converted to byte arrays.[https://sourceforge.net/p/ifrit/code-0/HEAD/tree/trunk%20ifrit-code-0/Resources/textformat.ifr 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.
FF8 takes strings of text and converts them down to byte arrays. Some of which aligns to the grid of text in the texture. Some bytes = two characters.
 
 
==Special 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.
 
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.
Line 14: Line 13:
 
| NULL
 
| NULL
 
| End of string
 
| End of string
 +
|-
 +
| 0x02
 +
| 1
 +
| \n
 +
| Inserts new line
 +
Some areas ignore this character.
 
|-
 
|-
 
| 0x03
 
| 0x03

Revision as of 18:58, 22 April 2019

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
but screens with a list of multiple selections will will use 3 bytes.

0x0C 2 SpellID Used to place a name of a spell.