IPAK Files

From COD Engine Research
Jump to: navigation, search

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