MAR, MCM - simonomi/ff1-binary-formats GitHub Wiki
MAR is an extremely simple archive format. Archived files aren't given names, and are referred to only by index.
0x00 0x04 0x08
โญโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโฎ
โ Raw โ 4D 41 52 00 โ 8B 01 00 00 โ โ โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโค โ โ
โ Little-endian โ 0052414D โ 0000018B โ MCM file indexes... โ MCM files... โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโค โ โ
โ Formatted โ "MAR" โ 395 โ โ โ
โฐโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโฏ
โฐโดFile Format โฐโดNumber of MCM files
Source: model/battle/arc
MCM File Index
0x00 0x04
โญโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโฎ
โ Raw โ 60 0C 00 00 โ D4 06 00 00 โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโค
โ Little-endian โ 00000C60 โ 000006D4 โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโค
โ Formatted โ 3,168 โ 1,748 โ
โฐโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโฏ
โ โฐโดDecompressed size in bytes
โฐโดMCM file offset (from MAR+0)
Source: model/battle/arc
MCM
MCM files are only found inside MAR archives, and they control the actual compression of files.
When creating an MCM file, the input is split into (usually 8kB) chunks, then compressed 0-2 times.
Code | Compression type |
---|---|
0x00 |
None |
0x01 |
RLE |
0x02 |
LZSS |
0x03 |
Huffman |
0x00 0x04 0x08 0x0C
โญโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโฎ
โ Raw โ 4D 43 4D 00 โ D4 06 00 00 โ 00 20 00 00 โ 01 00 00 00 โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโค
โ Little-endian โ 004D434D โ 000006D4 โ 00002000 โ 00000001 โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโค
โ Formatted โ "MCM" โ 1,748 โ 8,192 โ 1 โ
โฐโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโฏ
โฐโดFile format โ โ โฐโดNumber of chunks
โ โฐโดMax size per chunk in bytes, usually 8kB
โฐโดDecompressed size in bytes
0x10 0x11 0x12 0x14
โญโโโโโโโโโโโโโโโโผโโโโโโโผโโโโโโโผโโโโโโโโผโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโโโโฎ
โ Raw โ 02 โ 00 โ 00 00 โ โ 78 02 00 00 โ โ
โโโโโโโโโโโโโโโโโผโโโโโโโผโโโโโโโผโโโโโโโโค โโโโโโโโโโโโโโโค โ
โ Little-endian โ 02 โ 00 โ 0000 โ Chunk offsets... โ 00000278 โ Chunks... โ
โโโโโโโโโโโโโโโโโผโโโโโโโผโโโโโโโผโโโโโโโโค โโโโโโโโโโโโโโโค โ
โ Formatted โ LZSS โ None โ 0 โ โ 632 โ โ
โฐโโโโโโโโโโโโโโโโผโโโโโโโผโโโโโโโผโโโโโโโโดโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโดโโโโโโโโโโโโฏ
โ โ โฐโดPadding โฐโดEnd of file offset (from MCM+0)
โ โฐโดCompression type 2
โฐโดCompression type 1
Source: model/battle/arc
Chunk offset
โญโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโฎ
โ Raw โ 1C 00 00 00 โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโค
โ Little-endian โ 0000001C โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโค
โ Formatted โ 28 โ
โฐโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโฏ
โฐโดOffset to chunk (from MCM+0)
Source: model/battle/arc
Additional notes
Most MAR archives only contain one MCM file. A common pattern is to have one 'table' MAR archive, with a large number of MCM files, and many index
MAR archives with one MCM file each (see index files).
Found
Basically everywhere.
Resources
https://github.com/jianmingyong/Fossil-Fighters-Tool/wiki/Game-Archive-Header