Difference between revisions of "CNMT"

From Nintendo Switch Brew
Jump to navigation Jump to search
Line 22: Line 22:
 
| 0x8
 
| 0x8
 
| 4
 
| 4
|
+
| u32 [[Title_list|title-version]]
 
|-
 
|-
 
| 0xC
 
| 0xC

Revision as of 05:51, 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

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 update-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.