Skip to content

Read BSA files in TES4 / TES5 formats

Adam Fandrejewski requested to merge Azdul/openmw:tes4_bsa into master

I've ported cc9cii BSA changes from https://github.com/OpenMW/openmw/pull/1955/ to current version of OpenMW. There is no impact on Morrowind BSA reading code - the code is only executed if previous BSA reader would reject the file because of unknown header. Linux and Windows builds passed successfully. I've tested the solution on various BSAs from Oblivion, Oblivion mods and Skyrim. I've run new compilation of OpenMW with few mods and started new Morrowind game - no issues found.

The cc9cii changes concerning Nif, ESM and ESP changes were not ported yet.

I had to use library that deals with zip compressed data structures, so I've decided to use boost, as boost is already used in the engine.

It is my first pull request in OpenMW - so please let me know about everything that does not seem right about it.

I wanted to make sure that cc9cii hard work on supporting later file formats does not get lost as OpenMW engine code evolves.

Support for new BSA formats will be useful for:

  • modders that use OpenCS to adapt TES4 / TES5 mods for OpenMW
  • anyone with limited hard drive space, as BSA in new format are compressed, and TES3 BSA are not
  • anyone implementing support for another compressed data format
  • developers that want to add new features, like SpeedTree equivalent
  • performance tests of OpenMw with huge asset libraries
  • eventual support for later TES games, probably few years down the road
Edited by Adam Fandrejewski

Merge request reports