Evilzone DPAC Archive (.pac)
Posted: Fri Oct 15, 2010 10:32 am
It was a long night, so I came about learning how to open the Yukes DPAC Files.
First of all, the main header:
My theory is that either the UNK variable is actually the offset to the Directory Listing by multiplying it by 0x8, or, strange enough, the signature is actually null-terminated and the UNK is actually a 24-byte offset by multiplying it by 0x800.
Next is the directory listing, which, simply put, consists of this
Next, is the actual directory, which consist of
This one could be either long or short, and the other 2 bytes mean nothing
Immediately following it is the entry group, which is 8 bytes, and consists of
short EntryNum //An ID of sorts. usually subsequent starting from 0
uint24_t Offset //The offset from the beginning of the data where the file is located
uint24_t Size //The size of the file.
Keep in mind that files are not immediately following the next. There may be zero padding in the case of PACs within PACs
First of all, the main header:
Code: Select all
char signature[4] //DPAC
long Offset? //Always 0x100
long NumDList //The number of entries this file has
long DListSiz //The size of the directory list that is being used. Always NumDList*0x10
long DirSize //The total size of data the directory holds
long NumDListBlk //The total number of possible directories by multiplying it by 0x800
Next is the directory listing, which, simply put, consists of this
Code: Select all
char label[12] //The directory label
short Offset //The offset of the directory by multiplying it by 0x800.
short size //The size of the directory by multiplying it by 0x800.
Code: Select all
char signature[4] // PAC/20
long NumEntries // Theory #2
Immediately following it is the entry group, which is 8 bytes, and consists of
short EntryNum //An ID of sorts. usually subsequent starting from 0
uint24_t Offset //The offset from the beginning of the data where the file is located
uint24_t Size //The size of the file.
Keep in mind that files are not immediately following the next. There may be zero padding in the case of PACs within PACs