<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://switchbrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hiccup</id>
	<title>Nintendo Switch Brew - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://switchbrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hiccup"/>
	<link rel="alternate" type="text/html" href="https://switchbrew.org/wiki/Special:Contributions/Hiccup"/>
	<updated>2026-05-01T00:40:11Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=XCI&amp;diff=10192</id>
		<title>XCI</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=XCI&amp;diff=10192"/>
		<updated>2020-11-22T13:59:07Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: /* Gamecard Certificate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Known internally as &amp;quot;XCI&amp;quot; (NX Card Image), this is the format used for storing the contents of a Nintendo Switch Gamecard. &lt;br /&gt;
&lt;br /&gt;
= Gamecard Header =&lt;br /&gt;
This header is 0x200 bytes and is located at offset 0 in the Gamecard.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x100&lt;br /&gt;
| RSA-2048 PKCS #1 signature over the header (data from 0x100 to 0x200)&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 0x4&lt;br /&gt;
| Magicnum &amp;quot;HEAD&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x104&lt;br /&gt;
| 0x4&lt;br /&gt;
| Secure Area Start Address (in Media Units which are 0x200 bytes)&lt;br /&gt;
|-&lt;br /&gt;
| 0x108&lt;br /&gt;
| 0x4&lt;br /&gt;
| Backup Area Start Address (always 0xFFFFFFFF)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10C&lt;br /&gt;
| 0x1&lt;br /&gt;
| TitleKeyDec Index (high nibble) and KEK Index (low nibble)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10D&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#Gamecard Size|Gamecard Size]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10E&lt;br /&gt;
| 0x1&lt;br /&gt;
| Gamecard Header Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x10F&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#Gamecard Flags|Gamecard Flags]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x110&lt;br /&gt;
| 0x8&lt;br /&gt;
| Package ID (used for challenge–response authentication)&lt;br /&gt;
|-&lt;br /&gt;
| 0x118&lt;br /&gt;
| 0x8&lt;br /&gt;
| Valid Data End Address (in Media Units which are 0x200 bytes)&lt;br /&gt;
|-&lt;br /&gt;
| 0x120&lt;br /&gt;
| 0x10&lt;br /&gt;
| Gamecard Info IV (reversed)&lt;br /&gt;
|-&lt;br /&gt;
| 0x130&lt;br /&gt;
| 0x8&lt;br /&gt;
| HFS0 partition offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x138&lt;br /&gt;
| 0x8&lt;br /&gt;
| HFS0 header size&lt;br /&gt;
|-&lt;br /&gt;
| 0x140&lt;br /&gt;
| 0x20&lt;br /&gt;
| SHA-256 hash of the [[#HFS0 Header|HFS0 Header]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x160&lt;br /&gt;
| 0x20&lt;br /&gt;
| SHA-256 hash of the [[#Initial Data|Initial Data]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x180&lt;br /&gt;
| 0x4&lt;br /&gt;
| Security Mode (0x01 = T1, 0x02 = T2)&lt;br /&gt;
|-&lt;br /&gt;
| 0x184&lt;br /&gt;
| 0x4&lt;br /&gt;
| T1 Key Index (always 2)&lt;br /&gt;
|-&lt;br /&gt;
| 0x188&lt;br /&gt;
| 0x4&lt;br /&gt;
| Key Index (always 0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x18C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Normal Area End Address (in Media Units which are 0x200 bytes)&lt;br /&gt;
|-&lt;br /&gt;
| 0x190&lt;br /&gt;
| 0x70&lt;br /&gt;
| [[#Gamecard Info|Gamecard Info]] (AES-128-CBC encrypted)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Gamecard Size ==&lt;br /&gt;
[[Filesystem_services|FS]] retrieves this data as [[Filesystem_services#GameCardSize|GameCardSize]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA&lt;br /&gt;
| 1GB&lt;br /&gt;
|-&lt;br /&gt;
| 0xF8&lt;br /&gt;
| 2GB&lt;br /&gt;
|-&lt;br /&gt;
| 0xF0&lt;br /&gt;
| 4GB&lt;br /&gt;
|-&lt;br /&gt;
| 0xE0&lt;br /&gt;
| 8GB&lt;br /&gt;
|-&lt;br /&gt;
| 0xE1&lt;br /&gt;
| 16GB&lt;br /&gt;
|-&lt;br /&gt;
| 0xE2&lt;br /&gt;
| 32GB&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Gamecard Flags ==&lt;br /&gt;
[[Filesystem_services|FS]] retrieves this data as [[Filesystem_services#GameCardAttribute|GameCardAttribute]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| AutoBoot&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| HistoryErase&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| [4.0.0+] RepairTool&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| [9.0.0+] DifferentRegionCupToTerraDevice&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| [9.0.0+] DifferentRegionCupToGlobalDevice&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Gamecard Info ==&lt;br /&gt;
When decrypted, this 0x70 byte region is as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Firmware Version (0x00 = Development, 0x01 = Retail, [4.0.0+] 0x02 = Retail)&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Access Control (0x00A10011 = 25MHz access, 0x00A10010 = 50MHz access)&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Read Time Wait1 (always 0x1388)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Read Time Wait2 (always 0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Write Time Wait1 (always 0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x4&lt;br /&gt;
| Write Time Wait2 (always 0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Firmware Mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4&lt;br /&gt;
| CUP Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x1&lt;br /&gt;
| [9.0.0+] Compatibility Type (0x00 = Normal, 0x01 = Terra)&lt;br /&gt;
|-&lt;br /&gt;
| 0x25&lt;br /&gt;
| 0x3&lt;br /&gt;
| Empty&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| Update Partition Hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| CUP ID (always 0x0100000000000816, which is the title-listing data archive&#039;s title ID)&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x38&lt;br /&gt;
| Empty&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Gamecard Certificate =&lt;br /&gt;
This is the Gamecard&#039;s unique certificate and is located at offset 0x7000.&lt;br /&gt;
&lt;br /&gt;
[[Filesystem_services|FS]] retrieves this data with [[Filesystem_services#GetGameCardDeviceCertificate|GetGameCardDeviceCertificate]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x100&lt;br /&gt;
| RSA-2048 PKCS #1 signature over the data from 0x100 to 0x200&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 0x4&lt;br /&gt;
| Magicnum &amp;quot;CERT&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x104&lt;br /&gt;
| 0x4&lt;br /&gt;
| Empty&lt;br /&gt;
|-&lt;br /&gt;
| 0x108&lt;br /&gt;
| 0x1&lt;br /&gt;
| KEK Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x109&lt;br /&gt;
| 0x7&lt;br /&gt;
| Empty&lt;br /&gt;
|-&lt;br /&gt;
| 0x110&lt;br /&gt;
| 0x10&lt;br /&gt;
| Device ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x120&lt;br /&gt;
| 0x10&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x130&lt;br /&gt;
| 0xD0&lt;br /&gt;
| Encrypted data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The data between the Gamecard Certificate and the start of the HFS0 region is all 0xFF, except for a few carts that have been found, inwhich it is 0x00.&lt;br /&gt;
&lt;br /&gt;
= Initial Data =&lt;br /&gt;
This data is used for challenge–response authentication when changing to the Gamecard&#039;s secure mode.&lt;br /&gt;
&lt;br /&gt;
[[Filesystem_services|FS]] calculates a SHA-256 hash over the whole 0x200 bytes and compares it with the hash stored at offset 0x160 in the [[#Gamecard Header|Gamecard Header]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Package ID from [[#Gamecard Header|Gamecard Header]] at offset 0x110&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Empty&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| Challenge–response authentication data&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x10&lt;br /&gt;
| Challenge–response authentication MAC&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0xC&lt;br /&gt;
| Challenge–response authentication Nonce&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C&lt;br /&gt;
| 0x1C4&lt;br /&gt;
| Reserved (must be empty)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= HFS0 =&lt;br /&gt;
This is the Gamecard file system which starts with magicnum &amp;quot;HFS0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Header ==&lt;br /&gt;
The &amp;quot;SHA-256 File System&amp;quot; or &amp;quot;HFS0&amp;quot; starts at offset 0xF000 in the Gamecard. The first 0x200 bytes act as a global header and represent the root partition which points to the other partitions (&amp;quot;normal&amp;quot;, &amp;quot;logo&amp;quot;, &amp;quot;update&amp;quot; and &amp;quot;secure).&lt;br /&gt;
&lt;br /&gt;
A hash for this header is stored at offset 0x140 in the [[#Gamecard Header|Gamecard Header]].&lt;br /&gt;
&lt;br /&gt;
== File System ==&lt;br /&gt;
The actual file system is as follows (also valid for the root partition):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Magicnum &amp;quot;HFS0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Number of files&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Size of the string table&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Zero/Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| X&lt;br /&gt;
| File Entry Table&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 + X&lt;br /&gt;
| Y&lt;br /&gt;
| String Table&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 + X + Y&lt;br /&gt;
| Z&lt;br /&gt;
| Raw File Data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Where File Entry Table consists of Number of Files FileEntries:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Offset of file in Data&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Size of file in Data&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Offset of filename in String Table&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Size of Hashed region of file (for HFS0s, this is the size of the pre-filedata portion, for NCAs this is usually 0x200)&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 8&lt;br /&gt;
| Zero/Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x20&lt;br /&gt;
| SHA-256 hash of the first (size of hashed region) bytes of filedata&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The string table is 00-padded to align the start of raw filedata with a sector/media unit boundary (usually?).&lt;br /&gt;
&lt;br /&gt;
= Cartridge Layout =&lt;br /&gt;
Observed gamecards contain three partitions: &amp;quot;update&amp;quot;, &amp;quot;normal&amp;quot;, and &amp;quot;secure&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The update partition (Gamecard partition 0 for fsp-srv cmd 31) contains .cnmt.nca + .nca files for the entire system update required to play the game. Launch day carts contain a full copy of 1.0 ncas, newer carts contain newer sysupdate NCAs etc.&lt;br /&gt;
&lt;br /&gt;
The normal partition contains the .cnmt.nca and the game icondata nca. This is presumably for future compatibility so that if a future update changes the cryptographic protocol for the secure partition, Game icon data can still be shown in the home menu on old firmwares.&lt;br /&gt;
&lt;br /&gt;
The secure partition contains an identical copy of the .cnmt.nca and game icondata nca, as well as all other ncas required for the game.&lt;br /&gt;
&lt;br /&gt;
The entire rest of the Gamecard after the secure partition ends is all FF padding.&lt;br /&gt;
&lt;br /&gt;
[4.0.0+] The &amp;quot;normal&amp;quot; partition is now empty and a new partition &amp;quot;logo&amp;quot; was added.&lt;br /&gt;
A partition &amp;quot;boot&amp;quot; got added with exact same content than &amp;quot;logo&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Talk:CNMT&amp;diff=10131</id>
		<title>Talk:CNMT</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Talk:CNMT&amp;diff=10131"/>
		<updated>2020-10-30T15:09:17Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Field names==&lt;br /&gt;
Its not really clear if these field names are meant to be official ones or not... --[[User:Hiccup|Hiccup]] ([[User talk:Hiccup|talk]]) 16:08, 30 October 2020 (UTC)&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Talk:CNMT&amp;diff=10130</id>
		<title>Talk:CNMT</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Talk:CNMT&amp;diff=10130"/>
		<updated>2020-10-30T15:09:10Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Field names==&lt;br /&gt;
&lt;br /&gt;
Its not really clear if these field names are meant to be official ones or not... --[[User:Hiccup|Hiccup]] ([[User talk:Hiccup|talk]]) 16:08, 30 October 2020 (UTC)&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Talk:CNMT&amp;diff=10129</id>
		<title>Talk:CNMT</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Talk:CNMT&amp;diff=10129"/>
		<updated>2020-10-30T15:09:00Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: Created page with &amp;quot;Its not really clear if these field names are meant to be official ones or not... --~~~~&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Its not really clear if these field names are meant to be official ones or not... --[[User:Hiccup|Hiccup]] ([[User talk:Hiccup|talk]]) 16:08, 30 October 2020 (UTC)&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Product_Information&amp;diff=10128</id>
		<title>Product Information</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Product_Information&amp;diff=10128"/>
		<updated>2020-10-30T15:07:31Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page details miscellaneous Switch product information (serial numbers, product models, etc...).&lt;br /&gt;
&lt;br /&gt;
== Product List ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product Code || Additional Product Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| HAC-001 || || Retail Nintendo Switch console&lt;br /&gt;
|-&lt;br /&gt;
| HAC-002 || || AC adapter&lt;br /&gt;
|-&lt;br /&gt;
| HAC-003 || || Nintendo Switch Battery&lt;br /&gt;
|-&lt;br /&gt;
| HAC-004 || || &lt;br /&gt;
|-&lt;br /&gt;
| HAC-005 || || &lt;br /&gt;
|-&lt;br /&gt;
| HAC-006 || || Joy-Con battery&lt;br /&gt;
|-&lt;br /&gt;
| HAC-007 || || Dock&lt;br /&gt;
|-&lt;br /&gt;
| HAC-008 || || Gamecard&lt;br /&gt;
|-&lt;br /&gt;
| HAC-009 || || Gamecard case&lt;br /&gt;
|-&lt;br /&gt;
| HAC-010 || || USB charging cable also included in (&amp;quot;Mario Kart Live: Home Circuit&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| HAC-011 || || Joy-Con grip&lt;br /&gt;
|-&lt;br /&gt;
| HAC-012 || || Joy-Con charge grip&lt;br /&gt;
|-&lt;br /&gt;
| HAC-013 || || Pro Controller&lt;br /&gt;
|-&lt;br /&gt;
| HAC-014 || || Joy-Con strap&lt;br /&gt;
|-&lt;br /&gt;
| HAC-015 || || Left Joy-Con&lt;br /&gt;
|-&lt;br /&gt;
| HAC-016 || || Right Joy-Con&lt;br /&gt;
|-&lt;br /&gt;
| HAC-017 || || Joy-Con handle&lt;br /&gt;
|-&lt;br /&gt;
| HAC-018 || || Screen protector&lt;br /&gt;
|-&lt;br /&gt;
| HAC-019 || || Left Joy-Con extended battery&lt;br /&gt;
|-&lt;br /&gt;
| HAC-020 || || Right Joy-Con extended battery&lt;br /&gt;
|-&lt;br /&gt;
| HAC-021 || || Carrying case&lt;br /&gt;
|-&lt;br /&gt;
| HAC-022 || || Ring-Con&lt;br /&gt;
|-&lt;br /&gt;
| HAC-023 || || Leg Strap&lt;br /&gt;
|-&lt;br /&gt;
| HAC-024 || || Poké Ball Plus controller&lt;br /&gt;
|-&lt;br /&gt;
| HAC-025 || ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-026 || ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-027 || ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-028 || ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-029 || || Steelbook Gamecard case&lt;br /&gt;
|-&lt;br /&gt;
| HAC-030 || || Poké Ball Plus battery&lt;br /&gt;
|-&lt;br /&gt;
| HAC-031 || || Charging stand&lt;br /&gt;
|-&lt;br /&gt;
| HAC-032 || ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-033 || || Left NES controller&lt;br /&gt;
|-&lt;br /&gt;
| HAC-034 || || Right NES controller&lt;br /&gt;
|-&lt;br /&gt;
| HAC-035 || || Left Famicom controller&lt;br /&gt;
|-&lt;br /&gt;
| HAC-036 || || Right Famicom controller&lt;br /&gt;
|-&lt;br /&gt;
| HAC-037 || || Kart (&amp;quot;Mario Kart Live: Home Circuit&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| HAC-038 || || Battery for kart (&amp;quot;Mario Kart Live: Home Circuit&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| HAC-039 || || Gates (&amp;quot;Mario Kart Live: Home Circuit&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| HAC-040 || || Touch Pen (&amp;quot;Super Mario Maker 2&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| HAC-041 || || Touch Pen (&amp;quot;Brain Training for Switch&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| HAC-042 || || SNES controller&lt;br /&gt;
|-&lt;br /&gt;
| HAC-043 || ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-044 || || Arrow Markers (&amp;quot;Mario Kart Live: Home Circuit&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| HAC-045 || ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-046 || ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-047 || || USB charging cable (&amp;quot;Mario Kart Live: Home Circuit&amp;quot;) known as HAC-010 not 047&lt;br /&gt;
|-&lt;br /&gt;
| HAC-048 || ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-049 || ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-050 || ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-051 || || Nintendo Labo Toy-Con 1: Variety Kit&lt;br /&gt;
|-&lt;br /&gt;
| HAC-052 || || Nintendo Labo Toy-Con 2: Robot Kit&lt;br /&gt;
|-&lt;br /&gt;
| HAC-053 || || Nintendo Labo Toy-Con 3: Vehicle Kit&lt;br /&gt;
|-&lt;br /&gt;
| HAC-054 || || Nintendo Labo Toy-Con 4: VR Kit&lt;br /&gt;
|-&lt;br /&gt;
| HAC-055 || || Nintendo Labo Storage Box&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product Code || Additional Product Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| HAT-001 || || SDEV Nintendo Switch console&lt;br /&gt;
|-&lt;br /&gt;
| HAT-002 || || EDEV Nintendo Switch console&lt;br /&gt;
|-&lt;br /&gt;
| HAT-003 || || SDEV cradle&lt;br /&gt;
|-&lt;br /&gt;
| HAT-004 || || Relay Box&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product Code || Additional Product Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| HAC-001(01) || HAD[...] || Retail Nintendo Switch Mariko console&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product Code || Additional Product Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| HDH-001 || ||  Retail Nintendo Switch Lite console&lt;br /&gt;
|-&lt;br /&gt;
| HDH-002 || ||  HDEV Nintendo Switch console&lt;br /&gt;
|-&lt;br /&gt;
| HDH-003 || ||  Battery&lt;br /&gt;
|-&lt;br /&gt;
| HDH-004 || ||  Carrying case&lt;br /&gt;
|-&lt;br /&gt;
| HDH-005 || ||  Screen protector&lt;br /&gt;
|-&lt;br /&gt;
| HDH-006 || ||  Flip cover&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Product Serial Numbers =&lt;br /&gt;
Serial numbers are composed of at least [[#Prefix|three letters]] followed by ten decimal digits. The tenth digit is a [[#Check_Digit|check digit]], meaning that it is derived from the other digits.&lt;br /&gt;
&lt;br /&gt;
== Prefix ==&lt;br /&gt;
Observed prefixes are normally as follows:&lt;br /&gt;
&lt;br /&gt;
* First letter represents the product line:&lt;br /&gt;
** &amp;quot;X&amp;quot; (NX)&lt;br /&gt;
* Second letter represents the product model:&lt;br /&gt;
** &amp;quot;A&amp;quot; (HAC-001; Nintendo Switch console)&lt;br /&gt;
** &amp;quot;B&amp;quot; (HAC-015; Left Joy-Con)&lt;br /&gt;
** &amp;quot;C&amp;quot; (HAC-016; Right Joy-Con)&lt;br /&gt;
** &amp;quot;F&amp;quot; (HAC-007; Dock)&lt;br /&gt;
** &amp;quot;H&amp;quot; (HAC-024; Poké Ball Plus controller)&lt;br /&gt;
** &amp;quot;J&amp;quot; (HDH-001; Nintendo Switch Lite console)&lt;br /&gt;
** &amp;quot;K&amp;quot; (HAC-001-01; Nintendo Switch Mariko console)&lt;br /&gt;
** &amp;quot;L&amp;quot; (HAC-033; Left NES controller)&lt;br /&gt;
** &amp;quot;M&amp;quot; (HAC-034; Right NES controller)&lt;br /&gt;
** &amp;quot;Q&amp;quot; (HAC-037; Kart for &amp;quot;Mario Kart Live: Home Circuit&amp;quot;)&lt;br /&gt;
** &amp;quot;R&amp;quot; (HAC-042; SNES controller)&lt;br /&gt;
** &amp;quot;Z&amp;quot; (HAT-003; SDEV cradle)&lt;br /&gt;
* Third letter represents the product region:&lt;br /&gt;
** &amp;quot;C&amp;quot; (China)&lt;br /&gt;
** &amp;quot;E&amp;quot; (Europe)&lt;br /&gt;
** &amp;quot;J&amp;quot; (Japan; and Europe on old models)&lt;br /&gt;
** &amp;quot;K&amp;quot; (Korea)&lt;br /&gt;
** &amp;quot;L&amp;quot; (All; for development only)&lt;br /&gt;
** &amp;quot;W&amp;quot; (Americas)&lt;br /&gt;
* Fourth letter is optional:&lt;br /&gt;
** &amp;quot;F&amp;quot; (Factory)&lt;br /&gt;
&lt;br /&gt;
== Assembly Line ==&lt;br /&gt;
The first two digits immediately after the [[#Prefix|prefix]] represent the assembly line as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Description&lt;br /&gt;
|-&lt;br /&gt;
| 00 || Unspecified&lt;br /&gt;
|-&lt;br /&gt;
| 01 || Prototype&lt;br /&gt;
|-&lt;br /&gt;
| 02 || SDEV&lt;br /&gt;
|-&lt;br /&gt;
| 03 || EDEV&lt;br /&gt;
|-&lt;br /&gt;
| 04 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 05 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 06 || HDEV&lt;br /&gt;
|-&lt;br /&gt;
| 07 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Retail&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Retail&lt;br /&gt;
|-&lt;br /&gt;
| 70 || Retail&lt;br /&gt;
|-&lt;br /&gt;
| 90 || Refurbished&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Check Digit ==&lt;br /&gt;
The check digit is an industry-standard algorithm and is calculated just like it was on the [https://www.3dbrew.org/wiki/Serials#Console_Serial_Numbers 3DS].&lt;br /&gt;
&lt;br /&gt;
To calculate the check digit of a Switch console, separate the non-check digits into &amp;quot;odd&amp;quot; and &amp;quot;even&amp;quot; groups, where the &amp;quot;odd&amp;quot; group is digits in odd-numbered positions, and the &amp;quot;even&amp;quot; group is digits in even-numbered positions. (The first digit is &amp;quot;odd&amp;quot;, with &amp;quot;first&amp;quot; representing &amp;quot;1&amp;quot;.)&lt;br /&gt;
&lt;br /&gt;
After separating the digits, add the digits in each group together. Multiply the sum of the even digits by 3, then add the sum of the odd digits. To calculate the check digit, take this value modulo 10, and if not 0, subtract from 10.&lt;br /&gt;
&lt;br /&gt;
Example: XAW10075273452&lt;br /&gt;
&lt;br /&gt;
The non-check digits are 1007527345. Separating into odd and even groups, we get the following:&lt;br /&gt;
&lt;br /&gt;
Odds: 1 + 0 + 5 + 7 + 4 = 17 Evens: 0 + 7 + 2 + 3 + 5 = 17&lt;br /&gt;
&lt;br /&gt;
Applying the algorithm, we get ((3 * 17) + 17) % 10 = 8, which is not 0, thus 10 - 8 = 2, matching the example&#039;s check digit.&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Product_Information&amp;diff=10126</id>
		<title>Product Information</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Product_Information&amp;diff=10126"/>
		<updated>2020-10-30T13:16:39Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page details miscellaneous Switch product information (serial numbers, product models, etc...).&lt;br /&gt;
&lt;br /&gt;
== Product List ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| HAC-001 || || Retail Nintendo Switch console&lt;br /&gt;
|-&lt;br /&gt;
| HAC-002 || || AC adapter&lt;br /&gt;
|-&lt;br /&gt;
| HAC-003 || || Nintendo Switch Battery&lt;br /&gt;
|-&lt;br /&gt;
| HAC-004 || || &lt;br /&gt;
|-&lt;br /&gt;
| HAC-005 || || &lt;br /&gt;
|-&lt;br /&gt;
| HAC-006 || || Joy-Con battery&lt;br /&gt;
|-&lt;br /&gt;
| HAC-007 || || Dock&lt;br /&gt;
|-&lt;br /&gt;
| HAC-008 || || Gamecard&lt;br /&gt;
|-&lt;br /&gt;
| HAC-009 || || Gamecard case&lt;br /&gt;
|-&lt;br /&gt;
| HAC-010 || || USB charging cable also included in (&amp;quot;Mario Kart Live: Home Circuit&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| HAC-011 || || Joy-Con grip&lt;br /&gt;
|-&lt;br /&gt;
| HAC-012 || || Joy-Con charge grip&lt;br /&gt;
|-&lt;br /&gt;
| HAC-013 || || Pro Controller&lt;br /&gt;
|-&lt;br /&gt;
| HAC-014 || || Joy-Con strap&lt;br /&gt;
|-&lt;br /&gt;
| HAC-015 || || Left Joy-Con&lt;br /&gt;
|-&lt;br /&gt;
| HAC-016 || || Right Joy-Con&lt;br /&gt;
|-&lt;br /&gt;
| HAC-017 || || Joy-Con handle&lt;br /&gt;
|-&lt;br /&gt;
| HAC-018 || || Screen protector&lt;br /&gt;
|-&lt;br /&gt;
| HAC-019 || || Left Joy-Con extended battery&lt;br /&gt;
|-&lt;br /&gt;
| HAC-020 || || Right Joy-Con extended battery&lt;br /&gt;
|-&lt;br /&gt;
| HAC-021 || || Carrying case&lt;br /&gt;
|-&lt;br /&gt;
| HAC-022 || || Ring-Con&lt;br /&gt;
|-&lt;br /&gt;
| HAC-023 || || Leg Strap&lt;br /&gt;
|-&lt;br /&gt;
| HAC-024 || || Poké Ball Plus controller&lt;br /&gt;
|-&lt;br /&gt;
| HAC-025 || ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-026 || ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-027 || ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-028 || ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-029 || || Steelbook Gamecard case&lt;br /&gt;
|-&lt;br /&gt;
| HAC-030 || || Poké Ball Plus battery&lt;br /&gt;
|-&lt;br /&gt;
| HAC-031 || || Charging stand&lt;br /&gt;
|-&lt;br /&gt;
| HAC-032 || ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-033 || || Left NES controller&lt;br /&gt;
|-&lt;br /&gt;
| HAC-034 || || Right NES controller&lt;br /&gt;
|-&lt;br /&gt;
| HAC-035 || || Left Famicom controller&lt;br /&gt;
|-&lt;br /&gt;
| HAC-036 || || Right Famicom controller&lt;br /&gt;
|-&lt;br /&gt;
| HAC-037 || || Kart (&amp;quot;Mario Kart Live: Home Circuit&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| HAC-038 || || Battery for kart (&amp;quot;Mario Kart Live: Home Circuit&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| HAC-039 || || Gates (&amp;quot;Mario Kart Live: Home Circuit&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| HAC-040 || || Touch Pen (&amp;quot;Super Mario Maker 2&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| HAC-041 || || Touch Pen (&amp;quot;Brain Training for Switch&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| HAC-042 || || SNES controller&lt;br /&gt;
|-&lt;br /&gt;
| HAC-043 || ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-044 || || Arrow Markers (&amp;quot;Mario Kart Live: Home Circuit&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| HAC-045 || ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-046 || ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-047 || || USB charging cable (&amp;quot;Mario Kart Live: Home Circuit&amp;quot;) known as HAC-010 not 047&lt;br /&gt;
|-&lt;br /&gt;
| HAC-048 || ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-049 || ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-050 || ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-051 || || Nintendo Labo Toy-Con 1: Variety Kit&lt;br /&gt;
|-&lt;br /&gt;
| HAC-052 || || Nintendo Labo Toy-Con 2: Robot Kit&lt;br /&gt;
|-&lt;br /&gt;
| HAC-053 || || Nintendo Labo Toy-Con 3: Vehicle Kit&lt;br /&gt;
|-&lt;br /&gt;
| HAC-054 || || Nintendo Labo Toy-Con 4: VR Kit&lt;br /&gt;
|-&lt;br /&gt;
| HAC-055 || || Nintendo Labo Storage Box&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product Code || Additional Product Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| HAT-001 || || SDEV Nintendo Switch console&lt;br /&gt;
|-&lt;br /&gt;
| HAT-002 || || EDEV Nintendo Switch console&lt;br /&gt;
|-&lt;br /&gt;
| HAT-003 || || SDEV cradle&lt;br /&gt;
|-&lt;br /&gt;
| HAT-004 || || Relay Box&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product Code || Additional Product Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| HAC-001(01) || HAD[...] || Retail Nintendo Switch Mariko console&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product Code || Additional Product Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| HDH-001 || ||  Retail Nintendo Switch Lite console&lt;br /&gt;
|-&lt;br /&gt;
| HDH-002 || ||  HDEV Nintendo Switch console&lt;br /&gt;
|-&lt;br /&gt;
| HDH-003 || ||  Battery&lt;br /&gt;
|-&lt;br /&gt;
| HDH-004 || ||  Carrying case&lt;br /&gt;
|-&lt;br /&gt;
| HDH-005 || ||  Screen protector&lt;br /&gt;
|-&lt;br /&gt;
| HDH-006 || ||  Flip cover&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Product Serial Numbers =&lt;br /&gt;
Serial numbers are composed of at least [[#Prefix|three letters]] followed by ten decimal digits. The tenth digit is a [[#Check_Digit|check digit]], meaning that it is derived from the other digits.&lt;br /&gt;
&lt;br /&gt;
== Prefix ==&lt;br /&gt;
Observed prefixes are normally as follows:&lt;br /&gt;
&lt;br /&gt;
* First letter represents the product line:&lt;br /&gt;
** &amp;quot;X&amp;quot; (NX)&lt;br /&gt;
* Second letter represents the product model:&lt;br /&gt;
** &amp;quot;A&amp;quot; (HAC-001; Nintendo Switch console)&lt;br /&gt;
** &amp;quot;B&amp;quot; (HAC-015; Left Joy-Con)&lt;br /&gt;
** &amp;quot;C&amp;quot; (HAC-016; Right Joy-Con)&lt;br /&gt;
** &amp;quot;F&amp;quot; (HAC-007; Dock)&lt;br /&gt;
** &amp;quot;H&amp;quot; (HAC-024; Poké Ball Plus controller)&lt;br /&gt;
** &amp;quot;J&amp;quot; (HDH-001; Nintendo Switch Lite console)&lt;br /&gt;
** &amp;quot;K&amp;quot; (HAC-001-01; Nintendo Switch Mariko console)&lt;br /&gt;
** &amp;quot;L&amp;quot; (HAC-033; Left NES controller)&lt;br /&gt;
** &amp;quot;M&amp;quot; (HAC-034; Right NES controller)&lt;br /&gt;
** &amp;quot;Q&amp;quot; (HAC-037; Kart for &amp;quot;Mario Kart Live: Home Circuit&amp;quot;)&lt;br /&gt;
** &amp;quot;R&amp;quot; (HAC-042; SNES controller)&lt;br /&gt;
** &amp;quot;Z&amp;quot; (HAT-003; SDEV cradle)&lt;br /&gt;
* Third letter represents the product region:&lt;br /&gt;
** &amp;quot;C&amp;quot; (China)&lt;br /&gt;
** &amp;quot;E&amp;quot; (Europe)&lt;br /&gt;
** &amp;quot;J&amp;quot; (Japan; and Europe on old models)&lt;br /&gt;
** &amp;quot;K&amp;quot; (Korea)&lt;br /&gt;
** &amp;quot;L&amp;quot; (All; for development only)&lt;br /&gt;
** &amp;quot;W&amp;quot; (Americas)&lt;br /&gt;
* Fourth letter is optional:&lt;br /&gt;
** &amp;quot;F&amp;quot; (Factory)&lt;br /&gt;
&lt;br /&gt;
== Assembly Line ==&lt;br /&gt;
The first two digits immediately after the [[#Prefix|prefix]] represent the assembly line as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Description&lt;br /&gt;
|-&lt;br /&gt;
| 00 || Unspecified&lt;br /&gt;
|-&lt;br /&gt;
| 01 || Prototype&lt;br /&gt;
|-&lt;br /&gt;
| 02 || SDEV&lt;br /&gt;
|-&lt;br /&gt;
| 03 || EDEV&lt;br /&gt;
|-&lt;br /&gt;
| 04 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 05 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 06 || HDEV&lt;br /&gt;
|-&lt;br /&gt;
| 07 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Retail&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Retail&lt;br /&gt;
|-&lt;br /&gt;
| 70 || Retail&lt;br /&gt;
|-&lt;br /&gt;
| 90 || Refurbished&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Check Digit ==&lt;br /&gt;
The check digit is an industry-standard algorithm and is calculated just like it was on the [https://www.3dbrew.org/wiki/Serials#Console_Serial_Numbers 3DS].&lt;br /&gt;
&lt;br /&gt;
To calculate the check digit of a Switch console, separate the non-check digits into &amp;quot;odd&amp;quot; and &amp;quot;even&amp;quot; groups, where the &amp;quot;odd&amp;quot; group is digits in odd-numbered positions, and the &amp;quot;even&amp;quot; group is digits in even-numbered positions. (The first digit is &amp;quot;odd&amp;quot;, with &amp;quot;first&amp;quot; representing &amp;quot;1&amp;quot;.)&lt;br /&gt;
&lt;br /&gt;
After separating the digits, add the digits in each group together. Multiply the sum of the even digits by 3, then add the sum of the odd digits. To calculate the check digit, take this value modulo 10, and if not 0, subtract from 10.&lt;br /&gt;
&lt;br /&gt;
Example: XAW10075273452&lt;br /&gt;
&lt;br /&gt;
The non-check digits are 1007527345. Separating into odd and even groups, we get the following:&lt;br /&gt;
&lt;br /&gt;
Odds: 1 + 0 + 5 + 7 + 4 = 17 Evens: 0 + 7 + 2 + 3 + 5 = 17&lt;br /&gt;
&lt;br /&gt;
Applying the algorithm, we get ((3 * 17) + 17) % 10 = 8, which is not 0, thus 10 - 8 = 2, matching the example&#039;s check digit.&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Product_Information&amp;diff=10125</id>
		<title>Product Information</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Product_Information&amp;diff=10125"/>
		<updated>2020-10-30T13:09:13Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: typo?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page details miscellaneous Switch product information (serial numbers, product models, etc...).&lt;br /&gt;
&lt;br /&gt;
= Product Models =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device || Product Code&lt;br /&gt;
|-&lt;br /&gt;
| Nintendo Switch || HAC&lt;br /&gt;
|-&lt;br /&gt;
| Nintendo Switch SDEV/EDEV || HAT&lt;br /&gt;
|-&lt;br /&gt;
| Nintendo Switch Mariko || HAD&lt;br /&gt;
|-&lt;br /&gt;
| Nintendo Switch Lite || HDH&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Product List ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| HAC-001 || Retail Nintendo Switch console&lt;br /&gt;
|-&lt;br /&gt;
| HAC-002 || AC adapter&lt;br /&gt;
|-&lt;br /&gt;
| HAC-003 || Nintendo Switch Battery&lt;br /&gt;
|-&lt;br /&gt;
| HAC-004 || &lt;br /&gt;
|-&lt;br /&gt;
| HAC-005 || &lt;br /&gt;
|-&lt;br /&gt;
| HAC-006 || Joy-Con battery&lt;br /&gt;
|-&lt;br /&gt;
| HAC-007 || Dock&lt;br /&gt;
|-&lt;br /&gt;
| HAC-008 || Gamecard&lt;br /&gt;
|-&lt;br /&gt;
| HAC-009 || Gamecard case&lt;br /&gt;
|-&lt;br /&gt;
| HAC-010 || USB charging cable also included in (&amp;quot;Mario Kart Live: Home Circuit&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| HAC-011 || Joy-Con grip&lt;br /&gt;
|-&lt;br /&gt;
| HAC-012 || Joy-Con charge grip&lt;br /&gt;
|-&lt;br /&gt;
| HAC-013 || Pro Controller&lt;br /&gt;
|-&lt;br /&gt;
| HAC-014 || Joy-Con strap&lt;br /&gt;
|-&lt;br /&gt;
| HAC-015 || Left Joy-Con&lt;br /&gt;
|-&lt;br /&gt;
| HAC-016 || Right Joy-Con&lt;br /&gt;
|-&lt;br /&gt;
| HAC-017 || Joy-Con handle&lt;br /&gt;
|-&lt;br /&gt;
| HAC-018 || Screen protector&lt;br /&gt;
|-&lt;br /&gt;
| HAC-019 || Left Joy-Con extended battery&lt;br /&gt;
|-&lt;br /&gt;
| HAC-020 || Right Joy-Con extended battery&lt;br /&gt;
|-&lt;br /&gt;
| HAC-021 || Carrying case&lt;br /&gt;
|-&lt;br /&gt;
| HAC-022 || Ring-Con&lt;br /&gt;
|-&lt;br /&gt;
| HAC-023 || Leg Strap&lt;br /&gt;
|-&lt;br /&gt;
| HAC-024 || Poké Ball Plus controller&lt;br /&gt;
|-&lt;br /&gt;
| HAC-025 ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-026 ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-027 ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-028 ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-029 || Steelbook Gamecard case&lt;br /&gt;
|-&lt;br /&gt;
| HAC-030 || Poké Ball Plus battery&lt;br /&gt;
|-&lt;br /&gt;
| HAC-031 || Charging stand&lt;br /&gt;
|-&lt;br /&gt;
| HAC-032 ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-033 || Left NES controller&lt;br /&gt;
|-&lt;br /&gt;
| HAC-034 || Right NES controller&lt;br /&gt;
|-&lt;br /&gt;
| HAC-035 || Left Famicom controller&lt;br /&gt;
|-&lt;br /&gt;
| HAC-036 || Right Famicom controller&lt;br /&gt;
|-&lt;br /&gt;
| HAC-037 || Kart (&amp;quot;Mario Kart Live: Home Circuit&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| HAC-038 || Battery for kart (&amp;quot;Mario Kart Live: Home Circuit&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| HAC-039 || Gates (&amp;quot;Mario Kart Live: Home Circuit&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| HAC-040 || Touch Pen (&amp;quot;Super Mario Maker 2&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| HAC-041 || Touch Pen (&amp;quot;Brain Training for Switch&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| HAC-042 || SNES controller&lt;br /&gt;
|-&lt;br /&gt;
| HAC-043 ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-044 || Arrow Markers (&amp;quot;Mario Kart Live: Home Circuit&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| HAC-045 ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-046 ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-047 || USB charging cable (&amp;quot;Mario Kart Live: Home Circuit&amp;quot;) known as HAC-010 not 047&lt;br /&gt;
|-&lt;br /&gt;
| HAC-048 ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-049 ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-050 ||&lt;br /&gt;
|-&lt;br /&gt;
| HAC-051 || Nintendo Labo Toy-Con 1: Variety Kit&lt;br /&gt;
|-&lt;br /&gt;
| HAC-052 || Nintendo Labo Toy-Con 2: Robot Kit&lt;br /&gt;
|-&lt;br /&gt;
| HAC-053 || Nintendo Labo Toy-Con 3: Vehicle Kit&lt;br /&gt;
|-&lt;br /&gt;
| HAC-054 || Nintendo Labo Toy-Con 4: VR Kit&lt;br /&gt;
|-&lt;br /&gt;
| HAC-055 || Nintendo Labo Storage Box&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| HAT-001 || SDEV Nintendo Switch console&lt;br /&gt;
|-&lt;br /&gt;
| HAT-002 || EDEV Nintendo Switch console&lt;br /&gt;
|-&lt;br /&gt;
| HAT-003 || SDEV cradle&lt;br /&gt;
|-&lt;br /&gt;
| HAT-004 || Relay Box&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| HAC-001(01)/HAD-001 || Retail Nintendo Switch Mariko console&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| HDH-001 || Retail Nintendo Switch Lite console&lt;br /&gt;
|-&lt;br /&gt;
| HDH-002 || HDEV Nintendo Switch console&lt;br /&gt;
|-&lt;br /&gt;
| HDH-003 || Battery&lt;br /&gt;
|-&lt;br /&gt;
| HDH-004 || Carrying case&lt;br /&gt;
|-&lt;br /&gt;
| HDH-005 || Screen protector&lt;br /&gt;
|-&lt;br /&gt;
| HDH-006 || Flip cover&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Product Serial Numbers =&lt;br /&gt;
Serial numbers are composed of at least [[#Prefix|three letters]] followed by ten decimal digits. The tenth digit is a [[#Check_Digit|check digit]], meaning that it is derived from the other digits.&lt;br /&gt;
&lt;br /&gt;
== Prefix ==&lt;br /&gt;
Observed prefixes are normally as follows:&lt;br /&gt;
&lt;br /&gt;
* First letter represents the product line:&lt;br /&gt;
** &amp;quot;X&amp;quot; (NX)&lt;br /&gt;
* Second letter represents the product model:&lt;br /&gt;
** &amp;quot;A&amp;quot; (HAC-001; Nintendo Switch console)&lt;br /&gt;
** &amp;quot;B&amp;quot; (HAC-015; Left Joy-Con)&lt;br /&gt;
** &amp;quot;C&amp;quot; (HAC-016; Right Joy-Con)&lt;br /&gt;
** &amp;quot;F&amp;quot; (HAC-007; Dock)&lt;br /&gt;
** &amp;quot;H&amp;quot; (HAC-024; Poké Ball Plus controller)&lt;br /&gt;
** &amp;quot;J&amp;quot; (HDH-001; Nintendo Switch Lite console)&lt;br /&gt;
** &amp;quot;K&amp;quot; (HAC-001-01; Nintendo Switch Mariko console)&lt;br /&gt;
** &amp;quot;L&amp;quot; (HAC-033; Left NES controller)&lt;br /&gt;
** &amp;quot;M&amp;quot; (HAC-034; Right NES controller)&lt;br /&gt;
** &amp;quot;Q&amp;quot; (HAC-037; Kart for &amp;quot;Mario Kart Live: Home Circuit&amp;quot;)&lt;br /&gt;
** &amp;quot;R&amp;quot; (HAC-042; SNES controller)&lt;br /&gt;
** &amp;quot;Z&amp;quot; (HAT-003; SDEV cradle)&lt;br /&gt;
* Third letter represents the product region:&lt;br /&gt;
** &amp;quot;C&amp;quot; (China)&lt;br /&gt;
** &amp;quot;E&amp;quot; (Europe)&lt;br /&gt;
** &amp;quot;J&amp;quot; (Japan; and Europe on old models)&lt;br /&gt;
** &amp;quot;K&amp;quot; (Korea)&lt;br /&gt;
** &amp;quot;L&amp;quot; (All; for development only)&lt;br /&gt;
** &amp;quot;W&amp;quot; (Americas)&lt;br /&gt;
* Fourth letter is optional:&lt;br /&gt;
** &amp;quot;F&amp;quot; (Factory)&lt;br /&gt;
&lt;br /&gt;
== Assembly Line ==&lt;br /&gt;
The first two digits immediately after the [[#Prefix|prefix]] represent the assembly line as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Description&lt;br /&gt;
|-&lt;br /&gt;
| 00 || Unspecified&lt;br /&gt;
|-&lt;br /&gt;
| 01 || Prototype&lt;br /&gt;
|-&lt;br /&gt;
| 02 || SDEV&lt;br /&gt;
|-&lt;br /&gt;
| 03 || EDEV&lt;br /&gt;
|-&lt;br /&gt;
| 04 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 05 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 06 || HDEV&lt;br /&gt;
|-&lt;br /&gt;
| 07 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Retail&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Retail&lt;br /&gt;
|-&lt;br /&gt;
| 70 || Retail&lt;br /&gt;
|-&lt;br /&gt;
| 90 || Refurbished&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Check Digit ==&lt;br /&gt;
The check digit is an industry-standard algorithm and is calculated just like it was on the [https://www.3dbrew.org/wiki/Serials#Console_Serial_Numbers 3DS].&lt;br /&gt;
&lt;br /&gt;
To calculate the check digit of a Switch console, separate the non-check digits into &amp;quot;odd&amp;quot; and &amp;quot;even&amp;quot; groups, where the &amp;quot;odd&amp;quot; group is digits in odd-numbered positions, and the &amp;quot;even&amp;quot; group is digits in even-numbered positions. (The first digit is &amp;quot;odd&amp;quot;, with &amp;quot;first&amp;quot; representing &amp;quot;1&amp;quot;.)&lt;br /&gt;
&lt;br /&gt;
After separating the digits, add the digits in each group together. Multiply the sum of the even digits by 3, then add the sum of the odd digits. To calculate the check digit, take this value modulo 10, and if not 0, subtract from 10.&lt;br /&gt;
&lt;br /&gt;
Example: XAW10075273452&lt;br /&gt;
&lt;br /&gt;
The non-check digits are 1007527345. Separating into odd and even groups, we get the following:&lt;br /&gt;
&lt;br /&gt;
Odds: 1 + 0 + 5 + 7 + 4 = 17 Evens: 0 + 7 + 2 + 3 + 5 = 17&lt;br /&gt;
&lt;br /&gt;
Applying the algorithm, we get ((3 * 17) + 17) % 10 = 8, which is not 0, thus 10 - 8 = 2, matching the example&#039;s check digit.&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=CNMT&amp;diff=9677</id>
		<title>CNMT</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=CNMT&amp;diff=9677"/>
		<updated>2020-06-22T16:02:29Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: Undo revision 9676 by Hiccup (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the metadata file that ends in &amp;lt;code&amp;gt;&amp;quot;.cnmt{.nca}&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;quot;meta0.ncd&amp;quot;&amp;lt;/code&amp;gt;. This seems to replace the TMD format.&lt;br /&gt;
&lt;br /&gt;
The official name for CNMT is &amp;quot;PackagedContentMeta&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Program ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Version&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[NCM_services#ContentMetaType|Content Meta Type]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD&lt;br /&gt;
| 0x1&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0xE&lt;br /&gt;
| 0x2&lt;br /&gt;
| Extended Header Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x2&lt;br /&gt;
| Content Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x12&lt;br /&gt;
| 0x2&lt;br /&gt;
| Content Meta Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x1&lt;br /&gt;
| Content Meta Attributes (0=None, 1=IncludesExFatDriver, 2=Rebootless)&lt;br /&gt;
|-&lt;br /&gt;
| 0x15&lt;br /&gt;
| 0x3&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x4&lt;br /&gt;
| Required Download System Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SystemUpdate Extended Header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Extended Data Size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Application Extended Header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Patch ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Required System Version&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Required Application Version&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Patch Extended Header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Application ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Required System Version&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Extended Data Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== AddOnContent Extended Header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Application ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Required Application Version&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Delta Extended Header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Application ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Extended Data Size&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Packaged Content Info ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x20&lt;br /&gt;
| Hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x10&lt;br /&gt;
| Content ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x6&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x36&lt;br /&gt;
| 0x1&lt;br /&gt;
| Content Type (0=Meta, 1=Program, 2=Data, 3=Control, 4=[[Internet_Browser|HtmlDocument]], 5=[[Internet_Browser|LegalInformation]], 6=[[NCA_Format|DeltaFragment]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x37&lt;br /&gt;
| 0x1&lt;br /&gt;
| ID Offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Content Meta Info ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Program ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Version&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[NCM_services#Title_Types|Content Meta Type]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD&lt;br /&gt;
| 0x1&lt;br /&gt;
| Content Meta Attributes (0=None, 1=IncludesExFatDriver, 2=Rebootless)&lt;br /&gt;
|-&lt;br /&gt;
| 0xE&lt;br /&gt;
| 0x2&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is used for SystemUpdate, see here: [[NCM_services#ReadEntryMetaRecords]].&lt;br /&gt;
&lt;br /&gt;
== SystemUpdate Extended Data ==&lt;br /&gt;
&lt;br /&gt;
If the Version field is 1, the format is:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Variation Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x20 * Variation Count&lt;br /&gt;
| [[CNMT#Firmware_Variation_Info_(Version_1)|Firmware Variation Info (Version 1)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the Version field is 2, the format is:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Variation Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4 * Variation Count&lt;br /&gt;
| Firmware Variation ID&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x20 * Variation Count&lt;br /&gt;
| [[CNMT#Firmware_Variation_Info_(Version_2)|Firmware Variation Info (Version 2)]]&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x10 * Meta Count (From [[CNMT#Firmware_Variation_Info_(Version_2)|Firmware Variation Info (Version 2)]])&lt;br /&gt;
| [[CNMT#Content_Meta_Info|Content Meta Info]] (If Refer To Base is True)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Firmware Variation Info (Version 1) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Firmware Variation ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x1C&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Firmware Variation Info (Version 2) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x1&lt;br /&gt;
| Refer To Base (0=False, 1=True)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x3&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Meta Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x18&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Patch Extended Data ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| History Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Delta History Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Delta Count&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Fragment Set Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| History Content Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Delta Content Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x4&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x38 * History Count&lt;br /&gt;
| [[CNMT#History_Header|History Headers]]&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x28 * Delta History Count&lt;br /&gt;
| [[CNMT#Delta_History|Delta Histories]]&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x28 * Delta Count&lt;br /&gt;
| [[CNMT#Delta_Header|Delta Headers]]&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x34 * Fragment Set Count&lt;br /&gt;
| [[CNMT#Fragment_Set|Fragment Sets]]&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x18 * History Content Count&lt;br /&gt;
| [[CNMT#Packaged_Content_Info|History Content Info]] (Packaged Content Info without the Hash entry)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x38 * Delta Content Count&lt;br /&gt;
| [[CNMT#Packaged_Content_Info|Delta Packaged Content Info]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0x4 * Fragment Indicator Count (From [[CNMT#Fragment_Set|Fragment Sets]])&lt;br /&gt;
| [[CNMT#Fragment_Indicator|Fragment Indicators]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== History Header ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x10&lt;br /&gt;
| Content Meta Key (Slightly different Content Meta Info)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x20&lt;br /&gt;
| Digest&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x2&lt;br /&gt;
| Content Info Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x32&lt;br /&gt;
| 0x6&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Delta History ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Source Patch ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Destination Patch ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Source Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Destination Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| Download Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x8&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Delta Header ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Source Patch ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 8&lt;br /&gt;
| Destination Patch ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Source Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Destination Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x2&lt;br /&gt;
| Fragment Set Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A&lt;br /&gt;
| 0x6&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x2&lt;br /&gt;
| Content Info Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x22&lt;br /&gt;
| 0x6&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Fragment Set ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x10&lt;br /&gt;
| Source Content ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| Destination Content ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x6&lt;br /&gt;
| Source Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x6&lt;br /&gt;
| Destination Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 0x2&lt;br /&gt;
| Fragment Indicator Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E&lt;br /&gt;
| 0x1&lt;br /&gt;
| Fragment Target Content Type (0=Meta, 1=Program, 2=Data, 3=Control, 4=[[Internet_Browser|HtmlDocument]], 5=[[Internet_Browser|LegalInformation]], 6=[[NCA_Format|DeltaFragment]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F&lt;br /&gt;
| 0x1&lt;br /&gt;
| Update Type (0=ApplyAsDelta, 1=Overwrite, 2=Create)&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x4&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Fragment Indicator ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x2&lt;br /&gt;
| Content Info Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x2&lt;br /&gt;
| Fragment Index&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Delta Extended Data ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Source Patch ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Destination Patch ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Source Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Destination Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x2&lt;br /&gt;
| Fragment Set Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A&lt;br /&gt;
| 0x6&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x34 * Fragment Set Count&lt;br /&gt;
| [[CNMT#Fragment_Set|Fragment Sets]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0x4 * Fragment Indicator Count (From [[CNMT#Fragment_Set|Fragment Sets]])&lt;br /&gt;
| [[CNMT#Fragment_Indicator|Fragment Indicators]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Digest ==&lt;br /&gt;
&lt;br /&gt;
Always found at the end of the file.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x20&lt;br /&gt;
| Digest&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=CNMT&amp;diff=9676</id>
		<title>CNMT</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=CNMT&amp;diff=9676"/>
		<updated>2020-06-22T07:45:35Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: grumble&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the metadata file that ends in &amp;lt;code&amp;gt;&amp;quot;.cnmt{.nca}&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;quot;meta0.ncd&amp;quot;&amp;lt;/code&amp;gt;. This seems to replace the TMD format.&lt;br /&gt;
&lt;br /&gt;
The official name for CNMT is &amp;quot;PackagedContentMeta&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Program ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Title Version&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[NCM_services#ContentMetaType|Content Meta Type]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD&lt;br /&gt;
| 0x1&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0xE&lt;br /&gt;
| 0x2&lt;br /&gt;
| Extended Header Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x2&lt;br /&gt;
| Content Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x12&lt;br /&gt;
| 0x2&lt;br /&gt;
| Content Meta Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x1&lt;br /&gt;
| Content Meta Attributes (0=None, 1=IncludesExFatDriver, 2=Rebootless)&lt;br /&gt;
|-&lt;br /&gt;
| 0x15&lt;br /&gt;
| 0x3&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x4&lt;br /&gt;
| Required Download System Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SystemUpdate Extended Header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Extended Data Size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Application Extended Header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Patch ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Required System Version&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Required Application Version&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Patch Extended Header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Application ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Required System Version&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Extended Data Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== AddOnContent Extended Header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Application ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Required Application Version&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Delta Extended Header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Application ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Extended Data Size&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Packaged Content Info ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x20&lt;br /&gt;
| Hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x10&lt;br /&gt;
| Content ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x6&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x36&lt;br /&gt;
| 0x1&lt;br /&gt;
| Content Type (0=Meta, 1=Program, 2=Data, 3=Control, 4=[[Internet_Browser|HtmlDocument]], 5=[[Internet_Browser|LegalInformation]], 6=[[NCA_Format|DeltaFragment]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x37&lt;br /&gt;
| 0x1&lt;br /&gt;
| ID Offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Content Meta Info ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Program ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Version&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[NCM_services#Title_Types|Content Meta Type]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD&lt;br /&gt;
| 0x1&lt;br /&gt;
| Content Meta Attributes (0=None, 1=IncludesExFatDriver, 2=Rebootless)&lt;br /&gt;
|-&lt;br /&gt;
| 0xE&lt;br /&gt;
| 0x2&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is used for SystemUpdate, see here: [[NCM_services#ReadEntryMetaRecords]].&lt;br /&gt;
&lt;br /&gt;
== SystemUpdate Extended Data ==&lt;br /&gt;
&lt;br /&gt;
If the Version field is 1, the format is:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Variation Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x20 * Variation Count&lt;br /&gt;
| [[CNMT#Firmware_Variation_Info_(Version_1)|Firmware Variation Info (Version 1)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the Version field is 2, the format is:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Variation Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4 * Variation Count&lt;br /&gt;
| Firmware Variation ID&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x20 * Variation Count&lt;br /&gt;
| [[CNMT#Firmware_Variation_Info_(Version_2)|Firmware Variation Info (Version 2)]]&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x10 * Meta Count (From [[CNMT#Firmware_Variation_Info_(Version_2)|Firmware Variation Info (Version 2)]])&lt;br /&gt;
| [[CNMT#Content_Meta_Info|Content Meta Info]] (If Refer To Base is True)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Firmware Variation Info (Version 1) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Firmware Variation ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x1C&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Firmware Variation Info (Version 2) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x1&lt;br /&gt;
| Refer To Base (0=False, 1=True)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x3&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Meta Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x18&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Patch Extended Data ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| History Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Delta History Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Delta Count&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Fragment Set Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| History Content Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Delta Content Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x4&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x38 * History Count&lt;br /&gt;
| [[CNMT#History_Header|History Headers]]&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x28 * Delta History Count&lt;br /&gt;
| [[CNMT#Delta_History|Delta Histories]]&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x28 * Delta Count&lt;br /&gt;
| [[CNMT#Delta_Header|Delta Headers]]&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x34 * Fragment Set Count&lt;br /&gt;
| [[CNMT#Fragment_Set|Fragment Sets]]&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x18 * History Content Count&lt;br /&gt;
| [[CNMT#Packaged_Content_Info|History Content Info]] (Packaged Content Info without the Hash entry)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x38 * Delta Content Count&lt;br /&gt;
| [[CNMT#Packaged_Content_Info|Delta Packaged Content Info]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0x4 * Fragment Indicator Count (From [[CNMT#Fragment_Set|Fragment Sets]])&lt;br /&gt;
| [[CNMT#Fragment_Indicator|Fragment Indicators]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== History Header ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x10&lt;br /&gt;
| Content Meta Key (Slightly different Content Meta Info)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x20&lt;br /&gt;
| Digest&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x2&lt;br /&gt;
| Content Info Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x32&lt;br /&gt;
| 0x6&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Delta History ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Source Patch ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Destination Patch ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Source Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Destination Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| Download Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x8&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Delta Header ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Source Patch ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 8&lt;br /&gt;
| Destination Patch ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Source Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Destination Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x2&lt;br /&gt;
| Fragment Set Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A&lt;br /&gt;
| 0x6&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x2&lt;br /&gt;
| Content Info Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x22&lt;br /&gt;
| 0x6&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Fragment Set ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x10&lt;br /&gt;
| Source Content ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| Destination Content ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x6&lt;br /&gt;
| Source Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x6&lt;br /&gt;
| Destination Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 0x2&lt;br /&gt;
| Fragment Indicator Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E&lt;br /&gt;
| 0x1&lt;br /&gt;
| Fragment Target Content Type (0=Meta, 1=Program, 2=Data, 3=Control, 4=[[Internet_Browser|HtmlDocument]], 5=[[Internet_Browser|LegalInformation]], 6=[[NCA_Format|DeltaFragment]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F&lt;br /&gt;
| 0x1&lt;br /&gt;
| Update Type (0=ApplyAsDelta, 1=Overwrite, 2=Create)&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x4&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Fragment Indicator ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x2&lt;br /&gt;
| Content Info Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x2&lt;br /&gt;
| Fragment Index&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Delta Extended Data ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Source Patch ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Destination Patch ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Source Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Destination Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x2&lt;br /&gt;
| Fragment Set Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A&lt;br /&gt;
| 0x6&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x34 * Fragment Set Count&lt;br /&gt;
| [[CNMT#Fragment_Set|Fragment Sets]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0x4 * Fragment Indicator Count (From [[CNMT#Fragment_Set|Fragment Sets]])&lt;br /&gt;
| [[CNMT#Fragment_Indicator|Fragment Indicators]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Digest ==&lt;br /&gt;
&lt;br /&gt;
Always found at the end of the file.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x20&lt;br /&gt;
| Digest&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=XCI&amp;diff=8591</id>
		<title>XCI</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=XCI&amp;diff=8591"/>
		<updated>2019-12-25T21:27:37Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: /* Gamecard Certificate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Known internally as &amp;quot;XCI&amp;quot; (NX Card Image), this is the format used for storing the contents of a Nintendo Switch Gamecard. &lt;br /&gt;
&lt;br /&gt;
= Gamecard Header =&lt;br /&gt;
This header is 0x200 bytes and is located at offset 0 in the Gamecard.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x100&lt;br /&gt;
| RSA-2048 PKCS #1 signature over the header (data from 0x100 to 0x200)&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 0x4&lt;br /&gt;
| Magicnum &amp;quot;HEAD&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x104&lt;br /&gt;
| 0x4&lt;br /&gt;
| Secure Area Start Address (in Media Units which are 0x200 bytes)&lt;br /&gt;
|-&lt;br /&gt;
| 0x108&lt;br /&gt;
| 0x4&lt;br /&gt;
| Backup Area Start Address (always 0xFFFFFFFF)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10C&lt;br /&gt;
| 0x1&lt;br /&gt;
| TitleKeyDec Index (high nibble) and KEK Index (low nibble)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10D&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#Gamecard Size|Gamecard Size]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10E&lt;br /&gt;
| 0x1&lt;br /&gt;
| Gamecard Header Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x10F&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#Gamecard Flags|Gamecard Flags]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x110&lt;br /&gt;
| 0x8&lt;br /&gt;
| Package ID (used for challenge–response authentication)&lt;br /&gt;
|-&lt;br /&gt;
| 0x118&lt;br /&gt;
| 0x8&lt;br /&gt;
| Valid Data End Address (in Media Units which are 0x200 bytes)&lt;br /&gt;
|-&lt;br /&gt;
| 0x120&lt;br /&gt;
| 0x10&lt;br /&gt;
| Gamecard Info IV (reversed)&lt;br /&gt;
|-&lt;br /&gt;
| 0x130&lt;br /&gt;
| 0x8&lt;br /&gt;
| HFS0 partition offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x138&lt;br /&gt;
| 0x8&lt;br /&gt;
| HFS0 header size&lt;br /&gt;
|-&lt;br /&gt;
| 0x140&lt;br /&gt;
| 0x20&lt;br /&gt;
| SHA-256 hash of the [[#HFS0 Header|HFS0 Header]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x160&lt;br /&gt;
| 0x20&lt;br /&gt;
| SHA-256 hash of the [[#Initial Data|Initial Data]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x180&lt;br /&gt;
| 0x4&lt;br /&gt;
| Security Mode (0x01 = T1, 0x02 = T2)&lt;br /&gt;
|-&lt;br /&gt;
| 0x184&lt;br /&gt;
| 0x4&lt;br /&gt;
| T1 Key Index (always 2)&lt;br /&gt;
|-&lt;br /&gt;
| 0x188&lt;br /&gt;
| 0x4&lt;br /&gt;
| Key Index (always 0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x18C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Normal Area End Address (in Media Units which are 0x200 bytes)&lt;br /&gt;
|-&lt;br /&gt;
| 0x190&lt;br /&gt;
| 0x70&lt;br /&gt;
| [[#Gamecard Info|Gamecard Info]] (AES-128-CBC encrypted)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Gamecard Size ==&lt;br /&gt;
[[Filesystem_services|FS]] retrieves this data as [[Filesystem_services#GameCardSize|GameCardSize]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA&lt;br /&gt;
| 1GB&lt;br /&gt;
|-&lt;br /&gt;
| 0xF8&lt;br /&gt;
| 2GB&lt;br /&gt;
|-&lt;br /&gt;
| 0xF0&lt;br /&gt;
| 4GB&lt;br /&gt;
|-&lt;br /&gt;
| 0xE0&lt;br /&gt;
| 8GB&lt;br /&gt;
|-&lt;br /&gt;
| 0xE1&lt;br /&gt;
| 16GB&lt;br /&gt;
|-&lt;br /&gt;
| 0xE2&lt;br /&gt;
| 32GB&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Gamecard Flags ==&lt;br /&gt;
[[Filesystem_services|FS]] retrieves this data as [[Filesystem_services#GameCardAttribute|GameCardAttribute]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| AutoBoot&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| HistoryErase&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| [4.0.0+] RepairTool&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| [9.0.0+] DifferentRegionCupToTerraDevice&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| [9.0.0+] DifferentRegionCupToGlobalDevice&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Gamecard Info ==&lt;br /&gt;
When decrypted, this 0x70 byte region is as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Firmware Version (0x00 = Development, 0x01 = Retail, [4.0.0+] 0x02 = Retail)&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Access Control (0x00A10011 = 25MHz access, 0x00A10010 = 50MHz access)&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Read Time Wait1 (always 0x1388)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Read Time Wait2 (always 0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Write Time Wait1 (always 0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x4&lt;br /&gt;
| Write Time Wait2 (always 0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Firmware Mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4&lt;br /&gt;
| CUP Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x1&lt;br /&gt;
| [9.0.0+] Compatibility Type (0x00 = Normal, 0x01 = Terra)&lt;br /&gt;
|-&lt;br /&gt;
| 0x25&lt;br /&gt;
| 0x3&lt;br /&gt;
| Empty&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| Update Partition Hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| CUP ID (always 0x0100000000000816, which is the title-listing data archive&#039;s title ID)&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x38&lt;br /&gt;
| Empty&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Gamecard Certificate =&lt;br /&gt;
This is the Gamecard&#039;s unique certificate and is located at offset 0x7000.&lt;br /&gt;
&lt;br /&gt;
[[Filesystem_services|FS]] retrieves this data with [[Filesystem_services#GetGameCardDeviceCertificate|GetGameCardDeviceCertificate]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x100&lt;br /&gt;
| RSA-2048 PKCS #1 signature over the data from 0x100 to 0x200&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 0x4&lt;br /&gt;
| Magicnum &amp;quot;CERT&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x104&lt;br /&gt;
| 0x4&lt;br /&gt;
| Empty&lt;br /&gt;
|-&lt;br /&gt;
| 0x108&lt;br /&gt;
| 0x1&lt;br /&gt;
| KEK Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x109&lt;br /&gt;
| 0x7&lt;br /&gt;
| Empty&lt;br /&gt;
|-&lt;br /&gt;
| 0x110&lt;br /&gt;
| 0x10&lt;br /&gt;
| Device ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x120&lt;br /&gt;
| 0x10&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x130&lt;br /&gt;
| 0xD0&lt;br /&gt;
| Encrypted data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The data between the Gamecard Certificate and the start of the HFS0 region is all 0xFF, except for one BOTW cart that has been found, inwhich it is 0x00.&lt;br /&gt;
&lt;br /&gt;
= Initial Data =&lt;br /&gt;
This data is used for challenge–response authentication when changing to the Gamecard&#039;s secure mode.&lt;br /&gt;
&lt;br /&gt;
[[Filesystem_services|FS]] calculates a SHA-256 hash over the whole 0x200 bytes and compares it with the hash stored at offset 0x160 in the [[#Gamecard Header|Gamecard Header]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Package ID from [[#Gamecard Header|Gamecard Header]] at offset 0x110&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Empty&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| Challenge–response authentication data&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x10&lt;br /&gt;
| Challenge–response authentication MAC&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0xC&lt;br /&gt;
| Challenge–response authentication Nonce&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C&lt;br /&gt;
| 0x1C4&lt;br /&gt;
| Reserved (must be empty)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= HFS0 =&lt;br /&gt;
This is the Gamecard file system which starts with magicnum &amp;quot;HFS0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Header ==&lt;br /&gt;
The &amp;quot;SHA-256 File System&amp;quot; or &amp;quot;HFS0&amp;quot; starts at offset 0xF000 in the Gamecard. The first 0x200 bytes act as a global header and represent the root partition which points to the other partitions (&amp;quot;normal&amp;quot;, &amp;quot;logo&amp;quot;, &amp;quot;update&amp;quot; and &amp;quot;secure).&lt;br /&gt;
&lt;br /&gt;
A hash for this header is stored at offset 0x140 in the [[#Gamecard Header|Gamecard Header]].&lt;br /&gt;
&lt;br /&gt;
== File System ==&lt;br /&gt;
The actual file system is as follows (also valid for the root partition):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Magicnum &amp;quot;HFS0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Number of files&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Size of the string table&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Zero/Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| X&lt;br /&gt;
| File Entry Table&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 + X&lt;br /&gt;
| Y&lt;br /&gt;
| String Table&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 + X + Y&lt;br /&gt;
| Z&lt;br /&gt;
| Raw File Data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Where File Entry Table consists of Number of Files FileEntries:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Offset of file in Data&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Size of file in Data&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Offset of filename in String Table&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Size of Hashed region of file (for HFS0s, this is the size of the pre-filedata portion, for NCAs this is usually 0x200)&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 8&lt;br /&gt;
| Zero/Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x20&lt;br /&gt;
| SHA-256 hash of the first (size of hashed region) bytes of filedata&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The string table is 00-padded to align the start of raw filedata with a sector/media unit boundary (usually?).&lt;br /&gt;
&lt;br /&gt;
= Cartridge Layout =&lt;br /&gt;
Observed gamecards contain three partitions: &amp;quot;update&amp;quot;, &amp;quot;normal&amp;quot;, and &amp;quot;secure&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The update partition (Gamecard partition 0 for fsp-srv cmd 31) contains .cnmt.nca + .nca files for the entire system update required to play the game. Launch day carts contain a full copy of 1.0 ncas, newer carts contain newer sysupdate NCAs etc.&lt;br /&gt;
&lt;br /&gt;
The normal partition contains the .cnmt.nca and the game icondata nca. This is presumably for future compatibility so that if a future update changes the cryptographic protocol for the secure partition, Game icon data can still be shown in the home menu on old firmwares.&lt;br /&gt;
&lt;br /&gt;
The secure partition contains an identical copy of the .cnmt.nca and game icondata nca, as well as all other ncas required for the game.&lt;br /&gt;
&lt;br /&gt;
The entire rest of the Gamecard after the secure partition ends is all FF padding.&lt;br /&gt;
&lt;br /&gt;
[4.0.0+] The &amp;quot;normal&amp;quot; partition is now empty and a new partition &amp;quot;logo&amp;quot; was added.&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=CNMT&amp;diff=8158</id>
		<title>CNMT</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=CNMT&amp;diff=8158"/>
		<updated>2019-10-27T11:03:29Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the metadata file that ends in &amp;lt;code&amp;gt;&amp;quot;.cnmt{.nca}&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;quot;meta0.ncd&amp;quot;&amp;lt;/code&amp;gt;. This seems to replace the TMD format.&lt;br /&gt;
&lt;br /&gt;
There&#039;s at least 9 different filenames used for &amp;quot;.cnmt&amp;quot;:&lt;br /&gt;
* &amp;quot;Application_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;Patch_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;AddOnContent_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;SystemUpdate_{hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;SystemData_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;SystemProgram_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;BootImagePackage_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;BootImagePackageSafe_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;Delta_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Title Version&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[NCM_services#Title_Types|Meta Type]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD&lt;br /&gt;
| 0x1&lt;br /&gt;
| Unused&lt;br /&gt;
|-&lt;br /&gt;
| 0xE&lt;br /&gt;
| 0x2&lt;br /&gt;
| Extended Header Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x2&lt;br /&gt;
| Content Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x12&lt;br /&gt;
| 0x2&lt;br /&gt;
| Content Meta Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x1&lt;br /&gt;
| Attributes (0=None, 1=IncludesExFatDriver, 2=Rebootless)&lt;br /&gt;
|-&lt;br /&gt;
| 0x15&lt;br /&gt;
| 0x3&lt;br /&gt;
| Unused&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x4&lt;br /&gt;
| Required Download System Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SystemUpdate Extended Header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Extended Data Size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Application Extended Header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Patch ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Required System Version&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Patch Extended Header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Application ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Required System Version&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Extended Data Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8&lt;br /&gt;
| Unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== AddOnContent Extended Header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Application ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Required Application Version&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Delta Extended Header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Application ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Extended Data Size&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Content Records ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x20&lt;br /&gt;
| Hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x10&lt;br /&gt;
| Content ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x6&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x36&lt;br /&gt;
| 0x1&lt;br /&gt;
| Content Type (0=Meta, 1=Program, 2=Data, 3=Control, 4=[[Internet_Browser|HtmlDocument]], 5=[[Internet_Browser|LegalInformation]], 6=[[NCA_Format|DeltaFragment]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x37&lt;br /&gt;
| 0x1&lt;br /&gt;
| Id Offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Content Meta Records ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Version&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[NCM_services#Title_Types|Meta Type]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD&lt;br /&gt;
| 0x1&lt;br /&gt;
| Attributes (0=None, 1=IncludesExFatDriver, 2=Rebootless)&lt;br /&gt;
|-&lt;br /&gt;
| 0xE&lt;br /&gt;
| 0x2&lt;br /&gt;
| Unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is used for SystemUpdate, see here: [[NCM_services#ReadEntryMetaRecords]].&lt;br /&gt;
&lt;br /&gt;
== SystemUpdate Extended Data ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Variation Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Firmware Variation&lt;br /&gt;
|- &lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x1C * Variation Count&lt;br /&gt;
| Unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Patch Extended Data ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| History Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Delta History Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Delta Count&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Fragment Set Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| History Content Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Delta Content Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x4&lt;br /&gt;
| Unused&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x38 * History Count&lt;br /&gt;
| [[CNMT#History_Header|History Headers]]&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x28 * Delta History Count&lt;br /&gt;
| [[CNMT#Delta_History|Delta Histories]]&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x28 * Delta Count&lt;br /&gt;
| [[CNMT#Delta_Header|Delta Headers]]&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x34 * Fragment Set Count&lt;br /&gt;
| [[CNMT#Fragment_Set|Fragment Sets]]&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x18 * History Content Count&lt;br /&gt;
| [[CNMT#Content_Records|History Content Records (Content Records without the Hash entry)]]&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x38 * Delta Content Count&lt;br /&gt;
| [[CNMT#Content_Records|Delta Content Records]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0x4 * Fragment Indicator Count (Fragment Set)&lt;br /&gt;
| [[CNMT#Fragment_Indicator|Fragment Indicators]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== History Header ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x10&lt;br /&gt;
| [[CNMT#Content_Meta_Records|Content Meta Record]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[NCM_services#Title_Types|Meta Type]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD&lt;br /&gt;
| 0x1&lt;br /&gt;
| Attributes (0=None, 1=IncludesExFatDriver, 2=Rebootless)&lt;br /&gt;
|-&lt;br /&gt;
| 0xE&lt;br /&gt;
| 0x2&lt;br /&gt;
| Unused&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x20&lt;br /&gt;
| Digest&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x2&lt;br /&gt;
| Content Info Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x32&lt;br /&gt;
| 0x6&lt;br /&gt;
| Unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Delta History ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Source Patch ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Destination Patch ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Source Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Destination Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| Download Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x8&lt;br /&gt;
| Unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Delta Header ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Source Patch ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 8&lt;br /&gt;
| Destination Patch ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Source Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Destination Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x2&lt;br /&gt;
| Fragment Set Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A&lt;br /&gt;
| 0x6&lt;br /&gt;
| Unused&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x2&lt;br /&gt;
| Content Info Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x22&lt;br /&gt;
| 0x6&lt;br /&gt;
| Unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Fragment Set ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x10&lt;br /&gt;
| Source Content ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| Destination Content ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x6&lt;br /&gt;
| Source Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x6&lt;br /&gt;
| Destination Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 0x2&lt;br /&gt;
| Fragment Indicator Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E&lt;br /&gt;
| 0x1&lt;br /&gt;
| Content Type (0=Meta, 1=Program, 2=Data, 3=Control, 4=[[Internet_Browser|HtmlDocument]], 5=[[Internet_Browser|LegalInformation]], 6=[[NCA_Format|DeltaFragment]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F&lt;br /&gt;
| 0x1&lt;br /&gt;
| Update Type (0=ApplyAsDelta, 1=Overwrite, 2=Create)&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x4&lt;br /&gt;
| Unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Fragment Indicator ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x2&lt;br /&gt;
| Content Info Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x2&lt;br /&gt;
| Fragment Index&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Delta Extended Data ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Source Patch ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Destination Patch ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Source Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Destination Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x2&lt;br /&gt;
| Fragment Set Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A&lt;br /&gt;
| 0x6&lt;br /&gt;
| Unused&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x34 * Fragment Set Count&lt;br /&gt;
| [[CNMT#Fragment_Set|Fragment Sets]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0x4 * Fragment Indicator Count (Fragment Set)&lt;br /&gt;
| [[CNMT#Fragment_Indicator|Fragment Indicators]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Digest ==&lt;br /&gt;
&lt;br /&gt;
Always found at the end of the file.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x20&lt;br /&gt;
| Digest&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=NPDM&amp;diff=6352</id>
		<title>NPDM</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=NPDM&amp;diff=6352"/>
		<updated>2019-03-08T11:56:11Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: /* META */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the Switch equivalent of 3DS [https://www.3dbrew.org/wiki/NCCH/Extended_Header exheader]. This is the file with extension &amp;quot;.npdm&amp;quot; in {Switch ExeFS}. The size of this file varies.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x80&lt;br /&gt;
| META&lt;br /&gt;
|-&lt;br /&gt;
| 0x80&lt;br /&gt;
| &amp;lt;Varies&amp;gt;&lt;br /&gt;
| ACID&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;See META&amp;gt;&lt;br /&gt;
| &amp;lt;See META&amp;gt;&lt;br /&gt;
| ACI0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= META =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Magic &amp;quot;META&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x8&lt;br /&gt;
| Reserved (Padding / Unused)&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x1&lt;br /&gt;
| MmuFlags, bit0: 64-bit instructions, bits1-3: address space width (1=64-bit, 2=32-bit). Needs to be &amp;lt;= 0xF&lt;br /&gt;
|-&lt;br /&gt;
| 0xD&lt;br /&gt;
| 0x1&lt;br /&gt;
| Reserved (Padding / Unused)&lt;br /&gt;
|-&lt;br /&gt;
| 0xE&lt;br /&gt;
| 0x1&lt;br /&gt;
| Main thread priority (0-63)&lt;br /&gt;
|-&lt;br /&gt;
| 0xF&lt;br /&gt;
| 0x1&lt;br /&gt;
| DefaultCpuId&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| [3.0.0+] System resource size (max size as of 5.x: 534773760). The size of PersonalMmHeap.&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x4&lt;br /&gt;
| ProcessCategory (0: regular title, 1: kernel built-in). Should be 0 here.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Main entrypoint stack size (Should(?) be page-aligned. In non-nspwn scenarios, values of 0 can also rarely break in Horizon. This might be something auto-adapting or a security feature of some sort?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x10&lt;br /&gt;
| Title name (usually/always &amp;quot;Application&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x10&lt;br /&gt;
| Product code (usually/always all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 0x30&lt;br /&gt;
| Reserved (Padding / Unused)&lt;br /&gt;
|-&lt;br /&gt;
| 0x70&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#ACI0]] offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x74&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#ACI0]] size&lt;br /&gt;
|-&lt;br /&gt;
| 0x78&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#ACID]] offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x7C&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#ACID]] size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ACID =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x100&lt;br /&gt;
| RSA-2048 signature, seems to verify the data starting at 0x100 with the size field from 0x204.&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 0x100&lt;br /&gt;
| RSA-2048 public key, seems to be used for the second [[NCA_Format|NCA]] signature.&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| 0x4&lt;br /&gt;
| Magic &amp;quot;ACID&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x204&lt;br /&gt;
| 0x4&lt;br /&gt;
| s32 Size field used with the above signature(?).&lt;br /&gt;
|-&lt;br /&gt;
| 0x208&lt;br /&gt;
| 0x4&lt;br /&gt;
| Zeroes&lt;br /&gt;
|-&lt;br /&gt;
| 0x20C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Flags. Bit0 must be 1 on retail, on devunit 0 is also allowed. Bit1 is unknown, set to 1 for ARMS? [5.0.0+] Bit3-2: PoolPartition? For applets set to 0b01, for sysmodules set to 0b10. Exceptions: &amp;quot;starter&amp;quot; is set to 0, &amp;quot;nvservices&amp;quot; is set to 3.&lt;br /&gt;
|-&lt;br /&gt;
| 0x210&lt;br /&gt;
| 0x8&lt;br /&gt;
| TitleIdRange_Min&lt;br /&gt;
|-&lt;br /&gt;
| 0x218&lt;br /&gt;
| 0x8&lt;br /&gt;
| TitleIdRange_Max&lt;br /&gt;
|-&lt;br /&gt;
| 0x220&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#FS Access Control]] offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x224&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#FS Access Control]] size&lt;br /&gt;
|-&lt;br /&gt;
| 0x228&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#Service Access Control]] offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x22C&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#Service Access Control]] size&lt;br /&gt;
|-&lt;br /&gt;
| 0x230&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#Kernel Access Control]] offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x234&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#Kernel Access Control]] size&lt;br /&gt;
|-&lt;br /&gt;
| 0x238&lt;br /&gt;
| 0x8&lt;br /&gt;
| Padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ACI0 =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Magic &amp;quot;ACI0&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0xC&lt;br /&gt;
| Zeroes&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8&lt;br /&gt;
| Title id&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| Reserved (Not currently used, potentially to be used for lowest title ID in future.)&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#FS Access Header]] offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#FS Access Header]] size&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#Service Access Control]] offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#Service Access Control]] size&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#Kernel Access Control]] offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x34&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#Kernel Access Control]] size&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x8&lt;br /&gt;
| Padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= FS Access Header =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x1&lt;br /&gt;
| Version? Always 1. Must be non-zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x3&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x8&lt;br /&gt;
| Permissions bitmask&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Data Size (Always 0x1C)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Size of Content Owner ID section.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Data size (0x1C) plus Content Owner size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x4&lt;br /&gt;
| Size of Save Data owners section (for applications that wish to share save data?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x4&lt;br /&gt;
| (OPTIONAL) Amount of content owner id&#039;s&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x8 * Content Owner ID&#039;s&lt;br /&gt;
| Content owner ID&#039;s as uint64&#039;s.&lt;br /&gt;
|-&lt;br /&gt;
| VARIABLE&lt;br /&gt;
| 0x4&lt;br /&gt;
| Amount of save owner id&#039;s&lt;br /&gt;
|-&lt;br /&gt;
| VARIABLE&lt;br /&gt;
| 0x1 * Save data owner accessibilities (?)&lt;br /&gt;
| Sets flags for what save data owners can do with other applications save data (?)&lt;br /&gt;
|-&lt;br /&gt;
| VARIABLE (Pad to nearest 4 bytes)&lt;br /&gt;
| 0x8 * Amount of save owner ID&#039;s&lt;br /&gt;
| Save data owner ID&#039;s&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= FS Access Control =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x1&lt;br /&gt;
| Version? Always 1. Must be non-zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x3&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x8&lt;br /&gt;
| Permissions bitmask&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x20&lt;br /&gt;
| Usually all zeroes for applications&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Filesystem_services#Permissions|Permissions]] bitmask:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bit&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| MountContent* is accessible when set.&lt;br /&gt;
|-&lt;br /&gt;
| 34&lt;br /&gt;
| Enables access to [[Filesystem_services|Bis]] partitionID 27 and 28?&lt;br /&gt;
|-&lt;br /&gt;
| 63&lt;br /&gt;
| Enables access to everything: all [[Filesystem_services#Permissions|permission-types]] which check a bitmask have this bit set.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For bit62 in permissions, see [[SPL_services#GetConfig|here]].&lt;br /&gt;
&lt;br /&gt;
Web-applets permissions:&lt;br /&gt;
* &amp;quot;LibAppletWeb&amp;quot; and &amp;quot;LibAppletOff&amp;quot; have same access control: bit0 and bit3 set, and bit62 set.&lt;br /&gt;
* Rest of the web-applets: Same as above except bit0 isn&#039;t set.&lt;br /&gt;
&lt;br /&gt;
= Service Access Control =&lt;br /&gt;
This is a list of [[Services_API|service]]-name strings which the title has access to, with the following structure:&lt;br /&gt;
  +0: control_byte&lt;br /&gt;
  +1: {service-name without nul-terminator}&lt;br /&gt;
&lt;br /&gt;
Bitmask 0x07 in control_byte is the {length of the service-name without nul-terminator} - 1.&lt;br /&gt;
&lt;br /&gt;
Bitmask 0x80 in control_byte means service is allowed to be registered.&lt;br /&gt;
&lt;br /&gt;
The service string can contain a wildcard &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; character.&lt;br /&gt;
&lt;br /&gt;
= Kernel Access Control =&lt;br /&gt;
On Switch, descriptors are identified by pattern 01..11 in low bits.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Pattern of lower bits&lt;br /&gt;
! Lowest clear bitmask/bit&lt;br /&gt;
! Type&lt;br /&gt;
! Fields&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0bxxxxxxxxxxxx0111&amp;lt;/code&amp;gt;&lt;br /&gt;
| Bit3&lt;br /&gt;
| KernelFlags&lt;br /&gt;
| Bit31-24: Highest allowed cpu id, bit23-16: Lowest allowed cpu id, bit15-10: Highest allowed thread prio, bit9-4: Lowest allowed thread prio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0bxxxxxxxxxxx01111&amp;lt;/code&amp;gt;&lt;br /&gt;
| Bit4&lt;br /&gt;
| SyscallMask&lt;br /&gt;
| Bits 29-31: Syscall mask table index; Bits 5-28: Mask&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0bxxxxxxxxx0111111&amp;lt;/code&amp;gt;&lt;br /&gt;
| Bit6&lt;br /&gt;
| MapIoOrNormalRange&lt;br /&gt;
| Bits 7-30: Alternating start page and number of pages, bit31: Alternating read-only flag then MemoryAttribute 0x2001/0x42002 selector flag&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0bxxxxxxxx01111111&amp;lt;/code&amp;gt;&lt;br /&gt;
| Bit7&lt;br /&gt;
| MapNormalPage (RW)&lt;br /&gt;
| Bits 8-31: Page&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0bxxxx011111111111&amp;lt;/code&amp;gt;&lt;br /&gt;
| Bit11&lt;br /&gt;
| InterruptPair&lt;br /&gt;
| Bits 12-21: Irq0, bits 22-31: Irq1, 0x3FF means empty.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0bxx01111111111111&amp;lt;/code&amp;gt;&lt;br /&gt;
| Bit13&lt;br /&gt;
| ApplicationType&lt;br /&gt;
| Bit16-14: ApplicationType (0=sysmodule, 1=application, 2=applet), bit16 ignored. Parsed by [[Process Manager services]]. Defaults to 0 if descriptor doesn&#039;t exist. Can only run 1 application at a time.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0bx011111111111111&amp;lt;/code&amp;gt;&lt;br /&gt;
| Bit14&lt;br /&gt;
| KernelReleaseVersion&lt;br /&gt;
| Bits 15-X: Version. The raw descriptor is compared with 0x80000, when less than an error is returned. This is equivalent to comparing the bits starting at bit15 with 0x10. This enforces a minimum required version, not a maximum.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0b0111111111111111&amp;lt;/code&amp;gt;&lt;br /&gt;
| Bit15&lt;br /&gt;
| HandleTableSize&lt;br /&gt;
| Bit25-16: Number of handles the table shall fit.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0b1111111111111111&amp;lt;/code&amp;gt;&lt;br /&gt;
| Bit16&lt;br /&gt;
| DebugFlags&lt;br /&gt;
| Bit17: can be debugged, bit18: can debug others&lt;br /&gt;
|-&lt;br /&gt;
| All ones&lt;br /&gt;
| &lt;br /&gt;
| Ignored&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mapping restrictions ==&lt;br /&gt;
The physaddr range 0x80060000-0x2000000000 is not allowed to be mapped as IO.&lt;br /&gt;
The physaddr range 0x80000000-0x2000000000 is not allowed to be mapped as Normal.&lt;br /&gt;
&lt;br /&gt;
[2.0.0-4.1.0] The range for IO was changed into 0x80060000-0x81D3FFFF.&lt;br /&gt;
&lt;br /&gt;
[2.0.0-4.1.0] A blacklist was added for IO and Normal mappings:&lt;br /&gt;
* 0x50040000-0x50060000 (ARM, Interrupt Controller)&lt;br /&gt;
* 0x6000F000 (Exception Vectors)&lt;br /&gt;
* 0x6001DC00-0x6001E000 (IPATCH)&lt;br /&gt;
* 0x7000E000 (RTC/PMC)&lt;br /&gt;
* 0x70019000 (MC)&lt;br /&gt;
* 0x7001C000 (MC0)&lt;br /&gt;
* 0x7001D000 (MC1)&lt;br /&gt;
&lt;br /&gt;
[5.0.0+] For IO, this blacklist was abandoned and instead two range checks were added. For Normal mappings it is still applied&lt;br /&gt;
&lt;br /&gt;
== Kernel versions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Firmware || Kernel Version || Minimum Allowed&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0 || 5.0.0 || 3.0.0&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.0 || 6.1.0 || 3.0.0&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.0 || 7.4.0 || 3.0.0&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.2 || 7.4.0 || 3.0.0&lt;br /&gt;
|-&lt;br /&gt;
| 5.0.0 || 9.3.0 || 3.0.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Bit31-19: Major version&lt;br /&gt;
Bit18-15: Minor version&lt;br /&gt;
Bit14-0: Zeroes&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=CNMT&amp;diff=6260</id>
		<title>CNMT</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=CNMT&amp;diff=6260"/>
		<updated>2019-02-20T16:54:36Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the metadata file that ends in &amp;lt;code&amp;gt;&amp;quot;.cnmt{.nca}&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;quot;meta0.ncd&amp;quot;&amp;lt;/code&amp;gt;. This seems to replace the TMD format.&lt;br /&gt;
&lt;br /&gt;
There&#039;s at least 9 different filenames used for &amp;quot;.cnmt&amp;quot;:&lt;br /&gt;
* &amp;quot;Application_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;Patch_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;AddOnContent_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;SystemUpdate_{hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;SystemData_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;SystemProgram_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;BootImagePackage_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;BootImagePackageSafe_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;Delta_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It starts with a header:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 8&lt;br /&gt;
| Title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 4&lt;br /&gt;
| u32 [[Title_list|title-version]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 1&lt;br /&gt;
| Type (see [[NCM_services#Title_Types|Title Types]])&lt;br /&gt;
|-&lt;br /&gt;
| 0xD&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0xE&lt;br /&gt;
| 2&lt;br /&gt;
| Offset to table relative to the end of this 0x20-byte header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 2&lt;br /&gt;
| Number of content entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x12&lt;br /&gt;
| 2&lt;br /&gt;
| Number of meta entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 12&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
An optional header can follow, depending on the title type.&lt;br /&gt;
&lt;br /&gt;
At the end of the file following the entries is a 0x20-byte block, presumably a hash.&lt;br /&gt;
&lt;br /&gt;
With Patch-format, there&#039;s additional data after the end of the entries specified in the header and before the ending hash.&lt;br /&gt;
&lt;br /&gt;
== Application header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 8&lt;br /&gt;
| Patch Title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 8&lt;br /&gt;
| Minimum system version&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Patch header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 8&lt;br /&gt;
| Original title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 8&lt;br /&gt;
| Minimum system version&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Add-on content header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 8&lt;br /&gt;
| Application title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 8&lt;br /&gt;
| Minimum application version&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Content records ==&lt;br /&gt;
&lt;br /&gt;
Each entry is 0x38 bytes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 32&lt;br /&gt;
| Hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 16&lt;br /&gt;
| NcaId [same as first 16-bytes of hash]&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 6&lt;br /&gt;
| Size, same as the output from [[Content_Manager_services#GetEntrySize]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x36&lt;br /&gt;
| 1&lt;br /&gt;
| Type (0=Meta, 1=Program, 2=Data, 3=Control, 4=[[Internet_Browser|HtmlDocument]], 5=[[Internet_Browser|LegalInformation]], 6=[[NCA_Format|DeltaFragment]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x37&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Meta records ==&lt;br /&gt;
&lt;br /&gt;
Each entry is 0x10 bytes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 8&lt;br /&gt;
| Title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 4&lt;br /&gt;
| Title version&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 1&lt;br /&gt;
| Type (see [[NCM_services#Title_Types|Title Types]])&lt;br /&gt;
|-&lt;br /&gt;
| 0xD&lt;br /&gt;
| 1&lt;br /&gt;
| ? bit0 set = don&#039;t install?&lt;br /&gt;
|-&lt;br /&gt;
| 0xE&lt;br /&gt;
| 2&lt;br /&gt;
| Unused?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is used for SystemUpdate, see here: [[Content_Manager_services#GetUpdateTitleList]].&lt;br /&gt;
&lt;br /&gt;
== Extended data ==&lt;br /&gt;
&lt;br /&gt;
Patch-type cnmt files include an extended data section. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 4&lt;br /&gt;
| Number of previous cnmt entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 4&lt;br /&gt;
| Number of previous delta entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 4&lt;br /&gt;
| Number of delta info entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 4&lt;br /&gt;
| Number of delta application info entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Number of previous content entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| Number of delta content entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 4&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x38*X&lt;br /&gt;
| Previous cnmt entries&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x28*X&lt;br /&gt;
| Previous delta entries&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x28*X&lt;br /&gt;
| Delta info entries&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x34*X&lt;br /&gt;
| Delta application info entries&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x18*X&lt;br /&gt;
| Previous content entries&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x38*X&lt;br /&gt;
| Delta content entries. (Standard content records)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 4&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 4&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 4&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Previous cnmt records ==&lt;br /&gt;
&lt;br /&gt;
Each entry is 0x38 bytes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 8&lt;br /&gt;
| Title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 4&lt;br /&gt;
| Title version&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 1&lt;br /&gt;
| Type (see [[NCM_services#Title_Types|Title Types]])&lt;br /&gt;
|-&lt;br /&gt;
| 0xD&lt;br /&gt;
| 3&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 32&lt;br /&gt;
| Hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 2&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x32&lt;br /&gt;
| 2&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x34&lt;br /&gt;
| 4&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This contains information on previous metadata files.&lt;br /&gt;
&lt;br /&gt;
== Previous delta records ==&lt;br /&gt;
&lt;br /&gt;
Each entry is 0x28 bytes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 8&lt;br /&gt;
| Old title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 8&lt;br /&gt;
| New title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Old title version&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| New title version&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 8&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 8&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This contains information on previous delta patches.&lt;br /&gt;
&lt;br /&gt;
== Delta info records ==&lt;br /&gt;
&lt;br /&gt;
Each entry is 0x28 bytes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 8&lt;br /&gt;
| Old title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 8&lt;br /&gt;
| New title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Old title version&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| New title version&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 8&lt;br /&gt;
| Some sort of index?&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 8&lt;br /&gt;
| Some sort of index?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This contains information on the current delta patch.&lt;br /&gt;
&lt;br /&gt;
== Delta application info records ==&lt;br /&gt;
&lt;br /&gt;
Each entry is 0x34 bytes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 16&lt;br /&gt;
| Old NcaId&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 16&lt;br /&gt;
| New NcaId&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 6&lt;br /&gt;
| Old size&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 2&lt;br /&gt;
| Upper 2 bytes of the new size&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 4&lt;br /&gt;
| Lower 4 bytes of the new size&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 2&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E&lt;br /&gt;
| 1&lt;br /&gt;
| Type (see [[NCM_services#Title_Types|Title Types]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F&lt;br /&gt;
| 1&lt;br /&gt;
| ? bit0 set = don&#039;t install?&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 4&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This contains information on how to apply deltas to the previous patch.&lt;br /&gt;
&lt;br /&gt;
== Previous content records ==&lt;br /&gt;
&lt;br /&gt;
Each entry is 0x18 bytes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 16&lt;br /&gt;
| NcaId&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 6&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x16&lt;br /&gt;
| 1&lt;br /&gt;
| Type (see [[NCM_services#Title_Types|Title Types]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x17&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This contains information on previous title content from earlier patches.&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=CNMT&amp;diff=6259</id>
		<title>CNMT</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=CNMT&amp;diff=6259"/>
		<updated>2019-02-20T16:54:10Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the file that ends in &amp;lt;code&amp;gt;&amp;quot;.cnmt{.nca}&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;quot;meta0.ncd&amp;quot;&amp;lt;/code&amp;gt;. This seems to replace the TMD format.&lt;br /&gt;
&lt;br /&gt;
There&#039;s at least 9 different filenames used for &amp;quot;.cnmt&amp;quot;:&lt;br /&gt;
* &amp;quot;Application_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;Patch_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;AddOnContent_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;SystemUpdate_{hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;SystemData_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;SystemProgram_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;BootImagePackage_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;BootImagePackageSafe_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;Delta_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It starts with a header:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 8&lt;br /&gt;
| Title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 4&lt;br /&gt;
| u32 [[Title_list|title-version]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 1&lt;br /&gt;
| Type (see [[NCM_services#Title_Types|Title Types]])&lt;br /&gt;
|-&lt;br /&gt;
| 0xD&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0xE&lt;br /&gt;
| 2&lt;br /&gt;
| Offset to table relative to the end of this 0x20-byte header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 2&lt;br /&gt;
| Number of content entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x12&lt;br /&gt;
| 2&lt;br /&gt;
| Number of meta entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 12&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
An optional header can follow, depending on the title type.&lt;br /&gt;
&lt;br /&gt;
At the end of the file following the entries is a 0x20-byte block, presumably a hash.&lt;br /&gt;
&lt;br /&gt;
With Patch-format, there&#039;s additional data after the end of the entries specified in the header and before the ending hash.&lt;br /&gt;
&lt;br /&gt;
== Application header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 8&lt;br /&gt;
| Patch Title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 8&lt;br /&gt;
| Minimum system version&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Patch header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 8&lt;br /&gt;
| Original title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 8&lt;br /&gt;
| Minimum system version&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Add-on content header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 8&lt;br /&gt;
| Application title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 8&lt;br /&gt;
| Minimum application version&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Content records ==&lt;br /&gt;
&lt;br /&gt;
Each entry is 0x38 bytes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 32&lt;br /&gt;
| Hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 16&lt;br /&gt;
| NcaId [same as first 16-bytes of hash]&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 6&lt;br /&gt;
| Size, same as the output from [[Content_Manager_services#GetEntrySize]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x36&lt;br /&gt;
| 1&lt;br /&gt;
| Type (0=Meta, 1=Program, 2=Data, 3=Control, 4=[[Internet_Browser|HtmlDocument]], 5=[[Internet_Browser|LegalInformation]], 6=[[NCA_Format|DeltaFragment]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x37&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Meta records ==&lt;br /&gt;
&lt;br /&gt;
Each entry is 0x10 bytes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 8&lt;br /&gt;
| Title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 4&lt;br /&gt;
| Title version&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 1&lt;br /&gt;
| Type (see [[NCM_services#Title_Types|Title Types]])&lt;br /&gt;
|-&lt;br /&gt;
| 0xD&lt;br /&gt;
| 1&lt;br /&gt;
| ? bit0 set = don&#039;t install?&lt;br /&gt;
|-&lt;br /&gt;
| 0xE&lt;br /&gt;
| 2&lt;br /&gt;
| Unused?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is used for SystemUpdate, see here: [[Content_Manager_services#GetUpdateTitleList]].&lt;br /&gt;
&lt;br /&gt;
== Extended data ==&lt;br /&gt;
&lt;br /&gt;
Patch-type cnmt files include an extended data section. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 4&lt;br /&gt;
| Number of previous cnmt entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 4&lt;br /&gt;
| Number of previous delta entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 4&lt;br /&gt;
| Number of delta info entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 4&lt;br /&gt;
| Number of delta application info entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Number of previous content entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| Number of delta content entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 4&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x38*X&lt;br /&gt;
| Previous cnmt entries&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x28*X&lt;br /&gt;
| Previous delta entries&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x28*X&lt;br /&gt;
| Delta info entries&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x34*X&lt;br /&gt;
| Delta application info entries&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x18*X&lt;br /&gt;
| Previous content entries&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x38*X&lt;br /&gt;
| Delta content entries. (Standard content records)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 4&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 4&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 4&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Previous cnmt records ==&lt;br /&gt;
&lt;br /&gt;
Each entry is 0x38 bytes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 8&lt;br /&gt;
| Title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 4&lt;br /&gt;
| Title version&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 1&lt;br /&gt;
| Type (see [[NCM_services#Title_Types|Title Types]])&lt;br /&gt;
|-&lt;br /&gt;
| 0xD&lt;br /&gt;
| 3&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 32&lt;br /&gt;
| Hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 2&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x32&lt;br /&gt;
| 2&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x34&lt;br /&gt;
| 4&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This contains information on previous metadata files.&lt;br /&gt;
&lt;br /&gt;
== Previous delta records ==&lt;br /&gt;
&lt;br /&gt;
Each entry is 0x28 bytes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 8&lt;br /&gt;
| Old title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 8&lt;br /&gt;
| New title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Old title version&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| New title version&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 8&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 8&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This contains information on previous delta patches.&lt;br /&gt;
&lt;br /&gt;
== Delta info records ==&lt;br /&gt;
&lt;br /&gt;
Each entry is 0x28 bytes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 8&lt;br /&gt;
| Old title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 8&lt;br /&gt;
| New title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Old title version&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| New title version&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 8&lt;br /&gt;
| Some sort of index?&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 8&lt;br /&gt;
| Some sort of index?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This contains information on the current delta patch.&lt;br /&gt;
&lt;br /&gt;
== Delta application info records ==&lt;br /&gt;
&lt;br /&gt;
Each entry is 0x34 bytes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 16&lt;br /&gt;
| Old NcaId&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 16&lt;br /&gt;
| New NcaId&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 6&lt;br /&gt;
| Old size&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 2&lt;br /&gt;
| Upper 2 bytes of the new size&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 4&lt;br /&gt;
| Lower 4 bytes of the new size&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 2&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E&lt;br /&gt;
| 1&lt;br /&gt;
| Type (see [[NCM_services#Title_Types|Title Types]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F&lt;br /&gt;
| 1&lt;br /&gt;
| ? bit0 set = don&#039;t install?&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 4&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This contains information on how to apply deltas to the previous patch.&lt;br /&gt;
&lt;br /&gt;
== Previous content records ==&lt;br /&gt;
&lt;br /&gt;
Each entry is 0x18 bytes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 16&lt;br /&gt;
| NcaId&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 6&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x16&lt;br /&gt;
| 1&lt;br /&gt;
| Type (see [[NCM_services#Title_Types|Title Types]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x17&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This contains information on previous title content from earlier patches.&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=CNMT&amp;diff=6257</id>
		<title>CNMT</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=CNMT&amp;diff=6257"/>
		<updated>2019-02-20T16:53:51Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: Hiccup moved page NCA to CNMT: I may be wrong about doing this, but it has been bugging me&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For the content of the NCA FS which can be [[Filesystem_services|mounted]], see [[NCA_Content_FS|here]].&lt;br /&gt;
&lt;br /&gt;
For the format of the actual NCA, see [[NCA_Format|here]].&lt;br /&gt;
&lt;br /&gt;
= Metadata file =&lt;br /&gt;
This is the file that ends in &amp;lt;code&amp;gt;&amp;quot;.cnmt{.nca}&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;quot;meta0.ncd&amp;quot;&amp;lt;/code&amp;gt;. This seems to replace the TMD format.&lt;br /&gt;
&lt;br /&gt;
There&#039;s at least 9 different filenames used for &amp;quot;.cnmt&amp;quot;:&lt;br /&gt;
* &amp;quot;Application_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;Patch_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;AddOnContent_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;SystemUpdate_{hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;SystemData_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;SystemProgram_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;BootImagePackage_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;BootImagePackageSafe_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
* &amp;quot;Delta_{lower-case hex titleID}.cnmt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It starts with a header:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 8&lt;br /&gt;
| Title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 4&lt;br /&gt;
| u32 [[Title_list|title-version]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 1&lt;br /&gt;
| Type (see [[NCM_services#Title_Types|Title Types]])&lt;br /&gt;
|-&lt;br /&gt;
| 0xD&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0xE&lt;br /&gt;
| 2&lt;br /&gt;
| Offset to table relative to the end of this 0x20-byte header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 2&lt;br /&gt;
| Number of content entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x12&lt;br /&gt;
| 2&lt;br /&gt;
| Number of meta entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 12&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
An optional header can follow, depending on the title type.&lt;br /&gt;
&lt;br /&gt;
At the end of the file following the entries is a 0x20-byte block, presumably a hash.&lt;br /&gt;
&lt;br /&gt;
With Patch-format, there&#039;s additional data after the end of the entries specified in the header and before the ending hash.&lt;br /&gt;
&lt;br /&gt;
== Application header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 8&lt;br /&gt;
| Patch Title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 8&lt;br /&gt;
| Minimum system version&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Patch header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 8&lt;br /&gt;
| Original title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 8&lt;br /&gt;
| Minimum system version&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Add-on content header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 8&lt;br /&gt;
| Application title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 8&lt;br /&gt;
| Minimum application version&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Content records ==&lt;br /&gt;
&lt;br /&gt;
Each entry is 0x38 bytes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 32&lt;br /&gt;
| Hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 16&lt;br /&gt;
| NcaId [same as first 16-bytes of hash]&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 6&lt;br /&gt;
| Size, same as the output from [[Content_Manager_services#GetEntrySize]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x36&lt;br /&gt;
| 1&lt;br /&gt;
| Type (0=Meta, 1=Program, 2=Data, 3=Control, 4=[[Internet_Browser|HtmlDocument]], 5=[[Internet_Browser|LegalInformation]], 6=[[NCA_Format|DeltaFragment]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x37&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Meta records ==&lt;br /&gt;
&lt;br /&gt;
Each entry is 0x10 bytes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 8&lt;br /&gt;
| Title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 4&lt;br /&gt;
| Title version&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 1&lt;br /&gt;
| Type (see [[NCM_services#Title_Types|Title Types]])&lt;br /&gt;
|-&lt;br /&gt;
| 0xD&lt;br /&gt;
| 1&lt;br /&gt;
| ? bit0 set = don&#039;t install?&lt;br /&gt;
|-&lt;br /&gt;
| 0xE&lt;br /&gt;
| 2&lt;br /&gt;
| Unused?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is used for SystemUpdate, see here: [[Content_Manager_services#GetUpdateTitleList]].&lt;br /&gt;
&lt;br /&gt;
== Extended data ==&lt;br /&gt;
&lt;br /&gt;
Patch-type cnmt files include an extended data section. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 4&lt;br /&gt;
| Number of previous cnmt entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 4&lt;br /&gt;
| Number of previous delta entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 4&lt;br /&gt;
| Number of delta info entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 4&lt;br /&gt;
| Number of delta application info entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Number of previous content entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| Number of delta content entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 4&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x38*X&lt;br /&gt;
| Previous cnmt entries&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x28*X&lt;br /&gt;
| Previous delta entries&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x28*X&lt;br /&gt;
| Delta info entries&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x34*X&lt;br /&gt;
| Delta application info entries&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x18*X&lt;br /&gt;
| Previous content entries&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x38*X&lt;br /&gt;
| Delta content entries. (Standard content records)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 4&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 4&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 4&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Previous cnmt records ==&lt;br /&gt;
&lt;br /&gt;
Each entry is 0x38 bytes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 8&lt;br /&gt;
| Title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 4&lt;br /&gt;
| Title version&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 1&lt;br /&gt;
| Type (see [[NCM_services#Title_Types|Title Types]])&lt;br /&gt;
|-&lt;br /&gt;
| 0xD&lt;br /&gt;
| 3&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 32&lt;br /&gt;
| Hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 2&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x32&lt;br /&gt;
| 2&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x34&lt;br /&gt;
| 4&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This contains information on previous metadata files.&lt;br /&gt;
&lt;br /&gt;
== Previous delta records ==&lt;br /&gt;
&lt;br /&gt;
Each entry is 0x28 bytes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 8&lt;br /&gt;
| Old title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 8&lt;br /&gt;
| New title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Old title version&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| New title version&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 8&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 8&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This contains information on previous delta patches.&lt;br /&gt;
&lt;br /&gt;
== Delta info records ==&lt;br /&gt;
&lt;br /&gt;
Each entry is 0x28 bytes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 8&lt;br /&gt;
| Old title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 8&lt;br /&gt;
| New title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Old title version&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| New title version&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 8&lt;br /&gt;
| Some sort of index?&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 8&lt;br /&gt;
| Some sort of index?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This contains information on the current delta patch.&lt;br /&gt;
&lt;br /&gt;
== Delta application info records ==&lt;br /&gt;
&lt;br /&gt;
Each entry is 0x34 bytes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 16&lt;br /&gt;
| Old NcaId&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 16&lt;br /&gt;
| New NcaId&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 6&lt;br /&gt;
| Old size&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 2&lt;br /&gt;
| Upper 2 bytes of the new size&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 4&lt;br /&gt;
| Lower 4 bytes of the new size&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 2&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E&lt;br /&gt;
| 1&lt;br /&gt;
| Type (see [[NCM_services#Title_Types|Title Types]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F&lt;br /&gt;
| 1&lt;br /&gt;
| ? bit0 set = don&#039;t install?&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 4&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This contains information on how to apply deltas to the previous patch.&lt;br /&gt;
&lt;br /&gt;
== Previous content records ==&lt;br /&gt;
&lt;br /&gt;
Each entry is 0x18 bytes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 16&lt;br /&gt;
| NcaId&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 6&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x16&lt;br /&gt;
| 1&lt;br /&gt;
| Type (see [[NCM_services#Title_Types|Title Types]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x17&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This contains information on previous title content from earlier patches.&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Talk:NSO0&amp;diff=2015</id>
		<title>Talk:NSO0</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Talk:NSO0&amp;diff=2015"/>
		<updated>2017-08-08T09:55:41Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Has anyone made a tool for decompressing the &amp;quot;main&amp;quot; file in the exefs? --[[User:Hiccup|Hiccup]] ([[User talk:Hiccup|talk]]) 09:10, 7 August 2017 (CDT)&lt;br /&gt;
* https://gist.github.com/SciresM/62715cfb5d06648ee46bc4622d2725e5 --[[User:SciresM|SciresM]] ([[User talk:SciresM|talk]]) 10:07, 7 August 2017 (CDT)&lt;br /&gt;
:Thanks. Can I share this link, or would you prefer I didn&#039;t? --[[User:Hiccup|Hiccup]] ([[User talk:Hiccup|talk]]) 06:43, 8 August 2017 (CDT)&lt;br /&gt;
::Also, which python version is this for? --[[User:Hiccup|Hiccup]] ([[User talk:Hiccup|talk]]) 06:55, 8 August 2017 (CDT)&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Talk:NSO0&amp;diff=2014</id>
		<title>Talk:NSO0</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Talk:NSO0&amp;diff=2014"/>
		<updated>2017-08-08T09:43:20Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: &amp;quot;Thanks. Can I share this link, or would you prefer I didn&amp;#039;t? --~~~~&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Has anyone made a tool for decompressing the &amp;quot;main&amp;quot; file in the exefs? --[[User:Hiccup|Hiccup]] ([[User talk:Hiccup|talk]]) 09:10, 7 August 2017 (CDT)&lt;br /&gt;
* https://gist.github.com/SciresM/62715cfb5d06648ee46bc4622d2725e5 --[[User:SciresM|SciresM]] ([[User talk:SciresM|talk]]) 10:07, 7 August 2017 (CDT)&lt;br /&gt;
:Thanks. Can I share this link, or would you prefer I didn&#039;t? --[[User:Hiccup|Hiccup]] ([[User talk:Hiccup|talk]]) 06:43, 8 August 2017 (CDT)&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Talk:NSO0&amp;diff=2005</id>
		<title>Talk:NSO0</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Talk:NSO0&amp;diff=2005"/>
		<updated>2017-08-07T12:10:33Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: Created page with &amp;quot;Has anyone made a tool for decompressing the &amp;quot;main&amp;quot; file in the exefs? --~~~~&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Has anyone made a tool for decompressing the &amp;quot;main&amp;quot; file in the exefs? --[[User:Hiccup|Hiccup]] ([[User talk:Hiccup|talk]]) 09:10, 7 August 2017 (CDT)&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Talk:Title_list/Games&amp;diff=777</id>
		<title>Talk:Title list/Games</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Talk:Title_list/Games&amp;diff=777"/>
		<updated>2017-06-11T05:50:16Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Game Case IDs==&lt;br /&gt;
I noticed there are two additional IDs for each game on the back of the game case, on the bottom right. Should these be documented? Examples:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zelda BotW - HAC P AAAAA CAN | 105212A&lt;br /&gt;
Disgaea 5  - HAC P AACAC     | DISS-SWI-US-VG&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;quot;CAN&amp;quot; is obviously Canada, but that might just be an ID to signify the packaging and have nothing to do with the cartridge/contents. The secondary ID is what has my interest. -[[User:Ehm|Ehm]] ([[User talk:Ehm|talk]]) 18:30, 10 June 2017 (CDT)&lt;br /&gt;
:With previous Nintendo consoles, these don&#039;t directly represent the ROM and neither does the stuff on the front of the cart. For the actual info regarding the ROM, you needed to look at the back of the disc/cart. Not that the box stuff isn&#039;t worth noting though - and it may be a different scenario with the Switch. --[[User:Hiccup|Hiccup]] ([[User talk:Hiccup|talk]]) 02:50, 11 June 2017 (CDT)&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=User_talk:Yellows8&amp;diff=715</id>
		<title>User talk:Yellows8</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=User_talk:Yellows8&amp;diff=715"/>
		<updated>2017-06-10T06:54:31Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 1-2 Switch v0 gamecard ==&lt;br /&gt;
Hi. Could you post the front and back codes of your 1-2 Switch v0 gamecard (and in the future, any other gamecards you list on the game title list). It may be helpful in working out the the &amp;quot;syntax&amp;quot; of the game serials. Thanks. --[[User:Hiccup|Hiccup]] ([[User talk:Hiccup|talk]]) 03:54, 10 June 2017 (CDT)&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=User_talk:Yellows8&amp;diff=714</id>
		<title>User talk:Yellows8</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=User_talk:Yellows8&amp;diff=714"/>
		<updated>2017-06-10T06:53:36Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: /* 1-2 Switch v0 gamecard */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 1-2 Switch v0 gamecard ==&lt;br /&gt;
&lt;br /&gt;
Hi. Could you post the front and back codes of your 1-2 Switch v0 gamecard (and in the future, any other gamecards you list on the game title list). It may be helpful in working out which part of the game serial is the revision ID. Thanks. --[[User:Hiccup|Hiccup]] ([[User talk:Hiccup|talk]]) 03:53, 10 June 2017 (CDT)&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Title_list/Games&amp;diff=652</id>
		<title>Title list/Games</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Title_list/Games&amp;diff=652"/>
		<updated>2017-06-06T10:47:19Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=wikitable&lt;br /&gt;
! Title-id || Description || Region || Type&lt;br /&gt;
|-&lt;br /&gt;
| 01000320000CC000 || 1-2 Switch || ALL || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100EE6002B48000 || ACA Neo Geo Fatal Fury || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100CB2001DB8000 || ACA Neo Geo Garou: Mark of the Wolves || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100BA8001DC6000 || ACA Neo Geo Metal Slug 3 || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 01003A5001DBA000 || ACA Neo Geo Over Top || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100EB2001DCC000 || ACA Neo Geo The King of Fighters &#039;94  || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100B42001DB4000 || ACA Neo Geo The King of Fighters &#039;98 || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 01002E70032E8000 || ACA Neo Geo Turf Masters || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100CEF001DC0000 || ACA Neo Geo Waku Waku 7 || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 01009D4001DC4000 || ACA Neo Geo World Heroes Perfect || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100C5E003B40000 || ARMS Global Testpunch || ALL || Timed Demo&lt;br /&gt;
|-&lt;br /&gt;
| 010025B002E92000 || Blaster Master Zero || ALL || Demo&lt;br /&gt;
|-&lt;br /&gt;
| 0100225000FEE000 || Blaster Master Zero || ALL || Demo&lt;br /&gt;
|-&lt;br /&gt;
| 01001FA0034E2000 || Dark Witch Music Episode: Rudymical || ALL || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100E67003A86000 || Disgaea 5 Complete || ALL || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100930002EAA000 || Dragon Quest Heroes 1 &amp;amp; 2 || USA || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100F12002FC8000 || Everyone Party! Spelunker || JPN || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01009510001CA000 || FAST RMX || JPN || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01006740034F6000 || Just Dance 2017 || USA || Game&lt;br /&gt;
|-&lt;br /&gt;
| 010085300314E000 || Kamiko || USA || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100152000022000 || Mario Kart 8 Deluxe || ALL || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01006BD001E06000 || Minecraft: Nintendo Switch Edition || ALL || Game&lt;br /&gt;
|-&lt;br /&gt;
| 010031F002B66000 || Mr. Shifty || USA, EUR || Game&lt;br /&gt;
|-&lt;br /&gt;
| 010002900294A000 || NBA Playgrounds || JPN, USA || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01004C200100E000 || New Frontier Days: Founding Pioneers || ALL || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100902001014000 || Othello || JPN || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01000DC003740000 || Puyo Puyo Tetris || USA || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01004B10031BE000 || Puyo Puyo Tetris || EUR || Game&lt;br /&gt;
|-&lt;br /&gt;
| 010000A00218E000 || Splatoon 2 Global Testfire || ALL || Timed Demo&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Title_list/Games&amp;diff=634</id>
		<title>Title list/Games</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Title_list/Games&amp;diff=634"/>
		<updated>2017-06-05T08:27:31Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=wikitable&lt;br /&gt;
! Title-id || Description || Region || Type&lt;br /&gt;
|-&lt;br /&gt;
| 01000320000CC000 || 1-2 Switch || ALL || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100EE6002B48000 || ACA Neo Geo Fatal Fury || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100CB2001DB8000 || ACA Neo Geo Garou: Mark of the Wolves || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100BA8001DC6000 || ACA Neo Geo Metal Slug 3 || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 01003A5001DBA000 || ACA Neo Geo Over Top || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100EB2001DCC000 || ACA Neo Geo The King of Fighters &#039;94  || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100B42001DB4000 || ACA Neo Geo The King of Fighters &#039;98 || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 01002E70032E8000 || ACA Neo Geo Turf Masters || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100CEF001DC0000 || ACA Neo Geo Waku Waku 7 || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 01009D4001DC4000 || ACA Neo Geo World Heroes Perfect || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100C5E003B40000 || ARMS Global Testpunch || ALL || Timed Demo&lt;br /&gt;
|-&lt;br /&gt;
| 010025B002E92000 || Blaster Master Zero || ALL || Demo&lt;br /&gt;
|-&lt;br /&gt;
| 0100225000FEE000 || Blaster Master Zero || ALL || Demo&lt;br /&gt;
|-&lt;br /&gt;
| 01001FA0034E2000 || Dark Witch Music Episode: Rudymical || ALL || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100E67003A86000 || Disgaea 5 Complete || ALL || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100930002EAA000 || Dragon Quest Heroes 1 &amp;amp; 2 || USA || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100F12002FC8000 || Everyone Party! Spelunker || JPN || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01009510001CA000 || FAST RMX || JPN || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01006740034F6000 || Just Dance 2017 || USA || Game&lt;br /&gt;
|-&lt;br /&gt;
| 010085300314E000 || Kamiko || USA || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100152000022000 || Mario Kart 8 Deluxe || ALL? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01006BD001E06000 || Minecraft: Nintendo Switch Edition || ALL? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 010031F002B66000 || Mr. Shifty || USA, EUR? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 010002900294A000 || NBA Playgrounds || ? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01004C200100E000 || New Frontier Days: Founding Pioneers || ? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100902001014000 || Othello || ? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01000DC003740000 || Puyo Puyo Tetris || ? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01004B10031BE000 || Puyo Puyo Tetris || ? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 010000A00218E000 || Splatoon 2 Global Testfire || ALL || Timed Demo&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Title_list/Games&amp;diff=633</id>
		<title>Title list/Games</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Title_list/Games&amp;diff=633"/>
		<updated>2017-06-05T08:21:58Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=wikitable&lt;br /&gt;
! Title-id || Description || Region || Type&lt;br /&gt;
|-&lt;br /&gt;
| 01000320000CC000 || 1-2 Switch || ALL || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100EE6002B48000 || ACA Neo Geo Fatal Fury || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100CB2001DB8000 || ACA Neo Geo Garou: Mark of the Wolves || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100BA8001DC6000 || ACA Neo Geo Metal Slug 3 || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 01003A5001DBA000 || ACA Neo Geo Over Top || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100EB2001DCC000 || ACA Neo Geo The King of Fighters &#039;94  || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100B42001DB4000 || ACA Neo Geo The King of Fighters &#039;98 || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 01002E70032E8000 || ACA Neo Geo Turf Masters || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100CEF001DC0000 || ACA Neo Geo Waku Waku 7 || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 01009D4001DC4000 || ACA Neo Geo World Heroes Perfect || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100C5E003B40000 || ARMS Global Testpunch || ALL || Timed Demo&lt;br /&gt;
|-&lt;br /&gt;
| 010025B002E92000 || Blaster Master Zero || ALL || Demo&lt;br /&gt;
|-&lt;br /&gt;
| 0100225000FEE000 || Blaster Master Zero || ALL || Demo&lt;br /&gt;
|-&lt;br /&gt;
| 01001FA0034E2000 || Dark Witch Music Episode: Rudymical || ALL || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100E67003A86000 || Disgaea 5 Complete || ALL || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100930002EAA000 || Dragon Quest Heroes 1 &amp;amp; 2 || USA || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100F12002FC8000 || Everyone Party! Spelunker || JPN || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01009510001CA000 || FAST RMX || JPN || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01006740034F6000 || Just Dance 2017 || USA || Game&lt;br /&gt;
|-&lt;br /&gt;
| 010085300314E000 || Kamiko || USA || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100152000022000 || Mario Kart 8 Deluxe || JPN or ALL? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01006BD001E06000 || Minecraft: Nintendo Switch Edition || ? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 010031F002B66000 || Mr. Shifty || ? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 010002900294A000 || NBA Playgrounds || ? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01004C200100E000 || New Frontier Days: Founding Pioneers || ? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100902001014000 || Othello || ? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01000DC003740000 || Puyo Puyo Tetris || ? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01004B10031BE000 || Puyo Puyo Tetris || ? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 010000A00218E000 || Splatoon 2 Global Testfire || ALL || Timed Demo&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Title_list/Games&amp;diff=632</id>
		<title>Title list/Games</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Title_list/Games&amp;diff=632"/>
		<updated>2017-06-05T06:58:57Z</updated>

		<summary type="html">&lt;p&gt;Hiccup: split each element into columns&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=wikitable&lt;br /&gt;
! Title-id || Description || Region || Type&lt;br /&gt;
|-&lt;br /&gt;
| 01000320000CC000 || 1-2 Switch || ALL || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100EE6002B48000 || ACA Neo Geo Fatal Fury || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100CB2001DB8000 || ACA Neo Geo Garou: Mark of the Wolves || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100BA8001DC6000 || ACA Neo Geo Metal Slug 3 || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 01003A5001DBA000 || ACA Neo Geo Over Top || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100EB2001DCC000 || ACA Neo Geo The King of Fighters &#039;94  || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100B42001DB4000 || ACA Neo Geo The King of Fighters &#039;98 || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 01002E70032E8000 || ACA Neo Geo Turf Masters || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100CEF001DC0000 || ACA Neo Geo Waku Waku 7 || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 01009D4001DC4000 || ACA Neo Geo World Heroes Perfect || ALL || VC&lt;br /&gt;
|-&lt;br /&gt;
| 0100C5E003B40000 || ARMS Global Testpunch || ALL || Timed Demo&lt;br /&gt;
|-&lt;br /&gt;
| 010025B002E92000 || Blaster Master Zero || ALL || Demo&lt;br /&gt;
|-&lt;br /&gt;
| 0100225000FEE000 || Blaster Master Zero || ALL || Demo&lt;br /&gt;
|-&lt;br /&gt;
| 01001FA0034E2000 || Dark Witch Music Episode: Rudymical || ALL || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100E67003A86000 || Disgaea 5 Complete || ALL || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100930002EAA000 || Dragon Quest Heroes 1 &amp;amp; 2 || USA || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100F12002FC8000 || Everyone Party! Spelunker || JPN || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01009510001CA000 || FAST RMX || JPN || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01006740034F6000 || Just Dance 2017 || USA || Game&lt;br /&gt;
|-&lt;br /&gt;
| 010085300314E000 || Kamiko || USA || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100152000022000 || Mario Kart 8 Deluxe || ? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01006BD001E06000 || Minecraft: Nintendo Switch Edition || ? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 010031F002B66000 || Mr. Shifty || ? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 010002900294A000 || NBA Playgrounds || ? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01004C200100E000 || New Frontier Days: Founding Pioneers || ? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 0100902001014000 || Othello || ? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01000DC003740000 || Puyo Puyo Tetris || ? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 01004B10031BE000 || Puyo Puyo Tetris || ? || Game&lt;br /&gt;
|-&lt;br /&gt;
| 010000A00218E000 || Splatoon 2 Global Testfire || ALL || Timed Demo&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hiccup</name></author>
	</entry>
</feed>