Pebbles Taru Dominatrix

Joined: 10 Mar 2006 Posts: 212 Location: Belgium
|
Posted: Sun Mar 01, 2009 15:48 Post subject: Dialog Tables |
|
|
Just noticed I hadn't actually made a topic for these yet...
These start with a single "header" field:
| Code: | | UINT32 FileSizeSorta |
It seems to be indicative of the file size (= 0x10000000 + filesize - 4), so can be used for sanity checks.
The rest of the file is XORed with 0x80 bytes, so every UINT32 below should be XORed with 0x80808080 before use.
The header field is followed by any number of entries of the form
StartOfText is an offset from the start of the entries table (so you need to add 4 to get the offset in the file).
The first entry seems to always be the very first text position, so it can be used to determine the number of entries.
Note: POLUtils currently sorts this list of entries (so it can easily see where each one ends). This does mean that the Index shown in POLUtils is not necessarily the index of that entry in this entry table
After that, it's just a big chunk of text (still with each byte XORed with 0x80). It's in the normal FFXI encoding, except that there are several special markers embedded, not all of which are clear to me.
Known (well, semi-known) markers:
| Code: | Byte(s) Meaning
------- ----------------------------------------
07 Line break is inserted at that point
08 Name of player is inserted at that point
09 Name of speaking NPC is inserted at that point
0Axx Indicates the dialog entry has a parameter that causes a number to be inserted at that point.
The second byte is the parameter number.
0B Starts a selection window.
Lines after this will be in a pop-up window the user has to choose an entry from.
0Cxx Indicates the dialog entry has a parameter that is used to select one of a number of strings to be inserted at that point.
The second byte is the parameter number.
This marker is followed by text of the form "[choice 1/choice 2/choice 3]".
19xx Indicates the dialog entry has an parameter that causes an item name to be inserted at that point.
The second byte is the parameter number.
1Axx Indicates the dialog entry has an parameter that causes a key item name to be inserted at that point.
The second byte is the parameter number.
1Cxx Indicates the dialog entry has an parameter that causes a player or chocobo name to be inserted at that point.
The second byte is the parameter number.
1Exx Indicates that the color of subsequent text should be changed
The second byte is the color number.
7F31xx Seems to indicate that the use needs to press Enter to continue.
The third byte seems to indicate the number of seconds of delay before the Enter prompt becomes available.
7F85 Indicates a multiple choice insertion (like 0Cxx above), based on the gender of the player.
7F8Dxx Indicates the dialog entry has an parameter that causes a weather event name to be inserted at that point.
The third byte is the parameter number.
7F8Exx Indicates the dialog entry has an parameter that causes a weather type name to be inserted at that point.
The third byte is the parameter number.
7F92 Indicates a multiple choice insertion (like 0Cxx above), but based on a singular/plural evaluation of a numeric parameter.
The third byte is the parameter number.
7FB1xx Indicates the dialog entry has an parameter that causes a title to be inserted at that point.
The third byte is the parameter number.
7Fxx Any other byte preceded by 7F is marked by POLUtils as an "unknown marker" (if there is no room for a third byte)
or as an "unknown parameter" if there is.
xx Any other byte below 0x20 is marked by POLUtils as an "possible special code".
|
|
|