diff --git a/components/bsa/ba2dx10file.cpp b/components/bsa/ba2dx10file.cpp index af49c277ad..945e8dd931 100644 --- a/components/bsa/ba2dx10file.cpp +++ b/components/bsa/ba2dx10file.cpp @@ -112,11 +112,16 @@ namespace Bsa if (header[0] == 0x00415342) /*"BSA\x00"*/ fail("Unrecognized compressed BSA format"); mVersion = header[1]; - if (mVersion != 0x01 /*F04*/) + if (mVersion != 0x01 /*FO4*/ && mVersion != 0x02 /*Starfield*/) fail("Unrecognized compressed BSA version"); type = header[2]; fileCount = header[3]; + if (mVersion == 0x02) + { + uint64_t dummy; + input.read(reinterpret_cast(&dummy), 8); + } } if (type == ESM::fourCC("DX10")) diff --git a/components/bsa/ba2gnrlfile.cpp b/components/bsa/ba2gnrlfile.cpp index bdb0457034..f3961a3bc4 100644 --- a/components/bsa/ba2gnrlfile.cpp +++ b/components/bsa/ba2gnrlfile.cpp @@ -107,11 +107,16 @@ namespace Bsa if (header[0] == 0x00415342) /*"BSA\x00"*/ fail("Unrecognized compressed BSA format"); mVersion = header[1]; - if (mVersion != 0x01 /*FO4*/) + if (mVersion != 0x01 /*FO4*/ && mVersion != 0x02 /*Starfield*/) fail("Unrecognized compressed BSA version"); type = header[2]; fileCount = header[3]; + if (mVersion == 0x02) + { + uint64_t dummy; + input.read(reinterpret_cast(&dummy), 8); + } } if (type == ESM::fourCC("GNRL"))