B.A.E. – Bethesda Archive Extractor v0.01
Before Anyone Else… there was Bethesda Archive Extractor.
NOTICE 2015/11/10 – 3:45AM
This was a very quick and dirty release. This is very much an alpha. Please make a bug report for any issues you have (please check the Known Issues).
The Texture BA2s are an optimized format. They do not hold complete DDS files but instead are optimized for streaming certain miplevels into the game. Additionally, they use texture formats which are DX10+ and which are not widely supported by DDS tools. This affects normal maps in particular, so for the time being normal maps will very likely be incorrect and loose normal files will very likely not work correctly.
To quote ianpatt (F4SE):
There are two types of ba2 archives: general, and texture. General archives can contain anything, while texture archives are optimized for storing textures. There is no significant size advantage when comparing the two, but texture archives store textures in a more intelligent way that is friendlier to the runtime texture streamer. When reading a DDS file, finding the lower resolution textures requires seeking to, and therefore decompressing most of the file. This is inefficient, because in most cases you will care about the lower resolution mips first, when the object is off in the distance. Texture archives store any mips higher than 256×256 in their own separate blocks, while the 256×256 and below are all in their own block.
Please note that the values in the DDS header are not present in the original texture archive, and were chosen for compatibility rather than accuracy. Color textures are accurate, but DXGI_FORMAT_BC5_UNORM (normal maps) and DXGI_FORMAT_BC7_UNORM are definitely wrong.
– Fallout4 – MeshesExtra.ba2 takes a very long time to open. Until I figure this out, please use the command line tool from F4SE.
– The listed filesize is the compressed size, not the uncompressed size.
ianpatt and behippo for helping with my understanding of the new formats.