TimeSplitters+Future+Perfect

This is the third game in the TimeSplitters series. It is a FPS.

The regular character meshes are in the chr.PAK file. Lower detailed meshes are in the chrlores.PAK file with every mesh in the game having both versions.

There are about 365 meshes in the PAL (Europe) version of the game. Each mesh is either Type 1 which uses 16byte signed integers and no floating points or Type 2 which uses only floating points and no 16byte signed integers. Only about 5 of the 365 meshes in the chr.pak file are Type 2 meshes. The format for Type 2 format meshes is as follows:

04 04 00 01 00 80 01 6C XX 80 00 00 00 40 2E 30 12 04 00 00 00 00 00 00 08 80 XX 6C {4ByteFloatVertexes+ unknownbyte+ 1byteCONN+ 16BITFloatWeight} 98 80 XX 6C {4ByteFloatNormalMaps+4byteWeight} 50 80 XX 68 {4ByteFloatUVCords+4ByteFloatWeight} 07 C0 01 64 00 00 00 00 [ ?? ?? ] 00 00 [6B 06] 00 14 (Zero PADDING)

Where XX is the number of vertexes in the submesh and [?? ??] can be either [22 01] or [70 02]

The format for Type 1 format meshes is as follows:

04 04 00 01 00 80 01 6C XX 80 00 00 00 40 2E 30 12 04 00 00 00 00 00 00 08 80 XX 6D {16BITSignedVertexes+2ByteCONN} 60 80 XX 6E {1ByteNormalMaps+7F} 34 80 XX 75 {2ByteUVCords} 07 C0 01 64 00 00 00 00 [?? ??] 00 00 [C9 05] 00 14 (Zero PADDING)

Where XX is the number of vertexes in the submesh and [?? ??] can be either [FB 00] or [6E 06]

(Zero PADDING) are strings of 00 that are either 4bytes, 8bytes, or 12bytes in size They may also not be present (size 0). The purpose of padding is to make the game faster to load by having each submesh begin only on certain multiples of 8 and 16.