| Same as USA/EUR/JPN starting with the USA/EUR/JPN [[4.0.0-7]] title-version

| Same as USA/EUR/JPN starting with the USA/EUR/JPN [[4.0.0-7]] title-version

| Same as CHN.

| Same as CHN.

Line 1,543:

Line 1,543:

| 00000202

| 00000202

| AGB_FIRM ( GBA Firmware )

| AGB_FIRM ( GBA Firmware )

−

| [[3.0.0-5|v519]], [[4.0.0-7|v2576]], [[6.0.0-11|v3665]]

+

| [[3.0.0-5|v519]], v1553, [[4.0.0-7|v2576]], [[6.0.0-11|v3665]]

| [[4.0.0-7|v2576]]

| [[4.0.0-7|v2576]]

| [[4.0.0-7|v2576]], [[6.0.0-11|v3665]]

| [[4.0.0-7|v2576]], [[6.0.0-11|v3665]]

Revision as of 09:35, 3 February 2015

The Nintendo 3DS utilizes a similar title-based organization as seen in the Wii and DSi platforms. The update server is located 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.

The 3DS retrieves system 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.

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:

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.

TITLE TYPE

UNIQUE ID RANGE

System

0x0 - 0x2FF

Application

0x300 - 0xF7FFF

Evaluation

0xF8000 -0xFFFFF

Prototype*

0xFF000 - 0xFF3FF

*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:

RR

MEANING

02

System Title (Core version 0x2)

03

SAFE_MODE System Title (Core version 0x3)

Normally on retail SAFE_MODE ARM11 CXI titles can't be launched, since the 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.

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

The version major,minor and micro can be extracted from the version number by converting the 16 bit number to binary

6 bits : Major

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 here. The reports/title-lists from here are automatically obtained from the system update SOAP.

Regardless of version, the ExeFS:/.code for mset is the same for USA/EUR/JPN. The 4.0.0-7 version of mset(4.1.0-8 for TWN) has the same ExeFS:/.code for all regions(JPN, USA, EUR, CHN, KOR, TWN). The 5.0.0-11 mset ExeFS:/.code is the same for all regions as well, except for CHN. The 7.0.0-13 mset ExeFS:/.code is unique for the following regions: CHN, KOR, and TWN.

Most of these processes are applets. There can only be one application here(Home Menu, Internet Browser, Friend-List, etc) with programID-high 00040030 running at a time. When directly launching one of these 00040030 applications with Home Menu, the Home Menu process will terminate once the process is launched. When returning to Home Menu from that launched process, the Home Menu process is launched again.

dmnt, debugger sysmodule. This use devunit-only HIO for devunit<>pc comms. This only exists for development units(launched by NS during startup depending on certain Configuration_Memory fields' values). This is installed at the factory, then later deleted at the factory on retail units.

Once Home Menu finishes loading, all of the above system modules are running, except for MP, RO, and act which are automatically loaded when a process requires them. When PM-module terminates processes, it will check whether the processes listed as dependencies for this process are listed as dependencies for other processes. Any processes which are no longer listed in any processes dependencies lists are then terminated. On New_3DS, the only New3DS-specific system-module which automatically gets loaded during system boot is qtm.

All of the above system modules use the "BASE" memory-region(specified in the exheader), except when listed otherwise for certain modules.

When handling the exheader dependency list starting with 8.0.0-18, Old3DS FIRM PM-module now skips handling titles in this list which have any bits in programID-low bitmask 0xF0000000 set(with 8.0.0-18 this is hard-coded). The exheader dependency list handling change is for the New 3DS system-module(s), which do not exist on Old3DS.

NATIVE_FIRM and SAFE_MODE_FIRM for the initial versions are exactly the same, besides core-version fields. SAFE_MODE_FIRM is used for running SAFE_MODE titles, on retail SAFE_MODE_FIRM seems to be only used for running the System Updater application. When a GBA VC title is launched, AGB_FIRM is launched to handle running this title. GBA VC savegames stored under SD card /title/<TID>/data use a custom format, this is handled by AGB_FIRM.

TitleID Low

Description

USA/EUR/JPN Versions

CHN Versions

KOR Versions

TWN Versions

00000001

Unknown, very similar to SAFE_MODE_FIRM. Exists only on dev units and seems to only be used by SystemUpdaters.

0004800F - System Data Archives

New system updates only block DS flash-cards when the above whitelist was updated, or when TWL_FIRM was updated. The whitelist contains the data used for detecting flash-cards, this is used by TWL_FIRM.

This titleID-high/programID-high is used for the titles sent over Download Play. Only one 00040001 Download Play title is installed to NAND /title at a time. There can be a maximum of 255 Download Play child titles per Unique ID, indexed by Title ID Variation. The legal index range: 0x0 - 0xff.

TWL Application Titles

Content Category

Bit Mask(s)

Category Bit Mask

Application (DSiWare)

TWL|0x4

0x8004

00048004 - DSiWare

Although these have a titleID high separate from DSi and a titleID is stored in the SRLs, the content of these SRLs are identical to DSi.