-
Notifications
You must be signed in to change notification settings - Fork 0
CHK XTX
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.
.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.
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
4b: offset to the texture header
4b: offset to the resource collection 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.
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
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
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
4b: unknown, 0
4b: unknown
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
Information will be added later.
Information will be added later.
See the DirectDraw Surface format.
File formats:
.anim
.at3
.cam
.chk/.xtx
.col2
.cut
.dtz
.ifp
.img/.dir
.irx
.gxt
.lvz
.mdl
.pss
.raw/.sdt
.scm
.vb
.wrld