ARC
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
This page documents the format of ARC.
Overview
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).
ARC header
Offset | Size | Type | Description |
---|---|---|---|
0x000 | 4 | char[4] | Magic Number 'darc' |
0x004 | 2 | uint16 | Endianess (=0xFFFE: Little) |
0x006 | 2 | uint16 | Header's length |
0x008 | 4 | uint32 | Unknown (= 0x01000000 ?) |
0x00C | 4 | uint32 | File's length |
0x010 | 4 | uint32 | File table offset (from the beginning of the file) |
0x014 | 4 | uint32 | File table length |
0x018 | 4 | uint32 | File table offset |
File table
The file table starts at 0x01C.
Each file struct consists of 3 uint32:
Offset | Size | Type | Description |
---|---|---|---|
0x00C | 4 | uint32 | Compressed file name offset (from the end of the table, padded to 0x10)
if (MSB is high) 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.
Files Data
* 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.