Difference between revisions of "CNMT"

From Nintendo Switch Brew
Jump to navigation Jump to search
Line 44: Line 44:
 
|
 
|
 
|}
 
|}
 +
 +
With SystemUpdate, the 4-bytes at offset 0xE are zero, with the entry-count field located at offset 0x12 instead(header size is the same).
  
 
An optional header can follow, depending on the title type.
 
An optional header can follow, depending on the title type.
Line 49: Line 51:
 
At the end of the file following the entries is a 0x20-byte block, presumably a hash.
 
At the end of the file following the entries is a 0x20-byte block, presumably a hash.
  
With update-format, there's additional data after the end of the entries specified in the header and before the ending hash.
+
With Patch-format, there's additional data after the end of the entries specified in the header and before the ending hash.
  
 
== Application header ==
 
== Application header ==

Revision as of 05:58, 2 July 2017

For the content of the NCA FS which can be mounted, see here.

Metadata file

This is the file that ends in ".cnmt{.nca}" or "meta0.ncd". This seems to replace the TMD format.

There's at least 3 different filenames used for ".cnmt":

  • "Application_{lower-case hex titleID}.cnmt"
  • "Patch_{lower-case hex titleID}.cnmt"
  • "SystemUpdate_{hex titleID}.cnmt"

It starts with a header:

Offset Size Description
0x0 8 Title ID
0x8 4 u32 title-version
0xC 1 Type (see Title Types)
0xD 1
0xE 2 Offset to table relative to the end of this 0x20-byte header.
0x10 2 Number of entries
0x12 14

With SystemUpdate, the 4-bytes at offset 0xE are zero, with the entry-count field located at offset 0x12 instead(header size is the same).

An optional header can follow, depending on the title type.

At the end of the file following the entries is a 0x20-byte block, presumably a hash.

With Patch-format, there's additional data after the end of the entries specified in the header and before the ending hash.

Application header

Offset Size Description
0x20 8 Patch title ID
0x28 8

Patch header

Offset Size Description
0x20 8 Original title ID
0x28 8

Add-on content header

Offset Size Description
0x20 8 Application title ID
0x28 8

Content records

Each entry is 0x38 bytes:

Offset Size Description
0x0 32 Hash
0x20 16 NcaId [same as first 16-bytes of hash]
0x30 6 Size, same as the output from Content_Manager_services#GetEntrySize.
0x36 1 Type (0=meta, 1=program, 2=data, 3=control, 4=offline-manual html, 5=legal html)
0x37 1

With SystemUpdate, each entry is 0x10-bytes, with the same format listed here: Content_Manager_services#GetUpdateTitleList.