-
Notifications
You must be signed in to change notification settings - Fork 10
File Format
logger24 edited this page Nov 19, 2014
·
5 revisions
Binding of Isaac: Rebirth's resources are loaded from packed files with the extension *.a in Steam/SteamApps/common/The Binding Of Isaac Rebirth/resources/packed/. Not everything is known, and this page shouldn't be considered fact.
The file header is the first few bytes you'll always expect to see in the file which describe its contents.
Signature | Compressed Byte | Record Start | Record Count | ||||||
---|---|---|---|---|---|---|---|---|---|
A | R | C | H | 0 | 0 | 0 | Boolean | 32 bit Integer | 16 bit Integer |
- Signature: A seven byte identifier, it will always be "ARCH000" provided it's a BoIR file.
- Compressed Byte: A boolean to indicate if we have a Compressed File Record or a Encrypted File Record.
- Record Start: The beginning of the file record.
- Record Count: How many records (read: files) are available.
The actual meat of the file structure, it indicates the actual file locations and sizes which are compressed. There should be as many records as packed files.
FileNameChecksum1 | FileNameChecksum2 | Data Start | Data Length | Data Checksum |
---|---|---|---|---|
32 bit Integer | 32 bit Integer | 32 bit Integer | 32 bit Integer | 32 bit Integer |
- FileNameChecksum1: This is the filename run through the first checksum method.
- FileNameChecksum2: This is the filename run through the second checksum method.
- Data Start: The beginning of the file data.
- Data Length: How much needs to be read to get the full file.
- Data Checksum: This checksum is used by the game to verify that the data has been decompressed correctly; if the comparison fails, an error will be thrown and the data left unloaded.
The actual meat of the file structure, it indicates the actual file locations and sizes which are encrypted with a given key. There should be as many file records as packed files.
FileNameChecksum1 | Encryption Key | Data Start | Data Length | Data Checksum |
---|---|---|---|---|
32 bit Integer | 32 bit Integer | 32 bit Integer | 32 bit Integer | 32 bit Integer |
- FileNameChecksum1: This is the filename run through the first checksum method.
- Encryption Key: The key used to decrypt the section of indicated data. Check Encryption for more details.
- Data Start: The beginning of the file data.
- Data Length: How much needs to be read to get the full file.
- Data Checksum: This checksum is used by the game to verify that the data has been decrypted correctly; if the comparison fails, an error will be thrown and the data left unloaded.