IPAK Files: Difference between revisions
Red-EyeX32 (talk | contribs) |
Aerosoul94 (talk | contribs) No edit summary |
||
| (10 intermediate revisions by 3 users not shown) | |||
| Line 4: | Line 4: | ||
== Structure == | == Structure == | ||
<syntaxhighlight lang="cpp"> | |||
struct IPakHeader | |||
{ | |||
unsigned int magic; | |||
unsigned int version; | |||
unsigned int size; | |||
unsigned int sectionCount; | |||
}; | |||
struct IPakSection | |||
{ | |||
unsigned int type; //enum 0x1 = info, 0x2 = data | |||
unsigned int offset; | |||
unsigned int size; | |||
unsigned int itemCount; | |||
}; | |||
struct IPakIndexEntry | |||
{ | |||
unsigned __int64 key; | |||
unsigned int offset; | |||
unsigned int size; | |||
}; | |||
struct IPakDataChunkHeader | |||
{ | |||
unsigned int countAndOffset; // 24 bits = offset, 8 bits = count | |||
unsigned int commands[31]; //(depending on endian) blockSize = (info & 0xFFFF); , compressedFlag = info >> 24; | |||
}; | |||
</syntaxhighlight> | |||
== Decompression Methods == | == Decompression Methods == | ||
The compression method is just the basic LZO1X compression. | The compression method is just the basic LZO1X compression. | ||
PC: | PC: | ||
Latest revision as of 01:20, 4 July 2015
IPAK's, implemented in Black Ops 2, are basically an archive of compressed image data.
Structure
struct IPakHeader
{
unsigned int magic;
unsigned int version;
unsigned int size;
unsigned int sectionCount;
};
struct IPakSection
{
unsigned int type; //enum 0x1 = info, 0x2 = data
unsigned int offset;
unsigned int size;
unsigned int itemCount;
};
struct IPakIndexEntry
{
unsigned __int64 key;
unsigned int offset;
unsigned int size;
};
struct IPakDataChunkHeader
{
unsigned int countAndOffset; // 24 bits = offset, 8 bits = count
unsigned int commands[31]; //(depending on endian) blockSize = (info & 0xFFFF); , compressedFlag = info >> 24;
};Decompression Methods
The compression method is just the basic LZO1X compression.
PC:
http://pastebin.com/vd9t2U2B
PS3:
1.00 t6mp_ps3f.self - 0x6AEA78
XBOX:
tu9 default_mp.xex - 0x828E5090 tu13 default_mp.xex - 0x828E6308