This page documents the format of ARC.
ARC files are archives. Containers of files compressed with LZ-10 (more compression methods might be available).
This is very similiar to NARC (the DS archives).
|0x000||4||char||Magic Number 'darc'|
|0x004||2||uint16||Endianess (=0xFFFE: Little)|
|0x008||4||uint32||Unknown (= 0x01000000 ?)|
|0x010||4||uint32||File table offset (from the beginning of the file)|
|0x014||4||uint32||File table length|
|0x018||4||uint32||Files data offset|
The file table starts at 0x01C.
Each file struct consists of 3 uint32:
|0x00C||4||uint32||Compressed file name offset (from the end of the table, padded to 0x10)
if (offset & 0x01000000) then this is a folder (i.e. first two nodes 'null' & '.')
|0x004||4||uint32||Compressed file offset|
|0x008||4||uint32||Compressed file length|
* First two nodes in the file table are ‘null’ and ‘.’ both have compressed file length of 7.
* Each file is compressed using LZ-10. (Starts with 0x10 and followed by uint24 of the uncompressed file size). * Each file's end is padded to 0x10 besides the last one which ends with EOF.