by Ian Patterson (ianpatt+f4se [at] gmail [dot] com)
These are some assorted command line tools for Fallout 4 that I think might be u seful for other people. As more things are written I'll package and upload them. [ ba2extract ] Extracts files from a .ba2 archive. Repacking is not supported, but there is eno ugh information in the source code to write a repacker. I think the engine actua lly might still have some .bsa support in it, but this is untested. There are two types of ba2 archives: general, and texture. General archives can contain anything, while texture archives are optimized for storing textures. The re 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 text ure streamer. When reading a DDS file, finding the lower resolution textures req uires seeking to, and therefore decompressing most of the file. This is ineffici ent, 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 t han 256x256 in their own separate blocks, while the 256x256 and below are all in their own block. Please note that the values in the DDS header are not present in the original te xture archive, and were chosen for compatibility rather than accuracy. Color tex tures are accurate, but DXGI_FORMAT_BC5_UNORM (normal maps) and DXGI_FORMAT_BC7_ UNORM are definitely wrong. Add the -atifourcc command line option to use the AT I2 format in the DDS header for normal maps, giving you a file that you can open in nvidia's photoshop dds plugin. I have not tested if these files will work in the game - the game expects a DX10-style header with DXGI_FORMAT_BC5_UNORM expl icitly specified. [ scriptdump ] An updated version of Skyrim's scriptdump with support for the new opcodes and f eatures added in Papyrus 3.9. Mostly intended as a code reference rather than a useful tool unless you enjoy reading huge non-user-friendly disassemblies. Version history: 0001: initial release 0002: optionally use ATI2 fourcc code for DXGI_FORMAT_BC5_UNORM (more accurate b ut less compatible) 0003: add scriptdump, fix swapped width/height on textures Quick licensing info: Anything deriving from this must also have its source available, and may not be used for profit in any way. Redistribution is not allowed. Learn, don't copy. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI ED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYR IGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WIT H THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.