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
Chunks in LCE are double compressed, usually with the console's compression format + chunk specific RLE.
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 (u32) | Decompressed chunk size |
Compressed chunk | Variable (Compressed Size) | The rest of the chunk |
Contributors
Dexrn ZacAttack