Changes

5,573 bytes added ,  17:30, 20 March 2016
Move general information from "Title List" to this page.
Line 1: Line 1:  +
The Nintendo 3DS utilizes a similar title-based organization as seen in the Wii and DSi platforms. The update server is located  [http://nus.cdn.c.shop.nintendowifi.net/ccs/download/ here]. When using SSL, the update/shop servers must be accessed via SSLv3.
 +
 +
The organization of Title IDs has not been documented fully yet. Region info isn't stored in title IDs however there does appear to be evidence that the regions are sequential, similar to how Wii System Menu Updates are ordered: JPN USA EUR KOR and CHN (introduced with the DSi). 3DS has one additional region: TWN.
 +
 +
Note: The terms 'Title ID', 'Partition ID' and 'Media ID' are interchangeable.
 +
 +
The 3DS retrieves system [[CommonETicket|tickets]] with SOAP request GetSystemCommonETicket, instead of directly downloading the cetk with HTTPS. The cetk is still accessible via HTTP, however 3DS doesn't use direct HTTP for this.
 +
 +
 +
'''TitleID Structure''': 0xCCCCABCDLLLLLLRR
 +
 +
* CCCC defines the console '''Platform''' (5=WiiU, 4=3DS, 3=DSi, 1=[http://wiibrew.org/wiki/Title_database Wii])
 +
* ABCD defines the '''Content Category''' of the title, Demo, DLPChild, etc.
 +
* LLLLLL For CTR titles, this is the title's '''Unique ID'''. For TWL converted titles this is in two sections grouped as SSLLLL. SS is the old title identification used by the DSi and is made redundant by 'ABCD'. LLLL is the TWL title's 'Unique ID'. There are restrictions on the Unique ID, see below for more info.
 +
* RR This is the Title ID '''Variation''', and has various uses.
 +
 +
 +
'''Content Categories''':
 +
 +
This u16 is a collection bit mask flag. Each Category is a group of one or more bit masks.
 +
 +
Specific Bitmask Flags:
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Category
 +
!  Bitmask
 +
|-
 +
|  Normal
 +
|  0x0
 +
|-
 +
|  DlpChild
 +
|  0x1
 +
|-
 +
|  Demo
 +
|  0x2
 +
|-
 +
|  Contents
 +
|  0x3
 +
|-
 +
|  AddOnContents
 +
|  0x4
 +
|-
 +
|  Patch
 +
|  0x6
 +
|-
 +
|  CannotExecution
 +
|  0x8
 +
|-
 +
|  System
 +
|  0x10
 +
|-
 +
|  RequireBatchUpdate
 +
|  0x20
 +
|-
 +
|  NotRequireUserApproval
 +
|  0x40
 +
|-
 +
|  NotRequireRightForMount
 +
|  0x80
 +
|-
 +
|  CanSkipConvertJumpId
 +
|  0x100
 +
|-
 +
|  TWL
 +
|  0x8000
 +
|}
 +
 +
* TWL Category bit mask are carried over from original TWL category bitmasks (ignoring bit mask 0x8000), so TWL system titles have the bitmask of 0x8001.
 +
 +
* System titles (TWL and CTR) are eligible to be updated during a System Update.
 +
 +
* Bit Mask 0x4000 appears to be reserved, as it renders the ''TWL'' and ''System'' bit masks useless.
 +
 +
'''Unique ID Restrictions''':
 +
 +
For the CTR titles, there appears to be is a correlation between Unique IDs (UID) and 3DS 'title types'. For developer titles this is known(shown below), and retail titles *appear* to follow suite. It is unknown if this correlation is enforced on retail units, or if it is just for organisation purposes.
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
!  TITLE TYPE
 +
!  UNIQUE ID RANGE
 +
|-
 +
|  System
 +
|  0x0 - 0x2FF
 +
|-
 +
|  Application
 +
|  0x300 - 0xF7FFF
 +
|-
 +
|  Evaluation
 +
|  0xF8000 -0xFFFFF
 +
|-
 +
|  Prototype*
 +
|  0xFF000 - 0xFF3FF
 +
|}
 +
<nowiki>*</nowiki>On the home menu, titles with UIDs within the 'Prototype' range, appear on the home menu after install without the gift fanfare.
 +
 +
ProgramID/titleID low bitmask 0xF0000000(uniqueID bitmask 0xF00000) seems to be related to which hardware the title is allowed to run on. 3DS code tends to clear this bitmask when handling programIDs. This bitmask is normally zero. When this is 0x2, this indicates that the title only runs on [[New_3DS]](that is, programID-low 0x20000000 / uniqueID 0x200000).
 +
 +
'''TitleID Variation''':
 +
 +
This u8 allows enumeration of titles from the same category and unique ID. Common uses are explained below:
 +
 +
* CTR System Titles: The 3DS has two copies of most modules/applets/archives for usage with either the NATIVE_FIRM or SAFE_MODE_FIRM. This is allowed for, by changing the title ID variation of the title to match the core version set by the FIRM it is designed to be used with:
 +
{| class="wikitable" border="1"
 +
|-
 +
!  RR
 +
!  MEANING
 +
|-
 +
|  02
 +
|  System Title (Core version 0x2)
 +
|-
 +
|  03
 +
|  SAFE_MODE System Title (Core version 0x3)
 +
|}
 +
Normally on retail SAFE_MODE ARM11 [[NCCH#CXI|CXI]] titles can't be launched, since the [[Configuration_Memory|system]] core version doesn't match the CXI exheader core version.
 +
 +
* Only most non-Normal Applications are known to utilise Title ID variation, this is explained in their respective sections on this page.
 +
 +
* [[3DS Development Unit Software|Dev Menu]] installs CTR Applications with a TitleID variation of 0x02 to the CTR NAND.
 +
 +
* Title ID variation is ignored for TWL titles, this value is carried over from the original TWL title ID and is used for region lock:
 +
 +
=== Versions ===
 +
 +
v## = 0xHHHH = 0bBBBBBBBB...
 +
 +
* The version major,minor and micro can be extracted from the version number by converting the 16 bit number to binary
 +
* 6 bits : Major, this matches the NCCH remaster-version.
 +
* 6 bits : Minor
 +
* 4 bits : Micro ('Build' in some contexts)
 +
* i.e. v2069 (Taken from 000400DB00017302) = 0b000010 000001 0101 means that the title version is v2.1.5. For reasons unknown, the CVer build, stored in the RomFS of the title, has always been zero (at time of writing), regardless of the CVer build in the TMD. So when predicting the firmware version, this should be taken into account.
 +
 +
NOTE: This Title list is a condensed version, only the System Titles lists are full lists. For a full list of titles on Nintendo's CDN, see [http://mtheall.com/~mtheall/tmdlist.php here]. The reports/title-lists from [https://yls8.mtheall.com/ninupdates/reports.php here] are automatically obtained from the system update SOAP.
 +
 +
= Data Structure =
 +
 
[[Title list|Titles]] installed to the 3DS are installed to either the NAND(System and Application) or SD Card(Application only), and their respective directory locations are:
 
[[Title list|Titles]] installed to the 3DS are installed to either the NAND(System and Application) or SD Card(Application only), and their respective directory locations are:
  
549

edits