Kelly Slater’s Pro Surfer ST2: Difference between revisions
Jump to navigation
Jump to search
imported>Ikskoks |
imported>Ikskoks |
||
| (30 intermediate revisions by the same user not shown) | |||
| Line 21: | Line 21: | ||
4 bytes (uint32) - data offset | 4 bytes (uint32) - data offset | ||
4 bytes (uint32) - data size | 4 bytes (uint32) - data size | ||
4 bytes (uint32) - aram offset | 4 bytes (uint32) - aram data offset | ||
4 bytes (uint32) - aram size | 4 bytes (uint32) - aram data size // usually 0 | ||
4 bytes (uint32) - temp data offset | 4 bytes (uint32) - temp data offset | ||
4 bytes (uint32) - temp data size | 4 bytes (uint32) - temp data size | ||
4 bytes (uint32) - compression flags // usually 0 | 4 bytes (uint32) - compression flags // usually 0 | ||
// 0x00000001 - compressed index | // 0x00000001 - compressed index | ||
// 0x00000002 - compressed data | // 0x00000002 - compressed data | ||
// | // 0x00000004 - compressed temp data | ||
4 bytes (uint32) - index compressed size // usually 0 | 4 bytes (uint32) - index compressed size // usually 0 | ||
4 bytes (uint32) - data compressed size // usually 0 | 4 bytes (uint32) - data compressed size // usually 0 | ||
| Line 41: | Line 41: | ||
} | } | ||
// 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 | |||
} | |||
</pre> | </pre> | ||
</div> | </div> | ||
| Line 51: | Line 93: | ||
* "ST" in the file extension means "stash file". | * "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 === | === Games === | ||
| Line 58: | Line 101: | ||
=== Compatible Programs === | === Compatible Programs === | ||
* [https://github.com/bartlomiejduda/Tools/blob/master/NEW%20Tools/Kelly%20Slater%E2%80%99s%20Pro%20Surfer/Kelly_Slaters_Pro_surfer_ST2_Tool.py Kelly_Slaters_Pro_surfer_ST2_Tool.py] | |||
<br/><br> | <br/><br> | ||
| Line 68: | Line 111: | ||
[[Category:Extension_st2 | Extension: st2]] | [[Category:Extension_st2 | Extension: st2]] | ||
[[Category:BMS_None | BMS: None]] | [[Category:BMS_None | BMS: None]] | ||
[[Category:Custom encryption]] | |||
[[Category:File Format]] | [[Category:File Format]] | ||
Latest revision as of 15:46, 4 April 2021
Back to index | Edit this page
ST2
- Format Type : Archive
- Endian Order : Little Endian
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