DARC: Difference between revisions

From 3dbrew
Jump to navigation Jump to search
Elisherer (talk | contribs)
resolved...
 
might be worth mentioning
 
(6 intermediate revisions by 5 users not shown)
Line 14: Line 14:
|  0x000 || 4 || char[4] || Magic Number 'darc'
|  0x000 || 4 || char[4] || Magic Number 'darc'
|-
|-
|  0x004 || 2 || uint16 || Endianess (=0xFFFE: Little)
|  0x004 || 2 || uint16 || Endianess (=0xFEFF [FF FE]: Little)
|-
|-
|  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 24: Line 24:
|  0x010 || 4 || uint32 || [[DARC#File_table|File table]] offset (from the beginning of the file)
|  0x010 || 4 || uint32 || [[DARC#File_table|File table]] offset (from the beginning of the file)
|-
|-
|  0x014 || 4 || uint32 || [[DARC#File_table|File table]] length
|  0x014 || 4 || uint32 || [[DARC#File_table|File table]] length (includes the names that come after the file structs)
|-
|-
|  0x018 || 4 || uint32 || [[DARC#Files_data|Files data]] offset
|  0x018 || 4 || uint32 || [[DARC#Files_data|Files data]] offset
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 14:23, 6 May 2026

This page documents the format of DARC.

Overview

DARC files are archives. Containers of files.

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 (=0xFEFF [FF FE]: 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 (includes the names that come after the file structs)
0x018 4 uint32 Files data offset

File table

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