Format: Arc archive - AtomCrafty/MajiroTools GitHub Wiki
Archive type for all Majiro files of a specific category. Uses the .arc extension.
| Type | Value | Description |
|---|---|---|
char[16] |
"MajiroArcV1.000" "MajiroArcV2.000" "MajiroArcV3.000" |
File Signature and Version |
uint32 |
Count | Number of file entries in archive |
uint32 |
NamesOffset | Absolute offset to file NamesBuffer |
uint32 |
DataOffset | Absolute offset to file DataBuffer |
| Entry[NV] | Entries | File entries table |
cstring[N] |
NamesBuffer | File names buffer |
byte[] |
DataBuffer | File data buffer |
arc.Version = (int)(arc.Signature[10] - '0');
uint N = arc.Count;
uint NV = arc.Count + (arc.Version==1 ? 1 : 0);
uint namesSize = arc.DataOffset - arc.NamesOffset;Unlike higher versions, V1 contains arc.Count + 1 table entries, where arc.Entries[arc.Count].Offset is used exclusively to calculate arc.Entries[arc.Count - 1].Length.
For arc.Entries[arc.Count], Hash = 0 and Offset = file.Length.
| Type | Value | Description |
|---|---|---|
uint32 |
Hash | CRC-32 hash of file name |
uint32 |
Offset | Absolute offset to file data |
entry.Length = arc.Entries[i+1].Offset - entry.Offset;| Type | Value | Description |
|---|---|---|
uint32 |
Hash | CRC-32 hash of file name |
uint32 |
Offset | Absolute offset to file data |
uint32 |
Length | Length of file data |
| Type | Value | Description |
|---|---|---|
uint64 |
Hash | CRC-64¹ hash of file name |
uint32 |
Offset | Absolute offset to file data |
uint32 |
Length | Length of file data |
A null-terminated list of entry names. With each name starting immediately after the previous name's null terminator.
Data is store uncompressed and decrypted[citation needed], each file can be read by seeking to entry.Offset and reading entry.Length bytes.