Slayer Engine PAK

From XentaxWiki
Jump to: navigation, search

Back to index | Edit this page

PAK


Format Specifications (Buffy the Vampire Slayer)

// Buffy the Vampire Slayer (XBOX)
// PAK file format

// header
4 bytes (uint32) - unknown
4 bytes (uint32) - names block size
4 bytes - nulls
4 bytes (uint32) - names block size (repeated?)
4 bytes (uint32) - align value
4 bytes (uint32) - number of files


number_of_files *
{
   4 byte (uint32) - file name relative offset
}


number_of_files *
{
   x byte (char) - file name // e.g. "vorpalwall01_f1"
}



// some array
4 bytes (uint32) - unknown // 8192
4 bytes (uint32) - number of entries
num_of_entries *
{
   2 bytes (uint16) - some entry
}


// directory array
4 bytes (uint32) - unknown
4 bytes (uint32) - unknown
4 bytes (uint32) - number of entries
num_of_entries *
{
   36 bytes (char) - directory name  // e.g. "meshes" or "genericnpc"
}


// unknown structure
4 bytes - nulls
4 bytes (uint32) - length of the name  // 3
3 bytes (char) - name // "mtx"
4 bytes (uint32) - unknown  // 8
4 bytes (uint32) - number of the names
num_of_names *
{
   4 bytes (uint32) - name length
   x bytes (char) - name  // e.g. "meshes" or "levels"
}
4 bytes (uint32) - unknown  // 512


// TODO
x bytes - unknown
x bytes - file data


Format Specifications (The Da Vinci Code)

// The Da Vinci Code
// PAK file format

// extra header
// Note: This header does not occur in Buffy the Vampire Slayer
2 bytes (uint16) - magic?  // 72
4 bytes (uint32) - unknown // 10
18 bytes - nulls

// header
4 bytes (uint32) - nulls
4 bytes (uint32) - names block size
4 bytes - nulls
4 bytes (uint32) - names block size (repeated?)
4 bytes (uint32) - align value
4 bytes (uint32) - number of files

number_of_files *
{
   4 byte (uint32) - file name relative offset
}


number_of_files *
{
   x byte (char) - file name // e.g. "cinematic_dialog"
}


// TODO
x bytes - unknown
x bytes - file data

Format Specifications (Silent Hill: Homecoming)

// Silent Hill: Homecoming
// PAK file format

// header
4 bytes (char) - magic  // "PAK_"
4 bytes (uint32) - version?  // 1 
4 bytes (uint32) - number of files
4 bytes - nulls


// info
num_of_files *
{
  64 bytes (char) - file name  // e.g. "stdfont" or "blackcube"
  4 bytes (uint32) - index flag  // e.g. 257
  4 bytes (time_t) - some timestamp
  4 bytes (uint32) - file offset
  4 bytes (uint32) - file size
  2 bytes (uint16) - file index
  2 bytes (uint16) - unknown
  4 bytes (uint32) - unknown
}

// data
num_of_files *
{
  x bytes - file data
}

MultiEx BMS Script

Not written yet.

QuickBMS Script

Notes and Comments

  • File format is used by Slayer Engine developed by The Collective (now Double Helix Games) company.
  • It seems that format has evolved over the years and there are some differences in specification for games using Slayer Engine.
  • Files inside PAK files may be compressed with LZO compression (Silent Hill: Homecoming).

Games

List of games using the same file format:

  • The Da Vinci Code
  • Indiana Jones and the Emperor's Tomb
  • Buffy The Vampire Slayer (XBOX)
  • Silent Hill: Homecoming

Compatible Programs

See Also