IPAK Files

From COD Engine Research
Revision as of 19:32, 20 December 2014 by Kokole (talk | contribs) (→‎Structure)

IPAK's, implemented in Black Ops 2, are basically an archive of compressed image data.

Structure

Thanks to kokole for the 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