DSARCIDX format

From Netherworld Research
Revision as of 12:04, 20 January 2018 by FireFly (Talk | contribs) (Created page with "The '''DSARCIDX format''' is a run-of-the-mill archive format. No built-in compression, has filenames but only "flat"--no directory tree. == Header == <pre> struct header {...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

The DSARCIDX format is a run-of-the-mill archive format. No built-in compression, has filenames but only "flat"--no directory tree.

Header

struct header {
  char magic[8];   // "DSARCIDX"
  u32 count;
  u32 unk1;        // always 00
  u16 ids[count];
};

This is seemingly padded to a 4-byte boundary by 0xFF bytes. The meaning of the file IDs is uncertain, but in e.g. bg.dat the file bgXXX.mpb corresponds to the entry with ID X (with gaps in the numbering being present).

File directory

The header is followed by the file directory, with one entry per file in the archive.

struct file_entry {
  char filename[40];
  u32 size;
  u32 offset;      // relative to start of archive
} entries[count];

File data

This is followed by the file data. The data for each file is aligned to an 8-byte boundary, padded with null bytes between files if necessary.