Difference between pages "FF8/Menu mngrp complex strings" and "FF8/String Encoding"

From Final Fantasy Inside
< FF8(Difference between pages)
Jump to navigation Jump to search
m (5 revisions imported)
 
my_wiki>Sebanisu
(Started stream encoding entry. still more to do but wanted to start special characters.)
 
Line 1: Line 1:
==Seek Map==
+
[https://sourceforge.net/p/ifrit/code-0/HEAD/tree/trunk%20ifrit-code-0/Resources/textformat.ifr source for some of text codes]
Before the string sections, there is a section with a map of seek data.
+
=== String Encoding ===
===Header===
+
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==
 +
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.
 
{| class="wikitable"
 
{| class="wikitable"
|-
+
! Starting Byte
! Type
 
 
! Size
 
! Size
! Value
+
! Name
 
! Description
 
! Description
 
|-
 
|-
| UInt32
+
| 0x00
| 4
+
| 1
| Count
+
| NULL
| Number of seek locations.
+
| End of string
 
|-
 
|-
|}
+
| 0x03
===Seek Struct===
+
| 2
{| class="wikitable"
+
| Name
 +
| When see 0x03??, in a string, it's usually a characters name.
 
|-
 
|-
! Type
+
| 0x05
! Size
+
| 2
! Value
+
| Icon
! Description
+
| 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.
 
|-
 
|-
| UInt16
+
| 0x06
 
| 2
 
| 2
| Seek_Location
+
| Color
| From beginning of section to start of String Entry
+
| 0x06?? used to show a change in formatting like color
 
|-
 
|-
| UInt16
+
| 0x0A
 
| 2
 
| 2
| Section_Number
+
| Special_Value
| 0-5
+
| 0x0A?? can be a string or number value.
|}
+
Depending on which string you are reading it can be a different value.
==String Entry==
 
{| class="wikitable"
 
 
|-
 
|-
! Type
+
| 0x0B
! Size
+
| 2 or 3
! Value
+
| Cursor_Locations
! Description
+
| 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<br/>
 +
but screens with a list of multiple selections will will use 3 bytes.
 
|-
 
|-
| Byte[6]
+
| [http://forums.qhimm.com/index.php?topic=17120.msg243579#msg243579 0x0C]
| 6
 
| UNK
 
| Fist one is
 
'''0xFFFFFFFFFFFF'''
 
|-
 
| UInt16
 
 
| 2
 
| 2
| Entry_Length
+
| SpellID
| Length of entry from start.
+
| Used to place a name of a spell.
|-
 
| Byte [Entry_Length-8]
 
| Entry_Length - 8
 
| [[FF8/String_Encoding|Encoded_Strings]]
 
| Entry might have more than string, each ends with 0x00
 
 
|}
 
|}

Revision as of 15:29, 22 April 2019

source for some of text codes

String Encoding

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

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
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.