TimeSplitters

Most of the games data is in the PAK files.

Format of PAK files: Header: P4CK (50 34 43 4B in Hexadecimal) 4ByteOffsetToFileIndex 4ByteOffsetSizeofFileIndex

FileIndex Format: {48ByteFileName(limited to 48 bytes maximum, otherwise the unused bytes after the name are padded to be zero's), 4ByteFileOffsetStart, 4ByteSizeofFile, 4ByteUnknown}

List of File extensions in PAK files: .dat .ico .qpm .raw .vag

Format of .raw files found in OB.PAK and BG.PAK: Header: 4ByteUnknown(sometimes 10 00 00 00) 4ByteTerminatesSection#1 4ByteTerminatesSection#2 4ByteUnknown

Format of Section#1: {4ByteUnknown#1,4ByteUnknown#2(appears to be only 01 00 00 00 or 00 00 00 00, 4ByteUnknown#3(appears to be only 01 00 00 00 or 00 00 00 00, 4ByteUnknown#4} Section#1 is Terminated when 4ByteUnknown#1= FF FF FF FF

Format of Section#2: This section consists of 44ByteArrays that each correspond to a SubLevel. They have the following format: {4ByteOffsetToSubLevelStart, 4ByteOffset:Meta#1, 4ByteOffset:Meta#2, 4ByteOffset:Meta#3, 4ByteOffset:Meta#4, 4ByteFloatingPointCoord#1(X,Y,Z), 4ByteFloatingPointCoord#2(X,Y,Z)} Section#2 is Terminated when 4ByteOffsetToSubLevelStart= 00 00 00 00

Format of Section#3 This section consists of 4Byte Offsets: {4ByteOffsets} Section#3 is Terminated when (not counting the first offset which is always 00 00 00 00) an offset equals 00 00 00 00

Meta#1 Format: "NumberofIntegers" {4ByteIntegers}