Darkwatch PS2 PCK: Difference between revisions
Jump to navigation
Jump to search
imported>WATTO No edit summary |
imported>Ikskoks No edit summary |
||
| (16 intermediate revisions by 5 users not shown) | |||
| Line 41: | Line 41: | ||
: uint32 {4} - <font color="red"> '' Unknown '' </font> <br> | : uint32 {4} - <font color="red"> '' Unknown '' </font> <br> | ||
: uint32 {4} - <font color="red"> '' Unknown '' </font> <br> | : uint32 {4} - <font color="red"> '' Unknown '' </font> <br> | ||
: uint32 {4} - Directory offset <br> | |||
: uint32 {4} - <font color="red"> '' Unknown '' </font> <br> | : uint32 {4} - <font color="red"> '' Unknown '' </font> <br> | ||
</b></tt> | </b></tt> | ||
| Line 48: | Line 48: | ||
=== MultiEx BMS === | === MultiEx BMS === | ||
<pre>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 ;</pre><br><br> | |||
=== Notes and Comments === | === Notes and Comments === | ||
None | |||
=== Supported Programs === | === Supported Programs === | ||
* | * [[MultiEx Commander|MultiEx Commander]] | ||
[[Category:File Format]] | |||
Latest revision as of 15:13, 3 January 2021
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