Sarc: Difference between revisions

139 bytes added ,  2 years ago
m
no edit summary
(Add category.)
mNo edit summary
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
Sarc is a file archive format. Files are typically accessed by a binary sorted crc32 hash table. There does not appear to be an official version field, but this is fine as the format does not appear to have changed.
Sarc is a file archive format. Files are typically accessed by a binary sorted by a hash value derived from a custom hash function. For a more detailed article, see: https://github.com/Kinnay/Nintendo-File-Formats/wiki/SARC-File-Format


=== Header ===
=== Header ===
Line 22: Line 22:
|0x2
|0x2
|u16
|u16
|Endianess (Always 0xfffe in big endian)
|Endianess (Always reads as 0xfeff in platform's native endian)
|-
|-
|0x8
|0x8
Line 38: Line 38:
|u32
|u32
|Alignment
|Alignment
|-
|0x14
|0x2
|u16
|Version
|-
|0x16
|0x2
|u16
|Reserved
|}
|}


Line 73: Line 83:


==== Sfat Entry Array ====
==== Sfat Entry Array ====
The sfat entry array follows the sfat header (header + size of header). Array is sized by the sfat header file count, and is sorted by the crc32 hash.
The sfat entry array follows the sfat header (header + size of header). Array is sized by the sfat header file count, and is sorted by a custom hash derived from the hash seed in the sfat header.
{| class="wikitable"
{| class="wikitable"
|+
|+
Line 84: Line 94:
|0x4
|0x4
|u32
|u32
|File name crc32 hash
|File name hash
|-
|-
|0x4
|0x4
46

edits