PoP-SoT SB0: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
imported>WATTO
No edit summary
 
imported>Ikskoks
No edit summary
 
(4 intermediate revisions by 3 users not shown)
Line 9: Line 9:
<tt><b>
<tt><b>
<font color="blue"> ''' // ARCHIVE HEADER ''' </font> <br>  
<font color="blue"> ''' // ARCHIVE HEADER ''' </font> <br>  
: uint16 {2}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(9)</font> '' </font> <br>  
: uint16 {2}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(4)</font> '' </font> <br>  
: uint16 {2}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(18)</font> '' </font> <br>  
: uint16 {2}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(10)</font> '' </font> <br>  
: uint32 {4}&nbsp;&nbsp; - Number Of Files in Directory 1 <br>  
: uint32 {4}&nbsp;&nbsp; - Number Of Files in Directory 1 <br>  
: uint32 {4}&nbsp;&nbsp; - Number Of Files in Directory 2 <br>  
: uint32 {4}&nbsp;&nbsp; - Number Of Files in Directory 2 <br>  
Line 18: Line 18:
<br>
<br>
<font color="blue"> ''' // DIRECTORY 1 ''' </font> <br>  
<font color="blue"> ''' // DIRECTORY 1 ''' </font> <br>  
: <font color="blue"> ''' // for each file in Directory 1 (108-bytes for each entry) ''' </font> <br>  
: <font color="blue"> ''' // for each file in Directory 1 (100-bytes for each entry) ''' </font> <br>  
:: uint16 {2}&nbsp;&nbsp; - File ID <br>  
:: uint16 {2}&nbsp;&nbsp; - File ID <br>  
:: uint16 {2}&nbsp;&nbsp; - <font color="red"> '' Group ID? '' </font> <br>  
:: uint16 {2}&nbsp;&nbsp; - <font color="red"> '' Group ID? '' </font> <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(1)</font> '' </font> <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(1)</font> '' </font> <br>  
:: uint32 {4}&nbsp;&nbsp; - File ID <font color="purple">(incremental from 0)</font> <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown '' </font> <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(usually null)</font> '' </font> <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(usually null)</font> '' </font> <br>  
:: uint16 {2}&nbsp;&nbsp; - null <br>  
:: uint16 {2}&nbsp;&nbsp; - null <br>  
Line 34: Line 34:
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown Boolean <font color="purple">(0/1)</font> <font color="purple">(same as previous "Unknown Boolean" field value)</font> '' </font> <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown Boolean <font color="purple">(0/1)</font> <font color="purple">(same as previous "Unknown Boolean" field value)</font> '' </font> <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown Boolean <font color="purple">(0/1)</font> <font color="purple">(same as previous "Unknown Boolean" field value)</font> '' </font> <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown Boolean <font color="purple">(0/1)</font> <font color="purple">(same as previous "Unknown Boolean" field value)</font> '' </font> <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(usually null)</font> '' </font> <br>
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple"></font> '' </font> <br>  
:: byte {12}&nbsp;&nbsp;&nbsp; - null <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(1)</font> '' </font> <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(1)</font> '' </font> <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple"></font> '' </font> <br>
:: byte {16}&nbsp;&nbsp;&nbsp; - null <br>  
:: byte {16}&nbsp;&nbsp;&nbsp; - null <br>  
<br>
<font color="blue"> ''' // DIRECTORY PADDING ''' </font> <br>
: uint16 {2}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(131)</font> '' </font> <br>
: uint16 {2}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(6)</font> '' </font> <br>
: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(1)</font> '' </font> <br>
<br>
<br>
<font color="blue"> ''' // DIRECTORY 2 ''' </font> <br>  
<font color="blue"> ''' // DIRECTORY 2 ''' </font> <br>  
: <font color="blue"> ''' // for each file in Directory 2 (132-bytes for each entry) ''' </font> <br>  
: <font color="blue"> ''' // for each file in Directory 2 (128-bytes for each entry) ''' </font> <br>
:: uint32 {4}&nbsp;&nbsp; - File Length <br>  
:: uint16 {2}&nbsp;&nbsp; - <font color="red"> '' Unknown '' </font> <br>
:: uint16 {2}&nbsp;&nbsp; - <font color="red"> '' Group ID? <font color="purple">(same as in first directory?)</font> '' </font> <br>
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Type identifier <font color="purple">(1-15)</font> '' </font> <br>
// if type is 1 (actual data) :<br>  
:: uint32 {4}&nbsp;&nbsp; - File Size <br>  
:: uint32 {4}&nbsp;&nbsp; - null <br>  
:: uint32 {4}&nbsp;&nbsp; - null <br>  
:: uint32 {4}&nbsp;&nbsp; - File Offset <font color="purple">(relative to the first file offset)</font> <br>  
:: uint32 {4}&nbsp;&nbsp; - File Offset <font color="purple">(relative to the first file offset)</font> <br>  
:: uint16 {2}&nbsp;&nbsp; - null <br>
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown '' </font> <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown '' </font> <br>  
:: byte {18}&nbsp;&nbsp;&nbsp; - null <br>
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown '' </font> <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(1)</font> '' </font> <br>  
:: byte {16}&nbsp;&nbsp;&nbsp; - null <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Decompressed File Size? '' </font> <br>  
:: uint32 {4}&nbsp;&nbsp; - File Size /2 </font> <br>  
:: uint32 {4}&nbsp;&nbsp; - File Size <br>  
:: uint32 {4}&nbsp;&nbsp; - File Size <br>  
:: uint64 {8}&nbsp;&nbsp; - null <br>  
:: uint64 {8}&nbsp;&nbsp; - null <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(16000)</font> '' </font> <br>  
:: uint32 {4}&nbsp;&nbsp; - Bitrate <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(32000)</font> '' </font> <br>  
:: uint32 {4}&nbsp;&nbsp; - Sample rate <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(16)</font> '' </font> <br>  
:: uint32 {2}&nbsp;&nbsp; - Bits <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(1)</font> '' </font> <br>
:: uint32 {2}&nbsp;&nbsp; - Channels <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(3)</font> '' </font> <br>  
:: uint32 {4}&nbsp;&nbsp; - File location (1 or 3) <br>  
:: char {40}&nbsp;&nbsp;&nbsp; - Filename <font color="purple">(null terminated)</font> <br>  
::<font color="BLUE"> if location is 1 :</font>&nbsp;&nbsp; char {40}&nbsp;&nbsp;&nbsp; - Filename<font color="purple">(null terminated)</font> <br>  
::<font color="BLUE"> if location is 3 :</font>&nbsp;&nbsp; char {40}&nbsp;&nbsp;&nbsp; - Filename of external source file containing data <font color="purple">(null terminated)</font> <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(1)</font> '' </font> <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(1)</font> '' </font> <br>  
:: uint32 {4}&nbsp;&nbsp; - Padding <font color="purple">(all 255's)</font> <br>  
:: uint32 {4}&nbsp;&nbsp; - Padding <font color="purple">(all 255's)</font> <br>  
:: uint16 {2}&nbsp;&nbsp; - <font color="red"> '' Unknown '' </font> <br>
:: uint16 {2}&nbsp;&nbsp; - <font color="red"> '' Group ID? <font color="purple">(same as in first directory)</font> '' </font> <br>
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(1)</font> '' </font> <br>
<br>
<br>
<font color="blue"> ''' // FILE DATA ''' </font> <br>  
<font color="blue"> ''' // UNKNOWN EXTRA DATA ''' </font> <br>
:: uint32(4)&nbsp;&nbsp; - <font color="red"> '' Unknown '' </font> <br>
::<font color="BLUE"> if previous value is not 0 :</font>&nbsp;&nbsp;char (X)&nbsp;&nbsp;&nbsp;&nbsp; - <font color="red"> '' Unknown '' </font> <br>
:: unit32(4)&nbsp;&nbsp; - Size of remaining data in file <br>
<br>
<font color="blue"> ''' // FILE DATA (if there is any local data) ''' </font> <br>  
: <font color="blue"> ''' // for each file in Directory 2 ''' </font> <br>  
: <font color="blue"> ''' // for each file in Directory 2 ''' </font> <br>  
:: char {X}&nbsp;&nbsp;&nbsp;&nbsp; - File Data <br>  
:: char {X}&nbsp;&nbsp;&nbsp;&nbsp; - File Data <br>  
Line 84: Line 85:


* [[Game Extractor|Game Extractor]]<br>
* [[Game Extractor|Game Extractor]]<br>
[[Category:File Format]]

Latest revision as of 13:04, 17 January 2021

SB0


Format Specifications

// ARCHIVE HEADER

uint16 {2}   - Unknown (4)
uint16 {2}   - Unknown (10)
uint32 {4}   - Number Of Files in Directory 1
uint32 {4}   - Number Of Files in Directory 2
uint32 {4}   - Unknown (1)
uint32 {4}   - null
byte {8}     - Padding (all 255's)


// DIRECTORY 1

// for each file in Directory 1 (100-bytes for each entry)
uint16 {2}   - File ID
uint16 {2}   - Group ID?
uint32 {4}   - Unknown (1)
uint32 {4}   - Unknown
uint32 {4}   - Unknown (usually null)
uint16 {2}   - null
uint32 {4}   - Unknown (1)
byte {6}     - null
byte {16}    - Unknown
uint64 {8}   - Type Code? (null terminated) (usually null)
uint32 {4}   - Unknown Boolean (0/1)
uint32 {4}   - Unknown Boolean (0/1) (same as previous field value)
uint32 {4}   - null
uint32 {4}   - Unknown Boolean (0/1) (same as previous "Unknown Boolean" field value)
uint32 {4}   - Unknown Boolean (0/1) (same as previous "Unknown Boolean" field value)
uint32 {4}   - Unknown
uint32 {4}   - Unknown (1)
uint32 {4}   - Unknown
byte {16}    - null


// DIRECTORY 2

// for each file in Directory 2 (128-bytes for each entry)
uint16 {2}   - Unknown
uint16 {2}   - Group ID? (same as in first directory?)
uint32 {4}   - Type identifier (1-15)

// if type is 1 (actual data) :

uint32 {4}   - File Size
uint32 {4}   - null
uint32 {4}   - File Offset (relative to the first file offset)
uint32 {4}   - Unknown
uint32 {4}   - Unknown
byte {16}    - null
uint32 {4}   - File Size /2
uint32 {4}   - File Size
uint64 {8}   - null
uint32 {4}   - Bitrate
uint32 {4}   - Sample rate
uint32 {2}   - Bits
uint32 {2}   - Channels
uint32 {4}   - File location (1 or 3)
if location is 1 :   char {40}    - Filename(null terminated)
if location is 3 :   char {40}    - Filename of external source file containing data (null terminated)
uint32 {4}   - Unknown (1)
uint32 {4}   - Padding (all 255's)


// UNKNOWN EXTRA DATA

uint32(4)   - Unknown
if previous value is not 0 :  char (X)     - Unknown
unit32(4)   - Size of remaining data in file


// FILE DATA (if there is any local data)

// for each file in Directory 2
char {X}     - File Data

MultiEx BMS

Not written yet

Notes and Comments

  • The number of files in both directories are the same

Supported Programs