Difference between revisions of "DARC"

From 3dbrew
Jump to navigation Jump to search
(resolved...)
 
 
(4 intermediate revisions by 3 users not shown)
Line 18: Line 18:
 
|  0x006 || 2 || uint16 || Header's length
 
|  0x006 || 2 || uint16 || Header's length
 
|-
 
|-
|  0x008 || 4 || uint32 || Unknown (= 0x01000000 ?)
+
|  0x008 || 4 || uint32 || Version
 
|-
 
|-
 
|  0x00C || 4 || uint32 || File's length
 
|  0x00C || 4 || uint32 || File's length
Line 37: Line 37:
 
!  Offset !!  Size !! Type !!  Description
 
!  Offset !!  Size !! Type !!  Description
 
|-
 
|-
0x00C || 4 || uint32 || File name offset (from the end of the table, padded to 0x10)  
+
0x000 || 4 || uint32 || File name offset (from the end of the table)  
  
 
if (offset & 0x01000000) then this is a folder (i.e. first two nodes 'null' & '.')
 
if (offset & 0x01000000) then this is a folder (i.e. first two nodes 'null' & '.')
Line 46: Line 46:
 
|}
 
|}
  
  * Folder's length is the file count.
+
* Folder's length is end-index of the folder in the table.
 +
 
 +
=Tools=
 +
* [https://github.com/yellows8/darctool]

Latest revision as of 22:51, 21 November 2015

This page documents the format of DARC.

Overview[edit]

DARC files are archives. Containers of files.

This is very similiar to NARC (the DS archives).

ARC header[edit]

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 Version
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 Files data offset

File table[edit]

The file table starts at 0x01C.

Each file struct consists of 3 uint32:

Offset Size Type Description
0x000 4 uint32 File name offset (from the end of the table)

if (offset & 0x01000000) then this is a folder (i.e. first two nodes 'null' & '.')

0x004 4 uint32 File offset
0x008 4 uint32 File length
  • Folder's length is end-index of the folder in the table.

Tools[edit]