Changes

3,807 bytes added ,  20:44, 26 August 2017
m
Line 2: Line 2:     
== Overview ==
 
== Overview ==
These are titles which provide downloadable content to a specific title. The reason why these titles can only be purchased in game, is because all DLC content is under one titleID, downloading via the eShop would download all DLC content. And because all DLC content is under one title ID, they are viewed as one title in system settings, and individual DLC can only be deleted from within the game which uses the DLC.
+
These are titles which provide downloadable content to a specific title. The reason why these titles can only be purchased in game, is because all DLC content is under a set of title(s), downloading via the eShop would download all DLC content. And because all DLC content is under a set of title(s), they are viewed as one(?) title in system settings, and individual DLC can only be deleted from within the game which uses the DLC.
 +
 
 +
The titleID-low for DLC is: ((uniqueID<<8) | DLC_title_index). DLC_title_index starts at zero. Each DLC item is grouped under a DLC_title_index. Usually an application only has one DLC_title_index, but for applications which have a *lot* of DLC there's more than one DLC_title_index(JPN Home Menu for themes for example).
 +
 
 +
Every DLC title include [[NCCH]] partitions. The first one is always content metadata.
 +
 
 +
== Content metadata structure ==
 +
The first [[NCCH]] partition of a DLC title. It determines region, language and DLC icons. The ExeFS section of content metadata only contains [[SMDH|icon]] section. The RomFS section contains "icons" directory, a MetaDataContentHeader.bin file and some ContentInfoArchive files.
 +
 
 +
=== icons directory ===
 +
Contains DLC icons (.icn files).
 +
 
 +
=== MetaDataContentHeader.bin ===
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Offset
 +
!  Size
 +
!  Description
 +
|-
 +
|  0x0
 +
|  0x4
 +
|  Unknown
 +
|-
 +
|  0x4
 +
|  0x4
 +
|  Number of available DLC
 +
|-
 +
|  0x8
 +
|  0x4
 +
|  Number of .icn files in "icons" directory
 +
|-
 +
|  0xC
 +
|  0x4
 +
|  Company Code
 +
|-
 +
|  0x10
 +
|  0x4
 +
|  Magic number, always 0xDEADBEEF (little endian)
 +
|-
 +
|  0x14
 +
|  0x4 * 7
 +
|  Region data (see below)
 +
|-
 +
|  0x30
 +
|  0x4
 +
|  Number of ContentInfoArchive file (n)
 +
|-
 +
|  0x34
 +
|  0x4 * n
 +
|  Region data of ContentInfoArchive files (see below).
 +
|}
 +
 
 +
==== Region data ====
 +
The first, the second and the third record of the main region data is often assigned to JPN, USA, EUR region respectively.
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Offset
 +
!  Size
 +
!  Description
 +
|-
 +
|  0x0
 +
|  0x2
 +
|  Region ID
 +
|-
 +
|  0x2
 +
|  0x2
 +
|  Language ID
 +
|}
 +
 
 +
==== Region IDs ====
 +
{| class="wikitable" border="1"
 +
|-
 +
!  ID
 +
!  Region code
 +
!  Region name
 +
|-
 +
|  0x0
 +
|  JPN
 +
|  Japan
 +
|-
 +
|  0x1
 +
|  USA
 +
|  North America
 +
|-
 +
|  0x2
 +
|  EUR
 +
|  Europe
 +
|-
 +
|  0x3
 +
 +
|  Australia
 +
|-
 +
|  0x4
 +
|  CHN
 +
|  China
 +
|-
 +
|  0x5
 +
|  KOR
 +
|  Korea
 +
|-
 +
|  0x6
 +
|  TWN
 +
|  Taiwan
 +
|}
 +
 
 +
==== Language IDs ====
 +
{| class="wikitable" border="1"
 +
|-
 +
!  ID
 +
!  Language code
 +
!  Language
 +
|-
 +
|  0x0
 +
|  ja
 +
|  Japanese
 +
|-
 +
|  0x1
 +
|  en
 +
|  English
 +
|-
 +
|  0x2
 +
|  fr
 +
|  French
 +
|-
 +
|  0x3
 +
|  de
 +
|  German
 +
|-
 +
|  0x4
 +
|  it
 +
|  Italian
 +
|-
 +
|  0x5
 +
|  es
 +
|  Spanish
 +
|-
 +
|  0x7
 +
|  ko
 +
|  Korean
 +
|-
 +
|  0x8
 +
|  nl
 +
|  Dutch
 +
|-
 +
|  0x9
 +
|  pt
 +
|  Portuguese
 +
|-
 +
|  0xA
 +
|  ru
 +
|  Russian
 +
|-
 +
|  0xB
 +
|  zh
 +
|  Traditional Chinese
 +
|}
 +
 
 +
==== Example ====
 +
MetaDataContentHeader.bin in Fire Emblem Awakening DLC (EUR):
 +
 
 +
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
 +
 +
00000000  01 00 00 00 19 00 00 00 19 00 00 00 30 00 30 00  ............0.0.
 +
00000010  EF BE AD DE FF FF FF FF FF FF FF FF 02 00 01 00  ï¾.Þÿÿÿÿÿÿÿÿ....
 +
00000020  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
 +
00000030  08 00 00 00 02 00 01 00 02 00 05 00 02 00 02 00  ................
 +
00000040  02 00 03 00 02 00 04 00 02 00 08 00 02 00 09 00  ................
 +
00000050  02 00 0A 00                                      ....
 +
 
 +
=== ContentInfoArchive files ===
 +
The name of these files follow this format: ContentInfoArchive_<region code>_<language code>.bin (<region code> and <language code> are determined in MetaDataContentHeader.bin)
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Offset
 +
!  Size
 +
!  Description
 +
|-
 +
|  0x0
 +
|  0x4
 +
|  Unknown
 +
|-
 +
|  0x4
 +
|  0x4
 +
|  Number of DLC (n)
 +
|-
 +
|  0x8
 +
|  0x88 * n
 +
|  DLC data (see below)
 +
|}
 +
 
 +
==== DLC data ====
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Offset
 +
!  Size
 +
!  Description
 +
|-
 +
|  0x0
 +
|  0x40
 +
|  Content title (UTF-8)
 +
|-
 +
|  0x40
 +
|  0x80
 +
|  Content description (UTF-8)
 +
|-
 +
|  0xC0
 +
|  0x4
 +
|  .icn file index.
 +
|-
 +
|  0xC4
 +
|  0x4
 +
|  Unknown
 +
|}
    
== List ==
 
== List ==
Line 16: Line 230:  
| [[New 3DS]] [[Internet Browser]] DLC, used for disabling the web filter.
 
| [[New 3DS]] [[Internet Browser]] DLC, used for disabling the web filter.
 
| v0
 
| v0
 +
|-
 +
| 0015D800
 +
| USA
 +
| IronFall Invasion [DLC]
 +
| Unknown
 
|-
 
|-
 
| 00022800
 
| 00022800
Line 55: Line 274:  
| EUR
 
| EUR
 
| New SUPER MARIO BROS. 2 [DLC]
 
| New SUPER MARIO BROS. 2 [DLC]
| v0, v48
+
| v0 (may never have existed), v16, v48
 +
|-
 +
| 000B8900
 +
| KOR
 +
| New SUPER MARIO BROS. 2 [DLC]
 +
| v16
 
|-
 
|-
 
| 00084F00
 
| 00084F00
Line 117: Line 341:  
| v0
 
| v0
 
|}
 
|}
 +
 +
== Tools ==
 +
* [https://github.com/Gericom/EveryFileExplorer EveryFileExplorer] Open .icn files.
166

edits