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





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.