Skip to content

CHK XTX

Chris edited this page Jun 16, 2026 · 1 revision

CHK, XTX, and TEX are texture/archive formats used to store game graphics in GTA Liberty City Stories, GTA Vice City Stories, and Manhunt 2.

They are collections of resource containers. The containers themselves are platform-independent, but the raster graphics inside them are platform-specific. In other words, the texture data differs between PSP, PS2, Wii, and PC/Windows.

For LCS/VCS textures, the commonly used tool is GTA Stories Texture Viewer by Aru. For Manhunt 2 textures, the commonly used tool is Manhunt 2 TEX Workshop by Majestic.

Contents

  1. General information
  2. Structure
    1. Resource collection header
    2. Resource container header
    3. Texture header, PSP LCS
      1. CHK
      2. WRLD
    4. Texture header, PS2 LCS/VCS
    5. Texture header, PSP VCS
    6. Texture header, PS2 VCS
    7. Texture header, PC Manhunt 2

General information

.CHK, .XTX, and .TEX are formats used for storing game graphics in GTA LCS, GTA VCS, and Manhunt 2.

They are collections of containers. The containers are platform-independent, but the raster graphics stored inside them use the texture format of the target platform. Because of that, PSP, PS2, Wii, and PC/Windows textures each have their own raster layout.

For reading textures from LCS/VCS, GTA Stories Texture Viewer by Aru is widely used. For Manhunt 2 textures, Manhunt 2 TEX Workshop by Majestic is widely used.

Structure

Resource collection header

0x00  4b: signature:
          "xet"  for LCS/VCS
          "TCDT" for Manhunt 2

0x04  4b: 0 for LCS/VCS
          1 for Manhunt 2

0x08  4b: collection size

0x0C  4b: address of the beginning of the global section.
          This is the address table for all subsections in the CHK.

0x10  4b: address of the beginning of the global section, repeated

0x14  4b: number of offsets in the global section

0x20  1b: always 6 for LCS/VCS
          number of containers in the collection for Manhunt 2

0x21  3b: texture collection flags

0x24  4b: 0 for LCS/VCS
          offset to the offset of the first container for Manhunt 2

0x28  4b: offset to the offset of the first container for LCS/VCS
          offset to the offset of the last container for Manhunt 2

0x2C  4b: offset to the offset of the last container for LCS/VCS

Resource container header

LCS/VCS-only part

4b: offset to the texture header
4b: offset to the resource collection header

Common part of the header

4b: offset to the offset of the previous container
4b: offset to the offset of the next container
64b: texture name.
     The name is stored up to the null byte. Garbage data may be present after it.

Manhunt 2-only part

4b: texture length
4b: texture width
4b: texture bit depth
4b: unknown
4b: 8
2b: number of mipmap levels
2b: unknown

4b: offset to the texture header in the PC version of Manhunt 2
    offset to the texture raster in the PS2 version of Manhunt 2

4b: unknown in the PC version of Manhunt 2
    offset to the texture palette in the PS2 version of Manhunt 2

Texture header, PSP LCS

CHK

Header size: 16 bytes.

4b: unknown, 0
4b: offset to raster
2b: raster width used for swizzling.
    For a 4-bit texture, this equals half of the raster width.
1b: raster width, as a power of two
1b: raster height, as a power of two
1b: BPP
1b: number of mipmaps, including the main texture
2b: unknown, 0x4504

WRLD

Header size: 8 bytes.

16bit: padding, 0xAAAA

4bit: raster width, as a power of two
4bit: raster height, as a power of two
4bit: number of mipmaps, excluding the main texture
4bit: BPP

4b: offset to raster

Texture header, PS2 LCS/VCS

VCS-only part

4b: unknown, 0
4b: unknown

Common part of the header

4b: offset to raster

8bit: swizzling usage flag.
      Swizzling is enabled if this flag is greater than 0.

4bit: number of mipmaps, including the main texture
2bit: unknown
6bit: BPP
6bit: width, as a power of two
6bit: height, as a power of two

Texture header, PSP VCS

Information will be added later.

Texture header, PS2 VCS

Information will be added later.

Texture header, PC Manhunt 2

See the DirectDraw Surface format.

Related GTA Stories formats

File formats:

.anim
.at3
.cam
.chk/.xtx
.col2
.cut
.dtz
.ifp
.img/.dir
.irx
.gxt
.lvz
.mdl
.pss
.raw/.sdt
.scm
.vb
.wrld

Clone this wiki locally