Skip to content
alexeevdv edited this page Jan 29, 2013 · 17 revisions
Name Data type Description
itemsData char[datFileSize - itemsListSize - 8] Items binary data
itemsListCount unsigned int Number of items in the list
itemsList itemsListEntry[itemsListCount] List of items
itemsListSize unsigned int Size of items list in bytes(including itemsListCount)
datFileSize unsigned int Full size of DAT file
struct itemsListEntry {
    unsigned int filenameSize;   // filename size in bytes
    char filename[filenameSize];
    unsigned char compressed;    // 0 - uncompressed,  1 - compressed
    unsigned int unpackedSize;
    unsigned int packedSize;
    unsigned int dataOffset;     // offset from file beginning in bytes 
}

Items list reading sequence:

  1. Go to (size of DAT file - 4 bytes)
  2. Read datFileSize
  3. Compare datFileSize and size of DAT file. If not equal then file is corrupted
  4. Go to ( datFileSize - 8)
  5. Read itemsListSize
  6. Go to ( datFileSize - itemsListSize - 8)
  7. Read itemsListCount
  8. Read itemsListEntry
  9. Repeat previous action itemsListCount times

Back to Fallout 2 file formats

Clone this wiki locally