Kelly Slater’s Pro Surfer ST2

From XentaxWiki
Revision as of 17:46, 4 April 2021 by Ikskoks (talk | contribs) (Notes and Comments)

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

Back to index | Edit this page

ST2


Format Specifications

// Kelly Slater’s Pro Surfer
// ST2 file format

// header (64 bytes)
4 bytes (uint32) - index offset
2 bytes (uint16) - signature // 0xFE 0x5A
2 bytes (uint16) - version // 4
4 bytes (uint32) - number of index entries
4 bytes (uint32) - size of the index entry
4 bytes (uint32) - data offset
4 bytes (uint32) - data size
4 bytes (uint32) - aram data offset
4 bytes (uint32) - aram data size // usually 0
4 bytes (uint32) - temp data offset
4 bytes (uint32) - temp data size
4 bytes (uint32) - compression flags // usually 0
                                     // 0x00000001 - compressed index
                                     // 0x00000002 - compressed data
                                     // 0x00000004 - compressed temp data
4 bytes (uint32) - index compressed size // usually 0
4 bytes (uint32) - data compressed size // usually 0
4 bytes (uint32) - temp data compressed size // usually 0
4 bytes (uint32) - reserved
4 bytes (uint32) - reserved2

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

// temp data
// Note: Files with type "1 - raw" are stored in this section
num_of_index_entries *
{
   x bytes - temp file data
}

// aram data
// Note: Usually this section is empty
num_of_index_entries *
{
   x bytes - aram file data
}

// index
num_of_index_entries *
{
   32 bytes (char) - packed filename string  // e.g. "KS_HAND.TM2"
   4 bytes (uint32) - file offset
   4 bytes (uint32) - file size
   1 bytes (uint8) - file type  // 0 - unused
                                // 1 - raw
                                // 2 - ps2mesh
                                // 3 - xbmesh
                                // 4 - gcmesh
                                // 5 - anmx
                                // 6 - tex
                                // 7 - snmx
                                // 8 - misc

   1 byte (uint8) - file flags    // 0x1 - is_valid
                                  // 0x2 - is_stored
                                  // 0x4 - was_used
                                  // 0x8 - in_aram

   2 bytes (int16) - reserved // filled with random strings like "EX", "ES", "s_" etc.
   4 bytes (uint32) - raw data pointer
   4 bytes (uint32) - raw data size
   12 bytes (char) - padding  // may contain partial filenames but
                              // in general it is filled with garbage text
                              // and random values
}

MultiEx BMS Script

Not written yet.

Notes and Comments

  • "ST" in the file extension means "stash file".
  • Filenames are packed with custom encryption algorithm. Packing function has limitations and uses special mapping table.

Games

List of games using this file format:

  • Kelly Slater’s Pro Surfer

Compatible Programs