Skip to content
logger24 edited this page Nov 19, 2014 · 5 revisions

Table of Contents

File Format

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.

File Header

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.

Compressed File Record

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.
Note: The file data from a compressed record is compressed with the LZW algorithm.

Encrypted File Record

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.
Note: The file data from a encrypted record is encrypted with the Encryption Key somehow. Check Encryption for more details.
Clone this wiki locally