texHeaders.bin File Format
Jump to navigation
Jump to search
intro
TextHeader.bin is created by Binpbo personal edition 2.5 and greater. It is placed in the primary folder of the addon.pbo, and comprises of information from all pax files encountered in that addon from all it's possible data trees.
Conventions
see Generic FileFormat Data Types
File Structure
struct TexHeader.bin { MimeType "0DHT" ; // NOT asciiz. '0' = 0x30. This is mimetype "TexHeaDer0" ulong version; // 1 ulong nTextures; // TexBody TexBodies[nTextures]; };
TexBody
TexBody { ulong Always1; ulong Always0; floats AverageColor[r,g,b,a];//AVGCTAGG floating-point equivalent. Note that order is different bytes AverageColor[b,g,r,a];//AVGCTAGG in PAx file bytes MaxColor[b,g,r,a]; //MAXCTAGG in PAx file ulong Always0; ulong AlwaysDefault; // 0xFFFFFFFF ulong FlagBytes; // 01 01 00 10 typical ulong SameCount; // always == nMipmaps ulong TextureType; // see below byte Always1; byte Always1; Asciiz *PaaFile; //"data\icons\m4a3_cco_ca.paa" //"fnfal\data\fnfal_smdi.paa" ulong Flag; ulong nMipmaps; MipMap MipMaps[nMipmaps]; ushort SomeShort ushort AnotherShort; };
- BIS have finally learned to use relative file addressing. This might be the precursor to a better future where we leave oops modelling nightmares behind.
Texture Type
values seen
- 0 GREY
- 4 RGB4
- 6 DXT1
- 10 DXT5
this value is repeated in each mipmap
Color float
anyfloat= anybyte/255.0;
mipmap
MipMap { ushort width,ushort height; //as per same mipmap in the pax ushort Always0; byte Always3; byte TextureType; //same value as above ulong dataOffset; //OFFSTAGG in PAx file. position of mipmap data in pax file };