GXT

From Vita Developer wiki
Revision as of 20:05, 21 August 2015 by ADA Love Lace (talk | contribs)
Jump to navigation Jump to search


Standard test image widely used

GXT is a file format (used on PS Vita and PSP) for storing textures. The purpose of this format is to use it in the runtime without any additional formatting of the data.

Features

  • Memory ready format
  • Supports multiple textures in one file
  • Supports compressed, swizzled, and linear texture layouts
  • Supports mipmaps
  • Suports palettized textures

File format

The GXT (.gxt) format consists of:

File Layout
GXT Header
GXT Specification Texture 1 info
GXT Specification Texture 2 info
...
Texture 1
Padding
Texture 2
...
Palette P4
Palette P8
  • For a single texture:
Offset (h) Size (h) Example (h) Value (conversion) Notes
GXT header
0x00 0x04 47 58 54 00 "GXT " Magic
0x04 0x04 03 00 00 10 3.01 Version
0x08 0x04 01 00 00 00 1 Number of textures embedded
0x0C 0x04 40 00 00 00 0x40 Offset of the texture data/ header size
0x10 0x04 00 00 02 00 0x20000 Total size of the Textures
0x14 0x04 00 00 00 00 0 Number of 16 entry palettes (P4)
0x18 0x04 00 00 00 00 0 Number of 256 entry palettes (P8)
0x1C 0x04 00 00 00 00 0 Padding
GXT specification per texture
0x20 0x04 40 00 00 00 0x40 Offset of the single texture data
0x24 0x04 00 00 02 00 0x20000 Size of the single texture data.
0x28 0x04 FF FF FF FF - Index of the palette
0x2C 0x04 00 00 00 00 - Texture flags/Not used?
0x30 0x04 00 00 00 00 - Texture Type
0x34 0x04 00 00 00 85 0x85000000 (DXT1) Texture Base Format
0x38 0x02 00 02 0x200 (512) Width
0x3A 0x02 00 02 0x200 (512) Height
0x3C 0x02 - - Mipmaps
0x3E 0x02 - - Not Used?/Padding

Texture type

Name Value (h) Description
Texture Type
SWIZZLED 0x00
CUBE 0x40
LINEAR 0x60
TILED 0x80
LINEAR STRIDED 0x0C

Texture Base Format

Name Value (h) Description
Texture Base Format
PVRT2BPP 0x80 PVR 2 bits per pixel mode
PVRT4BPP 0x81 PVR 4 bits per pixel mode
PVRTII2BPP 0x82 PVR II 2 bits per pixel mode
PVRTII4BPP 0x83 PVR II 4 bits per pixel mode
UBC1 0x85 DXT1 4 bits per pixel
UBC2 0x86 DXT3 8 bits per pixel
UBC3 0x87 DXT5 8 bits per pixel