Settlers VI - Rise Of An Empire BBA
Back to index | Edit this page
Contents
BBA
- Format type: Archive
- Endianness: Little-endian
Format Specifications
byte {1} - Version (4)
uint32 {4} - Unknown (5)
uint32 {4} - Header Size (64)
uint32 {4} - Header Encryption Identifier (0x29D58DC5)
// Header (encrpyted)
- uint32 {4} - Directory Offset Low
- uint32 {4} - Directory Offset High (null)
- uint32 {4} - Directory Length
- uint32 {4} - Directory CRC32 Checksum
- uint32 {4} - Directory Encryption Identifier
- byte {44} - null
// For each file
- if (File Type Identifier == 1) {
- // The first 16 Bytes are encrypted)
- uint32 {4} - Compressed Size
- uint32 {4} - Decompressed Size
- byte {x} - Compressed Filedata
- // The first 16 Bytes are encrypted)
- } else {
- byte {x} - Uncompressed Filedata
- byte {x} - Uncompressed Filedata
- }
// Directory (encrypted, compressed)
- uint32 {4} - Directory Header Size (64)
- uint32 {4} - Offset File Entries
- uint32 {4} - Offset File Hashtable
- byte {52} - null
- char {3} - Archive Header (BAF)
- byte {1} - Version (4)
- uint32 {4} - Unknown (5)
- uint32 {4} - Header Size (64)
- uint32 {4} - Header Encryption Identifier (0x29D58DC5)
- uint32 {16} - null
- uint32 {4} - Directory Encryption Identifier
- byte {44} - null
- uint32 {32} - Encryption Table
- uint32 {32} - null
- uint32 {32} - null
- uint32 {32} - null
- uint32 {4} - Number of Files
- // For each file
- uint32 {8} - Timestamp
- uint32 {4} - Decompressed Filesize
- uint32 {4} - CRC32 Checksum
- uint32 {4} - Filetype Identifier
- uint32 {4} - null
- uint32 {4} - Offset
- uint32 {4} - null
- uint32 {4} - Compressed Filesize
- uint32 {4} - CRC32 Checksum
- uint32 {8} - null
- uint32 {4} - Filename Length
- uint32 {4} - Filename Offset
- int32 {4} - First Offset
- int32 {4} - Next Offset
- char {x} - Filename
- byte {0-3} - Padding
- uint32 {8} - Timestamp
- uint32 {4} - Hashtable Size
- // For each hashtable element
- uint32 {4} - Hash of a Filename
- uint32 {4} - File Entry Offset
- uint32 {4} - Hash of a Filename
Notes and Comments
- Some files and the directory are compressed using zlib
- Filetype Identifiers:
- 0 - Uncompressed file
- 1 - Compressed file
- 256 - Directory
- Initial value for the CRC32 Checksums is 0
- The encryption algorithm is a modified TEA version (it has the same characteristic bitshifts)
- There exists multiple versions of the same algorithm but with different 128-bit keys and different deltas
- The Encryption Identifier will tell you which algorithm to use
- The hashfunction for the filenames is crc32()
- The Timestamp is the Windows FILETIME struct
Encryption Table
The data of some files may be compressed or encrypted. The Encryption Table maps the Filetype Identifier to an algorithm that can handle the data. The table has 8 available slots. The Filetype Identifier 0 is mapped to slot 0, Filetype Identifier 1 is mapped to slot 1 and so on...
If a slot is null, the data is neither compressed nor encrypted. Otherwise the slot contains an Encryption Identifier that tells you how to handle the data.
Example: We have a file with File Type Identifier 1. We look at slot 1 of the encryption table and will find the value: 0x9BB3F065. This tells us that we have a file that is compressed and that the first 16 Bytes of the filedata are encrypted with a simple XOR-algorithm.
Archive Details
filesize filename status downloads 232,288 lngencfg0.bba - 144 lngencfg1.bba - 12,518,584 lngengfx0.bba - 144 lngengfx1.bba - 416,805,060 lngensnd0.bba 100% (ish) Extracted Download NKCSS Data Extractor (NDE) Script 144 lngensnd1.bba - 28,113,012 lngenvid0.bba 100% Extracted Download NKCSS Data Extractor (NDE) Script 144 lngenvid1.bba - 263,528 lngnlcfg0.bba - 144 lngnlcfg1.bba - 578,864 lngnlgfx0.bba - 144 lngnlgfx1.bba - 144 lngnlsnd0.bba - 144 lngnlsnd1.bba - 144 lngnlvid0.bba - 144 lngnlvid1.bba - 2,160,844 shrgcfg0.bba - 6,844 shrgcfg1.bba - 103,906,496 shrgmap0.bba - 5,946,620 shrgmap1.bba - 872,928,828 shrlgfx0.bba - 144 shrlgfx1.bba - 832,868 shrlmnu0.bba - 144 shrlmnu1.bba - 492,685,476 shrlsnd0.bba In progress Download NKCSS Data Extractor (NDE) Script 144 shrlsnd1.bba - 496,472,036 shrlvid0.bba 100% Extracted Download NKCSS Data Extractor (NDE) Script 144 shrlvid1.bba - 13,485,264 shrtmed0.bba - 144 shrtmed1.bba -
lngensnd0.bba contains 6461 mp3s and can all be extracted. I have marked this archive as completely extracted for the time being.
Files within lngenvid0.bba (made them up myself) Settlers VI Audio 000 (Crimson Sabatt informs Red Prince, Queen).bik Settlers VI Audio 001 (Crimson Sabatt informs Red Prince, King).bik Settlers VI Audio 002 (Crimson Sabatt informs Red Prince Again, Queen).bik Settlers VI Audio 003 (Crimson Sabatt informs Red Prince Again, King).bik Settlers VI Audio 004 (Alandra Meets Crimson Sabatt, Queen).bik Settlers VI Audio 005 (Alandra Meets Crimson Sabatt, King).bik Settlers VI Audio 006 (Elias Meets Crimson Sabatt, Queen).bik Settlers VI Audio 007 (Elias Meets Crimson Sabatt, King).bik Settlers VI Audio 008 (Hakim Meets Crimson Sabatt, Queen).bik Settlers VI Audio 009 (Hakim Meets Crimson Sabatt, King).bik Settlers VI Audio 010 (Kestral Meets Crimson Sabatt, Queen).bik Settlers VI Audio 011 (Kestral Meets Crimson Sabatt, King).bik Settlers VI Audio 012 (Marcus Meets Crimson Sabatt, Queen).bik Settlers VI Audio 013 (Marcus Meets Crimson Sabatt, King).bik Settlers VI Audio 014 (Thordal meets Crimson Sabatt, Queen).bik Settlers VI Audio 015 (Thordal meets Crimson Sabatt, King).bik Settlers VI Audio 016 (Red Prince and Crimson Sabatt in chains, Ruined Castle, No History).bik Settlers VI Audio 017 (Red Prince and Crimson Sabatt in chains, Perfect Castle, Some History, Queen).bik Settlers VI Audio 018 (Red Prince and Crimson Sabatt in chains, Perfect Castle, Some History, King).bik Settlers VI Audio 019 (Red Prince and Crimson Sabatt in chains, Perfect Castle, Fireworks, Full History, Queen).bik Settlers VI Audio 020 (Red Prince and Crimson Sabatt in chains, Perfect Castle, Fireworks, Full History, King).bik
shrlvid0.bba contains 22 .bik file (some audio, mostly video). There is one corrupt file (don't know for sure why since the entire archive is unpacked and all other files work).
Files within shrlvid0.bba (made them up myself) Settlers VI Video 000 (Blue Byte Audio Track Maybe).bik Settlers VI Video 001 (Blue Byte Video Track).bik Settlers VI Video 002 (Crimson Sabatt informs Red Prince).bik Settlers VI Video 003 (Corrupt Header, Sorry).bik Settlers VI Video 004 (Crimson Sabatt informs Red Prince again).bik Settlers VI Video 005 (Alandra Meets Crimson Sabatt).bik Settlers VI Video 006 (Elias Meets Crimson Sabatt).bik Settlers VI Video 007 (Hakim Meets Crimson Sabatt).bik Settlers VI Video 008 (Kestral Meets Crimson Sabatt).bik Settlers VI Video 009 (Marcus Meets Crimson Sabatt).bik Settlers VI Video 010 (Thordal meets Crimson Sabatt).bik Settlers VI Video 011 (Crimson Sabatt Conclusion).bik Settlers VI Video 012 (Picknick Ruined Castle).bik Settlers VI Video 013 (Picknick Perfect Castle).bik Settlers VI Video 014 (Picknick ppl at night with Fireworks over Castle).bik Settlers VI Video 015 (Red Prince and Crimson Sabatt in chains).bik Settlers VI Video 016 (Opening Scene Audio Track).bik Settlers VI Video 017 (Opening Scene Video Track).bik Settlers VI Video 018 (Crackling Audio).bik Settlers VI Video 019 (Black Video Frame).bik Settlers VI Video 020 (Ubisoft Intro Audio Track).bik Settlers VI Video 021 (Ubisoft Intro Video Track).bik
shrlsnd0.bba contains 3 mp3s performed by the Viking character Thordal in game as his special power. So far i've been able to extract 64 mp3's with success from this archive, but after that, I keep getting 1 good frame, and then rubbish, and this pattern keeps repeating. I have also found some unencrypted/uncompressed PCM Wave headers (RIFF & fmt tags), so I'll try to put that in the mix to get a better picture of the archive composition. The linked script above extracts the 3 mp3s from Throdal.
MultiEx BMS Script
None written yet.
Supported by Programs
Unknown
Links
None
Games
None.