FTEX (File Format)
Revision as of 07:45, 8 April 2017 by Aboood40091 (talk | contribs)
Under Construction
This article is not finished. Help improve it by adding accurate information or correcting grammar and spelling. Please do not add speculation here.
The FTEX texture format is a format for textures which appears as a subfile of a BFRES file.
Header (FTEX)
Every FTEX file begins with an 0xC0 byte FTEX 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. (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. Always 0x00010203. (Is this some kind of a pattern? 00->01->02->03) |
0x8C | 0X24 | Unknown. |
0xB0 | 4 | Data Offset. Offset to the texture data. Relative to this field. |
0xB4 | 4 | Mipmap Offset. Offset to the mipmap texture data. Relative to this field. 0 if not present. |
0xB8 | 8 | unknown |
0xC0 | End of FTEX header |
Incomplete header documentation. Last 8 words (32 bytes) seem to change per file. Offset 160 (dec) from FTEX header always seems to be zero, followed by a single byte (value of 1), 3 padding bytes, then a relative offset to the string table, then a relative offset to UnknownDataA, a relative offset to UnknownDataB, a relative offset to unknown DataC, and then two more unknowns (usually zero).