FTEX (File Format)
Jump to navigation
Jump to search
Under Construction
This article is not finished. Help improve it by adding accurate information or correcting grammar and spelling.
The FTEX (caFe TEXture) 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)
An FTEX file begins with an 0xC0 byte header that starts with the file identifier, followed by info about the texture and mipmaps.
Offset | Size | Description |
---|---|---|
0x00 | 4 | File magic. Always FTEX in ASCII. |
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 | 0x34 | Mipmap Offsets. An array of apparently 13 offsets for each mipmap. |
0x78 | 4 | First Mipmap. |
0x7C | 4 | Number of Mipmaps (again). |
0x80 | 4 | First Slice. Always 0. |
0x84 | 4 | Number of Slices. Always 1. |
0x88 | 4 | GX2CompSel. |
0x8C | 0x14 | Texture Registers, array of apparently 5 unsigned integers with unknown purpose. |
0xA0 | 4 | Texture handle, filled at runtime. |
0xA4 | 4 | Array length |
0xA8 | 4 | File name offset. |
0xAC | 4 | End of BFRES string table offset. Points to just after the last string in the string table. Originally pointed to a string being the file path of the file the FTEX data was created from, which has been removed in the released game. |
0xB0 | 4 | Data Offset. Offset to the texture data. |
0xB4 | 4 | Mipmap Offset. Offset to the mipmap texture data. |
0xB8 | 4 | User data index group offset. |
0xBC | 2 | User data entry count. |
0xBE | 2 | Padding. |
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.