MCR Structure
The following Table gives you Important information the structure of a legacy edition mcr file:
Name | Size (in bytes) | Description |
---|---|---|
Locations | 0x1000 (1024 ints) | Offsets of the chunks within the region file, as well as X,Y positioning |
Timestamps | 0x1000 (1024 ints) | Timestamps for the chunks found within the previous sector |
Chunks | variable | Chunks themselves, compressed with a different format per-console. |
Locations
The locations in LCE seem to use a different format per endianness...
Big Endian
Equivalent to JE Regions
Name | Size (in bytes) | Description |
---|---|---|
Offset | 0x03 (int24) | Offset of the chunk, to get the true offset you need to multiply by 4096. |
Size | 0x01 (byte) | Size of the chunk in 4096-byte sectors |
Little Endian
Name | Size (in bytes) | Description |
---|---|---|
Size | 0x01 (byte) | Size of the chunk in 4096-byte sectors |
Offset | 0x03 (int24) | Offset of the chunk, to get the true offset you need to multiply by 4096. |
Compressed chunk
Within the chunk header lies a 4-byte portion of data that dictates 2 flags and the compressed chunk size.
Name | Size (in bits) | Description |
---|---|---|
RLE Flag | 1 | Flag for if to use RLE |
Unknown Flag | 1 | It is unknown what this flag is |
Compressed Size | 30 | Compressed chunk size, to get the actual size, you must AND it by 0x3FFFFFFF |
Decompressed Size | 32 (4 bytes, uint) | Decompressed chunk size |
Compressed chunk | Variable (Compressed Size) | The rest of the chunk |
Contributors
Dexrn ZacAttack