Darkwatch PS2 PCK

From XentaxWiki
Jump to: navigation, search

PCK


Format Specifications

// FILE DATA

// for each file
byte {X}     - File Data


// DIRECTORY HEADER

uint32 {4}   - Number Of Files (including padding files and this 32-byte header) (64)
uint32 {4}   - Number Of Files
uint32 {4}   - Number Of Files (including padding files) (63)
byte {12}    - null
uint64 {8}   - Padding (all 205's)


// FILES DIRECTORY

// for each file
uint64 {8}   - Hash?
uint32 {4}   - File Offset
uint32 {4}   - File Length


// PADDING

// for all padding files
uint64 {8}   - null
uint64 {8}   - Padding (all 205's)


// FILENAME DIRECTORY

// for each file
uint32 {4}   - Hash?
uint32 {4}   - Filename Length
char {X}     - Filename


// ARCHIVE FOOTER

char {X}     - Timestamp String
byte {1}     - null Timestamp String Terminator
uint32 {4}   - Unknown
uint32 {4}   - Unknown
uint32 {4}   - Directory offset
uint32 {4}   - Unknown

MultiEx BMS

ImpType StandardTail ;
GoTo EOF 0 ;
SavePos END 0 ;
Math END -= 7 ;
GoTo END 0 ;
SavePos TailOffOff 0 ;
Get TailOffSet Long 0 ;
GoTo TailOffSet 0 ;
Get DIREntries Long 0 ;
Get FileNum Long 0 ;
Get U1 Long 0 ;
Get U2 Long 0 ;
SavePos FNOffset 0 ;
Math DIREntries *= 16 ;
Math FNOffset += DIREntries ;
Set C Long 0 ;
Do ;
Get U4 Long 0 ;
Get U5 Long 0 ;
SavePos FOO 0 ;
Get FO Long 0 ;
SavePos FSO 0 ;
Get FS Long 0 ;
SavePos FP 0 ;
If U5 <> 0 ;
GoTo FNOffset 0 ;
Get U6 Long 0 ;
Get NameSize Long 0 ;
GetDString FName NameSize 0 ;
SavePos FNOffset 0 ;
Math C += 1 ;
Log FName FO FS FOO FSO ;
GoTo FP 0 ;
EndIf ;
While C < FileNum ;


Notes and Comments

None

Supported Programs