The Riddle of Master Lu HAS

From XentaxWiki
Jump to: navigation, search

HAS + HAG


Format Specifications

// *.has File

uint32 {4}   - Number of Entries
// for each file
char {33}    - File Name (zero-terminated)
byte {1}     - Section ID
byte {1}     - Entry Type
uint32 {4}   - File Offset
uint32 {4}   - File Size
uint32 {4}   - Entry Offset
// until *.has file ends
char {33}    - Section Name (zero-terminated)
byte {1}     - Section ID


// *.hag File

// for each file
byte {X}     - File Data


MultiEx BMS Script

Not written yet.


Notes and Comments

  • The *.has file contains the directory, a number of *.hag files contain the data.
  • The Section ID of each file entry determines which *.hag file the current file is located in.
  • The list of *.hag files can be found at the end of the *.has file in a list consisting of the name of the *.hag file (without the extension) and its Section ID.
  • The Entry Type field determines whether this entry is "live" or not -- a deleted (empty) entry will have a zero Entry Type value.
  • The Entry Offset contains an offset value within the *.has file. In a "normal" case, this value is identical to the offset of the entry itself. Sometimes, however, this value may point to a different entry (which then usually contains the same file name, but a different File Offset or File Size). This may even be chained several times. The reason for this is not yet known, but a guess would be that the game files are internally addressed by their position in the resource table and these values work as a sort of "redirector".
  • Some of the extracted files may not have a file extension. They can be of one of the following types nonetheless.


Compatible Programs