TXS3 - TextureSet3
Applies to: GT5, GTPSP, GT6, GT Sport, GT7 · Extension: .img
, .txs
, .tex
, none · Endian: Platform Dependent
TXS3 is an evolution of the Tex1
format that GT3 and GT4 uses. It now allows being linked to a "streaming" texture file, which holds compressed textures to be streamed - mostly used for courses.
Converting from/to TXS3
Refer to Image Editing .
The header may be present in all sorts of files like models.
Note that the header varies between PS3-era Gran Turismos and PS4-era, pointers are 64 bit instead of 32 bit.
Size: 0x40
Field
Offset
Type
Description
TXS3
or 3SXT
0x00
Int
Magic, (Enforced, cannot be different), depends on endian (Little will be 3SXT
)
File Size
0x04
Int
File Size
Relocation Pointer
0x08
Int
Relocation Pointer
Unknown
0x0C
Int
N/A
Unknown
0x10
Int
Sometimes 1
PGLUTextureInfo Count
0x14
short
Number of platform-specific texture parameters.
Image Info Count
0x16
short
Number of image infos.
PGLUTextureInfo Pointer
0x18
PGLUTextureInfo*
Offset to platform-specific texture parameters.
Image Info Count
0x1C
ImageInfo*
Offset to image infos.
Padding
0x20
byte[0x20]
N/A
PGLUTextureInfo
This depends on the platform. These are normally direct platform texture registers/parameters.
PS3 (Cell)
All of the following macros take up 1 Int
.
Field
Bits
Description
num
0-13
Number
method
14-31
Method
CELL_GCM_METHOD_DATA_TEXTURE_OFFSET
Field
Bits
Description
offset
0-31
Offset
CELL_GCM_METHOD_DATA_TEXTURE_BORDER_FORMAT
Field
Bits
Description
pad
0-7
N/A
mipmap
8-15
N/A
format
16-23
N/A
dimension
24-27
CELL_GCM_TEXTURE_DIMENSION
border
28
CELL_GCM_TEXTURE_BORDER
cubemap
29
CELL_CGM_BOOL
location
30-31
CELL_GCM_LOCATION
CELL_GCM_METHOD_DATA_TEXTURE_ADDRESS
Field
Bits
Description
zfunc
0-3
CELL_GCM_TEXTURE_ZFUNC_NEVER
gamma
4-11
N/A
wrap_r
12-15
CELL_GCM_TEXTURE_WRAP
unsignedRemap
16-19
CELL_GCM_TEXTURE_UNSIGNED_REMAP
wrap_t
20-23
CELL_GCM_TEXTURE_WRAP
anisoBias
24-27
N/A
wrap_s
28-31
CELL_GCM_TEXTURE_WRAP
CELL_GCM_METHOD_DATA_TEXTURE_CONTROL0_ALPHA_KILL
Field
Bits
Description
enable
0
CELL_GCM_FALSE
minlod
1-12
N/A
minlod
13-24
N/A
maxAniso
25-27
CELL_GCM_TEXTURE_MAX_ANIS
pad
28
N/A
alphakill
29
CELL_GCM_FALSE
pad
30-31
N/A
CELL_GCM_METHOD_DATA_TEXTURE_CONTROL1
Field
Bits
Description
pad
0-14
N/A
remapOrder
15
CELL_GCM_TEXTURE_REMAP_ORDER
OutB
16-17
CELL_GCM_TEXTURE_REMAP
OutG
18-19
CELL_GCM_TEXTURE_REMAP
OutR
20-21
CELL_GCM_TEXTURE_REMAP
OutA
22-23
CELL_GCM_TEXTURE_REMAP
InB
24-25
CELL_GCM_TEXTURE_REMAP
InG
26-27
CELL_GCM_TEXTURE_REMAP
InR
28-29
CELL_GCM_TEXTURE_REMAP
InA
30-31
CELL_GCM_TEXTURE_REMAP
CELL_GCM_METHOD_DATA_TEXTURE_CONTROL1
Field
Bits
Description
bs
0
CELL_GCM_FALSE
gs
1
CELL_GCM_FALSE
rs
2
CELL_GCM_FALSE
qs
3
CELL_GCM_FALSE
mag
4-7
CELL_GCM_TEXTURE_MAG
mag
8-11
CELL_GCM_TEXTURE_MIN
convultion
12-14
CELL_GCM_TEXTURE_CONVOLUTION
bias
15-27
N/A
CELL_GCM_METHOD_DATA_TEXTURE_IMAGE_RECT
Field
Bits
Description
width
0-15
N/A
height
16-31
N/A
CELL_GCM_METHOD_DATA_TEXTURE_BORDER_COLOR
Field
Bits
Description
borderColor
0-31
N/A
Field
Bits
Description
num
0-13
Number
method
14-31
Method
CELL_GCM_METHOD_DATA_TEXTURE_IMAGE_RECT
Field
Bits
Description
depth
0-11
N/A
pitch
12-31
N/A
Field
Bits
Description
0x2D
0-23
0x2D
aniso
24
CELL_GCM_TEXTURE_ANISO
iso
25
CELL_GCM_TEXTURE_ANISO
slope
26-31
N/A
Remaining Values
Field
Type
Description
Unknown
Int
?
Unknown ID
UInt
?
Texture ID
UInt
Image ID. Used for models.
Texture Name Pointer
char*
Not used, optional. Just debug info.
Image Info
Size: 0x20
Field
Offset
Type
Description
Image Data Pointer
0x00
void*
Pointer to the image data. This is empty if the data is from a side streamed file.
Image Data Size
0x04
void*
Image data size. This is empty if the data is from a side streamed file.
Unknown
0x08
byte
?
Image Format
0x09
ImageFormat
Format of the image.
Mipmap Count
0x0A
byte
Number of mipmaps
Unknown
0x0B
byte
?
Image Width
0x0C
ushort
Image Width.
Image Height
0x0E
ushort
Image Height.
Unknown
0x10
ushort
Sometimes 1.
Unknown
0x12
ushort
?
Pad
0x14
int
N/A
Stream Info
0x18
TextureStreamInfo*
Pointer to streamed image information. Optional.
Pad
0x1C
int
N/A
Texture Stream Info
These represent a texture in a streamed file, which may host multiple mipmaps for each texture. They are compressed using the inflate algorithm.
Example
sky/sky.tex
streams textures from sky/sky.texstream
. Course file packs may also link to a .texstream
file.
Field
Offset
Type
Description
Texture Stream Mipmap Info Pointer
0x00
TextureStreamMipmapInfo*
Pointer to the image data. This is empty if the data is from a side streamed file.
Texture Stream Mipmap Info Count
0x04
Int
Image data size. This is empty if the data is from a side streamed file.
Unknown
0x08
Int
?
Total Uncompressed Size
0x0C
Int
Uncompressed data for this texture and its mipmaps
Unknown
0x12
ushort
Sometimes 1
Width
0x12
ushort
Width of the texture
Height
0x14
ushort
Height of the texture
Unknown
0x16
ushort
Sometimes 1.
Pad
0x18
byte[0x08]
N/A
Texture Stream Mipmap Info
Size: 0x10
Field
Offset
Type
Description
Unknown
0x00
Int
?
Stream Offset
0x04
Int
Offset of the data in the compressed stream .texstream
.
Compressed Size
0x08
Int
Compressed size of the image in the compressed stream
Uncompressed size
0x0C
Int
Uncompressed size of the image in the compressed stream
Last update:
September 22, 2023
Created:
September 22, 2023