POLUtils Forum Index POLUtils
The official POLUtils forums.
 
  FAQFAQ    SearchSearch    MemberlistMemberlist    UsergroupsUsergroups    fchat fChat  RegisterRegister  
  ProfileProfile    Log in to check your private messages Log in to check your private messages    Log in Log in 

Dialog Tables

 
Post new topic   Reply to topic    POLUtils Forum Index -> DAT File Formats
View previous topic :: View next topic  
Author Message
Pebbles
Taru Dominatrix


Joined: 10 Mar 2006
Posts: 212
Location: Belgium

PostPosted: Sun Mar 01, 2009 15:48    Post subject: Dialog Tables Reply with quote

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
Code:
UINT32 StartOfText

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".
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address
Display posts from previous:   
Post new topic   Reply to topic    POLUtils Forum Index -> DAT File Formats All times are GMT + 1 Hour


Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum