DTB
DTB (DaTa Binary?) is the binary serialised counterpart to the plaintext DTA file format. It is capable of storing all DataNodes that the DTA counterpart can store, the only feature lacking from DTB being comments.
It is found in .dtb (Guitar Hero 1 through Rock Band 4) and .*_dta_* (Rock Band 4 and Rock Band VR) file extensions.
Structure
There are several variations on the DTB file format, and this dictates the structure of DataArrays in the file (and possibly more), as well as the header.
TODO: further document the actual structure. For now, read the reference implementations for more information
Header
The header is at the start of the file. (TODO: are these correct?)
.dtb
Name | Type | Size | Function |
---|---|---|---|
Identifier | Byte | 1 byte | Always 0x01. |
Root Nodes | Short (LE) | 2 bytes | The number of root nodes. |
Unknown | Integer (LE) | 4 bytes | ??? |
.*_dta_*
Name | Type | Size | Function |
---|---|---|---|
Identifier | Byte | 1 byte | Always 0x01. |
Unknown | Integer (LE) | 4 bytes | ??? |
Root Nodes | Short (LE) | 2 bytes | The number of root nodes. |
Unknown | Short (LE) | 2 bytes | ??? |
Encryption
DTA files are encrypted when included on-disc. The encryption format was changed in Guitar Hero 2's Xbox 360 release and has been the same since.
Encrypted files begin with a 4-byte little endian integer which acts as a key for the encryption, followed by an encrypted form of a regular DTB file.
TODO: document the encryption cipher