texHeaders.bin File Format

From Bohemia Interactive Community
Revision as of 18:56, 9 May 2011 by T D (talk | contribs) (texHeaders.bin File Format (ArmA3) moved to texHeaders.bin File Format: there is no ArmA3 (yet))
Jump to navigation Jump to search
struct TexHeader.bin
{
 MimeType "0DHT" ;    // NOT asciiz. '0' = 0x30. This is mimetype "TexHeaDer0"
 ulong    version;    // 1
 ulong    nTextures; //ce 01 00 00 
 TexBody  TexBodies[nTextures];
};


TexBody
{
 TexBegin TexBegin;
 Asciiz   *PaaFile;//"data\icons\m4a3_cco_ca.paa"
                   //"fnfal\data\fnfal_smdi.paa"
 TexEnd   TexEnd;
};
  • Either BIS have finally learned to use relative file addressing (unlikely), or, more inconsistency for us

where the root is presumed to be \CA\ (or anything else they arbitrarily decide to use).

  • It looks like yet-another rule break with lack of ofpec_tags in front of pbo model names, but, it's their game, they can destroy it any way they want to.
TexBegin
{
 ulong          Always1;
 ulong          Always0;
 bgraDecimal    AverageColorDecimal; //AVGCTAGG in PAA (reversed argb format) floating-point equivalent of AverageColorHex;
 bgraHex        AverageColorHex; //AVGCTAGG in PAA file (reversed argb format)
 bgraHex        MaxColorHex; //MAXCTAGG in PAA file
 ulong          Always0;
 ulong          AlwaysDefault;//0xFFFFFFFF
 ulong          FlagBytes;    // 01 01 00 10 typical
 ulong          SameCount;    // see note
 ulong          TextureType; // 6 = DXT1, 10 = DXT5
 byte           Always1;
 byte           Always1;
};
TexEnd
{
 ulong      Flag;
 ulong      nMipmaps;
 MipMap     MipMaps[nMipmaps];
 ushort     SomeShort
 ushort     AnotherShort;
};
  • SameCount always == nMipmaps
MipMap
{
 ushort width;//typical 0040,0200
 ushort height;//typical 0020,0100
 ushort Always0;
 ushort value3;//generally 0x030a
 ulong  dataOffset; //position of mipmap data in paa file
};


bgraHex
{
  byte blue, green, red, alpha;
};
bgraDecimal
{
  float blue, green, red, alpha;
};