TextBox

TextBox are mainly found in the menu, for example for the tutorial. They can be composed of:

  • An ID
  • A title
  • A parent TextBox ID (the one we used to get to the current TextBox)
  • Often different cursor location id
  • Button info
  • And sometimes a left box id and/or a right box id to be able to move with the left or right cross.

There is 5 section with string info in it, but before those 5 sections there is a “Seek map” section which indicate the different position of a String Entry.

Seek Map

Before the several string sections (5), there is a section with a map of seek data. The seek map is composed of 4 bytes containing the number of seek location, then for each of those seek location, 4 bytes info. So the total size of the seek map is 4 + 4*(Number seek).

Number seek

Type Size Value Description
UInt32 4 Count Number of seek locations.

Seek location info

Type Size Value Description
UInt16 2 Seek_Location From beginning of section to start of String Entry
UInt16 2 Section_Number 0-5

String Entry

Then each string complex section is composed of the following data:

Type Size Value Description
UInt16 2 Parent TextBox ID 0xFFFF for the first TextBox
UInt16 2 Left TextBox ID 0xFFFF if no TextBox linked
UInt16 2 Right TextBox ID 0xFFFF if no TextBox linked
UInt16 2 Entry_Length Length of entry from start minus 1.
FF8 String Depends Title The title of the TextBox, no offset specified to know the end.
The 0x00 determines the end of the title
FF8 String Entry_Length - 8 - Title_size TextBox content The text in the TextBox