Darkwatch PS2 PCK: Difference between revisions
Jump to navigation
Jump to search
imported>Mr.Mouse m (→MultiEx BMS) |
imported>Mr.Mouse m (→MultiEx BMS) |
(No difference)
| |
Revision as of 12:03, 31 December 2005
PCK
- Format Type : Archive
- Endian Order : Little Endian
Format Specifications
// FILE DATA
- // for each file
- byte {X} - File Data
- 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
- uint64 {8} - Hash?
// PADDING
- // for all padding files
- uint64 {8} - null
- uint64 {8} - Padding (all 205's)
- uint64 {8} - null
// FILENAME DIRECTORY
- // for each file
- uint32 {4} - Hash?
- uint32 {4} - Filename Length
- char {X} - Filename
- uint32 {4} - Hash?
// 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