FTEX (File Format)
Revision as of 11:38, 19 May 2017 by Aboood40091 (talk | contribs)
Under Construction
This article is not finished. Help improve it by adding accurate information or correcting grammar and spelling.
The FTEX texture format is a format for textures which appears as a subfile of a BFRES file. It appears in the 1:st index group in a BFRES file. Unless otherwise noted, all offsets in the file are relative to themselves.
Header (FTEX)
A FTEX file begins with an 0xC0 byte header that starts with the file identifier, followed by info about the image.
Offset | Size | Description |
---|---|---|
0x00 | 4 | "FTEX" File identifier, ASCII string. |
0x04 | 4 | Dimension. Indicates the "shape" of a given surface or texture (see line 849 here). |
0x08 | 4 | Texture Width. Width of the texture in pixels. |
0x0C | 4 | Texture Height. Height of the texture in pixels. |
0x10 | 4 | Depth. |
0x14 | 4 | Number of Mipmaps. |
0x18 | 4 | Texture Format. Go to line 589 on this page for explanation and format values. |
0x1C | 4 | AA Mode. Indicates the AA mode (number of samples) for the surface (see line 865 here). |
0x20 | 4 | Usage. Indicates how the given surface may be used (see line 823 here). |
0x24 | 4 | Data Length. Length of texture data in bytes. |
0x28 | 4 | Data Pointer? |
0x2C | 4 | Mipmaps Data Length. Length of mipmaps data in bytes. |
0x30 | 4 | Mipmaps Pointer? |
0x34 | 4 | Tile Mode. Indicates the desired tiling mode for the surface (see line 795 here). |
0x38 | 4 | Swizzle Value. |
0x3C | 4 | Alignment. Always 512 * bytes per pixel. |
0x40 | 4 | Pitch. |
0x44 | 0x0D | Mip Offset?. Offset for each mipmap? |
0x51 | 0x2B | Unknown. Mipmaps related? (Almost always 0 in textures with no mipmaps) |
0x7C | 4 | Number of Mipmaps. Again... |
0x80 | 4 | Unknown. Always 0. |
0x84 | 4 | Unknown. Always 1. |
0x88 | 4 | Unknown. |
0x8C | 0x1C | Unknown. |
0xA8 | 4 | Offset to the name of this file. |
0xAC | 4 | Offset to the end of the string table. |
0xB0 | 4 | Data Offset. Offset to the texture data. |
0xB4 | 4 | Mipmap Offset. Offset to the mipmap texture data. |
0xB8 | 4 | Offset to the user data. |
0xBC | 2 | Number of user data. |
0xBE | 2 | Unknown. |
0xC0 | End of FTEX header |
Image Data
The image and mipmap data is not present after the header. It comes after the BFRES string table instead. This seems to be a caching optimization, since the CPU generally don't need to handle the image data. Instead it is sent directly to the GPU.