<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.3dbrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ihaveamac</id>
	<title>3dbrew - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.3dbrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ihaveamac"/>
	<link rel="alternate" type="text/html" href="https://www.3dbrew.org/wiki/Special:Contributions/Ihaveamac"/>
	<updated>2026-04-10T04:59:37Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=IDBE&amp;diff=23727</id>
		<title>IDBE</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=IDBE&amp;diff=23727"/>
		<updated>2026-01-12T01:30:22Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: the raw IDBE response includes the Title ID&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;IDBE is Nintendo&#039;s title icon database. Entries contain title icon, region, and name (in various languages). Similar to the [[SMDH]]. All game titles are on the server (excluding DSiWare?), including demos and updates.&lt;br /&gt;
&lt;br /&gt;
== URLs ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://idbe-ctr.cdn.nintendo.net&amp;lt;/nowiki&amp;gt;/icondata/&#039;&#039;&#039;%02X&#039;&#039;&#039;/&#039;&#039;&#039;%016llX&#039;&#039;&#039;.idbe&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://idbe-ctr.cdn.nintendo.net&amp;lt;/nowiki&amp;gt;/icondata/&#039;&#039;&#039;%02X&#039;&#039;&#039;/&#039;&#039;&#039;%016llX&#039;&#039;&#039;-&#039;&#039;&#039;%d&#039;&#039;&#039;.idbe&lt;br /&gt;
&#039;&#039;&#039;%02X&#039;&#039;&#039; seems to always be 0x10 (?)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;%016llX&#039;&#039;&#039; is the title id.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;%d&#039;&#039;&#039; is an optional title version.&lt;br /&gt;
== Encryption ==&lt;br /&gt;
The icon database is encrypted with AES-128 CBC. All icons use the same IV and one of 4 possible keys (as specified by the key index in the header).&lt;br /&gt;
&lt;br /&gt;
The IV/keys are hardcoded in the friend list applet. [http://wiiubrew.org/wiki/Nn_idbe.rpl#Encryption They are also on the WiiU].&lt;br /&gt;
&lt;br /&gt;
== Data ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&#039;&#039;&#039;Offset&#039;&#039;&#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&#039;&#039;&#039;Size&#039;&#039;&#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0||0x1||? (usually zero)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1||0x1||Key index&lt;br /&gt;
|-&lt;br /&gt;
| 0x2||0x36D0||Encrypted data&lt;br /&gt;
|}&lt;br /&gt;
=== Encrypted Data ===&lt;br /&gt;
Icon data is uncompressed RGB565.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&#039;&#039;&#039;Offset&#039;&#039;&#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&#039;&#039;&#039;Size&#039;&#039;&#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0||0x20||SHA256 hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x20||0x8||Title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x28||0x8||?&lt;br /&gt;
|-&lt;br /&gt;
| 0x30||0x4||[[SMDH#Region_Lockout|Region lockout]] (u32 little endian)&lt;br /&gt;
|-&lt;br /&gt;
| 0x34||0x1C||?&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 + &#039;&#039;i&#039;&#039; * 0x200||0x200||[[SMDH#Application_Titles|Title struct]] where &#039;&#039;i&#039;&#039; = language index&lt;br /&gt;
|-&lt;br /&gt;
| 0x2050||0x480||24x24 Icon data&lt;br /&gt;
|-&lt;br /&gt;
| 0x24D0||0x1200||48x48 Icon data&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Serials&amp;diff=23290</id>
		<title>Serials</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Serials&amp;diff=23290"/>
		<updated>2025-02-03T16:41:45Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* Console Serial Numbers */ JE region suffix exists (known on New 2DS XL at least)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page talks about the 3DS products&#039; serial number and model number structures (the console, manual, accessories, games, etc...).&lt;br /&gt;
&lt;br /&gt;
== Console Serial Numbers ==&lt;br /&gt;
&lt;br /&gt;
A 3DS console serial number is composed of at least two letters followed by nine decimal digits.  The ninth digit is a &amp;quot;check digit&amp;quot;, meaning that it is derived from the other digits.&lt;br /&gt;
&lt;br /&gt;
The check digit is an industry-standard algorithm, the one used for UPC codes.  To calculate the check digit of a 3DS 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: CW404567772&lt;br /&gt;
&lt;br /&gt;
The non-check digits are 40456777.  Separating into odd and even groups, we get the following:&lt;br /&gt;
&lt;br /&gt;
Odds: 4 + 4 + 6 + 7 = 21&lt;br /&gt;
Evens: 0 + 5 + 7 + 7 = 19&lt;br /&gt;
&lt;br /&gt;
Applying the algorithm, we get ((3 * 19) + 21) % 10 = 8, which is not 0, thus 10 - 8 = 2, matching the example&#039;s check digit.&lt;br /&gt;
&lt;br /&gt;
The letter prefixes are a letter specifying the device, followed by one letter specifying the region in which it was sold.  In some regions, a third letter is present; a current guess is that this letter distinguishes among factories for a given sales region.  Note that several different sales regions&#039; console may be considered to be the same region for region-locking purposes, such as Europe and Australia.&lt;br /&gt;
&lt;br /&gt;
The current serial number scheme began with the DSi, hence its listing in the tables below.  Among standalone consoles, the Wii U belongs to this scheme as well; the Switch started a new scheme.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Model !! Device Prefix (Retail) !! Device Prefix (Dev/Test)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Wii&#039;&#039; || L || R&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;DSi&#039;&#039; || T || V&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;DSi XL/LL&#039;&#039; || W || D&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Nintendo Zone Box&#039;&#039; || Z || &#039;&#039;N/A&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Wii U&#039;&#039; || F/G || &#039;&#039;unknown&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Wii U gamepad&#039;&#039; || J || J&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;3DS&#039;&#039; || C || E&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;3DS XL/LL&#039;&#039; || S || R&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;2DS&#039;&#039; || A || P&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;New 3DS&#039;&#039; || Y || Y&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;New 3DS XL/LL&#039;&#039; || Q || Q&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;New 2DS XL/LL&#039;&#039; || N || N&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Some United Kingdom models&#039; serial numbers will include &amp;quot;UH&amp;quot; after the device model prefix.&lt;br /&gt;
&lt;br /&gt;
Test (&amp;quot;Panda&amp;quot;) units with the same prefix as retail can be distinguished by test units having 00 or 01 as the first two digits of the serial number portion.  00 was used with the New 3DS and New 3DS XL for test units; 01 was used with the New 2DS XL test unit.  Preview versions of the N2DS XL given out to the press had 01; these appear to have been test units with the development titles deleted.&lt;br /&gt;
&lt;br /&gt;
Old 3DS development systems (Partner-CTR, IS-CTR-BOX, IS-SPR-BOX) use the &amp;quot;E&amp;quot; and &amp;quot;R&amp;quot; prefixes like test systems, but have 90 (Partner-CTR) or 91 (IS-CTR-BOX, IS-SPR-BOX) as their first two digits.  Similarly, the main New 3DS development unit, IS-SNAKE-BOX, uses the Y prefix (same as retail) with 91.  It is currently unknown what is the serial number format of the rare New 3DS XL development system (IS-CLOSER-BOX).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Sales Region !! Region Lock !! Region Suffix&lt;br /&gt;
|-&lt;br /&gt;
| Japan || Japan || JE, JF, JH, JM&lt;br /&gt;
|-&lt;br /&gt;
| North America || North America || W&lt;br /&gt;
|-&lt;br /&gt;
| Brazil || North America || B&lt;br /&gt;
|-&lt;br /&gt;
| Middle East / Southeast Asia || North America || S&lt;br /&gt;
|-&lt;br /&gt;
| Europe || Europe || EE, EF, EH, EM&lt;br /&gt;
|-&lt;br /&gt;
| Australia || Europe || AH, AG&lt;br /&gt;
|-&lt;br /&gt;
| South Korea || Korea || KF, KH, KM&lt;br /&gt;
|-&lt;br /&gt;
| China (iQue) || China || CF, CH, CM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Console Models ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Device !! Product Code&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;DS&#039;&#039; || NTR&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;DS lite&#039;&#039; || USG&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;DSi&#039;&#039; || TWL&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;DSi XL/LL&#039;&#039; || UTL&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Wii U&#039;&#039; || WUP&lt;br /&gt;
|-&lt;br /&gt;
| 3DS || CTR&lt;br /&gt;
|-&lt;br /&gt;
| 3DS XL/LL || SPR&lt;br /&gt;
|-&lt;br /&gt;
| 2DS || FTR&lt;br /&gt;
|-&lt;br /&gt;
| [[New 3DS]] || KTR&lt;br /&gt;
|-&lt;br /&gt;
| [[New 3DS]] XL/LL || RED&lt;br /&gt;
|-&lt;br /&gt;
| New 2DS XL/LL || JAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The DS had the product code NTR (short for Nitro), so we see the TR is recurring.&lt;br /&gt;
&lt;br /&gt;
== Title ID and Unique ID ==&lt;br /&gt;
&#039;&#039;see [[Titles]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== NCCH Product Code ==&lt;br /&gt;
&lt;br /&gt;
This serial is similiar to the &amp;quot;physical serial&amp;quot; described later in this page; it is the canonical identifier for a specific title in the field of business formalities with Nintendo, but this is not reflected in the 3DS&#039;s software architecture (where it is vastly unused in favor of the Title ID: it is therefore considered the successor of the &amp;quot;internal name&amp;quot; contained in ROMs of previous handhelds), is not guaranteed to be unique.&lt;br /&gt;
&lt;br /&gt;
The product code is located in a [[NCCH]]&#039;s header (not its ExHeader).&lt;br /&gt;
&lt;br /&gt;
The product code &amp;quot;CTR-P-CTAP&amp;quot; is the default generic product code for NCCH files. Most [[NCSD|NCCHs apart from the first one]] in a title are generally CTR-P-CTAP.&lt;br /&gt;
Referring to &amp;quot;the product code of a title&amp;quot; is therefore a simplification for &amp;quot;the product code of the NCCH in its first partition&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So, for example, a Japanese copy of Ridge Racer 3D would have a product code of &amp;quot;CTR-P-ARRJ&amp;quot; and a serial of &amp;quot;LNA-CTR-ARRJ-JPN&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A Nintendo-assigned product code follows this format, however, there is no requirement for a product code to match or resemble this structure as long as it&#039;s within the length limit:&lt;br /&gt;
&lt;br /&gt;
[CTR/KTR]-[Category letter]-[Type][Identifier][Region]-[Sub ID]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category letter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| P || Cartridge software, or downloadable versions of them.&lt;br /&gt;
|-&lt;br /&gt;
| N || Digital-only releases, including [[Title list|system applications and applets]].&lt;br /&gt;
|-&lt;br /&gt;
| M || [[DLC]]&lt;br /&gt;
|-&lt;br /&gt;
| T || [[eShop Demos]], excluding so-called &amp;quot;special demos&amp;quot; which are category N.&lt;br /&gt;
|-&lt;br /&gt;
| U || [[Title list#0004000E - Add-on Content (Updates)|Patches]] for category P titles.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;sub ID&amp;quot; only applies to DLC, demos, and local copies of Download Play titles. It&#039;s a 2-digit number associated with the [[Title list|Title ID Variation]].&lt;br /&gt;
&lt;br /&gt;
See the next chapter for explanation of the other components of the Product Code.&lt;br /&gt;
&lt;br /&gt;
== Physical Serial ==&lt;br /&gt;
[Product][Retail/Demo]-[Platform]-[Type][Game ID][Region]-[Label Region]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field !! Length !! Description !! colspan=2 | Values&lt;br /&gt;
|-&lt;br /&gt;
|-align=center&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | Product&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | 2&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | Product type&lt;br /&gt;
|-&lt;br /&gt;
| LN || Cartridge&lt;br /&gt;
|-&lt;br /&gt;
| MA || Instruction manual&lt;br /&gt;
|-&lt;br /&gt;
| TS || Game box&lt;br /&gt;
|-&lt;br /&gt;
| FA || Leaflet&lt;br /&gt;
|-&lt;br /&gt;
| MK || Quick-start Guide&lt;br /&gt;
|-align=center&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Retail/Demo&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | 1 &lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| A || Retail&lt;br /&gt;
|-&lt;br /&gt;
| Z || Demo&lt;br /&gt;
|-align=center&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | CTR/KTR&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | 3&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Platform&lt;br /&gt;
|-&lt;br /&gt;
| CTR || 3DS&lt;br /&gt;
|-&lt;br /&gt;
| KTR || New 3DS&lt;br /&gt;
|-align=center&lt;br /&gt;
| rowspan=&amp;quot;11&amp;quot; | Type&lt;br /&gt;
| rowspan=&amp;quot;11&amp;quot; | 1&lt;br /&gt;
| rowspan=&amp;quot;11&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| A || retail&lt;br /&gt;
|-&lt;br /&gt;
| B || retail&lt;br /&gt;
|-&lt;br /&gt;
| C || used for N3DS exclusive retail and default &#039;CTAP&#039;&lt;br /&gt;
|-&lt;br /&gt;
| E || used for card 2 type retail cartridges&lt;br /&gt;
|-&lt;br /&gt;
| H || used for built in applications like [[Mii Maker]]&lt;br /&gt;
|-&lt;br /&gt;
| J || normal eShop Title&lt;br /&gt;
|-&lt;br /&gt;
| K || normal eShop Title?&lt;br /&gt;
|-&lt;br /&gt;
| S || 3D Classics&lt;br /&gt;
|-&lt;br /&gt;
| P || used with GBA eShop titles&lt;br /&gt;
|-&lt;br /&gt;
| T || used with NES eShop titles&lt;br /&gt;
|-align=center&lt;br /&gt;
| Identifier&lt;br /&gt;
| 2&lt;br /&gt;
| colspan=3 |Game ID (two alphanumeric characters)&lt;br /&gt;
|-align=center&lt;br /&gt;
| rowspan=&amp;quot;10&amp;quot; | Region&lt;br /&gt;
| rowspan=&amp;quot;10&amp;quot; | 1&lt;br /&gt;
| rowspan=&amp;quot;10&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| E || English (US)&lt;br /&gt;
|-&lt;br /&gt;
| P || PAL (Europe/Australia)&lt;br /&gt;
|-&lt;br /&gt;
| J || Japanese (Japan)&lt;br /&gt;
|-&lt;br /&gt;
| K || Korean (Korea)&lt;br /&gt;
|-&lt;br /&gt;
| C || Chinese (China/Taiwan)&lt;br /&gt;
|-&lt;br /&gt;
| Y || Multiple regions&lt;br /&gt;
|-&lt;br /&gt;
| W || Tai&#039;&#039;&#039;w&#039;&#039;&#039;an(?) (Taiwan/Hong Kong)&lt;br /&gt;
|-&lt;br /&gt;
| Z || Multiple regions&lt;br /&gt;
|-&lt;br /&gt;
| A || All (region-free)&lt;br /&gt;
|-&lt;br /&gt;
|-align=center&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; | Label Region&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; | 3&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| USA || United States&lt;br /&gt;
|-&lt;br /&gt;
| EUR || Europe&lt;br /&gt;
|-&lt;br /&gt;
| CAN || Canada (US version with additional French text added to box)&lt;br /&gt;
|-&lt;br /&gt;
| AUS || Australia&lt;br /&gt;
|-&lt;br /&gt;
| JPN || Japan&lt;br /&gt;
|-&lt;br /&gt;
| KOR || Korea&lt;br /&gt;
|-&lt;br /&gt;
| TWN || Taiwan/Hong Kong&lt;br /&gt;
|-&lt;br /&gt;
| CHT || Taiwan/Hong Kong (&amp;quot;Chinese-Traditional&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| CHN || China&lt;br /&gt;
|-&lt;br /&gt;
| UKV || United Kingdom (&amp;quot;United Kingdom version&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| MDE || Saudi Arabia/U.A.E./Malaysia/Singapore (&amp;quot;Middle East&amp;quot;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Electronic Manuals ===&lt;br /&gt;
&lt;br /&gt;
Some eShop titles have [[NCCH#CFA|Electronic Manuals]] which store the product code at the end of the &#039;Health &amp;amp; Safety&#039; section of the manual. However,   product codes can differ from the above format as shown below:&lt;br /&gt;
&lt;br /&gt;
CTR-[P/N/T/U]-[Type][Game ID][Region]-[Region]-[Digit]&lt;br /&gt;
&lt;br /&gt;
CTR-[Type][Game ID][Region]-[Region]-[Digit]&lt;br /&gt;
&lt;br /&gt;
* P/N/T/U - Same as in product code structure&lt;br /&gt;
* [Type][Game ID][Region] - Same as in serial structure&lt;br /&gt;
* [Region] - A three character representation of the title region, i.e. &#039;EUR&#039; (not always present)&lt;br /&gt;
* [Digit] - A single digit usually &#039;1&#039; or &#039;0&#039; (not always present). Possibly revision or manual revision.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; These alternate versions of the product code, potentially found in [[NCCH#CFA|Electronic Manuals]] don&#039;t represent the actual product code, as found in the game&#039;s CXI. They are only found in the game&#039;s Home Menu manual, and on the game&#039;s packaging and external labeling.&lt;br /&gt;
&lt;br /&gt;
==Back of Card Serial==&lt;br /&gt;
AREPY10111 (example)&lt;br /&gt;
&lt;br /&gt;
AAAABCDEEE&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A&#039;&#039;&#039; - Identifier (last 4 digits of product code)&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;B&#039;&#039;&#039; - Production Month (numbers, then after Sep its X,Y,Z for Oct,Nov,Dec)&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;C&#039;&#039;&#039; - Production Year (2010 + C)*&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;D&#039;&#039;&#039; - Revision/Remaster Version (should match the main NCCH&#039;s Exheader Remaster Version)&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E&#039;&#039;&#039; - Production Run? (000-999)**&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;* &amp;lt;/nowiki&amp;gt;Or (2020 + C), if produced in that decade. Example [https://www.youtube.com/watch?v=DcH8mK6yXj4 here] at the 2:10 mark.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;** &amp;lt;/nowiki&amp;gt;European demo/kiosk carts have &amp;quot;08B&amp;quot; or &amp;quot;08H&amp;quot;&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Title_Database&amp;diff=22348</id>
		<title>Title Database</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Title_Database&amp;diff=22348"/>
		<updated>2023-09-13T09:16:27Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* Title Info Entry */ tickets may be larger than 0x350&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These files contain data relating to install/usage/management of installed 3DS titles. The database files are located at:&lt;br /&gt;
&lt;br /&gt;
* nand/dbs&lt;br /&gt;
* sdmc/Nintendo 3DS/&amp;lt;ID0&amp;gt;/&amp;lt;ID1&amp;gt;/dbs&lt;br /&gt;
&lt;br /&gt;
ID0 is the first 0x10-bytes from a SHA256 [[nand/private/movable.sed|hash]]. The installation of [[SD Filesystem|SD Card]] titles was introduced in the [[2.0.0-2]] update and the SD dbs files are encrypted by [[SD Filesystem|the general SD filesystem encryption rule]]. These files are [[DISA and DIFF|DIFF containers]]. These DIFF files do not use external IVFC level 4, so all database data is duplicated in the container. In this page only the inner content of the container is described.&lt;br /&gt;
&lt;br /&gt;
These files are only created on SD (via [[Application_Manager_Services|AM]]) if they don&#039;t exist when the [[eShop]] application is starting up, during network init etc (prior to showing the &amp;quot;system update required&amp;quot; dialog).&lt;br /&gt;
&lt;br /&gt;
These files are stored under this directory:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Stored on SD card&lt;br /&gt;
!  Stored in CTR-NAND&lt;br /&gt;
!  Filename&lt;br /&gt;
!  [[DISA and DIFF#CTR-9DB0|CTR-9DB0]] ID&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| ticket.db&lt;br /&gt;
| 0x0&lt;br /&gt;
| This contains the installed tickets (NAND and SD).&lt;br /&gt;
|-&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| certs.db&lt;br /&gt;
| 0x1&lt;br /&gt;
| This contains the certificate chain used to verify TMDs and other certificates.&lt;br /&gt;
|-&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| title.db&lt;br /&gt;
| 0x2&lt;br /&gt;
| Title database, this contains entries for all installed titles (TWL &amp;amp; CTR) on the 3DS (Each database is responsible for titles installed on its medium).&lt;br /&gt;
|-&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| import.db&lt;br /&gt;
| 0x3&lt;br /&gt;
| This is an Import Database, it contains entries for titles (or versions of titles) not yet installed, ready for transferring to the title.db. (Automatic Update uses this, so completing the update takes seconds.)&lt;br /&gt;
|-&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| tmp_t.db&lt;br /&gt;
| 0x4&lt;br /&gt;
| This is the temporary Title database containing one entry for the currently installed [[Download Play]] Child.&lt;br /&gt;
|-&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| tmp_i.db&lt;br /&gt;
| 0x5&lt;br /&gt;
| Similar to import.db, except it&#039;s used in conjunction with tmp_t.db, for installing [[Download Play]] Children.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The inner content of the container consists of a pre-header with size of 0x80 identifying the Database Type, followed by a BDRI container. The offsets in the BDRI header are usually relative to the offset to the start of the BDRI header (0x80 in the file)&lt;br /&gt;
&lt;br /&gt;
== Pre Header ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Database Type &amp;quot;Magic&amp;quot; (see below)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 0x78&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For ticket.db different pre header is used:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Database Type &amp;quot;Magic&amp;quot; (see below)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 0x04&lt;br /&gt;
| Unknown (always 0x00000001 ?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 0x04&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 0x04&lt;br /&gt;
| Unknown (0x30 smaller than previous one)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Database Magic ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Database Type&lt;br /&gt;
! Magic&lt;br /&gt;
|-&lt;br /&gt;
| CTR-NAND ticket.db&lt;br /&gt;
| TICK&lt;br /&gt;
|-&lt;br /&gt;
| CTR-NAND import.db&lt;br /&gt;
| NANDIDB&lt;br /&gt;
|-&lt;br /&gt;
| CTR-NAND title.db&lt;br /&gt;
| NANDTDB&lt;br /&gt;
|-&lt;br /&gt;
| CTR-NAND tmp_i.db&lt;br /&gt;
| TEMPIDB&lt;br /&gt;
|-&lt;br /&gt;
| CTR-NAND tmp_t.db&lt;br /&gt;
| TEMPIDB&lt;br /&gt;
|-&lt;br /&gt;
| SD Card import.db&lt;br /&gt;
| TEMPTDB&lt;br /&gt;
|-&lt;br /&gt;
| SD Card title.db&lt;br /&gt;
| TEMPTDB&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BDRI ==&lt;br /&gt;
&lt;br /&gt;
This is a variant of [[Inner FAT|FAT filesystem]]. It consists one &amp;quot;root&amp;quot; directory and multiple &amp;quot;files&amp;quot;. Each &amp;quot;file&amp;quot; is one title info entry described below.&lt;br /&gt;
&lt;br /&gt;
== Title Info Entry ==&lt;br /&gt;
&lt;br /&gt;
An entry contains information taken from both the application NCCH file(s) and TMD.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 8&lt;br /&gt;
| Title Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 4&lt;br /&gt;
| Title Type(usually 0x40)&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 4&lt;br /&gt;
| Title Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Flags_0&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| TMD Content ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 4&lt;br /&gt;
| CMD Content ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x1c&lt;br /&gt;
| 4&lt;br /&gt;
| Flags_1&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 4&lt;br /&gt;
| ExtdataID low (zero if title doesn&#039;t use Extdata)&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 4&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 8&lt;br /&gt;
| Flags_2&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x10&lt;br /&gt;
| Product Code&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 0x10&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x50&lt;br /&gt;
| 0x4&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x54&lt;br /&gt;
| 0x2c&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For ticket.db title info, there is a header indicates ticket count (as a Title ID can have more than one ticket installed). Then each entry contains the size, followed by the actual ticket data.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Header&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 4&lt;br /&gt;
| Amount of tickets X&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| X * (size of tickets + 4)&lt;br /&gt;
| Ticket entries&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Ticket entry&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 4&lt;br /&gt;
| Ticket data size X (often 0x350 but some DLC tickets may be larger)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| X&lt;br /&gt;
| [[Ticket|Ticket]] data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Flags_0 ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Index&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Electronic Manual&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Flags_1 ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Index&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| SD Save Data&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Flags_2 ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Index&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| DSiWare Related (Visibility on Home Menu/Export Flag?)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Found with DSiWare Titles and titles with an &#039;Application&#039; Title ID&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| DSiWare Related (Visibility on Home Menu/Export Flag?)&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTES:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It is important to note the database doesn&#039;t contain a hash of the [[Title Data Structure|.cmd]]. So if a user has more than one valid set of [[Title Data Structure|application data]] for a given .cmd Content ID they can be manually interchanged without issue. Though renaming a .cmd file to match the Content ID which the title.db is expecting will result in an error, as the CTR for the per-console encryption layer changes depending on the file path, and the MAC of the .cmd is probably generated with the .cmd Content ID in mind.&lt;br /&gt;
&lt;br /&gt;
These NAND/SD /dbs images seem to be loaded by the ARM9 while NATIVE_FIRM is booting.&lt;br /&gt;
&lt;br /&gt;
Removing ticket.db from a New-3DS with signature checks disabled will not result in an unbootable system, however all icons except Slot-1 will disappear from Home. Applets can however still be used. Recovery can be accomplished via [[Hardware|hardmod]] or [[arm9loaderhax]] plus a known good backup of the file (or the whole partition or disk); Gamecard exploits were not tested, and Browserhax did not work.&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Title_Database&amp;diff=22347</id>
		<title>Title Database</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Title_Database&amp;diff=22347"/>
		<updated>2023-09-13T09:13:12Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* Title Info Entry */ document actual ticket.db title info (multiple tickets can be installed for one Title ID)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These files contain data relating to install/usage/management of installed 3DS titles. The database files are located at:&lt;br /&gt;
&lt;br /&gt;
* nand/dbs&lt;br /&gt;
* sdmc/Nintendo 3DS/&amp;lt;ID0&amp;gt;/&amp;lt;ID1&amp;gt;/dbs&lt;br /&gt;
&lt;br /&gt;
ID0 is the first 0x10-bytes from a SHA256 [[nand/private/movable.sed|hash]]. The installation of [[SD Filesystem|SD Card]] titles was introduced in the [[2.0.0-2]] update and the SD dbs files are encrypted by [[SD Filesystem|the general SD filesystem encryption rule]]. These files are [[DISA and DIFF|DIFF containers]]. These DIFF files do not use external IVFC level 4, so all database data is duplicated in the container. In this page only the inner content of the container is described.&lt;br /&gt;
&lt;br /&gt;
These files are only created on SD (via [[Application_Manager_Services|AM]]) if they don&#039;t exist when the [[eShop]] application is starting up, during network init etc (prior to showing the &amp;quot;system update required&amp;quot; dialog).&lt;br /&gt;
&lt;br /&gt;
These files are stored under this directory:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Stored on SD card&lt;br /&gt;
!  Stored in CTR-NAND&lt;br /&gt;
!  Filename&lt;br /&gt;
!  [[DISA and DIFF#CTR-9DB0|CTR-9DB0]] ID&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| ticket.db&lt;br /&gt;
| 0x0&lt;br /&gt;
| This contains the installed tickets (NAND and SD).&lt;br /&gt;
|-&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| certs.db&lt;br /&gt;
| 0x1&lt;br /&gt;
| This contains the certificate chain used to verify TMDs and other certificates.&lt;br /&gt;
|-&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| title.db&lt;br /&gt;
| 0x2&lt;br /&gt;
| Title database, this contains entries for all installed titles (TWL &amp;amp; CTR) on the 3DS (Each database is responsible for titles installed on its medium).&lt;br /&gt;
|-&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| import.db&lt;br /&gt;
| 0x3&lt;br /&gt;
| This is an Import Database, it contains entries for titles (or versions of titles) not yet installed, ready for transferring to the title.db. (Automatic Update uses this, so completing the update takes seconds.)&lt;br /&gt;
|-&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| tmp_t.db&lt;br /&gt;
| 0x4&lt;br /&gt;
| This is the temporary Title database containing one entry for the currently installed [[Download Play]] Child.&lt;br /&gt;
|-&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| tmp_i.db&lt;br /&gt;
| 0x5&lt;br /&gt;
| Similar to import.db, except it&#039;s used in conjunction with tmp_t.db, for installing [[Download Play]] Children.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The inner content of the container consists of a pre-header with size of 0x80 identifying the Database Type, followed by a BDRI container. The offsets in the BDRI header are usually relative to the offset to the start of the BDRI header (0x80 in the file)&lt;br /&gt;
&lt;br /&gt;
== Pre Header ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Database Type &amp;quot;Magic&amp;quot; (see below)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 0x78&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For ticket.db different pre header is used:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Database Type &amp;quot;Magic&amp;quot; (see below)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 0x04&lt;br /&gt;
| Unknown (always 0x00000001 ?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 0x04&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 0x04&lt;br /&gt;
| Unknown (0x30 smaller than previous one)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Database Magic ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Database Type&lt;br /&gt;
! Magic&lt;br /&gt;
|-&lt;br /&gt;
| CTR-NAND ticket.db&lt;br /&gt;
| TICK&lt;br /&gt;
|-&lt;br /&gt;
| CTR-NAND import.db&lt;br /&gt;
| NANDIDB&lt;br /&gt;
|-&lt;br /&gt;
| CTR-NAND title.db&lt;br /&gt;
| NANDTDB&lt;br /&gt;
|-&lt;br /&gt;
| CTR-NAND tmp_i.db&lt;br /&gt;
| TEMPIDB&lt;br /&gt;
|-&lt;br /&gt;
| CTR-NAND tmp_t.db&lt;br /&gt;
| TEMPIDB&lt;br /&gt;
|-&lt;br /&gt;
| SD Card import.db&lt;br /&gt;
| TEMPTDB&lt;br /&gt;
|-&lt;br /&gt;
| SD Card title.db&lt;br /&gt;
| TEMPTDB&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BDRI ==&lt;br /&gt;
&lt;br /&gt;
This is a variant of [[Inner FAT|FAT filesystem]]. It consists one &amp;quot;root&amp;quot; directory and multiple &amp;quot;files&amp;quot;. Each &amp;quot;file&amp;quot; is one title info entry described below.&lt;br /&gt;
&lt;br /&gt;
== Title Info Entry ==&lt;br /&gt;
&lt;br /&gt;
An entry contains information taken from both the application NCCH file(s) and TMD.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 8&lt;br /&gt;
| Title Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 4&lt;br /&gt;
| Title Type(usually 0x40)&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 4&lt;br /&gt;
| Title Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Flags_0&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| TMD Content ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 4&lt;br /&gt;
| CMD Content ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x1c&lt;br /&gt;
| 4&lt;br /&gt;
| Flags_1&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 4&lt;br /&gt;
| ExtdataID low (zero if title doesn&#039;t use Extdata)&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 4&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 8&lt;br /&gt;
| Flags_2&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x10&lt;br /&gt;
| Product Code&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 0x10&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x50&lt;br /&gt;
| 0x4&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x54&lt;br /&gt;
| 0x2c&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For ticket.db title info, there is a header indicates ticket count (as a Title ID can have more than one ticket installed). Then each entry contains the size, followed by the actual ticket data.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Header&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 4&lt;br /&gt;
| Amount of tickets X&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| X * (size of tickets + 4)&lt;br /&gt;
| Ticket entries&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Ticket entry&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 4&lt;br /&gt;
| Ticket data size X (=0x350)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| X&lt;br /&gt;
| [[Ticket|Ticket]] data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Flags_0 ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Index&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Electronic Manual&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Flags_1 ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Index&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| SD Save Data&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Flags_2 ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Index&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| DSiWare Related (Visibility on Home Menu/Export Flag?)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Found with DSiWare Titles and titles with an &#039;Application&#039; Title ID&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| DSiWare Related (Visibility on Home Menu/Export Flag?)&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTES:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It is important to note the database doesn&#039;t contain a hash of the [[Title Data Structure|.cmd]]. So if a user has more than one valid set of [[Title Data Structure|application data]] for a given .cmd Content ID they can be manually interchanged without issue. Though renaming a .cmd file to match the Content ID which the title.db is expecting will result in an error, as the CTR for the per-console encryption layer changes depending on the file path, and the MAC of the .cmd is probably generated with the .cmd Content ID in mind.&lt;br /&gt;
&lt;br /&gt;
These NAND/SD /dbs images seem to be loaded by the ARM9 while NATIVE_FIRM is booting.&lt;br /&gt;
&lt;br /&gt;
Removing ticket.db from a New-3DS with signature checks disabled will not result in an unbootable system, however all icons except Slot-1 will disappear from Home. Applets can however still be used. Recovery can be accomplished via [[Hardware|hardmod]] or [[arm9loaderhax]] plus a known good backup of the file (or the whole partition or disk); Gamecard exploits were not tested, and Browserhax did not work.&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=3dbrew_talk:Copyrights&amp;diff=21477</id>
		<title>3dbrew talk:Copyrights</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=3dbrew_talk:Copyrights&amp;diff=21477"/>
		<updated>2021-02-01T21:54:05Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* Are tools involving ROMs allowed? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Are tools involving ROMs allowed? ==&lt;br /&gt;
&lt;br /&gt;
Are pages about Gateway3DS and similar tools allowed on this wiki? I didn’t see anything in the copyright notice about these tools, and I didn’t see a notice on the Gateway3DS page saying it was previously deleted. [[User:Hallowizer|Hallowizer]] ([[User talk:Hallowizer|talk]]) 02:08, 14 January 2021 (CET)&lt;br /&gt;
&lt;br /&gt;
I guess not, since Gateway3DS was deleted. [[User:Hallowizer|Hallowizer]] ([[User talk:Hallowizer|talk]]) 20:44, 1 February 2021 (CET)&lt;br /&gt;
:There was a page about it that was [https://www.3dbrew.org/wiki/Special:Log?page=Gateway_3DS once deleted] due to its purpose only being for piracy, so no. [[User:Ihaveamac|Ihaveamac]] ([[User talk:Ihaveamac|talk]]) 23:53, 1 February 2021 (CET)&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Online_Play&amp;diff=21383</id>
		<title>Online Play</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Online_Play&amp;diff=21383"/>
		<updated>2021-01-05T15:45:09Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: wikitable class&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Online Play&#039;&#039;&#039; is a functionality of the Nintendo 3DS to play games online with other people.&lt;br /&gt;
&lt;br /&gt;
==Connection==&lt;br /&gt;
First a connection to &#039;&#039;nasc.nintendowifi.net&#039;&#039; is established and the resource &#039;&#039;/ac&#039;&#039; is requested with the POST method to get the actual address of the game server and a ticket for authentication on the game server.&amp;lt;br&amp;gt;&lt;br /&gt;
A typical request to &#039;&#039;nasc.nintendowifi.net/ac&#039;&#039; has this format:&lt;br /&gt;
&lt;br /&gt;
Header:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POST https://nasc.nintendowifi.net/ac HTTP/1.1&lt;br /&gt;
Host: nasc.nintendowifi.net&lt;br /&gt;
X-GameId: 00003200&lt;br /&gt;
User-Agent: CTR FPD/000F&lt;br /&gt;
Content-Type: application/x-www-form-urlencoded&lt;br /&gt;
Content-Type: application/x-www-form-urlencoded&lt;br /&gt;
Content-Length: 841&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Body:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gameid=MDAwMDMyMDA%2A&amp;amp;sdkver=MDAwMDAw&amp;amp;titleid=MDAwNDAxMzAwMDAwMzIwMg%2A%2A&amp;amp;gamecd=LS0tLQ%2A%2A&amp;amp;gamever=MDAxNA%2A%2A&amp;amp;mediatype=MA%2A%2A&amp;amp;makercd=MDA%2A&amp;amp;unitcd=Mg%2A%2A&amp;amp;macadr=MTEyMjMzNDQ1NTY2&amp;amp;bssid=MTEyMjMzYWFiYmNj&amp;amp;apinfo=MDQ6MDAwMDAwMDAwMA%2A%2A&amp;amp;fcdcert=&amp;lt;base64 encoded fcdcert&amp;gt;&amp;amp;devname=&amp;lt;base64 encoded name of the console (utf-16)&amp;gt;&amp;amp;servertype=TDE%2A&amp;amp;fpdver=MDAwRg%2A%2A&amp;amp;devtime=MjEwMTAxMjAyNjAx&amp;amp;lang=MDE%2A&amp;amp;region=MDI%2A&amp;amp;csnum=&amp;lt;base64 encoded serial number of the 3DS system wihtout check number&amp;gt;&amp;amp;uidhmac=&amp;lt;base64 encoded of ?&amp;gt;&amp;amp;userid=&amp;lt;base64 encoded Nex [[Principal ID]]&amp;gt;&amp;amp;action=TE9HSU4%2A&amp;amp;ingamesn=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key!!Value!!Value decoded!!Notes&lt;br /&gt;
|-&lt;br /&gt;
|gameid||MDAwMDMyMDA*||00003200||&lt;br /&gt;
|-&lt;br /&gt;
|sdkver||MDAwMDAw||000000||&lt;br /&gt;
|-&lt;br /&gt;
|titleid||MDAwNDAxMzAwMDAwMzIwMg**||0004013000003202||&lt;br /&gt;
|-&lt;br /&gt;
|gamecd||LS0tLQ**||----||&lt;br /&gt;
|-&lt;br /&gt;
|gamever||MDAxNA**||0014||&lt;br /&gt;
|-&lt;br /&gt;
|mediatype||MA**||0||&lt;br /&gt;
|-&lt;br /&gt;
|makercd||MDA*||00||&lt;br /&gt;
|-&lt;br /&gt;
|unitcd||Mg**||2||&lt;br /&gt;
|-&lt;br /&gt;
|macadr||MTEyMjMzNDQ1NTY2||112233445566||MAC address of the console. Only the digits&lt;br /&gt;
|-&lt;br /&gt;
|bssid||MTEyMjMzYWFiYmNj||112233aabbcc||&lt;br /&gt;
|-&lt;br /&gt;
|apinfo||MDQ6MDAwMDAwMDAwMA**||04:0000000000||&lt;br /&gt;
|-&lt;br /&gt;
|fcdcert|| || || &lt;br /&gt;
|-&lt;br /&gt;
|devname|| || || Name of the console in UTF-16&lt;br /&gt;
|-&lt;br /&gt;
|servertype||TDE*||L1||&lt;br /&gt;
|-&lt;br /&gt;
|fpdver||MDAwRg**||000F||&lt;br /&gt;
|-&lt;br /&gt;
|devtime||MjEwMTAxMDkyMDMx||210101092031||&lt;br /&gt;
|-&lt;br /&gt;
|lang||MDE*||01||&lt;br /&gt;
|-&lt;br /&gt;
|region||MDE*||01||&lt;br /&gt;
|-&lt;br /&gt;
|csnum||Q0VGMTIzNDU2Nzg*||CEF12345678||[[Serials|Serial number]] of the device without the check digit&lt;br /&gt;
|-&lt;br /&gt;
|uidhmac||MGFmODZmYmQ*||0af86fbd||&lt;br /&gt;
|-&lt;br /&gt;
|userid||MTIzNDU2Nzg5MA**||1234567890||Nex [[Principal ID]]&lt;br /&gt;
|-&lt;br /&gt;
|action||TE9HSU4*||LOGIN||&lt;br /&gt;
|-&lt;br /&gt;
|ingamesn|| &#039;&#039;empty&#039;&#039; || &#039;&#039;empty&#039;&#039; || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Typical response to the above request:&lt;br /&gt;
&lt;br /&gt;
Header:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
NODE: pd42wfiap02&lt;br /&gt;
Content-Type: text/plain;charset=ISO-8859-1&lt;br /&gt;
Content-Length: 252&lt;br /&gt;
Date: Fri, 01 Jan 2021 09:20:55 GMT&lt;br /&gt;
Server: Nintendo Wii (http)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Body:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
locator=MzQuMjExLjIzNS4xMzU6NjAwMDA*&amp;amp;retry=MA**&amp;amp;returncd=MDAx&amp;amp;token=&amp;lt;Token for authentication on the game server&amp;gt;&amp;amp;datetime=MjAyMTAxMDEwOTIwNTU*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key!!Value!!Value decoded!!Notes&lt;br /&gt;
|-&lt;br /&gt;
|locator||MzQuMjExLjIzNS4xMzU6NjAwMDA*||34.211.235.135:60000||IP address and port of the game server&lt;br /&gt;
|-&lt;br /&gt;
|retry||MA**||0||&lt;br /&gt;
|-&lt;br /&gt;
|returncd||MDAx||001||&lt;br /&gt;
|-&lt;br /&gt;
|token|| || || Token for authentication on the game server. This token cannot be verified by the Nintendo 3DS&lt;br /&gt;
|-&lt;br /&gt;
|datetime||MjAyMTAxMDEwOTIwNTU*||20210101092055||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Internet_Browser&amp;diff=21347</id>
		<title>Internet Browser</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Internet_Browser&amp;diff=21347"/>
		<updated>2020-11-17T00:04:34Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* Old3DS browser */ 11.9 and 11.14&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The 3DS Internet Browser was added in the June 2011 Update for JPN/EUR/USA.&lt;br /&gt;
&lt;br /&gt;
From the Internet Browser help section:&lt;br /&gt;
In compliance with the LGPL, the source code of the OSS is available via the Nintendo website.&lt;br /&gt;
This source code can be downloaded here:&lt;br /&gt;
[http://mediacontent.nintendo-europe.com/NOE/images/service/OpenSources.zip] [http://www.nintendo.co.jp/support/oss/index.html]&lt;br /&gt;
&lt;br /&gt;
The 3DS Internet Browser is [http://en.wikipedia.org/wiki/Netfront Netfront] Browser NX v1.0 based on [http://en.wikipedia.org/wiki/WebKit WebKit] engine.&lt;br /&gt;
&lt;br /&gt;
On O3DS the exheader name of this title is &amp;quot;SPIDER&amp;quot;; on N3DS, &amp;quot;SKATER&amp;quot;.&lt;br /&gt;
The only difference between the ExeFS .code for each region of the Old3DS/New3DS browser, is byte values for the title uniqueID/region.&lt;br /&gt;
&lt;br /&gt;
A [[#Dummy_web-browser|&amp;quot;dummy&amp;quot; browser]] (which replaces the actual browser) is being included with cartdrige games shipping with system updates starting with [[9.9.0-26|9.9.0-X]]. &lt;br /&gt;
In addition, versions of the real browser since 9.9.0-26X attempt to [[#Forced_system-update|check-in with a Nintendo server]] to determine if the existing browser version is out of date.&lt;br /&gt;
&lt;br /&gt;
==[[New 3DS]] Internet Browser==&lt;br /&gt;
New3DS has a separate browser title, with the exheader name &amp;quot;SKATER&amp;quot;.&lt;br /&gt;
Unlike the Old3DS browser, the New3DS browser has videos+HTML5 support. &lt;br /&gt;
&lt;br /&gt;
This browser also has a filter enabled by default in the JPN version. &lt;br /&gt;
Disabling it requires paying money with a credit-card, for [[NIM_Services|purchasing]] web-browser [[Title_list/DLC|DLC]].&lt;br /&gt;
During startup the browser does various HTTPS comms. When visting an URL, the browser sends a plaintext HTTP POST here: [http://ars.ifuser.jp:20080/ars2/rating]. The raw POST data begins with &amp;quot;ARS/2.0\r\n\x00&amp;quot;, the rest appears to be encrypted. The server reply content also has this ARS header + encrypted data. This appears to use a fixed xorpad, likely from a fixed encryption CTR/IV. The server content responses for allowed sites, and blocked sites, are fixed. When the server returns that the site is blocked, the browser goes to this page: [http://ars.ifuser.jp/filter/44.html](the Referrer header value is set to the same URL it&#039;s actually requesting).&lt;br /&gt;
&lt;br /&gt;
The WebKit source was updated since the Old3DS browser.&lt;br /&gt;
The New3DS browser uses the following services: [[MVD_Services|mvd:STD]] and [[IR_Services|ir:rst]](DLC-related services are used too but those aren&#039;t New3DS specific).&lt;br /&gt;
Video decoding is done with [[MVD_Services|mvd:STD]]. Audio decoding/playback is done with a browser-specific DSP binary. The Old3DS browser used CSND for audio playback, the New3DS browser doesn&#039;t have access to that at all since it uses DSP instead.&lt;br /&gt;
&lt;br /&gt;
=== Video / libstagefright ===&lt;br /&gt;
The browser manual includes licenses for Android and PacketVideo. The browser uses libstagefright from Android. Just like WebKit, the browser appears to use a very old version of libstagefright with security/other changes back-ported(for example, the v10.7 browser libstagefright codebase seems to be older than [https://android.googlesource.com/platform/frameworks/av/+/ec77122351b4e78c1fe5b60a208f76baf8c67591%5E%21/media/libstagefright/MPEG4Extractor.cpp this]). This codebase is missing certain chunk-parsing code for 3GP.&lt;br /&gt;
&lt;br /&gt;
HTTP for libstagefright is internally handled with [[HTTP_Services|HTTPC]], with a similar(?) set of RootCAs as for browser-version-check.&lt;br /&gt;
&lt;br /&gt;
===User-Agent and Browser Versions===&lt;br /&gt;
Normal user-agent format: &amp;lt;code style=&amp;quot;font-size:larger;&amp;quot;&amp;gt;Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/&amp;lt;WebKit version&amp;gt; (KHTML, like Gecko) NX/&amp;lt;Netfront version&amp;gt; Mobile NintendoBrowser/&amp;lt;Mobile NintendoBrowser version&amp;gt;.&amp;lt;region&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;region&amp;gt; can be one of the following: &amp;quot;JP&amp;quot;, &amp;quot;US&amp;quot;, or &amp;quot;EU&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Mobile User-Agent is always &amp;lt;code&amp;gt;Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Mobile NintendoBrowser version(displayed in browser settings)&lt;br /&gt;
! Normal UA&lt;br /&gt;
! CDN Title-version&lt;br /&gt;
! Network-only system-update version&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.9934&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.8 Mobile NintendoBrowser/1.0.9934.&amp;lt;region&amp;gt;&lt;br /&gt;
| v10&lt;br /&gt;
| [[9.0.0-20]]&lt;br /&gt;
| Initial version.&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.9996&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.10 Mobile NintendoBrowser/1.1.9996.&amp;lt;region&amp;gt;&lt;br /&gt;
| v1027&lt;br /&gt;
| [[9.3.0-21]]&lt;br /&gt;
| See below regarding OSS changes.&lt;br /&gt;
|-&lt;br /&gt;
| 1.2.10085&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.13 Mobile NintendoBrowser/1.2.10085.&amp;lt;region&amp;gt;&lt;br /&gt;
| v2051&lt;br /&gt;
| [[9.6.0-24]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v3075&lt;br /&gt;
| v9.9 CUP&lt;br /&gt;
| v9.9 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.10126&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.15 Mobile NintendoBrowser/1.3.10126.&amp;lt;region&amp;gt;&lt;br /&gt;
| v3077&lt;br /&gt;
| [[9.9.0-26]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.10138&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.17 Mobile NintendoBrowser/1.4.10138.&amp;lt;region&amp;gt;&lt;br /&gt;
| v4096&lt;br /&gt;
| [[10.2.0-28]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.5.10143&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.5.10143.&amp;lt;region&amp;gt;&lt;br /&gt;
| v5121&lt;br /&gt;
| [[10.4.0-29]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.6.10147&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.6.10147.&amp;lt;region&amp;gt;&lt;br /&gt;
| v6144&lt;br /&gt;
| [[10.6.0-31]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v7168&lt;br /&gt;
| v10.7 CUP&lt;br /&gt;
| v10.7 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7.10150&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.7.10150.&amp;lt;region&amp;gt;&lt;br /&gt;
| v7184&lt;br /&gt;
| [[10.7.0-32]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.8.10156&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.20 Mobile NintendoBrowser/1.8.10156.&amp;lt;region&amp;gt;&lt;br /&gt;
| v8192&lt;br /&gt;
| [[11.1.0-34]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v9217&lt;br /&gt;
| v11.4 CUP&lt;br /&gt;
| v11.4 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.9.10160&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.20 Mobile NintendoBrowser/1.9.10160.&amp;lt;region&amp;gt;&lt;br /&gt;
| v9232&lt;br /&gt;
| [[11.4.0-37]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.10.10166&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.22 Mobile NintendoBrowser/1.10.10166.&amp;lt;region&amp;gt;&lt;br /&gt;
| v10272&lt;br /&gt;
| [[11.9.0-42]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.11.10172&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.23 Mobile NintendoBrowser/1.11.10172.&amp;lt;region&amp;gt;&lt;br /&gt;
| v11264&lt;br /&gt;
| [[11.14.0-46]]&lt;br /&gt;
| See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the latest Old3DS browser WebKit version at the time the initial New3DS browser was released, was the following: 532.8.&lt;br /&gt;
&lt;br /&gt;
The first version of the KOR New3DS browser was v9.6(which was when the New3DS KOR titles were originally added). Each version of the KOR browser has the same NintendoBrowser version as the other regions. The KOR browser has been only updated when the browser for the other regions were updated, hence the title-versions are the same as well. The KOR browser ExeFS .code is different from the other regions(more than just region-related IDs etc).&lt;br /&gt;
&lt;br /&gt;
==== OSS 9.0 and 9.3 diff ====&lt;br /&gt;
The following is a diff of the OSS archives from [http://www.nintendo.co.jp/support/oss/index.html here], for v9.0 and v9.3.&lt;br /&gt;
&lt;br /&gt;
 Files NewNintendo3DS_OpenSources9.0.0-/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp and NewNintendo3DS_OpenSources9.3.0-/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp differ&lt;br /&gt;
 Files NewNintendo3DS_OpenSources9.0.0-/WKC/WebKit/WKC/webkit/WKCVersion.h and NewNintendo3DS_OpenSources9.3.0-/WKC/WebKit/WKC/webkit/WKCVersion.h differ&lt;br /&gt;
&lt;br /&gt;
WKC_CUSTOMER_RELEASE_VERSION was changed from &amp;quot;0.5.8&amp;quot; to &amp;quot;0.5.10&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following code was added to ResourceHandleManager::doRedirect(): curl_easy_setopt(d-&amp;gt;m_handle, CURLOPT_SHARE, 0);&lt;br /&gt;
&lt;br /&gt;
==== v9.6 ====&lt;br /&gt;
WebKit/OSS code was actually updated.&lt;br /&gt;
ExeFS .code was updated. The following files in RomFS were updated:&lt;br /&gt;
* &amp;quot;/banner/CN/Skater.icn&amp;quot; and &amp;quot;/banner/KR/Skater.icn&amp;quot;.&lt;br /&gt;
* &amp;quot;/browser/rootca.pem&amp;quot;&lt;br /&gt;
* &amp;quot;/build/buildinfo.dat&amp;quot;&lt;br /&gt;
* &amp;quot;/cairo.cro.lex&amp;quot; and &amp;quot;/.crr/static.crr&amp;quot;&lt;br /&gt;
* &amp;quot;/lyt/Button/ButtonSelectHSearch.arc&amp;quot;&lt;br /&gt;
* &amp;quot;/lyt/Kbd/Swkbd.arc&amp;quot;&lt;br /&gt;
* &amp;quot;lyt/Kbd.arc&amp;quot;&lt;br /&gt;
* &amp;quot;skater.msbt&amp;quot; under all of the &amp;quot;/message/&amp;lt;region&amp;gt;_&amp;lt;language&amp;gt;/&amp;quot; directories.&lt;br /&gt;
* &amp;quot;/oss.cro.lex&amp;quot;, &amp;quot;/peer.cro.lex&amp;quot;, &amp;quot;/static.crs&amp;quot;, and &amp;quot;/webkit.cro.lex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following was added to RomFS:&lt;br /&gt;
* &amp;quot;/favicon/naver.dat&amp;quot;&lt;br /&gt;
* A &amp;quot;KO&amp;quot; directory under &amp;quot;/iwnn&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== v9.9 ====&lt;br /&gt;
ExeFS:/.code was updated.&lt;br /&gt;
&lt;br /&gt;
The only RomFS changes is file-updating, all of the following files were updated:&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /cairo.cro.lex&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex&lt;br /&gt;
 /peer.cro.lex&lt;br /&gt;
 /static.crs&lt;br /&gt;
 /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
See [https://gist.github.com/yellows8/9fb509fde4112339f342 here] for a diff of the OSS(WebKitLibraries/ is not included due to the massive cairo library diff). An exploitable security vuln(which was already known in the context of 3DS webkit) was fixed. [[User:Yellows8|Yellows8]]&#039; private(at the time of writing) exploit for it is based on the PoC from [http://pastebin.com/ufBCQKda here](see the pastebin for the actual pastebin author).&lt;br /&gt;
&lt;br /&gt;
==== v10.2 ====&lt;br /&gt;
The libstagefright build in the main SKATER codebin was updated to a version which fixed libstagefright vuln(s): the vuln used in [[browserhax|browserhax_fright]] at the time of sysupdate release was fixed. The *only* code changed in the main codebin, was code related to libstagefright.&lt;br /&gt;
&lt;br /&gt;
The only RomFS changes is file-updating, all of the following files were updated(see the forced-sysupdate section regarding what changed in the message files):&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex&lt;br /&gt;
 /static.crs&lt;br /&gt;
 /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
OSS diff:&lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/WKC/WebKit/WKC/webkit/WKCVersion.h b/NewNintendo3DS_OpenSources10.2.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index 4543297..0860336 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;0.5.15&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;0.5.17&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;536.30&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/ChangeLog b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 index a5abb35..cf5a9fa 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 @@ -1,3 +1,12 @@&lt;br /&gt;
 +2013-11-05  Ryosuke Niwa  &amp;lt;rniwa@webkit.org&amp;gt;&lt;br /&gt;
 +&lt;br /&gt;
 +        Use-after-free in SliderThumbElement::dragFrom&lt;br /&gt;
 +        https://bugs.webkit.org/show_bug.cgi?id=123873&lt;br /&gt;
 +&lt;br /&gt;
 +        Reviewed by Andreas Kling.&lt;br /&gt;
 +&lt;br /&gt;
 +        Merge https://chromium.googlesource.com/chromium/blink/+/04a23bfca2d04101a1828d36ff36c29f3a24f34b&lt;br /&gt;
 +&lt;br /&gt;
  2015-02-06  Maciej Stachowiak  &amp;lt;mjs@apple.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
          REGRESSION(r179706): Caused memory corruption on some tests (Requested by _ap_ on #webkit).&lt;br /&gt;
 @@ -879,7 +888,7 @@&lt;br /&gt;
          * rendering/RenderLineBoxList.cpp:&lt;br /&gt;
          (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):&lt;br /&gt;
  &lt;br /&gt;
 -2014-01-21  LÃ¡szlÃ³ LangÃ³  &amp;lt;llango.u-szeged@partner.samsung.com&amp;gt;&lt;br /&gt;
 +2014-01-21  Laszlo Lango  &amp;lt;llango.u-szeged@partner.samsung.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
          Assertion failure in Range::nodeWillBeRemoved&lt;br /&gt;
          https://bugs.webkit.org/show_bug.cgi?id=121694&lt;br /&gt;
 @@ -1879,7 +1888,7 @@&lt;br /&gt;
  &lt;br /&gt;
  2012-09-14  Simon Fraser  &amp;lt;simon.fraser@apple.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 -        REGRESSION: transition doesnât always override transition-property&lt;br /&gt;
 +        REGRESSION: transition doesnft always override transition-property&lt;br /&gt;
          https://bugs.webkit.org/show_bug.cgi?id=96658&lt;br /&gt;
  &lt;br /&gt;
          Reviewed by Dean Jackson.&lt;br /&gt;
 @@ -3691,8 +3700,8 @@&lt;br /&gt;
              glyph with font data for the primary font, presumably to meet the SVG&lt;br /&gt;
              spec requirement: &amp;quot;If the references to alternate glyphs do not result&lt;br /&gt;
              in successful identification of alternate glyphs to use, then the&lt;br /&gt;
 -            character(s) that are inside of the çª¶åltGlyphçª¶?element are rendered as&lt;br /&gt;
 -            if the çª¶åltGlyphçª¶?element were a çª¶?spançª¶?element instead.&amp;quot;&lt;br /&gt;
 +            character(s) that are inside of the âaltGlyphâ?element are rendered as&lt;br /&gt;
 +            if the âaltGlyphâ?element were a â?spanâ?element instead.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
              If the alt glyph is not then found we are in the case from the spec&lt;br /&gt;
              and indeed we should use the primary font. However, we end up replacing the GlyphPage&lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/html/RangeInputType.cpp b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 index 484adec..d7e9e8d 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 @@ -164,7 +164,7 @@ void RangeInputType::handleMouseDownEvent(MouseEvent* event)&lt;br /&gt;
      ASSERT(element()-&amp;gt;hasShadowRoot());&lt;br /&gt;
      if (targetNode != element() &amp;amp;&amp;amp; !targetNode-&amp;gt;isDescendantOf(element()-&amp;gt;shadowTree()-&amp;gt;oldestShadowRoot()))&lt;br /&gt;
          return;&lt;br /&gt;
 -    SliderThumbElement* thumb = sliderThumbElementOf(element());&lt;br /&gt;
 +    RefPtr&amp;lt;SliderThumbElement&amp;gt; thumb = sliderThumbElementOf(element());&lt;br /&gt;
      if (targetNode == thumb)&lt;br /&gt;
          return;&lt;br /&gt;
      thumb-&amp;gt;dragFrom(event-&amp;gt;absoluteLocation());&lt;br /&gt;
&lt;br /&gt;
==== v10.4 ====&lt;br /&gt;
The ExeFS codebin was updated, the only change was that the following code was updated in the actual NupCheck HTTPS request function:&lt;br /&gt;
* Previous version: sprintf(out, &amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/2/%s&amp;quot;, region);&lt;br /&gt;
* Current  version: sprintf(out, &amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/%d/%s&amp;quot;, 3, region);&lt;br /&gt;
&lt;br /&gt;
libpng was updated from version 1.5.21 to 1.5.24.&lt;br /&gt;
&lt;br /&gt;
The following RomFS files were updated(see the forced-sysupdate section regarding what changed in the message files):&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /cairo.cro.lex&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex differ&lt;br /&gt;
 /peer.cro.lex differ&lt;br /&gt;
 /static.crs differ&lt;br /&gt;
 /webkit.cro.lex differ&lt;br /&gt;
&lt;br /&gt;
==== v10.6 ====&lt;br /&gt;
The ExeFS codebin was updated.&lt;br /&gt;
&lt;br /&gt;
[[browserhax|browserhax_fright_tx3g]] was fixed. The code handling tx3g now matches the latest libstagefright git.&lt;br /&gt;
&lt;br /&gt;
Hence the below RomFS listing, no OSS was updated at all(besides libstagefright mentioned above).&lt;br /&gt;
&lt;br /&gt;
The following RomFS files were updated:&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /static.crs&lt;br /&gt;
&lt;br /&gt;
==== v10.7 ====&lt;br /&gt;
Basically the same changes as Old3DS v10.7, except with the usual buildinfo.dat update in RomFS. The below date is 6 days after the browser-version-check [[3DS_Userland_Flaws|bypass]] was publicly disclosed.&lt;br /&gt;
&lt;br /&gt;
 cat v7184/00000025_romfs/build/buildinfo.dat&lt;br /&gt;
 10150&lt;br /&gt;
 applet&lt;br /&gt;
 2016-03-02 18:25&lt;br /&gt;
&lt;br /&gt;
==== v11.1 ====&lt;br /&gt;
The ExeFS codebin was updated. The following files in RomFS were updated:&lt;br /&gt;
&lt;br /&gt;
  /build/buildinfo.dat&lt;br /&gt;
  /.crr/static.crr&lt;br /&gt;
  /oss.cro.lex&lt;br /&gt;
  /static.crs&lt;br /&gt;
  /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
  cat v8192/00000026_romfs/build/buildinfo.dat&lt;br /&gt;
  10156&lt;br /&gt;
  applet&lt;br /&gt;
  2016-08-26 19:47&lt;br /&gt;
&lt;br /&gt;
Minus the 4 functions that changed due to compiler optimization, only 1 function was actually updated. This is LT_1a4004, previous version at LT_1a4004: libstagefright status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth)&lt;br /&gt;
&lt;br /&gt;
Additional code was added which doesn&#039;t seem to be from upstream git, right [https://android.googlesource.com/platform/frameworks/av/+/32d6e5f0ebe9e00f80401e5f4fd6e285a474590d/media/libstagefright/MPEG4Extractor.cpp#880 before] the cprt code block: &amp;quot;if((*offset + chunk_size) - data_offset &amp;lt; 0)fail&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This fixed skater31hax + any other mp4 haxx which requires using a negative 64bit chunk_size value.&lt;br /&gt;
&lt;br /&gt;
The filepath base used in the assert strings were changed from &amp;quot;d:\Jenkins\workspace\MPSkaterBuild\MVPlayer\Skater\Base\Android\frameworks\base\media\libstagefright\&amp;quot; to &amp;quot;d:\jenkins\workspace\MPSkaterBuild-Git\Base\Android\frameworks\base\media\libstagefright\&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== v11.4 ====&lt;br /&gt;
The only changes in RomFS was for &amp;quot;/build/buildinfo.dat&amp;quot; and &amp;quot;/static.crs&amp;quot;, hence no OSS in CRO(s) were updated.&lt;br /&gt;
&lt;br /&gt;
The main codebin was updated. Exactly two functions were updated, these are not related to code exec vulns.&lt;br /&gt;
&lt;br /&gt;
  cat v9232/00000027_romfs/build/buildinfo.dat&lt;br /&gt;
  10160&lt;br /&gt;
  applet&lt;br /&gt;
  2017-03-08 19:44&lt;br /&gt;
&lt;br /&gt;
=== New3DS Browser Specifications ===&lt;br /&gt;
[http://www.nintendo.co.jp/3ds/new/features/modal_net.html]&lt;br /&gt;
&lt;br /&gt;
English version:&lt;br /&gt;
* &amp;quot;Browser engine: NetFront® Browser NX v3.0&amp;quot;&lt;br /&gt;
* &amp;quot;User agent: Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML and like Gecko) NX/3.0.*.*.* Mobile NintendoBrowser/1.0.**** JP&lt;br /&gt;
* ** Version information is stated.&lt;br /&gt;
* *** When using the “Mobile version request” function, it differs from the above-mentioned character string&amp;quot;&lt;br /&gt;
* &amp;quot;Supported protocols: HTTP1.0/HTTP1.1/SSL3.0/TLS1.0/TLS1.1/TLS1.2&amp;quot;&lt;br /&gt;
* &amp;quot;Web standard: HTML4.01 / HTML5 / XHTML1.1 / Fullscreen API / Gamepad API / SVG / WebSocket / Video Subtitle / WOFF / Web Messaging / Server-Sent / Web Storage (partial) / XMLHttpRequest / Canvas element / Video / DOM Levels 1-3 / ECMAScript / CSS1 / CSS2.1 / CSS3 (partial)&amp;quot;&lt;br /&gt;
* &amp;quot;Image format: bmp / ​​gif / ico / jpeg / png / svg (There are, however, possibilities that some images won&#039;t display.)&amp;quot;&lt;br /&gt;
* &amp;quot;Image preview: mpo / jpeg (There are, however, possibilities that some images won&#039;t display.)&amp;quot;&lt;br /&gt;
* &amp;quot;Video format: MP4, M3U8 + TS (HTTPLiveStreaming) (There are, however, some videos that may not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Video codec: H.264 - MPEG-4 AVC Video (max 854x480 at level 3.2, 3D compatible) (There are, however, some videos that can not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Audio codec: AAC - ISO / IEC 14496-3 MPEG-4AAC, MP3 (There are, however, some videos that can not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Format for uploading 3D videos: .mkv (In order to be played, videos must be converted to the appropriate format within the site you are uploading to. In some cases, the video will not play even if converted.)&amp;quot;&lt;br /&gt;
* &amp;quot;Plug-ins: Plug-ins such as Adobe Flash are not supported&amp;quot;&lt;br /&gt;
* &amp;quot;Active Rating System filtering: provided by Digital Arts, Inc.. Access to web content can be limited based on its category information, restricting access to web content that may result inappropriate.&amp;quot;&lt;br /&gt;
* &amp;quot;Websites can be requested to provide the mobile version (However, if the web page does not have a mobile version, it won&#039;t change the way it&#039;s displayed.)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
MJPEG + .avi is also supported.&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
* The html &amp;quot;color&amp;quot; &amp;lt;input&amp;gt; type is not supported.&lt;br /&gt;
&lt;br /&gt;
== Old3DS browser ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Old3DS Browser Specifications ===&lt;br /&gt;
* &amp;quot;Browser engine: NetFront® Browser&amp;quot;&lt;br /&gt;
* &amp;quot;User agent: Mozilla/5.0 (Nintendo 3DS; region; ; en) Version/1.7498.US&amp;quot;&lt;br /&gt;
* &amp;quot;Supported protocols: HTTP1.0/HTTP1.1/SSLv3/TLS1.0&amp;quot;&lt;br /&gt;
* &amp;quot;Web standard: HTML 4.01/XHTML 1.1/CSS 1/CSS 2.1/CSS 3 (partial functionality)/DOM Levels 1-3/ECMAScript/XMLHttpRequest/Canvas Element (partial functionality)&amp;quot;&lt;br /&gt;
* &amp;quot;Image format: MPO / GIF / JPEG / PNG / BMP / ICO (some images cannot be displayed)&amp;quot;&lt;br /&gt;
* &amp;quot;Plug-ins: Plug-ins such as Adobe Flash are not supported&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Old3DS browser doesn&#039;t support events &amp;quot;focusin&amp;quot; and &amp;quot;focusout&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== User-Agent and Browser Versions ===&lt;br /&gt;
User-agent format: &amp;lt;code style=&amp;quot;font-size:larger;&amp;quot;&amp;gt;Mozilla/5.0 (Nintendo 3DS; U; ; &amp;lt;lang&amp;gt;) Version/&amp;lt;version&amp;gt;.&amp;lt;region&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lang&amp;gt; is &amp;quot;en&amp;quot;, &amp;quot;fr&amp;quot;, etc. &amp;lt;region&amp;gt; is &amp;quot;US&amp;quot;, &amp;quot;EU&amp;quot;, etc. See below for &amp;lt;version&amp;gt;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Browser version&lt;br /&gt;
! CDN Title-version&lt;br /&gt;
! Network-only system-update version&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.7412&lt;br /&gt;
| v6&lt;br /&gt;
| [[2.0.0-2|2.0.0-2]]&lt;br /&gt;
| This was the initial version.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7455&lt;br /&gt;
| v1024&lt;br /&gt;
| [[2.1.0-4]]&lt;br /&gt;
| ExeFS .code was updated, both of the CROs(webkit/OSS) were updated too.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7498&lt;br /&gt;
| v2050&lt;br /&gt;
| [[4.0.0-7]]&lt;br /&gt;
| ExeFS .code was updated, both of the CROs(webkit/OSS) were updated too. The manual CFA was updated as well.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7538&lt;br /&gt;
| v0&lt;br /&gt;
| [[4.2.0-9]]&lt;br /&gt;
| First version of the KOR browser. The CROs are different from the  USA/EUR/JPN [[4.0.0-7]] browser.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7552&lt;br /&gt;
| v3075&lt;br /&gt;
| [[5.0.0-11]]&lt;br /&gt;
| ExeFS .code and icon were updated, both of the CROs(webkit/OSS) were updated too. The manual CFA was updated as well.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7552&lt;br /&gt;
| v3088&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| The main NCCH wasn&#039;t updated at all(same TMD contentID/content-hash as the previous version), only the manual CFA for this title was updated.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7567&lt;br /&gt;
| v4096&lt;br /&gt;
| [[7.1.0-16]]&lt;br /&gt;
| The CXI .code was updated, some data in the RomFS was updated(none of the CROs such as webkit.cro were updated). The manual CFA was updated too.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7585&lt;br /&gt;
| v5121&lt;br /&gt;
| [[9.5.0-23]]&lt;br /&gt;
| The CXI .code was updated, and the manual CFA was updated. RomFS changes:&lt;br /&gt;
* &amp;quot;/browser/rootca.pem&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/oss.cro&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/static.crs&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/webkit.cro&amp;quot; updated&lt;br /&gt;
* &amp;quot;/.crr/static.crr&amp;quot; updated&lt;br /&gt;
* &amp;quot;/layout/dialogheader/WirelessSwitchOff.arc&amp;quot; was removed&lt;br /&gt;
* &amp;quot;/layout/favorite/favicondata/KOR.arc&amp;quot; updated&lt;br /&gt;
&lt;br /&gt;
A vuln used in a public(at the time of this sysupdate) webkit exploit for spider was fixed, which also fixed the removewinframe exploit from [https://github.com/yellows8/3ds_webkithax here].&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| v6147&lt;br /&gt;
| v9.9 CUP&lt;br /&gt;
| v9.9 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7610&lt;br /&gt;
| v6149&lt;br /&gt;
| [[9.9.0-26]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7616&lt;br /&gt;
| v7168&lt;br /&gt;
| [[10.2.0-28]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7622&lt;br /&gt;
| v8192&lt;br /&gt;
| [[10.6.0-31]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| v9216&lt;br /&gt;
| v10.7 CUP&lt;br /&gt;
| v10.7 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7625&lt;br /&gt;
| v9232&lt;br /&gt;
| [[10.7.0-32]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7630&lt;br /&gt;
| v10240&lt;br /&gt;
| [[11.1.0-34]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7636&lt;br /&gt;
| v11297&lt;br /&gt;
| [[11.9.0-42]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7639&lt;br /&gt;
| v12288&lt;br /&gt;
| [[11.14.0-46]]&lt;br /&gt;
| See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Heap ===&lt;br /&gt;
The USA/EUR/JPN + KOR browser allocates the 0x08000000 heap with size 0x01A97000. The size used by the CHN and TWN browser is 0x01997000, exactly 0x100000-bytes smaller.&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v9.9 ===&lt;br /&gt;
ExeFS:/.code was updated.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS were file-updating, the following files were updated:&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/spider.msbt&lt;br /&gt;
 /message/EU_Dutch/spider.msbt&lt;br /&gt;
 /message/EU_English/spider.msbt&lt;br /&gt;
 /message/EU_French/spider.msbt&lt;br /&gt;
 /message/EU_German/spider.msbt&lt;br /&gt;
 /message/EU_Italian/spider.msbt&lt;br /&gt;
 /message/EU_Portuguese/spider.msbt&lt;br /&gt;
 /message/EU_Russian/spider.msbt&lt;br /&gt;
 /message/EU_Spanish/spider.msbt&lt;br /&gt;
 /message/JP_Japanese/spider.msbt&lt;br /&gt;
 /message/KR_Hangeul/spider.msbt&lt;br /&gt;
 /message/TW_English/spider.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/spider.msbt&lt;br /&gt;
 /message/US_English/spider.msbt&lt;br /&gt;
 /message/US_French/spider.msbt&lt;br /&gt;
 /message/US_Portuguese/spider.msbt&lt;br /&gt;
 /message/US_Spanish/spider.msbt&lt;br /&gt;
&lt;br /&gt;
OSS diff for v9.5 and v9.9, without the .dox changes:&lt;br /&gt;
&lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/WKC/WebKit/WKC/webkit/WKCVersion.h b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index be5ff09..55a7274 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.14&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.16&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;532.7&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/webkit/WebCore/rendering/RenderBox.cpp b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 index da4127e..d03403e 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 @@ -305,23 +305,23 @@ int RenderBox::scrollHeight() const&lt;br /&gt;
  &lt;br /&gt;
  int RenderBox::scrollLeft() const&lt;br /&gt;
  {&lt;br /&gt;
 -    return hasOverflowClip() ? layer()-&amp;gt;scrollXOffset() : 0;&lt;br /&gt;
 +    return layer() &amp;amp;&amp;amp; hasOverflowClip() ? layer()-&amp;gt;scrollXOffset() : 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int RenderBox::scrollTop() const&lt;br /&gt;
  {&lt;br /&gt;
 -    return hasOverflowClip() ? layer()-&amp;gt;scrollYOffset() : 0;&lt;br /&gt;
 +    return layer() &amp;amp;&amp;amp; hasOverflowClip() ? layer()-&amp;gt;scrollYOffset() : 0;&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  void RenderBox::setScrollLeft(int newLeft)&lt;br /&gt;
  {&lt;br /&gt;
 -    if (hasOverflowClip())&lt;br /&gt;
 +    if (hasOverflowClip() &amp;amp;&amp;amp; layer())&lt;br /&gt;
          layer()-&amp;gt;scrollToXOffset(newLeft);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  void RenderBox::setScrollTop(int newTop)&lt;br /&gt;
  {&lt;br /&gt;
 -    if (hasOverflowClip())&lt;br /&gt;
 +    if (hasOverflowClip() &amp;amp;&amp;amp; layer())&lt;br /&gt;
          layer()-&amp;gt;scrollToYOffset(newTop);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.2 ===&lt;br /&gt;
The slider vuln from [https://github.com/yellows8/3ds_webkithax here] was fixed in the Old3DS browser.&lt;br /&gt;
&lt;br /&gt;
The main codebin .text only increased by 0x10-bytes.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS was that the following files were updated:&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
&lt;br /&gt;
OSS diff:&lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index 55a7274..fc153c4 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.16&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.17&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;532.7&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderSlider.cpp b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 index b2f5cef..1dd3dbd 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 @@ -221,6 +221,7 @@ RenderSlider::~RenderSlider()&lt;br /&gt;
  {&lt;br /&gt;
      if (m_thumb)&lt;br /&gt;
          m_thumb-&amp;gt;detach();&lt;br /&gt;
 +    m_thumb = 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int RenderSlider::baselinePosition(bool, bool) const&lt;br /&gt;
 @@ -493,7 +494,8 @@ void RenderSlider::forwardEvent(Event* event)&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
  &lt;br /&gt;
 -    m_thumb-&amp;gt;defaultEventHandler(event);&lt;br /&gt;
 +    if (m_thumb)&lt;br /&gt;
 +        m_thumb-&amp;gt;defaultEventHandler(event);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  bool RenderSlider::inDragMode() const&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.6 ===&lt;br /&gt;
[[browserhax|spider28hax]] was fixed. The &amp;quot;2^32 characters long string&amp;quot; vuln described [[3DS_Userland_Flaws|here]] was &#039;&#039;finally&#039;&#039; fixed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;A lot&#039;&#039; of WebKit issues/vulns were fixed, see [https://gist.github.com/yellows8/b1e10caa1d8bb8a46316 here] for the changes.&lt;br /&gt;
&lt;br /&gt;
libpng was updated from version 1.4.12 to 1.4.19. zlib was updated from 1.2.7 to 1.2.8.&lt;br /&gt;
&lt;br /&gt;
The .text size increased by 0x478-bytes.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS was that the following files were updated:&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /manual/Manual.bcma&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.7 ===&lt;br /&gt;
&#039;&#039;Nothing&#039;&#039; changed except some words for version-values in .text being updated(RomFS wasn&#039;t changed), code for browser-version-check was [[#v10.7_2|updated]].&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v11.1 ===&lt;br /&gt;
Nothing changed in the ExeFS codebin besides the usual version values. The following files in RomFS were updated:&lt;br /&gt;
  /cro/oss.cro&lt;br /&gt;
  /cro/webkit.cro&lt;br /&gt;
  /.crr/static.crr&lt;br /&gt;
&lt;br /&gt;
== Forced system-update ==&lt;br /&gt;
The Old3DS/New3DS Internet Browser updated with [[9.9.0-26]] added the following message strings:&lt;br /&gt;
 In order to use the Internet &lt;br /&gt;
 browser, a system update &lt;br /&gt;
 is required.&lt;br /&gt;
 To perform a system update, &lt;br /&gt;
 select System Update from Other&lt;br /&gt;
 Settings in System Settings.&lt;br /&gt;
&lt;br /&gt;
 The Internet browser cannot be&lt;br /&gt;
 used at this time.&lt;br /&gt;
 Please check your network&lt;br /&gt;
 environment or try again later.&lt;br /&gt;
&lt;br /&gt;
For whatever reason, the above &#039;&#039;message strings&#039;&#039; were removed with New3DS-browser v10.2, then re-added with v10.4. This does not apply to the Old3DS browser. Whenever v10.2 New3DS browser tries to use these message-strings for displaying a browser-update-related message, it will crash due to an assert failing since the message-strings are missing. Hence, if/when the v10.2 update-check page is ever updated where the browser tries to display a message for it, or when accessing that page fails, the browser will automatically crash.&lt;br /&gt;
&lt;br /&gt;
This wasn&#039;t enforced(web-browser displaying the above message when the installed browser isn&#039;t the latest version) until October 26, 2015.&lt;br /&gt;
&lt;br /&gt;
This message only triggers when attempting to load a web-page. This is only handled the first time the browser accesses a web-page, during this browser session.&lt;br /&gt;
&lt;br /&gt;
The browser codebins starting with v9.9 now contain the following URL strings:&lt;br /&gt;
* Old3DS: &amp;lt;nowiki&amp;gt;&amp;quot;https://cbvc.cdn.nintendo.net/CTR/1/&amp;lt;region&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* New3DS: &amp;lt;nowiki&amp;gt;&amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/1/&amp;lt;region&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;region&amp;gt; string is one of the following:&lt;br /&gt;
* &amp;quot;JPN&amp;quot;&lt;br /&gt;
* &amp;quot;USA&amp;quot;&lt;br /&gt;
* &amp;quot;EUR&amp;quot;&lt;br /&gt;
* &amp;quot;KOR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Starting with the browser from [[10.2.0-28]], the &amp;quot;1&amp;quot; in the above URLs were changed to &amp;quot;2&amp;quot;. With the New3DS browser from [[10.4.0-29]], it&#039;s now &amp;quot;3&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
As of October 26, 2015, the &amp;quot;1&amp;quot; URLs return the browser-version for v9.9(decimal number as a string without any &amp;quot;.&amp;quot;), while the &amp;quot;2&amp;quot; URLs returns 0.&lt;br /&gt;
&lt;br /&gt;
 if(internal_browserver &amp;gt; server_browserver)&lt;br /&gt;
 {&lt;br /&gt;
     &amp;lt;safe&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
 else&lt;br /&gt;
 {&lt;br /&gt;
     &amp;lt;update message&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Hence, internal_browserver == server_browserver will trigger the sysupdate message, which appears to be the normal way to indicate that the current browser is outdated(see above).&lt;br /&gt;
&lt;br /&gt;
There is a cache for this in savedata. The request is only done when at least 24-hours have passed since the last time the request was done(see the below savedata section).&lt;br /&gt;
&lt;br /&gt;
It is still possible to guard against this update by blocking the previous URLs using a proxy. &lt;br /&gt;
It is not possible to remove the update message by entering the [[Recovery Mode]].&lt;br /&gt;
&lt;br /&gt;
=== Page request ===&lt;br /&gt;
For this request, all root-CAs bundled with the browser are trusted, in addition to two of the SSL module builtin Nintendo root-CAs.&lt;br /&gt;
&lt;br /&gt;
The browser(with New3DS at least) does the following with [[HTTP_Services|HTTPC]] for requesting the above page:&lt;br /&gt;
* Initializes the HTTP context and uses [[HTTPC:InitializeConnectionSession]] + [[HTTPC:SetProxyDefault]].&lt;br /&gt;
* Uses [[HTTP_Services|HTTPC]] command 0x250080 twice with cmd[1]=contexthandle: first time cmd[2]=0x3, second time cmd[2]=0x6.&lt;br /&gt;
* Then [[HTTPC:AddTrustedRootCA]] is used 48 times to setup 48 trusted root CAs. This appears to be every cert in the browser &amp;quot;romfs:/browser/rootca.pem&amp;quot; file converted to DER, in the same order from there(in other words, every single root CA the browser trusts by default for normal web-browsing).&lt;br /&gt;
* Then [[HTTPC:BeginRequest]] is used.&lt;br /&gt;
* Then [[HTTPC:ReceiveDataTimeout]] is used, the recv-size seems to be fixed to 0x20.&lt;br /&gt;
* Then [[HTTPC:GetResponseStatusCodeTimeout]] is used.&lt;br /&gt;
* Then [[HTTPC:GetDownloadSizeState]] is used.&lt;br /&gt;
* Then the HTTP context is closed.&lt;br /&gt;
&lt;br /&gt;
Raw request data(New3DS USA v10.2 browser):&lt;br /&gt;
 000000: 47 45 54 20 2f 53 4e 41 4b 45 2f 32 2f 55 53 41  GET /SNAKE/2/USA&lt;br /&gt;
 000010: 20 48 54 54 50 2f 31 2e 31 0d 0a 48 6f 73 74 3a   HTTP/1.1..Host:&lt;br /&gt;
 000020: 20 63 62 76 63 2e 63 64 6e 2e 6e 69 6e 74 65 6e   cbvc.cdn.ninten&lt;br /&gt;
 000030: 64 6f 2e 6e 65 74 0d 0a 0d 0a                    do.net....&lt;br /&gt;
&lt;br /&gt;
=== v10.7 ===&lt;br /&gt;
The only actual code change with Old3DS/New3DS browser v10.7 was that the code which calculates the diff_timestamp was moved to immediately after the block which initializes &amp;lt;state_timestamp&amp;gt; when &amp;lt;state_timestamp&amp;gt; is all-zero. This fixed the browser-version-check [[3DS_Userland_Flaws|bypass]].&lt;br /&gt;
&lt;br /&gt;
== Dummy web-browser ==&lt;br /&gt;
Gamecards v9.9 and above include, with their sysupdate, a dummy Old3DS/New3DS web-browser. The *only* thing this title does is display the same message listed in the above forced-update section. The message files in RomFS *only* contain that message string above. There are no &amp;quot;http&amp;quot; strings in the main codebin, and [[RO_Services|RO]] isn&#039;t used either(no CRO data in RomFS at all). Both browsers are internally called &amp;quot;dummySpider&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Hence, if you update your system below v9.8 with any v9.9 or above gamecard, the system web-browser will be rendered *completely* useless until you install a system-update from CDN(no network requests involved here).&lt;br /&gt;
&lt;br /&gt;
Gamecards v10.7 and v11.4(New3DS only) have updated the dummy web-browser, where the only difference is the title version.&lt;br /&gt;
&lt;br /&gt;
== Savedata ==&lt;br /&gt;
=== New3DS ===&lt;br /&gt;
On newer SKATER versions, it appears *all* NAND savedata is stored under the [[System_SaveData|0x000200BB]] savedata.&lt;br /&gt;
&lt;br /&gt;
==== 0x000200BB savedata ====&lt;br /&gt;
This only contains &amp;quot;t.bin&amp;quot; with filesize 0xadf80, the format is below.&lt;br /&gt;
&lt;br /&gt;
The timestamp format used here is the number of milliseconds since January 1, 2000(local-time).&lt;br /&gt;
&lt;br /&gt;
When using the &amp;quot;Initialize savedata&amp;quot; option in the browser, that deletes this savedata file/image then exits the browser. This file is then re-created when the browser gets started again.&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;
| 0x68&lt;br /&gt;
| 0x4?&lt;br /&gt;
| This counter is incremented each time the savedata is written.&lt;br /&gt;
|-&lt;br /&gt;
| 0x70&lt;br /&gt;
| 0x8&lt;br /&gt;
| Timestamp for when the savedata was last written.&lt;br /&gt;
|-&lt;br /&gt;
| 0x94&lt;br /&gt;
| 0x15?&lt;br /&gt;
| This is all-zeros on non-JPN systems. On JPN systems where the browser filter is disabled, this is a string in the following format: &amp;quot;4110-%016llX&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD8&lt;br /&gt;
| 0x8&lt;br /&gt;
| s64 timestamp, can be either a normal positive timestamp or a relative negative one. Used with the forced-update described above. When an update is detected this timestamp is negative, otherwise this is a normal positive timestamp(it&#039;s unknown how exactly this timestamp is checked). When positive, this seems to be the last time the forced-update HTTPS request was done where no update was needed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==APT Parameters==&lt;br /&gt;
The URL to load can optionally be loaded from char[] string [[APT:SendParameter|paramblk+0]]. This is used when scanning URL QR-codes in Home Menu / etc.&lt;br /&gt;
&lt;br /&gt;
==Errors==&lt;br /&gt;
&amp;quot;Failed to load part of this page&amp;quot;: This can be caused by failing to load &amp;quot;/favicon.ico&amp;quot;. For example, this can be caused by loading a plain HTTP page, with plain-http favicon redirecting to HTTPS. If cert-verify then fails with favicon in this case, this error would then trigger.&lt;br /&gt;
&lt;br /&gt;
==Other details==&lt;br /&gt;
&lt;br /&gt;
*It scored 90/100 on [http://acid3.acidtests.org/ Acid3] test&lt;br /&gt;
*Images from the Internet can be saved to the [[SD Filesystem|SD Card]] and viewed using the [[Nintendo 3DS Camera]] application.&lt;br /&gt;
*Images saved to an [[SD Filesystem|SD Card]] or to the Nintendo 3DS system memory can be uploaded to blogs or other sites that allow the uploading of photos using :&lt;br /&gt;
 &amp;lt;input type=&amp;quot;file&amp;quot; /&amp;gt;&lt;br /&gt;
* HTML5Test.com say that Drag and drop is supported but it&#039;s not (code on WebKit is ready, but it&#039;s not implemented on interface of browser)&lt;br /&gt;
&lt;br /&gt;
==Tips==&lt;br /&gt;
&lt;br /&gt;
=== Detect User Agent ===&lt;br /&gt;
&lt;br /&gt;
To detect if the user agent is Nintendo 3DS Browser :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
     if (navigator.userAgent.indexOf(&#039;Nintendo 3DS&#039;) == -1) { //If the UserAgent is not &amp;quot;Nintendo 3DS&amp;quot;&lt;br /&gt;
         location.replace(&#039;http://www.3dbrew.org&#039;); //Redirect to an other page&lt;br /&gt;
     }&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* You can check &amp;lt;em&amp;gt;navigator.platform==&amp;quot;Nintendo 3DS&amp;quot;&amp;lt;/em&amp;gt; as well.&lt;br /&gt;
&lt;br /&gt;
=== Scrolling ===&lt;br /&gt;
&lt;br /&gt;
Scrolling can be altered by modifying &amp;lt;em&amp;gt;document.body.scrollTop&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;document.body.scrollLeft&amp;lt;/em&amp;gt;.  However, there are drawbacks related to working with these properties:&lt;br /&gt;
&lt;br /&gt;
* Both properties return 0 when accessed&lt;br /&gt;
* Setting one property resets the other property&#039;s scroll position&lt;br /&gt;
&lt;br /&gt;
In order to set both at the same time (without either resetting to 0), use &amp;lt;em&amp;gt;window.scrollTo&amp;lt;/em&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Events ===&lt;br /&gt;
==== Key Events ====&lt;br /&gt;
The following buttons trigger the &amp;lt;em&amp;gt;onkeydown&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;onkeypress&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;onkeyup&amp;lt;/em&amp;gt; events:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;20%&amp;quot;&lt;br /&gt;
! Code !! Button &lt;br /&gt;
|-&lt;br /&gt;
| 13 || A&lt;br /&gt;
|-&lt;br /&gt;
| 37 || Left&lt;br /&gt;
|-&lt;br /&gt;
| 38 || Up&lt;br /&gt;
|-&lt;br /&gt;
| 39 || Right&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Down&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The events cannot have their default action cancelled.  Other buttons do not trigger key events.&lt;br /&gt;
&lt;br /&gt;
==== Touch/Mouse Events ====&lt;br /&gt;
&amp;lt;em&amp;gt;onmousedown&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;onmouseup&amp;lt;/em&amp;gt; &amp;amp; &amp;lt;em&amp;gt;onclick&amp;lt;/em&amp;gt; are all triggered by the browser.  However, the &amp;lt;em&amp;gt;onmousedown&amp;lt;/em&amp;gt; event doesn&#039;t trigger until you lift the stylus or you&#039;ve held it on the screen for ~2 seconds—which is when text selection mode is activated—making it pretty much the same as &amp;lt;em&amp;gt;onmouseup&amp;lt;/em&amp;gt;.  The events cannot have their default action cancelled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;em&amp;gt;onmousemove&amp;lt;/em&amp;gt; and common touch/gesture events are not supported.&lt;br /&gt;
&lt;br /&gt;
== Screen Resolution ==&lt;br /&gt;
&lt;br /&gt;
The up screen resolution is 400×240. However, the viewable area in the browser is only &amp;lt;b&amp;gt;400×220&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The touch screen resolution is 320×240. However, the viewable area in the browser is only &amp;lt;b&amp;gt;320×212&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can have a page span both screens. However, the browser will behave as if the bottom screen is the only active screen and the top screen is scrolled off. This is important when computing CSS coordinates. Items positioned from &amp;quot;bottom&amp;quot; will be positioned based on 220px and not the full 432px of both screens.&lt;br /&gt;
&lt;br /&gt;
== Using Both Screens ==&lt;br /&gt;
&lt;br /&gt;
Generally the easiest way to accomplish the correct layout is to create HTML elements that &amp;quot;contain&amp;quot; the top and bottom screens. Here&#039;s an example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
   &amp;lt;head&amp;gt;&lt;br /&gt;
     &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=400&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;style&amp;gt;&lt;br /&gt;
       body{margin:0px;}&lt;br /&gt;
       #topscreen{width:400px;height:220px;overflow:hidden;}&lt;br /&gt;
       #bottomscreen{width:320px;height:212px;overflow:hidden;margin:0 auto;}&lt;br /&gt;
     &amp;lt;/style&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div id=&amp;quot;topscreen&amp;quot;&amp;gt;Top Screen&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div id=&amp;quot;bottomscreen&amp;quot;&amp;gt;Bottom Screen&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This scheme allows the page to be easily manipulated through JavaScript.  In order to have the window snap to the correct position, use the following JavaScript code:&lt;br /&gt;
&lt;br /&gt;
 window.setInterval(function () {&lt;br /&gt;
     window.scrollTo(40, 220);  &lt;br /&gt;
 }, 50);&lt;br /&gt;
&lt;br /&gt;
This automatically resets the position if the user accidentally scrolls the page.&lt;br /&gt;
&lt;br /&gt;
==Example Sites==&lt;br /&gt;
&amp;lt;!-- If you have a website that demonstrates these techniques, place it here! --&amp;gt;&lt;br /&gt;
* [http://www.nintendo.com/3ds/internetbrowser/bookmarks Nintendo 3DS Bookmarks] - This is the first bookmark pre-installed in the browser.&lt;br /&gt;
* [http://3ds.andysmith.co.uk/jFox.html jFox] (Short URL: http://bit.ly/iB7FqW)&lt;br /&gt;
* [http://ditto3d.com/3ds Ditto3D (Dead Link)] (Short URL: http://bit.ly/oVreWA)&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Internet_Browser&amp;diff=21346</id>
		<title>Internet Browser</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Internet_Browser&amp;diff=21346"/>
		<updated>2020-11-17T00:02:09Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: 11.9 and 11.4 New3DS browsers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The 3DS Internet Browser was added in the June 2011 Update for JPN/EUR/USA.&lt;br /&gt;
&lt;br /&gt;
From the Internet Browser help section:&lt;br /&gt;
In compliance with the LGPL, the source code of the OSS is available via the Nintendo website.&lt;br /&gt;
This source code can be downloaded here:&lt;br /&gt;
[http://mediacontent.nintendo-europe.com/NOE/images/service/OpenSources.zip] [http://www.nintendo.co.jp/support/oss/index.html]&lt;br /&gt;
&lt;br /&gt;
The 3DS Internet Browser is [http://en.wikipedia.org/wiki/Netfront Netfront] Browser NX v1.0 based on [http://en.wikipedia.org/wiki/WebKit WebKit] engine.&lt;br /&gt;
&lt;br /&gt;
On O3DS the exheader name of this title is &amp;quot;SPIDER&amp;quot;; on N3DS, &amp;quot;SKATER&amp;quot;.&lt;br /&gt;
The only difference between the ExeFS .code for each region of the Old3DS/New3DS browser, is byte values for the title uniqueID/region.&lt;br /&gt;
&lt;br /&gt;
A [[#Dummy_web-browser|&amp;quot;dummy&amp;quot; browser]] (which replaces the actual browser) is being included with cartdrige games shipping with system updates starting with [[9.9.0-26|9.9.0-X]]. &lt;br /&gt;
In addition, versions of the real browser since 9.9.0-26X attempt to [[#Forced_system-update|check-in with a Nintendo server]] to determine if the existing browser version is out of date.&lt;br /&gt;
&lt;br /&gt;
==[[New 3DS]] Internet Browser==&lt;br /&gt;
New3DS has a separate browser title, with the exheader name &amp;quot;SKATER&amp;quot;.&lt;br /&gt;
Unlike the Old3DS browser, the New3DS browser has videos+HTML5 support. &lt;br /&gt;
&lt;br /&gt;
This browser also has a filter enabled by default in the JPN version. &lt;br /&gt;
Disabling it requires paying money with a credit-card, for [[NIM_Services|purchasing]] web-browser [[Title_list/DLC|DLC]].&lt;br /&gt;
During startup the browser does various HTTPS comms. When visting an URL, the browser sends a plaintext HTTP POST here: [http://ars.ifuser.jp:20080/ars2/rating]. The raw POST data begins with &amp;quot;ARS/2.0\r\n\x00&amp;quot;, the rest appears to be encrypted. The server reply content also has this ARS header + encrypted data. This appears to use a fixed xorpad, likely from a fixed encryption CTR/IV. The server content responses for allowed sites, and blocked sites, are fixed. When the server returns that the site is blocked, the browser goes to this page: [http://ars.ifuser.jp/filter/44.html](the Referrer header value is set to the same URL it&#039;s actually requesting).&lt;br /&gt;
&lt;br /&gt;
The WebKit source was updated since the Old3DS browser.&lt;br /&gt;
The New3DS browser uses the following services: [[MVD_Services|mvd:STD]] and [[IR_Services|ir:rst]](DLC-related services are used too but those aren&#039;t New3DS specific).&lt;br /&gt;
Video decoding is done with [[MVD_Services|mvd:STD]]. Audio decoding/playback is done with a browser-specific DSP binary. The Old3DS browser used CSND for audio playback, the New3DS browser doesn&#039;t have access to that at all since it uses DSP instead.&lt;br /&gt;
&lt;br /&gt;
=== Video / libstagefright ===&lt;br /&gt;
The browser manual includes licenses for Android and PacketVideo. The browser uses libstagefright from Android. Just like WebKit, the browser appears to use a very old version of libstagefright with security/other changes back-ported(for example, the v10.7 browser libstagefright codebase seems to be older than [https://android.googlesource.com/platform/frameworks/av/+/ec77122351b4e78c1fe5b60a208f76baf8c67591%5E%21/media/libstagefright/MPEG4Extractor.cpp this]). This codebase is missing certain chunk-parsing code for 3GP.&lt;br /&gt;
&lt;br /&gt;
HTTP for libstagefright is internally handled with [[HTTP_Services|HTTPC]], with a similar(?) set of RootCAs as for browser-version-check.&lt;br /&gt;
&lt;br /&gt;
===User-Agent and Browser Versions===&lt;br /&gt;
Normal user-agent format: &amp;lt;code style=&amp;quot;font-size:larger;&amp;quot;&amp;gt;Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/&amp;lt;WebKit version&amp;gt; (KHTML, like Gecko) NX/&amp;lt;Netfront version&amp;gt; Mobile NintendoBrowser/&amp;lt;Mobile NintendoBrowser version&amp;gt;.&amp;lt;region&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;region&amp;gt; can be one of the following: &amp;quot;JP&amp;quot;, &amp;quot;US&amp;quot;, or &amp;quot;EU&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Mobile User-Agent is always &amp;lt;code&amp;gt;Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Mobile NintendoBrowser version(displayed in browser settings)&lt;br /&gt;
! Normal UA&lt;br /&gt;
! CDN Title-version&lt;br /&gt;
! Network-only system-update version&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.9934&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.8 Mobile NintendoBrowser/1.0.9934.&amp;lt;region&amp;gt;&lt;br /&gt;
| v10&lt;br /&gt;
| [[9.0.0-20]]&lt;br /&gt;
| Initial version.&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.9996&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.10 Mobile NintendoBrowser/1.1.9996.&amp;lt;region&amp;gt;&lt;br /&gt;
| v1027&lt;br /&gt;
| [[9.3.0-21]]&lt;br /&gt;
| See below regarding OSS changes.&lt;br /&gt;
|-&lt;br /&gt;
| 1.2.10085&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.13 Mobile NintendoBrowser/1.2.10085.&amp;lt;region&amp;gt;&lt;br /&gt;
| v2051&lt;br /&gt;
| [[9.6.0-24]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v3075&lt;br /&gt;
| v9.9 CUP&lt;br /&gt;
| v9.9 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.10126&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.15 Mobile NintendoBrowser/1.3.10126.&amp;lt;region&amp;gt;&lt;br /&gt;
| v3077&lt;br /&gt;
| [[9.9.0-26]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.10138&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.17 Mobile NintendoBrowser/1.4.10138.&amp;lt;region&amp;gt;&lt;br /&gt;
| v4096&lt;br /&gt;
| [[10.2.0-28]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.5.10143&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.5.10143.&amp;lt;region&amp;gt;&lt;br /&gt;
| v5121&lt;br /&gt;
| [[10.4.0-29]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.6.10147&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.6.10147.&amp;lt;region&amp;gt;&lt;br /&gt;
| v6144&lt;br /&gt;
| [[10.6.0-31]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v7168&lt;br /&gt;
| v10.7 CUP&lt;br /&gt;
| v10.7 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7.10150&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.7.10150.&amp;lt;region&amp;gt;&lt;br /&gt;
| v7184&lt;br /&gt;
| [[10.7.0-32]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.8.10156&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.20 Mobile NintendoBrowser/1.8.10156.&amp;lt;region&amp;gt;&lt;br /&gt;
| v8192&lt;br /&gt;
| [[11.1.0-34]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v9217&lt;br /&gt;
| v11.4 CUP&lt;br /&gt;
| v11.4 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.9.10160&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.20 Mobile NintendoBrowser/1.9.10160.&amp;lt;region&amp;gt;&lt;br /&gt;
| v9232&lt;br /&gt;
| [[11.4.0-37]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.10.10166&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.22 Mobile NintendoBrowser/1.10.10166.&amp;lt;region&amp;gt;&lt;br /&gt;
| v10272&lt;br /&gt;
| [[11.9.0-42]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.11.10172&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.23 Mobile NintendoBrowser/1.11.10172.&amp;lt;region&amp;gt;&lt;br /&gt;
| v11264&lt;br /&gt;
| [[11.14.0-46]]&lt;br /&gt;
| See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the latest Old3DS browser WebKit version at the time the initial New3DS browser was released, was the following: 532.8.&lt;br /&gt;
&lt;br /&gt;
The first version of the KOR New3DS browser was v9.6(which was when the New3DS KOR titles were originally added). Each version of the KOR browser has the same NintendoBrowser version as the other regions. The KOR browser has been only updated when the browser for the other regions were updated, hence the title-versions are the same as well. The KOR browser ExeFS .code is different from the other regions(more than just region-related IDs etc).&lt;br /&gt;
&lt;br /&gt;
==== OSS 9.0 and 9.3 diff ====&lt;br /&gt;
The following is a diff of the OSS archives from [http://www.nintendo.co.jp/support/oss/index.html here], for v9.0 and v9.3.&lt;br /&gt;
&lt;br /&gt;
 Files NewNintendo3DS_OpenSources9.0.0-/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp and NewNintendo3DS_OpenSources9.3.0-/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp differ&lt;br /&gt;
 Files NewNintendo3DS_OpenSources9.0.0-/WKC/WebKit/WKC/webkit/WKCVersion.h and NewNintendo3DS_OpenSources9.3.0-/WKC/WebKit/WKC/webkit/WKCVersion.h differ&lt;br /&gt;
&lt;br /&gt;
WKC_CUSTOMER_RELEASE_VERSION was changed from &amp;quot;0.5.8&amp;quot; to &amp;quot;0.5.10&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following code was added to ResourceHandleManager::doRedirect(): curl_easy_setopt(d-&amp;gt;m_handle, CURLOPT_SHARE, 0);&lt;br /&gt;
&lt;br /&gt;
==== v9.6 ====&lt;br /&gt;
WebKit/OSS code was actually updated.&lt;br /&gt;
ExeFS .code was updated. The following files in RomFS were updated:&lt;br /&gt;
* &amp;quot;/banner/CN/Skater.icn&amp;quot; and &amp;quot;/banner/KR/Skater.icn&amp;quot;.&lt;br /&gt;
* &amp;quot;/browser/rootca.pem&amp;quot;&lt;br /&gt;
* &amp;quot;/build/buildinfo.dat&amp;quot;&lt;br /&gt;
* &amp;quot;/cairo.cro.lex&amp;quot; and &amp;quot;/.crr/static.crr&amp;quot;&lt;br /&gt;
* &amp;quot;/lyt/Button/ButtonSelectHSearch.arc&amp;quot;&lt;br /&gt;
* &amp;quot;/lyt/Kbd/Swkbd.arc&amp;quot;&lt;br /&gt;
* &amp;quot;lyt/Kbd.arc&amp;quot;&lt;br /&gt;
* &amp;quot;skater.msbt&amp;quot; under all of the &amp;quot;/message/&amp;lt;region&amp;gt;_&amp;lt;language&amp;gt;/&amp;quot; directories.&lt;br /&gt;
* &amp;quot;/oss.cro.lex&amp;quot;, &amp;quot;/peer.cro.lex&amp;quot;, &amp;quot;/static.crs&amp;quot;, and &amp;quot;/webkit.cro.lex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following was added to RomFS:&lt;br /&gt;
* &amp;quot;/favicon/naver.dat&amp;quot;&lt;br /&gt;
* A &amp;quot;KO&amp;quot; directory under &amp;quot;/iwnn&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== v9.9 ====&lt;br /&gt;
ExeFS:/.code was updated.&lt;br /&gt;
&lt;br /&gt;
The only RomFS changes is file-updating, all of the following files were updated:&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /cairo.cro.lex&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex&lt;br /&gt;
 /peer.cro.lex&lt;br /&gt;
 /static.crs&lt;br /&gt;
 /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
See [https://gist.github.com/yellows8/9fb509fde4112339f342 here] for a diff of the OSS(WebKitLibraries/ is not included due to the massive cairo library diff). An exploitable security vuln(which was already known in the context of 3DS webkit) was fixed. [[User:Yellows8|Yellows8]]&#039; private(at the time of writing) exploit for it is based on the PoC from [http://pastebin.com/ufBCQKda here](see the pastebin for the actual pastebin author).&lt;br /&gt;
&lt;br /&gt;
==== v10.2 ====&lt;br /&gt;
The libstagefright build in the main SKATER codebin was updated to a version which fixed libstagefright vuln(s): the vuln used in [[browserhax|browserhax_fright]] at the time of sysupdate release was fixed. The *only* code changed in the main codebin, was code related to libstagefright.&lt;br /&gt;
&lt;br /&gt;
The only RomFS changes is file-updating, all of the following files were updated(see the forced-sysupdate section regarding what changed in the message files):&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex&lt;br /&gt;
 /static.crs&lt;br /&gt;
 /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
OSS diff:&lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/WKC/WebKit/WKC/webkit/WKCVersion.h b/NewNintendo3DS_OpenSources10.2.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index 4543297..0860336 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;0.5.15&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;0.5.17&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;536.30&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/ChangeLog b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 index a5abb35..cf5a9fa 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 @@ -1,3 +1,12 @@&lt;br /&gt;
 +2013-11-05  Ryosuke Niwa  &amp;lt;rniwa@webkit.org&amp;gt;&lt;br /&gt;
 +&lt;br /&gt;
 +        Use-after-free in SliderThumbElement::dragFrom&lt;br /&gt;
 +        https://bugs.webkit.org/show_bug.cgi?id=123873&lt;br /&gt;
 +&lt;br /&gt;
 +        Reviewed by Andreas Kling.&lt;br /&gt;
 +&lt;br /&gt;
 +        Merge https://chromium.googlesource.com/chromium/blink/+/04a23bfca2d04101a1828d36ff36c29f3a24f34b&lt;br /&gt;
 +&lt;br /&gt;
  2015-02-06  Maciej Stachowiak  &amp;lt;mjs@apple.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
          REGRESSION(r179706): Caused memory corruption on some tests (Requested by _ap_ on #webkit).&lt;br /&gt;
 @@ -879,7 +888,7 @@&lt;br /&gt;
          * rendering/RenderLineBoxList.cpp:&lt;br /&gt;
          (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):&lt;br /&gt;
  &lt;br /&gt;
 -2014-01-21  LÃ¡szlÃ³ LangÃ³  &amp;lt;llango.u-szeged@partner.samsung.com&amp;gt;&lt;br /&gt;
 +2014-01-21  Laszlo Lango  &amp;lt;llango.u-szeged@partner.samsung.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
          Assertion failure in Range::nodeWillBeRemoved&lt;br /&gt;
          https://bugs.webkit.org/show_bug.cgi?id=121694&lt;br /&gt;
 @@ -1879,7 +1888,7 @@&lt;br /&gt;
  &lt;br /&gt;
  2012-09-14  Simon Fraser  &amp;lt;simon.fraser@apple.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 -        REGRESSION: transition doesnât always override transition-property&lt;br /&gt;
 +        REGRESSION: transition doesnft always override transition-property&lt;br /&gt;
          https://bugs.webkit.org/show_bug.cgi?id=96658&lt;br /&gt;
  &lt;br /&gt;
          Reviewed by Dean Jackson.&lt;br /&gt;
 @@ -3691,8 +3700,8 @@&lt;br /&gt;
              glyph with font data for the primary font, presumably to meet the SVG&lt;br /&gt;
              spec requirement: &amp;quot;If the references to alternate glyphs do not result&lt;br /&gt;
              in successful identification of alternate glyphs to use, then the&lt;br /&gt;
 -            character(s) that are inside of the çª¶åltGlyphçª¶?element are rendered as&lt;br /&gt;
 -            if the çª¶åltGlyphçª¶?element were a çª¶?spançª¶?element instead.&amp;quot;&lt;br /&gt;
 +            character(s) that are inside of the âaltGlyphâ?element are rendered as&lt;br /&gt;
 +            if the âaltGlyphâ?element were a â?spanâ?element instead.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
              If the alt glyph is not then found we are in the case from the spec&lt;br /&gt;
              and indeed we should use the primary font. However, we end up replacing the GlyphPage&lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/html/RangeInputType.cpp b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 index 484adec..d7e9e8d 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 @@ -164,7 +164,7 @@ void RangeInputType::handleMouseDownEvent(MouseEvent* event)&lt;br /&gt;
      ASSERT(element()-&amp;gt;hasShadowRoot());&lt;br /&gt;
      if (targetNode != element() &amp;amp;&amp;amp; !targetNode-&amp;gt;isDescendantOf(element()-&amp;gt;shadowTree()-&amp;gt;oldestShadowRoot()))&lt;br /&gt;
          return;&lt;br /&gt;
 -    SliderThumbElement* thumb = sliderThumbElementOf(element());&lt;br /&gt;
 +    RefPtr&amp;lt;SliderThumbElement&amp;gt; thumb = sliderThumbElementOf(element());&lt;br /&gt;
      if (targetNode == thumb)&lt;br /&gt;
          return;&lt;br /&gt;
      thumb-&amp;gt;dragFrom(event-&amp;gt;absoluteLocation());&lt;br /&gt;
&lt;br /&gt;
==== v10.4 ====&lt;br /&gt;
The ExeFS codebin was updated, the only change was that the following code was updated in the actual NupCheck HTTPS request function:&lt;br /&gt;
* Previous version: sprintf(out, &amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/2/%s&amp;quot;, region);&lt;br /&gt;
* Current  version: sprintf(out, &amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/%d/%s&amp;quot;, 3, region);&lt;br /&gt;
&lt;br /&gt;
libpng was updated from version 1.5.21 to 1.5.24.&lt;br /&gt;
&lt;br /&gt;
The following RomFS files were updated(see the forced-sysupdate section regarding what changed in the message files):&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /cairo.cro.lex&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex differ&lt;br /&gt;
 /peer.cro.lex differ&lt;br /&gt;
 /static.crs differ&lt;br /&gt;
 /webkit.cro.lex differ&lt;br /&gt;
&lt;br /&gt;
==== v10.6 ====&lt;br /&gt;
The ExeFS codebin was updated.&lt;br /&gt;
&lt;br /&gt;
[[browserhax|browserhax_fright_tx3g]] was fixed. The code handling tx3g now matches the latest libstagefright git.&lt;br /&gt;
&lt;br /&gt;
Hence the below RomFS listing, no OSS was updated at all(besides libstagefright mentioned above).&lt;br /&gt;
&lt;br /&gt;
The following RomFS files were updated:&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /static.crs&lt;br /&gt;
&lt;br /&gt;
==== v10.7 ====&lt;br /&gt;
Basically the same changes as Old3DS v10.7, except with the usual buildinfo.dat update in RomFS. The below date is 6 days after the browser-version-check [[3DS_Userland_Flaws|bypass]] was publicly disclosed.&lt;br /&gt;
&lt;br /&gt;
 cat v7184/00000025_romfs/build/buildinfo.dat&lt;br /&gt;
 10150&lt;br /&gt;
 applet&lt;br /&gt;
 2016-03-02 18:25&lt;br /&gt;
&lt;br /&gt;
==== v11.1 ====&lt;br /&gt;
The ExeFS codebin was updated. The following files in RomFS were updated:&lt;br /&gt;
&lt;br /&gt;
  /build/buildinfo.dat&lt;br /&gt;
  /.crr/static.crr&lt;br /&gt;
  /oss.cro.lex&lt;br /&gt;
  /static.crs&lt;br /&gt;
  /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
  cat v8192/00000026_romfs/build/buildinfo.dat&lt;br /&gt;
  10156&lt;br /&gt;
  applet&lt;br /&gt;
  2016-08-26 19:47&lt;br /&gt;
&lt;br /&gt;
Minus the 4 functions that changed due to compiler optimization, only 1 function was actually updated. This is LT_1a4004, previous version at LT_1a4004: libstagefright status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth)&lt;br /&gt;
&lt;br /&gt;
Additional code was added which doesn&#039;t seem to be from upstream git, right [https://android.googlesource.com/platform/frameworks/av/+/32d6e5f0ebe9e00f80401e5f4fd6e285a474590d/media/libstagefright/MPEG4Extractor.cpp#880 before] the cprt code block: &amp;quot;if((*offset + chunk_size) - data_offset &amp;lt; 0)fail&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This fixed skater31hax + any other mp4 haxx which requires using a negative 64bit chunk_size value.&lt;br /&gt;
&lt;br /&gt;
The filepath base used in the assert strings were changed from &amp;quot;d:\Jenkins\workspace\MPSkaterBuild\MVPlayer\Skater\Base\Android\frameworks\base\media\libstagefright\&amp;quot; to &amp;quot;d:\jenkins\workspace\MPSkaterBuild-Git\Base\Android\frameworks\base\media\libstagefright\&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== v11.4 ====&lt;br /&gt;
The only changes in RomFS was for &amp;quot;/build/buildinfo.dat&amp;quot; and &amp;quot;/static.crs&amp;quot;, hence no OSS in CRO(s) were updated.&lt;br /&gt;
&lt;br /&gt;
The main codebin was updated. Exactly two functions were updated, these are not related to code exec vulns.&lt;br /&gt;
&lt;br /&gt;
  cat v9232/00000027_romfs/build/buildinfo.dat&lt;br /&gt;
  10160&lt;br /&gt;
  applet&lt;br /&gt;
  2017-03-08 19:44&lt;br /&gt;
&lt;br /&gt;
=== New3DS Browser Specifications ===&lt;br /&gt;
[http://www.nintendo.co.jp/3ds/new/features/modal_net.html]&lt;br /&gt;
&lt;br /&gt;
English version:&lt;br /&gt;
* &amp;quot;Browser engine: NetFront® Browser NX v3.0&amp;quot;&lt;br /&gt;
* &amp;quot;User agent: Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML and like Gecko) NX/3.0.*.*.* Mobile NintendoBrowser/1.0.**** JP&lt;br /&gt;
* ** Version information is stated.&lt;br /&gt;
* *** When using the “Mobile version request” function, it differs from the above-mentioned character string&amp;quot;&lt;br /&gt;
* &amp;quot;Supported protocols: HTTP1.0/HTTP1.1/SSL3.0/TLS1.0/TLS1.1/TLS1.2&amp;quot;&lt;br /&gt;
* &amp;quot;Web standard: HTML4.01 / HTML5 / XHTML1.1 / Fullscreen API / Gamepad API / SVG / WebSocket / Video Subtitle / WOFF / Web Messaging / Server-Sent / Web Storage (partial) / XMLHttpRequest / Canvas element / Video / DOM Levels 1-3 / ECMAScript / CSS1 / CSS2.1 / CSS3 (partial)&amp;quot;&lt;br /&gt;
* &amp;quot;Image format: bmp / ​​gif / ico / jpeg / png / svg (There are, however, possibilities that some images won&#039;t display.)&amp;quot;&lt;br /&gt;
* &amp;quot;Image preview: mpo / jpeg (There are, however, possibilities that some images won&#039;t display.)&amp;quot;&lt;br /&gt;
* &amp;quot;Video format: MP4, M3U8 + TS (HTTPLiveStreaming) (There are, however, some videos that may not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Video codec: H.264 - MPEG-4 AVC Video (max 854x480 at level 3.2, 3D compatible) (There are, however, some videos that can not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Audio codec: AAC - ISO / IEC 14496-3 MPEG-4AAC, MP3 (There are, however, some videos that can not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Format for uploading 3D videos: .mkv (In order to be played, videos must be converted to the appropriate format within the site you are uploading to. In some cases, the video will not play even if converted.)&amp;quot;&lt;br /&gt;
* &amp;quot;Plug-ins: Plug-ins such as Adobe Flash are not supported&amp;quot;&lt;br /&gt;
* &amp;quot;Active Rating System filtering: provided by Digital Arts, Inc.. Access to web content can be limited based on its category information, restricting access to web content that may result inappropriate.&amp;quot;&lt;br /&gt;
* &amp;quot;Websites can be requested to provide the mobile version (However, if the web page does not have a mobile version, it won&#039;t change the way it&#039;s displayed.)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
MJPEG + .avi is also supported.&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
* The html &amp;quot;color&amp;quot; &amp;lt;input&amp;gt; type is not supported.&lt;br /&gt;
&lt;br /&gt;
== Old3DS browser ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Old3DS Browser Specifications ===&lt;br /&gt;
* &amp;quot;Browser engine: NetFront® Browser&amp;quot;&lt;br /&gt;
* &amp;quot;User agent: Mozilla/5.0 (Nintendo 3DS; region; ; en) Version/1.7498.US&amp;quot;&lt;br /&gt;
* &amp;quot;Supported protocols: HTTP1.0/HTTP1.1/SSLv3/TLS1.0&amp;quot;&lt;br /&gt;
* &amp;quot;Web standard: HTML 4.01/XHTML 1.1/CSS 1/CSS 2.1/CSS 3 (partial functionality)/DOM Levels 1-3/ECMAScript/XMLHttpRequest/Canvas Element (partial functionality)&amp;quot;&lt;br /&gt;
* &amp;quot;Image format: MPO / GIF / JPEG / PNG / BMP / ICO (some images cannot be displayed)&amp;quot;&lt;br /&gt;
* &amp;quot;Plug-ins: Plug-ins such as Adobe Flash are not supported&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Old3DS browser doesn&#039;t support events &amp;quot;focusin&amp;quot; and &amp;quot;focusout&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== User-Agent and Browser Versions ===&lt;br /&gt;
User-agent format: &amp;lt;code style=&amp;quot;font-size:larger;&amp;quot;&amp;gt;Mozilla/5.0 (Nintendo 3DS; U; ; &amp;lt;lang&amp;gt;) Version/&amp;lt;version&amp;gt;.&amp;lt;region&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lang&amp;gt; is &amp;quot;en&amp;quot;, &amp;quot;fr&amp;quot;, etc. &amp;lt;region&amp;gt; is &amp;quot;US&amp;quot;, &amp;quot;EU&amp;quot;, etc. See below for &amp;lt;version&amp;gt;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Browser version&lt;br /&gt;
! CDN Title-version&lt;br /&gt;
! Network-only system-update version&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.7412&lt;br /&gt;
| v6&lt;br /&gt;
| [[2.0.0-2|2.0.0-2]]&lt;br /&gt;
| This was the initial version.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7455&lt;br /&gt;
| v1024&lt;br /&gt;
| [[2.1.0-4]]&lt;br /&gt;
| ExeFS .code was updated, both of the CROs(webkit/OSS) were updated too.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7498&lt;br /&gt;
| v2050&lt;br /&gt;
| [[4.0.0-7]]&lt;br /&gt;
| ExeFS .code was updated, both of the CROs(webkit/OSS) were updated too. The manual CFA was updated as well.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7538&lt;br /&gt;
| v0&lt;br /&gt;
| [[4.2.0-9]]&lt;br /&gt;
| First version of the KOR browser. The CROs are different from the  USA/EUR/JPN [[4.0.0-7]] browser.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7552&lt;br /&gt;
| v3075&lt;br /&gt;
| [[5.0.0-11]]&lt;br /&gt;
| ExeFS .code and icon were updated, both of the CROs(webkit/OSS) were updated too. The manual CFA was updated as well.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7552&lt;br /&gt;
| v3088&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| The main NCCH wasn&#039;t updated at all(same TMD contentID/content-hash as the previous version), only the manual CFA for this title was updated.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7567&lt;br /&gt;
| v4096&lt;br /&gt;
| [[7.1.0-16]]&lt;br /&gt;
| The CXI .code was updated, some data in the RomFS was updated(none of the CROs such as webkit.cro were updated). The manual CFA was updated too.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7585&lt;br /&gt;
| v5121&lt;br /&gt;
| [[9.5.0-23]]&lt;br /&gt;
| The CXI .code was updated, and the manual CFA was updated. RomFS changes:&lt;br /&gt;
* &amp;quot;/browser/rootca.pem&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/oss.cro&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/static.crs&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/webkit.cro&amp;quot; updated&lt;br /&gt;
* &amp;quot;/.crr/static.crr&amp;quot; updated&lt;br /&gt;
* &amp;quot;/layout/dialogheader/WirelessSwitchOff.arc&amp;quot; was removed&lt;br /&gt;
* &amp;quot;/layout/favorite/favicondata/KOR.arc&amp;quot; updated&lt;br /&gt;
&lt;br /&gt;
A vuln used in a public(at the time of this sysupdate) webkit exploit for spider was fixed, which also fixed the removewinframe exploit from [https://github.com/yellows8/3ds_webkithax here].&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| v6147&lt;br /&gt;
| v9.9 CUP&lt;br /&gt;
| v9.9 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7610&lt;br /&gt;
| v6149&lt;br /&gt;
| [[9.9.0-26]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7616&lt;br /&gt;
| v7168&lt;br /&gt;
| [[10.2.0-28]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7622&lt;br /&gt;
| v8192&lt;br /&gt;
| [[10.6.0-31]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| v9216&lt;br /&gt;
| v10.7 CUP&lt;br /&gt;
| v10.7 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7625&lt;br /&gt;
| v9232&lt;br /&gt;
| [[10.7.0-32]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7630&lt;br /&gt;
| v10240&lt;br /&gt;
| [[11.1.0-34]]&lt;br /&gt;
| See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Heap ===&lt;br /&gt;
The USA/EUR/JPN + KOR browser allocates the 0x08000000 heap with size 0x01A97000. The size used by the CHN and TWN browser is 0x01997000, exactly 0x100000-bytes smaller.&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v9.9 ===&lt;br /&gt;
ExeFS:/.code was updated.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS were file-updating, the following files were updated:&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/spider.msbt&lt;br /&gt;
 /message/EU_Dutch/spider.msbt&lt;br /&gt;
 /message/EU_English/spider.msbt&lt;br /&gt;
 /message/EU_French/spider.msbt&lt;br /&gt;
 /message/EU_German/spider.msbt&lt;br /&gt;
 /message/EU_Italian/spider.msbt&lt;br /&gt;
 /message/EU_Portuguese/spider.msbt&lt;br /&gt;
 /message/EU_Russian/spider.msbt&lt;br /&gt;
 /message/EU_Spanish/spider.msbt&lt;br /&gt;
 /message/JP_Japanese/spider.msbt&lt;br /&gt;
 /message/KR_Hangeul/spider.msbt&lt;br /&gt;
 /message/TW_English/spider.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/spider.msbt&lt;br /&gt;
 /message/US_English/spider.msbt&lt;br /&gt;
 /message/US_French/spider.msbt&lt;br /&gt;
 /message/US_Portuguese/spider.msbt&lt;br /&gt;
 /message/US_Spanish/spider.msbt&lt;br /&gt;
&lt;br /&gt;
OSS diff for v9.5 and v9.9, without the .dox changes:&lt;br /&gt;
&lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/WKC/WebKit/WKC/webkit/WKCVersion.h b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index be5ff09..55a7274 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.14&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.16&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;532.7&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/webkit/WebCore/rendering/RenderBox.cpp b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 index da4127e..d03403e 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 @@ -305,23 +305,23 @@ int RenderBox::scrollHeight() const&lt;br /&gt;
  &lt;br /&gt;
  int RenderBox::scrollLeft() const&lt;br /&gt;
  {&lt;br /&gt;
 -    return hasOverflowClip() ? layer()-&amp;gt;scrollXOffset() : 0;&lt;br /&gt;
 +    return layer() &amp;amp;&amp;amp; hasOverflowClip() ? layer()-&amp;gt;scrollXOffset() : 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int RenderBox::scrollTop() const&lt;br /&gt;
  {&lt;br /&gt;
 -    return hasOverflowClip() ? layer()-&amp;gt;scrollYOffset() : 0;&lt;br /&gt;
 +    return layer() &amp;amp;&amp;amp; hasOverflowClip() ? layer()-&amp;gt;scrollYOffset() : 0;&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  void RenderBox::setScrollLeft(int newLeft)&lt;br /&gt;
  {&lt;br /&gt;
 -    if (hasOverflowClip())&lt;br /&gt;
 +    if (hasOverflowClip() &amp;amp;&amp;amp; layer())&lt;br /&gt;
          layer()-&amp;gt;scrollToXOffset(newLeft);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  void RenderBox::setScrollTop(int newTop)&lt;br /&gt;
  {&lt;br /&gt;
 -    if (hasOverflowClip())&lt;br /&gt;
 +    if (hasOverflowClip() &amp;amp;&amp;amp; layer())&lt;br /&gt;
          layer()-&amp;gt;scrollToYOffset(newTop);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.2 ===&lt;br /&gt;
The slider vuln from [https://github.com/yellows8/3ds_webkithax here] was fixed in the Old3DS browser.&lt;br /&gt;
&lt;br /&gt;
The main codebin .text only increased by 0x10-bytes.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS was that the following files were updated:&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
&lt;br /&gt;
OSS diff:&lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index 55a7274..fc153c4 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.16&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.17&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;532.7&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderSlider.cpp b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 index b2f5cef..1dd3dbd 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 @@ -221,6 +221,7 @@ RenderSlider::~RenderSlider()&lt;br /&gt;
  {&lt;br /&gt;
      if (m_thumb)&lt;br /&gt;
          m_thumb-&amp;gt;detach();&lt;br /&gt;
 +    m_thumb = 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int RenderSlider::baselinePosition(bool, bool) const&lt;br /&gt;
 @@ -493,7 +494,8 @@ void RenderSlider::forwardEvent(Event* event)&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
  &lt;br /&gt;
 -    m_thumb-&amp;gt;defaultEventHandler(event);&lt;br /&gt;
 +    if (m_thumb)&lt;br /&gt;
 +        m_thumb-&amp;gt;defaultEventHandler(event);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  bool RenderSlider::inDragMode() const&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.6 ===&lt;br /&gt;
[[browserhax|spider28hax]] was fixed. The &amp;quot;2^32 characters long string&amp;quot; vuln described [[3DS_Userland_Flaws|here]] was &#039;&#039;finally&#039;&#039; fixed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;A lot&#039;&#039; of WebKit issues/vulns were fixed, see [https://gist.github.com/yellows8/b1e10caa1d8bb8a46316 here] for the changes.&lt;br /&gt;
&lt;br /&gt;
libpng was updated from version 1.4.12 to 1.4.19. zlib was updated from 1.2.7 to 1.2.8.&lt;br /&gt;
&lt;br /&gt;
The .text size increased by 0x478-bytes.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS was that the following files were updated:&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /manual/Manual.bcma&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.7 ===&lt;br /&gt;
&#039;&#039;Nothing&#039;&#039; changed except some words for version-values in .text being updated(RomFS wasn&#039;t changed), code for browser-version-check was [[#v10.7_2|updated]].&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v11.1 ===&lt;br /&gt;
Nothing changed in the ExeFS codebin besides the usual version values. The following files in RomFS were updated:&lt;br /&gt;
  /cro/oss.cro&lt;br /&gt;
  /cro/webkit.cro&lt;br /&gt;
  /.crr/static.crr&lt;br /&gt;
&lt;br /&gt;
== Forced system-update ==&lt;br /&gt;
The Old3DS/New3DS Internet Browser updated with [[9.9.0-26]] added the following message strings:&lt;br /&gt;
 In order to use the Internet &lt;br /&gt;
 browser, a system update &lt;br /&gt;
 is required.&lt;br /&gt;
 To perform a system update, &lt;br /&gt;
 select System Update from Other&lt;br /&gt;
 Settings in System Settings.&lt;br /&gt;
&lt;br /&gt;
 The Internet browser cannot be&lt;br /&gt;
 used at this time.&lt;br /&gt;
 Please check your network&lt;br /&gt;
 environment or try again later.&lt;br /&gt;
&lt;br /&gt;
For whatever reason, the above &#039;&#039;message strings&#039;&#039; were removed with New3DS-browser v10.2, then re-added with v10.4. This does not apply to the Old3DS browser. Whenever v10.2 New3DS browser tries to use these message-strings for displaying a browser-update-related message, it will crash due to an assert failing since the message-strings are missing. Hence, if/when the v10.2 update-check page is ever updated where the browser tries to display a message for it, or when accessing that page fails, the browser will automatically crash.&lt;br /&gt;
&lt;br /&gt;
This wasn&#039;t enforced(web-browser displaying the above message when the installed browser isn&#039;t the latest version) until October 26, 2015.&lt;br /&gt;
&lt;br /&gt;
This message only triggers when attempting to load a web-page. This is only handled the first time the browser accesses a web-page, during this browser session.&lt;br /&gt;
&lt;br /&gt;
The browser codebins starting with v9.9 now contain the following URL strings:&lt;br /&gt;
* Old3DS: &amp;lt;nowiki&amp;gt;&amp;quot;https://cbvc.cdn.nintendo.net/CTR/1/&amp;lt;region&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* New3DS: &amp;lt;nowiki&amp;gt;&amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/1/&amp;lt;region&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;region&amp;gt; string is one of the following:&lt;br /&gt;
* &amp;quot;JPN&amp;quot;&lt;br /&gt;
* &amp;quot;USA&amp;quot;&lt;br /&gt;
* &amp;quot;EUR&amp;quot;&lt;br /&gt;
* &amp;quot;KOR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Starting with the browser from [[10.2.0-28]], the &amp;quot;1&amp;quot; in the above URLs were changed to &amp;quot;2&amp;quot;. With the New3DS browser from [[10.4.0-29]], it&#039;s now &amp;quot;3&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
As of October 26, 2015, the &amp;quot;1&amp;quot; URLs return the browser-version for v9.9(decimal number as a string without any &amp;quot;.&amp;quot;), while the &amp;quot;2&amp;quot; URLs returns 0.&lt;br /&gt;
&lt;br /&gt;
 if(internal_browserver &amp;gt; server_browserver)&lt;br /&gt;
 {&lt;br /&gt;
     &amp;lt;safe&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
 else&lt;br /&gt;
 {&lt;br /&gt;
     &amp;lt;update message&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Hence, internal_browserver == server_browserver will trigger the sysupdate message, which appears to be the normal way to indicate that the current browser is outdated(see above).&lt;br /&gt;
&lt;br /&gt;
There is a cache for this in savedata. The request is only done when at least 24-hours have passed since the last time the request was done(see the below savedata section).&lt;br /&gt;
&lt;br /&gt;
It is still possible to guard against this update by blocking the previous URLs using a proxy. &lt;br /&gt;
It is not possible to remove the update message by entering the [[Recovery Mode]].&lt;br /&gt;
&lt;br /&gt;
=== Page request ===&lt;br /&gt;
For this request, all root-CAs bundled with the browser are trusted, in addition to two of the SSL module builtin Nintendo root-CAs.&lt;br /&gt;
&lt;br /&gt;
The browser(with New3DS at least) does the following with [[HTTP_Services|HTTPC]] for requesting the above page:&lt;br /&gt;
* Initializes the HTTP context and uses [[HTTPC:InitializeConnectionSession]] + [[HTTPC:SetProxyDefault]].&lt;br /&gt;
* Uses [[HTTP_Services|HTTPC]] command 0x250080 twice with cmd[1]=contexthandle: first time cmd[2]=0x3, second time cmd[2]=0x6.&lt;br /&gt;
* Then [[HTTPC:AddTrustedRootCA]] is used 48 times to setup 48 trusted root CAs. This appears to be every cert in the browser &amp;quot;romfs:/browser/rootca.pem&amp;quot; file converted to DER, in the same order from there(in other words, every single root CA the browser trusts by default for normal web-browsing).&lt;br /&gt;
* Then [[HTTPC:BeginRequest]] is used.&lt;br /&gt;
* Then [[HTTPC:ReceiveDataTimeout]] is used, the recv-size seems to be fixed to 0x20.&lt;br /&gt;
* Then [[HTTPC:GetResponseStatusCodeTimeout]] is used.&lt;br /&gt;
* Then [[HTTPC:GetDownloadSizeState]] is used.&lt;br /&gt;
* Then the HTTP context is closed.&lt;br /&gt;
&lt;br /&gt;
Raw request data(New3DS USA v10.2 browser):&lt;br /&gt;
 000000: 47 45 54 20 2f 53 4e 41 4b 45 2f 32 2f 55 53 41  GET /SNAKE/2/USA&lt;br /&gt;
 000010: 20 48 54 54 50 2f 31 2e 31 0d 0a 48 6f 73 74 3a   HTTP/1.1..Host:&lt;br /&gt;
 000020: 20 63 62 76 63 2e 63 64 6e 2e 6e 69 6e 74 65 6e   cbvc.cdn.ninten&lt;br /&gt;
 000030: 64 6f 2e 6e 65 74 0d 0a 0d 0a                    do.net....&lt;br /&gt;
&lt;br /&gt;
=== v10.7 ===&lt;br /&gt;
The only actual code change with Old3DS/New3DS browser v10.7 was that the code which calculates the diff_timestamp was moved to immediately after the block which initializes &amp;lt;state_timestamp&amp;gt; when &amp;lt;state_timestamp&amp;gt; is all-zero. This fixed the browser-version-check [[3DS_Userland_Flaws|bypass]].&lt;br /&gt;
&lt;br /&gt;
== Dummy web-browser ==&lt;br /&gt;
Gamecards v9.9 and above include, with their sysupdate, a dummy Old3DS/New3DS web-browser. The *only* thing this title does is display the same message listed in the above forced-update section. The message files in RomFS *only* contain that message string above. There are no &amp;quot;http&amp;quot; strings in the main codebin, and [[RO_Services|RO]] isn&#039;t used either(no CRO data in RomFS at all). Both browsers are internally called &amp;quot;dummySpider&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Hence, if you update your system below v9.8 with any v9.9 or above gamecard, the system web-browser will be rendered *completely* useless until you install a system-update from CDN(no network requests involved here).&lt;br /&gt;
&lt;br /&gt;
Gamecards v10.7 and v11.4(New3DS only) have updated the dummy web-browser, where the only difference is the title version.&lt;br /&gt;
&lt;br /&gt;
== Savedata ==&lt;br /&gt;
=== New3DS ===&lt;br /&gt;
On newer SKATER versions, it appears *all* NAND savedata is stored under the [[System_SaveData|0x000200BB]] savedata.&lt;br /&gt;
&lt;br /&gt;
==== 0x000200BB savedata ====&lt;br /&gt;
This only contains &amp;quot;t.bin&amp;quot; with filesize 0xadf80, the format is below.&lt;br /&gt;
&lt;br /&gt;
The timestamp format used here is the number of milliseconds since January 1, 2000(local-time).&lt;br /&gt;
&lt;br /&gt;
When using the &amp;quot;Initialize savedata&amp;quot; option in the browser, that deletes this savedata file/image then exits the browser. This file is then re-created when the browser gets started again.&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;
| 0x68&lt;br /&gt;
| 0x4?&lt;br /&gt;
| This counter is incremented each time the savedata is written.&lt;br /&gt;
|-&lt;br /&gt;
| 0x70&lt;br /&gt;
| 0x8&lt;br /&gt;
| Timestamp for when the savedata was last written.&lt;br /&gt;
|-&lt;br /&gt;
| 0x94&lt;br /&gt;
| 0x15?&lt;br /&gt;
| This is all-zeros on non-JPN systems. On JPN systems where the browser filter is disabled, this is a string in the following format: &amp;quot;4110-%016llX&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD8&lt;br /&gt;
| 0x8&lt;br /&gt;
| s64 timestamp, can be either a normal positive timestamp or a relative negative one. Used with the forced-update described above. When an update is detected this timestamp is negative, otherwise this is a normal positive timestamp(it&#039;s unknown how exactly this timestamp is checked). When positive, this seems to be the last time the forced-update HTTPS request was done where no update was needed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==APT Parameters==&lt;br /&gt;
The URL to load can optionally be loaded from char[] string [[APT:SendParameter|paramblk+0]]. This is used when scanning URL QR-codes in Home Menu / etc.&lt;br /&gt;
&lt;br /&gt;
==Errors==&lt;br /&gt;
&amp;quot;Failed to load part of this page&amp;quot;: This can be caused by failing to load &amp;quot;/favicon.ico&amp;quot;. For example, this can be caused by loading a plain HTTP page, with plain-http favicon redirecting to HTTPS. If cert-verify then fails with favicon in this case, this error would then trigger.&lt;br /&gt;
&lt;br /&gt;
==Other details==&lt;br /&gt;
&lt;br /&gt;
*It scored 90/100 on [http://acid3.acidtests.org/ Acid3] test&lt;br /&gt;
*Images from the Internet can be saved to the [[SD Filesystem|SD Card]] and viewed using the [[Nintendo 3DS Camera]] application.&lt;br /&gt;
*Images saved to an [[SD Filesystem|SD Card]] or to the Nintendo 3DS system memory can be uploaded to blogs or other sites that allow the uploading of photos using :&lt;br /&gt;
 &amp;lt;input type=&amp;quot;file&amp;quot; /&amp;gt;&lt;br /&gt;
* HTML5Test.com say that Drag and drop is supported but it&#039;s not (code on WebKit is ready, but it&#039;s not implemented on interface of browser)&lt;br /&gt;
&lt;br /&gt;
==Tips==&lt;br /&gt;
&lt;br /&gt;
=== Detect User Agent ===&lt;br /&gt;
&lt;br /&gt;
To detect if the user agent is Nintendo 3DS Browser :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
     if (navigator.userAgent.indexOf(&#039;Nintendo 3DS&#039;) == -1) { //If the UserAgent is not &amp;quot;Nintendo 3DS&amp;quot;&lt;br /&gt;
         location.replace(&#039;http://www.3dbrew.org&#039;); //Redirect to an other page&lt;br /&gt;
     }&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* You can check &amp;lt;em&amp;gt;navigator.platform==&amp;quot;Nintendo 3DS&amp;quot;&amp;lt;/em&amp;gt; as well.&lt;br /&gt;
&lt;br /&gt;
=== Scrolling ===&lt;br /&gt;
&lt;br /&gt;
Scrolling can be altered by modifying &amp;lt;em&amp;gt;document.body.scrollTop&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;document.body.scrollLeft&amp;lt;/em&amp;gt;.  However, there are drawbacks related to working with these properties:&lt;br /&gt;
&lt;br /&gt;
* Both properties return 0 when accessed&lt;br /&gt;
* Setting one property resets the other property&#039;s scroll position&lt;br /&gt;
&lt;br /&gt;
In order to set both at the same time (without either resetting to 0), use &amp;lt;em&amp;gt;window.scrollTo&amp;lt;/em&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Events ===&lt;br /&gt;
==== Key Events ====&lt;br /&gt;
The following buttons trigger the &amp;lt;em&amp;gt;onkeydown&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;onkeypress&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;onkeyup&amp;lt;/em&amp;gt; events:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;20%&amp;quot;&lt;br /&gt;
! Code !! Button &lt;br /&gt;
|-&lt;br /&gt;
| 13 || A&lt;br /&gt;
|-&lt;br /&gt;
| 37 || Left&lt;br /&gt;
|-&lt;br /&gt;
| 38 || Up&lt;br /&gt;
|-&lt;br /&gt;
| 39 || Right&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Down&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The events cannot have their default action cancelled.  Other buttons do not trigger key events.&lt;br /&gt;
&lt;br /&gt;
==== Touch/Mouse Events ====&lt;br /&gt;
&amp;lt;em&amp;gt;onmousedown&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;onmouseup&amp;lt;/em&amp;gt; &amp;amp; &amp;lt;em&amp;gt;onclick&amp;lt;/em&amp;gt; are all triggered by the browser.  However, the &amp;lt;em&amp;gt;onmousedown&amp;lt;/em&amp;gt; event doesn&#039;t trigger until you lift the stylus or you&#039;ve held it on the screen for ~2 seconds—which is when text selection mode is activated—making it pretty much the same as &amp;lt;em&amp;gt;onmouseup&amp;lt;/em&amp;gt;.  The events cannot have their default action cancelled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;em&amp;gt;onmousemove&amp;lt;/em&amp;gt; and common touch/gesture events are not supported.&lt;br /&gt;
&lt;br /&gt;
== Screen Resolution ==&lt;br /&gt;
&lt;br /&gt;
The up screen resolution is 400×240. However, the viewable area in the browser is only &amp;lt;b&amp;gt;400×220&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The touch screen resolution is 320×240. However, the viewable area in the browser is only &amp;lt;b&amp;gt;320×212&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can have a page span both screens. However, the browser will behave as if the bottom screen is the only active screen and the top screen is scrolled off. This is important when computing CSS coordinates. Items positioned from &amp;quot;bottom&amp;quot; will be positioned based on 220px and not the full 432px of both screens.&lt;br /&gt;
&lt;br /&gt;
== Using Both Screens ==&lt;br /&gt;
&lt;br /&gt;
Generally the easiest way to accomplish the correct layout is to create HTML elements that &amp;quot;contain&amp;quot; the top and bottom screens. Here&#039;s an example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
   &amp;lt;head&amp;gt;&lt;br /&gt;
     &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=400&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;style&amp;gt;&lt;br /&gt;
       body{margin:0px;}&lt;br /&gt;
       #topscreen{width:400px;height:220px;overflow:hidden;}&lt;br /&gt;
       #bottomscreen{width:320px;height:212px;overflow:hidden;margin:0 auto;}&lt;br /&gt;
     &amp;lt;/style&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div id=&amp;quot;topscreen&amp;quot;&amp;gt;Top Screen&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div id=&amp;quot;bottomscreen&amp;quot;&amp;gt;Bottom Screen&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This scheme allows the page to be easily manipulated through JavaScript.  In order to have the window snap to the correct position, use the following JavaScript code:&lt;br /&gt;
&lt;br /&gt;
 window.setInterval(function () {&lt;br /&gt;
     window.scrollTo(40, 220);  &lt;br /&gt;
 }, 50);&lt;br /&gt;
&lt;br /&gt;
This automatically resets the position if the user accidentally scrolls the page.&lt;br /&gt;
&lt;br /&gt;
==Example Sites==&lt;br /&gt;
&amp;lt;!-- If you have a website that demonstrates these techniques, place it here! --&amp;gt;&lt;br /&gt;
* [http://www.nintendo.com/3ds/internetbrowser/bookmarks Nintendo 3DS Bookmarks] - This is the first bookmark pre-installed in the browser.&lt;br /&gt;
* [http://3ds.andysmith.co.uk/jFox.html jFox] (Short URL: http://bit.ly/iB7FqW)&lt;br /&gt;
* [http://ditto3d.com/3ds Ditto3D (Dead Link)] (Short URL: http://bit.ly/oVreWA)&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=FIRM&amp;diff=21345</id>
		<title>FIRM</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=FIRM&amp;diff=21345"/>
		<updated>2020-11-16T23:46:33Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* NATIVE_FIRM */ 11.14&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the file format for the [[Title list#00040138 - System Firmware|3DS&#039; Firmware]], it contains up to four &#039;sections&#039; of data comprising the ARM9 and ARM11 kernels, and some fundamental processes. The firmware sections are not encrypted. In a nutshell, a FIRM contains all the data required to set up the ARM9 and ARM11 kernels, and basic operating functionality.&lt;br /&gt;
&lt;br /&gt;
The ARM9 section contains the ARM9 kernel (and loader) and the Process9 NCCH (which is the only process run in user mode on the ARM9). The ARM11 sections contain the ARM11 kernel (and loader), and various ARM11 process NCCHs. For NATIVE_FIRM/SAFE_MODE_FIRM these ARM11 processes are sm, fs, pm, loader, and pxi. Normally the 4th section is not used. The code loaded from FIRM is constantly running on the system until another FIRM is launched. The ARM11 kernel is hard-coded to always decompress the ExeFS .code of embedded ARM11 NCCHs without checking the exheader compression bit.&lt;br /&gt;
&lt;br /&gt;
== FIRM 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;
|  0x000&lt;br /&gt;
|  4&lt;br /&gt;
|  Magic &#039;FIRM&#039;&lt;br /&gt;
|-&lt;br /&gt;
|  0x004&lt;br /&gt;
|  4&lt;br /&gt;
|  Boot priority (highest value = max prio), this is normally zero.&lt;br /&gt;
|-&lt;br /&gt;
|  0x008&lt;br /&gt;
|  4&lt;br /&gt;
|  ARM11 Entrypoint&lt;br /&gt;
|-&lt;br /&gt;
|  0x00C&lt;br /&gt;
|  4&lt;br /&gt;
|  ARM9 Entrypoint&lt;br /&gt;
|-&lt;br /&gt;
|  0x010&lt;br /&gt;
|  0x030&lt;br /&gt;
|  Reserved&lt;br /&gt;
|-&lt;br /&gt;
|  0x040&lt;br /&gt;
|  0x0C0 (0x030*4)&lt;br /&gt;
|  Firmware Section Headers&lt;br /&gt;
|-&lt;br /&gt;
|  0x100&lt;br /&gt;
|  0x100&lt;br /&gt;
|  RSA-2048 signature of the FIRM header&#039;s SHA-256 hash. The signature is checked when bootrom/Process9 are doing FIRM-launch (with the public key being hardcoded in each). The signature is not checked when installing FIRM to the NAND firm0/firm1 partitions.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firmware Section Headers ==&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;
|  0x000&lt;br /&gt;
|  4&lt;br /&gt;
|  Byte offset&lt;br /&gt;
|-&lt;br /&gt;
|  0x004&lt;br /&gt;
|  4&lt;br /&gt;
|  Physical address where the section is loaded to.&lt;br /&gt;
|-&lt;br /&gt;
|  0x008&lt;br /&gt;
|  4&lt;br /&gt;
|  Byte-size.  While loading FIRM this is the field used to determine whether the section exists or not, by checking for value 0x0.&lt;br /&gt;
|-&lt;br /&gt;
|  0x00C&lt;br /&gt;
|  4&lt;br /&gt;
|  Copy-method (0 = NDMA, 1 = XDMA, 2 = CPU mem-copy), Process9 ignores this field. Boot9 doesn&#039;t immediately throw an error when this isn&#039;t 0..2. In that case it will jump over section-data-loading which then results in the hash verification with the below hash being done with the hash already stored in the SHA hardware.&lt;br /&gt;
|-&lt;br /&gt;
|  0x010&lt;br /&gt;
|  0x020&lt;br /&gt;
|  SHA-256 Hash of Firmware Section&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The contents of individual sections &#039;&#039;may&#039;&#039; be encrypted if the FIRM is not meant to be booted from NAND, i.e. if it is meant to be booted from SPI flash or NTR cartridge. If hash checks fail for all FIRM sections if treated as plaintext, it may be worth trying to check if the sections are encrypted. The encryption is detailed on [[Bootloader#Non-NAND_FIRM_boot|the bootloader page]].&lt;br /&gt;
&lt;br /&gt;
== [[New_3DS]] FIRM ==&lt;br /&gt;
For New3DS firmwares (NATIVE_FIRM, TWL_FIRM, ..), the ARM9 FIRM binary has an additional layer of crypto. At the end of each ARM9 binary, there&#039;s a plaintext loader. The format of the FIRM header is identical to regular 3DS FIRM(the RSA modulo is the same as regular 3DS too).&lt;br /&gt;
&lt;br /&gt;
Before checking [[CONFIG_Registers|CFG_SYSPROT9]] the loader main() does the following:&lt;br /&gt;
* On [[9.5.0-22|9.5.0-X]]: executes a nop instruction with r0=0 and r1=&amp;lt;address of arm9binhdr+0x50&amp;gt;.&lt;br /&gt;
* Clears bit6 in [[AES_Registers|REG_AESKEYCNT]].&lt;br /&gt;
&lt;br /&gt;
If [[CONFIG_Registers#CFG_SYSPROT9|CFG_SYSPROT9]] bit 1 is clear (which means the OTP area is unlocked and so it knows that this is a hard reboot), it does the following things:&lt;br /&gt;
* Clears 0x200-bytes on the stack, then reads [[Flash_Filesystem|NAND]] sector 0x96(NAND image offset 0x12C00), with size 0x200-bytes into that stack buffer.&lt;br /&gt;
* Checks [[CONFIG_Registers#CFG_SYSPROT9|CFG_SYSPROT9]] bit 1 again, if it&#039;s set then it executes a panic function(set r0-r2=0, execute nop instruction, then execute instruction &amp;quot;bkpt 0x99&amp;quot;).&lt;br /&gt;
* Hashes data from the OTP region [[IO_Registers|0x10012000-0x10012090]] using SHA256 via the [[SHA_Registers|SHA]] hardware.&lt;br /&gt;
* Clears bit6 in [[AES_Registers|REG_AESKEYCNT]]. Initializes AES keyslot 0x11 keyX, keyY to the lower and higher portion of the above hash, respectively. Due to the above hashed data, the keyX+keyY here are console-unique.&lt;br /&gt;
* Decrypts the first 0x10-byte block in the above read NAND sector with keyslot 0x11 using AES-ECB. [[9.6.0-24|9.6.0-X]]: Then it decrypts the 0x10-bytes at offset 0x10 in the sector with keyslot 0x11.&lt;br /&gt;
* Then the normalkey, keyX, and keyY, for keyslot 0x11 are cleared to zero. Runs the TWL key-init/etc code which was originally in the ARM9-kernel, then writes 0x2 to [[CONFIG_Registers|CFG_SYSPROT9]] to disable the OTP area.&lt;br /&gt;
* Then it uses the above decrypted block from sector+0 to set the normalkey for keyslot 0x11. Decrypts arm9_bin_buf+0 using keyslot 0x11 with AES-ECB, and initialises keyX for keyslot 0x15 with it.&lt;br /&gt;
* [[9.6.0-24|9.6.0-X]]: Then it uses the above decrypted block from sector+0 to set the normalkey for keyslot 0x11. Decrypts a 0x10-byte block from arm9loader .(ro)data using keyslot 0x11 with AES-ECB, and initializes keyX for keyslot 0x18 with it(same block as previous versions).&lt;br /&gt;
* [[9.6.0-24|9.6.0-X]]: Starting with this version keyslot 0x16 keyX init was moved here, see below for details on this. The code for this is same as  [[9.5.0-22|9.5.0-X]], except the decrypted normalkey from sector+0x10 is used for keyslot 0x11 instead.&lt;br /&gt;
* Initialises KeyX for keyslots 0x18..0x1F(0x19..0x1F with [[9.6.0-24|9.6.0-X]]) with the output of decrypting a 0x10-byte block with AES-ECB using keyslot 0x11. This block was changed to a new one separate from keyslot 0x18, starting with [[9.6.0-24|9.6.0-X]]. The last byte in this 0x10-byte input block is increased by 0x01 after initializing each keyslot. Before doing the crypto each time, the loader sets the normal-key for keyslot 0x11 to the plaintext normalkey from sector+0(+0x10 with [[9.6.0-24|9.6.0-X]]). These are New3DS-specific keys.&lt;br /&gt;
* [[9.5.0-22|9.5.0-X]](moved to above with [[9.6.0-24|9.6.0-X]]): Sets the normal-key for keyslot 0x11 to the same one already decrypted on the stack. Decrypts the 0x10-byte block at arm9binhdr+0x60 with AES-ECB using keyslot 0x11, then sets the keyX for keyslot 0x16 to the output data.&lt;br /&gt;
* [[9.5.0-22|9.5.0-X]]: The normalkey, keyX, and keyY, for keyslot 0x11 are then cleared to zero.&lt;br /&gt;
&lt;br /&gt;
When [[CONFIG_Registers#CFG_SYSPROT9|CFG_SYSPROT9]] bit 1 is set(which means this happens only when this loader runs again for firm-launch), the normalkey, keyX, and keyY, for keyslot 0x11 are cleared to zero.&lt;br /&gt;
&lt;br /&gt;
It sets KeyY for keyslot 0x15(0x16 with [[9.5.0-22|9.5.0-X]]) to arm9_bin_buf+16, the CTR to arm9_bin_buf+32 (both are unique for every version). It then proceeds to decrypt the binary with AES-CTR. When done, it sets the normal-key for the keyslot used for binary decryption to zeros. It then decrypts arm9_bin_buf+64 using an hardcoded keyY for keyslot 0x15([[9.5.0-22|9.5.0-X]]/[[9.6.0-24|9.6.0-X]] also uses keyslot 0x15), sets the normal-key for this keyslot to zeros again, then makes sure the output block is all zeroes. If it is, it does some cleanup then it jumps to the entrypoint for the decrypted binary. Otherwise it will clear the keyX, keyY, and normal-key for each of the keyslots initialized by this loader (on [[9.6.0-24|9.6.0-X]]+, on older versions this was bugged and cleared keys 0x00..0x07 instead of 0x18..0x1F), do cleanup(same cleanup as when the decrypted block is all-zero) then just loop forever.&lt;br /&gt;
&lt;br /&gt;
Thus, the ARM9 binary has the following 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;
|  0x000&lt;br /&gt;
|  16&lt;br /&gt;
|  Encrypted KeyX (same for all FIRM&#039;s)&lt;br /&gt;
|-&lt;br /&gt;
|  0x010&lt;br /&gt;
|  16&lt;br /&gt;
|  KeyY&lt;br /&gt;
|-&lt;br /&gt;
|  0x020&lt;br /&gt;
|  16&lt;br /&gt;
|  CTR&lt;br /&gt;
|-&lt;br /&gt;
|  0x030&lt;br /&gt;
|  8&lt;br /&gt;
|  Size of encrypted binary, as ASCII text?&lt;br /&gt;
|-&lt;br /&gt;
|  0x038&lt;br /&gt;
|  8&lt;br /&gt;
|  ?&lt;br /&gt;
|-&lt;br /&gt;
|  0x040&lt;br /&gt;
|  16&lt;br /&gt;
|  Control block&lt;br /&gt;
|-&lt;br /&gt;
|  0x050&lt;br /&gt;
|  16&lt;br /&gt;
|  Added with [[9.5.0-22|9.5.0-X]]. Only used for hardware debugging: a nop instruction is executed with r0=0 and r1=&amp;lt;address of this data&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|  0x060&lt;br /&gt;
|  16&lt;br /&gt;
|  Added with [[9.5.0-22|9.5.0-X]]. Encrypted keyX for keyslot 0x16.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Originally the padding after the header before offset 0x800(start of actual ARM9-binary) was 0xFF bytes, with [[9.5.0-22|9.5.0-X]] this was changed to 0x0.&lt;br /&gt;
&lt;br /&gt;
For the New3DS NATIVE_FIRM arm9-section header, the only difference between the [[8.1.0-0_New3DS]] version and the [[9.0.0-20]] version is that the keyY, CTR, and the block at 0x30 in the header were updated.&lt;br /&gt;
&lt;br /&gt;
===New3DS ARM9 binary loader versions===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  FIRM system version(s)&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| [[8.1.0-0_New3DS]] - [[9.3.0-21|9.3.0-X]]&lt;br /&gt;
| Initial version.&lt;br /&gt;
|-&lt;br /&gt;
| [[9.5.0-22|9.5.0-X]]&lt;br /&gt;
| Added keyX initialization for keyslot 0x16(see above), and added code for clearing keyslot 0x11 immediately after the code finishes using keyslot 0x11. The keyslot used for arm9bin decryption was changed from 0x15 to 0x16. Added code for clearing keyslot 0x16 when control-block decryption fails. Added code for using arm9bin_hdr+0x50 with a nop instruction, at the very beginning of the main arm9-loader function. Added two new 0x10-blocks to the arm9bin-hdr.&lt;br /&gt;
|-&lt;br /&gt;
| [[9.6.0-24|9.6.0-X]] - [[11.3.0-36|11.3.0-X]]&lt;br /&gt;
| See above and [[9.6.0-24|here]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===New3DS ARM9 kernel===&lt;br /&gt;
The only actual code-difference for the Old3DS/New3DS ARM9-kernels&#039; crt0, besides TWL AES / [[IO_Registers|0x10012000]] related code, is that the New3DS ARM9-kernel writes 0x1 to [[CONFIG_Registers|REG_EXTMEMCNT9]] in the crt0.&lt;br /&gt;
&lt;br /&gt;
===New3DS Process9===&lt;br /&gt;
The following is all of the differences for Old3DS/New3DS Process9 with [[9.3.0-21|9.3.0-X]]:&lt;br /&gt;
* The FIRM-launch code called at the end of the New3DS proc9 main() has different mem-range checks.&lt;br /&gt;
* In the New3DS proc9, the v6.0/v7.0 keyinit function at the very beginning(before the original code) had additional code added for setting [[Flash_Filesystem|CTRNAND]] [[AES_Registers|keyslot]] 0x5, with keydata from .data. After setting the keyY, the keyY in .data is cleared.&lt;br /&gt;
* In New3DS proc9, the functions for getting the gamecard crypto keyslots / NCCH keyslot can return New3DS keyslots when New3DS flags(NCSD/NCCH) are set.&lt;br /&gt;
* The code/data for the binary near the end of arm9mem is slightly different, because of memory-region sizes.&lt;br /&gt;
* The only difference in .data(besides the above code binary) is that the New3DS proc9 has an additional 0x10-byte block for the keyslot 0x5 keyY, see above.&lt;br /&gt;
&lt;br /&gt;
== Variations ==&lt;br /&gt;
There exists different official firmwares for the 3DS: The default one (NATIVE_FIRM) is used to run all 3DS content and boots by default, while backwards compatibility is handled by TWL_FIRM and AGB_FIRM. There furthermore is a rescue mode provided by SAFE_MODE_FIRM.&lt;br /&gt;
&lt;br /&gt;
=== NATIVE_FIRM ===&lt;br /&gt;
NATIVE_FIRM is the FIRM which is installed to the [[Flash_Filesystem|NAND]] firm partitions, which is loaded by bootrom.&lt;br /&gt;
&lt;br /&gt;
Version history:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!  System version&lt;br /&gt;
!  old 3DS title version&lt;br /&gt;
!  old 3DS hex title contentID&lt;br /&gt;
!  Kernel/FIRM version (old 3DS/new 3DS)&lt;br /&gt;
!  FIRM ARM11-sysmodule Product Code&lt;br /&gt;
|-&lt;br /&gt;
| [[Factory_Setup|Factory]] FIRM (titleID 00040001-00000002)&lt;br /&gt;
| v0&lt;br /&gt;
| 00&lt;br /&gt;
| 2.3-0&lt;br /&gt;
|-&lt;br /&gt;
| Pre-1.0. Referenced in the v1.0 Home Menu NCCH plain-region.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2.23-X&lt;br /&gt;
|-&lt;br /&gt;
| [[1.0.0-0|1.0.0]]&lt;br /&gt;
| v432&lt;br /&gt;
| 00&lt;br /&gt;
| 2.27-0&lt;br /&gt;
|-&lt;br /&gt;
| [[1.1.0-1|1.1.0]]&lt;br /&gt;
| v1472&lt;br /&gt;
| 02&lt;br /&gt;
| 2.28-0&lt;br /&gt;
|-&lt;br /&gt;
| [[2.0.0-2|2.0.0]]&lt;br /&gt;
| v2516&lt;br /&gt;
| 09&lt;br /&gt;
| 2.29-7&lt;br /&gt;
|-&lt;br /&gt;
| [[2.1.0-3|2.1.0]]&lt;br /&gt;
| v3553&lt;br /&gt;
| 0B&lt;br /&gt;
| 2.30-18&lt;br /&gt;
| 0608builder&lt;br /&gt;
|-&lt;br /&gt;
| [[2.2.0-X|2.2.0]]&lt;br /&gt;
| v4595&lt;br /&gt;
| 0F&lt;br /&gt;
| 2.31-40&lt;br /&gt;
| 0909builder&lt;br /&gt;
|-&lt;br /&gt;
| [[3.0.0-5|3.0.0]]&lt;br /&gt;
| v5647&lt;br /&gt;
| 18&lt;br /&gt;
| 2.32-15&lt;br /&gt;
| 1128builder&lt;br /&gt;
|-&lt;br /&gt;
| [[4.0.0-7|4.0.0]]&lt;br /&gt;
| v6677&lt;br /&gt;
| 1D&lt;br /&gt;
| 2.33-4&lt;br /&gt;
| 0406builder&lt;br /&gt;
|-&lt;br /&gt;
| [[4.1.0-8|4.1.0]]&lt;br /&gt;
| v7712&lt;br /&gt;
| 1F&lt;br /&gt;
| 2.34-0&lt;br /&gt;
| 0508builder&lt;br /&gt;
|-&lt;br /&gt;
| [[5.0.0-11|5.0.0]]&lt;br /&gt;
| v8758&lt;br /&gt;
| 25&lt;br /&gt;
| 2.35-6&lt;br /&gt;
| 0228builder&lt;br /&gt;
|-&lt;br /&gt;
| [[5.1.0-11|5.1.0]]&lt;br /&gt;
| v9792&lt;br /&gt;
| 26&lt;br /&gt;
| 2.36-0&lt;br /&gt;
| 0401builder&lt;br /&gt;
|-&lt;br /&gt;
| [[6.0.0-11|6.0.0]]&lt;br /&gt;
| v10833&lt;br /&gt;
| 29&lt;br /&gt;
| 2.37-0&lt;br /&gt;
| 0520builder&lt;br /&gt;
|-&lt;br /&gt;
| [[6.1.0-11|6.1.0]]&lt;br /&gt;
| v11872&lt;br /&gt;
| 2A&lt;br /&gt;
| 2.38-0&lt;br /&gt;
| 0625builder&lt;br /&gt;
|-&lt;br /&gt;
| [[7.0.0-13|7.0.0]]&lt;br /&gt;
| v12916&lt;br /&gt;
| 2E&lt;br /&gt;
| 2.39-4&lt;br /&gt;
| 1125builder&lt;br /&gt;
|-&lt;br /&gt;
| [[7.2.0-17|7.2.0]]&lt;br /&gt;
| v13956&lt;br /&gt;
| 30&lt;br /&gt;
| 2.40-0&lt;br /&gt;
| 0404builder&lt;br /&gt;
|-&lt;br /&gt;
| [[8.0.0-18|8.0.0]]&lt;br /&gt;
| v15047&lt;br /&gt;
| 37&lt;br /&gt;
| 2.44-6&lt;br /&gt;
| 0701builder&lt;br /&gt;
|-&lt;br /&gt;
| [[8.1.0-0_New3DS]]&lt;br /&gt;
|N/A&lt;br /&gt;
|N/A&lt;br /&gt;
| 2.45-5&lt;br /&gt;
|-&lt;br /&gt;
| [[9.0.0-20|9.0.0]]&lt;br /&gt;
| v17120&lt;br /&gt;
| 38&lt;br /&gt;
| 2.46-0&lt;br /&gt;
| 0828builder&lt;br /&gt;
|-&lt;br /&gt;
| [[9.3.0-21|9.3.0]]&lt;br /&gt;
| v18182&lt;br /&gt;
| 3F&lt;br /&gt;
| 2.48-3&lt;br /&gt;
| 1125builder&lt;br /&gt;
|-&lt;br /&gt;
| [[9.5.0-22|9.5.0]]&lt;br /&gt;
| v19216&lt;br /&gt;
| 40&lt;br /&gt;
| 2.49-0&lt;br /&gt;
| 0126builder&lt;br /&gt;
|-&lt;br /&gt;
| [[9.6.0-24|9.6.0]]&lt;br /&gt;
| v20262&lt;br /&gt;
| 49&lt;br /&gt;
| 2.50-1&lt;br /&gt;
| 0311builder&lt;br /&gt;
|-&lt;br /&gt;
| [[10.0.0-27|10.0.0]]&lt;br /&gt;
| v21288&lt;br /&gt;
| 4B&lt;br /&gt;
| 2.50-7&lt;br /&gt;
| 0812builder&lt;br /&gt;
|-&lt;br /&gt;
| [[10.2.0-28|10.2.0]]&lt;br /&gt;
| v22313&lt;br /&gt;
| 4C&lt;br /&gt;
| 2.50-9&lt;br /&gt;
| 1009builder&lt;br /&gt;
|-&lt;br /&gt;
| [[10.4.0-29|10.4.0]]&lt;br /&gt;
| v23341&lt;br /&gt;
| 50&lt;br /&gt;
| 2.50-11&lt;br /&gt;
| 1224builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.0.0-33|11.0.0]]&lt;br /&gt;
| v24368&lt;br /&gt;
| 52&lt;br /&gt;
| 2.51-0&lt;br /&gt;
| 0406builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.1.0-34|11.1.0]]&lt;br /&gt;
| v25396&lt;br /&gt;
| 56&lt;br /&gt;
| 2.51-2&lt;br /&gt;
| 0805builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.2.0-35|11.2.0]]&lt;br /&gt;
| v26432&lt;br /&gt;
| 58&lt;br /&gt;
| 2.52-0&lt;br /&gt;
| 1015builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.3.0-36|11.3.0]]&lt;br /&gt;
| v27476&lt;br /&gt;
| 5C&lt;br /&gt;
| 2.53-0&lt;br /&gt;
| 0126builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.4.0-37|11.4.0]]&lt;br /&gt;
| v28512&lt;br /&gt;
| 5E&lt;br /&gt;
| 2.54-0&lt;br /&gt;
| 0314builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.8.0-41|11.8.0]]&lt;br /&gt;
| v29557&lt;br /&gt;
| 64&lt;br /&gt;
| 2.55-0&lt;br /&gt;
| 0710pseg-ciuser&lt;br /&gt;
|-&lt;br /&gt;
| [[11.12.0-44|11.12.0]]&lt;br /&gt;
| v30593&lt;br /&gt;
| 66&lt;br /&gt;
| 2.56-0&lt;br /&gt;
| 1021pseg-ciuser&lt;br /&gt;
|-&lt;br /&gt;
| [[11.14.0-46|11.14.0]]&lt;br /&gt;
| v31633&lt;br /&gt;
| 69&lt;br /&gt;
| 2.57-0&lt;br /&gt;
| 0929pseg-ciuser&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The above kernel/FIRM versions are in the format: &amp;lt;KERNEL_VERSIONMAJOR&amp;gt;.&amp;lt;KERNEL_VERSIONMINOR&amp;gt;-&amp;lt;KERNEL_VERSIONREVISION&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SAFE_MODE_FIRM ===&lt;br /&gt;
SAFE_MODE is used for running the [[System_Settings#System_Updater|System Updater]]. SAFE_MODE_FIRM and NATIVE_FIRM for the initial versions are exactly the same, except for the system core version fields. Kernel/FIRM versions for SAFE_MODE_FIRM are: (old3ds) v432 = 3.27-0, v5632 = 3.32-0, (new3ds) v16081 = 3.45-3.&lt;br /&gt;
&lt;br /&gt;
=== TWL_FIRM ===&lt;br /&gt;
TWL_FIRM handles DS(i) backwards compatibility.&lt;br /&gt;
&lt;br /&gt;
The 3DS-mode ARM9 core seems to switch into DSi-mode(for running DSi-mode ARM9 code) by writing to a [[PDN]] register(this changes the memory layout to DSi-mode / etc, therefore this register poke *must* be executed from ITCM). This is the final 3DS-mode register poke before the ARM9 switches into DSi-mode. DS(i)-mode ARM7 code is run on the internal [[ARM7]] core, which is started up during TWL_FIRM boot. Trying to read from the exception-vector region(address 0x0) under this DSi-mode ARM7 seems to only return 0x00/0xFF data. Also note that this DSi-mode ARM7 runs code(stored in TWL_FIRM) which pokes some DSi-mode registers that on the DSi were used for disabling access to the DSi bootROMs, however these registers do not affect the 3DS DSi-mode ARM9/ARM7 &amp;quot;bootrom&amp;quot; region(exceptionvector region + 0x8000) at all.&lt;br /&gt;
&lt;br /&gt;
For shutting down the system, TWL_FIRM writes u8 value 8 to [[I2C]] MCU register 0x20. For returning to 3DS-mode, TWL_FIRM writes value 4 to that MCU register to trigger a hardware system reboot.&lt;br /&gt;
&lt;br /&gt;
The TWL_FIRM ARM11-process includes a TWL bootloader, see [http://dsibrew.org/wiki/Bootloader here] and [[Memory_layout#Detailed_TWL_FIRM_ARM11_Memory|here]] for details.&lt;br /&gt;
&lt;br /&gt;
TWL_FIRM verifies all TWL RSA padding with the following. This is different from the DSi &amp;quot;BIOS&amp;quot; code.&lt;br /&gt;
* The first byte must be 0x0.&lt;br /&gt;
* The second byte must be 0x1 or 0x2.&lt;br /&gt;
* Executes a while(&amp;lt;value of byte at current pos in RSA message&amp;gt;). When the second_byte in the message is 0x1, the byte at curpos must be 0xFF(otherwise the non-zero value of the byte at curpos doesn&#039;t matter). This loop must find a zero byte before offset 0x7F in the message otherwise an error is returned.&lt;br /&gt;
* Returns an address for msg_curpos+1.&lt;br /&gt;
totalhashdatasize = rsasig_bytesize - above position in the message for the hashdata. The actual &amp;quot;totalhashdatasize&amp;quot; in the RSA message must be &amp;lt;= &amp;lt;expected hashdata_size&amp;gt;(0x74 for bootloader). The TWL_FIRM code copies the RSA &amp;quot;hashdata&amp;quot; to the output buffer, using the actual size of the RSA &amp;quot;hashdata&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== AGB_FIRM ===&lt;br /&gt;
AGB_FIRM handles running GBA VC titles. The ARM9 FIRM section for TWL_FIRM and AGB_FIRM are exactly the same (for TWL_FIRM and AGB_FIRM versions which were updated with the same system-update).&lt;br /&gt;
&lt;br /&gt;
== FIRM Launch Parameters ==&lt;br /&gt;
The FIRM-launch parameters structure is located at FCRAM+0, size 0x1000-bytes. The ARM11-kernel copies this structure elsewhere, then clears the 0x1000-bytes at FCRAM+0. It will not handle an existing structure at FCRAM+0 if [[CONFIG Registers#CFG_BOOTENV|CFG_BOOTENV]] is zero. The ARM9 kernel [[Configuration_Memory#0x1FF80016|writes some values]] about the boot environment to AXI WRAM during init to enable this.&lt;br /&gt;
&lt;br /&gt;
Note: it seems NATIVE_FIRM ARM11-kernel didn&#039;t parse this during boot until [[3.0.0-5|3.0.0-X]]?&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;
| 0x300&lt;br /&gt;
| 0x100&lt;br /&gt;
| &#039;TLNC&#039; block created by TWL applications, handled by NS for backwards-compatibility purposes. See [[NS#Auto-boot|here]] for more info.&lt;br /&gt;
|-&lt;br /&gt;
| 0x400&lt;br /&gt;
| 0x4&lt;br /&gt;
| Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x410&lt;br /&gt;
| 0xC&lt;br /&gt;
| This is used for overriding the FIRM_* fields in [[Configuration_Memory]], when the flag listed below is set, in the following order(basically just data-copy from here to 0x1FF80060): &amp;quot;FIRM_?&amp;quot;, FIRM_VERSIONREVISION, FIRM_VERSIONMINOR, FIRM_VERSIONMAJOR, FIRM_SYSCOREVER, and FIRM_CTRSDKVERSION.&lt;br /&gt;
|-&lt;br /&gt;
| 0x438&lt;br /&gt;
| 0x4&lt;br /&gt;
| The kernel checks this field for value 0xFFFF, if it matches the kernel uses the rest of these parameter fields, otherwise FIRM-launch parameters fields are ignored by the kernel.&lt;br /&gt;
|-&lt;br /&gt;
| 0x43C&lt;br /&gt;
| 0x4&lt;br /&gt;
| CRC32, this is calculated starting at FIRM-params offset 0x400, with size 0x140(with this field cleared to zero during calculation). When invalid the kernel clears the entire buffer used for storing the FIRM-params, therefore no actual FIRM-params are handled after that.&lt;br /&gt;
|-&lt;br /&gt;
| 0x440&lt;br /&gt;
| 0x10&lt;br /&gt;
| Titleinfo [[Filesystem_services#ProgramInfo|Program Info]], used by NS during NS startup, to launch the specified title when the below flag is set.&lt;br /&gt;
|-&lt;br /&gt;
| 0x450&lt;br /&gt;
| 0x10&lt;br /&gt;
| Titleinfo [[Filesystem_services#ProgramInfo|Program Info]]. This might be used for returning to the specified title, once the above launched title terminates?&lt;br /&gt;
|-&lt;br /&gt;
| 0x460&lt;br /&gt;
| 0x4&lt;br /&gt;
| Bit0: 0 = titleinfo structure isn&#039;t set, 1 = titleinfo structure is set.&lt;br /&gt;
|-&lt;br /&gt;
| 0x480&lt;br /&gt;
| 0x20&lt;br /&gt;
| This can be set via buf1 for [[APT:SendDeliverArg]]/[[APT:StartApplication]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A0&lt;br /&gt;
| 0x10&lt;br /&gt;
| This can be set by [[NSS:SetWirelessRebootInfo]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B0&lt;br /&gt;
| 0x14&lt;br /&gt;
| SHA1-HMAC of the banner for TWL/NTR titles. This can be set by [[NSS:SetTWLBannerHMAC]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x500&lt;br /&gt;
| 0x40&lt;br /&gt;
| This is used by [[APT:LoadSysMenuArg]] and [[APT:StoreSysMenuArg]].&lt;br /&gt;
|-&lt;br /&gt;
| 0xD70&lt;br /&gt;
| 0x290&lt;br /&gt;
| [[Config Savegame|Config]] data struct for LGY FIRM.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Flags from offset 0x400:&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;
| This can be used for overriding the default FCRAM [[Memory_layout|memory-regions]] allocation sizes(APPLICATION, SYSTEM, and BASE). The values for this is the same as [[Configuration_Memory#APPMEMTYPE|Configmem-APPMEMTYPE]]. Values 0-1 are handled the same way by the kernel. However for NS, 0=titleinfo structure for launching a title isn&#039;t set, while non-zero=titleinfo structure is set.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x3&lt;br /&gt;
| Setting bit0 here enables overriding the FIRM_* fields in [[Configuration_Memory]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Config Savegame|Config]] struct for booting LGY FIRMs from offset 0xD70:&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;
| Config block 0x30000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x1&lt;br /&gt;
| Config block 0x70001.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x1&lt;br /&gt;
| System language (Config block 0xA0002).&lt;br /&gt;
|-&lt;br /&gt;
| 0x3&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[Cfg:SecureInfoGetRegion|Region from SecureInfo]] (&amp;quot;pseudo-block&amp;quot; 0x140000 in LGY FIRM).&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0xF&lt;br /&gt;
| [[CfgS:SecureInfoGetSerialNo|Serial number from SecureInfo]] (&amp;quot;pseudo-block&amp;quot; 0x140001 in LGY FIRM).&lt;br /&gt;
|-&lt;br /&gt;
| 0x13&lt;br /&gt;
| 0x1&lt;br /&gt;
| Config block 0x100002.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x10&lt;br /&gt;
| Config block 0x100003.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x2&lt;br /&gt;
| Config block 0x100000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x1&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x27&lt;br /&gt;
| 0x1&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x94&lt;br /&gt;
| Config block 0x100001.&lt;br /&gt;
|-&lt;br /&gt;
| 0xBC&lt;br /&gt;
| 0x2&lt;br /&gt;
| Config block 0x50000.&lt;br /&gt;
|-&lt;br /&gt;
| 0xBE&lt;br /&gt;
| 0x2&lt;br /&gt;
| Config block 0x50001.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0&lt;br /&gt;
| 0x38&lt;br /&gt;
| Config block 0x50002.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF8&lt;br /&gt;
| 0x20&lt;br /&gt;
| Config block 0x50004.&lt;br /&gt;
|-&lt;br /&gt;
| 0x118&lt;br /&gt;
| 0x134&lt;br /&gt;
| Config block 0x20000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24C&lt;br /&gt;
| 0x10&lt;br /&gt;
| Config block 0x40000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25C&lt;br /&gt;
| 0x1C&lt;br /&gt;
| Config block 0x40001.&lt;br /&gt;
|-&lt;br /&gt;
| 0x278&lt;br /&gt;
| 0x4&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x27C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x280&lt;br /&gt;
| 0x8&lt;br /&gt;
| Config block 0x30001.&lt;br /&gt;
|-&lt;br /&gt;
| 0x288&lt;br /&gt;
| 0x2&lt;br /&gt;
| CRC16 over the above fields from offset 0x0, size 0x288. If not valid, LGY FIRM uses dummy data from .(ro)data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28A&lt;br /&gt;
| 0x2&lt;br /&gt;
| If non-zero, the size (below) is hardcoded (currently) to value 0x288, otherwise the size field below is used.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Value 0x288 (size used for verifying the CRC16).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Cleared to zero&amp;quot; fields above are not read at all by LGY FIRM.&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Title_metadata&amp;diff=21319</id>
		<title>Title metadata</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Title_metadata&amp;diff=21319"/>
		<updated>2020-07-28T10:22:44Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: note discrepancy in endianness&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:File formats]]&lt;br /&gt;
&#039;&#039;&#039;Title metadata&#039;&#039;&#039; is a format used to store information about a title (installed title, DLC, etc.) and all its installed contents, including which contents they consist of and their SHA256 hashes.&lt;br /&gt;
&lt;br /&gt;
[https://bitbucket.org/trap15/3dshax Code is available] by trap15 to parse the available information from the 3DS format of TMDs.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
All the data in the file represented in Big Endian, unless otherwise noted.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&#039;&#039;&#039;Offset&#039;&#039;&#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&#039;&#039;&#039;Size&#039;&#039;&#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0||Y||Signature Data&lt;br /&gt;
|-&lt;br /&gt;
| Y ||0xC4||Header&lt;br /&gt;
|-&lt;br /&gt;
| 0xC4 + Y||0x24*64||Content Info Records.&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C4 + Y||0x30*ContentCount||Content Chunk Records.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Y denotes the total size of the &amp;quot;Signature Data&amp;quot; section and depends on the signature type.&lt;br /&gt;
&lt;br /&gt;
=== Signature Data ===&lt;br /&gt;
The signature is of the header of the TMD.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&#039;&#039;&#039;Offset&#039;&#039;&#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&#039;&#039;&#039;Size&#039;&#039;&#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0||0x4||Signature Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 ||X||Signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 + X|| ||Padding Aligning the signature data to 0x40 bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Signature Type ====&lt;br /&gt;
{{Signature Types}}&lt;br /&gt;
The hash for the signature, is calculated over the header of the TMD&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&#039;&#039;&#039;Offset&#039;&#039;&#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&#039;&#039;&#039;Size&#039;&#039;&#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0||0x40||Signature Issuer&lt;br /&gt;
|-&lt;br /&gt;
| 0x40||0x1||Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x41||0x1||ca_crl_version&lt;br /&gt;
|-&lt;br /&gt;
| 0x42||0x1||signer_crl_version &lt;br /&gt;
|-&lt;br /&gt;
| 0x43||0x1||Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x44||0x8||System Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C||0x8||Title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x54||0x4||Title Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x58||0x2||Group ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A||0x4||Save Data Size in Little Endian (Bytes) (Also SRL Public Save Data Size)&lt;br /&gt;
|-&lt;br /&gt;
| 0x5E||0x4||SRL Private Save Data Size in Little Endian (Bytes)&lt;br /&gt;
|-&lt;br /&gt;
| 0x62||0x4||Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x66||0x1||SRL Flag&lt;br /&gt;
|-&lt;br /&gt;
| 0x67||0x31||Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x98||0x4||Access Rights&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C||0x2||Title Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x9E||0x02||Content Count&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0||0x2||Boot Content&lt;br /&gt;
|-&lt;br /&gt;
| 0xA2||0x2||Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0xA4||0x20||SHA-256 Hash of the Content Info Records&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Content Info Records ===&lt;br /&gt;
&lt;br /&gt;
There are 64 of these records, usually only the first is used.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 2&lt;br /&gt;
| Content index offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x02&lt;br /&gt;
| 2&lt;br /&gt;
| Content command count [k]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 0x20&lt;br /&gt;
| SHA-256 hash of the next k content records that have not been hashed yet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Content chunk records ===&lt;br /&gt;
There is one of these for each content contained in this title. (Determined by &amp;quot;Content Count&amp;quot; in the TMD Header).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Content id&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 2&lt;br /&gt;
| Content index&lt;br /&gt;
|-&lt;br /&gt;
| 0x06&lt;br /&gt;
| 2&lt;br /&gt;
| Content type&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Content size&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x20&lt;br /&gt;
| SHA-256 hash&lt;br /&gt;
|}&lt;br /&gt;
==== Content Index ====&lt;br /&gt;
&lt;br /&gt;
This indicates the content type:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index&lt;br /&gt;
!  Content Type&lt;br /&gt;
|-&lt;br /&gt;
|  0000&lt;br /&gt;
|  Main Content (.[[NCCH#CXI|CXI]] for 3DS executable content/.[[NCCH#CFA|CFA]] for 3DS Data Archives/.SRL for TWL content)&lt;br /&gt;
|-&lt;br /&gt;
|  0001&lt;br /&gt;
|  Home Menu Manual (.[[NCCH#CFA|CFA]])&lt;br /&gt;
|-&lt;br /&gt;
|  0002&lt;br /&gt;
|  DLP Child Container (.[[NCCH#CFA|CFA]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This does not apply to DLC.&lt;br /&gt;
&lt;br /&gt;
==== Content Type flags ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Flags&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Encrypted&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Disc&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| CFM (abbreviation for?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4000&lt;br /&gt;
| Optional&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000&lt;br /&gt;
| Shared&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Certificate Chain ==&lt;br /&gt;
If the TMD file is obtained from Nintendo&#039;s CDN, then it will have two [[Certificates|certificates]] appended 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;
!  CERTIFICATE&lt;br /&gt;
!  SIGNATURE TYPE&lt;br /&gt;
!  RETAIL CERT NAME&lt;br /&gt;
!  DEBUG CERT NAME&lt;br /&gt;
!  DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|  TMD&lt;br /&gt;
|  RSA-2048&lt;br /&gt;
|  CP0000000b&lt;br /&gt;
|  CP0000000a&lt;br /&gt;
|  Used to verify the TMD signature&lt;br /&gt;
|-&lt;br /&gt;
|  CA&lt;br /&gt;
|  RSA-4096&lt;br /&gt;
|  CA00000003&lt;br /&gt;
|  CA00000004&lt;br /&gt;
|  Used to verify the TMD Certificate&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The CA certificate is issued by &#039;Root&#039;, the public key for which is stored in NATIVE_FIRM.&lt;br /&gt;
&lt;br /&gt;
== Example code application ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
 enum sig_type {&lt;br /&gt;
         RSA_2048_SHA256 = 0x00010004,&lt;br /&gt;
         RSA_4096_SHA256 = 0x00010003,&lt;br /&gt;
         RSA_2048_SHA1   = 0x00010001,&lt;br /&gt;
         RSA_4096_SHA1   = 0x00010000&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
// Sorry I removed the example struct because it is wrong.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=FIRM&amp;diff=21096</id>
		<title>FIRM</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=FIRM&amp;diff=21096"/>
		<updated>2019-11-04T23:24:12Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: fix incorrect display version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the file format for the [[Title list#00040138 - System Firmware|3DS&#039; Firmware]], it contains up to four &#039;sections&#039; of data comprising the ARM9 and ARM11 kernels, and some fundamental processes. The firmware sections are not encrypted. In a nutshell, a FIRM contains all the data required to set up the ARM9 and ARM11 kernels, and basic operating functionality.&lt;br /&gt;
&lt;br /&gt;
The ARM9 section contains the ARM9 kernel (and loader) and the Process9 NCCH (which is the only process run in user mode on the ARM9). The ARM11 sections contain the ARM11 kernel (and loader), and various ARM11 process NCCHs. For NATIVE_FIRM/SAFE_MODE_FIRM these ARM11 processes are sm, fs, pm, loader, and pxi. Normally the 4th section is not used. The code loaded from FIRM is constantly running on the system until another FIRM is launched. The ARM11 kernel is hard-coded to always decompress the ExeFS .code of embedded ARM11 NCCHs without checking the exheader compression bit.&lt;br /&gt;
&lt;br /&gt;
== FIRM 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;
|  0x000&lt;br /&gt;
|  4&lt;br /&gt;
|  Magic &#039;FIRM&#039;&lt;br /&gt;
|-&lt;br /&gt;
|  0x004&lt;br /&gt;
|  4&lt;br /&gt;
|  Boot priority (highest value = max prio), this is normally zero.&lt;br /&gt;
|-&lt;br /&gt;
|  0x008&lt;br /&gt;
|  4&lt;br /&gt;
|  ARM11 Entrypoint&lt;br /&gt;
|-&lt;br /&gt;
|  0x00C&lt;br /&gt;
|  4&lt;br /&gt;
|  ARM9 Entrypoint&lt;br /&gt;
|-&lt;br /&gt;
|  0x010&lt;br /&gt;
|  0x030&lt;br /&gt;
|  Reserved&lt;br /&gt;
|-&lt;br /&gt;
|  0x040&lt;br /&gt;
|  0x0C0 (0x030*4)&lt;br /&gt;
|  Firmware Section Headers&lt;br /&gt;
|-&lt;br /&gt;
|  0x100&lt;br /&gt;
|  0x100&lt;br /&gt;
|  RSA-2048 signature of the FIRM header&#039;s SHA-256 hash. The signature is checked when bootrom/Process9 are doing FIRM-launch (with the public key being hardcoded in each). The signature is not checked when installing FIRM to the NAND firm0/firm1 partitions.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firmware Section Headers ==&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;
|  0x000&lt;br /&gt;
|  4&lt;br /&gt;
|  Byte offset&lt;br /&gt;
|-&lt;br /&gt;
|  0x004&lt;br /&gt;
|  4&lt;br /&gt;
|  Physical address where the section is loaded to.&lt;br /&gt;
|-&lt;br /&gt;
|  0x008&lt;br /&gt;
|  4&lt;br /&gt;
|  Byte-size.  While loading FIRM this is the field used to determine whether the section exists or not, by checking for value 0x0.&lt;br /&gt;
|-&lt;br /&gt;
|  0x00C&lt;br /&gt;
|  4&lt;br /&gt;
|  Copy-method (0 = NDMA, 1 = XDMA, 2 = CPU mem-copy), Process9 ignores this field. Boot9 doesn&#039;t immediately throw an error when this isn&#039;t 0..2. In that case it will jump over section-data-loading which then results in the hash verification with the below hash being done with the hash already stored in the SHA hardware.&lt;br /&gt;
|-&lt;br /&gt;
|  0x010&lt;br /&gt;
|  0x020&lt;br /&gt;
|  SHA-256 Hash of Firmware Section&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The contents of individual sections &#039;&#039;may&#039;&#039; be encrypted if the FIRM is not meant to be booted from NAND, i.e. if it is meant to be booted from SPI flash or NTR cartridge. If hash checks fail for all FIRM sections if treated as plaintext, it may be worth trying to check if the sections are encrypted. The encryption is detailed on [[Bootloader#Non-NAND_FIRM_boot|the bootloader page]].&lt;br /&gt;
&lt;br /&gt;
== [[New_3DS]] FIRM ==&lt;br /&gt;
For New3DS firmwares (NATIVE_FIRM, TWL_FIRM, ..), the ARM9 FIRM binary has an additional layer of crypto. At the end of each ARM9 binary, there&#039;s a plaintext loader. The format of the FIRM header is identical to regular 3DS FIRM(the RSA modulo is the same as regular 3DS too).&lt;br /&gt;
&lt;br /&gt;
Before checking [[CONFIG_Registers|CFG_SYSPROT9]] the loader main() does the following:&lt;br /&gt;
* On [[9.5.0-22|9.5.0-X]]: executes a nop instruction with r0=0 and r1=&amp;lt;address of arm9binhdr+0x50&amp;gt;.&lt;br /&gt;
* Clears bit6 in [[AES_Registers|REG_AESKEYCNT]].&lt;br /&gt;
&lt;br /&gt;
If [[CONFIG_Registers#CFG_SYSPROT9|CFG_SYSPROT9]] bit 1 is clear (which means the OTP area is unlocked and so it knows that this is a hard reboot), it does the following things:&lt;br /&gt;
* Clears 0x200-bytes on the stack, then reads [[Flash_Filesystem|NAND]] sector 0x96(NAND image offset 0x12C00), with size 0x200-bytes into that stack buffer.&lt;br /&gt;
* Checks [[CONFIG_Registers#CFG_SYSPROT9|CFG_SYSPROT9]] bit 1 again, if it&#039;s set then it executes a panic function(set r0-r2=0, execute nop instruction, then execute instruction &amp;quot;bkpt 0x99&amp;quot;).&lt;br /&gt;
* Hashes data from the OTP region [[IO_Registers|0x10012000-0x10012090]] using SHA256 via the [[SHA_Registers|SHA]] hardware.&lt;br /&gt;
* Clears bit6 in [[AES_Registers|REG_AESKEYCNT]]. Initializes AES keyslot 0x11 keyX, keyY to the lower and higher portion of the above hash, respectively. Due to the above hashed data, the keyX+keyY here are console-unique.&lt;br /&gt;
* Decrypts the first 0x10-byte block in the above read NAND sector with keyslot 0x11 using AES-ECB. [[9.6.0-24|9.6.0-X]]: Then it decrypts the 0x10-bytes at offset 0x10 in the sector with keyslot 0x11.&lt;br /&gt;
* Then the normalkey, keyX, and keyY, for keyslot 0x11 are cleared to zero. Runs the TWL key-init/etc code which was originally in the ARM9-kernel, then writes 0x2 to [[CONFIG_Registers|CFG_SYSPROT9]] to disable the OTP area.&lt;br /&gt;
* Then it uses the above decrypted block from sector+0 to set the normalkey for keyslot 0x11. Decrypts arm9_bin_buf+0 using keyslot 0x11 with AES-ECB, and initialises keyX for keyslot 0x15 with it.&lt;br /&gt;
* [[9.6.0-24|9.6.0-X]]: Then it uses the above decrypted block from sector+0 to set the normalkey for keyslot 0x11. Decrypts a 0x10-byte block from arm9loader .(ro)data using keyslot 0x11 with AES-ECB, and initializes keyX for keyslot 0x18 with it(same block as previous versions).&lt;br /&gt;
* [[9.6.0-24|9.6.0-X]]: Starting with this version keyslot 0x16 keyX init was moved here, see below for details on this. The code for this is same as  [[9.5.0-22|9.5.0-X]], except the decrypted normalkey from sector+0x10 is used for keyslot 0x11 instead.&lt;br /&gt;
* Initialises KeyX for keyslots 0x18..0x1F(0x19..0x1F with [[9.6.0-24|9.6.0-X]]) with the output of decrypting a 0x10-byte block with AES-ECB using keyslot 0x11. This block was changed to a new one separate from keyslot 0x18, starting with [[9.6.0-24|9.6.0-X]]. The last byte in this 0x10-byte input block is increased by 0x01 after initializing each keyslot. Before doing the crypto each time, the loader sets the normal-key for keyslot 0x11 to the plaintext normalkey from sector+0(+0x10 with [[9.6.0-24|9.6.0-X]]). These are New3DS-specific keys.&lt;br /&gt;
* [[9.5.0-22|9.5.0-X]](moved to above with [[9.6.0-24|9.6.0-X]]): Sets the normal-key for keyslot 0x11 to the same one already decrypted on the stack. Decrypts the 0x10-byte block at arm9binhdr+0x60 with AES-ECB using keyslot 0x11, then sets the keyX for keyslot 0x16 to the output data.&lt;br /&gt;
* [[9.5.0-22|9.5.0-X]]: The normalkey, keyX, and keyY, for keyslot 0x11 are then cleared to zero.&lt;br /&gt;
&lt;br /&gt;
When [[CONFIG_Registers#CFG_SYSPROT9|CFG_SYSPROT9]] bit 1 is set(which means this happens only when this loader runs again for firm-launch), the normalkey, keyX, and keyY, for keyslot 0x11 are cleared to zero.&lt;br /&gt;
&lt;br /&gt;
It sets KeyY for keyslot 0x15(0x16 with [[9.5.0-22|9.5.0-X]]) to arm9_bin_buf+16, the CTR to arm9_bin_buf+32 (both are unique for every version). It then proceeds to decrypt the binary with AES-CTR. When done, it sets the normal-key for the keyslot used for binary decryption to zeros. It then decrypts arm9_bin_buf+64 using an hardcoded keyY for keyslot 0x15([[9.5.0-22|9.5.0-X]]/[[9.6.0-24|9.6.0-X]] also uses keyslot 0x15), sets the normal-key for this keyslot to zeros again, then makes sure the output block is all zeroes. If it is, it does some cleanup then it jumps to the entrypoint for the decrypted binary. Otherwise it will clear the keyX, keyY, and normal-key for each of the keyslots initialized by this loader (on [[9.6.0-24|9.6.0-X]]+, on older versions this was bugged and cleared keys 0x00..0x07 instead of 0x18..0x1F), do cleanup(same cleanup as when the decrypted block is all-zero) then just loop forever.&lt;br /&gt;
&lt;br /&gt;
Thus, the ARM9 binary has the following 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;
|  0x000&lt;br /&gt;
|  16&lt;br /&gt;
|  Encrypted KeyX (same for all FIRM&#039;s)&lt;br /&gt;
|-&lt;br /&gt;
|  0x010&lt;br /&gt;
|  16&lt;br /&gt;
|  KeyY&lt;br /&gt;
|-&lt;br /&gt;
|  0x020&lt;br /&gt;
|  16&lt;br /&gt;
|  CTR&lt;br /&gt;
|-&lt;br /&gt;
|  0x030&lt;br /&gt;
|  8&lt;br /&gt;
|  Size of encrypted binary, as ASCII text?&lt;br /&gt;
|-&lt;br /&gt;
|  0x038&lt;br /&gt;
|  8&lt;br /&gt;
|  ?&lt;br /&gt;
|-&lt;br /&gt;
|  0x040&lt;br /&gt;
|  16&lt;br /&gt;
|  Control block&lt;br /&gt;
|-&lt;br /&gt;
|  0x050&lt;br /&gt;
|  16&lt;br /&gt;
|  Added with [[9.5.0-22|9.5.0-X]]. Only used for hardware debugging: a nop instruction is executed with r0=0 and r1=&amp;lt;address of this data&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|  0x060&lt;br /&gt;
|  16&lt;br /&gt;
|  Added with [[9.5.0-22|9.5.0-X]]. Encrypted keyX for keyslot 0x16.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Originally the padding after the header before offset 0x800(start of actual ARM9-binary) was 0xFF bytes, with [[9.5.0-22|9.5.0-X]] this was changed to 0x0.&lt;br /&gt;
&lt;br /&gt;
For the New3DS NATIVE_FIRM arm9-section header, the only difference between the [[8.1.0-0_New3DS]] version and the [[9.0.0-20]] version is that the keyY, CTR, and the block at 0x30 in the header were updated.&lt;br /&gt;
&lt;br /&gt;
===New3DS ARM9 binary loader versions===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  FIRM system version(s)&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| [[8.1.0-0_New3DS]] - [[9.3.0-21|9.3.0-X]]&lt;br /&gt;
| Initial version.&lt;br /&gt;
|-&lt;br /&gt;
| [[9.5.0-22|9.5.0-X]]&lt;br /&gt;
| Added keyX initialization for keyslot 0x16(see above), and added code for clearing keyslot 0x11 immediately after the code finishes using keyslot 0x11. The keyslot used for arm9bin decryption was changed from 0x15 to 0x16. Added code for clearing keyslot 0x16 when control-block decryption fails. Added code for using arm9bin_hdr+0x50 with a nop instruction, at the very beginning of the main arm9-loader function. Added two new 0x10-blocks to the arm9bin-hdr.&lt;br /&gt;
|-&lt;br /&gt;
| [[9.6.0-24|9.6.0-X]] - [[11.3.0-36|11.3.0-X]]&lt;br /&gt;
| See above and [[9.6.0-24|here]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===New3DS ARM9 kernel===&lt;br /&gt;
The only actual code-difference for the Old3DS/New3DS ARM9-kernels&#039; crt0, besides TWL AES / [[IO_Registers|0x10012000]] related code, is that the New3DS ARM9-kernel writes 0x1 to [[CONFIG_Registers|REG_EXTMEMCNT9]] in the crt0.&lt;br /&gt;
&lt;br /&gt;
===New3DS Process9===&lt;br /&gt;
The following is all of the differences for Old3DS/New3DS Process9 with [[9.3.0-21|9.3.0-X]]:&lt;br /&gt;
* The FIRM-launch code called at the end of the New3DS proc9 main() has different mem-range checks.&lt;br /&gt;
* In the New3DS proc9, the v6.0/v7.0 keyinit function at the very beginning(before the original code) had additional code added for setting [[Flash_Filesystem|CTRNAND]] [[AES_Registers|keyslot]] 0x5, with keydata from .data. After setting the keyY, the keyY in .data is cleared.&lt;br /&gt;
* In New3DS proc9, the functions for getting the gamecard crypto keyslots / NCCH keyslot can return New3DS keyslots when New3DS flags(NCSD/NCCH) are set.&lt;br /&gt;
* The code/data for the binary near the end of arm9mem is slightly different, because of memory-region sizes.&lt;br /&gt;
* The only difference in .data(besides the above code binary) is that the New3DS proc9 has an additional 0x10-byte block for the keyslot 0x5 keyY, see above.&lt;br /&gt;
&lt;br /&gt;
== Variations ==&lt;br /&gt;
There exists different official firmwares for the 3DS: The default one (NATIVE_FIRM) is used to run all 3DS content and boots by default, while backwards compatibility is handled by TWL_FIRM and AGB_FIRM. There furthermore is a rescue mode provided by SAFE_MODE_FIRM.&lt;br /&gt;
&lt;br /&gt;
=== NATIVE_FIRM ===&lt;br /&gt;
NATIVE_FIRM is the FIRM which is installed to the [[Flash_Filesystem|NAND]] firm partitions, which is loaded by bootrom.&lt;br /&gt;
&lt;br /&gt;
Version history:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!  System version&lt;br /&gt;
!  old 3DS title version&lt;br /&gt;
!  old 3DS hex title contentID&lt;br /&gt;
!  Kernel/FIRM version (old 3DS/new 3DS)&lt;br /&gt;
!  FIRM ARM11-sysmodule Product Code&lt;br /&gt;
|-&lt;br /&gt;
| [[Factory_Setup|Factory]] FIRM (titleID 00040001-00000002)&lt;br /&gt;
| v0&lt;br /&gt;
| 00&lt;br /&gt;
| 2.3-0&lt;br /&gt;
|-&lt;br /&gt;
| Pre-1.0. Referenced in the v1.0 Home Menu NCCH plain-region.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2.23-X&lt;br /&gt;
|-&lt;br /&gt;
| [[1.0.0-0|1.0.0]]&lt;br /&gt;
| v432&lt;br /&gt;
| 00&lt;br /&gt;
| 2.27-0&lt;br /&gt;
|-&lt;br /&gt;
| [[1.1.0-1|1.1.0]]&lt;br /&gt;
| v1472&lt;br /&gt;
| 02&lt;br /&gt;
| 2.28-0&lt;br /&gt;
|-&lt;br /&gt;
| [[2.0.0-2|2.0.0]]&lt;br /&gt;
| v2516&lt;br /&gt;
| 09&lt;br /&gt;
| 2.29-7&lt;br /&gt;
|-&lt;br /&gt;
| [[2.1.0-3|2.1.0]]&lt;br /&gt;
| v3553&lt;br /&gt;
| 0B&lt;br /&gt;
| 2.30-18&lt;br /&gt;
| 0608builder&lt;br /&gt;
|-&lt;br /&gt;
| [[2.2.0-X|2.2.0]]&lt;br /&gt;
| v4595&lt;br /&gt;
| 0F&lt;br /&gt;
| 2.31-40&lt;br /&gt;
| 0909builder&lt;br /&gt;
|-&lt;br /&gt;
| [[3.0.0-5|3.0.0]]&lt;br /&gt;
| v5647&lt;br /&gt;
| 18&lt;br /&gt;
| 2.32-15&lt;br /&gt;
| 1128builder&lt;br /&gt;
|-&lt;br /&gt;
| [[4.0.0-7|4.0.0]]&lt;br /&gt;
| v6677&lt;br /&gt;
| 1D&lt;br /&gt;
| 2.33-4&lt;br /&gt;
| 0406builder&lt;br /&gt;
|-&lt;br /&gt;
| [[4.1.0-8|4.1.0]]&lt;br /&gt;
| v7712&lt;br /&gt;
| 1F&lt;br /&gt;
| 2.34-0&lt;br /&gt;
| 0508builder&lt;br /&gt;
|-&lt;br /&gt;
| [[5.0.0-11|5.0.0]]&lt;br /&gt;
| v8758&lt;br /&gt;
| 25&lt;br /&gt;
| 2.35-6&lt;br /&gt;
| 0228builder&lt;br /&gt;
|-&lt;br /&gt;
| [[5.1.0-11|5.1.0]]&lt;br /&gt;
| v9792&lt;br /&gt;
| 26&lt;br /&gt;
| 2.36-0&lt;br /&gt;
| 0401builder&lt;br /&gt;
|-&lt;br /&gt;
| [[6.0.0-11|6.0.0]]&lt;br /&gt;
| v10833&lt;br /&gt;
| 29&lt;br /&gt;
| 2.37-0&lt;br /&gt;
| 0520builder&lt;br /&gt;
|-&lt;br /&gt;
| [[6.1.0-11|6.1.0]]&lt;br /&gt;
| v11872&lt;br /&gt;
| 2A&lt;br /&gt;
| 2.38-0&lt;br /&gt;
| 0625builder&lt;br /&gt;
|-&lt;br /&gt;
| [[7.0.0-13|7.0.0]]&lt;br /&gt;
| v12916&lt;br /&gt;
| 2E&lt;br /&gt;
| 2.39-4&lt;br /&gt;
| 1125builder&lt;br /&gt;
|-&lt;br /&gt;
| [[7.2.0-17|7.2.0]]&lt;br /&gt;
| v13956&lt;br /&gt;
| 30&lt;br /&gt;
| 2.40-0&lt;br /&gt;
| 0404builder&lt;br /&gt;
|-&lt;br /&gt;
| [[8.0.0-18|8.0.0]]&lt;br /&gt;
| v15047&lt;br /&gt;
| 37&lt;br /&gt;
| 2.44-6&lt;br /&gt;
| 0701builder&lt;br /&gt;
|-&lt;br /&gt;
| [[8.1.0-0_New3DS]]&lt;br /&gt;
|N/A&lt;br /&gt;
|N/A&lt;br /&gt;
| 2.45-5&lt;br /&gt;
|-&lt;br /&gt;
| [[9.0.0-20|9.0.0]]&lt;br /&gt;
| v17120&lt;br /&gt;
| 38&lt;br /&gt;
| 2.46-0&lt;br /&gt;
| 0828builder&lt;br /&gt;
|-&lt;br /&gt;
| [[9.3.0-21|9.3.0]]&lt;br /&gt;
| v18182&lt;br /&gt;
| 3F&lt;br /&gt;
| 2.48-3&lt;br /&gt;
| 1125builder&lt;br /&gt;
|-&lt;br /&gt;
| [[9.5.0-22|9.5.0]]&lt;br /&gt;
| v19216&lt;br /&gt;
| 40&lt;br /&gt;
| 2.49-0&lt;br /&gt;
| 0126builder&lt;br /&gt;
|-&lt;br /&gt;
| [[9.6.0-24|9.6.0]]&lt;br /&gt;
| v20262&lt;br /&gt;
| 49&lt;br /&gt;
| 2.50-1&lt;br /&gt;
| 0311builder&lt;br /&gt;
|-&lt;br /&gt;
| [[10.0.0-27|10.0.0]]&lt;br /&gt;
| v21288&lt;br /&gt;
| 4B&lt;br /&gt;
| 2.50-7&lt;br /&gt;
| 0812builder&lt;br /&gt;
|-&lt;br /&gt;
| [[10.2.0-28|10.2.0]]&lt;br /&gt;
| v22313&lt;br /&gt;
| 4C&lt;br /&gt;
| 2.50-9&lt;br /&gt;
| 1009builder&lt;br /&gt;
|-&lt;br /&gt;
| [[10.4.0-29|10.4.0]]&lt;br /&gt;
| v23341&lt;br /&gt;
| 50&lt;br /&gt;
| 2.50-11&lt;br /&gt;
| 1224builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.0.0-33|11.0.0]]&lt;br /&gt;
| v24368&lt;br /&gt;
| 52&lt;br /&gt;
| 2.51-0&lt;br /&gt;
| 0406builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.1.0-34|11.1.0]]&lt;br /&gt;
| v25396&lt;br /&gt;
| 56&lt;br /&gt;
| 2.51-2&lt;br /&gt;
| 0805builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.2.0-35|11.2.0]]&lt;br /&gt;
| v26432&lt;br /&gt;
| 58&lt;br /&gt;
| 2.52-0&lt;br /&gt;
| 1015builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.3.0-36|11.3.0]]&lt;br /&gt;
| v27476&lt;br /&gt;
| 5C&lt;br /&gt;
| 2.53-0&lt;br /&gt;
| 0126builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.4.0-37|11.4.0]]&lt;br /&gt;
| v28512&lt;br /&gt;
| 5E&lt;br /&gt;
| 2.54-0&lt;br /&gt;
| 0314builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.8.0-41|11.8.0]]&lt;br /&gt;
| v29557&lt;br /&gt;
| 64&lt;br /&gt;
| 2.55-0&lt;br /&gt;
| 0710pseg-ciuser&lt;br /&gt;
|-&lt;br /&gt;
| [[11.12.0-44|11.12.0]]&lt;br /&gt;
| v30593&lt;br /&gt;
| 66&lt;br /&gt;
| 2.56-0&lt;br /&gt;
| 1021pseg-ciuser&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The above kernel/FIRM versions are in the format: &amp;lt;KERNEL_VERSIONMAJOR&amp;gt;.&amp;lt;KERNEL_VERSIONMINOR&amp;gt;-&amp;lt;KERNEL_VERSIONREVISION&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SAFE_MODE_FIRM ===&lt;br /&gt;
SAFE_MODE is used for running the [[System_Settings#System_Updater|System Updater]]. SAFE_MODE_FIRM and NATIVE_FIRM for the initial versions are exactly the same, except for the system core version fields.&lt;br /&gt;
&lt;br /&gt;
=== TWL_FIRM ===&lt;br /&gt;
TWL_FIRM handles DS(i) backwards compatibility.&lt;br /&gt;
&lt;br /&gt;
The 3DS-mode ARM9 core seems to switch into DSi-mode(for running DSi-mode ARM9 code) by writing to a [[PDN]] register(this changes the memory layout to DSi-mode / etc, therefore this register poke *must* be executed from ITCM). This is the final 3DS-mode register poke before the ARM9 switches into DSi-mode. DS(i)-mode ARM7 code is run on the internal [[ARM7]] core, which is started up during TWL_FIRM boot. Trying to read from the exception-vector region(address 0x0) under this DSi-mode ARM7 seems to only return 0x00/0xFF data. Also note that this DSi-mode ARM7 runs code(stored in TWL_FIRM) which pokes some DSi-mode registers that on the DSi were used for disabling access to the DSi bootROMs, however these registers do not affect the 3DS DSi-mode ARM9/ARM7 &amp;quot;bootrom&amp;quot; region(exceptionvector region + 0x8000) at all.&lt;br /&gt;
&lt;br /&gt;
For shutting down the system, TWL_FIRM writes u8 value 8 to [[I2C]] MCU register 0x20. For returning to 3DS-mode, TWL_FIRM writes value 4 to that MCU register to trigger a hardware system reboot.&lt;br /&gt;
&lt;br /&gt;
The TWL_FIRM ARM11-process includes a TWL bootloader, see [http://dsibrew.org/wiki/Bootloader here] and [[Memory_layout#Detailed_TWL_FIRM_ARM11_Memory|here]] for details.&lt;br /&gt;
&lt;br /&gt;
TWL_FIRM verifies all TWL RSA padding with the following. This is different from the DSi &amp;quot;BIOS&amp;quot; code.&lt;br /&gt;
* The first byte must be 0x0.&lt;br /&gt;
* The second byte must be 0x1 or 0x2.&lt;br /&gt;
* Executes a while(&amp;lt;value of byte at current pos in RSA message&amp;gt;). When the second_byte in the message is 0x1, the byte at curpos must be 0xFF(otherwise the non-zero value of the byte at curpos doesn&#039;t matter). This loop must find a zero byte before offset 0x7F in the message otherwise an error is returned.&lt;br /&gt;
* Returns an address for msg_curpos+1.&lt;br /&gt;
totalhashdatasize = rsasig_bytesize - above position in the message for the hashdata. The actual &amp;quot;totalhashdatasize&amp;quot; in the RSA message must be &amp;lt;= &amp;lt;expected hashdata_size&amp;gt;(0x74 for bootloader). The TWL_FIRM code copies the RSA &amp;quot;hashdata&amp;quot; to the output buffer, using the actual size of the RSA &amp;quot;hashdata&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== AGB_FIRM ===&lt;br /&gt;
AGB_FIRM handles running GBA VC titles. The ARM9 FIRM section for TWL_FIRM and AGB_FIRM are exactly the same (for TWL_FIRM and AGB_FIRM versions which were updated with the same system-update).&lt;br /&gt;
&lt;br /&gt;
== FIRM Launch Parameters ==&lt;br /&gt;
The FIRM-launch parameters structure is located at FCRAM+0, size 0x1000-bytes. The ARM11-kernel copies this structure elsewhere, then clears the 0x1000-bytes at FCRAM+0. It will not handle an existing structure at FCRAM+0 if [[CONFIG Registers#CFG_BOOTENV|CFG_BOOTENV]] is zero. The ARM9 kernel [[Configuration_Memory#0x1FF80016|writes some values]] about the boot environment to AXI WRAM during init to enable this.&lt;br /&gt;
&lt;br /&gt;
Note: it seems NATIVE_FIRM ARM11-kernel didn&#039;t parse this during boot until [[3.0.0-5|3.0.0-X]]?&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;
| 0x300&lt;br /&gt;
| 0x100&lt;br /&gt;
| &#039;TLNC&#039; block created by TWL applications, handled by NS for backwards-compatibility purposes. See [[NS#Auto-boot|here]] for more info.&lt;br /&gt;
|-&lt;br /&gt;
| 0x400&lt;br /&gt;
| 0x4&lt;br /&gt;
| Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x410&lt;br /&gt;
| 0xC&lt;br /&gt;
| This is used for overriding the FIRM_* fields in [[Configuration_Memory]], when the flag listed below is set, in the following order(basically just data-copy from here to 0x1FF80060): &amp;quot;FIRM_?&amp;quot;, FIRM_VERSIONREVISION, FIRM_VERSIONMINOR, FIRM_VERSIONMAJOR, FIRM_SYSCOREVER, and FIRM_CTRSDKVERSION.&lt;br /&gt;
|-&lt;br /&gt;
| 0x438&lt;br /&gt;
| 0x4&lt;br /&gt;
| The kernel checks this field for value 0xFFFF, if it matches the kernel uses the rest of these parameter fields, otherwise FIRM-launch parameters fields are ignored by the kernel.&lt;br /&gt;
|-&lt;br /&gt;
| 0x43C&lt;br /&gt;
| 0x4&lt;br /&gt;
| CRC32, this is calculated starting at FIRM-params offset 0x400, with size 0x140(with this field cleared to zero during calculation). When invalid the kernel clears the entire buffer used for storing the FIRM-params, therefore no actual FIRM-params are handled after that.&lt;br /&gt;
|-&lt;br /&gt;
| 0x440&lt;br /&gt;
| 0x10&lt;br /&gt;
| Titleinfo [[Filesystem_services#ProgramInfo|Program Info]], used by NS during NS startup, to launch the specified title when the below flag is set.&lt;br /&gt;
|-&lt;br /&gt;
| 0x450&lt;br /&gt;
| 0x10&lt;br /&gt;
| Titleinfo [[Filesystem_services#ProgramInfo|Program Info]]. This might be used for returning to the specified title, once the above launched title terminates?&lt;br /&gt;
|-&lt;br /&gt;
| 0x460&lt;br /&gt;
| 0x4&lt;br /&gt;
| Bit0: 0 = titleinfo structure isn&#039;t set, 1 = titleinfo structure is set.&lt;br /&gt;
|-&lt;br /&gt;
| 0x480&lt;br /&gt;
| 0x20&lt;br /&gt;
| This can be set via buf1 for [[APT:SendDeliverArg]]/[[APT:StartApplication]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A0&lt;br /&gt;
| 0x10&lt;br /&gt;
| This can be set by [[NSS:SetWirelessRebootInfo]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B0&lt;br /&gt;
| 0x14&lt;br /&gt;
| SHA1-HMAC of the banner for TWL/NTR titles. This can be set by [[NSS:SetTWLBannerHMAC]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x500&lt;br /&gt;
| 0x40&lt;br /&gt;
| This is used by [[APT:LoadSysMenuArg]] and [[APT:StoreSysMenuArg]].&lt;br /&gt;
|-&lt;br /&gt;
| 0xD70&lt;br /&gt;
| 0x290&lt;br /&gt;
| [[Config Savegame|Config]] data struct for LGY FIRM.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Flags from offset 0x400:&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;
| This can be used for overriding the default FCRAM [[Memory_layout|memory-regions]] allocation sizes(APPLICATION, SYSTEM, and BASE). The values for this is the same as [[Configuration_Memory#APPMEMTYPE|Configmem-APPMEMTYPE]]. Values 0-1 are handled the same way by the kernel. However for NS, 0=titleinfo structure for launching a title isn&#039;t set, while non-zero=titleinfo structure is set.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x3&lt;br /&gt;
| Setting bit0 here enables overriding the FIRM_* fields in [[Configuration_Memory]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Config Savegame|Config]] struct for booting LGY FIRMs from offset 0xD70:&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;
| Config block 0x30000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x1&lt;br /&gt;
| Config block 0x70001.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x1&lt;br /&gt;
| System language (Config block 0xA0002).&lt;br /&gt;
|-&lt;br /&gt;
| 0x3&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[Cfg:SecureInfoGetRegion|Region from SecureInfo]] (&amp;quot;pseudo-block&amp;quot; 0x140000 in LGY FIRM).&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0xF&lt;br /&gt;
| [[CfgS:SecureInfoGetSerialNo|Serial number from SecureInfo]] (&amp;quot;pseudo-block&amp;quot; 0x140001 in LGY FIRM).&lt;br /&gt;
|-&lt;br /&gt;
| 0x13&lt;br /&gt;
| 0x1&lt;br /&gt;
| Config block 0x100002.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x10&lt;br /&gt;
| Config block 0x100003.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x2&lt;br /&gt;
| Config block 0x100000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x1&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x27&lt;br /&gt;
| 0x1&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x94&lt;br /&gt;
| Config block 0x100001.&lt;br /&gt;
|-&lt;br /&gt;
| 0xBC&lt;br /&gt;
| 0x2&lt;br /&gt;
| Config block 0x50000.&lt;br /&gt;
|-&lt;br /&gt;
| 0xBE&lt;br /&gt;
| 0x2&lt;br /&gt;
| Config block 0x50001.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0&lt;br /&gt;
| 0x38&lt;br /&gt;
| Config block 0x50002.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF8&lt;br /&gt;
| 0x20&lt;br /&gt;
| Config block 0x50004.&lt;br /&gt;
|-&lt;br /&gt;
| 0x118&lt;br /&gt;
| 0x134&lt;br /&gt;
| Config block 0x20000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24C&lt;br /&gt;
| 0x10&lt;br /&gt;
| Config block 0x40000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25C&lt;br /&gt;
| 0x1C&lt;br /&gt;
| Config block 0x40001.&lt;br /&gt;
|-&lt;br /&gt;
| 0x278&lt;br /&gt;
| 0x4&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x27C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x280&lt;br /&gt;
| 0x8&lt;br /&gt;
| Config block 0x30001.&lt;br /&gt;
|-&lt;br /&gt;
| 0x288&lt;br /&gt;
| 0x2&lt;br /&gt;
| CRC16 over the above fields from offset 0x0, size 0x288. If not valid, LGY FIRM uses dummy data from .(ro)data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28A&lt;br /&gt;
| 0x2&lt;br /&gt;
| If non-zero, the size (below) is hardcoded (currently) to value 0x288, otherwise the size field below is used.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Value 0x288 (size used for verifying the CRC16).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Cleared to zero&amp;quot; fields above are not read at all by LGY FIRM.&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=FIRM&amp;diff=21095</id>
		<title>FIRM</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=FIRM&amp;diff=21095"/>
		<updated>2019-11-04T23:23:02Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* NATIVE_FIRM */ 11.12.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the file format for the [[Title list#00040138 - System Firmware|3DS&#039; Firmware]], it contains up to four &#039;sections&#039; of data comprising the ARM9 and ARM11 kernels, and some fundamental processes. The firmware sections are not encrypted. In a nutshell, a FIRM contains all the data required to set up the ARM9 and ARM11 kernels, and basic operating functionality.&lt;br /&gt;
&lt;br /&gt;
The ARM9 section contains the ARM9 kernel (and loader) and the Process9 NCCH (which is the only process run in user mode on the ARM9). The ARM11 sections contain the ARM11 kernel (and loader), and various ARM11 process NCCHs. For NATIVE_FIRM/SAFE_MODE_FIRM these ARM11 processes are sm, fs, pm, loader, and pxi. Normally the 4th section is not used. The code loaded from FIRM is constantly running on the system until another FIRM is launched. The ARM11 kernel is hard-coded to always decompress the ExeFS .code of embedded ARM11 NCCHs without checking the exheader compression bit.&lt;br /&gt;
&lt;br /&gt;
== FIRM 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;
|  0x000&lt;br /&gt;
|  4&lt;br /&gt;
|  Magic &#039;FIRM&#039;&lt;br /&gt;
|-&lt;br /&gt;
|  0x004&lt;br /&gt;
|  4&lt;br /&gt;
|  Boot priority (highest value = max prio), this is normally zero.&lt;br /&gt;
|-&lt;br /&gt;
|  0x008&lt;br /&gt;
|  4&lt;br /&gt;
|  ARM11 Entrypoint&lt;br /&gt;
|-&lt;br /&gt;
|  0x00C&lt;br /&gt;
|  4&lt;br /&gt;
|  ARM9 Entrypoint&lt;br /&gt;
|-&lt;br /&gt;
|  0x010&lt;br /&gt;
|  0x030&lt;br /&gt;
|  Reserved&lt;br /&gt;
|-&lt;br /&gt;
|  0x040&lt;br /&gt;
|  0x0C0 (0x030*4)&lt;br /&gt;
|  Firmware Section Headers&lt;br /&gt;
|-&lt;br /&gt;
|  0x100&lt;br /&gt;
|  0x100&lt;br /&gt;
|  RSA-2048 signature of the FIRM header&#039;s SHA-256 hash. The signature is checked when bootrom/Process9 are doing FIRM-launch (with the public key being hardcoded in each). The signature is not checked when installing FIRM to the NAND firm0/firm1 partitions.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firmware Section Headers ==&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;
|  0x000&lt;br /&gt;
|  4&lt;br /&gt;
|  Byte offset&lt;br /&gt;
|-&lt;br /&gt;
|  0x004&lt;br /&gt;
|  4&lt;br /&gt;
|  Physical address where the section is loaded to.&lt;br /&gt;
|-&lt;br /&gt;
|  0x008&lt;br /&gt;
|  4&lt;br /&gt;
|  Byte-size.  While loading FIRM this is the field used to determine whether the section exists or not, by checking for value 0x0.&lt;br /&gt;
|-&lt;br /&gt;
|  0x00C&lt;br /&gt;
|  4&lt;br /&gt;
|  Copy-method (0 = NDMA, 1 = XDMA, 2 = CPU mem-copy), Process9 ignores this field. Boot9 doesn&#039;t immediately throw an error when this isn&#039;t 0..2. In that case it will jump over section-data-loading which then results in the hash verification with the below hash being done with the hash already stored in the SHA hardware.&lt;br /&gt;
|-&lt;br /&gt;
|  0x010&lt;br /&gt;
|  0x020&lt;br /&gt;
|  SHA-256 Hash of Firmware Section&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The contents of individual sections &#039;&#039;may&#039;&#039; be encrypted if the FIRM is not meant to be booted from NAND, i.e. if it is meant to be booted from SPI flash or NTR cartridge. If hash checks fail for all FIRM sections if treated as plaintext, it may be worth trying to check if the sections are encrypted. The encryption is detailed on [[Bootloader#Non-NAND_FIRM_boot|the bootloader page]].&lt;br /&gt;
&lt;br /&gt;
== [[New_3DS]] FIRM ==&lt;br /&gt;
For New3DS firmwares (NATIVE_FIRM, TWL_FIRM, ..), the ARM9 FIRM binary has an additional layer of crypto. At the end of each ARM9 binary, there&#039;s a plaintext loader. The format of the FIRM header is identical to regular 3DS FIRM(the RSA modulo is the same as regular 3DS too).&lt;br /&gt;
&lt;br /&gt;
Before checking [[CONFIG_Registers|CFG_SYSPROT9]] the loader main() does the following:&lt;br /&gt;
* On [[9.5.0-22|9.5.0-X]]: executes a nop instruction with r0=0 and r1=&amp;lt;address of arm9binhdr+0x50&amp;gt;.&lt;br /&gt;
* Clears bit6 in [[AES_Registers|REG_AESKEYCNT]].&lt;br /&gt;
&lt;br /&gt;
If [[CONFIG_Registers#CFG_SYSPROT9|CFG_SYSPROT9]] bit 1 is clear (which means the OTP area is unlocked and so it knows that this is a hard reboot), it does the following things:&lt;br /&gt;
* Clears 0x200-bytes on the stack, then reads [[Flash_Filesystem|NAND]] sector 0x96(NAND image offset 0x12C00), with size 0x200-bytes into that stack buffer.&lt;br /&gt;
* Checks [[CONFIG_Registers#CFG_SYSPROT9|CFG_SYSPROT9]] bit 1 again, if it&#039;s set then it executes a panic function(set r0-r2=0, execute nop instruction, then execute instruction &amp;quot;bkpt 0x99&amp;quot;).&lt;br /&gt;
* Hashes data from the OTP region [[IO_Registers|0x10012000-0x10012090]] using SHA256 via the [[SHA_Registers|SHA]] hardware.&lt;br /&gt;
* Clears bit6 in [[AES_Registers|REG_AESKEYCNT]]. Initializes AES keyslot 0x11 keyX, keyY to the lower and higher portion of the above hash, respectively. Due to the above hashed data, the keyX+keyY here are console-unique.&lt;br /&gt;
* Decrypts the first 0x10-byte block in the above read NAND sector with keyslot 0x11 using AES-ECB. [[9.6.0-24|9.6.0-X]]: Then it decrypts the 0x10-bytes at offset 0x10 in the sector with keyslot 0x11.&lt;br /&gt;
* Then the normalkey, keyX, and keyY, for keyslot 0x11 are cleared to zero. Runs the TWL key-init/etc code which was originally in the ARM9-kernel, then writes 0x2 to [[CONFIG_Registers|CFG_SYSPROT9]] to disable the OTP area.&lt;br /&gt;
* Then it uses the above decrypted block from sector+0 to set the normalkey for keyslot 0x11. Decrypts arm9_bin_buf+0 using keyslot 0x11 with AES-ECB, and initialises keyX for keyslot 0x15 with it.&lt;br /&gt;
* [[9.6.0-24|9.6.0-X]]: Then it uses the above decrypted block from sector+0 to set the normalkey for keyslot 0x11. Decrypts a 0x10-byte block from arm9loader .(ro)data using keyslot 0x11 with AES-ECB, and initializes keyX for keyslot 0x18 with it(same block as previous versions).&lt;br /&gt;
* [[9.6.0-24|9.6.0-X]]: Starting with this version keyslot 0x16 keyX init was moved here, see below for details on this. The code for this is same as  [[9.5.0-22|9.5.0-X]], except the decrypted normalkey from sector+0x10 is used for keyslot 0x11 instead.&lt;br /&gt;
* Initialises KeyX for keyslots 0x18..0x1F(0x19..0x1F with [[9.6.0-24|9.6.0-X]]) with the output of decrypting a 0x10-byte block with AES-ECB using keyslot 0x11. This block was changed to a new one separate from keyslot 0x18, starting with [[9.6.0-24|9.6.0-X]]. The last byte in this 0x10-byte input block is increased by 0x01 after initializing each keyslot. Before doing the crypto each time, the loader sets the normal-key for keyslot 0x11 to the plaintext normalkey from sector+0(+0x10 with [[9.6.0-24|9.6.0-X]]). These are New3DS-specific keys.&lt;br /&gt;
* [[9.5.0-22|9.5.0-X]](moved to above with [[9.6.0-24|9.6.0-X]]): Sets the normal-key for keyslot 0x11 to the same one already decrypted on the stack. Decrypts the 0x10-byte block at arm9binhdr+0x60 with AES-ECB using keyslot 0x11, then sets the keyX for keyslot 0x16 to the output data.&lt;br /&gt;
* [[9.5.0-22|9.5.0-X]]: The normalkey, keyX, and keyY, for keyslot 0x11 are then cleared to zero.&lt;br /&gt;
&lt;br /&gt;
When [[CONFIG_Registers#CFG_SYSPROT9|CFG_SYSPROT9]] bit 1 is set(which means this happens only when this loader runs again for firm-launch), the normalkey, keyX, and keyY, for keyslot 0x11 are cleared to zero.&lt;br /&gt;
&lt;br /&gt;
It sets KeyY for keyslot 0x15(0x16 with [[9.5.0-22|9.5.0-X]]) to arm9_bin_buf+16, the CTR to arm9_bin_buf+32 (both are unique for every version). It then proceeds to decrypt the binary with AES-CTR. When done, it sets the normal-key for the keyslot used for binary decryption to zeros. It then decrypts arm9_bin_buf+64 using an hardcoded keyY for keyslot 0x15([[9.5.0-22|9.5.0-X]]/[[9.6.0-24|9.6.0-X]] also uses keyslot 0x15), sets the normal-key for this keyslot to zeros again, then makes sure the output block is all zeroes. If it is, it does some cleanup then it jumps to the entrypoint for the decrypted binary. Otherwise it will clear the keyX, keyY, and normal-key for each of the keyslots initialized by this loader (on [[9.6.0-24|9.6.0-X]]+, on older versions this was bugged and cleared keys 0x00..0x07 instead of 0x18..0x1F), do cleanup(same cleanup as when the decrypted block is all-zero) then just loop forever.&lt;br /&gt;
&lt;br /&gt;
Thus, the ARM9 binary has the following 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;
|  0x000&lt;br /&gt;
|  16&lt;br /&gt;
|  Encrypted KeyX (same for all FIRM&#039;s)&lt;br /&gt;
|-&lt;br /&gt;
|  0x010&lt;br /&gt;
|  16&lt;br /&gt;
|  KeyY&lt;br /&gt;
|-&lt;br /&gt;
|  0x020&lt;br /&gt;
|  16&lt;br /&gt;
|  CTR&lt;br /&gt;
|-&lt;br /&gt;
|  0x030&lt;br /&gt;
|  8&lt;br /&gt;
|  Size of encrypted binary, as ASCII text?&lt;br /&gt;
|-&lt;br /&gt;
|  0x038&lt;br /&gt;
|  8&lt;br /&gt;
|  ?&lt;br /&gt;
|-&lt;br /&gt;
|  0x040&lt;br /&gt;
|  16&lt;br /&gt;
|  Control block&lt;br /&gt;
|-&lt;br /&gt;
|  0x050&lt;br /&gt;
|  16&lt;br /&gt;
|  Added with [[9.5.0-22|9.5.0-X]]. Only used for hardware debugging: a nop instruction is executed with r0=0 and r1=&amp;lt;address of this data&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|  0x060&lt;br /&gt;
|  16&lt;br /&gt;
|  Added with [[9.5.0-22|9.5.0-X]]. Encrypted keyX for keyslot 0x16.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Originally the padding after the header before offset 0x800(start of actual ARM9-binary) was 0xFF bytes, with [[9.5.0-22|9.5.0-X]] this was changed to 0x0.&lt;br /&gt;
&lt;br /&gt;
For the New3DS NATIVE_FIRM arm9-section header, the only difference between the [[8.1.0-0_New3DS]] version and the [[9.0.0-20]] version is that the keyY, CTR, and the block at 0x30 in the header were updated.&lt;br /&gt;
&lt;br /&gt;
===New3DS ARM9 binary loader versions===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  FIRM system version(s)&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| [[8.1.0-0_New3DS]] - [[9.3.0-21|9.3.0-X]]&lt;br /&gt;
| Initial version.&lt;br /&gt;
|-&lt;br /&gt;
| [[9.5.0-22|9.5.0-X]]&lt;br /&gt;
| Added keyX initialization for keyslot 0x16(see above), and added code for clearing keyslot 0x11 immediately after the code finishes using keyslot 0x11. The keyslot used for arm9bin decryption was changed from 0x15 to 0x16. Added code for clearing keyslot 0x16 when control-block decryption fails. Added code for using arm9bin_hdr+0x50 with a nop instruction, at the very beginning of the main arm9-loader function. Added two new 0x10-blocks to the arm9bin-hdr.&lt;br /&gt;
|-&lt;br /&gt;
| [[9.6.0-24|9.6.0-X]] - [[11.3.0-36|11.3.0-X]]&lt;br /&gt;
| See above and [[9.6.0-24|here]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===New3DS ARM9 kernel===&lt;br /&gt;
The only actual code-difference for the Old3DS/New3DS ARM9-kernels&#039; crt0, besides TWL AES / [[IO_Registers|0x10012000]] related code, is that the New3DS ARM9-kernel writes 0x1 to [[CONFIG_Registers|REG_EXTMEMCNT9]] in the crt0.&lt;br /&gt;
&lt;br /&gt;
===New3DS Process9===&lt;br /&gt;
The following is all of the differences for Old3DS/New3DS Process9 with [[9.3.0-21|9.3.0-X]]:&lt;br /&gt;
* The FIRM-launch code called at the end of the New3DS proc9 main() has different mem-range checks.&lt;br /&gt;
* In the New3DS proc9, the v6.0/v7.0 keyinit function at the very beginning(before the original code) had additional code added for setting [[Flash_Filesystem|CTRNAND]] [[AES_Registers|keyslot]] 0x5, with keydata from .data. After setting the keyY, the keyY in .data is cleared.&lt;br /&gt;
* In New3DS proc9, the functions for getting the gamecard crypto keyslots / NCCH keyslot can return New3DS keyslots when New3DS flags(NCSD/NCCH) are set.&lt;br /&gt;
* The code/data for the binary near the end of arm9mem is slightly different, because of memory-region sizes.&lt;br /&gt;
* The only difference in .data(besides the above code binary) is that the New3DS proc9 has an additional 0x10-byte block for the keyslot 0x5 keyY, see above.&lt;br /&gt;
&lt;br /&gt;
== Variations ==&lt;br /&gt;
There exists different official firmwares for the 3DS: The default one (NATIVE_FIRM) is used to run all 3DS content and boots by default, while backwards compatibility is handled by TWL_FIRM and AGB_FIRM. There furthermore is a rescue mode provided by SAFE_MODE_FIRM.&lt;br /&gt;
&lt;br /&gt;
=== NATIVE_FIRM ===&lt;br /&gt;
NATIVE_FIRM is the FIRM which is installed to the [[Flash_Filesystem|NAND]] firm partitions, which is loaded by bootrom.&lt;br /&gt;
&lt;br /&gt;
Version history:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!  System version&lt;br /&gt;
!  old 3DS title version&lt;br /&gt;
!  old 3DS hex title contentID&lt;br /&gt;
!  Kernel/FIRM version (old 3DS/new 3DS)&lt;br /&gt;
!  FIRM ARM11-sysmodule Product Code&lt;br /&gt;
|-&lt;br /&gt;
| [[Factory_Setup|Factory]] FIRM (titleID 00040001-00000002)&lt;br /&gt;
| v0&lt;br /&gt;
| 00&lt;br /&gt;
| 2.3-0&lt;br /&gt;
|-&lt;br /&gt;
| Pre-1.0. Referenced in the v1.0 Home Menu NCCH plain-region.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2.23-X&lt;br /&gt;
|-&lt;br /&gt;
| [[1.0.0-0|1.0.0]]&lt;br /&gt;
| v432&lt;br /&gt;
| 00&lt;br /&gt;
| 2.27-0&lt;br /&gt;
|-&lt;br /&gt;
| [[1.1.0-1|1.1.0]]&lt;br /&gt;
| v1472&lt;br /&gt;
| 02&lt;br /&gt;
| 2.28-0&lt;br /&gt;
|-&lt;br /&gt;
| [[2.0.0-2|2.0.0]]&lt;br /&gt;
| v2516&lt;br /&gt;
| 09&lt;br /&gt;
| 2.29-7&lt;br /&gt;
|-&lt;br /&gt;
| [[2.1.0-3|2.1.0]]&lt;br /&gt;
| v3553&lt;br /&gt;
| 0B&lt;br /&gt;
| 2.30-18&lt;br /&gt;
| 0608builder&lt;br /&gt;
|-&lt;br /&gt;
| [[2.2.0-X|2.2.0]]&lt;br /&gt;
| v4595&lt;br /&gt;
| 0F&lt;br /&gt;
| 2.31-40&lt;br /&gt;
| 0909builder&lt;br /&gt;
|-&lt;br /&gt;
| [[3.0.0-5|3.0.0]]&lt;br /&gt;
| v5647&lt;br /&gt;
| 18&lt;br /&gt;
| 2.32-15&lt;br /&gt;
| 1128builder&lt;br /&gt;
|-&lt;br /&gt;
| [[4.0.0-7|4.0.0]]&lt;br /&gt;
| v6677&lt;br /&gt;
| 1D&lt;br /&gt;
| 2.33-4&lt;br /&gt;
| 0406builder&lt;br /&gt;
|-&lt;br /&gt;
| [[4.1.0-8|4.1.0]]&lt;br /&gt;
| v7712&lt;br /&gt;
| 1F&lt;br /&gt;
| 2.34-0&lt;br /&gt;
| 0508builder&lt;br /&gt;
|-&lt;br /&gt;
| [[5.0.0-11|5.0.0]]&lt;br /&gt;
| v8758&lt;br /&gt;
| 25&lt;br /&gt;
| 2.35-6&lt;br /&gt;
| 0228builder&lt;br /&gt;
|-&lt;br /&gt;
| [[5.1.0-11|5.1.0]]&lt;br /&gt;
| v9792&lt;br /&gt;
| 26&lt;br /&gt;
| 2.36-0&lt;br /&gt;
| 0401builder&lt;br /&gt;
|-&lt;br /&gt;
| [[6.0.0-11|6.0.0]]&lt;br /&gt;
| v10833&lt;br /&gt;
| 29&lt;br /&gt;
| 2.37-0&lt;br /&gt;
| 0520builder&lt;br /&gt;
|-&lt;br /&gt;
| [[6.1.0-11|6.1.0]]&lt;br /&gt;
| v11872&lt;br /&gt;
| 2A&lt;br /&gt;
| 2.38-0&lt;br /&gt;
| 0625builder&lt;br /&gt;
|-&lt;br /&gt;
| [[7.0.0-13|7.0.0]]&lt;br /&gt;
| v12916&lt;br /&gt;
| 2E&lt;br /&gt;
| 2.39-4&lt;br /&gt;
| 1125builder&lt;br /&gt;
|-&lt;br /&gt;
| [[7.2.0-17|7.2.0]]&lt;br /&gt;
| v13956&lt;br /&gt;
| 30&lt;br /&gt;
| 2.40-0&lt;br /&gt;
| 0404builder&lt;br /&gt;
|-&lt;br /&gt;
| [[8.0.0-18|8.0.0]]&lt;br /&gt;
| v15047&lt;br /&gt;
| 37&lt;br /&gt;
| 2.44-6&lt;br /&gt;
| 0701builder&lt;br /&gt;
|-&lt;br /&gt;
| [[8.1.0-0_New3DS]]&lt;br /&gt;
|N/A&lt;br /&gt;
|N/A&lt;br /&gt;
| 2.45-5&lt;br /&gt;
|-&lt;br /&gt;
| [[9.0.0-20|9.0.0]]&lt;br /&gt;
| v17120&lt;br /&gt;
| 38&lt;br /&gt;
| 2.46-0&lt;br /&gt;
| 0828builder&lt;br /&gt;
|-&lt;br /&gt;
| [[9.3.0-21|9.3.0]]&lt;br /&gt;
| v18182&lt;br /&gt;
| 3F&lt;br /&gt;
| 2.48-3&lt;br /&gt;
| 1125builder&lt;br /&gt;
|-&lt;br /&gt;
| [[9.5.0-22|9.5.0]]&lt;br /&gt;
| v19216&lt;br /&gt;
| 40&lt;br /&gt;
| 2.49-0&lt;br /&gt;
| 0126builder&lt;br /&gt;
|-&lt;br /&gt;
| [[9.6.0-24|9.6.0]]&lt;br /&gt;
| v20262&lt;br /&gt;
| 49&lt;br /&gt;
| 2.50-1&lt;br /&gt;
| 0311builder&lt;br /&gt;
|-&lt;br /&gt;
| [[10.0.0-27|10.0.0]]&lt;br /&gt;
| v21288&lt;br /&gt;
| 4B&lt;br /&gt;
| 2.50-7&lt;br /&gt;
| 0812builder&lt;br /&gt;
|-&lt;br /&gt;
| [[10.2.0-28|10.2.0]]&lt;br /&gt;
| v22313&lt;br /&gt;
| 4C&lt;br /&gt;
| 2.50-9&lt;br /&gt;
| 1009builder&lt;br /&gt;
|-&lt;br /&gt;
| [[10.4.0-29|10.4.0]]&lt;br /&gt;
| v23341&lt;br /&gt;
| 50&lt;br /&gt;
| 2.50-11&lt;br /&gt;
| 1224builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.0.0-33|11.0.0]]&lt;br /&gt;
| v24368&lt;br /&gt;
| 52&lt;br /&gt;
| 2.51-0&lt;br /&gt;
| 0406builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.1.0-34|11.1.0]]&lt;br /&gt;
| v25396&lt;br /&gt;
| 56&lt;br /&gt;
| 2.51-2&lt;br /&gt;
| 0805builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.2.0-35|11.2.0]]&lt;br /&gt;
| v26432&lt;br /&gt;
| 58&lt;br /&gt;
| 2.52-0&lt;br /&gt;
| 1015builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.3.0-36|11.3.0]]&lt;br /&gt;
| v27476&lt;br /&gt;
| 5C&lt;br /&gt;
| 2.53-0&lt;br /&gt;
| 0126builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.4.0-37|11.4.0]]&lt;br /&gt;
| v28512&lt;br /&gt;
| 5E&lt;br /&gt;
| 2.54-0&lt;br /&gt;
| 0314builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.8.0-41|11.8.0]]&lt;br /&gt;
| v29557&lt;br /&gt;
| 64&lt;br /&gt;
| 2.55-0&lt;br /&gt;
| 0710pseg-ciuser&lt;br /&gt;
|-&lt;br /&gt;
| [[11.12.0-44|11.8.0]]&lt;br /&gt;
| v30593&lt;br /&gt;
| 66&lt;br /&gt;
| 2.56-0&lt;br /&gt;
| 1021pseg-ciuser&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The above kernel/FIRM versions are in the format: &amp;lt;KERNEL_VERSIONMAJOR&amp;gt;.&amp;lt;KERNEL_VERSIONMINOR&amp;gt;-&amp;lt;KERNEL_VERSIONREVISION&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SAFE_MODE_FIRM ===&lt;br /&gt;
SAFE_MODE is used for running the [[System_Settings#System_Updater|System Updater]]. SAFE_MODE_FIRM and NATIVE_FIRM for the initial versions are exactly the same, except for the system core version fields.&lt;br /&gt;
&lt;br /&gt;
=== TWL_FIRM ===&lt;br /&gt;
TWL_FIRM handles DS(i) backwards compatibility.&lt;br /&gt;
&lt;br /&gt;
The 3DS-mode ARM9 core seems to switch into DSi-mode(for running DSi-mode ARM9 code) by writing to a [[PDN]] register(this changes the memory layout to DSi-mode / etc, therefore this register poke *must* be executed from ITCM). This is the final 3DS-mode register poke before the ARM9 switches into DSi-mode. DS(i)-mode ARM7 code is run on the internal [[ARM7]] core, which is started up during TWL_FIRM boot. Trying to read from the exception-vector region(address 0x0) under this DSi-mode ARM7 seems to only return 0x00/0xFF data. Also note that this DSi-mode ARM7 runs code(stored in TWL_FIRM) which pokes some DSi-mode registers that on the DSi were used for disabling access to the DSi bootROMs, however these registers do not affect the 3DS DSi-mode ARM9/ARM7 &amp;quot;bootrom&amp;quot; region(exceptionvector region + 0x8000) at all.&lt;br /&gt;
&lt;br /&gt;
For shutting down the system, TWL_FIRM writes u8 value 8 to [[I2C]] MCU register 0x20. For returning to 3DS-mode, TWL_FIRM writes value 4 to that MCU register to trigger a hardware system reboot.&lt;br /&gt;
&lt;br /&gt;
The TWL_FIRM ARM11-process includes a TWL bootloader, see [http://dsibrew.org/wiki/Bootloader here] and [[Memory_layout#Detailed_TWL_FIRM_ARM11_Memory|here]] for details.&lt;br /&gt;
&lt;br /&gt;
TWL_FIRM verifies all TWL RSA padding with the following. This is different from the DSi &amp;quot;BIOS&amp;quot; code.&lt;br /&gt;
* The first byte must be 0x0.&lt;br /&gt;
* The second byte must be 0x1 or 0x2.&lt;br /&gt;
* Executes a while(&amp;lt;value of byte at current pos in RSA message&amp;gt;). When the second_byte in the message is 0x1, the byte at curpos must be 0xFF(otherwise the non-zero value of the byte at curpos doesn&#039;t matter). This loop must find a zero byte before offset 0x7F in the message otherwise an error is returned.&lt;br /&gt;
* Returns an address for msg_curpos+1.&lt;br /&gt;
totalhashdatasize = rsasig_bytesize - above position in the message for the hashdata. The actual &amp;quot;totalhashdatasize&amp;quot; in the RSA message must be &amp;lt;= &amp;lt;expected hashdata_size&amp;gt;(0x74 for bootloader). The TWL_FIRM code copies the RSA &amp;quot;hashdata&amp;quot; to the output buffer, using the actual size of the RSA &amp;quot;hashdata&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== AGB_FIRM ===&lt;br /&gt;
AGB_FIRM handles running GBA VC titles. The ARM9 FIRM section for TWL_FIRM and AGB_FIRM are exactly the same (for TWL_FIRM and AGB_FIRM versions which were updated with the same system-update).&lt;br /&gt;
&lt;br /&gt;
== FIRM Launch Parameters ==&lt;br /&gt;
The FIRM-launch parameters structure is located at FCRAM+0, size 0x1000-bytes. The ARM11-kernel copies this structure elsewhere, then clears the 0x1000-bytes at FCRAM+0. It will not handle an existing structure at FCRAM+0 if [[CONFIG Registers#CFG_BOOTENV|CFG_BOOTENV]] is zero. The ARM9 kernel [[Configuration_Memory#0x1FF80016|writes some values]] about the boot environment to AXI WRAM during init to enable this.&lt;br /&gt;
&lt;br /&gt;
Note: it seems NATIVE_FIRM ARM11-kernel didn&#039;t parse this during boot until [[3.0.0-5|3.0.0-X]]?&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;
| 0x300&lt;br /&gt;
| 0x100&lt;br /&gt;
| &#039;TLNC&#039; block created by TWL applications, handled by NS for backwards-compatibility purposes. See [[NS#Auto-boot|here]] for more info.&lt;br /&gt;
|-&lt;br /&gt;
| 0x400&lt;br /&gt;
| 0x4&lt;br /&gt;
| Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x410&lt;br /&gt;
| 0xC&lt;br /&gt;
| This is used for overriding the FIRM_* fields in [[Configuration_Memory]], when the flag listed below is set, in the following order(basically just data-copy from here to 0x1FF80060): &amp;quot;FIRM_?&amp;quot;, FIRM_VERSIONREVISION, FIRM_VERSIONMINOR, FIRM_VERSIONMAJOR, FIRM_SYSCOREVER, and FIRM_CTRSDKVERSION.&lt;br /&gt;
|-&lt;br /&gt;
| 0x438&lt;br /&gt;
| 0x4&lt;br /&gt;
| The kernel checks this field for value 0xFFFF, if it matches the kernel uses the rest of these parameter fields, otherwise FIRM-launch parameters fields are ignored by the kernel.&lt;br /&gt;
|-&lt;br /&gt;
| 0x43C&lt;br /&gt;
| 0x4&lt;br /&gt;
| CRC32, this is calculated starting at FIRM-params offset 0x400, with size 0x140(with this field cleared to zero during calculation). When invalid the kernel clears the entire buffer used for storing the FIRM-params, therefore no actual FIRM-params are handled after that.&lt;br /&gt;
|-&lt;br /&gt;
| 0x440&lt;br /&gt;
| 0x10&lt;br /&gt;
| Titleinfo [[Filesystem_services#ProgramInfo|Program Info]], used by NS during NS startup, to launch the specified title when the below flag is set.&lt;br /&gt;
|-&lt;br /&gt;
| 0x450&lt;br /&gt;
| 0x10&lt;br /&gt;
| Titleinfo [[Filesystem_services#ProgramInfo|Program Info]]. This might be used for returning to the specified title, once the above launched title terminates?&lt;br /&gt;
|-&lt;br /&gt;
| 0x460&lt;br /&gt;
| 0x4&lt;br /&gt;
| Bit0: 0 = titleinfo structure isn&#039;t set, 1 = titleinfo structure is set.&lt;br /&gt;
|-&lt;br /&gt;
| 0x480&lt;br /&gt;
| 0x20&lt;br /&gt;
| This can be set via buf1 for [[APT:SendDeliverArg]]/[[APT:StartApplication]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A0&lt;br /&gt;
| 0x10&lt;br /&gt;
| This can be set by [[NSS:SetWirelessRebootInfo]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B0&lt;br /&gt;
| 0x14&lt;br /&gt;
| SHA1-HMAC of the banner for TWL/NTR titles. This can be set by [[NSS:SetTWLBannerHMAC]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x500&lt;br /&gt;
| 0x40&lt;br /&gt;
| This is used by [[APT:LoadSysMenuArg]] and [[APT:StoreSysMenuArg]].&lt;br /&gt;
|-&lt;br /&gt;
| 0xD70&lt;br /&gt;
| 0x290&lt;br /&gt;
| [[Config Savegame|Config]] data struct for LGY FIRM.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Flags from offset 0x400:&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;
| This can be used for overriding the default FCRAM [[Memory_layout|memory-regions]] allocation sizes(APPLICATION, SYSTEM, and BASE). The values for this is the same as [[Configuration_Memory#APPMEMTYPE|Configmem-APPMEMTYPE]]. Values 0-1 are handled the same way by the kernel. However for NS, 0=titleinfo structure for launching a title isn&#039;t set, while non-zero=titleinfo structure is set.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x3&lt;br /&gt;
| Setting bit0 here enables overriding the FIRM_* fields in [[Configuration_Memory]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Config Savegame|Config]] struct for booting LGY FIRMs from offset 0xD70:&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;
| Config block 0x30000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x1&lt;br /&gt;
| Config block 0x70001.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x1&lt;br /&gt;
| System language (Config block 0xA0002).&lt;br /&gt;
|-&lt;br /&gt;
| 0x3&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[Cfg:SecureInfoGetRegion|Region from SecureInfo]] (&amp;quot;pseudo-block&amp;quot; 0x140000 in LGY FIRM).&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0xF&lt;br /&gt;
| [[CfgS:SecureInfoGetSerialNo|Serial number from SecureInfo]] (&amp;quot;pseudo-block&amp;quot; 0x140001 in LGY FIRM).&lt;br /&gt;
|-&lt;br /&gt;
| 0x13&lt;br /&gt;
| 0x1&lt;br /&gt;
| Config block 0x100002.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x10&lt;br /&gt;
| Config block 0x100003.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x2&lt;br /&gt;
| Config block 0x100000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x1&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x27&lt;br /&gt;
| 0x1&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x94&lt;br /&gt;
| Config block 0x100001.&lt;br /&gt;
|-&lt;br /&gt;
| 0xBC&lt;br /&gt;
| 0x2&lt;br /&gt;
| Config block 0x50000.&lt;br /&gt;
|-&lt;br /&gt;
| 0xBE&lt;br /&gt;
| 0x2&lt;br /&gt;
| Config block 0x50001.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0&lt;br /&gt;
| 0x38&lt;br /&gt;
| Config block 0x50002.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF8&lt;br /&gt;
| 0x20&lt;br /&gt;
| Config block 0x50004.&lt;br /&gt;
|-&lt;br /&gt;
| 0x118&lt;br /&gt;
| 0x134&lt;br /&gt;
| Config block 0x20000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24C&lt;br /&gt;
| 0x10&lt;br /&gt;
| Config block 0x40000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25C&lt;br /&gt;
| 0x1C&lt;br /&gt;
| Config block 0x40001.&lt;br /&gt;
|-&lt;br /&gt;
| 0x278&lt;br /&gt;
| 0x4&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x27C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x280&lt;br /&gt;
| 0x8&lt;br /&gt;
| Config block 0x30001.&lt;br /&gt;
|-&lt;br /&gt;
| 0x288&lt;br /&gt;
| 0x2&lt;br /&gt;
| CRC16 over the above fields from offset 0x0, size 0x288. If not valid, LGY FIRM uses dummy data from .(ro)data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28A&lt;br /&gt;
| 0x2&lt;br /&gt;
| If non-zero, the size (below) is hardcoded (currently) to value 0x288, otherwise the size field below is used.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Value 0x288 (size used for verifying the CRC16).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Cleared to zero&amp;quot; fields above are not read at all by LGY FIRM.&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Titles&amp;diff=21006</id>
		<title>Titles</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Titles&amp;diff=21006"/>
		<updated>2019-06-25T22:45:27Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* Data Structure */ update DLC NCCH separation information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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].&lt;br /&gt;
&lt;br /&gt;
For a list of 3DS titles see the [[Title list]].                           &lt;br /&gt;
                     &lt;br /&gt;
= Title IDs =&lt;br /&gt;
&lt;br /&gt;
The organization of Title IDs has not been documented fully yet. Region info isn&#039;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.&lt;br /&gt;
&lt;br /&gt;
Note: The terms &#039;Title ID&#039;, &#039;Partition ID&#039; and &#039;Media ID&#039; are interchangeable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TitleID Structure&#039;&#039;&#039;: 0xCCCCABCDLLLLLLRR&lt;br /&gt;
&lt;br /&gt;
* CCCC defines the console &#039;&#039;&#039;Platform&#039;&#039;&#039; (5=WiiU, 4=3DS, 3=DSi, 1=[http://wiibrew.org/wiki/Title_database Wii])&lt;br /&gt;
* ABCD defines the &#039;&#039;&#039;Content Category&#039;&#039;&#039; of the title, Demo, DLPChild, etc.&lt;br /&gt;
* LLLLLL For CTR titles, this is the title&#039;s &#039;&#039;&#039;Unique ID&#039;&#039;&#039;. 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 &#039;ABCD&#039;. LLLL is the TWL title&#039;s &#039;Unique ID&#039;. There are restrictions on the Unique ID, see below for more info.&lt;br /&gt;
* RR This is the Title ID &#039;&#039;&#039;Variation&#039;&#039;&#039;, and has various uses.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Content Categories&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
This u16 is a collection bit mask flag. Each Category is a group of one or more bit masks.&lt;br /&gt;
&lt;br /&gt;
Specific Bitmask Flags:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Category&lt;br /&gt;
!  Bitmask&lt;br /&gt;
|-&lt;br /&gt;
|  Normal&lt;br /&gt;
|  0x0&lt;br /&gt;
|-&lt;br /&gt;
|  DlpChild&lt;br /&gt;
|  0x1&lt;br /&gt;
|-&lt;br /&gt;
|  Demo&lt;br /&gt;
|  0x2&lt;br /&gt;
|-&lt;br /&gt;
|  Contents&lt;br /&gt;
|  0x3&lt;br /&gt;
|-&lt;br /&gt;
|  AddOnContents&lt;br /&gt;
|  0x4&lt;br /&gt;
|-&lt;br /&gt;
|  Patch&lt;br /&gt;
|  0x6&lt;br /&gt;
|-&lt;br /&gt;
|  CannotExecution&lt;br /&gt;
|  0x8&lt;br /&gt;
|-&lt;br /&gt;
|  System&lt;br /&gt;
|  0x10&lt;br /&gt;
|-&lt;br /&gt;
|  RequireBatchUpdate&lt;br /&gt;
|  0x20&lt;br /&gt;
|-&lt;br /&gt;
|  NotRequireUserApproval&lt;br /&gt;
|  0x40&lt;br /&gt;
|-&lt;br /&gt;
|  NotRequireRightForMount&lt;br /&gt;
|  0x80&lt;br /&gt;
|-&lt;br /&gt;
|  CanSkipConvertJumpId&lt;br /&gt;
|  0x100&lt;br /&gt;
|-&lt;br /&gt;
|  TWL&lt;br /&gt;
|  0x8000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
* System titles (TWL and CTR) are eligible to be updated during a System Update.&lt;br /&gt;
&lt;br /&gt;
* Bit Mask 0x4000 appears to be reserved, as it renders the &#039;&#039;TWL&#039;&#039; and &#039;&#039;System&#039;&#039; bit masks useless.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unique ID Restrictions&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
For the CTR titles, there appears to be is a correlation between Unique IDs (UID) and 3DS &#039;title types&#039;. 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. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TITLE TYPE&lt;br /&gt;
!  UNIQUE ID RANGE&lt;br /&gt;
|-&lt;br /&gt;
|  System&lt;br /&gt;
|  0x0 - 0x2FF&lt;br /&gt;
|- &lt;br /&gt;
|  Application&lt;br /&gt;
|  0x300 - 0xF7FFF&lt;br /&gt;
|- &lt;br /&gt;
|  Evaluation&lt;br /&gt;
|  0xF8000 - 0xFEFFF (?)&lt;br /&gt;
|- &lt;br /&gt;
|  Prototype*&lt;br /&gt;
|  0xFF000 - 0xFF3FF&lt;br /&gt;
|- &lt;br /&gt;
|  Developer&lt;br /&gt;
|  0xFF400 - 0xFF7FF (?)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;On the home menu, titles with UIDs within the &#039;Prototype&#039; range, appear on the home menu after install without the gift fanfare.&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TitleID Variation&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
This u8 allows enumeration of titles from the same category and unique ID. Common uses are explained below:&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  RR&lt;br /&gt;
!  MEANING&lt;br /&gt;
|- &lt;br /&gt;
|  02&lt;br /&gt;
|  System Title (Core version 0x2)&lt;br /&gt;
|-&lt;br /&gt;
|  03&lt;br /&gt;
|  SAFE_MODE System Title (Core version 0x3)&lt;br /&gt;
|}&lt;br /&gt;
Normally on retail SAFE_MODE ARM11 [[NCCH#CXI|CXI]] titles can&#039;t be launched, since the [[Configuration_Memory|system]] core version doesn&#039;t match the CXI exheader core version.&lt;br /&gt;
&lt;br /&gt;
* Only most non-Normal Applications are known to utilise Title ID variation, this is explained in their respective sections on this page.&lt;br /&gt;
&lt;br /&gt;
* [[3DS Development Unit Software|Dev Menu]] installs CTR Applications with a TitleID variation of 0x02 to the CTR NAND.&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
&lt;br /&gt;
= Versions =&lt;br /&gt;
&lt;br /&gt;
v## = 0xHHHH = 0bBBBBBBBB...&lt;br /&gt;
&lt;br /&gt;
* The version major,minor and micro can be extracted from the version number by converting the 16 bit number to binary&lt;br /&gt;
* 6 bits : Major, this matches the NCCH remaster-version.&lt;br /&gt;
* 6 bits : Minor&lt;br /&gt;
* 4 bits : Micro (&#039;Build&#039; in some contexts)&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
= Data Structure =&lt;br /&gt;
&lt;br /&gt;
Titles are installed to either the NAND (System and Application) or to the SD Card (Application only), and their respective directory locations are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| [[Flash Filesystem|NAND]]&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| [[SD Filesystem|SD]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Title Data&lt;br /&gt;
| nand/title&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | sdmc/Nintendo 3DS/&amp;lt;ID0&amp;gt;/&amp;lt;ID1&amp;gt;/title&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Save Data&lt;br /&gt;
| nand/data/&amp;lt;ID0&amp;gt;/sysdata&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
ID0 is the first 0x10-bytes from a SHA256 [[nand/private/movable.sed|hash]] and ID1 is generated from the SD card CID.&lt;br /&gt;
&lt;br /&gt;
Title data stored on the SD Card is encrypted with the console-unique [[nand/private/movable.sed|keyslots]], whereas NAND title data is stored as cleartext.&lt;br /&gt;
&lt;br /&gt;
The base CTR for files stored under /title is likely based on the /title path, similar to extdata. This base CTR is unique per titleID and filename. The base CTR never changes after creation of each file.&lt;br /&gt;
&lt;br /&gt;
When a newer version of a title is installed, the new .app content, .tmd, and .cmd(and .ctx for NAND titles) are written to the /title directory, however the old files here are not yet deleted. Once installation of the title is [[AMNet:InstallTitlesFinish|finalized]], the info from [[Title_Database|import.db]] is moved to [[Title_Database|title.db]] so that the system uses the newer files instead, then the old /title files are deleted.&lt;br /&gt;
&lt;br /&gt;
The title data is contained in this directory structure (note that [[Title list#0004008C - Add-on Content (DLC)|DLC]] titles are stored in a different way):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| NAND&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| SD (non-DLC)&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| SD (DLC)&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Title Data:&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;Title ID High&amp;gt;&lt;br /&gt;
 └── &amp;lt;Title ID Low&amp;gt;&lt;br /&gt;
     ├── 00000000.ctx&lt;br /&gt;
     └── content&lt;br /&gt;
         ├── &amp;lt;ContentID&amp;gt;.app&lt;br /&gt;
         ├── &amp;lt;ContentID&amp;gt;.tmd&lt;br /&gt;
         └── cmd&lt;br /&gt;
             └── &amp;lt;ContentID&amp;gt;.cmd&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
 &amp;lt;Title ID High&amp;gt;&lt;br /&gt;
 └── &amp;lt;Title ID Low&amp;gt;&lt;br /&gt;
     ├── 00000000.ctx&lt;br /&gt;
     ├── content&lt;br /&gt;
     │   ├── &amp;lt;ContentID&amp;gt;.app&lt;br /&gt;
     │   ├── &amp;lt;ContentID&amp;gt;.tmd&lt;br /&gt;
     │   └── cmd&lt;br /&gt;
     │       └── &amp;lt;ContentID&amp;gt;.cmd&lt;br /&gt;
     └── data&lt;br /&gt;
         └── 00000001.sav&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
 0004008C&lt;br /&gt;
 └── &amp;lt;Title ID Low&amp;gt;&lt;br /&gt;
     ├── 00000000.ctx&lt;br /&gt;
     └── content&lt;br /&gt;
         ├── &amp;lt;ContentID&amp;gt;.tmd&lt;br /&gt;
         ├── &amp;lt;IndexSeparator&amp;gt;&lt;br /&gt;
         │   └── &amp;lt;ContentID&amp;gt;.app&lt;br /&gt;
         └── cmd&lt;br /&gt;
             └── &amp;lt;ContentID&amp;gt;.cmd&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;|  Save Data:&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;SaveID0&amp;gt;&lt;br /&gt;
 └── &amp;lt;SaveID1&amp;gt;&lt;br /&gt;
     └── 00000001.sav&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.tmd&#039;&#039;&#039;&amp;quot; - (The Content ID is a u32, initially: &#039;&#039;&#039;00000000&#039;&#039;&#039; when the title is first installed. Changing by an increment of +&#039;&#039;&#039;0x1&#039;&#039;&#039; for each title update the 3DS installs) This is the [[Title metadata]] associated with the title. The decrypted TMD is available on Nintendo&#039;s CDN server at &amp;quot;http://nus.cdn.c.shop.nintendowifi.net/ccs/download/TitleIDhere/tmd.OptionallyTitleVersionHere&amp;quot;. Though CDN version of the title TMD has a certificate chain attached at the end of the TMD, so removing it will give you the 1:1 decrypted TMD. After installation the &amp;quot;&amp;lt;ContentID&amp;gt;.tmd&amp;quot; is redundant, because important title data is extracted and imported into the [[Title Database|title.db]] and &amp;quot;.cmd&amp;quot; files, but is however kept as a reference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.app&#039;&#039;&#039;&amp;quot; - (The Content ID is a u32, taken from the title&#039;s [[TMD]]) These files are [[NCCH]] files. There can be more than one NCCH in this directory, as seen with .[[CCI]] files, the game executable ([[CXI]]) can be accompanied with additional non-executable NCCH files ([[NCCH#CFA|CFA]]) such as the electronic manual and DLP Child containers. Determining the function of the NCCH, is done by finding the Content Index of the &amp;quot;XXXXXXXX.app&amp;quot; file in the title&#039;s TMD(see above for retrieving decrypted TMD), interpreting the Content Index is as follows (does not apply to DLC content):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index&lt;br /&gt;
!  Content Type&lt;br /&gt;
|-&lt;br /&gt;
|  0000&lt;br /&gt;
|  Main Executable (.[[NCCH#CXI|CXI]])(In the case of [[Title list|System Data Archives]], this is a [[NCCH#CFA|CFA]] file)&lt;br /&gt;
|-&lt;br /&gt;
|  0001&lt;br /&gt;
|  Home Menu Manual (.[[NCCH#CFA|CFA]])&lt;br /&gt;
|-&lt;br /&gt;
|  0002&lt;br /&gt;
|  DLP Child Container (.[[NCCH#CFA|CFA]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Unlike the TMD, a decrypted version of the NCCH files cannot be retrieved from Nintendo&#039;s CDN, the NCCH files do exist on Nintendo&#039;s CDN but are [[AES|encrypted]]. Decrypting CDN versions of content, requires the title&#039;s [[CommonETicket|ticket]], and the common key specified by an index in the  [[CommonETicket|ticket]]. Of course editing/deleting &amp;quot;.app&amp;quot; files will have an effect. Deleting/renaming the manual &amp;quot;.app&#039; will cause the manual not to load when clicked on. And deleting/renaming the executable &amp;quot;.app&amp;quot; will cause the application to not load, and the 3D Banner does not show(The banner is loaded each time from the game&#039;s executable NCCH when the home menu loads, it is not cached like the icon and name).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.cmd&#039;&#039;&#039;&amp;quot; - (The Content ID is a u32, initially: &#039;&#039;&#039;00000001&#039;&#039;&#039; when the title is first installed. Changing by an increment of +&#039;&#039;&#039;0x1&#039;&#039;&#039; for each time the 3DS adds/removes &#039;.app&#039; files) This file contains data taken from the title&#039;s [[TMD]]. See the below table for the format of the cleartext .cmd file. The [[Title Database|Title.db]] contains the Content ID for the &#039;.cmd&#039; file, but does not contain a hash of the &#039;.cmd&#039; file. This acts as part of the DRM for installed titles, along with the [[Title Database|title.db]].&lt;br /&gt;
&lt;br /&gt;
The below AES-CMACs(including the last 0x10-bytes of the header) are only used for SD titles, for NAND [[Title_list|download-play]] titles, and non-system DSiWare titles. For other titles, these MACs are set to all-zero.&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;
| .cmd ContentID, for the .cmd filename. This is the beginning of the header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Number of AES-CMACs and Content IDs in the first list (X). The method to determine this is explained below.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Number of Content IDs in the second list (Y)&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Unknown, usually (always?) 1.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| AES-CMAC over first 0x10&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4 * X&lt;br /&gt;
| List of installed Content IDs in order of Content Index, with missing contents replaced with 0xFFFFFFFF&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 + 0x4 * X&lt;br /&gt;
| 0x4 * Y&lt;br /&gt;
| List of installed Content IDs in order of ID name&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 + 0x4 * (X + Y)&lt;br /&gt;
| 0x10 * X&lt;br /&gt;
| AES-CMACs for each content in the first list, generated using the process below&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The number of AES-CMACs depends on the highest Content Index installed. For example, a title with 5 contents, but only 1 and 3 are installed, will still result in 3 AES-CMACs, with the 2nd one being unused.&lt;br /&gt;
&lt;br /&gt;
For SD contents, each AES-CMAC is generated by combining the NCCH header without the signature (0x100-0x1FF), the Content Index and Content ID at the end, both as u32. Then calculate the SHA256 of the data and generate the AES-CMAC using the [[AES Registers#Keyslots|SD/NAND AES-CMAC key]].&lt;br /&gt;
&lt;br /&gt;
For TWLNAND contents, the same process is used(even for SRL contents) with the keyslot for NAND dbs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;00000001.sav&amp;quot;&#039;&#039;&#039; - This is the title&#039;s [[Savegames|savegame]]. Renaming these savegames causes home-menu to hang while launching titles, modifying these saves results in the same corruption errors as other savegames.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;00000000.ctx&amp;quot;&#039;&#039;&#039; - This file is temporarily stored on SD card while a title is being downloaded from the eShop, it is deleted after the download is completed. This contains an AP0000000000000000 cert used to sign the data following the cert, this cert is signed by the [[CTCert]].&lt;br /&gt;
The unknown signed data is likely an ECDSA public key. There&#039;s .ctx files stored under the /title directory for NAND CTR/TWL titles, however those use the [[CTXT]] format which is completely different from this SD .ctx format. These .ctx files for NAND/SD titles only exist for titles where installation was not yet finalized(like when a system update install was not yet finalized).&lt;br /&gt;
&lt;br /&gt;
=== DLC Titles ===&lt;br /&gt;
&lt;br /&gt;
DLC titles have a different directory structure to most installed titles. This is because all DLC content for a given title is installed under the same Title ID, but DLC add-ons are usually separate purchases, hence the structure altered so any combination of DLC content can be installed. DLC titles can receive &#039;updates&#039;, this is usually in the form of more DLC content and/or DLC bug fixes. Individual DLC content can only be managed from with-in the application using the DLC.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;&amp;lt;IndexSeparator&amp;gt;&amp;quot;&#039;&#039;&#039; - DLC [[NCCH]] contents are split across different directories, depending on the Content Index. Starting with 00000000, there is a directory for every 256 contents. All the directories are created upon install, which means some may be empty if the contents within its index range are not installed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.tmd&#039;&#039;&#039;&amp;quot; - This is not modified by the 3DS, and contains the details for all DLC content(installed or not).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.cmd&#039;&#039;&#039;&amp;quot; - This contains entries for all &#039;&#039;&#039;installed&#039;&#039;&#039; DLC [[NCCH]] content, and is updated (&amp;lt;ContentID&amp;gt; will change) every time DLC content is installed/removed.&lt;br /&gt;
&lt;br /&gt;
=Installing other-model system-titles=&lt;br /&gt;
When finalizing title-install of already downloaded Old3DS system-titles to a New3DS NAND image with New3DS NATIVE_FIRM, the end result is that the New3DS version (TID-low bitmask 0x20000000) of those titles gets deleted.&lt;br /&gt;
&lt;br /&gt;
It&#039;s unknown where this behaviour is implemented (might be NIM, AM, or AMXPXI).&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Titles&amp;diff=21000</id>
		<title>Titles</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Titles&amp;diff=21000"/>
		<updated>2019-06-09T01:07:28Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* Data Structure */ clarify and fix up offset and size for cmd format table&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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].&lt;br /&gt;
&lt;br /&gt;
For a list of 3DS titles see the [[Title list]].                           &lt;br /&gt;
                     &lt;br /&gt;
= Title IDs =&lt;br /&gt;
&lt;br /&gt;
The organization of Title IDs has not been documented fully yet. Region info isn&#039;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.&lt;br /&gt;
&lt;br /&gt;
Note: The terms &#039;Title ID&#039;, &#039;Partition ID&#039; and &#039;Media ID&#039; are interchangeable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TitleID Structure&#039;&#039;&#039;: 0xCCCCABCDLLLLLLRR&lt;br /&gt;
&lt;br /&gt;
* CCCC defines the console &#039;&#039;&#039;Platform&#039;&#039;&#039; (5=WiiU, 4=3DS, 3=DSi, 1=[http://wiibrew.org/wiki/Title_database Wii])&lt;br /&gt;
* ABCD defines the &#039;&#039;&#039;Content Category&#039;&#039;&#039; of the title, Demo, DLPChild, etc.&lt;br /&gt;
* LLLLLL For CTR titles, this is the title&#039;s &#039;&#039;&#039;Unique ID&#039;&#039;&#039;. 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 &#039;ABCD&#039;. LLLL is the TWL title&#039;s &#039;Unique ID&#039;. There are restrictions on the Unique ID, see below for more info.&lt;br /&gt;
* RR This is the Title ID &#039;&#039;&#039;Variation&#039;&#039;&#039;, and has various uses.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Content Categories&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
This u16 is a collection bit mask flag. Each Category is a group of one or more bit masks.&lt;br /&gt;
&lt;br /&gt;
Specific Bitmask Flags:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Category&lt;br /&gt;
!  Bitmask&lt;br /&gt;
|-&lt;br /&gt;
|  Normal&lt;br /&gt;
|  0x0&lt;br /&gt;
|-&lt;br /&gt;
|  DlpChild&lt;br /&gt;
|  0x1&lt;br /&gt;
|-&lt;br /&gt;
|  Demo&lt;br /&gt;
|  0x2&lt;br /&gt;
|-&lt;br /&gt;
|  Contents&lt;br /&gt;
|  0x3&lt;br /&gt;
|-&lt;br /&gt;
|  AddOnContents&lt;br /&gt;
|  0x4&lt;br /&gt;
|-&lt;br /&gt;
|  Patch&lt;br /&gt;
|  0x6&lt;br /&gt;
|-&lt;br /&gt;
|  CannotExecution&lt;br /&gt;
|  0x8&lt;br /&gt;
|-&lt;br /&gt;
|  System&lt;br /&gt;
|  0x10&lt;br /&gt;
|-&lt;br /&gt;
|  RequireBatchUpdate&lt;br /&gt;
|  0x20&lt;br /&gt;
|-&lt;br /&gt;
|  NotRequireUserApproval&lt;br /&gt;
|  0x40&lt;br /&gt;
|-&lt;br /&gt;
|  NotRequireRightForMount&lt;br /&gt;
|  0x80&lt;br /&gt;
|-&lt;br /&gt;
|  CanSkipConvertJumpId&lt;br /&gt;
|  0x100&lt;br /&gt;
|-&lt;br /&gt;
|  TWL&lt;br /&gt;
|  0x8000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
* System titles (TWL and CTR) are eligible to be updated during a System Update.&lt;br /&gt;
&lt;br /&gt;
* Bit Mask 0x4000 appears to be reserved, as it renders the &#039;&#039;TWL&#039;&#039; and &#039;&#039;System&#039;&#039; bit masks useless.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unique ID Restrictions&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
For the CTR titles, there appears to be is a correlation between Unique IDs (UID) and 3DS &#039;title types&#039;. 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. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TITLE TYPE&lt;br /&gt;
!  UNIQUE ID RANGE&lt;br /&gt;
|-&lt;br /&gt;
|  System&lt;br /&gt;
|  0x0 - 0x2FF&lt;br /&gt;
|- &lt;br /&gt;
|  Application&lt;br /&gt;
|  0x300 - 0xF7FFF&lt;br /&gt;
|- &lt;br /&gt;
|  Evaluation&lt;br /&gt;
|  0xF8000 - 0xFEFFF (?)&lt;br /&gt;
|- &lt;br /&gt;
|  Prototype*&lt;br /&gt;
|  0xFF000 - 0xFF3FF&lt;br /&gt;
|- &lt;br /&gt;
|  Developer&lt;br /&gt;
|  0xFF400 - 0xFF7FF (?)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;On the home menu, titles with UIDs within the &#039;Prototype&#039; range, appear on the home menu after install without the gift fanfare.&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TitleID Variation&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
This u8 allows enumeration of titles from the same category and unique ID. Common uses are explained below:&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  RR&lt;br /&gt;
!  MEANING&lt;br /&gt;
|- &lt;br /&gt;
|  02&lt;br /&gt;
|  System Title (Core version 0x2)&lt;br /&gt;
|-&lt;br /&gt;
|  03&lt;br /&gt;
|  SAFE_MODE System Title (Core version 0x3)&lt;br /&gt;
|}&lt;br /&gt;
Normally on retail SAFE_MODE ARM11 [[NCCH#CXI|CXI]] titles can&#039;t be launched, since the [[Configuration_Memory|system]] core version doesn&#039;t match the CXI exheader core version.&lt;br /&gt;
&lt;br /&gt;
* Only most non-Normal Applications are known to utilise Title ID variation, this is explained in their respective sections on this page.&lt;br /&gt;
&lt;br /&gt;
* [[3DS Development Unit Software|Dev Menu]] installs CTR Applications with a TitleID variation of 0x02 to the CTR NAND.&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
&lt;br /&gt;
= Versions =&lt;br /&gt;
&lt;br /&gt;
v## = 0xHHHH = 0bBBBBBBBB...&lt;br /&gt;
&lt;br /&gt;
* The version major,minor and micro can be extracted from the version number by converting the 16 bit number to binary&lt;br /&gt;
* 6 bits : Major, this matches the NCCH remaster-version.&lt;br /&gt;
* 6 bits : Minor&lt;br /&gt;
* 4 bits : Micro (&#039;Build&#039; in some contexts)&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
= Data Structure =&lt;br /&gt;
&lt;br /&gt;
Titles are installed to either the NAND (System and Application) or to the SD Card (Application only), and their respective directory locations are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| [[Flash Filesystem|NAND]]&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| [[SD Filesystem|SD]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Title Data&lt;br /&gt;
| nand/title&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | sdmc/Nintendo 3DS/&amp;lt;ID0&amp;gt;/&amp;lt;ID1&amp;gt;/title&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Save Data&lt;br /&gt;
| nand/data/&amp;lt;ID0&amp;gt;/sysdata&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
ID0 is the first 0x10-bytes from a SHA256 [[nand/private/movable.sed|hash]] and ID1 is generated from the SD card CID.&lt;br /&gt;
&lt;br /&gt;
Title data stored on the SD Card is encrypted with the console-unique [[nand/private/movable.sed|keyslots]], whereas NAND title data is stored as cleartext.&lt;br /&gt;
&lt;br /&gt;
The base CTR for files stored under /title is likely based on the /title path, similar to extdata. This base CTR is unique per titleID and filename. The base CTR never changes after creation of each file.&lt;br /&gt;
&lt;br /&gt;
When a newer version of a title is installed, the new .app content, .tmd, and .cmd(and .ctx for NAND titles) are written to the /title directory, however the old files here are not yet deleted. Once installation of the title is [[AMNet:InstallTitlesFinish|finalized]], the info from [[Title_Database|import.db]] is moved to [[Title_Database|title.db]] so that the system uses the newer files instead, then the old /title files are deleted.&lt;br /&gt;
&lt;br /&gt;
The title data is contained in this directory structure (note that [[Title list#0004008C - Add-on Content (DLC)|DLC]] titles are stored in a different way):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| NAND&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| SD (non-DLC)&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| SD (DLC)&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Title Data:&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;Title ID High&amp;gt;&lt;br /&gt;
 └── &amp;lt;Title ID Low&amp;gt;&lt;br /&gt;
     ├── 00000000.ctx&lt;br /&gt;
     └── content&lt;br /&gt;
         ├── &amp;lt;ContentID&amp;gt;.app&lt;br /&gt;
         ├── &amp;lt;ContentID&amp;gt;.tmd&lt;br /&gt;
         └── cmd&lt;br /&gt;
             └── &amp;lt;ContentID&amp;gt;.cmd&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
 &amp;lt;Title ID High&amp;gt;&lt;br /&gt;
 └── &amp;lt;Title ID Low&amp;gt;&lt;br /&gt;
     ├── 00000000.ctx&lt;br /&gt;
     ├── content&lt;br /&gt;
     │   ├── &amp;lt;ContentID&amp;gt;.app&lt;br /&gt;
     │   ├── &amp;lt;ContentID&amp;gt;.tmd&lt;br /&gt;
     │   └── cmd&lt;br /&gt;
     │       └── &amp;lt;ContentID&amp;gt;.cmd&lt;br /&gt;
     └── data&lt;br /&gt;
         └── 00000001.sav&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
 0004008C&lt;br /&gt;
 └── &amp;lt;Title ID Low&amp;gt;&lt;br /&gt;
     ├── 00000000.ctx&lt;br /&gt;
     └── content&lt;br /&gt;
         ├── &amp;lt;ContentID&amp;gt;.tmd&lt;br /&gt;
         ├── 00000000&lt;br /&gt;
         │   └── &amp;lt;ContentID&amp;gt;.app&lt;br /&gt;
         └── cmd&lt;br /&gt;
             └── &amp;lt;ContentID&amp;gt;.cmd&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;|  Save Data:&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;SaveID0&amp;gt;&lt;br /&gt;
 └── &amp;lt;SaveID1&amp;gt;&lt;br /&gt;
     └── 00000001.sav&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.tmd&#039;&#039;&#039;&amp;quot; - (The Content ID is a u32, initially: &#039;&#039;&#039;00000000&#039;&#039;&#039; when the title is first installed. Changing by an increment of +&#039;&#039;&#039;0x1&#039;&#039;&#039; for each title update the 3DS installs) This is the [[Title metadata]] associated with the title. The decrypted TMD is available on Nintendo&#039;s CDN server at &amp;quot;http://nus.cdn.c.shop.nintendowifi.net/ccs/download/TitleIDhere/tmd.OptionallyTitleVersionHere&amp;quot;. Though CDN version of the title TMD has a certificate chain attached at the end of the TMD, so removing it will give you the 1:1 decrypted TMD. After installation the &amp;quot;&amp;lt;ContentID&amp;gt;.tmd&amp;quot; is redundant, because important title data is extracted and imported into the [[Title Database|title.db]] and &amp;quot;.cmd&amp;quot; files, but is however kept as a reference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.app&#039;&#039;&#039;&amp;quot; - (The Content ID is a u32, taken from the title&#039;s [[TMD]]) These files are [[NCCH]] files. There can be more than one NCCH in this directory, as seen with .[[CCI]] files, the game executable ([[CXI]]) can be accompanied with additional non-executable NCCH files ([[NCCH#CFA|CFA]]) such as the electronic manual and DLP Child containers. Determining the function of the NCCH, is done by finding the Content Index of the &amp;quot;XXXXXXXX.app&amp;quot; file in the title&#039;s TMD(see above for retrieving decrypted TMD), interpreting the Content Index is as follows (does not apply to DLC content):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index&lt;br /&gt;
!  Content Type&lt;br /&gt;
|-&lt;br /&gt;
|  0000&lt;br /&gt;
|  Main Executable (.[[NCCH#CXI|CXI]])(In the case of [[Title list|System Data Archives]], this is a [[NCCH#CFA|CFA]] file)&lt;br /&gt;
|-&lt;br /&gt;
|  0001&lt;br /&gt;
|  Home Menu Manual (.[[NCCH#CFA|CFA]])&lt;br /&gt;
|-&lt;br /&gt;
|  0002&lt;br /&gt;
|  DLP Child Container (.[[NCCH#CFA|CFA]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Unlike the TMD, a decrypted version of the NCCH files cannot be retrieved from Nintendo&#039;s CDN, the NCCH files do exist on Nintendo&#039;s CDN but are [[AES|encrypted]]. Decrypting CDN versions of content, requires the title&#039;s [[CommonETicket|ticket]], and the common key specified by an index in the  [[CommonETicket|ticket]]. Of course editing/deleting &amp;quot;.app&amp;quot; files will have an effect. Deleting/renaming the manual &amp;quot;.app&#039; will cause the manual not to load when clicked on. And deleting/renaming the executable &amp;quot;.app&amp;quot; will cause the application to not load, and the 3D Banner does not show(The banner is loaded each time from the game&#039;s executable NCCH when the home menu loads, it is not cached like the icon and name).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.cmd&#039;&#039;&#039;&amp;quot; - (The Content ID is a u32, initially: &#039;&#039;&#039;00000001&#039;&#039;&#039; when the title is first installed. Changing by an increment of +&#039;&#039;&#039;0x1&#039;&#039;&#039; for each time the 3DS adds/removes &#039;.app&#039; files) This file contains data taken from the title&#039;s [[TMD]]. See the below table for the format of the cleartext .cmd file. The [[Title Database|Title.db]] contains the Content ID for the &#039;.cmd&#039; file, but does not contain a hash of the &#039;.cmd&#039; file. This acts as part of the DRM for installed titles, along with the [[Title Database|title.db]].&lt;br /&gt;
&lt;br /&gt;
The below AES-CMACs(including the last 0x10-bytes of the header) are only used for SD titles, for NAND [[Title_list|download-play]] titles, and non-system DSiWare titles. For other titles, these MACs are set to all-zero.&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;
| .cmd ContentID, for the .cmd filename. This is the beginning of the header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Number of AES-CMACs and Content IDs in the first list (X). The method to determine this is explained below.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Number of Content IDs in the second list (Y)&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Unknown, usually (always?) 1.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| AES-CMAC over first 0x10&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4 * X&lt;br /&gt;
| List of installed Content IDs in order of Content Index, with missing contents replaced with 0xFFFFFFFF&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 + 0x4 * X&lt;br /&gt;
| 0x4 * Y&lt;br /&gt;
| List of installed Content IDs in order of ID name&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 + 0x4 * (X + Y)&lt;br /&gt;
| 0x10 * X&lt;br /&gt;
| AES-CMACs for each content in the first list, generated using the process below&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The number of AES-CMACs depends on the highest Content Index installed. For example, a title with 5 contents, but only 1 and 3 are installed, will still result in 3 AES-CMACs, with the 2nd one being unused.&lt;br /&gt;
&lt;br /&gt;
For SD contents, each AES-CMAC is generated by combining the NCCH header without the signature (0x100-0x1FF), the Content Index and Content ID at the end, both as u32. Then calculate the SHA256 of the data and generate the AES-CMAC using the [[AES Registers#Keyslots|SD/NAND AES-CMAC key]].&lt;br /&gt;
&lt;br /&gt;
For TWLNAND contents, the same process is used(even for SRL contents) with the keyslot for NAND dbs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;00000001.sav&amp;quot;&#039;&#039;&#039; - This is the title&#039;s [[Savegames|savegame]]. Renaming these savegames causes home-menu to hang while launching titles, modifying these saves results in the same corruption errors as other savegames.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;00000000.ctx&amp;quot;&#039;&#039;&#039; - This file is temporarily stored on SD card while a title is being downloaded from the eShop, it is deleted after the download is completed. This contains an AP0000000000000000 cert used to sign the data following the cert, this cert is signed by the [[CTCert]].&lt;br /&gt;
The unknown signed data is likely an ECDSA public key. There&#039;s .ctx files stored under the /title directory for NAND CTR/TWL titles, however those use the [[CTXT]] format which is completely different from this SD .ctx format. These .ctx files for NAND/SD titles only exist for titles where installation was not yet finalized(like when a system update install was not yet finalized).&lt;br /&gt;
&lt;br /&gt;
=== DLC Titles ===&lt;br /&gt;
&lt;br /&gt;
DLC titles have a different directory structure to most installed titles. This is because all DLC content for a given title is installed under the same Title ID, but DLC add-ons are usually separate purchases, hence the structure altered so any combination of DLC content can be installed. DLC titles can receive &#039;updates&#039;, this is usually in the form of more DLC content and/or DLC bug fixes. Individual DLC content can only be managed from with-in the application using the DLC.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;00000000&amp;quot;&#039;&#039;&#039; - This extra directory only found in DLC titles, contains the DLC [[NCCH]] content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.tmd&#039;&#039;&#039;&amp;quot; - This is not modified by the 3DS, and contains the details for all DLC content(installed or not).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.cmd&#039;&#039;&#039;&amp;quot; - This contains entries for all &#039;&#039;&#039;installed&#039;&#039;&#039; DLC [[NCCH]] content, and is updated (&amp;lt;ContentID&amp;gt; will change) every time DLC content is installed/removed.&lt;br /&gt;
&lt;br /&gt;
=Installing other-model system-titles=&lt;br /&gt;
When finalizing title-install of already downloaded Old3DS system-titles to a New3DS NAND image with New3DS NATIVE_FIRM, the end result is that the New3DS version (TID-low bitmask 0x20000000) of those titles gets deleted.&lt;br /&gt;
&lt;br /&gt;
It&#039;s unknown where this behaviour is implemented (might be NIM, AM, or AMXPXI).&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Titles&amp;diff=20996</id>
		<title>Titles</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Titles&amp;diff=20996"/>
		<updated>2019-06-07T04:35:31Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* Data Structure */ don&amp;#039;t repeatedly mention that files are encrypted, if it&amp;#039;s only the SD layer encryption&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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].&lt;br /&gt;
&lt;br /&gt;
For a list of 3DS titles see the [[Title list]].                           &lt;br /&gt;
                     &lt;br /&gt;
= Title IDs =&lt;br /&gt;
&lt;br /&gt;
The organization of Title IDs has not been documented fully yet. Region info isn&#039;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.&lt;br /&gt;
&lt;br /&gt;
Note: The terms &#039;Title ID&#039;, &#039;Partition ID&#039; and &#039;Media ID&#039; are interchangeable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TitleID Structure&#039;&#039;&#039;: 0xCCCCABCDLLLLLLRR&lt;br /&gt;
&lt;br /&gt;
* CCCC defines the console &#039;&#039;&#039;Platform&#039;&#039;&#039; (5=WiiU, 4=3DS, 3=DSi, 1=[http://wiibrew.org/wiki/Title_database Wii])&lt;br /&gt;
* ABCD defines the &#039;&#039;&#039;Content Category&#039;&#039;&#039; of the title, Demo, DLPChild, etc.&lt;br /&gt;
* LLLLLL For CTR titles, this is the title&#039;s &#039;&#039;&#039;Unique ID&#039;&#039;&#039;. 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 &#039;ABCD&#039;. LLLL is the TWL title&#039;s &#039;Unique ID&#039;. There are restrictions on the Unique ID, see below for more info.&lt;br /&gt;
* RR This is the Title ID &#039;&#039;&#039;Variation&#039;&#039;&#039;, and has various uses.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Content Categories&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
This u16 is a collection bit mask flag. Each Category is a group of one or more bit masks.&lt;br /&gt;
&lt;br /&gt;
Specific Bitmask Flags:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Category&lt;br /&gt;
!  Bitmask&lt;br /&gt;
|-&lt;br /&gt;
|  Normal&lt;br /&gt;
|  0x0&lt;br /&gt;
|-&lt;br /&gt;
|  DlpChild&lt;br /&gt;
|  0x1&lt;br /&gt;
|-&lt;br /&gt;
|  Demo&lt;br /&gt;
|  0x2&lt;br /&gt;
|-&lt;br /&gt;
|  Contents&lt;br /&gt;
|  0x3&lt;br /&gt;
|-&lt;br /&gt;
|  AddOnContents&lt;br /&gt;
|  0x4&lt;br /&gt;
|-&lt;br /&gt;
|  Patch&lt;br /&gt;
|  0x6&lt;br /&gt;
|-&lt;br /&gt;
|  CannotExecution&lt;br /&gt;
|  0x8&lt;br /&gt;
|-&lt;br /&gt;
|  System&lt;br /&gt;
|  0x10&lt;br /&gt;
|-&lt;br /&gt;
|  RequireBatchUpdate&lt;br /&gt;
|  0x20&lt;br /&gt;
|-&lt;br /&gt;
|  NotRequireUserApproval&lt;br /&gt;
|  0x40&lt;br /&gt;
|-&lt;br /&gt;
|  NotRequireRightForMount&lt;br /&gt;
|  0x80&lt;br /&gt;
|-&lt;br /&gt;
|  CanSkipConvertJumpId&lt;br /&gt;
|  0x100&lt;br /&gt;
|-&lt;br /&gt;
|  TWL&lt;br /&gt;
|  0x8000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
* System titles (TWL and CTR) are eligible to be updated during a System Update.&lt;br /&gt;
&lt;br /&gt;
* Bit Mask 0x4000 appears to be reserved, as it renders the &#039;&#039;TWL&#039;&#039; and &#039;&#039;System&#039;&#039; bit masks useless.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unique ID Restrictions&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
For the CTR titles, there appears to be is a correlation between Unique IDs (UID) and 3DS &#039;title types&#039;. 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. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TITLE TYPE&lt;br /&gt;
!  UNIQUE ID RANGE&lt;br /&gt;
|-&lt;br /&gt;
|  System&lt;br /&gt;
|  0x0 - 0x2FF&lt;br /&gt;
|- &lt;br /&gt;
|  Application&lt;br /&gt;
|  0x300 - 0xF7FFF&lt;br /&gt;
|- &lt;br /&gt;
|  Evaluation&lt;br /&gt;
|  0xF8000 - 0xFEFFF (?)&lt;br /&gt;
|- &lt;br /&gt;
|  Prototype*&lt;br /&gt;
|  0xFF000 - 0xFF3FF&lt;br /&gt;
|- &lt;br /&gt;
|  Developer&lt;br /&gt;
|  0xFF400 - 0xFF7FF (?)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;On the home menu, titles with UIDs within the &#039;Prototype&#039; range, appear on the home menu after install without the gift fanfare.&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TitleID Variation&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
This u8 allows enumeration of titles from the same category and unique ID. Common uses are explained below:&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  RR&lt;br /&gt;
!  MEANING&lt;br /&gt;
|- &lt;br /&gt;
|  02&lt;br /&gt;
|  System Title (Core version 0x2)&lt;br /&gt;
|-&lt;br /&gt;
|  03&lt;br /&gt;
|  SAFE_MODE System Title (Core version 0x3)&lt;br /&gt;
|}&lt;br /&gt;
Normally on retail SAFE_MODE ARM11 [[NCCH#CXI|CXI]] titles can&#039;t be launched, since the [[Configuration_Memory|system]] core version doesn&#039;t match the CXI exheader core version.&lt;br /&gt;
&lt;br /&gt;
* Only most non-Normal Applications are known to utilise Title ID variation, this is explained in their respective sections on this page.&lt;br /&gt;
&lt;br /&gt;
* [[3DS Development Unit Software|Dev Menu]] installs CTR Applications with a TitleID variation of 0x02 to the CTR NAND.&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
&lt;br /&gt;
= Versions =&lt;br /&gt;
&lt;br /&gt;
v## = 0xHHHH = 0bBBBBBBBB...&lt;br /&gt;
&lt;br /&gt;
* The version major,minor and micro can be extracted from the version number by converting the 16 bit number to binary&lt;br /&gt;
* 6 bits : Major, this matches the NCCH remaster-version.&lt;br /&gt;
* 6 bits : Minor&lt;br /&gt;
* 4 bits : Micro (&#039;Build&#039; in some contexts)&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
= Data Structure =&lt;br /&gt;
&lt;br /&gt;
Titles are installed to either the NAND (System and Application) or to the SD Card (Application only), and their respective directory locations are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| [[Flash Filesystem|NAND]]&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| [[SD Filesystem|SD]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Title Data&lt;br /&gt;
| nand/title&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | sdmc/Nintendo 3DS/&amp;lt;ID0&amp;gt;/&amp;lt;ID1&amp;gt;/title&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Save Data&lt;br /&gt;
| nand/data/&amp;lt;ID0&amp;gt;/sysdata&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
ID0 is the first 0x10-bytes from a SHA256 [[nand/private/movable.sed|hash]] and ID1 is generated from the SD card CID.&lt;br /&gt;
&lt;br /&gt;
Title data stored on the SD Card is encrypted with the console-unique [[nand/private/movable.sed|keyslots]], whereas NAND title data is stored as cleartext.&lt;br /&gt;
&lt;br /&gt;
The base CTR for files stored under /title is likely based on the /title path, similar to extdata. This base CTR is unique per titleID and filename. The base CTR never changes after creation of each file.&lt;br /&gt;
&lt;br /&gt;
When a newer version of a title is installed, the new .app content, .tmd, and .cmd(and .ctx for NAND titles) are written to the /title directory, however the old files here are not yet deleted. Once installation of the title is [[AMNet:InstallTitlesFinish|finalized]], the info from [[Title_Database|import.db]] is moved to [[Title_Database|title.db]] so that the system uses the newer files instead, then the old /title files are deleted.&lt;br /&gt;
&lt;br /&gt;
The title data is contained in this directory structure (note that [[Title list#0004008C - Add-on Content (DLC)|DLC]] titles are stored in a different way):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| NAND&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| SD (non-DLC)&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| SD (DLC)&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Title Data:&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;Title ID High&amp;gt;&lt;br /&gt;
 └── &amp;lt;Title ID Low&amp;gt;&lt;br /&gt;
     ├── 00000000.ctx&lt;br /&gt;
     └── content&lt;br /&gt;
         ├── &amp;lt;ContentID&amp;gt;.app&lt;br /&gt;
         ├── &amp;lt;ContentID&amp;gt;.tmd&lt;br /&gt;
         └── cmd&lt;br /&gt;
             └── &amp;lt;ContentID&amp;gt;.cmd&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
 &amp;lt;Title ID High&amp;gt;&lt;br /&gt;
 └── &amp;lt;Title ID Low&amp;gt;&lt;br /&gt;
     ├── 00000000.ctx&lt;br /&gt;
     ├── content&lt;br /&gt;
     │   ├── &amp;lt;ContentID&amp;gt;.app&lt;br /&gt;
     │   ├── &amp;lt;ContentID&amp;gt;.tmd&lt;br /&gt;
     │   └── cmd&lt;br /&gt;
     │       └── &amp;lt;ContentID&amp;gt;.cmd&lt;br /&gt;
     └── data&lt;br /&gt;
         └── 00000001.sav&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
 0004008C&lt;br /&gt;
 └── &amp;lt;Title ID Low&amp;gt;&lt;br /&gt;
     ├── 00000000.ctx&lt;br /&gt;
     └── content&lt;br /&gt;
         ├── &amp;lt;ContentID&amp;gt;.tmd&lt;br /&gt;
         ├── 00000000&lt;br /&gt;
         │   └── &amp;lt;ContentID&amp;gt;.app&lt;br /&gt;
         └── cmd&lt;br /&gt;
             └── &amp;lt;ContentID&amp;gt;.cmd&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;|  Save Data:&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;SaveID0&amp;gt;&lt;br /&gt;
 └── &amp;lt;SaveID1&amp;gt;&lt;br /&gt;
     └── 00000001.sav&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.tmd&#039;&#039;&#039;&amp;quot; - (The Content ID is a u32, initially: &#039;&#039;&#039;00000000&#039;&#039;&#039; when the title is first installed. Changing by an increment of +&#039;&#039;&#039;0x1&#039;&#039;&#039; for each title update the 3DS installs) This is the [[Title metadata]] associated with the title. The decrypted TMD is available on Nintendo&#039;s CDN server at &amp;quot;http://nus.cdn.c.shop.nintendowifi.net/ccs/download/TitleIDhere/tmd.OptionallyTitleVersionHere&amp;quot;. Though CDN version of the title TMD has a certificate chain attached at the end of the TMD, so removing it will give you the 1:1 decrypted TMD. After installation the &amp;quot;&amp;lt;ContentID&amp;gt;.tmd&amp;quot; is redundant, because important title data is extracted and imported into the [[Title Database|title.db]] and &amp;quot;.cmd&amp;quot; files, but is however kept as a reference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.app&#039;&#039;&#039;&amp;quot; - (The Content ID is a u32, taken from the title&#039;s [[TMD]]) These files are [[NCCH]] files. There can be more than one NCCH in this directory, as seen with .[[CCI]] files, the game executable ([[CXI]]) can be accompanied with additional non-executable NCCH files ([[NCCH#CFA|CFA]]) such as the electronic manual and DLP Child containers. Determining the function of the NCCH, is done by finding the Content Index of the &amp;quot;XXXXXXXX.app&amp;quot; file in the title&#039;s TMD(see above for retrieving decrypted TMD), interpreting the Content Index is as follows (does not apply to DLC content):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index&lt;br /&gt;
!  Content Type&lt;br /&gt;
|-&lt;br /&gt;
|  0000&lt;br /&gt;
|  Main Executable (.[[NCCH#CXI|CXI]])(In the case of [[Title list|System Data Archives]], this is a [[NCCH#CFA|CFA]] file)&lt;br /&gt;
|-&lt;br /&gt;
|  0001&lt;br /&gt;
|  Home Menu Manual (.[[NCCH#CFA|CFA]])&lt;br /&gt;
|-&lt;br /&gt;
|  0002&lt;br /&gt;
|  DLP Child Container (.[[NCCH#CFA|CFA]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Unlike the TMD, a decrypted version of the NCCH files cannot be retrieved from Nintendo&#039;s CDN, the NCCH files do exist on Nintendo&#039;s CDN but are [[AES|encrypted]]. Decrypting CDN versions of content, requires the title&#039;s [[CommonETicket|ticket]], and the common key specified by an index in the  [[CommonETicket|ticket]]. Of course editing/deleting &amp;quot;.app&amp;quot; files will have an effect. Deleting/renaming the manual &amp;quot;.app&#039; will cause the manual not to load when clicked on. And deleting/renaming the executable &amp;quot;.app&amp;quot; will cause the application to not load, and the 3D Banner does not show(The banner is loaded each time from the game&#039;s executable NCCH when the home menu loads, it is not cached like the icon and name).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.cmd&#039;&#039;&#039;&amp;quot; - (The Content ID is a u32, initially: &#039;&#039;&#039;00000001&#039;&#039;&#039; when the title is first installed. Changing by an increment of +&#039;&#039;&#039;0x1&#039;&#039;&#039; for each time the 3DS adds/removes &#039;.app&#039; files) This file contains data taken from the title&#039;s [[TMD]]. See the below table for the format of the cleartext .cmd file. The [[Title Database|Title.db]] contains the Content ID for the &#039;.cmd&#039; file, but does not contain a hash of the &#039;.cmd&#039; file. This acts as part of the DRM for installed titles, along with the [[Title Database|title.db]].&lt;br /&gt;
&lt;br /&gt;
The below AES-CMACs(including the last 0x10-bytes of the header) are only used for SD titles, for NAND [[Title_list|download-play]] titles, and non-system DSiWare titles. For other titles, these MACs are set to all-zero.&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;
| .cmd ContentID, for the .cmd filename. This is the beginning of the header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Number of AES-CMACs and Content IDs in the first list. The method to determine this is explained below.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Number of Content IDs in the second list&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Unknown, usually (always?) 1.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| AES-CMAC over first 0x10&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4 * (No. of entries)&lt;br /&gt;
| List of installed Content IDs in order of Content Index, with missing contents replaced with 0xFFFFFFFF&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 + 0x4 * (No. of entries)&lt;br /&gt;
| 0x4 * (No. of entries)&lt;br /&gt;
| List of installed Content IDs in order of ID name&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 + 0x8 * (No. of entries)&lt;br /&gt;
| 0x10 * (No. of entries)&lt;br /&gt;
| AES-CMACs for each content in the first list, generated using the process below&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The number of AES-CMACs depends on the highest Content Index installed. For example, a title with 5 contents, but only 1 and 3 are installed, will still result in 3 AES-CMACs, with the 2nd one being unused.&lt;br /&gt;
&lt;br /&gt;
For SD contents, each AES-CMAC is generated by combining the NCCH header without the signature (0x100-0x1FF), the Content Index and Content ID at the end, both as u32. Then calculate the SHA256 of the data and generate the AES-CMAC using the [[AES Registers#Keyslots|SD/NAND AES-CMAC key]].&lt;br /&gt;
&lt;br /&gt;
For TWLNAND contents, the same process is used(even for SRL contents) with the keyslot for NAND dbs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;00000001.sav&amp;quot;&#039;&#039;&#039; - This is the title&#039;s [[Savegames|savegame]]. Renaming these savegames causes home-menu to hang while launching titles, modifying these saves results in the same corruption errors as other savegames.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;00000000.ctx&amp;quot;&#039;&#039;&#039; - This file is temporarily stored on SD card while a title is being downloaded from the eShop, it is deleted after the download is completed. This contains an AP0000000000000000 cert used to sign the data following the cert, this cert is signed by the [[CTCert]].&lt;br /&gt;
The unknown signed data is likely an ECDSA public key. There&#039;s .ctx files stored under the /title directory for NAND CTR/TWL titles, however those use the [[CTXT]] format which is completely different from this SD .ctx format. These .ctx files for NAND/SD titles only exist for titles where installation was not yet finalized(like when a system update install was not yet finalized).&lt;br /&gt;
&lt;br /&gt;
=== DLC Titles ===&lt;br /&gt;
&lt;br /&gt;
DLC titles have a different directory structure to most installed titles. This is because all DLC content for a given title is installed under the same Title ID, but DLC add-ons are usually separate purchases, hence the structure altered so any combination of DLC content can be installed. DLC titles can receive &#039;updates&#039;, this is usually in the form of more DLC content and/or DLC bug fixes. Individual DLC content can only be managed from with-in the application using the DLC.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;00000000&amp;quot;&#039;&#039;&#039; - This extra directory only found in DLC titles, contains the DLC [[NCCH]] content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.tmd&#039;&#039;&#039;&amp;quot; - This is not modified by the 3DS, and contains the details for all DLC content(installed or not).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.cmd&#039;&#039;&#039;&amp;quot; - This contains entries for all &#039;&#039;&#039;installed&#039;&#039;&#039; DLC [[NCCH]] content, and is updated (&amp;lt;ContentID&amp;gt; will change) every time DLC content is installed/removed.&lt;br /&gt;
&lt;br /&gt;
=Installing other-model system-titles=&lt;br /&gt;
When finalizing title-install of already downloaded Old3DS system-titles to a New3DS NAND image with New3DS NATIVE_FIRM, the end result is that the New3DS version (TID-low bitmask 0x20000000) of those titles gets deleted.&lt;br /&gt;
&lt;br /&gt;
It&#039;s unknown where this behaviour is implemented (might be NIM, AM, or AMXPXI).&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Titles&amp;diff=20995</id>
		<title>Titles</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Titles&amp;diff=20995"/>
		<updated>2019-06-07T02:16:32Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* Data Structure */ cmacs for twlnand have been figured out&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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].&lt;br /&gt;
&lt;br /&gt;
For a list of 3DS titles see the [[Title list]].                           &lt;br /&gt;
                     &lt;br /&gt;
= Title IDs =&lt;br /&gt;
&lt;br /&gt;
The organization of Title IDs has not been documented fully yet. Region info isn&#039;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.&lt;br /&gt;
&lt;br /&gt;
Note: The terms &#039;Title ID&#039;, &#039;Partition ID&#039; and &#039;Media ID&#039; are interchangeable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TitleID Structure&#039;&#039;&#039;: 0xCCCCABCDLLLLLLRR&lt;br /&gt;
&lt;br /&gt;
* CCCC defines the console &#039;&#039;&#039;Platform&#039;&#039;&#039; (5=WiiU, 4=3DS, 3=DSi, 1=[http://wiibrew.org/wiki/Title_database Wii])&lt;br /&gt;
* ABCD defines the &#039;&#039;&#039;Content Category&#039;&#039;&#039; of the title, Demo, DLPChild, etc.&lt;br /&gt;
* LLLLLL For CTR titles, this is the title&#039;s &#039;&#039;&#039;Unique ID&#039;&#039;&#039;. 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 &#039;ABCD&#039;. LLLL is the TWL title&#039;s &#039;Unique ID&#039;. There are restrictions on the Unique ID, see below for more info.&lt;br /&gt;
* RR This is the Title ID &#039;&#039;&#039;Variation&#039;&#039;&#039;, and has various uses.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Content Categories&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
This u16 is a collection bit mask flag. Each Category is a group of one or more bit masks.&lt;br /&gt;
&lt;br /&gt;
Specific Bitmask Flags:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Category&lt;br /&gt;
!  Bitmask&lt;br /&gt;
|-&lt;br /&gt;
|  Normal&lt;br /&gt;
|  0x0&lt;br /&gt;
|-&lt;br /&gt;
|  DlpChild&lt;br /&gt;
|  0x1&lt;br /&gt;
|-&lt;br /&gt;
|  Demo&lt;br /&gt;
|  0x2&lt;br /&gt;
|-&lt;br /&gt;
|  Contents&lt;br /&gt;
|  0x3&lt;br /&gt;
|-&lt;br /&gt;
|  AddOnContents&lt;br /&gt;
|  0x4&lt;br /&gt;
|-&lt;br /&gt;
|  Patch&lt;br /&gt;
|  0x6&lt;br /&gt;
|-&lt;br /&gt;
|  CannotExecution&lt;br /&gt;
|  0x8&lt;br /&gt;
|-&lt;br /&gt;
|  System&lt;br /&gt;
|  0x10&lt;br /&gt;
|-&lt;br /&gt;
|  RequireBatchUpdate&lt;br /&gt;
|  0x20&lt;br /&gt;
|-&lt;br /&gt;
|  NotRequireUserApproval&lt;br /&gt;
|  0x40&lt;br /&gt;
|-&lt;br /&gt;
|  NotRequireRightForMount&lt;br /&gt;
|  0x80&lt;br /&gt;
|-&lt;br /&gt;
|  CanSkipConvertJumpId&lt;br /&gt;
|  0x100&lt;br /&gt;
|-&lt;br /&gt;
|  TWL&lt;br /&gt;
|  0x8000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
* System titles (TWL and CTR) are eligible to be updated during a System Update.&lt;br /&gt;
&lt;br /&gt;
* Bit Mask 0x4000 appears to be reserved, as it renders the &#039;&#039;TWL&#039;&#039; and &#039;&#039;System&#039;&#039; bit masks useless.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unique ID Restrictions&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
For the CTR titles, there appears to be is a correlation between Unique IDs (UID) and 3DS &#039;title types&#039;. 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. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TITLE TYPE&lt;br /&gt;
!  UNIQUE ID RANGE&lt;br /&gt;
|-&lt;br /&gt;
|  System&lt;br /&gt;
|  0x0 - 0x2FF&lt;br /&gt;
|- &lt;br /&gt;
|  Application&lt;br /&gt;
|  0x300 - 0xF7FFF&lt;br /&gt;
|- &lt;br /&gt;
|  Evaluation&lt;br /&gt;
|  0xF8000 - 0xFEFFF (?)&lt;br /&gt;
|- &lt;br /&gt;
|  Prototype*&lt;br /&gt;
|  0xFF000 - 0xFF3FF&lt;br /&gt;
|- &lt;br /&gt;
|  Developer&lt;br /&gt;
|  0xFF400 - 0xFF7FF (?)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;On the home menu, titles with UIDs within the &#039;Prototype&#039; range, appear on the home menu after install without the gift fanfare.&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TitleID Variation&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
This u8 allows enumeration of titles from the same category and unique ID. Common uses are explained below:&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  RR&lt;br /&gt;
!  MEANING&lt;br /&gt;
|- &lt;br /&gt;
|  02&lt;br /&gt;
|  System Title (Core version 0x2)&lt;br /&gt;
|-&lt;br /&gt;
|  03&lt;br /&gt;
|  SAFE_MODE System Title (Core version 0x3)&lt;br /&gt;
|}&lt;br /&gt;
Normally on retail SAFE_MODE ARM11 [[NCCH#CXI|CXI]] titles can&#039;t be launched, since the [[Configuration_Memory|system]] core version doesn&#039;t match the CXI exheader core version.&lt;br /&gt;
&lt;br /&gt;
* Only most non-Normal Applications are known to utilise Title ID variation, this is explained in their respective sections on this page.&lt;br /&gt;
&lt;br /&gt;
* [[3DS Development Unit Software|Dev Menu]] installs CTR Applications with a TitleID variation of 0x02 to the CTR NAND.&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
&lt;br /&gt;
= Versions =&lt;br /&gt;
&lt;br /&gt;
v## = 0xHHHH = 0bBBBBBBBB...&lt;br /&gt;
&lt;br /&gt;
* The version major,minor and micro can be extracted from the version number by converting the 16 bit number to binary&lt;br /&gt;
* 6 bits : Major, this matches the NCCH remaster-version.&lt;br /&gt;
* 6 bits : Minor&lt;br /&gt;
* 4 bits : Micro (&#039;Build&#039; in some contexts)&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
= Data Structure =&lt;br /&gt;
&lt;br /&gt;
Titles are installed to either the NAND (System and Application) or to the SD Card (Application only), and their respective directory locations are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| [[Flash Filesystem|NAND]]&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| [[SD Filesystem|SD]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Title Data&lt;br /&gt;
| nand/title&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | sdmc/Nintendo 3DS/&amp;lt;ID0&amp;gt;/&amp;lt;ID1&amp;gt;/title&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Save Data&lt;br /&gt;
| nand/data/&amp;lt;ID0&amp;gt;/sysdata&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
ID0 is the first 0x10-bytes from a SHA256 [[nand/private/movable.sed|hash]] and ID1 is generated from the SD card CID.&lt;br /&gt;
&lt;br /&gt;
Title data stored on the SD Card is encrypted with the console-unique [[nand/private/movable.sed|keyslots]], whereas NAND title data is stored as cleartext.&lt;br /&gt;
&lt;br /&gt;
The base CTR for files stored under /title is likely based on the /title path, similar to extdata. This base CTR is unique per titleID and filename. The base CTR never changes after creation of each file.&lt;br /&gt;
&lt;br /&gt;
When a newer version of a title is installed, the new .app content, .tmd, and .cmd(and .ctx for NAND titles) are written to the /title directory, however the old files here are not yet deleted. Once installation of the title is [[AMNet:InstallTitlesFinish|finalized]], the info from [[Title_Database|import.db]] is moved to [[Title_Database|title.db]] so that the system uses the newer files instead, then the old /title files are deleted.&lt;br /&gt;
&lt;br /&gt;
The title data is contained in this directory structure (note that [[Title list#0004008C - Add-on Content (DLC)|DLC]] titles are stored in a different way):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| NAND&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| SD (non-DLC)&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| SD (DLC)&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Title Data:&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;Title ID High&amp;gt;&lt;br /&gt;
 └── &amp;lt;Title ID Low&amp;gt;&lt;br /&gt;
     ├── 00000000.ctx&lt;br /&gt;
     └── content&lt;br /&gt;
         ├── &amp;lt;ContentID&amp;gt;.app&lt;br /&gt;
         ├── &amp;lt;ContentID&amp;gt;.tmd&lt;br /&gt;
         └── cmd&lt;br /&gt;
             └── &amp;lt;ContentID&amp;gt;.cmd&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
 &amp;lt;Title ID High&amp;gt;&lt;br /&gt;
 └── &amp;lt;Title ID Low&amp;gt;&lt;br /&gt;
     ├── 00000000.ctx&lt;br /&gt;
     ├── content&lt;br /&gt;
     │   ├── &amp;lt;ContentID&amp;gt;.app&lt;br /&gt;
     │   ├── &amp;lt;ContentID&amp;gt;.tmd&lt;br /&gt;
     │   └── cmd&lt;br /&gt;
     │       └── &amp;lt;ContentID&amp;gt;.cmd&lt;br /&gt;
     └── data&lt;br /&gt;
         └── 00000001.sav&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
 0004008C&lt;br /&gt;
 └── &amp;lt;Title ID Low&amp;gt;&lt;br /&gt;
     ├── 00000000.ctx&lt;br /&gt;
     └── content&lt;br /&gt;
         ├── &amp;lt;ContentID&amp;gt;.tmd&lt;br /&gt;
         ├── 00000000&lt;br /&gt;
         │   └── &amp;lt;ContentID&amp;gt;.app&lt;br /&gt;
         └── cmd&lt;br /&gt;
             └── &amp;lt;ContentID&amp;gt;.cmd&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;|  Save Data:&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;SaveID0&amp;gt;&lt;br /&gt;
 └── &amp;lt;SaveID1&amp;gt;&lt;br /&gt;
     └── 00000001.sav&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.tmd&#039;&#039;&#039;&amp;quot; - (The Content ID is a u32, initially: &#039;&#039;&#039;00000000&#039;&#039;&#039; when the title is first installed. Changing by an increment of +&#039;&#039;&#039;0x1&#039;&#039;&#039; for each title update the 3DS installs) This is the [[Title metadata]] associated with the title, it is encrypted with a console-unique [[AES|keyslot]]. The decrypted TMD is available on Nintendo&#039;s CDN server at &amp;quot;http://nus.cdn.c.shop.nintendowifi.net/ccs/download/TitleIDhere/tmd.OptionallyTitleVersionHere&amp;quot;. Though CDN version of the title TMD has a certificate chain attached at the end of the TMD, so removing it will give you the 1:1 decrypted TMD. After installation the &amp;quot;&amp;lt;ContentID&amp;gt;.tmd&amp;quot; is redundant, because important title data is extracted and imported into the [[Title Database|title.db]] and &amp;quot;.cmd&amp;quot; files, but is however kept as a reference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.app&#039;&#039;&#039;&amp;quot; - (The Content ID is a u32, taken from the title&#039;s [[TMD]]) These files are [[NCCH]] files, where the entire file is encrypted with a console-unique [[AES|keyslot]](this is on top of the encryption of the NCCH contents). There can be more than one NCCH in this directory, as seen with .[[CCI]] files, the game executable ([[CXI]]) can be accompanied with additional non-executable NCCH files ([[NCCH#CFA|CFA]]) such as the electronic manual and DLP Child containers. Determining the function of the encrypted NCCH, is done by finding the Content Index of the &amp;quot;XXXXXXXX.app&amp;quot; file in the title&#039;s TMD(see above for retrieving decrypted TMD), interpreting the Content Index is as follows (does not apply to DLC content):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index&lt;br /&gt;
!  Content Type&lt;br /&gt;
|-&lt;br /&gt;
|  0000&lt;br /&gt;
|  Main Executable (.[[NCCH#CXI|CXI]])(In the case of [[Title list|System Data Archives]], this is a [[NCCH#CFA|CFA]] file)&lt;br /&gt;
|-&lt;br /&gt;
|  0001&lt;br /&gt;
|  Home Menu Manual (.[[NCCH#CFA|CFA]])&lt;br /&gt;
|-&lt;br /&gt;
|  0002&lt;br /&gt;
|  DLP Child Container (.[[NCCH#CFA|CFA]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Unlike the TMD, a decrypted version of the NCCH files cannot be retrieved from Nintendo&#039;s CDN, the NCCH files do exist on Nintendo&#039;s CDN but are [[AES|encrypted]]. Decrypting CDN versions of content, requires the title&#039;s [[CommonETicket|ticket]], and the common key specified by an index in the  [[CommonETicket|ticket]]. Of course editing/deleting &amp;quot;.app&amp;quot; files will have an effect. Deleting/renaming the manual &amp;quot;.app&#039; will cause the manual not to load when clicked on. And deleting/renaming the executable &amp;quot;.app&amp;quot; will cause the application to not load, and the 3D Banner does not show(The banner is loaded each time from the game&#039;s executable NCCH when the home menu loads, it is not cached like the icon and name).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.cmd&#039;&#039;&#039;&amp;quot; - (The Content ID is a u32, initially: &#039;&#039;&#039;00000001&#039;&#039;&#039; when the title is first installed. Changing by an increment of +&#039;&#039;&#039;0x1&#039;&#039;&#039; for each time the 3DS adds/removes &#039;.app&#039; files) This file contains data taken from the title&#039;s [[TMD]]. See the below table for the format of the cleartext .cmd file. The [[Title Database|Title.db]] contains the Content ID for the &#039;.cmd&#039; file, but does not contain a hash of the &#039;.cmd&#039; file. In addition it is also encrypted with a console-unique [[AES|keyslot]]. This acts as part of the DRM for installed titles, along with the [[Title Database|title.db]].&lt;br /&gt;
&lt;br /&gt;
The below AES-CMACs(including the last 0x10-bytes of the header) are only used for SD titles, for NAND [[Title_list|download-play]] titles, and non-system DSiWare titles. For other titles, these MACs are set to all-zero.&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;
| .cmd ContentID, for the .cmd filename. This is the beginning of the header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Number of AES-CMACs and Content IDs in the first list. The method to determine this is explained below.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Number of Content IDs in the second list&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Unknown, usually (always?) 1.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| AES-CMAC over first 0x10&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4 * (No. of entries)&lt;br /&gt;
| List of installed Content IDs in order of Content Index, with missing contents replaced with 0xFFFFFFFF&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 + 0x4 * (No. of entries)&lt;br /&gt;
| 0x4 * (No. of entries)&lt;br /&gt;
| List of installed Content IDs in order of ID name&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 + 0x8 * (No. of entries)&lt;br /&gt;
| 0x10 * (No. of entries)&lt;br /&gt;
| AES-CMACs for each content in the first list, generated using the process below&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The number of AES-CMACs depends on the highest Content Index installed. For example, a title with 5 contents, but only 1 and 3 are installed, will still result in 3 AES-CMACs, with the 2nd one being unused.&lt;br /&gt;
&lt;br /&gt;
For SD contents, each AES-CMAC is generated by combining the NCCH header without the signature (0x100-0x1FF), the Content Index and Content ID at the end, both as u32. Then calculate the SHA256 of the data and generate the AES-CMAC using the [[AES Registers#Keyslots|SD/NAND AES-CMAC key]].&lt;br /&gt;
&lt;br /&gt;
For TWLNAND contents, the same process is used(even for SRL contents) with the keyslot for NAND dbs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;00000001.sav&amp;quot;&#039;&#039;&#039; - This is the title&#039;s encrypted [[Savegames|savegame]]. Renaming these savegames causes home-menu to hang while launching titles, modifying these saves results in the same corruption errors as other savegames.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;00000000.ctx&amp;quot;&#039;&#039;&#039; - This file encrypted with a console-unique [[AES|keyslot]] is temporarily stored on SD card while a title is being downloaded from the eShop, it is deleted after the download is completed. This contains an AP0000000000000000 cert used to sign the data following the cert, this cert is signed by the [[CTCert]].&lt;br /&gt;
The unknown signed data is likely an ECDSA public key. There&#039;s .ctx files stored under the /title directory for NAND CTR/TWL titles, however those use the [[CTXT]] format which is completely different from this SD .ctx format. These .ctx files for NAND/SD titles only exist for titles where installation was not yet finalized(like when a system update install was not yet finalized).&lt;br /&gt;
&lt;br /&gt;
=== DLC Titles ===&lt;br /&gt;
&lt;br /&gt;
DLC titles have a different directory structure to most installed titles. This is because all DLC content for a given title is installed under the same Title ID, but DLC add-ons are usually separate purchases, hence the structure altered so any combination of DLC content can be installed. DLC titles can receive &#039;updates&#039;, this is usually in the form of more DLC content and/or DLC bug fixes. Individual DLC content can only be managed from with-in the application using the DLC.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;00000000&amp;quot;&#039;&#039;&#039; - This extra directory only found in DLC titles, contains the DLC [[NCCH]] content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.tmd&#039;&#039;&#039;&amp;quot; - This is not modified by the 3DS, and contains the details for all DLC content(installed or not).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.cmd&#039;&#039;&#039;&amp;quot; - This contains entries for all &#039;&#039;&#039;installed&#039;&#039;&#039; DLC [[NCCH]] content, and is updated (&amp;lt;ContentID&amp;gt; will change) every time DLC content is installed/removed.&lt;br /&gt;
&lt;br /&gt;
=Installing other-model system-titles=&lt;br /&gt;
When finalizing title-install of already downloaded Old3DS system-titles to a New3DS NAND image with New3DS NATIVE_FIRM, the end result is that the New3DS version (TID-low bitmask 0x20000000) of those titles gets deleted.&lt;br /&gt;
&lt;br /&gt;
It&#039;s unknown where this behaviour is implemented (might be NIM, AM, or AMXPXI).&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Titles&amp;diff=20994</id>
		<title>Titles</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Titles&amp;diff=20994"/>
		<updated>2019-06-07T01:47:33Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* Data Structure */ add note about twlnand cmd files&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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].&lt;br /&gt;
&lt;br /&gt;
For a list of 3DS titles see the [[Title list]].                           &lt;br /&gt;
                     &lt;br /&gt;
= Title IDs =&lt;br /&gt;
&lt;br /&gt;
The organization of Title IDs has not been documented fully yet. Region info isn&#039;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.&lt;br /&gt;
&lt;br /&gt;
Note: The terms &#039;Title ID&#039;, &#039;Partition ID&#039; and &#039;Media ID&#039; are interchangeable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TitleID Structure&#039;&#039;&#039;: 0xCCCCABCDLLLLLLRR&lt;br /&gt;
&lt;br /&gt;
* CCCC defines the console &#039;&#039;&#039;Platform&#039;&#039;&#039; (5=WiiU, 4=3DS, 3=DSi, 1=[http://wiibrew.org/wiki/Title_database Wii])&lt;br /&gt;
* ABCD defines the &#039;&#039;&#039;Content Category&#039;&#039;&#039; of the title, Demo, DLPChild, etc.&lt;br /&gt;
* LLLLLL For CTR titles, this is the title&#039;s &#039;&#039;&#039;Unique ID&#039;&#039;&#039;. 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 &#039;ABCD&#039;. LLLL is the TWL title&#039;s &#039;Unique ID&#039;. There are restrictions on the Unique ID, see below for more info.&lt;br /&gt;
* RR This is the Title ID &#039;&#039;&#039;Variation&#039;&#039;&#039;, and has various uses.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Content Categories&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
This u16 is a collection bit mask flag. Each Category is a group of one or more bit masks.&lt;br /&gt;
&lt;br /&gt;
Specific Bitmask Flags:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Category&lt;br /&gt;
!  Bitmask&lt;br /&gt;
|-&lt;br /&gt;
|  Normal&lt;br /&gt;
|  0x0&lt;br /&gt;
|-&lt;br /&gt;
|  DlpChild&lt;br /&gt;
|  0x1&lt;br /&gt;
|-&lt;br /&gt;
|  Demo&lt;br /&gt;
|  0x2&lt;br /&gt;
|-&lt;br /&gt;
|  Contents&lt;br /&gt;
|  0x3&lt;br /&gt;
|-&lt;br /&gt;
|  AddOnContents&lt;br /&gt;
|  0x4&lt;br /&gt;
|-&lt;br /&gt;
|  Patch&lt;br /&gt;
|  0x6&lt;br /&gt;
|-&lt;br /&gt;
|  CannotExecution&lt;br /&gt;
|  0x8&lt;br /&gt;
|-&lt;br /&gt;
|  System&lt;br /&gt;
|  0x10&lt;br /&gt;
|-&lt;br /&gt;
|  RequireBatchUpdate&lt;br /&gt;
|  0x20&lt;br /&gt;
|-&lt;br /&gt;
|  NotRequireUserApproval&lt;br /&gt;
|  0x40&lt;br /&gt;
|-&lt;br /&gt;
|  NotRequireRightForMount&lt;br /&gt;
|  0x80&lt;br /&gt;
|-&lt;br /&gt;
|  CanSkipConvertJumpId&lt;br /&gt;
|  0x100&lt;br /&gt;
|-&lt;br /&gt;
|  TWL&lt;br /&gt;
|  0x8000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
* System titles (TWL and CTR) are eligible to be updated during a System Update.&lt;br /&gt;
&lt;br /&gt;
* Bit Mask 0x4000 appears to be reserved, as it renders the &#039;&#039;TWL&#039;&#039; and &#039;&#039;System&#039;&#039; bit masks useless.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unique ID Restrictions&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
For the CTR titles, there appears to be is a correlation between Unique IDs (UID) and 3DS &#039;title types&#039;. 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. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TITLE TYPE&lt;br /&gt;
!  UNIQUE ID RANGE&lt;br /&gt;
|-&lt;br /&gt;
|  System&lt;br /&gt;
|  0x0 - 0x2FF&lt;br /&gt;
|- &lt;br /&gt;
|  Application&lt;br /&gt;
|  0x300 - 0xF7FFF&lt;br /&gt;
|- &lt;br /&gt;
|  Evaluation&lt;br /&gt;
|  0xF8000 - 0xFEFFF (?)&lt;br /&gt;
|- &lt;br /&gt;
|  Prototype*&lt;br /&gt;
|  0xFF000 - 0xFF3FF&lt;br /&gt;
|- &lt;br /&gt;
|  Developer&lt;br /&gt;
|  0xFF400 - 0xFF7FF (?)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;On the home menu, titles with UIDs within the &#039;Prototype&#039; range, appear on the home menu after install without the gift fanfare.&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TitleID Variation&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
This u8 allows enumeration of titles from the same category and unique ID. Common uses are explained below:&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  RR&lt;br /&gt;
!  MEANING&lt;br /&gt;
|- &lt;br /&gt;
|  02&lt;br /&gt;
|  System Title (Core version 0x2)&lt;br /&gt;
|-&lt;br /&gt;
|  03&lt;br /&gt;
|  SAFE_MODE System Title (Core version 0x3)&lt;br /&gt;
|}&lt;br /&gt;
Normally on retail SAFE_MODE ARM11 [[NCCH#CXI|CXI]] titles can&#039;t be launched, since the [[Configuration_Memory|system]] core version doesn&#039;t match the CXI exheader core version.&lt;br /&gt;
&lt;br /&gt;
* Only most non-Normal Applications are known to utilise Title ID variation, this is explained in their respective sections on this page.&lt;br /&gt;
&lt;br /&gt;
* [[3DS Development Unit Software|Dev Menu]] installs CTR Applications with a TitleID variation of 0x02 to the CTR NAND.&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
&lt;br /&gt;
= Versions =&lt;br /&gt;
&lt;br /&gt;
v## = 0xHHHH = 0bBBBBBBBB...&lt;br /&gt;
&lt;br /&gt;
* The version major,minor and micro can be extracted from the version number by converting the 16 bit number to binary&lt;br /&gt;
* 6 bits : Major, this matches the NCCH remaster-version.&lt;br /&gt;
* 6 bits : Minor&lt;br /&gt;
* 4 bits : Micro (&#039;Build&#039; in some contexts)&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
= Data Structure =&lt;br /&gt;
&lt;br /&gt;
Titles are installed to either the NAND (System and Application) or to the SD Card (Application only), and their respective directory locations are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| [[Flash Filesystem|NAND]]&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| [[SD Filesystem|SD]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Title Data&lt;br /&gt;
| nand/title&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | sdmc/Nintendo 3DS/&amp;lt;ID0&amp;gt;/&amp;lt;ID1&amp;gt;/title&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Save Data&lt;br /&gt;
| nand/data/&amp;lt;ID0&amp;gt;/sysdata&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
ID0 is the first 0x10-bytes from a SHA256 [[nand/private/movable.sed|hash]] and ID1 is generated from the SD card CID.&lt;br /&gt;
&lt;br /&gt;
Title data stored on the SD Card is encrypted with the console-unique [[nand/private/movable.sed|keyslots]], whereas NAND title data is stored as cleartext.&lt;br /&gt;
&lt;br /&gt;
The base CTR for files stored under /title is likely based on the /title path, similar to extdata. This base CTR is unique per titleID and filename. The base CTR never changes after creation of each file.&lt;br /&gt;
&lt;br /&gt;
When a newer version of a title is installed, the new .app content, .tmd, and .cmd(and .ctx for NAND titles) are written to the /title directory, however the old files here are not yet deleted. Once installation of the title is [[AMNet:InstallTitlesFinish|finalized]], the info from [[Title_Database|import.db]] is moved to [[Title_Database|title.db]] so that the system uses the newer files instead, then the old /title files are deleted.&lt;br /&gt;
&lt;br /&gt;
The title data is contained in this directory structure (note that [[Title list#0004008C - Add-on Content (DLC)|DLC]] titles are stored in a different way):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| NAND&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| SD (non-DLC)&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| SD (DLC)&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Title Data:&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;Title ID High&amp;gt;&lt;br /&gt;
 └── &amp;lt;Title ID Low&amp;gt;&lt;br /&gt;
     ├── 00000000.ctx&lt;br /&gt;
     └── content&lt;br /&gt;
         ├── &amp;lt;ContentID&amp;gt;.app&lt;br /&gt;
         ├── &amp;lt;ContentID&amp;gt;.tmd&lt;br /&gt;
         └── cmd&lt;br /&gt;
             └── &amp;lt;ContentID&amp;gt;.cmd&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
 &amp;lt;Title ID High&amp;gt;&lt;br /&gt;
 └── &amp;lt;Title ID Low&amp;gt;&lt;br /&gt;
     ├── 00000000.ctx&lt;br /&gt;
     ├── content&lt;br /&gt;
     │   ├── &amp;lt;ContentID&amp;gt;.app&lt;br /&gt;
     │   ├── &amp;lt;ContentID&amp;gt;.tmd&lt;br /&gt;
     │   └── cmd&lt;br /&gt;
     │       └── &amp;lt;ContentID&amp;gt;.cmd&lt;br /&gt;
     └── data&lt;br /&gt;
         └── 00000001.sav&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
 0004008C&lt;br /&gt;
 └── &amp;lt;Title ID Low&amp;gt;&lt;br /&gt;
     ├── 00000000.ctx&lt;br /&gt;
     └── content&lt;br /&gt;
         ├── &amp;lt;ContentID&amp;gt;.tmd&lt;br /&gt;
         ├── 00000000&lt;br /&gt;
         │   └── &amp;lt;ContentID&amp;gt;.app&lt;br /&gt;
         └── cmd&lt;br /&gt;
             └── &amp;lt;ContentID&amp;gt;.cmd&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;|  Save Data:&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;SaveID0&amp;gt;&lt;br /&gt;
 └── &amp;lt;SaveID1&amp;gt;&lt;br /&gt;
     └── 00000001.sav&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.tmd&#039;&#039;&#039;&amp;quot; - (The Content ID is a u32, initially: &#039;&#039;&#039;00000000&#039;&#039;&#039; when the title is first installed. Changing by an increment of +&#039;&#039;&#039;0x1&#039;&#039;&#039; for each title update the 3DS installs) This is the [[Title metadata]] associated with the title, it is encrypted with a console-unique [[AES|keyslot]]. The decrypted TMD is available on Nintendo&#039;s CDN server at &amp;quot;http://nus.cdn.c.shop.nintendowifi.net/ccs/download/TitleIDhere/tmd.OptionallyTitleVersionHere&amp;quot;. Though CDN version of the title TMD has a certificate chain attached at the end of the TMD, so removing it will give you the 1:1 decrypted TMD. After installation the &amp;quot;&amp;lt;ContentID&amp;gt;.tmd&amp;quot; is redundant, because important title data is extracted and imported into the [[Title Database|title.db]] and &amp;quot;.cmd&amp;quot; files, but is however kept as a reference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.app&#039;&#039;&#039;&amp;quot; - (The Content ID is a u32, taken from the title&#039;s [[TMD]]) These files are [[NCCH]] files, where the entire file is encrypted with a console-unique [[AES|keyslot]](this is on top of the encryption of the NCCH contents). There can be more than one NCCH in this directory, as seen with .[[CCI]] files, the game executable ([[CXI]]) can be accompanied with additional non-executable NCCH files ([[NCCH#CFA|CFA]]) such as the electronic manual and DLP Child containers. Determining the function of the encrypted NCCH, is done by finding the Content Index of the &amp;quot;XXXXXXXX.app&amp;quot; file in the title&#039;s TMD(see above for retrieving decrypted TMD), interpreting the Content Index is as follows (does not apply to DLC content):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index&lt;br /&gt;
!  Content Type&lt;br /&gt;
|-&lt;br /&gt;
|  0000&lt;br /&gt;
|  Main Executable (.[[NCCH#CXI|CXI]])(In the case of [[Title list|System Data Archives]], this is a [[NCCH#CFA|CFA]] file)&lt;br /&gt;
|-&lt;br /&gt;
|  0001&lt;br /&gt;
|  Home Menu Manual (.[[NCCH#CFA|CFA]])&lt;br /&gt;
|-&lt;br /&gt;
|  0002&lt;br /&gt;
|  DLP Child Container (.[[NCCH#CFA|CFA]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Unlike the TMD, a decrypted version of the NCCH files cannot be retrieved from Nintendo&#039;s CDN, the NCCH files do exist on Nintendo&#039;s CDN but are [[AES|encrypted]]. Decrypting CDN versions of content, requires the title&#039;s [[CommonETicket|ticket]], and the common key specified by an index in the  [[CommonETicket|ticket]]. Of course editing/deleting &amp;quot;.app&amp;quot; files will have an effect. Deleting/renaming the manual &amp;quot;.app&#039; will cause the manual not to load when clicked on. And deleting/renaming the executable &amp;quot;.app&amp;quot; will cause the application to not load, and the 3D Banner does not show(The banner is loaded each time from the game&#039;s executable NCCH when the home menu loads, it is not cached like the icon and name).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.cmd&#039;&#039;&#039;&amp;quot; - (The Content ID is a u32, initially: &#039;&#039;&#039;00000001&#039;&#039;&#039; when the title is first installed. Changing by an increment of +&#039;&#039;&#039;0x1&#039;&#039;&#039; for each time the 3DS adds/removes &#039;.app&#039; files) This file contains data taken from the title&#039;s [[TMD]]. See the below table for the format of the cleartext .cmd file. The [[Title Database|Title.db]] contains the Content ID for the &#039;.cmd&#039; file, but does not contain a hash of the &#039;.cmd&#039; file. In addition it is also encrypted with a console-unique [[AES|keyslot]]. This acts as part of the DRM for installed titles, along with the [[Title Database|title.db]].&lt;br /&gt;
&lt;br /&gt;
The below AES-CMACs(including the last 0x10-bytes of the header) are only used for SD titles, for NAND [[Title_list|download-play]] titles, and non-system DSiWare titles. For other titles, these MACs are set to all-zero.&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;
| .cmd ContentID, for the .cmd filename. This is the beginning of the header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Number of AES-CMACs and Content IDs in the first list. The method to determine this is explained below.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Number of Content IDs in the second list&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Unknown, usually (always?) 1.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| AES-CMAC over first 0x10&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4 * (No. of entries)&lt;br /&gt;
| List of installed Content IDs in order of Content Index, with missing contents replaced with 0xFFFFFFFF&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 + 0x4 * (No. of entries)&lt;br /&gt;
| 0x4 * (No. of entries)&lt;br /&gt;
| List of installed Content IDs in order of ID name&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 + 0x8 * (No. of entries)&lt;br /&gt;
| 0x10 * (No. of entries)&lt;br /&gt;
| AES-CMACs for each content in the first list, generated using the process below&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The number of AES-CMACs depends on the highest Content Index installed. For example, a title with 5 contents, but only 1 and 3 are installed, will still result in 3 AES-CMACs, with the 2nd one being unused.&lt;br /&gt;
&lt;br /&gt;
For SD contents, each AES-CMAC is generated by combining the NCCH header without the signature (0x100-0x1FF), the Content Index and Content ID at the end, both as u32. Then calculate the SHA256 of the data and generate the AES-CMAC using the [[AES Registers#Keyslots|SD/NAND AES-CMAC key]].&lt;br /&gt;
&lt;br /&gt;
For TWLNAND contents, the process is currently unknown, but it appears to use a different keyslot(cmd file was identical even after a system format).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;00000001.sav&amp;quot;&#039;&#039;&#039; - This is the title&#039;s encrypted [[Savegames|savegame]]. Renaming these savegames causes home-menu to hang while launching titles, modifying these saves results in the same corruption errors as other savegames.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;00000000.ctx&amp;quot;&#039;&#039;&#039; - This file encrypted with a console-unique [[AES|keyslot]] is temporarily stored on SD card while a title is being downloaded from the eShop, it is deleted after the download is completed. This contains an AP0000000000000000 cert used to sign the data following the cert, this cert is signed by the [[CTCert]].&lt;br /&gt;
The unknown signed data is likely an ECDSA public key. There&#039;s .ctx files stored under the /title directory for NAND CTR/TWL titles, however those use the [[CTXT]] format which is completely different from this SD .ctx format. These .ctx files for NAND/SD titles only exist for titles where installation was not yet finalized(like when a system update install was not yet finalized).&lt;br /&gt;
&lt;br /&gt;
=== DLC Titles ===&lt;br /&gt;
&lt;br /&gt;
DLC titles have a different directory structure to most installed titles. This is because all DLC content for a given title is installed under the same Title ID, but DLC add-ons are usually separate purchases, hence the structure altered so any combination of DLC content can be installed. DLC titles can receive &#039;updates&#039;, this is usually in the form of more DLC content and/or DLC bug fixes. Individual DLC content can only be managed from with-in the application using the DLC.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;00000000&amp;quot;&#039;&#039;&#039; - This extra directory only found in DLC titles, contains the DLC [[NCCH]] content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.tmd&#039;&#039;&#039;&amp;quot; - This is not modified by the 3DS, and contains the details for all DLC content(installed or not).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.cmd&#039;&#039;&#039;&amp;quot; - This contains entries for all &#039;&#039;&#039;installed&#039;&#039;&#039; DLC [[NCCH]] content, and is updated (&amp;lt;ContentID&amp;gt; will change) every time DLC content is installed/removed.&lt;br /&gt;
&lt;br /&gt;
=Installing other-model system-titles=&lt;br /&gt;
When finalizing title-install of already downloaded Old3DS system-titles to a New3DS NAND image with New3DS NATIVE_FIRM, the end result is that the New3DS version (TID-low bitmask 0x20000000) of those titles gets deleted.&lt;br /&gt;
&lt;br /&gt;
It&#039;s unknown where this behaviour is implemented (might be NIM, AM, or AMXPXI).&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Titles&amp;diff=20993</id>
		<title>Titles</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Titles&amp;diff=20993"/>
		<updated>2019-06-07T00:34:04Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* Data Structure */ add more cmd format details&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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].&lt;br /&gt;
&lt;br /&gt;
For a list of 3DS titles see the [[Title list]].                           &lt;br /&gt;
                     &lt;br /&gt;
= Title IDs =&lt;br /&gt;
&lt;br /&gt;
The organization of Title IDs has not been documented fully yet. Region info isn&#039;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.&lt;br /&gt;
&lt;br /&gt;
Note: The terms &#039;Title ID&#039;, &#039;Partition ID&#039; and &#039;Media ID&#039; are interchangeable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TitleID Structure&#039;&#039;&#039;: 0xCCCCABCDLLLLLLRR&lt;br /&gt;
&lt;br /&gt;
* CCCC defines the console &#039;&#039;&#039;Platform&#039;&#039;&#039; (5=WiiU, 4=3DS, 3=DSi, 1=[http://wiibrew.org/wiki/Title_database Wii])&lt;br /&gt;
* ABCD defines the &#039;&#039;&#039;Content Category&#039;&#039;&#039; of the title, Demo, DLPChild, etc.&lt;br /&gt;
* LLLLLL For CTR titles, this is the title&#039;s &#039;&#039;&#039;Unique ID&#039;&#039;&#039;. 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 &#039;ABCD&#039;. LLLL is the TWL title&#039;s &#039;Unique ID&#039;. There are restrictions on the Unique ID, see below for more info.&lt;br /&gt;
* RR This is the Title ID &#039;&#039;&#039;Variation&#039;&#039;&#039;, and has various uses.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Content Categories&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
This u16 is a collection bit mask flag. Each Category is a group of one or more bit masks.&lt;br /&gt;
&lt;br /&gt;
Specific Bitmask Flags:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Category&lt;br /&gt;
!  Bitmask&lt;br /&gt;
|-&lt;br /&gt;
|  Normal&lt;br /&gt;
|  0x0&lt;br /&gt;
|-&lt;br /&gt;
|  DlpChild&lt;br /&gt;
|  0x1&lt;br /&gt;
|-&lt;br /&gt;
|  Demo&lt;br /&gt;
|  0x2&lt;br /&gt;
|-&lt;br /&gt;
|  Contents&lt;br /&gt;
|  0x3&lt;br /&gt;
|-&lt;br /&gt;
|  AddOnContents&lt;br /&gt;
|  0x4&lt;br /&gt;
|-&lt;br /&gt;
|  Patch&lt;br /&gt;
|  0x6&lt;br /&gt;
|-&lt;br /&gt;
|  CannotExecution&lt;br /&gt;
|  0x8&lt;br /&gt;
|-&lt;br /&gt;
|  System&lt;br /&gt;
|  0x10&lt;br /&gt;
|-&lt;br /&gt;
|  RequireBatchUpdate&lt;br /&gt;
|  0x20&lt;br /&gt;
|-&lt;br /&gt;
|  NotRequireUserApproval&lt;br /&gt;
|  0x40&lt;br /&gt;
|-&lt;br /&gt;
|  NotRequireRightForMount&lt;br /&gt;
|  0x80&lt;br /&gt;
|-&lt;br /&gt;
|  CanSkipConvertJumpId&lt;br /&gt;
|  0x100&lt;br /&gt;
|-&lt;br /&gt;
|  TWL&lt;br /&gt;
|  0x8000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
* System titles (TWL and CTR) are eligible to be updated during a System Update.&lt;br /&gt;
&lt;br /&gt;
* Bit Mask 0x4000 appears to be reserved, as it renders the &#039;&#039;TWL&#039;&#039; and &#039;&#039;System&#039;&#039; bit masks useless.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unique ID Restrictions&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
For the CTR titles, there appears to be is a correlation between Unique IDs (UID) and 3DS &#039;title types&#039;. 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. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TITLE TYPE&lt;br /&gt;
!  UNIQUE ID RANGE&lt;br /&gt;
|-&lt;br /&gt;
|  System&lt;br /&gt;
|  0x0 - 0x2FF&lt;br /&gt;
|- &lt;br /&gt;
|  Application&lt;br /&gt;
|  0x300 - 0xF7FFF&lt;br /&gt;
|- &lt;br /&gt;
|  Evaluation&lt;br /&gt;
|  0xF8000 - 0xFEFFF (?)&lt;br /&gt;
|- &lt;br /&gt;
|  Prototype*&lt;br /&gt;
|  0xFF000 - 0xFF3FF&lt;br /&gt;
|- &lt;br /&gt;
|  Developer&lt;br /&gt;
|  0xFF400 - 0xFF7FF (?)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;On the home menu, titles with UIDs within the &#039;Prototype&#039; range, appear on the home menu after install without the gift fanfare.&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TitleID Variation&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
This u8 allows enumeration of titles from the same category and unique ID. Common uses are explained below:&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  RR&lt;br /&gt;
!  MEANING&lt;br /&gt;
|- &lt;br /&gt;
|  02&lt;br /&gt;
|  System Title (Core version 0x2)&lt;br /&gt;
|-&lt;br /&gt;
|  03&lt;br /&gt;
|  SAFE_MODE System Title (Core version 0x3)&lt;br /&gt;
|}&lt;br /&gt;
Normally on retail SAFE_MODE ARM11 [[NCCH#CXI|CXI]] titles can&#039;t be launched, since the [[Configuration_Memory|system]] core version doesn&#039;t match the CXI exheader core version.&lt;br /&gt;
&lt;br /&gt;
* Only most non-Normal Applications are known to utilise Title ID variation, this is explained in their respective sections on this page.&lt;br /&gt;
&lt;br /&gt;
* [[3DS Development Unit Software|Dev Menu]] installs CTR Applications with a TitleID variation of 0x02 to the CTR NAND.&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
&lt;br /&gt;
= Versions =&lt;br /&gt;
&lt;br /&gt;
v## = 0xHHHH = 0bBBBBBBBB...&lt;br /&gt;
&lt;br /&gt;
* The version major,minor and micro can be extracted from the version number by converting the 16 bit number to binary&lt;br /&gt;
* 6 bits : Major, this matches the NCCH remaster-version.&lt;br /&gt;
* 6 bits : Minor&lt;br /&gt;
* 4 bits : Micro (&#039;Build&#039; in some contexts)&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
= Data Structure =&lt;br /&gt;
&lt;br /&gt;
Titles are installed to either the NAND (System and Application) or to the SD Card (Application only), and their respective directory locations are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| [[Flash Filesystem|NAND]]&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| [[SD Filesystem|SD]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Title Data&lt;br /&gt;
| nand/title&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | sdmc/Nintendo 3DS/&amp;lt;ID0&amp;gt;/&amp;lt;ID1&amp;gt;/title&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Save Data&lt;br /&gt;
| nand/data/&amp;lt;ID0&amp;gt;/sysdata&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
ID0 is the first 0x10-bytes from a SHA256 [[nand/private/movable.sed|hash]] and ID1 is generated from the SD card CID.&lt;br /&gt;
&lt;br /&gt;
Title data stored on the SD Card is encrypted with the console-unique [[nand/private/movable.sed|keyslots]], whereas NAND title data is stored as cleartext.&lt;br /&gt;
&lt;br /&gt;
The base CTR for files stored under /title is likely based on the /title path, similar to extdata. This base CTR is unique per titleID and filename. The base CTR never changes after creation of each file.&lt;br /&gt;
&lt;br /&gt;
When a newer version of a title is installed, the new .app content, .tmd, and .cmd(and .ctx for NAND titles) are written to the /title directory, however the old files here are not yet deleted. Once installation of the title is [[AMNet:InstallTitlesFinish|finalized]], the info from [[Title_Database|import.db]] is moved to [[Title_Database|title.db]] so that the system uses the newer files instead, then the old /title files are deleted.&lt;br /&gt;
&lt;br /&gt;
The title data is contained in this directory structure (note that [[Title list#0004008C - Add-on Content (DLC)|DLC]] titles are stored in a different way):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| NAND&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| SD (non-DLC)&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| SD (DLC)&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Title Data:&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;Title ID High&amp;gt;&lt;br /&gt;
 └── &amp;lt;Title ID Low&amp;gt;&lt;br /&gt;
     ├── 00000000.ctx&lt;br /&gt;
     └── content&lt;br /&gt;
         ├── &amp;lt;ContentID&amp;gt;.app&lt;br /&gt;
         ├── &amp;lt;ContentID&amp;gt;.tmd&lt;br /&gt;
         └── cmd&lt;br /&gt;
             └── &amp;lt;ContentID&amp;gt;.cmd&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
 &amp;lt;Title ID High&amp;gt;&lt;br /&gt;
 └── &amp;lt;Title ID Low&amp;gt;&lt;br /&gt;
     ├── 00000000.ctx&lt;br /&gt;
     ├── content&lt;br /&gt;
     │   ├── &amp;lt;ContentID&amp;gt;.app&lt;br /&gt;
     │   ├── &amp;lt;ContentID&amp;gt;.tmd&lt;br /&gt;
     │   └── cmd&lt;br /&gt;
     │       └── &amp;lt;ContentID&amp;gt;.cmd&lt;br /&gt;
     └── data&lt;br /&gt;
         └── 00000001.sav&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
 0004008C&lt;br /&gt;
 └── &amp;lt;Title ID Low&amp;gt;&lt;br /&gt;
     ├── 00000000.ctx&lt;br /&gt;
     └── content&lt;br /&gt;
         ├── &amp;lt;ContentID&amp;gt;.tmd&lt;br /&gt;
         ├── 00000000&lt;br /&gt;
         │   └── &amp;lt;ContentID&amp;gt;.app&lt;br /&gt;
         └── cmd&lt;br /&gt;
             └── &amp;lt;ContentID&amp;gt;.cmd&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;|  Save Data:&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;SaveID0&amp;gt;&lt;br /&gt;
 └── &amp;lt;SaveID1&amp;gt;&lt;br /&gt;
     └── 00000001.sav&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.tmd&#039;&#039;&#039;&amp;quot; - (The Content ID is a u32, initially: &#039;&#039;&#039;00000000&#039;&#039;&#039; when the title is first installed. Changing by an increment of +&#039;&#039;&#039;0x1&#039;&#039;&#039; for each title update the 3DS installs) This is the [[Title metadata]] associated with the title, it is encrypted with a console-unique [[AES|keyslot]]. The decrypted TMD is available on Nintendo&#039;s CDN server at &amp;quot;http://nus.cdn.c.shop.nintendowifi.net/ccs/download/TitleIDhere/tmd.OptionallyTitleVersionHere&amp;quot;. Though CDN version of the title TMD has a certificate chain attached at the end of the TMD, so removing it will give you the 1:1 decrypted TMD. After installation the &amp;quot;&amp;lt;ContentID&amp;gt;.tmd&amp;quot; is redundant, because important title data is extracted and imported into the [[Title Database|title.db]] and &amp;quot;.cmd&amp;quot; files, but is however kept as a reference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.app&#039;&#039;&#039;&amp;quot; - (The Content ID is a u32, taken from the title&#039;s [[TMD]]) These files are [[NCCH]] files, where the entire file is encrypted with a console-unique [[AES|keyslot]](this is on top of the encryption of the NCCH contents). There can be more than one NCCH in this directory, as seen with .[[CCI]] files, the game executable ([[CXI]]) can be accompanied with additional non-executable NCCH files ([[NCCH#CFA|CFA]]) such as the electronic manual and DLP Child containers. Determining the function of the encrypted NCCH, is done by finding the Content Index of the &amp;quot;XXXXXXXX.app&amp;quot; file in the title&#039;s TMD(see above for retrieving decrypted TMD), interpreting the Content Index is as follows (does not apply to DLC content):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index&lt;br /&gt;
!  Content Type&lt;br /&gt;
|-&lt;br /&gt;
|  0000&lt;br /&gt;
|  Main Executable (.[[NCCH#CXI|CXI]])(In the case of [[Title list|System Data Archives]], this is a [[NCCH#CFA|CFA]] file)&lt;br /&gt;
|-&lt;br /&gt;
|  0001&lt;br /&gt;
|  Home Menu Manual (.[[NCCH#CFA|CFA]])&lt;br /&gt;
|-&lt;br /&gt;
|  0002&lt;br /&gt;
|  DLP Child Container (.[[NCCH#CFA|CFA]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Unlike the TMD, a decrypted version of the NCCH files cannot be retrieved from Nintendo&#039;s CDN, the NCCH files do exist on Nintendo&#039;s CDN but are [[AES|encrypted]]. Decrypting CDN versions of content, requires the title&#039;s [[CommonETicket|ticket]], and the common key specified by an index in the  [[CommonETicket|ticket]]. Of course editing/deleting &amp;quot;.app&amp;quot; files will have an effect. Deleting/renaming the manual &amp;quot;.app&#039; will cause the manual not to load when clicked on. And deleting/renaming the executable &amp;quot;.app&amp;quot; will cause the application to not load, and the 3D Banner does not show(The banner is loaded each time from the game&#039;s executable NCCH when the home menu loads, it is not cached like the icon and name).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.cmd&#039;&#039;&#039;&amp;quot; - (The Content ID is a u32, initially: &#039;&#039;&#039;00000001&#039;&#039;&#039; when the title is first installed. Changing by an increment of +&#039;&#039;&#039;0x1&#039;&#039;&#039; for each time the 3DS adds/removes &#039;.app&#039; files) This file contains data taken from the title&#039;s [[TMD]]. See the below table for the format of the cleartext .cmd file. The [[Title Database|Title.db]] contains the Content ID for the &#039;.cmd&#039; file, but does not contain a hash of the &#039;.cmd&#039; file. In addition it is also encrypted with a console-unique [[AES|keyslot]]. This acts as part of the DRM for installed titles, along with the [[Title Database|title.db]].&lt;br /&gt;
&lt;br /&gt;
The below AES-CMACs(including the last 0x10-bytes of the header) are only used for SD titles, for NAND [[Title_list|download-play]] titles, and non-system DSiWare titles. For other titles, these MACs are set to all-zero.&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;
| .cmd ContentID, for the .cmd filename. This is the beginning of the header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Number of AES-CMACs and Content IDs in the first list. The method to determine this is explained below.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Number of Content IDs in the second list&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Unknown, usually (always?) 1.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| AES-CMAC over first 0x10&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4 * (No. of entries)&lt;br /&gt;
| List of installed Content IDs in order of Content Index, with missing contents replaced with 0xFFFFFFFF&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 + 0x4 * (No. of entries)&lt;br /&gt;
| 0x4 * (No. of entries)&lt;br /&gt;
| List of installed Content IDs in order of ID name&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 + 0x8 * (No. of entries)&lt;br /&gt;
| 0x10 * (No. of entries)&lt;br /&gt;
| AES-CMACs for each content in the first list, generated using the process below&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The number of AES-CMACs depends on the highest Content Index installed. For example, a title with 5 contents, but only 1 and 3 are installed, will still result in 3 AES-CMACs, with the 2nd one being unused.&lt;br /&gt;
&lt;br /&gt;
For SD contents, each AES-CMAC is generated by combining the NCCH header without the signature (0x100-0x1FF), the Content Index and Content ID at the end, both as u32. Then calculate the SHA256 of the data and generate the AES-CMAC using the [[AES Registers#Keyslots|SD/NAND AES-CMAC key]].&lt;br /&gt;
&lt;br /&gt;
For TWLNAND contents, the process is currently unknown.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;00000001.sav&amp;quot;&#039;&#039;&#039; - This is the title&#039;s encrypted [[Savegames|savegame]]. Renaming these savegames causes home-menu to hang while launching titles, modifying these saves results in the same corruption errors as other savegames.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;00000000.ctx&amp;quot;&#039;&#039;&#039; - This file encrypted with a console-unique [[AES|keyslot]] is temporarily stored on SD card while a title is being downloaded from the eShop, it is deleted after the download is completed. This contains an AP0000000000000000 cert used to sign the data following the cert, this cert is signed by the [[CTCert]].&lt;br /&gt;
The unknown signed data is likely an ECDSA public key. There&#039;s .ctx files stored under the /title directory for NAND CTR/TWL titles, however those use the [[CTXT]] format which is completely different from this SD .ctx format. These .ctx files for NAND/SD titles only exist for titles where installation was not yet finalized(like when a system update install was not yet finalized).&lt;br /&gt;
&lt;br /&gt;
=== DLC Titles ===&lt;br /&gt;
&lt;br /&gt;
DLC titles have a different directory structure to most installed titles. This is because all DLC content for a given title is installed under the same Title ID, but DLC add-ons are usually separate purchases, hence the structure altered so any combination of DLC content can be installed. DLC titles can receive &#039;updates&#039;, this is usually in the form of more DLC content and/or DLC bug fixes. Individual DLC content can only be managed from with-in the application using the DLC.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;00000000&amp;quot;&#039;&#039;&#039; - This extra directory only found in DLC titles, contains the DLC [[NCCH]] content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.tmd&#039;&#039;&#039;&amp;quot; - This is not modified by the 3DS, and contains the details for all DLC content(installed or not).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;&amp;lt;ContentID&amp;gt;.cmd&#039;&#039;&#039;&amp;quot; - This contains entries for all &#039;&#039;&#039;installed&#039;&#039;&#039; DLC [[NCCH]] content, and is updated (&amp;lt;ContentID&amp;gt; will change) every time DLC content is installed/removed.&lt;br /&gt;
&lt;br /&gt;
=Installing other-model system-titles=&lt;br /&gt;
When finalizing title-install of already downloaded Old3DS system-titles to a New3DS NAND image with New3DS NATIVE_FIRM, the end result is that the New3DS version (TID-low bitmask 0x20000000) of those titles gets deleted.&lt;br /&gt;
&lt;br /&gt;
It&#039;s unknown where this behaviour is implemented (might be NIM, AM, or AMXPXI).&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Title_Database&amp;diff=20991</id>
		<title>Title Database</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Title_Database&amp;diff=20991"/>
		<updated>2019-05-30T23:25:07Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* Title Info Entry */ 0x350 appears here, not 0x530&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These files contain data relating to install/usage/management of installed 3DS titles. The database files are located at:&lt;br /&gt;
&lt;br /&gt;
* nand/dbs&lt;br /&gt;
* sdmc/Nintendo 3DS/&amp;lt;ID0&amp;gt;/&amp;lt;ID1&amp;gt;/dbs&lt;br /&gt;
&lt;br /&gt;
ID0 is the first 0x10-bytes from a SHA256 [[nand/private/movable.sed|hash]]. The installation of [[SD Filesystem|SD Card]] titles was introduced in the [[2.0.0-2]] update and the SD dbs files are encrypted by [[SD Filesystem|the general SD filesystem encryption rule]]. These files are [[DISA and DIFF|DIFF containers]]. These DIFF files do not use external IVFC level 4, so all database data is duplicated in the container. In this page only the inner content of the container is described.&lt;br /&gt;
&lt;br /&gt;
These files are only created on SD (via [[Application_Manager_Services|AM]]) if they don&#039;t exist when the [[eShop]] application is starting up, during network init etc (prior to showing the &amp;quot;system update required&amp;quot; dialog).&lt;br /&gt;
&lt;br /&gt;
These files are stored under this directory:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Stored on SD card&lt;br /&gt;
!  Stored in CTR-NAND&lt;br /&gt;
!  Filename&lt;br /&gt;
!  [[DISA and DIFF#CTR-9DB0|CTR-9DB0]] ID&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| ticket.db&lt;br /&gt;
| 0x0&lt;br /&gt;
| This contains the installed tickets (NAND and SD).&lt;br /&gt;
|-&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| certs.db&lt;br /&gt;
| 0x1&lt;br /&gt;
| This contains the certificate chain used to verify TMDs and other certificates.&lt;br /&gt;
|-&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| title.db&lt;br /&gt;
| 0x2&lt;br /&gt;
| Title database, this contains entries for all installed titles (TWL &amp;amp; CTR) on the 3DS (Each database is responsible for titles installed on its medium).&lt;br /&gt;
|-&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| import.db&lt;br /&gt;
| 0x3&lt;br /&gt;
| This is an Import Database, it contains entries for titles (or versions of titles) not yet installed, ready for transferring to the title.db. (Automatic Update uses this, so completing the update takes seconds.)&lt;br /&gt;
|-&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| tmp_t.db&lt;br /&gt;
| 0x4&lt;br /&gt;
| This is the temporary Title database containing one entry for the currently installed [[Download Play]] Child.&lt;br /&gt;
|-&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| tmp_i.db&lt;br /&gt;
| 0x5&lt;br /&gt;
| Similar to import.db, except it&#039;s used in conjunction with tmp_t.db, for installing [[Download Play]] Children.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The inner content of the container consists of a pre-header with size of 0x80 identifying the Database Type, followed by a BDRI container. The offsets in the BDRI header are usually relative to the offset to the start of the BDRI header (0x80 in the file)&lt;br /&gt;
&lt;br /&gt;
== Pre Header ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Database Type &amp;quot;Magic&amp;quot; (see below)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 0x78&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For ticket.db different pre header is used:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Database Type &amp;quot;Magic&amp;quot; (see below)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 0x04&lt;br /&gt;
| Unknown (always 0x00000001 ?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 0x04&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 0x04&lt;br /&gt;
| Unknown (0x30 smaller than previous one)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Database Magic ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Database Type&lt;br /&gt;
! Magic&lt;br /&gt;
|-&lt;br /&gt;
| CTR-NAND ticket.db&lt;br /&gt;
| TICK&lt;br /&gt;
|-&lt;br /&gt;
| CTR-NAND import.db&lt;br /&gt;
| NANDIDB&lt;br /&gt;
|-&lt;br /&gt;
| CTR-NAND title.db&lt;br /&gt;
| NANDTDB&lt;br /&gt;
|-&lt;br /&gt;
| CTR-NAND tmp_i.db&lt;br /&gt;
| TEMPIDB&lt;br /&gt;
|-&lt;br /&gt;
| CTR-NAND tmp_t.db&lt;br /&gt;
| TEMPIDB&lt;br /&gt;
|-&lt;br /&gt;
| SD Card import.db&lt;br /&gt;
| TEMPTDB&lt;br /&gt;
|-&lt;br /&gt;
| SD Card title.db&lt;br /&gt;
| TEMPTDB&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BDRI ==&lt;br /&gt;
&lt;br /&gt;
This is a variant of [[Inner FAT|FAT filesystem]]. It consists one &amp;quot;root&amp;quot; directory and multiple &amp;quot;files&amp;quot;. Each &amp;quot;file&amp;quot; is one title info entry described below.&lt;br /&gt;
&lt;br /&gt;
== Title Info Entry ==&lt;br /&gt;
&lt;br /&gt;
An entry contains information taken from both the application NCCH file(s) and TMD.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 8&lt;br /&gt;
| Title Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 4&lt;br /&gt;
| Title Type(usually 0x40)&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 4&lt;br /&gt;
| Title Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Flags_0&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| TMD Content ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 4&lt;br /&gt;
| CMD Content ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x1c&lt;br /&gt;
| 4&lt;br /&gt;
| Flags_1&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 4&lt;br /&gt;
| ExtdataID low (zero if title doesn&#039;t use Extdata)&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 4&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 8&lt;br /&gt;
| Flags_2&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x10&lt;br /&gt;
| Product Code&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 0x10&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x50&lt;br /&gt;
| 0x4&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x54&lt;br /&gt;
| 0x2c&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For ticket.db title info contains a small header and actual ticket data:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 4&lt;br /&gt;
| Unknown (always 0x00000001?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 4&lt;br /&gt;
| Ticket data size X (=0x350)&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| X&lt;br /&gt;
| [[Ticket|Ticket]] data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Flags_0 ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Index&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Electronic Manual&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Flags_1 ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Index&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| SD Save Data&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Flags_2 ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Index&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| DSiWare Related (Visibility on Home Menu/Export Flag?)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Found with DSiWare Titles and titles with an &#039;Application&#039; Title ID&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| DSiWare Related (Visibility on Home Menu/Export Flag?)&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTES:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It is important to note the database doesn&#039;t contain a hash of the [[Title Data Structure|.cmd]]. So if a user has more than one valid set of [[Title Data Structure|application data]] for a given .cmd Content ID they can be manually interchanged without issue. Though renaming a .cmd file to match the Content ID which the title.db is expecting will result in an error, as the CTR for the per-console encryption layer changes depending on the file path, and the MAC of the .cmd is probably generated with the .cmd Content ID in mind.&lt;br /&gt;
&lt;br /&gt;
These NAND/SD /dbs images seem to be loaded by the ARM9 while NATIVE_FIRM is booting.&lt;br /&gt;
&lt;br /&gt;
Removing ticket.db from a New-3DS with signature checks disabled will not result in an unbootable system, however all icons except Slot-1 will disappear from Home. Applets can however still be used. Recovery can be accomplished via [[Hardware|hardmod]] or [[arm9loaderhax]] plus a known good backup of the file (or the whole partition or disk); Gamecard exploits were not tested, and Browserhax did not work.&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=FIRM&amp;diff=20768</id>
		<title>FIRM</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=FIRM&amp;diff=20768"/>
		<updated>2018-07-31T00:28:12Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* NATIVE_FIRM */ 11.8.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the file format for the [[Title list#00040138 - System Firmware|3DS&#039; Firmware]], it contains up to four &#039;sections&#039; of data comprising the ARM9 and ARM11 kernels, and some fundamental processes. The firmware sections are not encrypted. In a nutshell, a FIRM contains all the data required to set up the ARM9 and ARM11 kernels, and basic operating functionality.&lt;br /&gt;
&lt;br /&gt;
The ARM9 section contains the ARM9 kernel (and loader) and the Process9 NCCH (which is the only process run in user mode on the ARM9). The ARM11 sections contain the ARM11 kernel (and loader), and various ARM11 process NCCHs. For NATIVE_FIRM/SAFE_MODE_FIRM these ARM11 processes are sm, fs, pm, loader, and pxi. Normally the 4th section is not used. The code loaded from FIRM is constantly running on the system until another FIRM is launched. The ARM11 kernel is hard-coded to always decompress the ExeFS .code of embedded ARM11 NCCHs without checking the exheader compression bit.&lt;br /&gt;
&lt;br /&gt;
== FIRM 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;
|  0x000&lt;br /&gt;
|  4&lt;br /&gt;
|  Magic &#039;FIRM&#039;&lt;br /&gt;
|-&lt;br /&gt;
|  0x004&lt;br /&gt;
|  4&lt;br /&gt;
|  Boot priority (highest value = max prio), this is normally zero.&lt;br /&gt;
|-&lt;br /&gt;
|  0x008&lt;br /&gt;
|  4&lt;br /&gt;
|  ARM11 Entrypoint&lt;br /&gt;
|-&lt;br /&gt;
|  0x00C&lt;br /&gt;
|  4&lt;br /&gt;
|  ARM9 Entrypoint&lt;br /&gt;
|-&lt;br /&gt;
|  0x010&lt;br /&gt;
|  0x030&lt;br /&gt;
|  Reserved&lt;br /&gt;
|-&lt;br /&gt;
|  0x040&lt;br /&gt;
|  0x0C0 (0x030*4)&lt;br /&gt;
|  Firmware Section Headers&lt;br /&gt;
|-&lt;br /&gt;
|  0x100&lt;br /&gt;
|  0x100&lt;br /&gt;
|  RSA-2048 signature of the FIRM header&#039;s SHA-256 hash. The signature is checked when bootrom/Process9 are doing FIRM-launch (with the public key being hardcoded in each). The signature is not checked when installing FIRM to the NAND firm0/firm1 partitions.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firmware Section Headers ==&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;
|  0x000&lt;br /&gt;
|  4&lt;br /&gt;
|  Byte offset&lt;br /&gt;
|-&lt;br /&gt;
|  0x004&lt;br /&gt;
|  4&lt;br /&gt;
|  Physical address where the section is loaded to.&lt;br /&gt;
|-&lt;br /&gt;
|  0x008&lt;br /&gt;
|  4&lt;br /&gt;
|  Byte-size.  While loading FIRM this is the field used to determine whether the section exists or not, by checking for value 0x0.&lt;br /&gt;
|-&lt;br /&gt;
|  0x00C&lt;br /&gt;
|  4&lt;br /&gt;
|  Copy-method (0 = NDMA, 1 = XDMA, 2 = CPU mem-copy), Process9 ignores this field. Boot9 doesn&#039;t immediately throw an error when this isn&#039;t 0..2. In that case it will jump over section-data-loading which then results in the hash verification with the below hash being done with the hash already stored in the SHA hardware.&lt;br /&gt;
|-&lt;br /&gt;
|  0x010&lt;br /&gt;
|  0x020&lt;br /&gt;
|  SHA-256 Hash of Firmware Section&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== [[New_3DS]] FIRM ==&lt;br /&gt;
For New3DS firmwares (NATIVE_FIRM, TWL_FIRM, ..), the ARM9 FIRM binary has an additional layer of crypto. At the end of each ARM9 binary, there&#039;s a plaintext loader. The format of the FIRM header is identical to regular 3DS FIRM(the RSA modulo is the same as regular 3DS too).&lt;br /&gt;
&lt;br /&gt;
Before checking [[CONFIG_Registers|CFG_SYSPROT9]] the loader main() does the following:&lt;br /&gt;
* On [[9.5.0-22|9.5.0-X]]: executes a nop instruction with r0=0 and r1=&amp;lt;address of arm9binhdr+0x50&amp;gt;.&lt;br /&gt;
* Clears bit6 in [[AES_Registers|REG_AESKEYCNT]].&lt;br /&gt;
&lt;br /&gt;
If [[CONFIG_Registers#CFG_SYSPROT9|CFG_SYSPROT9]] bit 1 is clear (which means the OTP area is unlocked and so it knows that this is a hard reboot), it does the following things:&lt;br /&gt;
* Clears 0x200-bytes on the stack, then reads [[Flash_Filesystem|NAND]] sector 0x96(NAND image offset 0x12C00), with size 0x200-bytes into that stack buffer.&lt;br /&gt;
* Checks [[CONFIG_Registers#CFG_SYSPROT9|CFG_SYSPROT9]] bit 1 again, if it&#039;s set then it executes a panic function(set r0-r2=0, execute nop instruction, then execute instruction &amp;quot;bkpt 0x99&amp;quot;).&lt;br /&gt;
* Hashes data from the OTP region [[IO_Registers|0x10012000-0x10012090]] using SHA256 via the [[SHA_Registers|SHA]] hardware.&lt;br /&gt;
* Clears bit6 in [[AES_Registers|REG_AESKEYCNT]]. Initializes AES keyslot 0x11 keyX, keyY to the lower and higher portion of the above hash, respectively. Due to the above hashed data, the keyX+keyY here are console-unique.&lt;br /&gt;
* Decrypts the first 0x10-byte block in the above read NAND sector with keyslot 0x11 using AES-ECB. [[9.6.0-24|9.6.0-X]]: Then it decrypts the 0x10-bytes at offset 0x10 in the sector with keyslot 0x11.&lt;br /&gt;
* Then the normalkey, keyX, and keyY, for keyslot 0x11 are cleared to zero. Runs the TWL key-init/etc code which was originally in the ARM9-kernel, then writes 0x2 to [[CONFIG_Registers|CFG_SYSPROT9]] to disable the OTP area.&lt;br /&gt;
* Then it uses the above decrypted block from sector+0 to set the normalkey for keyslot 0x11. Decrypts arm9_bin_buf+0 using keyslot 0x11 with AES-ECB, and initialises keyX for keyslot 0x15 with it.&lt;br /&gt;
* [[9.6.0-24|9.6.0-X]]: Then it uses the above decrypted block from sector+0 to set the normalkey for keyslot 0x11. Decrypts a 0x10-byte block from arm9loader .(ro)data using keyslot 0x11 with AES-ECB, and initializes keyX for keyslot 0x18 with it(same block as previous versions).&lt;br /&gt;
* [[9.6.0-24|9.6.0-X]]: Starting with this version keyslot 0x16 keyX init was moved here, see below for details on this. The code for this is same as  [[9.5.0-22|9.5.0-X]], except the decrypted normalkey from sector+0x10 is used for keyslot 0x11 instead.&lt;br /&gt;
* Initialises KeyX for keyslots 0x18..0x1F(0x19..0x1F with [[9.6.0-24|9.6.0-X]]) with the output of decrypting a 0x10-byte block with AES-ECB using keyslot 0x11. This block was changed to a new one separate from keyslot 0x18, starting with [[9.6.0-24|9.6.0-X]]. The last byte in this 0x10-byte input block is increased by 0x01 after initializing each keyslot. Before doing the crypto each time, the loader sets the normal-key for keyslot 0x11 to the plaintext normalkey from sector+0(+0x10 with [[9.6.0-24|9.6.0-X]]). These are New3DS-specific keys.&lt;br /&gt;
* [[9.5.0-22|9.5.0-X]](moved to above with [[9.6.0-24|9.6.0-X]]): Sets the normal-key for keyslot 0x11 to the same one already decrypted on the stack. Decrypts the 0x10-byte block at arm9binhdr+0x60 with AES-ECB using keyslot 0x11, then sets the keyX for keyslot 0x16 to the output data.&lt;br /&gt;
* [[9.5.0-22|9.5.0-X]]: The normalkey, keyX, and keyY, for keyslot 0x11 are then cleared to zero.&lt;br /&gt;
&lt;br /&gt;
When [[CONFIG_Registers#CFG_SYSPROT9|CFG_SYSPROT9]] bit 1 is set(which means this happens only when this loader runs again for firm-launch), the normalkey, keyX, and keyY, for keyslot 0x11 are cleared to zero.&lt;br /&gt;
&lt;br /&gt;
It sets KeyY for keyslot 0x15(0x16 with [[9.5.0-22|9.5.0-X]]) to arm9_bin_buf+16, the CTR to arm9_bin_buf+32 (both are unique for every version). It then proceeds to decrypt the binary with AES-CTR. When done, it sets the normal-key for the keyslot used for binary decryption to zeros. It then decrypts arm9_bin_buf+64 using an hardcoded keyY for keyslot 0x15([[9.5.0-22|9.5.0-X]]/[[9.6.0-24|9.6.0-X]] also uses keyslot 0x15), sets the normal-key for this keyslot to zeros again, then makes sure the output block is all zeroes. If it is, it does some cleanup then it jumps to the entrypoint for the decrypted binary. Otherwise it will clear the keyX, keyY, and normal-key for each of the keyslots initialized by this loader (on [[9.6.0-24|9.6.0-X]]+, on older versions this was bugged and cleared keys 0x00..0x07 instead of 0x18..0x1F), do cleanup(same cleanup as when the decrypted block is all-zero) then just loop forever.&lt;br /&gt;
&lt;br /&gt;
Thus, the ARM9 binary has the following 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;
|  0x000&lt;br /&gt;
|  16&lt;br /&gt;
|  Encrypted KeyX (same for all FIRM&#039;s)&lt;br /&gt;
|-&lt;br /&gt;
|  0x010&lt;br /&gt;
|  16&lt;br /&gt;
|  KeyY&lt;br /&gt;
|-&lt;br /&gt;
|  0x020&lt;br /&gt;
|  16&lt;br /&gt;
|  CTR&lt;br /&gt;
|-&lt;br /&gt;
|  0x030&lt;br /&gt;
|  8&lt;br /&gt;
|  Size of encrypted binary, as ASCII text?&lt;br /&gt;
|-&lt;br /&gt;
|  0x038&lt;br /&gt;
|  8&lt;br /&gt;
|  ?&lt;br /&gt;
|-&lt;br /&gt;
|  0x040&lt;br /&gt;
|  16&lt;br /&gt;
|  Control block&lt;br /&gt;
|-&lt;br /&gt;
|  0x050&lt;br /&gt;
|  16&lt;br /&gt;
|  Added with [[9.5.0-22|9.5.0-X]]. Only used for hardware debugging: a nop instruction is executed with r0=0 and r1=&amp;lt;address of this data&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|  0x060&lt;br /&gt;
|  16&lt;br /&gt;
|  Added with [[9.5.0-22|9.5.0-X]]. Encrypted keyX for keyslot 0x16.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Originally the padding after the header before offset 0x800(start of actual ARM9-binary) was 0xFF bytes, with [[9.5.0-22|9.5.0-X]] this was changed to 0x0.&lt;br /&gt;
&lt;br /&gt;
For the New3DS NATIVE_FIRM arm9-section header, the only difference between the [[8.1.0-0_New3DS]] version and the [[9.0.0-20]] version is that the keyY, CTR, and the block at 0x30 in the header were updated.&lt;br /&gt;
&lt;br /&gt;
===New3DS ARM9 binary loader versions===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  FIRM system version(s)&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| [[8.1.0-0_New3DS]] - [[9.3.0-21|9.3.0-X]]&lt;br /&gt;
| Initial version.&lt;br /&gt;
|-&lt;br /&gt;
| [[9.5.0-22|9.5.0-X]]&lt;br /&gt;
| Added keyX initialization for keyslot 0x16(see above), and added code for clearing keyslot 0x11 immediately after the code finishes using keyslot 0x11. The keyslot used for arm9bin decryption was changed from 0x15 to 0x16. Added code for clearing keyslot 0x16 when control-block decryption fails. Added code for using arm9bin_hdr+0x50 with a nop instruction, at the very beginning of the main arm9-loader function. Added two new 0x10-blocks to the arm9bin-hdr.&lt;br /&gt;
|-&lt;br /&gt;
| [[9.6.0-24|9.6.0-X]] - [[11.3.0-36|11.3.0-X]]&lt;br /&gt;
| See above and [[9.6.0-24|here]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===New3DS ARM9 kernel===&lt;br /&gt;
The only actual code-difference for the Old3DS/New3DS ARM9-kernels&#039; crt0, besides TWL AES / [[IO_Registers|0x10012000]] related code, is that the New3DS ARM9-kernel writes 0x1 to [[CONFIG_Registers|REG_EXTMEMCNT9]] in the crt0.&lt;br /&gt;
&lt;br /&gt;
===New3DS Process9===&lt;br /&gt;
The following is all of the differences for Old3DS/New3DS Process9 with [[9.3.0-21|9.3.0-X]]:&lt;br /&gt;
* The FIRM-launch code called at the end of the New3DS proc9 main() has different mem-range checks.&lt;br /&gt;
* In the New3DS proc9, the v6.0/v7.0 keyinit function at the very beginning(before the original code) had additional code added for setting [[Flash_Filesystem|CTRNAND]] [[AES_Registers|keyslot]] 0x5, with keydata from .data. After setting the keyY, the keyY in .data is cleared.&lt;br /&gt;
* In New3DS proc9, the functions for getting the gamecard crypto keyslots / NCCH keyslot can return New3DS keyslots when New3DS flags(NCSD/NCCH) are set.&lt;br /&gt;
* The code/data for the binary near the end of arm9mem is slightly different, because of memory-region sizes.&lt;br /&gt;
* The only difference in .data(besides the above code binary) is that the New3DS proc9 has an additional 0x10-byte block for the keyslot 0x5 keyY, see above.&lt;br /&gt;
&lt;br /&gt;
== Variations ==&lt;br /&gt;
There exists different official firmwares for the 3DS: The default one (NATIVE_FIRM) is used to run all 3DS content and boots by default, while backwards compatibility is handled by TWL_FIRM and AGB_FIRM. There furthermore is a rescue mode provided by SAFE_MODE_FIRM.&lt;br /&gt;
&lt;br /&gt;
=== NATIVE_FIRM ===&lt;br /&gt;
NATIVE_FIRM is the FIRM which is installed to the [[Flash_Filesystem|NAND]] firm partitions, which is loaded by bootrom.&lt;br /&gt;
&lt;br /&gt;
Version history:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!  System version&lt;br /&gt;
!  old 3DS title version&lt;br /&gt;
!  old 3DS hex title contentID&lt;br /&gt;
!  Kernel/FIRM version (old 3DS/new 3DS)&lt;br /&gt;
!  FIRM ARM11-sysmodule Product Code&lt;br /&gt;
|-&lt;br /&gt;
| [[Factory_Setup|Factory]] FIRM (titleID 00040001-00000002)&lt;br /&gt;
| v0&lt;br /&gt;
| 00&lt;br /&gt;
| 2.3-0&lt;br /&gt;
|-&lt;br /&gt;
| Pre-1.0. Referenced in the v1.0 Home Menu NCCH plain-region.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2.23-X&lt;br /&gt;
|-&lt;br /&gt;
| [[1.0.0-0|1.0.0]]&lt;br /&gt;
| v432&lt;br /&gt;
| 00&lt;br /&gt;
| 2.27-0&lt;br /&gt;
|-&lt;br /&gt;
| [[1.1.0-1|1.1.0]]&lt;br /&gt;
| v1472&lt;br /&gt;
| 02&lt;br /&gt;
| 2.28-0&lt;br /&gt;
|-&lt;br /&gt;
| [[2.0.0-2|2.0.0]]&lt;br /&gt;
| v2516&lt;br /&gt;
| 09&lt;br /&gt;
| 2.29-7&lt;br /&gt;
|-&lt;br /&gt;
| [[2.1.0-3|2.1.0]]&lt;br /&gt;
| v3553&lt;br /&gt;
| 0B&lt;br /&gt;
| 2.30-18&lt;br /&gt;
| 0608builder&lt;br /&gt;
|-&lt;br /&gt;
| [[2.2.0-X|2.2.0]]&lt;br /&gt;
| v4595&lt;br /&gt;
| 0F&lt;br /&gt;
| 2.31-40&lt;br /&gt;
| 0909builder&lt;br /&gt;
|-&lt;br /&gt;
| [[3.0.0-5|3.0.0]]&lt;br /&gt;
| v5647&lt;br /&gt;
| 18&lt;br /&gt;
| 2.32-15&lt;br /&gt;
| 1128builder&lt;br /&gt;
|-&lt;br /&gt;
| [[4.0.0-7|4.0.0]]&lt;br /&gt;
| v6677&lt;br /&gt;
| 1D&lt;br /&gt;
| 2.33-4&lt;br /&gt;
| 0406builder&lt;br /&gt;
|-&lt;br /&gt;
| [[4.1.0-8|4.1.0]]&lt;br /&gt;
| v7712&lt;br /&gt;
| 1F&lt;br /&gt;
| 2.34-0&lt;br /&gt;
| 0508builder&lt;br /&gt;
|-&lt;br /&gt;
| [[5.0.0-11|5.0.0]]&lt;br /&gt;
| v8758&lt;br /&gt;
| 25&lt;br /&gt;
| 2.35-6&lt;br /&gt;
| 0228builder&lt;br /&gt;
|-&lt;br /&gt;
| [[5.1.0-11|5.1.0]]&lt;br /&gt;
| v9792&lt;br /&gt;
| 26&lt;br /&gt;
| 2.36-0&lt;br /&gt;
| 0401builder&lt;br /&gt;
|-&lt;br /&gt;
| [[6.0.0-11|6.0.0]]&lt;br /&gt;
| v10833&lt;br /&gt;
| 29&lt;br /&gt;
| 2.37-0&lt;br /&gt;
| 0520builder&lt;br /&gt;
|-&lt;br /&gt;
| [[6.1.0-11|6.1.0]]&lt;br /&gt;
| v11872&lt;br /&gt;
| 2A&lt;br /&gt;
| 2.38-0&lt;br /&gt;
| 0625builder&lt;br /&gt;
|-&lt;br /&gt;
| [[7.0.0-13|7.0.0]]&lt;br /&gt;
| v12916&lt;br /&gt;
| 2E&lt;br /&gt;
| 2.39-4&lt;br /&gt;
| 1125builder&lt;br /&gt;
|-&lt;br /&gt;
| [[7.2.0-17|7.2.0]]&lt;br /&gt;
| v13956&lt;br /&gt;
| 30&lt;br /&gt;
| 2.40-0&lt;br /&gt;
| 0404builder&lt;br /&gt;
|-&lt;br /&gt;
| [[8.0.0-18|8.0.0]]&lt;br /&gt;
| v15047&lt;br /&gt;
| 37&lt;br /&gt;
| 2.44-6&lt;br /&gt;
| 0701builder&lt;br /&gt;
|-&lt;br /&gt;
| [[8.1.0-0_New3DS]]&lt;br /&gt;
|N/A&lt;br /&gt;
|N/A&lt;br /&gt;
| 2.45-5&lt;br /&gt;
|-&lt;br /&gt;
| [[9.0.0-20|9.0.0]]&lt;br /&gt;
| v17120&lt;br /&gt;
| 38&lt;br /&gt;
| 2.46-0&lt;br /&gt;
| 0828builder&lt;br /&gt;
|-&lt;br /&gt;
| [[9.3.0-21|9.3.0]]&lt;br /&gt;
| v18182&lt;br /&gt;
| 3F&lt;br /&gt;
| 2.48-3&lt;br /&gt;
| 1125builder&lt;br /&gt;
|-&lt;br /&gt;
| [[9.5.0-22|9.5.0]]&lt;br /&gt;
| v19216&lt;br /&gt;
| 40&lt;br /&gt;
| 2.49-0&lt;br /&gt;
| 0126builder&lt;br /&gt;
|-&lt;br /&gt;
| [[9.6.0-24|9.6.0]]&lt;br /&gt;
| v20262&lt;br /&gt;
| 49&lt;br /&gt;
| 2.50-1&lt;br /&gt;
| 0311builder&lt;br /&gt;
|-&lt;br /&gt;
| [[10.0.0-27|10.0.0]]&lt;br /&gt;
| v21288&lt;br /&gt;
| 4B&lt;br /&gt;
| 2.50-7&lt;br /&gt;
| 0812builder&lt;br /&gt;
|-&lt;br /&gt;
| [[10.2.0-28|10.2.0]]&lt;br /&gt;
| v22313&lt;br /&gt;
| 4C&lt;br /&gt;
| 2.50-9&lt;br /&gt;
| 1009builder&lt;br /&gt;
|-&lt;br /&gt;
| [[10.4.0-29|10.4.0]]&lt;br /&gt;
| v23341&lt;br /&gt;
| 50&lt;br /&gt;
| 2.50-11&lt;br /&gt;
| 1224builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.0.0-33|11.0.0]]&lt;br /&gt;
| v24368&lt;br /&gt;
| 52&lt;br /&gt;
| 2.51-0&lt;br /&gt;
| 0406builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.1.0-34|11.1.0]]&lt;br /&gt;
| v25396&lt;br /&gt;
| 56&lt;br /&gt;
| 2.51-2&lt;br /&gt;
| 0805builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.2.0-35|11.2.0]]&lt;br /&gt;
| v26432&lt;br /&gt;
| 58&lt;br /&gt;
| 2.52-0&lt;br /&gt;
| 1015builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.3.0-36|11.3.0]]&lt;br /&gt;
| v27476&lt;br /&gt;
| 5C&lt;br /&gt;
| 2.53-0&lt;br /&gt;
| 0126builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.4.0-37|11.4.0]]&lt;br /&gt;
| v28512&lt;br /&gt;
| 5E&lt;br /&gt;
| 2.54-0&lt;br /&gt;
| 0314builder&lt;br /&gt;
|-&lt;br /&gt;
| [[11.8.0-41|11.8.0]]&lt;br /&gt;
| v29557&lt;br /&gt;
| 64&lt;br /&gt;
| 2.55-0&lt;br /&gt;
| 0710pseg-ciuser&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The above kernel/FIRM versions are in the format: &amp;lt;KERNEL_VERSIONMAJOR&amp;gt;.&amp;lt;KERNEL_VERSIONMINOR&amp;gt;-&amp;lt;KERNEL_VERSIONREVISION&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SAFE_MODE_FIRM ===&lt;br /&gt;
SAFE_MODE is used for running the [[System_Settings#System_Updater|System Updater]]. SAFE_MODE_FIRM and NATIVE_FIRM for the initial versions are exactly the same, except for the system core version fields.&lt;br /&gt;
&lt;br /&gt;
=== TWL_FIRM ===&lt;br /&gt;
TWL_FIRM handles DS(i) backwards compatibility.&lt;br /&gt;
&lt;br /&gt;
The 3DS-mode ARM9 core seems to switch into DSi-mode(for running DSi-mode ARM9 code) by writing to a [[PDN]] register(this changes the memory layout to DSi-mode / etc, therefore this register poke *must* be executed from ITCM). This is the final 3DS-mode register poke before the ARM9 switches into DSi-mode. DS(i)-mode ARM7 code is run on the internal [[ARM7]] core, which is started up during TWL_FIRM boot. Trying to read from the exception-vector region(address 0x0) under this DSi-mode ARM7 seems to only return 0x00/0xFF data. Also note that this DSi-mode ARM7 runs code(stored in TWL_FIRM) which pokes some DSi-mode registers that on the DSi were used for disabling access to the DSi bootROMs, however these registers do not affect the 3DS DSi-mode ARM9/ARM7 &amp;quot;bootrom&amp;quot; region(exceptionvector region + 0x8000) at all.&lt;br /&gt;
&lt;br /&gt;
For shutting down the system, TWL_FIRM writes u8 value 8 to [[I2C]] MCU register 0x20. For returning to 3DS-mode, TWL_FIRM writes value 4 to that MCU register to trigger a hardware system reboot.&lt;br /&gt;
&lt;br /&gt;
The TWL_FIRM ARM11-process includes a TWL bootloader, see [http://dsibrew.org/wiki/Bootloader here] and [[Memory_layout#Detailed_TWL_FIRM_ARM11_Memory|here]] for details.&lt;br /&gt;
&lt;br /&gt;
TWL_FIRM verifies all TWL RSA padding with the following. This is different from the DSi &amp;quot;BIOS&amp;quot; code.&lt;br /&gt;
* The first byte must be 0x0.&lt;br /&gt;
* The second byte must be 0x1 or 0x2.&lt;br /&gt;
* Executes a while(&amp;lt;value of byte at current pos in RSA message&amp;gt;). When the second_byte in the message is 0x1, the byte at curpos must be 0xFF(otherwise the non-zero value of the byte at curpos doesn&#039;t matter). This loop must find a zero byte before offset 0x7F in the message otherwise an error is returned.&lt;br /&gt;
* Returns an address for msg_curpos+1.&lt;br /&gt;
totalhashdatasize = rsasig_bytesize - above position in the message for the hashdata. The actual &amp;quot;totalhashdatasize&amp;quot; in the RSA message must be &amp;lt;= &amp;lt;expected hashdata_size&amp;gt;(0x74 for bootloader). The TWL_FIRM code copies the RSA &amp;quot;hashdata&amp;quot; to the output buffer, using the actual size of the RSA &amp;quot;hashdata&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== AGB_FIRM ===&lt;br /&gt;
AGB_FIRM handles running GBA VC titles. The ARM9 FIRM section for TWL_FIRM and AGB_FIRM are exactly the same (for TWL_FIRM and AGB_FIRM versions which were updated with the same system-update).&lt;br /&gt;
&lt;br /&gt;
== FIRM Launch Parameters ==&lt;br /&gt;
The FIRM-launch parameters structure is located at FCRAM+0, size 0x1000-bytes. The ARM11-kernel copies this structure elsewhere, then clears the 0x1000-bytes at FCRAM+0. It will not handle an existing structure at FCRAM+0 if [[CONFIG Registers#CFG_BOOTENV|CFG_BOOTENV]] is zero. The ARM9 kernel [[Configuration_Memory#0x1FF80016|writes some values]] about the boot environment to AXI WRAM during init to enable this.&lt;br /&gt;
&lt;br /&gt;
Note: it seems NATIVE_FIRM ARM11-kernel didn&#039;t parse this during boot until [[3.0.0-5|3.0.0-X]]?&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;
| 0x300&lt;br /&gt;
| 0x100&lt;br /&gt;
| &#039;TLNC&#039; block created by TWL applications, handled by NS for backwards-compatibility purposes. See [[NS#Auto-boot|here]] for more info.&lt;br /&gt;
|-&lt;br /&gt;
| 0x400&lt;br /&gt;
| 0x4&lt;br /&gt;
| Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x410&lt;br /&gt;
| 0xC&lt;br /&gt;
| This is used for overriding the FIRM_* fields in [[Configuration_Memory]], when the flag listed below is set, in the following order(basically just data-copy from here to 0x1FF80060): &amp;quot;FIRM_?&amp;quot;, FIRM_VERSIONREVISION, FIRM_VERSIONMINOR, FIRM_VERSIONMAJOR, FIRM_SYSCOREVER, and FIRM_CTRSDKVERSION.&lt;br /&gt;
|-&lt;br /&gt;
| 0x438&lt;br /&gt;
| 0x4&lt;br /&gt;
| The kernel checks this field for value 0xFFFF, if it matches the kernel uses the rest of these parameter fields, otherwise FIRM-launch parameters fields are ignored by the kernel.&lt;br /&gt;
|-&lt;br /&gt;
| 0x43C&lt;br /&gt;
| 0x4&lt;br /&gt;
| CRC32, this is calculated starting at FIRM-params offset 0x400, with size 0x140(with this field cleared to zero during calculation). When invalid the kernel clears the entire buffer used for storing the FIRM-params, therefore no actual FIRM-params are handled after that.&lt;br /&gt;
|-&lt;br /&gt;
| 0x440&lt;br /&gt;
| 0x10&lt;br /&gt;
| Titleinfo [[Filesystem_services#ProgramInfo|Program Info]], used by NS during NS startup, to launch the specified title when the below flag is set.&lt;br /&gt;
|-&lt;br /&gt;
| 0x450&lt;br /&gt;
| 0x10&lt;br /&gt;
| Titleinfo [[Filesystem_services#ProgramInfo|Program Info]]. This might be used for returning to the specified title, once the above launched title terminates?&lt;br /&gt;
|-&lt;br /&gt;
| 0x460&lt;br /&gt;
| 0x4&lt;br /&gt;
| Bit0: 0 = titleinfo structure isn&#039;t set, 1 = titleinfo structure is set.&lt;br /&gt;
|-&lt;br /&gt;
| 0x480&lt;br /&gt;
| 0x20&lt;br /&gt;
| This can be set via buf1 for [[APT:SendDeliverArg]]/[[APT:StartApplication]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A0&lt;br /&gt;
| 0x10&lt;br /&gt;
| This can be set by [[NSS:SetWirelessRebootInfo]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B0&lt;br /&gt;
| 0x14&lt;br /&gt;
| SHA1-HMAC of the banner for TWL/NTR titles. This can be set by [[NSS:SetTWLBannerHMAC]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x500&lt;br /&gt;
| 0x40&lt;br /&gt;
| This is used by [[APT:LoadSysMenuArg]] and [[APT:StoreSysMenuArg]].&lt;br /&gt;
|-&lt;br /&gt;
| 0xD70&lt;br /&gt;
| 0x290&lt;br /&gt;
| [[Config Savegame|Config]] data struct for LGY FIRM.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Flags from offset 0x400:&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;
| This can be used for overriding the default FCRAM [[Memory_layout|memory-regions]] allocation sizes(APPLICATION, SYSTEM, and BASE). The values for this is the same as [[Configuration_Memory#APPMEMTYPE|Configmem-APPMEMTYPE]]. Values 0-1 are handled the same way by the kernel. However for NS, 0=titleinfo structure for launching a title isn&#039;t set, while non-zero=titleinfo structure is set.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x3&lt;br /&gt;
| Setting bit0 here enables overriding the FIRM_* fields in [[Configuration_Memory]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Config Savegame|Config]] struct for booting LGY FIRMs from offset 0xD70:&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;
| Config block 0x30000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x1&lt;br /&gt;
| Config block 0x70001.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x1&lt;br /&gt;
| System language (Config block 0xA0002).&lt;br /&gt;
|-&lt;br /&gt;
| 0x3&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[Cfg:SecureInfoGetRegion|Region from SecureInfo]] (&amp;quot;pseudo-block&amp;quot; 0x140000 in LGY FIRM).&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0xF&lt;br /&gt;
| [[CfgS:SecureInfoGetSerialNo|Serial number from SecureInfo]] (&amp;quot;pseudo-block&amp;quot; 0x140001 in LGY FIRM).&lt;br /&gt;
|-&lt;br /&gt;
| 0x13&lt;br /&gt;
| 0x1&lt;br /&gt;
| Config block 0x100002.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x10&lt;br /&gt;
| Config block 0x100003.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x2&lt;br /&gt;
| Config block 0x100000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x1&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x27&lt;br /&gt;
| 0x1&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x94&lt;br /&gt;
| Config block 0x100001.&lt;br /&gt;
|-&lt;br /&gt;
| 0xBC&lt;br /&gt;
| 0x2&lt;br /&gt;
| Config block 0x50000.&lt;br /&gt;
|-&lt;br /&gt;
| 0xBE&lt;br /&gt;
| 0x2&lt;br /&gt;
| Config block 0x50001.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0&lt;br /&gt;
| 0x38&lt;br /&gt;
| Config block 0x50002.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF8&lt;br /&gt;
| 0x20&lt;br /&gt;
| Config block 0x50004.&lt;br /&gt;
|-&lt;br /&gt;
| 0x118&lt;br /&gt;
| 0x134&lt;br /&gt;
| Config block 0x20000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24C&lt;br /&gt;
| 0x10&lt;br /&gt;
| Config block 0x40000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25C&lt;br /&gt;
| 0x1C&lt;br /&gt;
| Config block 0x40001.&lt;br /&gt;
|-&lt;br /&gt;
| 0x278&lt;br /&gt;
| 0x4&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x27C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x280&lt;br /&gt;
| 0x8&lt;br /&gt;
| Config block 0x30001.&lt;br /&gt;
|-&lt;br /&gt;
| 0x288&lt;br /&gt;
| 0x2&lt;br /&gt;
| CRC16 over the above fields from offset 0x0, size 0x288. If not valid, LGY FIRM uses dummy data from .(ro)data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28A&lt;br /&gt;
| 0x2&lt;br /&gt;
| If non-zero, the size (below) is hardcoded (currently) to value 0x288, otherwise the size field below is used.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Value 0x288 (size used for verifying the CRC16).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Cleared to zero&amp;quot; fields above are not read at all by LGY FIRM.&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=System_Settings&amp;diff=20366</id>
		<title>System Settings</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=System_Settings&amp;diff=20366"/>
		<updated>2017-10-01T00:47:54Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: launch parameters&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;System Settings&#039;&#039;&#039; allows you to manage various settings, use [[System Transfer]], and use Data Management.&lt;br /&gt;
&lt;br /&gt;
All applications(CTR/TWL) launched by System Settings are launched via [[NS|APT:PrepareToDoApplicationJump/APT:DoApplicationJump]], such as DS INTERNET and [[System Transfer]].&lt;br /&gt;
&lt;br /&gt;
== Accessible services ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Service&lt;br /&gt;
!  Last seen on version&lt;br /&gt;
|-&lt;br /&gt;
| [[Filesystem_services#Filesystem_service_.22fs:USER.22|fs:USER]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[GSP_Services|gsp:Gpu]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NDM_Services|ndm:u]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NS#.22APT:A.22_Service|APT:A]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[AC_Services|ac:i]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[ACT_Services|act:a]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Application_Manager_Services#Application_Manager_services|am:sys]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[BOSS_Services|boss:P]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Camera_Services#cam:s_.28PORT_CAL.29|cam:s]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CECD_Services|cecd:s]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Config_Services#Config_NVRAM_service_.22cfg:nor.22|cfg:nor]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DSP_Services|dsp::DSP]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Friend_Services|frd:a]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[GSP_Services|gsp::Lcd]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[HTTP_Services|http:C]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[MIC_Services|mic:u]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[News_Services#News_service_.22news:s.22|news:s]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NIM_Services#NIM_user_service_.22nim:u.22|nim:u]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NS#NS_Service_.22ns:s.22|ns:s]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NWM_Services#NWM_service_.22nwm::EXT.22|nwm::EXT]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NWM_Services#NWM_infrastructure_service_.22nwm::INF.22|nwm::INF]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NWM_Services#NWM_socket_service_.22nwm::SOC.22|nwm::SOC]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[PTM_Services#GetSystemTime_PTM_Service_.22ptm:gets.22|ptm:gets]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[PTM_Services#SysMenu_PTM_Service_.22ptm:sysm.22|ptm:sysm]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Socket_Services#Socket_privileged_service_.22soc:P.22|soc:P]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Socket_Services#Socket_user_service_.22soc:U.22|soc:U]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[SSL_Services|ssl:C]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Camera_Services#y2r:u|y2r:u]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[QTM_Services#QTM_system_service_.22qtm:s.22|qtm:s]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Config_Services#Config_service_.22cfg:i.22|cfg:i]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|-&lt;br /&gt;
| [[HID_Services#HID_service_.22hid:SPVR.22|hid:SPVR]]&lt;br /&gt;
| [[9.0.0-20|v8202]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Data Management ==&lt;br /&gt;
&lt;br /&gt;
=== 3DS ===&lt;br /&gt;
&lt;br /&gt;
Here you can manage 3DS extra data, and 3DSWare/&amp;quot;Software&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
When managing 3DS Software installed to the SD Card, the [[Title Database|title.db]] is read by the core receiving [[Application Manager Services PXI|AM]] commands. From the title.db file, AM gets a list of installed titles, title sizes and the name of the &amp;quot;.cmd&amp;quot; file for each title, which is used to check the authenticity of the title data(product code, title version, and if an electronic manaual is used, is also kept for each title, in the title.db, but won&#039;t be used by the Data Management Utility). For each title listed, it checks if the title is authentic(via the .cmd file). If the title passes authentication, Data Management decrypts/reads the ICN data from the executable NCCH([[CXI]]) and displays it along with the archived title size. If a title doesn&#039;t pass authentication, a placeholder icon(light grey with a &#039;?&#039; in the center), name (&#039;????????&#039;) and a size of zero are used. Deleting titles removes the title data from the title.db and import.db, and deletes the directory of the content.&lt;br /&gt;
&lt;br /&gt;
=== DSiWare ===&lt;br /&gt;
&lt;br /&gt;
See [[DSiWare Exports]].&lt;br /&gt;
&lt;br /&gt;
== System Format ==&lt;br /&gt;
Most of the System Format is done with [[FS:InitializeCtrFileSystem]]. This command updates the high u64 of the keyY stored in [[Nand/private/movable.sed|movable.sed]]. Since this keyY was updated, the data stored on [[SD_Filesystem|SD]] card(sdmc/Nintendo 3DS/&amp;lt;ID0&amp;gt;/&amp;lt;ID1&amp;gt;) and the data under [[Flash_Filesystem|nand/data/&amp;lt;ID0&amp;gt;]] is rendered useless, since that data used the old keyY. Since that data is no longer usable, the system then deletes the two above SD/NAND directories.&lt;br /&gt;
&lt;br /&gt;
When you first enter the System Format menu, it will check if a NNID is linked. If there&#039;s a linked-NNID, it will then display: &amp;quot;Are you ready to connect to the Internet to check whether data can be formatted&amp;quot;? Continuing will only result in connecting to wifi for checking in with Nintendo&#039;s servers, which may fail if the console is banned. Once that&#039;s done it will continue with the usual system-format messages; proceeding will result in the NNID cookie, potentially still present on NAND backups or multiboot scenarios, being invalidated until the next sign-in (at which point even old sessions will be valid again).&lt;br /&gt;
&lt;br /&gt;
== System Updater ==&lt;br /&gt;
The system updater title is identical to the regular system settings, except only system update is accessible with this. On dev units, this title can only be launched under certain conditions.&lt;br /&gt;
&lt;br /&gt;
On retail units, this title is accessible in scenarios where you have to update via the Internet to use certain 3DS software other than the home menu. i.e. using the eShop, on a system version less than the current one. When one selects &amp;quot;Cancel&amp;quot; from here on retail, the system will shutdown. [[NS]] launches SAFE_MODE_FIRM for running this title, when the [[Configuration_Memory|UPDATEFLAG]] is set during system boot.&lt;br /&gt;
&lt;br /&gt;
==Exiting System Settings==&lt;br /&gt;
Upon exit, the system reboots instead of simply returning to home menu.&lt;br /&gt;
&lt;br /&gt;
== Parental Controls Reset ==&lt;br /&gt;
The following refers to the functionality which generates the Parental Controls &amp;quot;Master Key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  System version, for the mset title&lt;br /&gt;
!  Parental controls reset functionality version&lt;br /&gt;
!  Inquiry number length&lt;br /&gt;
!  Notes&lt;br /&gt;
|-&lt;br /&gt;
| [[1.0.0-0|1.0.0-X]] - [[6.3.0-12|6.3.0-X]]&lt;br /&gt;
| v0&lt;br /&gt;
| 8&lt;br /&gt;
| Mostly inherited from the Wii/DSi algorithm which used CRC-32 (0xEDB88320) with custom XOR-out (0xAAAA). 0x14C1 was added to produce the final result.&lt;br /&gt;
&lt;br /&gt;
For the 3DS algorithm, only constants were changed: the polynomial was changed to 0xEDBA6320 and the addition constant became 0x1657.&lt;br /&gt;
&lt;br /&gt;
The input to either function is an ASCII string of the format &amp;quot;%02u%02u%04u&amp;quot; where the parameters are month, day, and low 4 digits of the inquiry number. The low 5 decimal digits from the output u32 are then used for the master key.&lt;br /&gt;
&lt;br /&gt;
Because of the date being used in the algorithm, this results in the master key only being valid on a particular day, though this is trivially defeated by setting the system time to the correct date that the key was generated on.&lt;br /&gt;
&lt;br /&gt;
This had a minor refactor in [[6.0.0-11|6.0.0-X]] but is functionally identical.&lt;br /&gt;
|-&lt;br /&gt;
| [[7.0.0-13|7.0.0-X]] - [[7.1.0-16|7.1.0-X]]&lt;br /&gt;
| v1&lt;br /&gt;
| 10&lt;br /&gt;
| Introduced a new scheme using HMAC-SHA-256. The HMAC key is loaded from mset .rodata, and differs between regions.&lt;br /&gt;
&lt;br /&gt;
The inquiry number was bumped from 8 digits to 10 digits, but the same function is used to generate the digits as in v0 (derived from MAC address).&lt;br /&gt;
&lt;br /&gt;
All digits of the inquiry number are now actually used in the master key derivation function, as the string format is now &amp;quot;%02u%02u%010u&amp;quot; (month, day, inquiry number). This buffer is hashed (as above), and a little-endian word is read from the start of the output hash. The low 5 decimal digits of this word are used as the master key.&lt;br /&gt;
|-&lt;br /&gt;
| [[7.2.0-17|7.2.0-X]] - current&lt;br /&gt;
| v2&lt;br /&gt;
| 10&lt;br /&gt;
| Extension of v1 featuring a number of changes which serve to obscure the HMAC key used.&lt;br /&gt;
&lt;br /&gt;
The HMAC key is now stored in a separate file stored in the CVer RomFS, called [[CVer#masterkey.bin|masterkey.bin]]. This is used to update the key independently of the mset title. In order to make this possible, a scheme was devised to encode the required key within the inquiry number - the first digit denotes region, and the next two digits represent the key version. These values match up with values stored in the masterkey.bin header. For compatibility with v1 (as inquiry number length did not change), the version values begin at 10 - when parsing an inquiry number, a &amp;quot;version&amp;quot; of less than 10 should be handled as algorithm v1.&lt;br /&gt;
&lt;br /&gt;
The HMAC key is now also encrypted in masterkey.bin. This uses AES-128-CTR using a (normal) key in mset .rodata (which differs between regions), with the initial counter value also stored in masterkey.bin.&lt;br /&gt;
&lt;br /&gt;
At some point, Nintendo chose to &amp;quot;abandon&amp;quot; the original JPN region ID (0), and moved to region ID 9 instead (which usually doesn&#039;t exist). It is unknown why they made this change, as the AES key used for both of these IDs is the same.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ExtData ==&lt;br /&gt;
The ExtData [[Extdata#Filesystem|File System]] for System Settings is as follows:&lt;br /&gt;
&lt;br /&gt;
 root&lt;br /&gt;
 ├── icon&lt;br /&gt;
 ├── boss&lt;br /&gt;
 └── user&lt;br /&gt;
     ├── Backup.dat&lt;br /&gt;
     └── MsetExt.dat&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  File&lt;br /&gt;
!  Details&lt;br /&gt;
!  Size&lt;br /&gt;
!  FW Introduced&lt;br /&gt;
!  Plaintext&lt;br /&gt;
|-&lt;br /&gt;
|  icon&lt;br /&gt;
|  Stubbed. Always image 00000002.&lt;br /&gt;
|  0x4 Bytes&lt;br /&gt;
|  n/a&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|  MsetExt.dat&lt;br /&gt;
|  [[DSiWare Exports]] Management&lt;br /&gt;
|  0x960 Bytes&lt;br /&gt;
|  [[2.0.0-2]]&lt;br /&gt;
|  [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/SystemSettingsExtdata/MsetExt.dat Download]&lt;br /&gt;
|-&lt;br /&gt;
|  Backup.dat&lt;br /&gt;
|  [[SD Savedata Backups]] Management&lt;br /&gt;
|  0xf5a0 Bytes&lt;br /&gt;
|  [[6.0.0-11]]&lt;br /&gt;
|  [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/SystemSettingsExtdata/Backup.dat Download]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MsetExt.dat ===&lt;br /&gt;
This keeps a record for the DSiWare Exports for a maximum of 300 exports. Each record is in the format:&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;
|  0&lt;br /&gt;
|  4&lt;br /&gt;
|  Game Code in Little Endian &lt;br /&gt;
|-&lt;br /&gt;
|  0x4&lt;br /&gt;
|  4&lt;br /&gt;
|  Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All unused entries are filled with &amp;quot;0xff&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Backup.dat ===&lt;br /&gt;
This keeps a record for the 30 save data backup slots for [[SD Savedata Backups]]. Each entry corresponds to an individual backup slot.&lt;br /&gt;
&lt;br /&gt;
Entry:&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;
|  0x000&lt;br /&gt;
|  8&lt;br /&gt;
|  Reserved&lt;br /&gt;
|-&lt;br /&gt;
|  0x8&lt;br /&gt;
|  0x800 (0x80*16)&lt;br /&gt;
|  16 UTF-16 Title Strings&lt;br /&gt;
|-&lt;br /&gt;
|  0x808&lt;br /&gt;
|  8&lt;br /&gt;
|  Title ID&lt;br /&gt;
|-&lt;br /&gt;
|  0x810&lt;br /&gt;
|  8&lt;br /&gt;
|  Unknown&lt;br /&gt;
|-&lt;br /&gt;
|  0x818&lt;br /&gt;
|  8&lt;br /&gt;
|  Total Save Data Size&lt;br /&gt;
|-&lt;br /&gt;
|  0x820&lt;br /&gt;
|  0x10&lt;br /&gt;
|  Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Launch parameters ==&lt;br /&gt;
System Settings can start at specific menus when certain parameters are given.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; - returns to settings menu instead of rebooting&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;
! Action&lt;br /&gt;
|-&lt;br /&gt;
| 0x01&lt;br /&gt;
| Initial setup (system not actually formatted, music plays earlier)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| Internet Settings -&amp;gt; Connection Settings&lt;br /&gt;
|-&lt;br /&gt;
| 0x11&lt;br /&gt;
| Internet Settings -&amp;gt; Other Information&lt;br /&gt;
|-&lt;br /&gt;
| 0x6e&lt;br /&gt;
| Internet Settings -&amp;gt; Connection Settings&lt;br /&gt;
|-&lt;br /&gt;
| 0x6f&lt;br /&gt;
| Parental Controls&lt;br /&gt;
|-&lt;br /&gt;
| 0x70&lt;br /&gt;
| Parental Controls birthday entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x71&lt;br /&gt;
| Data Management&lt;br /&gt;
|-&lt;br /&gt;
| 0x72&lt;br /&gt;
| 3DS Software Management&lt;br /&gt;
|-&lt;br /&gt;
| 0x73&lt;br /&gt;
| 3DS Extra Data Management&lt;br /&gt;
|-&lt;br /&gt;
| 0x74&lt;br /&gt;
| DSiWare Management&lt;br /&gt;
|-&lt;br /&gt;
| 0x75&lt;br /&gt;
| StreetPass Management&lt;br /&gt;
|-&lt;br /&gt;
| 0x76&lt;br /&gt;
| Internet Settings*&lt;br /&gt;
|-&lt;br /&gt;
| 0x77&lt;br /&gt;
| Other Settings, second-to-last page*&lt;br /&gt;
|-&lt;br /&gt;
| 0x78&lt;br /&gt;
| Touch Screen calibration&lt;br /&gt;
|-&lt;br /&gt;
| 0x79&lt;br /&gt;
| Circle Pad calibration&lt;br /&gt;
|-&lt;br /&gt;
| 0x7a&lt;br /&gt;
| System Update&lt;br /&gt;
|-&lt;br /&gt;
| 0x7b&lt;br /&gt;
| System Update&lt;br /&gt;
|-&lt;br /&gt;
| 0x7c&lt;br /&gt;
| Format System Memory*&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Internet_Browser&amp;diff=20188</id>
		<title>Internet Browser</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Internet_Browser&amp;diff=20188"/>
		<updated>2017-07-24T17:01:55Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: fix link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The 3DS Internet Browser was added in the June 2011 Update for JPN/EUR/USA.&lt;br /&gt;
&lt;br /&gt;
From the Internet Browser help section:&lt;br /&gt;
In compliance with the LGPL, the source code of the OSS is available via the Nintendo website.&lt;br /&gt;
This source code can be downloaded here:&lt;br /&gt;
[http://mediacontent.nintendo-europe.com/NOE/images/service/OpenSources.zip] [http://www.nintendo.co.jp/support/oss/index.html]&lt;br /&gt;
&lt;br /&gt;
The 3DS Internet Browser is [http://en.wikipedia.org/wiki/Netfront Netfront] Browser NX v1.0 based on [http://en.wikipedia.org/wiki/WebKit WebKit] engine.&lt;br /&gt;
&lt;br /&gt;
On O3DS the exheader name of this title is &amp;quot;SPIDER&amp;quot;; on N3DS, &amp;quot;SKATER&amp;quot;.&lt;br /&gt;
The only difference between the ExeFS .code for each region of the Old3DS/New3DS browser, is byte values for the title uniqueID/region.&lt;br /&gt;
&lt;br /&gt;
A [[#Dummy_web-browser|&amp;quot;dummy&amp;quot; browser]] (which replaces the actual browser) is being included with cartdrige games shipping with system updates starting with [[9.9.0-26|9.9.0-X]]. &lt;br /&gt;
In addition, versions of the real browser since 9.9.0-26X attempt to [[#Forced_system-update|check-in with a Nintendo server]] to determine if the existing browser version is out of date.&lt;br /&gt;
&lt;br /&gt;
==[[New 3DS]] Internet Browser==&lt;br /&gt;
New3DS has a separate browser title, with the exheader name &amp;quot;SKATER&amp;quot;.&lt;br /&gt;
Unlike the Old3DS browser, the New3DS browser has videos+HTML5 support. &lt;br /&gt;
&lt;br /&gt;
This browser also has a filter enabled by default in the JPN version. &lt;br /&gt;
Disabling it requires paying money with a credit-card, for [[NIM_Services|purchasing]] web-browser [[Title_list/DLC|DLC]].&lt;br /&gt;
During startup the browser does various HTTPS comms. When visting an URL, the browser sends a plaintext HTTP POST here: [http://ars.ifuser.jp:20080/ars2/rating]. The raw POST data begins with &amp;quot;ARS/2.0\r\n\x00&amp;quot;, the rest appears to be encrypted. The server reply content also has this ARS header + encrypted data. This appears to use a fixed xorpad, likely from a fixed encryption CTR/IV. The server content responses for allowed sites, and blocked sites, are fixed. When the server returns that the site is blocked, the browser goes to this page: [http://ars.ifuser.jp/filter/44.html](the Referrer header value is set to the same URL it&#039;s actually requesting).&lt;br /&gt;
&lt;br /&gt;
The WebKit source was updated since the Old3DS browser.&lt;br /&gt;
The New3DS browser uses the following services: [[MVD_Services|mvd:STD]] and [[IR_Services|ir:rst]](DLC-related services are used too but those aren&#039;t New3DS specific).&lt;br /&gt;
Video decoding is done with [[MVD_Services|mvd:STD]]. Audio decoding/playback is done with a browser-specific DSP binary. The Old3DS browser used CSND for audio playback, the New3DS browser doesn&#039;t have access to that at all since it uses DSP instead.&lt;br /&gt;
&lt;br /&gt;
=== Video / libstagefright ===&lt;br /&gt;
The browser manual includes licenses for Android and PacketVideo. The browser uses libstagefright from Android. Just like WebKit, the browser appears to use a very old version of libstagefright with security/other changes back-ported(for example, the v10.7 browser libstagefright codebase seems to be older than [https://android.googlesource.com/platform/frameworks/av/+/ec77122351b4e78c1fe5b60a208f76baf8c67591%5E%21/media/libstagefright/MPEG4Extractor.cpp this]). This codebase is missing certain chunk-parsing code for 3GP.&lt;br /&gt;
&lt;br /&gt;
HTTP for libstagefright is internally handled with [[HTTP_Services|HTTPC]], with a similar(?) set of RootCAs as for browser-version-check.&lt;br /&gt;
&lt;br /&gt;
===User-Agent and Browser Versions===&lt;br /&gt;
Normal user-agent format: &amp;lt;code style=&amp;quot;font-size:larger;&amp;quot;&amp;gt;Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/&amp;lt;WebKit version&amp;gt; (KHTML, like Gecko) NX/&amp;lt;Netfront version&amp;gt; Mobile NintendoBrowser/&amp;lt;Mobile NintendoBrowser version&amp;gt;.&amp;lt;region&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;region&amp;gt; can be one of the following: &amp;quot;JP&amp;quot;, &amp;quot;US&amp;quot;, or &amp;quot;EU&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Mobile User-Agent is always &amp;lt;code&amp;gt;Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Mobile NintendoBrowser version(displayed in browser settings)&lt;br /&gt;
! Normal UA&lt;br /&gt;
! CDN Title-version&lt;br /&gt;
! Network-only system-update version&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.9934&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.8 Mobile NintendoBrowser/1.0.9934.&amp;lt;region&amp;gt;&lt;br /&gt;
| v10&lt;br /&gt;
| [[9.0.0-20]]&lt;br /&gt;
| Initial version.&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.9996&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.10 Mobile NintendoBrowser/1.1.9996.&amp;lt;region&amp;gt;&lt;br /&gt;
| v1027&lt;br /&gt;
| [[9.3.0-21]]&lt;br /&gt;
| See below regarding OSS changes.&lt;br /&gt;
|-&lt;br /&gt;
| 1.2.10085&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.13 Mobile NintendoBrowser/1.2.10085.&amp;lt;region&amp;gt;&lt;br /&gt;
| v2051&lt;br /&gt;
| [[9.6.0-24]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v3075&lt;br /&gt;
| v9.9 CUP&lt;br /&gt;
| v9.9 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.10126&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.15 Mobile NintendoBrowser/1.3.10126.&amp;lt;region&amp;gt;&lt;br /&gt;
| v3077&lt;br /&gt;
| [[9.9.0-26]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.10138&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.17 Mobile NintendoBrowser/1.4.10138.&amp;lt;region&amp;gt;&lt;br /&gt;
| v4096&lt;br /&gt;
| [[10.2.0-28]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.5.10143&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.5.10143.&amp;lt;region&amp;gt;&lt;br /&gt;
| v5121&lt;br /&gt;
| [[10.4.0-29]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.6.10147&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.6.10147.&amp;lt;region&amp;gt;&lt;br /&gt;
| v6144&lt;br /&gt;
| [[10.6.0-31]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v7168&lt;br /&gt;
| v10.7 CUP&lt;br /&gt;
| v10.7 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7.10150&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.7.10150.&amp;lt;region&amp;gt;&lt;br /&gt;
| v7184&lt;br /&gt;
| [[10.7.0-32]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.8.10156&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.20 Mobile NintendoBrowser/1.8.10156.&amp;lt;region&amp;gt;&lt;br /&gt;
| v8192&lt;br /&gt;
| [[11.1.0-34]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v9217&lt;br /&gt;
| v11.4 CUP&lt;br /&gt;
| v11.4 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.9.10160&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.20 Mobile NintendoBrowser/1.9.10160.&amp;lt;region&amp;gt;&lt;br /&gt;
| v9232&lt;br /&gt;
| [[11.4.0-37]]&lt;br /&gt;
| See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the latest Old3DS browser WebKit version at the time the initial New3DS browser was released, was the following: 532.8.&lt;br /&gt;
&lt;br /&gt;
The first version of the KOR New3DS browser was v9.6(which was when the New3DS KOR titles were originally added). Each version of the KOR browser has the same NintendoBrowser version as the other regions. The KOR browser has been only updated when the browser for the other regions were updated, hence the title-versions are the same as well. The KOR browser ExeFS .code is different from the other regions(more than just region-related IDs etc).&lt;br /&gt;
&lt;br /&gt;
==== OSS 9.0 and 9.3 diff ====&lt;br /&gt;
The following is a diff of the OSS archives from [http://www.nintendo.co.jp/support/oss/index.html here], for v9.0 and v9.3.&lt;br /&gt;
&lt;br /&gt;
 Files NewNintendo3DS_OpenSources9.0.0-/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp and NewNintendo3DS_OpenSources9.3.0-/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp differ&lt;br /&gt;
 Files NewNintendo3DS_OpenSources9.0.0-/WKC/WebKit/WKC/webkit/WKCVersion.h and NewNintendo3DS_OpenSources9.3.0-/WKC/WebKit/WKC/webkit/WKCVersion.h differ&lt;br /&gt;
&lt;br /&gt;
WKC_CUSTOMER_RELEASE_VERSION was changed from &amp;quot;0.5.8&amp;quot; to &amp;quot;0.5.10&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following code was added to ResourceHandleManager::doRedirect(): curl_easy_setopt(d-&amp;gt;m_handle, CURLOPT_SHARE, 0);&lt;br /&gt;
&lt;br /&gt;
==== v9.6 ====&lt;br /&gt;
WebKit/OSS code was actually updated.&lt;br /&gt;
ExeFS .code was updated. The following files in RomFS were updated:&lt;br /&gt;
* &amp;quot;/banner/CN/Skater.icn&amp;quot; and &amp;quot;/banner/KR/Skater.icn&amp;quot;.&lt;br /&gt;
* &amp;quot;/browser/rootca.pem&amp;quot;&lt;br /&gt;
* &amp;quot;/build/buildinfo.dat&amp;quot;&lt;br /&gt;
* &amp;quot;/cairo.cro.lex&amp;quot; and &amp;quot;/.crr/static.crr&amp;quot;&lt;br /&gt;
* &amp;quot;/lyt/Button/ButtonSelectHSearch.arc&amp;quot;&lt;br /&gt;
* &amp;quot;/lyt/Kbd/Swkbd.arc&amp;quot;&lt;br /&gt;
* &amp;quot;lyt/Kbd.arc&amp;quot;&lt;br /&gt;
* &amp;quot;skater.msbt&amp;quot; under all of the &amp;quot;/message/&amp;lt;region&amp;gt;_&amp;lt;language&amp;gt;/&amp;quot; directories.&lt;br /&gt;
* &amp;quot;/oss.cro.lex&amp;quot;, &amp;quot;/peer.cro.lex&amp;quot;, &amp;quot;/static.crs&amp;quot;, and &amp;quot;/webkit.cro.lex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following was added to RomFS:&lt;br /&gt;
* &amp;quot;/favicon/naver.dat&amp;quot;&lt;br /&gt;
* A &amp;quot;KO&amp;quot; directory under &amp;quot;/iwnn&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== v9.9 ====&lt;br /&gt;
ExeFS:/.code was updated.&lt;br /&gt;
&lt;br /&gt;
The only RomFS changes is file-updating, all of the following files were updated:&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /cairo.cro.lex&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex&lt;br /&gt;
 /peer.cro.lex&lt;br /&gt;
 /static.crs&lt;br /&gt;
 /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
See [https://gist.github.com/yellows8/9fb509fde4112339f342 here] for a diff of the OSS(WebKitLibraries/ is not included due to the massive cairo library diff). An exploitable security vuln(which was already known in the context of 3DS webkit) was fixed. [[User:Yellows8|Yellows8]]&#039; private(at the time of writing) exploit for it is based on the PoC from [http://pastebin.com/ufBCQKda here](see the pastebin for the actual pastebin author).&lt;br /&gt;
&lt;br /&gt;
==== v10.2 ====&lt;br /&gt;
The libstagefright build in the main SKATER codebin was updated to a version which fixed libstagefright vuln(s): the vuln used in [[browserhax|browserhax_fright]] at the time of sysupdate release was fixed. The *only* code changed in the main codebin, was code related to libstagefright.&lt;br /&gt;
&lt;br /&gt;
The only RomFS changes is file-updating, all of the following files were updated(see the forced-sysupdate section regarding what changed in the message files):&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex&lt;br /&gt;
 /static.crs&lt;br /&gt;
 /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
OSS diff:&lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/WKC/WebKit/WKC/webkit/WKCVersion.h b/NewNintendo3DS_OpenSources10.2.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index 4543297..0860336 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;0.5.15&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;0.5.17&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;536.30&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/ChangeLog b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 index a5abb35..cf5a9fa 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 @@ -1,3 +1,12 @@&lt;br /&gt;
 +2013-11-05  Ryosuke Niwa  &amp;lt;rniwa@webkit.org&amp;gt;&lt;br /&gt;
 +&lt;br /&gt;
 +        Use-after-free in SliderThumbElement::dragFrom&lt;br /&gt;
 +        https://bugs.webkit.org/show_bug.cgi?id=123873&lt;br /&gt;
 +&lt;br /&gt;
 +        Reviewed by Andreas Kling.&lt;br /&gt;
 +&lt;br /&gt;
 +        Merge https://chromium.googlesource.com/chromium/blink/+/04a23bfca2d04101a1828d36ff36c29f3a24f34b&lt;br /&gt;
 +&lt;br /&gt;
  2015-02-06  Maciej Stachowiak  &amp;lt;mjs@apple.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
          REGRESSION(r179706): Caused memory corruption on some tests (Requested by _ap_ on #webkit).&lt;br /&gt;
 @@ -879,7 +888,7 @@&lt;br /&gt;
          * rendering/RenderLineBoxList.cpp:&lt;br /&gt;
          (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):&lt;br /&gt;
  &lt;br /&gt;
 -2014-01-21  LÃ¡szlÃ³ LangÃ³  &amp;lt;llango.u-szeged@partner.samsung.com&amp;gt;&lt;br /&gt;
 +2014-01-21  Laszlo Lango  &amp;lt;llango.u-szeged@partner.samsung.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
          Assertion failure in Range::nodeWillBeRemoved&lt;br /&gt;
          https://bugs.webkit.org/show_bug.cgi?id=121694&lt;br /&gt;
 @@ -1879,7 +1888,7 @@&lt;br /&gt;
  &lt;br /&gt;
  2012-09-14  Simon Fraser  &amp;lt;simon.fraser@apple.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 -        REGRESSION: transition doesnât always override transition-property&lt;br /&gt;
 +        REGRESSION: transition doesnft always override transition-property&lt;br /&gt;
          https://bugs.webkit.org/show_bug.cgi?id=96658&lt;br /&gt;
  &lt;br /&gt;
          Reviewed by Dean Jackson.&lt;br /&gt;
 @@ -3691,8 +3700,8 @@&lt;br /&gt;
              glyph with font data for the primary font, presumably to meet the SVG&lt;br /&gt;
              spec requirement: &amp;quot;If the references to alternate glyphs do not result&lt;br /&gt;
              in successful identification of alternate glyphs to use, then the&lt;br /&gt;
 -            character(s) that are inside of the çª¶åltGlyphçª¶?element are rendered as&lt;br /&gt;
 -            if the çª¶åltGlyphçª¶?element were a çª¶?spançª¶?element instead.&amp;quot;&lt;br /&gt;
 +            character(s) that are inside of the âaltGlyphâ?element are rendered as&lt;br /&gt;
 +            if the âaltGlyphâ?element were a â?spanâ?element instead.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
              If the alt glyph is not then found we are in the case from the spec&lt;br /&gt;
              and indeed we should use the primary font. However, we end up replacing the GlyphPage&lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/html/RangeInputType.cpp b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 index 484adec..d7e9e8d 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 @@ -164,7 +164,7 @@ void RangeInputType::handleMouseDownEvent(MouseEvent* event)&lt;br /&gt;
      ASSERT(element()-&amp;gt;hasShadowRoot());&lt;br /&gt;
      if (targetNode != element() &amp;amp;&amp;amp; !targetNode-&amp;gt;isDescendantOf(element()-&amp;gt;shadowTree()-&amp;gt;oldestShadowRoot()))&lt;br /&gt;
          return;&lt;br /&gt;
 -    SliderThumbElement* thumb = sliderThumbElementOf(element());&lt;br /&gt;
 +    RefPtr&amp;lt;SliderThumbElement&amp;gt; thumb = sliderThumbElementOf(element());&lt;br /&gt;
      if (targetNode == thumb)&lt;br /&gt;
          return;&lt;br /&gt;
      thumb-&amp;gt;dragFrom(event-&amp;gt;absoluteLocation());&lt;br /&gt;
&lt;br /&gt;
==== v10.4 ====&lt;br /&gt;
The ExeFS codebin was updated, the only change was that the following code was updated in the actual NupCheck HTTPS request function:&lt;br /&gt;
* Previous version: sprintf(out, &amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/2/%s&amp;quot;, region);&lt;br /&gt;
* Current  version: sprintf(out, &amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/%d/%s&amp;quot;, 3, region);&lt;br /&gt;
&lt;br /&gt;
libpng was updated from version 1.5.21 to 1.5.24.&lt;br /&gt;
&lt;br /&gt;
The following RomFS files were updated(see the forced-sysupdate section regarding what changed in the message files):&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /cairo.cro.lex&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex differ&lt;br /&gt;
 /peer.cro.lex differ&lt;br /&gt;
 /static.crs differ&lt;br /&gt;
 /webkit.cro.lex differ&lt;br /&gt;
&lt;br /&gt;
==== v10.6 ====&lt;br /&gt;
The ExeFS codebin was updated.&lt;br /&gt;
&lt;br /&gt;
[[browserhax|browserhax_fright_tx3g]] was fixed. The code handling tx3g now matches the latest libstagefright git.&lt;br /&gt;
&lt;br /&gt;
Hence the below RomFS listing, no OSS was updated at all(besides libstagefright mentioned above).&lt;br /&gt;
&lt;br /&gt;
The following RomFS files were updated:&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /static.crs&lt;br /&gt;
&lt;br /&gt;
==== v10.7 ====&lt;br /&gt;
Basically the same changes as Old3DS v10.7, except with the usual buildinfo.dat update in RomFS. The below date is 6 days after the browser-version-check [[3DS_Userland_Flaws|bypass]] was publicly disclosed.&lt;br /&gt;
&lt;br /&gt;
 cat v7184/00000025_romfs/build/buildinfo.dat&lt;br /&gt;
 10150&lt;br /&gt;
 applet&lt;br /&gt;
 2016-03-02 18:25&lt;br /&gt;
&lt;br /&gt;
==== v11.1 ====&lt;br /&gt;
The ExeFS codebin was updated. The following files in RomFS were updated:&lt;br /&gt;
&lt;br /&gt;
  /build/buildinfo.dat&lt;br /&gt;
  /.crr/static.crr&lt;br /&gt;
  /oss.cro.lex&lt;br /&gt;
  /static.crs&lt;br /&gt;
  /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
  cat v8192/00000026_romfs/build/buildinfo.dat&lt;br /&gt;
  10156&lt;br /&gt;
  applet&lt;br /&gt;
  2016-08-26 19:47&lt;br /&gt;
&lt;br /&gt;
Minus the 4 functions that changed due to compiler optimization, only 1 function was actually updated. This is LT_1a4004, previous version at LT_1a4004: libstagefright status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth)&lt;br /&gt;
&lt;br /&gt;
Additional code was added which doesn&#039;t seem to be from upstream git, right [https://android.googlesource.com/platform/frameworks/av/+/32d6e5f0ebe9e00f80401e5f4fd6e285a474590d/media/libstagefright/MPEG4Extractor.cpp#880 before] the cprt code block: &amp;quot;if((*offset + chunk_size) - data_offset &amp;lt; 0)fail&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This fixed skater31hax + any other mp4 haxx which requires using a negative 64bit chunk_size value.&lt;br /&gt;
&lt;br /&gt;
The filepath base used in the assert strings were changed from &amp;quot;d:\Jenkins\workspace\MPSkaterBuild\MVPlayer\Skater\Base\Android\frameworks\base\media\libstagefright\&amp;quot; to &amp;quot;d:\jenkins\workspace\MPSkaterBuild-Git\Base\Android\frameworks\base\media\libstagefright\&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== v11.4 ====&lt;br /&gt;
The only changes in RomFS was for &amp;quot;/build/buildinfo.dat&amp;quot; and &amp;quot;/static.crs&amp;quot;, hence no OSS in CRO(s) were updated.&lt;br /&gt;
&lt;br /&gt;
The main codebin was updated. Exactly two functions were updated, these are not related to code exec vulns.&lt;br /&gt;
&lt;br /&gt;
  cat v9232/00000027_romfs/build/buildinfo.dat&lt;br /&gt;
  10160&lt;br /&gt;
  applet&lt;br /&gt;
  2017-03-08 19:44&lt;br /&gt;
&lt;br /&gt;
=== New3DS Browser Specifications ===&lt;br /&gt;
[http://www.nintendo.co.jp/3ds/new/features/modal_net.html]&lt;br /&gt;
&lt;br /&gt;
English version:&lt;br /&gt;
* &amp;quot;Browser engine: NetFront® Browser NX v3.0&amp;quot;&lt;br /&gt;
* &amp;quot;User agent: Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML and like Gecko) NX/3.0.*.*.* Mobile NintendoBrowser/1.0.**** JP&lt;br /&gt;
* ** Version information is stated.&lt;br /&gt;
* *** When using the “Mobile version request” function, it differs from the above-mentioned character string&amp;quot;&lt;br /&gt;
* &amp;quot;Supported protocols: HTTP1.0/HTTP1.1/SSL3.0/TLS1.0/TLS1.1/TLS1.2&amp;quot;&lt;br /&gt;
* &amp;quot;Web standard: HTML4.01 / HTML5 / XHTML1.1 / Fullscreen API / Gamepad API / SVG / WebSocket / Video Subtitle / WOFF / Web Messaging / Server-Sent / Web Storage (partial) / XMLHttpRequest / Canvas element / Video / DOM Levels 1-3 / ECMAScript / CSS1 / CSS2.1 / CSS3 (partial)&amp;quot;&lt;br /&gt;
* &amp;quot;Image format: bmp / ​​gif / ico / jpeg / png / svg (There are, however, possibilities that some images won&#039;t display.)&amp;quot;&lt;br /&gt;
* &amp;quot;Image preview: mpo / jpeg (There are, however, possibilities that some images won&#039;t display.)&amp;quot;&lt;br /&gt;
* &amp;quot;Video format: MP4, M3U8 + TS (HTTPLiveStreaming) (There are, however, some videos that may not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Video codec: H.264 - MPEG-4 AVC Video (max 854x480 at level 3.2, 3D compatible) (There are, however, some videos that can not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Audio codec: AAC - ISO / IEC 14496-3 MPEG-4AAC, MP3 (There are, however, some videos that can not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Format for uploading 3D videos: .mkv (In order to be played, videos must be converted to the appropriate format within the site you are uploading to. In some cases, the video will not play even if converted.)&amp;quot;&lt;br /&gt;
* &amp;quot;Plug-ins: Plug-ins such as Adobe Flash are not supported&amp;quot;&lt;br /&gt;
* &amp;quot;Active Rating System filtering: provided by Digital Arts, Inc.. Access to web content can be limited based on its category information, restricting access to web content that may result inappropriate.&amp;quot;&lt;br /&gt;
* &amp;quot;Websites can be requested to provide the mobile version (However, if the web page does not have a mobile version, it won&#039;t change the way it&#039;s displayed.)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
MJPEG + .avi is also supported.&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
* The html &amp;quot;color&amp;quot; &amp;lt;input&amp;gt; type is not supported.&lt;br /&gt;
&lt;br /&gt;
== Old3DS browser ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Old3DS Browser Specifications ===&lt;br /&gt;
* &amp;quot;Browser engine: NetFront® Browser&amp;quot;&lt;br /&gt;
* &amp;quot;User agent: Mozilla/5.0 (Nintendo 3DS; region; ; en) Version/1.7498.US&amp;quot;&lt;br /&gt;
* &amp;quot;Supported protocols: HTTP1.0/HTTP1.1/SSLv3/TLS1.0&amp;quot;&lt;br /&gt;
* &amp;quot;Web standard: HTML 4.01/XHTML 1.1/CSS 1/CSS 2.1/CSS 3 (partial functionality)/DOM Levels 1-3/ECMAScript/XMLHttpRequest/Canvas Element (partial functionality)&amp;quot;&lt;br /&gt;
* &amp;quot;Image format: MPO / GIF / JPEG / PNG / BMP / ICO (some images cannot be displayed)&amp;quot;&lt;br /&gt;
* &amp;quot;Plug-ins: Plug-ins such as Adobe Flash are not supported&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Old3DS browser doesn&#039;t support events &amp;quot;focusin&amp;quot; and &amp;quot;focusout&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== User-Agent and Browser Versions ===&lt;br /&gt;
User-agent format: &amp;lt;code style=&amp;quot;font-size:larger;&amp;quot;&amp;gt;Mozilla/5.0 (Nintendo 3DS; U; ; &amp;lt;lang&amp;gt;) Version/&amp;lt;version&amp;gt;.&amp;lt;region&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lang&amp;gt; is &amp;quot;en&amp;quot;, &amp;quot;fr&amp;quot;, etc. &amp;lt;region&amp;gt; is &amp;quot;US&amp;quot;, &amp;quot;EU&amp;quot;, etc. See below for &amp;lt;version&amp;gt;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Browser version&lt;br /&gt;
! CDN Title-version&lt;br /&gt;
! Network-only system-update version&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.7412&lt;br /&gt;
| v6&lt;br /&gt;
| [[2.0.0-2|2.0.0-2]]&lt;br /&gt;
| This was the initial version.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7455&lt;br /&gt;
| v1024&lt;br /&gt;
| [[2.1.0-4]]&lt;br /&gt;
| ExeFS .code was updated, both of the CROs(webkit/OSS) were updated too.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7498&lt;br /&gt;
| v2050&lt;br /&gt;
| [[4.0.0-7]]&lt;br /&gt;
| ExeFS .code was updated, both of the CROs(webkit/OSS) were updated too. The manual CFA was updated as well.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7538&lt;br /&gt;
| v0&lt;br /&gt;
| [[4.2.0-9]]&lt;br /&gt;
| First version of the KOR browser. The CROs are different from the  USA/EUR/JPN [[4.0.0-7]] browser.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7552&lt;br /&gt;
| v3075&lt;br /&gt;
| [[5.0.0-11]]&lt;br /&gt;
| ExeFS .code and icon were updated, both of the CROs(webkit/OSS) were updated too. The manual CFA was updated as well.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7552&lt;br /&gt;
| v3088&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| The main NCCH wasn&#039;t updated at all(same TMD contentID/content-hash as the previous version), only the manual CFA for this title was updated.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7567&lt;br /&gt;
| v4096&lt;br /&gt;
| [[7.1.0-16]]&lt;br /&gt;
| The CXI .code was updated, some data in the RomFS was updated(none of the CROs such as webkit.cro were updated). The manual CFA was updated too.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7585&lt;br /&gt;
| v5121&lt;br /&gt;
| [[9.5.0-23]]&lt;br /&gt;
| The CXI .code was updated, and the manual CFA was updated. RomFS changes:&lt;br /&gt;
* &amp;quot;/browser/rootca.pem&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/oss.cro&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/static.crs&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/webkit.cro&amp;quot; updated&lt;br /&gt;
* &amp;quot;/.crr/static.crr&amp;quot; updated&lt;br /&gt;
* &amp;quot;/layout/dialogheader/WirelessSwitchOff.arc&amp;quot; was removed&lt;br /&gt;
* &amp;quot;/layout/favorite/favicondata/KOR.arc&amp;quot; updated&lt;br /&gt;
&lt;br /&gt;
A vuln used in a public(at the time of this sysupdate) webkit exploit for spider was fixed, which also fixed the removewinframe exploit from [https://github.com/yellows8/3ds_webkithax here].&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| v6147&lt;br /&gt;
| v9.9 CUP&lt;br /&gt;
| v9.9 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7610&lt;br /&gt;
| v6149&lt;br /&gt;
| [[9.9.0-26]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7616&lt;br /&gt;
| v7168&lt;br /&gt;
| [[10.2.0-28]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7622&lt;br /&gt;
| v8192&lt;br /&gt;
| [[10.6.0-31]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| v9216&lt;br /&gt;
| v10.7 CUP&lt;br /&gt;
| v10.7 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7625&lt;br /&gt;
| v9232&lt;br /&gt;
| [[10.7.0-32]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7630&lt;br /&gt;
| v10240&lt;br /&gt;
| [[11.1.0-34]]&lt;br /&gt;
| See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Heap ===&lt;br /&gt;
The USA/EUR/JPN + KOR browser allocates the 0x08000000 heap with size 0x01A97000. The size used by the CHN and TWN browser is 0x01997000, exactly 0x100000-bytes smaller.&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v9.9 ===&lt;br /&gt;
ExeFS:/.code was updated.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS were file-updating, the following files were updated:&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/spider.msbt&lt;br /&gt;
 /message/EU_Dutch/spider.msbt&lt;br /&gt;
 /message/EU_English/spider.msbt&lt;br /&gt;
 /message/EU_French/spider.msbt&lt;br /&gt;
 /message/EU_German/spider.msbt&lt;br /&gt;
 /message/EU_Italian/spider.msbt&lt;br /&gt;
 /message/EU_Portuguese/spider.msbt&lt;br /&gt;
 /message/EU_Russian/spider.msbt&lt;br /&gt;
 /message/EU_Spanish/spider.msbt&lt;br /&gt;
 /message/JP_Japanese/spider.msbt&lt;br /&gt;
 /message/KR_Hangeul/spider.msbt&lt;br /&gt;
 /message/TW_English/spider.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/spider.msbt&lt;br /&gt;
 /message/US_English/spider.msbt&lt;br /&gt;
 /message/US_French/spider.msbt&lt;br /&gt;
 /message/US_Portuguese/spider.msbt&lt;br /&gt;
 /message/US_Spanish/spider.msbt&lt;br /&gt;
&lt;br /&gt;
OSS diff for v9.5 and v9.9, without the .dox changes:&lt;br /&gt;
&lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/WKC/WebKit/WKC/webkit/WKCVersion.h b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index be5ff09..55a7274 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.14&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.16&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;532.7&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/webkit/WebCore/rendering/RenderBox.cpp b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 index da4127e..d03403e 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 @@ -305,23 +305,23 @@ int RenderBox::scrollHeight() const&lt;br /&gt;
  &lt;br /&gt;
  int RenderBox::scrollLeft() const&lt;br /&gt;
  {&lt;br /&gt;
 -    return hasOverflowClip() ? layer()-&amp;gt;scrollXOffset() : 0;&lt;br /&gt;
 +    return layer() &amp;amp;&amp;amp; hasOverflowClip() ? layer()-&amp;gt;scrollXOffset() : 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int RenderBox::scrollTop() const&lt;br /&gt;
  {&lt;br /&gt;
 -    return hasOverflowClip() ? layer()-&amp;gt;scrollYOffset() : 0;&lt;br /&gt;
 +    return layer() &amp;amp;&amp;amp; hasOverflowClip() ? layer()-&amp;gt;scrollYOffset() : 0;&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  void RenderBox::setScrollLeft(int newLeft)&lt;br /&gt;
  {&lt;br /&gt;
 -    if (hasOverflowClip())&lt;br /&gt;
 +    if (hasOverflowClip() &amp;amp;&amp;amp; layer())&lt;br /&gt;
          layer()-&amp;gt;scrollToXOffset(newLeft);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  void RenderBox::setScrollTop(int newTop)&lt;br /&gt;
  {&lt;br /&gt;
 -    if (hasOverflowClip())&lt;br /&gt;
 +    if (hasOverflowClip() &amp;amp;&amp;amp; layer())&lt;br /&gt;
          layer()-&amp;gt;scrollToYOffset(newTop);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.2 ===&lt;br /&gt;
The slider vuln from [https://github.com/yellows8/3ds_webkithax here] was fixed in the Old3DS browser.&lt;br /&gt;
&lt;br /&gt;
The main codebin .text only increased by 0x10-bytes.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS was that the following files were updated:&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
&lt;br /&gt;
OSS diff:&lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index 55a7274..fc153c4 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.16&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.17&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;532.7&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderSlider.cpp b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 index b2f5cef..1dd3dbd 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 @@ -221,6 +221,7 @@ RenderSlider::~RenderSlider()&lt;br /&gt;
  {&lt;br /&gt;
      if (m_thumb)&lt;br /&gt;
          m_thumb-&amp;gt;detach();&lt;br /&gt;
 +    m_thumb = 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int RenderSlider::baselinePosition(bool, bool) const&lt;br /&gt;
 @@ -493,7 +494,8 @@ void RenderSlider::forwardEvent(Event* event)&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
  &lt;br /&gt;
 -    m_thumb-&amp;gt;defaultEventHandler(event);&lt;br /&gt;
 +    if (m_thumb)&lt;br /&gt;
 +        m_thumb-&amp;gt;defaultEventHandler(event);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  bool RenderSlider::inDragMode() const&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.6 ===&lt;br /&gt;
[[browserhax|spider28hax]] was fixed. The &amp;quot;2^32 characters long string&amp;quot; vuln described [[3DS_Userland_Flaws|here]] was &#039;&#039;finally&#039;&#039; fixed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;A lot&#039;&#039; of WebKit issues/vulns were fixed, see [https://gist.github.com/yellows8/b1e10caa1d8bb8a46316 here] for the changes.&lt;br /&gt;
&lt;br /&gt;
libpng was updated from version 1.4.12 to 1.4.19. zlib was updated from 1.2.7 to 1.2.8.&lt;br /&gt;
&lt;br /&gt;
The .text size increased by 0x478-bytes.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS was that the following files were updated:&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /manual/Manual.bcma&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.7 ===&lt;br /&gt;
&#039;&#039;Nothing&#039;&#039; changed except some words for version-values in .text being updated(RomFS wasn&#039;t changed), code for browser-version-check was [[#v10.7_2|updated]].&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v11.1 ===&lt;br /&gt;
Nothing changed in the ExeFS codebin besides the usual version values. The following files in RomFS were updated:&lt;br /&gt;
  /cro/oss.cro&lt;br /&gt;
  /cro/webkit.cro&lt;br /&gt;
  /.crr/static.crr&lt;br /&gt;
&lt;br /&gt;
== Forced system-update ==&lt;br /&gt;
The Old3DS/New3DS Internet Browser updated with [[9.9.0-26]] added the following message strings:&lt;br /&gt;
 In order to use the Internet &lt;br /&gt;
 browser, a system update &lt;br /&gt;
 is required.&lt;br /&gt;
 To perform a system update, &lt;br /&gt;
 select System Update from Other&lt;br /&gt;
 Settings in System Settings.&lt;br /&gt;
&lt;br /&gt;
 The Internet browser cannot be&lt;br /&gt;
 used at this time.&lt;br /&gt;
 Please check your network&lt;br /&gt;
 environment or try again later.&lt;br /&gt;
&lt;br /&gt;
For whatever reason, the above &#039;&#039;message strings&#039;&#039; were removed with New3DS-browser v10.2, then re-added with v10.4. This does not apply to the Old3DS browser. Whenever v10.2 New3DS browser tries to use these message-strings for displaying a browser-update-related message, it will crash due to an assert failing since the message-strings are missing. Hence, if/when the v10.2 update-check page is ever updated where the browser tries to display a message for it, or when accessing that page fails, the browser will automatically crash.&lt;br /&gt;
&lt;br /&gt;
This wasn&#039;t enforced(web-browser displaying the above message when the installed browser isn&#039;t the latest version) until October 26, 2015.&lt;br /&gt;
&lt;br /&gt;
This message only triggers when attempting to load a web-page. This is only handled the first time the browser accesses a web-page, during this browser session.&lt;br /&gt;
&lt;br /&gt;
The browser codebins starting with v9.9 now contain the following URL strings:&lt;br /&gt;
* Old3DS: &amp;lt;nowiki&amp;gt;&amp;quot;https://cbvc.cdn.nintendo.net/CTR/1/&amp;lt;region&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* New3DS: &amp;lt;nowiki&amp;gt;&amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/1/&amp;lt;region&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;region&amp;gt; string is one of the following:&lt;br /&gt;
* &amp;quot;JPN&amp;quot;&lt;br /&gt;
* &amp;quot;USA&amp;quot;&lt;br /&gt;
* &amp;quot;EUR&amp;quot;&lt;br /&gt;
* &amp;quot;KOR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Starting with the browser from [[10.2.0-28]], the &amp;quot;1&amp;quot; in the above URLs were changed to &amp;quot;2&amp;quot;. With the New3DS browser from [[10.4.0-29]], it&#039;s now &amp;quot;3&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
As of October 26, 2015, the &amp;quot;1&amp;quot; URLs return the browser-version for v9.9(decimal number as a string without any &amp;quot;.&amp;quot;), while the &amp;quot;2&amp;quot; URLs returns 0.&lt;br /&gt;
&lt;br /&gt;
 if(internal_browserver &amp;gt; server_browserver)&lt;br /&gt;
 {&lt;br /&gt;
     &amp;lt;safe&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
 else&lt;br /&gt;
 {&lt;br /&gt;
     &amp;lt;update message&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Hence, internal_browserver == server_browserver will trigger the sysupdate message, which appears to be the normal way to indicate that the current browser is outdated(see above).&lt;br /&gt;
&lt;br /&gt;
There is a cache for this in savedata. The request is only done when at least 24-hours have passed since the last time the request was done(see the below savedata section).&lt;br /&gt;
&lt;br /&gt;
It is still possible to guard against this update by blocking the previous URLs using a proxy. &lt;br /&gt;
It is not possible to remove the update message by entering the [[Recovery Mode]].&lt;br /&gt;
&lt;br /&gt;
=== Page request ===&lt;br /&gt;
For this request, all root-CAs bundled with the browser are trusted, in addition to two of the SSL module builtin Nintendo root-CAs.&lt;br /&gt;
&lt;br /&gt;
The browser(with New3DS at least) does the following with [[HTTP_Services|HTTPC]] for requesting the above page:&lt;br /&gt;
* Initializes the HTTP context and uses [[HTTPC:InitializeConnectionSession]] + [[HTTPC:SetProxyDefault]].&lt;br /&gt;
* Uses [[HTTP_Services|HTTPC]] command 0x250080 twice with cmd[1]=contexthandle: first time cmd[2]=0x3, second time cmd[2]=0x6.&lt;br /&gt;
* Then [[HTTPC:AddTrustedRootCA]] is used 48 times to setup 48 trusted root CAs. This appears to be every cert in the browser &amp;quot;romfs:/browser/rootca.pem&amp;quot; file converted to DER, in the same order from there(in other words, every single root CA the browser trusts by default for normal web-browsing).&lt;br /&gt;
* Then [[HTTPC:BeginRequest]] is used.&lt;br /&gt;
* Then [[HTTPC:ReceiveDataTimeout]] is used, the recv-size seems to be fixed to 0x20.&lt;br /&gt;
* Then [[HTTPC:GetResponseStatusCodeTimeout]] is used.&lt;br /&gt;
* Then [[HTTPC:GetDownloadSizeState]] is used.&lt;br /&gt;
* Then the HTTP context is closed.&lt;br /&gt;
&lt;br /&gt;
Raw request data(New3DS USA v10.2 browser):&lt;br /&gt;
 000000: 47 45 54 20 2f 53 4e 41 4b 45 2f 32 2f 55 53 41  GET /SNAKE/2/USA&lt;br /&gt;
 000010: 20 48 54 54 50 2f 31 2e 31 0d 0a 48 6f 73 74 3a   HTTP/1.1..Host:&lt;br /&gt;
 000020: 20 63 62 76 63 2e 63 64 6e 2e 6e 69 6e 74 65 6e   cbvc.cdn.ninten&lt;br /&gt;
 000030: 64 6f 2e 6e 65 74 0d 0a 0d 0a                    do.net....&lt;br /&gt;
&lt;br /&gt;
=== v10.7 ===&lt;br /&gt;
The only actual code change with Old3DS/New3DS browser v10.7 was that the code which calculates the diff_timestamp was moved to immediately after the block which initializes &amp;lt;state_timestamp&amp;gt; when &amp;lt;state_timestamp&amp;gt; is all-zero. This fixed the browser-version-check [[3DS_Userland_Flaws|bypass]].&lt;br /&gt;
&lt;br /&gt;
== Dummy web-browser ==&lt;br /&gt;
Gamecards v9.9 and above include, with their sysupdate, a dummy Old3DS/New3DS web-browser. The *only* thing this title does is display the same message listed in the above forced-update section. The message files in RomFS *only* contain that message string above. There are no &amp;quot;http&amp;quot; strings in the main codebin, and [[RO_Services|RO]] isn&#039;t used either(no CRO data in RomFS at all). Both browsers are internally called &amp;quot;dummySpider&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Hence, if you update your system below v9.8 with any v9.9 or above gamecard, the system web-browser will be rendered *completely* useless until you install a system-update from CDN(no network requests involved here).&lt;br /&gt;
&lt;br /&gt;
Gamecards v10.7 and v11.4(New3DS only) have updated the dummy web-browser, where the only difference is the title version.&lt;br /&gt;
&lt;br /&gt;
== Savedata ==&lt;br /&gt;
=== New3DS ===&lt;br /&gt;
On newer SKATER versions, it appears *all* NAND savedata is stored under the [[System_SaveData|0x000200BB]] savedata.&lt;br /&gt;
&lt;br /&gt;
==== 0x000200BB savedata ====&lt;br /&gt;
This only contains &amp;quot;t.bin&amp;quot; with filesize 0xadf80, the format is below.&lt;br /&gt;
&lt;br /&gt;
The timestamp format used here is the number of milliseconds since January 1, 2000(local-time).&lt;br /&gt;
&lt;br /&gt;
When using the &amp;quot;Initialize savedata&amp;quot; option in the browser, that deletes this savedata file/image then exits the browser. This file is then re-created when the browser gets started again.&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;
| 0x68&lt;br /&gt;
| 0x4?&lt;br /&gt;
| This counter is incremented each time the savedata is written.&lt;br /&gt;
|-&lt;br /&gt;
| 0x70&lt;br /&gt;
| 0x8&lt;br /&gt;
| Timestamp for when the savedata was last written.&lt;br /&gt;
|-&lt;br /&gt;
| 0x94&lt;br /&gt;
| 0x15?&lt;br /&gt;
| This is all-zeros on non-JPN systems. On JPN systems where the browser filter is disabled, this is a string in the following format: &amp;quot;4110-%016llX&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD8&lt;br /&gt;
| 0x8&lt;br /&gt;
| s64 timestamp, can be either a normal positive timestamp or a relative negative one. Used with the forced-update described above. When an update is detected this timestamp is negative, otherwise this is a normal positive timestamp(it&#039;s unknown how exactly this timestamp is checked). When positive, this seems to be the last time the forced-update HTTPS request was done where no update was needed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==APT Parameters==&lt;br /&gt;
The URL to load can optionally be loaded from char[] string [[APT:SendParameter|paramblk+0]]. This is used when scanning URL QR-codes in Home Menu / etc.&lt;br /&gt;
&lt;br /&gt;
==Errors==&lt;br /&gt;
&amp;quot;Failed to load part of this page&amp;quot;: This can be caused by failing to load &amp;quot;/favicon.ico&amp;quot;. For example, this can be caused by loading a plain HTTP page, with plain-http favicon redirecting to HTTPS. If cert-verify then fails with favicon in this case, this error would then trigger.&lt;br /&gt;
&lt;br /&gt;
==Other details==&lt;br /&gt;
&lt;br /&gt;
*It scored 90/100 on [http://acid3.acidtests.org/ Acid3] test&lt;br /&gt;
*Images from the Internet can be saved to the [[SD Filesystem|SD Card]] and viewed using the [[Nintendo 3DS Camera]] application.&lt;br /&gt;
*Images saved to an [[SD Filesystem|SD Card]] or to the Nintendo 3DS system memory can be uploaded to blogs or other sites that allow the uploading of photos using :&lt;br /&gt;
 &amp;lt;input type=&amp;quot;file&amp;quot; /&amp;gt;&lt;br /&gt;
* HTML5Test.com say that Drag and drop is supported but it&#039;s not (code on WebKit is ready, but it&#039;s not implemented on interface of browser)&lt;br /&gt;
&lt;br /&gt;
==Tips==&lt;br /&gt;
&lt;br /&gt;
=== Detect User Agent ===&lt;br /&gt;
&lt;br /&gt;
To detect if the user agent is Nintendo 3DS Browser :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
     if (navigator.userAgent.indexOf(&#039;Nintendo 3DS&#039;) == -1) { //If the UserAgent is not &amp;quot;Nintendo 3DS&amp;quot;&lt;br /&gt;
         location.replace(&#039;http://www.3dbrew.org&#039;); //Redirect to an other page&lt;br /&gt;
     }&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* You can check &amp;lt;em&amp;gt;navigator.platform==&amp;quot;Nintendo 3DS&amp;quot;&amp;lt;/em&amp;gt; as well.&lt;br /&gt;
&lt;br /&gt;
=== Scrolling ===&lt;br /&gt;
&lt;br /&gt;
Scrolling can be altered by modifying &amp;lt;em&amp;gt;document.body.scrollTop&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;document.body.scrollLeft&amp;lt;/em&amp;gt;.  However, there are drawbacks related to working with these properties:&lt;br /&gt;
&lt;br /&gt;
* Both properties return 0 when accessed&lt;br /&gt;
* Setting one property resets the other property&#039;s scroll position&lt;br /&gt;
&lt;br /&gt;
In order to set both at the same time (without either resetting to 0), use &amp;lt;em&amp;gt;window.scrollTo&amp;lt;/em&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Events ===&lt;br /&gt;
==== Key Events ====&lt;br /&gt;
The following buttons trigger the &amp;lt;em&amp;gt;onkeydown&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;onkeypress&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;onkeyup&amp;lt;/em&amp;gt; events:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;20%&amp;quot;&lt;br /&gt;
! Code !! Button &lt;br /&gt;
|-&lt;br /&gt;
| 13 || A&lt;br /&gt;
|-&lt;br /&gt;
| 37 || Left&lt;br /&gt;
|-&lt;br /&gt;
| 38 || Up&lt;br /&gt;
|-&lt;br /&gt;
| 39 || Right&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Down&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The events cannot have their default action cancelled.  Other buttons do not trigger key events.&lt;br /&gt;
&lt;br /&gt;
==== Touch/Mouse Events ====&lt;br /&gt;
&amp;lt;em&amp;gt;onmousedown&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;onmouseup&amp;lt;/em&amp;gt; &amp;amp; &amp;lt;em&amp;gt;onclick&amp;lt;/em&amp;gt; are all triggered by the browser.  However, the &amp;lt;em&amp;gt;onmousedown&amp;lt;/em&amp;gt; event doesn&#039;t trigger until you lift the stylus or you&#039;ve held it on the screen for ~2 seconds—which is when text selection mode is activated—making it pretty much the same as &amp;lt;em&amp;gt;onmouseup&amp;lt;/em&amp;gt;.  The events cannot have their default action cancelled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;em&amp;gt;onmousemove&amp;lt;/em&amp;gt; and common touch/gesture events are not supported.&lt;br /&gt;
&lt;br /&gt;
== Screen Resolution ==&lt;br /&gt;
&lt;br /&gt;
The up screen resolution is 400×240. However, the viewable area in the browser is only &amp;lt;b&amp;gt;400×220&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The touch screen resolution is 320×240. However, the viewable area in the browser is only &amp;lt;b&amp;gt;320×212&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can have a page span both screens. However, the browser will behave as if the bottom screen is the only active screen and the top screen is scrolled off. This is important when computing CSS coordinates. Items positioned from &amp;quot;bottom&amp;quot; will be positioned based on 220px and not the full 432px of both screens.&lt;br /&gt;
&lt;br /&gt;
== Using Both Screens ==&lt;br /&gt;
&lt;br /&gt;
Generally the easiest way to accomplish the correct layout is to create HTML elements that &amp;quot;contain&amp;quot; the top and bottom screens. Here&#039;s an example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
   &amp;lt;head&amp;gt;&lt;br /&gt;
     &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=400&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;style&amp;gt;&lt;br /&gt;
       body{margin:0px;}&lt;br /&gt;
       #topscreen{width:400px;height:220px;overflow:hidden;}&lt;br /&gt;
       #bottomscreen{width:320px;height:212px;overflow:hidden;margin:0 auto;}&lt;br /&gt;
     &amp;lt;/style&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div id=&amp;quot;topscreen&amp;quot;&amp;gt;Top Screen&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div id=&amp;quot;bottomscreen&amp;quot;&amp;gt;Bottom Screen&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This scheme allows the page to be easily manipulated through JavaScript.  In order to have the window snap to the correct position, use the following JavaScript code:&lt;br /&gt;
&lt;br /&gt;
 window.setInterval(function () {&lt;br /&gt;
     window.scrollTo(40, 220);  &lt;br /&gt;
 }, 50);&lt;br /&gt;
&lt;br /&gt;
This automatically resets the position if the user accidentally scrolls the page.&lt;br /&gt;
&lt;br /&gt;
==Example Sites==&lt;br /&gt;
&amp;lt;!-- If you have a website that demonstrates these techniques, place it here! --&amp;gt;&lt;br /&gt;
* [http://www.nintendo.com/3ds/internetbrowser/bookmarks Nintendo 3DS Bookmarks] - This is the first bookmark pre-installed in the browser.&lt;br /&gt;
* [http://3ds.andysmith.co.uk/jFox.html jFox] (Short URL: http://bit.ly/iB7FqW)&lt;br /&gt;
* [http://ditto3d.com/3ds Ditto3D] (Short URL: http://bit.ly/oVreWA)&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Internet_Browser&amp;diff=20187</id>
		<title>Internet Browser</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Internet_Browser&amp;diff=20187"/>
		<updated>2017-07-24T16:59:17Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: v11.4 dummy (New3DS only)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The 3DS Internet Browser was added in the June 2011 Update for JPN/EUR/USA.&lt;br /&gt;
&lt;br /&gt;
From the Internet Browser help section:&lt;br /&gt;
In compliance with the LGPL, the source code of the OSS is available via the Nintendo website.&lt;br /&gt;
This source code can be downloaded here:&lt;br /&gt;
[http://mediacontent.nintendo-europe.com/NOE/images/service/OpenSources.zip] [http://www.nintendo.co.jp/support/oss/index.html]&lt;br /&gt;
&lt;br /&gt;
The 3DS Internet Browser is [http://en.wikipedia.org/wiki/Netfront Netfront] Browser NX v1.0 based on [http://en.wikipedia.org/wiki/WebKit WebKit] engine.&lt;br /&gt;
&lt;br /&gt;
On O3DS the exheader name of this title is &amp;quot;SPIDER&amp;quot;; on N3DS, &amp;quot;SKATER&amp;quot;.&lt;br /&gt;
The only difference between the ExeFS .code for each region of the Old3DS/New3DS browser, is byte values for the title uniqueID/region.&lt;br /&gt;
&lt;br /&gt;
A [[#v9.9_dummy_web-browser|&amp;quot;dummy&amp;quot; browser]] (which replaces the actual browser) is being included with cartdrige games shipping with system updates starting with [[9.9.0-26|9.9.0-X]]. &lt;br /&gt;
In addition, versions of the real browser since 9.9.0-26X attempt to [[#Forced_system-update|check-in with a Nintendo server]] to determine if the existing browser version is out of date.&lt;br /&gt;
&lt;br /&gt;
==[[New 3DS]] Internet Browser==&lt;br /&gt;
New3DS has a separate browser title, with the exheader name &amp;quot;SKATER&amp;quot;.&lt;br /&gt;
Unlike the Old3DS browser, the New3DS browser has videos+HTML5 support. &lt;br /&gt;
&lt;br /&gt;
This browser also has a filter enabled by default in the JPN version. &lt;br /&gt;
Disabling it requires paying money with a credit-card, for [[NIM_Services|purchasing]] web-browser [[Title_list/DLC|DLC]].&lt;br /&gt;
During startup the browser does various HTTPS comms. When visting an URL, the browser sends a plaintext HTTP POST here: [http://ars.ifuser.jp:20080/ars2/rating]. The raw POST data begins with &amp;quot;ARS/2.0\r\n\x00&amp;quot;, the rest appears to be encrypted. The server reply content also has this ARS header + encrypted data. This appears to use a fixed xorpad, likely from a fixed encryption CTR/IV. The server content responses for allowed sites, and blocked sites, are fixed. When the server returns that the site is blocked, the browser goes to this page: [http://ars.ifuser.jp/filter/44.html](the Referrer header value is set to the same URL it&#039;s actually requesting).&lt;br /&gt;
&lt;br /&gt;
The WebKit source was updated since the Old3DS browser.&lt;br /&gt;
The New3DS browser uses the following services: [[MVD_Services|mvd:STD]] and [[IR_Services|ir:rst]](DLC-related services are used too but those aren&#039;t New3DS specific).&lt;br /&gt;
Video decoding is done with [[MVD_Services|mvd:STD]]. Audio decoding/playback is done with a browser-specific DSP binary. The Old3DS browser used CSND for audio playback, the New3DS browser doesn&#039;t have access to that at all since it uses DSP instead.&lt;br /&gt;
&lt;br /&gt;
=== Video / libstagefright ===&lt;br /&gt;
The browser manual includes licenses for Android and PacketVideo. The browser uses libstagefright from Android. Just like WebKit, the browser appears to use a very old version of libstagefright with security/other changes back-ported(for example, the v10.7 browser libstagefright codebase seems to be older than [https://android.googlesource.com/platform/frameworks/av/+/ec77122351b4e78c1fe5b60a208f76baf8c67591%5E%21/media/libstagefright/MPEG4Extractor.cpp this]). This codebase is missing certain chunk-parsing code for 3GP.&lt;br /&gt;
&lt;br /&gt;
HTTP for libstagefright is internally handled with [[HTTP_Services|HTTPC]], with a similar(?) set of RootCAs as for browser-version-check.&lt;br /&gt;
&lt;br /&gt;
===User-Agent and Browser Versions===&lt;br /&gt;
Normal user-agent format: &amp;lt;code style=&amp;quot;font-size:larger;&amp;quot;&amp;gt;Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/&amp;lt;WebKit version&amp;gt; (KHTML, like Gecko) NX/&amp;lt;Netfront version&amp;gt; Mobile NintendoBrowser/&amp;lt;Mobile NintendoBrowser version&amp;gt;.&amp;lt;region&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;region&amp;gt; can be one of the following: &amp;quot;JP&amp;quot;, &amp;quot;US&amp;quot;, or &amp;quot;EU&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Mobile User-Agent is always &amp;lt;code&amp;gt;Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Mobile NintendoBrowser version(displayed in browser settings)&lt;br /&gt;
! Normal UA&lt;br /&gt;
! CDN Title-version&lt;br /&gt;
! Network-only system-update version&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.9934&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.8 Mobile NintendoBrowser/1.0.9934.&amp;lt;region&amp;gt;&lt;br /&gt;
| v10&lt;br /&gt;
| [[9.0.0-20]]&lt;br /&gt;
| Initial version.&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.9996&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.10 Mobile NintendoBrowser/1.1.9996.&amp;lt;region&amp;gt;&lt;br /&gt;
| v1027&lt;br /&gt;
| [[9.3.0-21]]&lt;br /&gt;
| See below regarding OSS changes.&lt;br /&gt;
|-&lt;br /&gt;
| 1.2.10085&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.13 Mobile NintendoBrowser/1.2.10085.&amp;lt;region&amp;gt;&lt;br /&gt;
| v2051&lt;br /&gt;
| [[9.6.0-24]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v3075&lt;br /&gt;
| v9.9 CUP&lt;br /&gt;
| v9.9 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.10126&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.15 Mobile NintendoBrowser/1.3.10126.&amp;lt;region&amp;gt;&lt;br /&gt;
| v3077&lt;br /&gt;
| [[9.9.0-26]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.10138&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.17 Mobile NintendoBrowser/1.4.10138.&amp;lt;region&amp;gt;&lt;br /&gt;
| v4096&lt;br /&gt;
| [[10.2.0-28]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.5.10143&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.5.10143.&amp;lt;region&amp;gt;&lt;br /&gt;
| v5121&lt;br /&gt;
| [[10.4.0-29]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.6.10147&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.6.10147.&amp;lt;region&amp;gt;&lt;br /&gt;
| v6144&lt;br /&gt;
| [[10.6.0-31]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v7168&lt;br /&gt;
| v10.7 CUP&lt;br /&gt;
| v10.7 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7.10150&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.7.10150.&amp;lt;region&amp;gt;&lt;br /&gt;
| v7184&lt;br /&gt;
| [[10.7.0-32]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.8.10156&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.20 Mobile NintendoBrowser/1.8.10156.&amp;lt;region&amp;gt;&lt;br /&gt;
| v8192&lt;br /&gt;
| [[11.1.0-34]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v9217&lt;br /&gt;
| v11.4 CUP&lt;br /&gt;
| v11.4 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.9.10160&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.20 Mobile NintendoBrowser/1.9.10160.&amp;lt;region&amp;gt;&lt;br /&gt;
| v9232&lt;br /&gt;
| [[11.4.0-37]]&lt;br /&gt;
| See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the latest Old3DS browser WebKit version at the time the initial New3DS browser was released, was the following: 532.8.&lt;br /&gt;
&lt;br /&gt;
The first version of the KOR New3DS browser was v9.6(which was when the New3DS KOR titles were originally added). Each version of the KOR browser has the same NintendoBrowser version as the other regions. The KOR browser has been only updated when the browser for the other regions were updated, hence the title-versions are the same as well. The KOR browser ExeFS .code is different from the other regions(more than just region-related IDs etc).&lt;br /&gt;
&lt;br /&gt;
==== OSS 9.0 and 9.3 diff ====&lt;br /&gt;
The following is a diff of the OSS archives from [http://www.nintendo.co.jp/support/oss/index.html here], for v9.0 and v9.3.&lt;br /&gt;
&lt;br /&gt;
 Files NewNintendo3DS_OpenSources9.0.0-/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp and NewNintendo3DS_OpenSources9.3.0-/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp differ&lt;br /&gt;
 Files NewNintendo3DS_OpenSources9.0.0-/WKC/WebKit/WKC/webkit/WKCVersion.h and NewNintendo3DS_OpenSources9.3.0-/WKC/WebKit/WKC/webkit/WKCVersion.h differ&lt;br /&gt;
&lt;br /&gt;
WKC_CUSTOMER_RELEASE_VERSION was changed from &amp;quot;0.5.8&amp;quot; to &amp;quot;0.5.10&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following code was added to ResourceHandleManager::doRedirect(): curl_easy_setopt(d-&amp;gt;m_handle, CURLOPT_SHARE, 0);&lt;br /&gt;
&lt;br /&gt;
==== v9.6 ====&lt;br /&gt;
WebKit/OSS code was actually updated.&lt;br /&gt;
ExeFS .code was updated. The following files in RomFS were updated:&lt;br /&gt;
* &amp;quot;/banner/CN/Skater.icn&amp;quot; and &amp;quot;/banner/KR/Skater.icn&amp;quot;.&lt;br /&gt;
* &amp;quot;/browser/rootca.pem&amp;quot;&lt;br /&gt;
* &amp;quot;/build/buildinfo.dat&amp;quot;&lt;br /&gt;
* &amp;quot;/cairo.cro.lex&amp;quot; and &amp;quot;/.crr/static.crr&amp;quot;&lt;br /&gt;
* &amp;quot;/lyt/Button/ButtonSelectHSearch.arc&amp;quot;&lt;br /&gt;
* &amp;quot;/lyt/Kbd/Swkbd.arc&amp;quot;&lt;br /&gt;
* &amp;quot;lyt/Kbd.arc&amp;quot;&lt;br /&gt;
* &amp;quot;skater.msbt&amp;quot; under all of the &amp;quot;/message/&amp;lt;region&amp;gt;_&amp;lt;language&amp;gt;/&amp;quot; directories.&lt;br /&gt;
* &amp;quot;/oss.cro.lex&amp;quot;, &amp;quot;/peer.cro.lex&amp;quot;, &amp;quot;/static.crs&amp;quot;, and &amp;quot;/webkit.cro.lex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following was added to RomFS:&lt;br /&gt;
* &amp;quot;/favicon/naver.dat&amp;quot;&lt;br /&gt;
* A &amp;quot;KO&amp;quot; directory under &amp;quot;/iwnn&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== v9.9 ====&lt;br /&gt;
ExeFS:/.code was updated.&lt;br /&gt;
&lt;br /&gt;
The only RomFS changes is file-updating, all of the following files were updated:&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /cairo.cro.lex&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex&lt;br /&gt;
 /peer.cro.lex&lt;br /&gt;
 /static.crs&lt;br /&gt;
 /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
See [https://gist.github.com/yellows8/9fb509fde4112339f342 here] for a diff of the OSS(WebKitLibraries/ is not included due to the massive cairo library diff). An exploitable security vuln(which was already known in the context of 3DS webkit) was fixed. [[User:Yellows8|Yellows8]]&#039; private(at the time of writing) exploit for it is based on the PoC from [http://pastebin.com/ufBCQKda here](see the pastebin for the actual pastebin author).&lt;br /&gt;
&lt;br /&gt;
==== v10.2 ====&lt;br /&gt;
The libstagefright build in the main SKATER codebin was updated to a version which fixed libstagefright vuln(s): the vuln used in [[browserhax|browserhax_fright]] at the time of sysupdate release was fixed. The *only* code changed in the main codebin, was code related to libstagefright.&lt;br /&gt;
&lt;br /&gt;
The only RomFS changes is file-updating, all of the following files were updated(see the forced-sysupdate section regarding what changed in the message files):&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex&lt;br /&gt;
 /static.crs&lt;br /&gt;
 /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
OSS diff:&lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/WKC/WebKit/WKC/webkit/WKCVersion.h b/NewNintendo3DS_OpenSources10.2.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index 4543297..0860336 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;0.5.15&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;0.5.17&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;536.30&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/ChangeLog b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 index a5abb35..cf5a9fa 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 @@ -1,3 +1,12 @@&lt;br /&gt;
 +2013-11-05  Ryosuke Niwa  &amp;lt;rniwa@webkit.org&amp;gt;&lt;br /&gt;
 +&lt;br /&gt;
 +        Use-after-free in SliderThumbElement::dragFrom&lt;br /&gt;
 +        https://bugs.webkit.org/show_bug.cgi?id=123873&lt;br /&gt;
 +&lt;br /&gt;
 +        Reviewed by Andreas Kling.&lt;br /&gt;
 +&lt;br /&gt;
 +        Merge https://chromium.googlesource.com/chromium/blink/+/04a23bfca2d04101a1828d36ff36c29f3a24f34b&lt;br /&gt;
 +&lt;br /&gt;
  2015-02-06  Maciej Stachowiak  &amp;lt;mjs@apple.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
          REGRESSION(r179706): Caused memory corruption on some tests (Requested by _ap_ on #webkit).&lt;br /&gt;
 @@ -879,7 +888,7 @@&lt;br /&gt;
          * rendering/RenderLineBoxList.cpp:&lt;br /&gt;
          (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):&lt;br /&gt;
  &lt;br /&gt;
 -2014-01-21  LÃ¡szlÃ³ LangÃ³  &amp;lt;llango.u-szeged@partner.samsung.com&amp;gt;&lt;br /&gt;
 +2014-01-21  Laszlo Lango  &amp;lt;llango.u-szeged@partner.samsung.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
          Assertion failure in Range::nodeWillBeRemoved&lt;br /&gt;
          https://bugs.webkit.org/show_bug.cgi?id=121694&lt;br /&gt;
 @@ -1879,7 +1888,7 @@&lt;br /&gt;
  &lt;br /&gt;
  2012-09-14  Simon Fraser  &amp;lt;simon.fraser@apple.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 -        REGRESSION: transition doesnât always override transition-property&lt;br /&gt;
 +        REGRESSION: transition doesnft always override transition-property&lt;br /&gt;
          https://bugs.webkit.org/show_bug.cgi?id=96658&lt;br /&gt;
  &lt;br /&gt;
          Reviewed by Dean Jackson.&lt;br /&gt;
 @@ -3691,8 +3700,8 @@&lt;br /&gt;
              glyph with font data for the primary font, presumably to meet the SVG&lt;br /&gt;
              spec requirement: &amp;quot;If the references to alternate glyphs do not result&lt;br /&gt;
              in successful identification of alternate glyphs to use, then the&lt;br /&gt;
 -            character(s) that are inside of the çª¶åltGlyphçª¶?element are rendered as&lt;br /&gt;
 -            if the çª¶åltGlyphçª¶?element were a çª¶?spançª¶?element instead.&amp;quot;&lt;br /&gt;
 +            character(s) that are inside of the âaltGlyphâ?element are rendered as&lt;br /&gt;
 +            if the âaltGlyphâ?element were a â?spanâ?element instead.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
              If the alt glyph is not then found we are in the case from the spec&lt;br /&gt;
              and indeed we should use the primary font. However, we end up replacing the GlyphPage&lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/html/RangeInputType.cpp b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 index 484adec..d7e9e8d 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 @@ -164,7 +164,7 @@ void RangeInputType::handleMouseDownEvent(MouseEvent* event)&lt;br /&gt;
      ASSERT(element()-&amp;gt;hasShadowRoot());&lt;br /&gt;
      if (targetNode != element() &amp;amp;&amp;amp; !targetNode-&amp;gt;isDescendantOf(element()-&amp;gt;shadowTree()-&amp;gt;oldestShadowRoot()))&lt;br /&gt;
          return;&lt;br /&gt;
 -    SliderThumbElement* thumb = sliderThumbElementOf(element());&lt;br /&gt;
 +    RefPtr&amp;lt;SliderThumbElement&amp;gt; thumb = sliderThumbElementOf(element());&lt;br /&gt;
      if (targetNode == thumb)&lt;br /&gt;
          return;&lt;br /&gt;
      thumb-&amp;gt;dragFrom(event-&amp;gt;absoluteLocation());&lt;br /&gt;
&lt;br /&gt;
==== v10.4 ====&lt;br /&gt;
The ExeFS codebin was updated, the only change was that the following code was updated in the actual NupCheck HTTPS request function:&lt;br /&gt;
* Previous version: sprintf(out, &amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/2/%s&amp;quot;, region);&lt;br /&gt;
* Current  version: sprintf(out, &amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/%d/%s&amp;quot;, 3, region);&lt;br /&gt;
&lt;br /&gt;
libpng was updated from version 1.5.21 to 1.5.24.&lt;br /&gt;
&lt;br /&gt;
The following RomFS files were updated(see the forced-sysupdate section regarding what changed in the message files):&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /cairo.cro.lex&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex differ&lt;br /&gt;
 /peer.cro.lex differ&lt;br /&gt;
 /static.crs differ&lt;br /&gt;
 /webkit.cro.lex differ&lt;br /&gt;
&lt;br /&gt;
==== v10.6 ====&lt;br /&gt;
The ExeFS codebin was updated.&lt;br /&gt;
&lt;br /&gt;
[[browserhax|browserhax_fright_tx3g]] was fixed. The code handling tx3g now matches the latest libstagefright git.&lt;br /&gt;
&lt;br /&gt;
Hence the below RomFS listing, no OSS was updated at all(besides libstagefright mentioned above).&lt;br /&gt;
&lt;br /&gt;
The following RomFS files were updated:&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /static.crs&lt;br /&gt;
&lt;br /&gt;
==== v10.7 ====&lt;br /&gt;
Basically the same changes as Old3DS v10.7, except with the usual buildinfo.dat update in RomFS. The below date is 6 days after the browser-version-check [[3DS_Userland_Flaws|bypass]] was publicly disclosed.&lt;br /&gt;
&lt;br /&gt;
 cat v7184/00000025_romfs/build/buildinfo.dat&lt;br /&gt;
 10150&lt;br /&gt;
 applet&lt;br /&gt;
 2016-03-02 18:25&lt;br /&gt;
&lt;br /&gt;
==== v11.1 ====&lt;br /&gt;
The ExeFS codebin was updated. The following files in RomFS were updated:&lt;br /&gt;
&lt;br /&gt;
  /build/buildinfo.dat&lt;br /&gt;
  /.crr/static.crr&lt;br /&gt;
  /oss.cro.lex&lt;br /&gt;
  /static.crs&lt;br /&gt;
  /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
  cat v8192/00000026_romfs/build/buildinfo.dat&lt;br /&gt;
  10156&lt;br /&gt;
  applet&lt;br /&gt;
  2016-08-26 19:47&lt;br /&gt;
&lt;br /&gt;
Minus the 4 functions that changed due to compiler optimization, only 1 function was actually updated. This is LT_1a4004, previous version at LT_1a4004: libstagefright status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth)&lt;br /&gt;
&lt;br /&gt;
Additional code was added which doesn&#039;t seem to be from upstream git, right [https://android.googlesource.com/platform/frameworks/av/+/32d6e5f0ebe9e00f80401e5f4fd6e285a474590d/media/libstagefright/MPEG4Extractor.cpp#880 before] the cprt code block: &amp;quot;if((*offset + chunk_size) - data_offset &amp;lt; 0)fail&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This fixed skater31hax + any other mp4 haxx which requires using a negative 64bit chunk_size value.&lt;br /&gt;
&lt;br /&gt;
The filepath base used in the assert strings were changed from &amp;quot;d:\Jenkins\workspace\MPSkaterBuild\MVPlayer\Skater\Base\Android\frameworks\base\media\libstagefright\&amp;quot; to &amp;quot;d:\jenkins\workspace\MPSkaterBuild-Git\Base\Android\frameworks\base\media\libstagefright\&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== v11.4 ====&lt;br /&gt;
The only changes in RomFS was for &amp;quot;/build/buildinfo.dat&amp;quot; and &amp;quot;/static.crs&amp;quot;, hence no OSS in CRO(s) were updated.&lt;br /&gt;
&lt;br /&gt;
The main codebin was updated. Exactly two functions were updated, these are not related to code exec vulns.&lt;br /&gt;
&lt;br /&gt;
  cat v9232/00000027_romfs/build/buildinfo.dat&lt;br /&gt;
  10160&lt;br /&gt;
  applet&lt;br /&gt;
  2017-03-08 19:44&lt;br /&gt;
&lt;br /&gt;
=== New3DS Browser Specifications ===&lt;br /&gt;
[http://www.nintendo.co.jp/3ds/new/features/modal_net.html]&lt;br /&gt;
&lt;br /&gt;
English version:&lt;br /&gt;
* &amp;quot;Browser engine: NetFront® Browser NX v3.0&amp;quot;&lt;br /&gt;
* &amp;quot;User agent: Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML and like Gecko) NX/3.0.*.*.* Mobile NintendoBrowser/1.0.**** JP&lt;br /&gt;
* ** Version information is stated.&lt;br /&gt;
* *** When using the “Mobile version request” function, it differs from the above-mentioned character string&amp;quot;&lt;br /&gt;
* &amp;quot;Supported protocols: HTTP1.0/HTTP1.1/SSL3.0/TLS1.0/TLS1.1/TLS1.2&amp;quot;&lt;br /&gt;
* &amp;quot;Web standard: HTML4.01 / HTML5 / XHTML1.1 / Fullscreen API / Gamepad API / SVG / WebSocket / Video Subtitle / WOFF / Web Messaging / Server-Sent / Web Storage (partial) / XMLHttpRequest / Canvas element / Video / DOM Levels 1-3 / ECMAScript / CSS1 / CSS2.1 / CSS3 (partial)&amp;quot;&lt;br /&gt;
* &amp;quot;Image format: bmp / ​​gif / ico / jpeg / png / svg (There are, however, possibilities that some images won&#039;t display.)&amp;quot;&lt;br /&gt;
* &amp;quot;Image preview: mpo / jpeg (There are, however, possibilities that some images won&#039;t display.)&amp;quot;&lt;br /&gt;
* &amp;quot;Video format: MP4, M3U8 + TS (HTTPLiveStreaming) (There are, however, some videos that may not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Video codec: H.264 - MPEG-4 AVC Video (max 854x480 at level 3.2, 3D compatible) (There are, however, some videos that can not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Audio codec: AAC - ISO / IEC 14496-3 MPEG-4AAC, MP3 (There are, however, some videos that can not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Format for uploading 3D videos: .mkv (In order to be played, videos must be converted to the appropriate format within the site you are uploading to. In some cases, the video will not play even if converted.)&amp;quot;&lt;br /&gt;
* &amp;quot;Plug-ins: Plug-ins such as Adobe Flash are not supported&amp;quot;&lt;br /&gt;
* &amp;quot;Active Rating System filtering: provided by Digital Arts, Inc.. Access to web content can be limited based on its category information, restricting access to web content that may result inappropriate.&amp;quot;&lt;br /&gt;
* &amp;quot;Websites can be requested to provide the mobile version (However, if the web page does not have a mobile version, it won&#039;t change the way it&#039;s displayed.)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
MJPEG + .avi is also supported.&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
* The html &amp;quot;color&amp;quot; &amp;lt;input&amp;gt; type is not supported.&lt;br /&gt;
&lt;br /&gt;
== Old3DS browser ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Old3DS Browser Specifications ===&lt;br /&gt;
* &amp;quot;Browser engine: NetFront® Browser&amp;quot;&lt;br /&gt;
* &amp;quot;User agent: Mozilla/5.0 (Nintendo 3DS; region; ; en) Version/1.7498.US&amp;quot;&lt;br /&gt;
* &amp;quot;Supported protocols: HTTP1.0/HTTP1.1/SSLv3/TLS1.0&amp;quot;&lt;br /&gt;
* &amp;quot;Web standard: HTML 4.01/XHTML 1.1/CSS 1/CSS 2.1/CSS 3 (partial functionality)/DOM Levels 1-3/ECMAScript/XMLHttpRequest/Canvas Element (partial functionality)&amp;quot;&lt;br /&gt;
* &amp;quot;Image format: MPO / GIF / JPEG / PNG / BMP / ICO (some images cannot be displayed)&amp;quot;&lt;br /&gt;
* &amp;quot;Plug-ins: Plug-ins such as Adobe Flash are not supported&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Old3DS browser doesn&#039;t support events &amp;quot;focusin&amp;quot; and &amp;quot;focusout&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== User-Agent and Browser Versions ===&lt;br /&gt;
User-agent format: &amp;lt;code style=&amp;quot;font-size:larger;&amp;quot;&amp;gt;Mozilla/5.0 (Nintendo 3DS; U; ; &amp;lt;lang&amp;gt;) Version/&amp;lt;version&amp;gt;.&amp;lt;region&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lang&amp;gt; is &amp;quot;en&amp;quot;, &amp;quot;fr&amp;quot;, etc. &amp;lt;region&amp;gt; is &amp;quot;US&amp;quot;, &amp;quot;EU&amp;quot;, etc. See below for &amp;lt;version&amp;gt;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Browser version&lt;br /&gt;
! CDN Title-version&lt;br /&gt;
! Network-only system-update version&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.7412&lt;br /&gt;
| v6&lt;br /&gt;
| [[2.0.0-2|2.0.0-2]]&lt;br /&gt;
| This was the initial version.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7455&lt;br /&gt;
| v1024&lt;br /&gt;
| [[2.1.0-4]]&lt;br /&gt;
| ExeFS .code was updated, both of the CROs(webkit/OSS) were updated too.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7498&lt;br /&gt;
| v2050&lt;br /&gt;
| [[4.0.0-7]]&lt;br /&gt;
| ExeFS .code was updated, both of the CROs(webkit/OSS) were updated too. The manual CFA was updated as well.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7538&lt;br /&gt;
| v0&lt;br /&gt;
| [[4.2.0-9]]&lt;br /&gt;
| First version of the KOR browser. The CROs are different from the  USA/EUR/JPN [[4.0.0-7]] browser.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7552&lt;br /&gt;
| v3075&lt;br /&gt;
| [[5.0.0-11]]&lt;br /&gt;
| ExeFS .code and icon were updated, both of the CROs(webkit/OSS) were updated too. The manual CFA was updated as well.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7552&lt;br /&gt;
| v3088&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| The main NCCH wasn&#039;t updated at all(same TMD contentID/content-hash as the previous version), only the manual CFA for this title was updated.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7567&lt;br /&gt;
| v4096&lt;br /&gt;
| [[7.1.0-16]]&lt;br /&gt;
| The CXI .code was updated, some data in the RomFS was updated(none of the CROs such as webkit.cro were updated). The manual CFA was updated too.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7585&lt;br /&gt;
| v5121&lt;br /&gt;
| [[9.5.0-23]]&lt;br /&gt;
| The CXI .code was updated, and the manual CFA was updated. RomFS changes:&lt;br /&gt;
* &amp;quot;/browser/rootca.pem&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/oss.cro&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/static.crs&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/webkit.cro&amp;quot; updated&lt;br /&gt;
* &amp;quot;/.crr/static.crr&amp;quot; updated&lt;br /&gt;
* &amp;quot;/layout/dialogheader/WirelessSwitchOff.arc&amp;quot; was removed&lt;br /&gt;
* &amp;quot;/layout/favorite/favicondata/KOR.arc&amp;quot; updated&lt;br /&gt;
&lt;br /&gt;
A vuln used in a public(at the time of this sysupdate) webkit exploit for spider was fixed, which also fixed the removewinframe exploit from [https://github.com/yellows8/3ds_webkithax here].&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| v6147&lt;br /&gt;
| v9.9 CUP&lt;br /&gt;
| v9.9 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7610&lt;br /&gt;
| v6149&lt;br /&gt;
| [[9.9.0-26]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7616&lt;br /&gt;
| v7168&lt;br /&gt;
| [[10.2.0-28]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7622&lt;br /&gt;
| v8192&lt;br /&gt;
| [[10.6.0-31]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| v9216&lt;br /&gt;
| v10.7 CUP&lt;br /&gt;
| v10.7 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7625&lt;br /&gt;
| v9232&lt;br /&gt;
| [[10.7.0-32]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7630&lt;br /&gt;
| v10240&lt;br /&gt;
| [[11.1.0-34]]&lt;br /&gt;
| See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Heap ===&lt;br /&gt;
The USA/EUR/JPN + KOR browser allocates the 0x08000000 heap with size 0x01A97000. The size used by the CHN and TWN browser is 0x01997000, exactly 0x100000-bytes smaller.&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v9.9 ===&lt;br /&gt;
ExeFS:/.code was updated.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS were file-updating, the following files were updated:&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/spider.msbt&lt;br /&gt;
 /message/EU_Dutch/spider.msbt&lt;br /&gt;
 /message/EU_English/spider.msbt&lt;br /&gt;
 /message/EU_French/spider.msbt&lt;br /&gt;
 /message/EU_German/spider.msbt&lt;br /&gt;
 /message/EU_Italian/spider.msbt&lt;br /&gt;
 /message/EU_Portuguese/spider.msbt&lt;br /&gt;
 /message/EU_Russian/spider.msbt&lt;br /&gt;
 /message/EU_Spanish/spider.msbt&lt;br /&gt;
 /message/JP_Japanese/spider.msbt&lt;br /&gt;
 /message/KR_Hangeul/spider.msbt&lt;br /&gt;
 /message/TW_English/spider.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/spider.msbt&lt;br /&gt;
 /message/US_English/spider.msbt&lt;br /&gt;
 /message/US_French/spider.msbt&lt;br /&gt;
 /message/US_Portuguese/spider.msbt&lt;br /&gt;
 /message/US_Spanish/spider.msbt&lt;br /&gt;
&lt;br /&gt;
OSS diff for v9.5 and v9.9, without the .dox changes:&lt;br /&gt;
&lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/WKC/WebKit/WKC/webkit/WKCVersion.h b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index be5ff09..55a7274 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.14&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.16&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;532.7&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/webkit/WebCore/rendering/RenderBox.cpp b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 index da4127e..d03403e 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 @@ -305,23 +305,23 @@ int RenderBox::scrollHeight() const&lt;br /&gt;
  &lt;br /&gt;
  int RenderBox::scrollLeft() const&lt;br /&gt;
  {&lt;br /&gt;
 -    return hasOverflowClip() ? layer()-&amp;gt;scrollXOffset() : 0;&lt;br /&gt;
 +    return layer() &amp;amp;&amp;amp; hasOverflowClip() ? layer()-&amp;gt;scrollXOffset() : 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int RenderBox::scrollTop() const&lt;br /&gt;
  {&lt;br /&gt;
 -    return hasOverflowClip() ? layer()-&amp;gt;scrollYOffset() : 0;&lt;br /&gt;
 +    return layer() &amp;amp;&amp;amp; hasOverflowClip() ? layer()-&amp;gt;scrollYOffset() : 0;&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  void RenderBox::setScrollLeft(int newLeft)&lt;br /&gt;
  {&lt;br /&gt;
 -    if (hasOverflowClip())&lt;br /&gt;
 +    if (hasOverflowClip() &amp;amp;&amp;amp; layer())&lt;br /&gt;
          layer()-&amp;gt;scrollToXOffset(newLeft);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  void RenderBox::setScrollTop(int newTop)&lt;br /&gt;
  {&lt;br /&gt;
 -    if (hasOverflowClip())&lt;br /&gt;
 +    if (hasOverflowClip() &amp;amp;&amp;amp; layer())&lt;br /&gt;
          layer()-&amp;gt;scrollToYOffset(newTop);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.2 ===&lt;br /&gt;
The slider vuln from [https://github.com/yellows8/3ds_webkithax here] was fixed in the Old3DS browser.&lt;br /&gt;
&lt;br /&gt;
The main codebin .text only increased by 0x10-bytes.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS was that the following files were updated:&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
&lt;br /&gt;
OSS diff:&lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index 55a7274..fc153c4 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.16&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.17&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;532.7&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderSlider.cpp b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 index b2f5cef..1dd3dbd 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 @@ -221,6 +221,7 @@ RenderSlider::~RenderSlider()&lt;br /&gt;
  {&lt;br /&gt;
      if (m_thumb)&lt;br /&gt;
          m_thumb-&amp;gt;detach();&lt;br /&gt;
 +    m_thumb = 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int RenderSlider::baselinePosition(bool, bool) const&lt;br /&gt;
 @@ -493,7 +494,8 @@ void RenderSlider::forwardEvent(Event* event)&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
  &lt;br /&gt;
 -    m_thumb-&amp;gt;defaultEventHandler(event);&lt;br /&gt;
 +    if (m_thumb)&lt;br /&gt;
 +        m_thumb-&amp;gt;defaultEventHandler(event);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  bool RenderSlider::inDragMode() const&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.6 ===&lt;br /&gt;
[[browserhax|spider28hax]] was fixed. The &amp;quot;2^32 characters long string&amp;quot; vuln described [[3DS_Userland_Flaws|here]] was &#039;&#039;finally&#039;&#039; fixed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;A lot&#039;&#039; of WebKit issues/vulns were fixed, see [https://gist.github.com/yellows8/b1e10caa1d8bb8a46316 here] for the changes.&lt;br /&gt;
&lt;br /&gt;
libpng was updated from version 1.4.12 to 1.4.19. zlib was updated from 1.2.7 to 1.2.8.&lt;br /&gt;
&lt;br /&gt;
The .text size increased by 0x478-bytes.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS was that the following files were updated:&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /manual/Manual.bcma&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.7 ===&lt;br /&gt;
&#039;&#039;Nothing&#039;&#039; changed except some words for version-values in .text being updated(RomFS wasn&#039;t changed), code for browser-version-check was [[#v10.7_2|updated]].&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v11.1 ===&lt;br /&gt;
Nothing changed in the ExeFS codebin besides the usual version values. The following files in RomFS were updated:&lt;br /&gt;
  /cro/oss.cro&lt;br /&gt;
  /cro/webkit.cro&lt;br /&gt;
  /.crr/static.crr&lt;br /&gt;
&lt;br /&gt;
== Forced system-update ==&lt;br /&gt;
The Old3DS/New3DS Internet Browser updated with [[9.9.0-26]] added the following message strings:&lt;br /&gt;
 In order to use the Internet &lt;br /&gt;
 browser, a system update &lt;br /&gt;
 is required.&lt;br /&gt;
 To perform a system update, &lt;br /&gt;
 select System Update from Other&lt;br /&gt;
 Settings in System Settings.&lt;br /&gt;
&lt;br /&gt;
 The Internet browser cannot be&lt;br /&gt;
 used at this time.&lt;br /&gt;
 Please check your network&lt;br /&gt;
 environment or try again later.&lt;br /&gt;
&lt;br /&gt;
For whatever reason, the above &#039;&#039;message strings&#039;&#039; were removed with New3DS-browser v10.2, then re-added with v10.4. This does not apply to the Old3DS browser. Whenever v10.2 New3DS browser tries to use these message-strings for displaying a browser-update-related message, it will crash due to an assert failing since the message-strings are missing. Hence, if/when the v10.2 update-check page is ever updated where the browser tries to display a message for it, or when accessing that page fails, the browser will automatically crash.&lt;br /&gt;
&lt;br /&gt;
This wasn&#039;t enforced(web-browser displaying the above message when the installed browser isn&#039;t the latest version) until October 26, 2015.&lt;br /&gt;
&lt;br /&gt;
This message only triggers when attempting to load a web-page. This is only handled the first time the browser accesses a web-page, during this browser session.&lt;br /&gt;
&lt;br /&gt;
The browser codebins starting with v9.9 now contain the following URL strings:&lt;br /&gt;
* Old3DS: &amp;lt;nowiki&amp;gt;&amp;quot;https://cbvc.cdn.nintendo.net/CTR/1/&amp;lt;region&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* New3DS: &amp;lt;nowiki&amp;gt;&amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/1/&amp;lt;region&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;region&amp;gt; string is one of the following:&lt;br /&gt;
* &amp;quot;JPN&amp;quot;&lt;br /&gt;
* &amp;quot;USA&amp;quot;&lt;br /&gt;
* &amp;quot;EUR&amp;quot;&lt;br /&gt;
* &amp;quot;KOR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Starting with the browser from [[10.2.0-28]], the &amp;quot;1&amp;quot; in the above URLs were changed to &amp;quot;2&amp;quot;. With the New3DS browser from [[10.4.0-29]], it&#039;s now &amp;quot;3&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
As of October 26, 2015, the &amp;quot;1&amp;quot; URLs return the browser-version for v9.9(decimal number as a string without any &amp;quot;.&amp;quot;), while the &amp;quot;2&amp;quot; URLs returns 0.&lt;br /&gt;
&lt;br /&gt;
 if(internal_browserver &amp;gt; server_browserver)&lt;br /&gt;
 {&lt;br /&gt;
     &amp;lt;safe&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
 else&lt;br /&gt;
 {&lt;br /&gt;
     &amp;lt;update message&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Hence, internal_browserver == server_browserver will trigger the sysupdate message, which appears to be the normal way to indicate that the current browser is outdated(see above).&lt;br /&gt;
&lt;br /&gt;
There is a cache for this in savedata. The request is only done when at least 24-hours have passed since the last time the request was done(see the below savedata section).&lt;br /&gt;
&lt;br /&gt;
It is still possible to guard against this update by blocking the previous URLs using a proxy. &lt;br /&gt;
It is not possible to remove the update message by entering the [[Recovery Mode]].&lt;br /&gt;
&lt;br /&gt;
=== Page request ===&lt;br /&gt;
For this request, all root-CAs bundled with the browser are trusted, in addition to two of the SSL module builtin Nintendo root-CAs.&lt;br /&gt;
&lt;br /&gt;
The browser(with New3DS at least) does the following with [[HTTP_Services|HTTPC]] for requesting the above page:&lt;br /&gt;
* Initializes the HTTP context and uses [[HTTPC:InitializeConnectionSession]] + [[HTTPC:SetProxyDefault]].&lt;br /&gt;
* Uses [[HTTP_Services|HTTPC]] command 0x250080 twice with cmd[1]=contexthandle: first time cmd[2]=0x3, second time cmd[2]=0x6.&lt;br /&gt;
* Then [[HTTPC:AddTrustedRootCA]] is used 48 times to setup 48 trusted root CAs. This appears to be every cert in the browser &amp;quot;romfs:/browser/rootca.pem&amp;quot; file converted to DER, in the same order from there(in other words, every single root CA the browser trusts by default for normal web-browsing).&lt;br /&gt;
* Then [[HTTPC:BeginRequest]] is used.&lt;br /&gt;
* Then [[HTTPC:ReceiveDataTimeout]] is used, the recv-size seems to be fixed to 0x20.&lt;br /&gt;
* Then [[HTTPC:GetResponseStatusCodeTimeout]] is used.&lt;br /&gt;
* Then [[HTTPC:GetDownloadSizeState]] is used.&lt;br /&gt;
* Then the HTTP context is closed.&lt;br /&gt;
&lt;br /&gt;
Raw request data(New3DS USA v10.2 browser):&lt;br /&gt;
 000000: 47 45 54 20 2f 53 4e 41 4b 45 2f 32 2f 55 53 41  GET /SNAKE/2/USA&lt;br /&gt;
 000010: 20 48 54 54 50 2f 31 2e 31 0d 0a 48 6f 73 74 3a   HTTP/1.1..Host:&lt;br /&gt;
 000020: 20 63 62 76 63 2e 63 64 6e 2e 6e 69 6e 74 65 6e   cbvc.cdn.ninten&lt;br /&gt;
 000030: 64 6f 2e 6e 65 74 0d 0a 0d 0a                    do.net....&lt;br /&gt;
&lt;br /&gt;
=== v10.7 ===&lt;br /&gt;
The only actual code change with Old3DS/New3DS browser v10.7 was that the code which calculates the diff_timestamp was moved to immediately after the block which initializes &amp;lt;state_timestamp&amp;gt; when &amp;lt;state_timestamp&amp;gt; is all-zero. This fixed the browser-version-check [[3DS_Userland_Flaws|bypass]].&lt;br /&gt;
&lt;br /&gt;
== Dummy web-browser ==&lt;br /&gt;
Gamecards v9.9 and above include, with their sysupdate, a dummy Old3DS/New3DS web-browser. The *only* thing this title does is display the same message listed in the above forced-update section. The message files in RomFS *only* contain that message string above. There are no &amp;quot;http&amp;quot; strings in the main codebin, and [[RO_Services|RO]] isn&#039;t used either(no CRO data in RomFS at all). Both browsers are internally called &amp;quot;dummySpider&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Hence, if you update your system below v9.8 with any v9.9 or above gamecard, the system web-browser will be rendered *completely* useless until you install a system-update from CDN(no network requests involved here).&lt;br /&gt;
&lt;br /&gt;
Gamecards v10.7 and v11.4(New3DS only) have updated the dummy web-browser, where the only difference is the title version.&lt;br /&gt;
&lt;br /&gt;
== Savedata ==&lt;br /&gt;
=== New3DS ===&lt;br /&gt;
On newer SKATER versions, it appears *all* NAND savedata is stored under the [[System_SaveData|0x000200BB]] savedata.&lt;br /&gt;
&lt;br /&gt;
==== 0x000200BB savedata ====&lt;br /&gt;
This only contains &amp;quot;t.bin&amp;quot; with filesize 0xadf80, the format is below.&lt;br /&gt;
&lt;br /&gt;
The timestamp format used here is the number of milliseconds since January 1, 2000(local-time).&lt;br /&gt;
&lt;br /&gt;
When using the &amp;quot;Initialize savedata&amp;quot; option in the browser, that deletes this savedata file/image then exits the browser. This file is then re-created when the browser gets started again.&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;
| 0x68&lt;br /&gt;
| 0x4?&lt;br /&gt;
| This counter is incremented each time the savedata is written.&lt;br /&gt;
|-&lt;br /&gt;
| 0x70&lt;br /&gt;
| 0x8&lt;br /&gt;
| Timestamp for when the savedata was last written.&lt;br /&gt;
|-&lt;br /&gt;
| 0x94&lt;br /&gt;
| 0x15?&lt;br /&gt;
| This is all-zeros on non-JPN systems. On JPN systems where the browser filter is disabled, this is a string in the following format: &amp;quot;4110-%016llX&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD8&lt;br /&gt;
| 0x8&lt;br /&gt;
| s64 timestamp, can be either a normal positive timestamp or a relative negative one. Used with the forced-update described above. When an update is detected this timestamp is negative, otherwise this is a normal positive timestamp(it&#039;s unknown how exactly this timestamp is checked). When positive, this seems to be the last time the forced-update HTTPS request was done where no update was needed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==APT Parameters==&lt;br /&gt;
The URL to load can optionally be loaded from char[] string [[APT:SendParameter|paramblk+0]]. This is used when scanning URL QR-codes in Home Menu / etc.&lt;br /&gt;
&lt;br /&gt;
==Errors==&lt;br /&gt;
&amp;quot;Failed to load part of this page&amp;quot;: This can be caused by failing to load &amp;quot;/favicon.ico&amp;quot;. For example, this can be caused by loading a plain HTTP page, with plain-http favicon redirecting to HTTPS. If cert-verify then fails with favicon in this case, this error would then trigger.&lt;br /&gt;
&lt;br /&gt;
==Other details==&lt;br /&gt;
&lt;br /&gt;
*It scored 90/100 on [http://acid3.acidtests.org/ Acid3] test&lt;br /&gt;
*Images from the Internet can be saved to the [[SD Filesystem|SD Card]] and viewed using the [[Nintendo 3DS Camera]] application.&lt;br /&gt;
*Images saved to an [[SD Filesystem|SD Card]] or to the Nintendo 3DS system memory can be uploaded to blogs or other sites that allow the uploading of photos using :&lt;br /&gt;
 &amp;lt;input type=&amp;quot;file&amp;quot; /&amp;gt;&lt;br /&gt;
* HTML5Test.com say that Drag and drop is supported but it&#039;s not (code on WebKit is ready, but it&#039;s not implemented on interface of browser)&lt;br /&gt;
&lt;br /&gt;
==Tips==&lt;br /&gt;
&lt;br /&gt;
=== Detect User Agent ===&lt;br /&gt;
&lt;br /&gt;
To detect if the user agent is Nintendo 3DS Browser :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
     if (navigator.userAgent.indexOf(&#039;Nintendo 3DS&#039;) == -1) { //If the UserAgent is not &amp;quot;Nintendo 3DS&amp;quot;&lt;br /&gt;
         location.replace(&#039;http://www.3dbrew.org&#039;); //Redirect to an other page&lt;br /&gt;
     }&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* You can check &amp;lt;em&amp;gt;navigator.platform==&amp;quot;Nintendo 3DS&amp;quot;&amp;lt;/em&amp;gt; as well.&lt;br /&gt;
&lt;br /&gt;
=== Scrolling ===&lt;br /&gt;
&lt;br /&gt;
Scrolling can be altered by modifying &amp;lt;em&amp;gt;document.body.scrollTop&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;document.body.scrollLeft&amp;lt;/em&amp;gt;.  However, there are drawbacks related to working with these properties:&lt;br /&gt;
&lt;br /&gt;
* Both properties return 0 when accessed&lt;br /&gt;
* Setting one property resets the other property&#039;s scroll position&lt;br /&gt;
&lt;br /&gt;
In order to set both at the same time (without either resetting to 0), use &amp;lt;em&amp;gt;window.scrollTo&amp;lt;/em&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Events ===&lt;br /&gt;
==== Key Events ====&lt;br /&gt;
The following buttons trigger the &amp;lt;em&amp;gt;onkeydown&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;onkeypress&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;onkeyup&amp;lt;/em&amp;gt; events:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;20%&amp;quot;&lt;br /&gt;
! Code !! Button &lt;br /&gt;
|-&lt;br /&gt;
| 13 || A&lt;br /&gt;
|-&lt;br /&gt;
| 37 || Left&lt;br /&gt;
|-&lt;br /&gt;
| 38 || Up&lt;br /&gt;
|-&lt;br /&gt;
| 39 || Right&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Down&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The events cannot have their default action cancelled.  Other buttons do not trigger key events.&lt;br /&gt;
&lt;br /&gt;
==== Touch/Mouse Events ====&lt;br /&gt;
&amp;lt;em&amp;gt;onmousedown&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;onmouseup&amp;lt;/em&amp;gt; &amp;amp; &amp;lt;em&amp;gt;onclick&amp;lt;/em&amp;gt; are all triggered by the browser.  However, the &amp;lt;em&amp;gt;onmousedown&amp;lt;/em&amp;gt; event doesn&#039;t trigger until you lift the stylus or you&#039;ve held it on the screen for ~2 seconds—which is when text selection mode is activated—making it pretty much the same as &amp;lt;em&amp;gt;onmouseup&amp;lt;/em&amp;gt;.  The events cannot have their default action cancelled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;em&amp;gt;onmousemove&amp;lt;/em&amp;gt; and common touch/gesture events are not supported.&lt;br /&gt;
&lt;br /&gt;
== Screen Resolution ==&lt;br /&gt;
&lt;br /&gt;
The up screen resolution is 400×240. However, the viewable area in the browser is only &amp;lt;b&amp;gt;400×220&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The touch screen resolution is 320×240. However, the viewable area in the browser is only &amp;lt;b&amp;gt;320×212&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can have a page span both screens. However, the browser will behave as if the bottom screen is the only active screen and the top screen is scrolled off. This is important when computing CSS coordinates. Items positioned from &amp;quot;bottom&amp;quot; will be positioned based on 220px and not the full 432px of both screens.&lt;br /&gt;
&lt;br /&gt;
== Using Both Screens ==&lt;br /&gt;
&lt;br /&gt;
Generally the easiest way to accomplish the correct layout is to create HTML elements that &amp;quot;contain&amp;quot; the top and bottom screens. Here&#039;s an example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
   &amp;lt;head&amp;gt;&lt;br /&gt;
     &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=400&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;style&amp;gt;&lt;br /&gt;
       body{margin:0px;}&lt;br /&gt;
       #topscreen{width:400px;height:220px;overflow:hidden;}&lt;br /&gt;
       #bottomscreen{width:320px;height:212px;overflow:hidden;margin:0 auto;}&lt;br /&gt;
     &amp;lt;/style&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div id=&amp;quot;topscreen&amp;quot;&amp;gt;Top Screen&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div id=&amp;quot;bottomscreen&amp;quot;&amp;gt;Bottom Screen&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This scheme allows the page to be easily manipulated through JavaScript.  In order to have the window snap to the correct position, use the following JavaScript code:&lt;br /&gt;
&lt;br /&gt;
 window.setInterval(function () {&lt;br /&gt;
     window.scrollTo(40, 220);  &lt;br /&gt;
 }, 50);&lt;br /&gt;
&lt;br /&gt;
This automatically resets the position if the user accidentally scrolls the page.&lt;br /&gt;
&lt;br /&gt;
==Example Sites==&lt;br /&gt;
&amp;lt;!-- If you have a website that demonstrates these techniques, place it here! --&amp;gt;&lt;br /&gt;
* [http://www.nintendo.com/3ds/internetbrowser/bookmarks Nintendo 3DS Bookmarks] - This is the first bookmark pre-installed in the browser.&lt;br /&gt;
* [http://3ds.andysmith.co.uk/jFox.html jFox] (Short URL: http://bit.ly/iB7FqW)&lt;br /&gt;
* [http://ditto3d.com/3ds Ditto3D] (Short URL: http://bit.ly/oVreWA)&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=MCU_Services&amp;diff=20135</id>
		<title>MCU Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=MCU_Services&amp;diff=20135"/>
		<updated>2017-07-04T02:35:08Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* MCU firmware versions */ New2DSXL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Only one session can be open per service at a time. If a session is already open for a service, MCU module will wait for the thread handling the session to terminate(triggered by the session being closed by the user process), then it accepts the new session. The commands for each service are handled by separate threads.&lt;br /&gt;
&lt;br /&gt;
=MCU camera service &amp;quot;mcu::CAM&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010040&lt;br /&gt;
| WriteCameraLedState (writes i2c register 0x2B)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020080&lt;br /&gt;
| ReadCameraLedState (reads i2c register 0x2B)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=MCU GPU service &amp;quot;mcu::GPU&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010000&lt;br /&gt;
| GetLcdPowerState. This writes the value of I2C-MCU register 0xf bit6 to u8 cmdreply[2], and the value of bit5 from that register to u8 cmdreply[3].&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020080&lt;br /&gt;
| SetLcdPowerState. This writes the upper LCD bits of MCU register 0x22.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030000&lt;br /&gt;
| GetGpuLcdInterfaceState. This writes the value of I2C-MCU register 0xf bit7 to u8 cmdreply[2].&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040040&lt;br /&gt;
| SetGpuLcdInterfaceState. This writes the lower two bits of MCU register 0x22.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050040&lt;br /&gt;
| SetTopScreenFlicker&lt;br /&gt;
|-&lt;br /&gt;
| 0x00060080&lt;br /&gt;
| GetTopScreenFlicker&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070040&lt;br /&gt;
| SetBottomScreenFlicker&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080080&lt;br /&gt;
| GetBottomScreenFlicker&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090000&lt;br /&gt;
| GetMcuFwVerHigh. Called by GSP module&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0000&lt;br /&gt;
| GetMcuFwVerLow. Called by GSP module&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0040&lt;br /&gt;
| Set3dLedState&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C....&lt;br /&gt;
| Get3dLedState&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0000&lt;br /&gt;
| GetMcuGpuEventHandle. Event handle written to TLS+0x8c. MCU notifications 24 to 29 signal this.&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0000&lt;br /&gt;
| GetMcuGpuEventReason. Writes some value to TLS+0x88. Called by GSP module&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=MCU HID service &amp;quot;mcu::HID&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010040&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0003....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0005....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000600C0&lt;br /&gt;
| ReadGyroscopeValue?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070000&lt;br /&gt;
| Get3dSliderState&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0000&lt;br /&gt;
| GetMcuHidEventHandle. MCU notifications 11 and 12 signal this.&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0000&lt;br /&gt;
| GetMcuHidEventReason&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0000&lt;br /&gt;
| [[MCUHID:GetSoundVolume|GetSoundVolume]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0040&lt;br /&gt;
| SetAccelerometerState(int enable). 1 = enable, 0 = disable accelerometer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=MCU service &amp;quot;mcu::RTC&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001....&lt;br /&gt;
| SetSystemClock (RTC)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002....&lt;br /&gt;
| GetSystemClock (RTC)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0003....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004....&lt;br /&gt;
| GetSystemClockSeconds&lt;br /&gt;
|-&lt;br /&gt;
| 0x0005....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006....&lt;br /&gt;
| GetSystemClockMinutes ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008....&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 0x0009....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0010....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0011....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0012....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0013....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0014....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0015....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0016....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0017....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0018....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0019....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0040&lt;br /&gt;
| SetPedometerRecordingMode&lt;br /&gt;
|-&lt;br /&gt;
| 0x00200000&lt;br /&gt;
| GetPedometerState&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210080&lt;br /&gt;
| GetStepCount(for the current day)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0022....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0023....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0024....&lt;br /&gt;
| GetMcuRtcEventHandle. MCU notifications 1, 8, 9, 10, 13, 14 and 15 signal this.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0025....&lt;br /&gt;
| GetMcuRtcEventReason&lt;br /&gt;
|-&lt;br /&gt;
| 0x0026....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0027....&lt;br /&gt;
| Disables i2c register 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x0028....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0029....&lt;br /&gt;
| Same as 0x0027....&lt;br /&gt;
|-&lt;br /&gt;
| 0x002A0000&lt;br /&gt;
| GetShellState. This writes the value of I2C-MCU register 0xf bit1 to u8 cmdreply[2].&lt;br /&gt;
|-&lt;br /&gt;
| 0x002B0000&lt;br /&gt;
| GetAdapterState. This writes the value of I2C-MCU register 0xf bit3 to u8 cmdreply[2].&lt;br /&gt;
|-&lt;br /&gt;
| 0x002C0000&lt;br /&gt;
| GetBatteryChargeState. This writes the value of I2C-MCU register 0xf bit4 to u8 cmdreply[2].&lt;br /&gt;
|-&lt;br /&gt;
| 0x002D0000&lt;br /&gt;
| [[MCURTC:GetBatteryLevel|GetBatteryLevel]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002E....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x002F....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0030....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0031....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0032....&lt;br /&gt;
| [[MCURTC:PowerOff|PowerOff]] (writes 0x1 to i2c MCU device, reg 0x20)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0033....&lt;br /&gt;
| [[MCURTC:HardwareReboot|HardwareReboot]] (writes 0x4 to i2c MCU device, reg 0x20)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0034....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0035....&lt;br /&gt;
| Writes 0x10 to i2c MCU device, reg 0x20&lt;br /&gt;
|-&lt;br /&gt;
| 0x0036....&lt;br /&gt;
| SetWatchdogTimer&lt;br /&gt;
|-&lt;br /&gt;
| 0x0037....&lt;br /&gt;
| GetWatchdogTimer&lt;br /&gt;
|-&lt;br /&gt;
| 0x0038....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0039....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x003A....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x003B0640&lt;br /&gt;
| [[MCURTC:SetInfoLEDPattern|SetInfoLEDPattern]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003C0040&lt;br /&gt;
| [[MCURTC:SetInfoLEDPatternHeader|SetInfoLEDPatternHeader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003D0000&lt;br /&gt;
| [[MCURTC:GetInfoLEDStatus|GetInfoLEDStatus]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003E....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x003F....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0040....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0041....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00420040&lt;br /&gt;
| [[MCURTC:SetBatteryEmptyLEDPattern|SetBatteryEmptyLEDPattern]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0043....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0044....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0045....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0046....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0047....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0048....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0049....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x004A....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x004B....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x004C....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x004D....&lt;br /&gt;
| [[MCURTC:ReadHidFlagRegister|ReadHidFlagRegister]] (reads i2c MCU device, reg 0x10)&lt;br /&gt;
|-&lt;br /&gt;
| 0x004E0040&lt;br /&gt;
| [[MCURTC:PublishNotifications|PublishNotifications]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x004F....&lt;br /&gt;
| Sets some flag (otherwise set when uploading MCU firmware)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0050....&lt;br /&gt;
| Returns the above flag&lt;br /&gt;
|-&lt;br /&gt;
| 0x00510040&lt;br /&gt;
| [[MCURTC:SetSoftwareClosedFlag|SetSoftwareClosedFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00520000&lt;br /&gt;
| [[MCURTC:GetSoftwareClosedFlag|GetSoftwareClosedFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0053....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0054....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0055....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0056....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0057....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0058....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00590040&lt;br /&gt;
| [[MCURTC:SetLegacyJumpProhibitedFlag|SetLegacyJumpProhibitedFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x005A0000&lt;br /&gt;
| [[MCURTC:GetLegacyJumpProhibitedFlag|GetLegacyJumpProhibitedFlag]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that using invalid input with these InfoLED/SetBatteryEmptyLEDPattern commands(especially SetInfoLEDPattern) can cause the system to be bricked(however the boot failure may not begin immediately after using the invalid parameters).&lt;br /&gt;
&lt;br /&gt;
=MCU sound service &amp;quot;mcu::SND&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010080&lt;br /&gt;
| GetSoundVolume&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020040&lt;br /&gt;
| Set...&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030080&lt;br /&gt;
| Get... cmdbuf[2] is 0xFA0 on n3ds&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=MCU wifi service &amp;quot;mcu::NWM&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001....&lt;br /&gt;
| SetWirelessLedState&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002....&lt;br /&gt;
| GetWirelessLedState&lt;br /&gt;
|-&lt;br /&gt;
| 0x0003....&lt;br /&gt;
| Sets GPIO 0x20 high/low?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004....&lt;br /&gt;
| Gets GPIO 0x20 high/low?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0005....&lt;br /&gt;
| SetEnableWifiGpio&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006....&lt;br /&gt;
| GetEnableWifiGpio&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| [[MCUNWM:SetWirelessDisabledFlag|SetWirelessDisabledFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008....&lt;br /&gt;
| [[MCUNWM:GetWirelessDisabledFlag|GetWirelessDisabledFlag]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=MCU service &amp;quot;mcu::HWC&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010082&lt;br /&gt;
| [[MCUHWC:ReadRegister|ReadRegister]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020082&lt;br /&gt;
| [[MCUHWC:WriteRegister|WriteRegister]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030042&lt;br /&gt;
| [[MCUHWC:GetInfoRegisters|GetInfoRegisters]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040000&lt;br /&gt;
| [[MCUHWC:GetBatteryVoltage|GetBatteryVoltage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050000&lt;br /&gt;
| [[MCUHWC:GetBatteryLevel|GetBatteryLevel]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00060040&lt;br /&gt;
| [[MCUHWC:SetPowerLEDPattern|SetPowerLEDPattern]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070040&lt;br /&gt;
| [[MCUHWC:SetWifiLEDState|SetWifiLEDState]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080040&lt;br /&gt;
| [[MCUHWC:SetCameraLEDPattern|SetCameraLEDPattern]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| [[MCUHWC:Set3DLEDState|Set3DLEDState]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0640&lt;br /&gt;
| This is the same as [[MCURTC:SetInfoLEDPattern]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0000&lt;br /&gt;
| [[MCUHWC:GetSoundVolume|GetSoundVolume]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0040&lt;br /&gt;
| SetTopScreenFlicker&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0040&lt;br /&gt;
| SetBottomScreenFlicker&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0080&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F00C0&lt;br /&gt;
| GetRtcTime&lt;br /&gt;
|-&lt;br /&gt;
| 0x00100000&lt;br /&gt;
| GetMcuFwVerHigh&lt;br /&gt;
|-&lt;br /&gt;
| 0x00110000&lt;br /&gt;
| GetMcuFwVerLow&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=MCU service &amp;quot;mcu::PLS&amp;quot;=&lt;br /&gt;
&lt;br /&gt;
RTC-related? Each of these seems to retrieve a second counter from a different RTC register.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0003....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0005....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008....&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0009....&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=MCU codec service &amp;quot;mcu::CDC&amp;quot;=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010000&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=New3DS=&lt;br /&gt;
The Old3DS/New3DS MCU sysmodules are identical except that the MCU firmware binary written via I2C is different. The size of that binary is the same. The only different words in .text are for the version of that MCU fw binary.&lt;br /&gt;
&lt;br /&gt;
=MCU firmware versions=&lt;br /&gt;
&lt;br /&gt;
These reside in mcu-module .rodata, are uploaded to MCU register 0x05 and are usually size 0x4003 bytes. (0x4000 bytes with 3 byte magic &amp;quot;jhl&amp;quot;?)&lt;br /&gt;
&lt;br /&gt;
There exists an alternate code path where uploading is done using register 0x3B (decided by making some nonsense conclusions about registers 0x0F and 0x10). This may be a &amp;quot;hack&amp;quot; around early versions of MCU? Register 0x3B is RTC-related on recent versions of MCU, and the &amp;quot;nonsense&amp;quot; condition is not met even on factory MCU firmware.&lt;br /&gt;
&lt;br /&gt;
On dev-units, the user-facing representation of this firmware version is displayed by first subtracting 0x10 from the major field (raw register 0x00). It is these user-facing versions that are displayed in the table below. It is unknown what bit4 (0x10) actually represents, but it is seemingly always 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;
!  Title version&lt;br /&gt;
!  Firmware&lt;br /&gt;
|-&lt;br /&gt;
| New3DS v9216 (New2DSXL)&lt;br /&gt;
| 3.65&lt;br /&gt;
|-&lt;br /&gt;
| New3DS v8192/safe v9217 (latest)&lt;br /&gt;
| 3.56&lt;br /&gt;
|-&lt;br /&gt;
| Old3DS v6145 to v8192 (latest)&lt;br /&gt;
| 2.37&lt;br /&gt;
|-&lt;br /&gt;
| Old3DS v5122&lt;br /&gt;
| 2.35&lt;br /&gt;
|-&lt;br /&gt;
| Old3DS v4102&lt;br /&gt;
| 2.30&lt;br /&gt;
|-&lt;br /&gt;
| Old3DS v3072&lt;br /&gt;
| 2.16&lt;br /&gt;
|-&lt;br /&gt;
| Old3DS v2048&lt;br /&gt;
| 1.52&lt;br /&gt;
|-&lt;br /&gt;
| Old3DS v1026&lt;br /&gt;
| 1.51&lt;br /&gt;
|-&lt;br /&gt;
| Old3DS v0/safe v0&lt;br /&gt;
| 1.20&lt;br /&gt;
|-&lt;br /&gt;
| Old3DS factory&lt;br /&gt;
| 1.07&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Title_list&amp;diff=20089</id>
		<title>Title list</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Title_list&amp;diff=20089"/>
		<updated>2017-06-15T11:41:28Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: EUR New 2DS XL displays 11.4.0-37E but has some new title versions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== CTR Title List Notes ====&lt;br /&gt;
Reports/title-lists [https://yls8.mtheall.com/ninupdates/reports.php here] are automatically obtained from the system update SOAP.&lt;br /&gt;
&lt;br /&gt;
== CTR System Titles ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Category Bit Mask&lt;br /&gt;
!  Title Type&lt;br /&gt;
!  Internal Description&lt;br /&gt;
!  Bit Mask(s)&lt;br /&gt;
|-&lt;br /&gt;
|  0x0010&lt;br /&gt;
|  Application&lt;br /&gt;
|  SYSTEM_APPLICATION&lt;br /&gt;
|  Normal&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;System&lt;br /&gt;
|-&lt;br /&gt;
|  0x001B&lt;br /&gt;
|  System Data Archives&lt;br /&gt;
|  SYSTEM_CONTENT&lt;br /&gt;
|  Contents&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;System&lt;br /&gt;
|-&lt;br /&gt;
|  0x009B&lt;br /&gt;
|  Shared Data Archives&lt;br /&gt;
|  SHARED_CONTENT&lt;br /&gt;
|  Contents&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;NotRequireRightForMount&lt;br /&gt;
|-&lt;br /&gt;
|  0x00DB&lt;br /&gt;
|  System Data Archives&lt;br /&gt;
|  AUTO_UPDATE_CONTENT&lt;br /&gt;
|  Contents&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;NotRequireUserApproval&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;NotRequireRightForMount&lt;br /&gt;
|-&lt;br /&gt;
|  0x0030&lt;br /&gt;
|  Applet&lt;br /&gt;
|  APPLET&lt;br /&gt;
|  Normal&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;RequireBatchUpdate&lt;br /&gt;
|-&lt;br /&gt;
|  0x0130&lt;br /&gt;
|  Module&lt;br /&gt;
|  BASE&lt;br /&gt;
|  Normal&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;RequireBatchUpdate&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;CanSkipConvertJumpId&lt;br /&gt;
|-&lt;br /&gt;
|  0x0138&lt;br /&gt;
|  Firmware &lt;br /&gt;
|  FIRMWARE&lt;br /&gt;
|  Normal&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;RequireBatchUpdate&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;CanSkipConvertJumpId&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00040010 - System Applications ===&lt;br /&gt;
==== System Application Notes ====&lt;br /&gt;
System Application titles have a unique title low that varies by region.&lt;br /&gt;
Regardless of version, the ExeFS:/.code for mset is the same for USA/EUR/JPN. &lt;br /&gt;
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). &lt;br /&gt;
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.&lt;br /&gt;
The &#039;&#039;only&#039;&#039; system-applications included with gamecard-sysupdates are: [[System Settings]], [[Download Play]], and SAFE_MODE [[System Settings#System Updater|System Updater]]. &lt;br /&gt;
The only system-applications included with the New3DS gamecard-sysupdate partition are: &amp;quot;menu&amp;quot; stub and &amp;quot;friend&amp;quot; stub.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  JPN TIDLow&lt;br /&gt;
!  USA TIDLow&lt;br /&gt;
!  EUR TIDLow&lt;br /&gt;
!  CHN TIDLow&lt;br /&gt;
!  KOR TIDLow&lt;br /&gt;
!  TWN TIDLow&lt;br /&gt;
!  [[Product code]]&lt;br /&gt;
!  Description&lt;br /&gt;
!  JPN Versions&lt;br /&gt;
!  EUR Versions&lt;br /&gt;
!  USA Versions&lt;br /&gt;
!  CHN Versions&lt;br /&gt;
!  KOR Versions&lt;br /&gt;
!  TWN Versions&lt;br /&gt;
!  Status&lt;br /&gt;
|-&lt;br /&gt;
| 00020000&lt;br /&gt;
| 00021000&lt;br /&gt;
| 00022000&lt;br /&gt;
| 00026000&lt;br /&gt;
| 00027000&lt;br /&gt;
| 00028000&lt;br /&gt;
| CTR-N-HAS?&lt;br /&gt;
| [[System Settings]] (mset)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[3.0.0-5|v2060]], [[4.0.0-7|v3074]], [[5.0.0-11|v4097]], [[6.0.0-11|v5127]], [[7.0.0-13|v6157]], [[7.2.0-17|v7173]], [[8.1.0-0_New3DS|v8198]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v9224]], [[9.6.0-24|v10245]], [[10.6.0-31|v10256]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[3.0.0-5|v2061]], [[4.0.0-7|v3075]], [[5.0.0-11|v4097]], [[6.0.0-11|v5127]], [[7.0.0-13|v6157]], [[7.2.0-17|v7174]], [[9.0.0-20|v8202]], [[9.6.0-24|v9220]], [[11.4.0-37|v10241]](New2DSXL)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[3.0.0-5|v2062]], [[4.0.0-7|v3078]], [[5.0.0-11|v4098]], [[6.0.0-11|v5128]], [[7.0.0-13|v6157]], [[7.2.0-17|v7174]], [[9.0.0-20|v8203]], [[9.6.0-24|v9221]]&lt;br /&gt;
| [[4.0.0-7|v8]], [[4.4.0-10|v1024]](CHN-only sysupdate for just mset), [[5.0.0-11|v2049]], [[7.0.0-13|v3075]]&lt;br /&gt;
| [[4.0.0-7|v1026]], [[5.0.0-11|v2049]], [[7.0.0-13|v4098]]&lt;br /&gt;
| [[4.1.0-8|v8]], [[4.2.0-9|v1024]], [[5.0.0-11|v2050]], [[7.0.0-13|v3074]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020100&lt;br /&gt;
| 00021100&lt;br /&gt;
| 00022100&lt;br /&gt;
| 00026100&lt;br /&gt;
| 00027100&lt;br /&gt;
| 00028100&lt;br /&gt;
| CTR-N-HDL?&lt;br /&gt;
| [[Download Play]] (dlplay)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]], [[4.0.0-7|v2051]], [[9.0.0-20|v3072]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]], [[4.0.0-7|v2051]], [[9.0.0-20|v3073]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]], [[4.0.0-7|v2051]], [[9.0.0-20|v3073]]&lt;br /&gt;
| [[4.0.0-7|v4]]&lt;br /&gt;
| [[4.0.0-7|v1027]]&lt;br /&gt;
| [[4.1.0-8|v4]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020200&lt;br /&gt;
| 00021200&lt;br /&gt;
| 00022200&lt;br /&gt;
| 00026200&lt;br /&gt;
| 00027200&lt;br /&gt;
| 00028200&lt;br /&gt;
| CTR-N-HMK?&lt;br /&gt;
| [[Activity Log]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[3.0.0-5|v2051]], [[10.6.0-31|v2080]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[3.0.0-5|v2054]], [[7.0.0-13|v2064]]&lt;br /&gt;
| Same as EUR&lt;br /&gt;
| [[4.0.0-7|v3]]&lt;br /&gt;
| [[4.0.0-7|v2]], [[7.0.0-13|v16]]&lt;br /&gt;
| [[4.1.0-8|v2]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020300&lt;br /&gt;
| 00021300&lt;br /&gt;
| 00022300&lt;br /&gt;
| 00026300&lt;br /&gt;
| 00027300&lt;br /&gt;
| 00028300&lt;br /&gt;
| ?&lt;br /&gt;
| [[Health and Safety Information]] (safe)&lt;br /&gt;
| [[1.0.0-0|v0]], [[4.0.0-7|v1024]], [[6.0.0-11|v2050]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[4.0.0-7|v2050]], [[6.0.0-11|v3077]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[4.0.0-7|v1026]], [[6.1.0-12U|v2051]]&lt;br /&gt;
| [[4.0.0-7|v5]]&lt;br /&gt;
| [[4.0.0-7|v2]]&lt;br /&gt;
| [[4.1.0-8|v5]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 20020300&lt;br /&gt;
| 20021300&lt;br /&gt;
| 20022300&lt;br /&gt;
| N/A&lt;br /&gt;
| 20027300&lt;br /&gt;
| N/A&lt;br /&gt;
| CTR-N-HAC?&lt;br /&gt;
| [[New_3DS]] [[Health and Safety Information]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v2]], [[9.3.0-21|v17]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v1]], [[11.4.0-37|v16]](New2DSXL)&lt;br /&gt;
| Same as EUR.&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v2]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020400&lt;br /&gt;
| 00021400&lt;br /&gt;
| 00022400&lt;br /&gt;
| 00026400&lt;br /&gt;
| 00027400&lt;br /&gt;
| 00028400&lt;br /&gt;
| CTR-N-HEP?&lt;br /&gt;
| [[Nintendo 3DS Camera]] (CtrApp)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v16]], [[3.0.0-5|v1038]], [[4.0.0-7|v2048]], [[6.0.0-11|v3073]], [[9.0.0-20|v4097]](Also for [[8.1.0-0_New3DS]]), [[10.6.0-31|v4112]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v16]], [[3.0.0-5|v1039]], [[4.0.0-7|v2048]], [[6.0.0-11|v3073]], [[7.0.0-13|v3088]], [[9.0.0-20|v4097]], [[11.4.0-37|v5120]](New2DSXL)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v16]], [[3.0.0-5|v1039]], [[4.0.0-7|v2048]], [[6.1.0-12U|v3074]], [[7.0.0-13|v3088]], [[9.0.0-20|v4097]]&lt;br /&gt;
| [[4.0.0-7|v3]]&lt;br /&gt;
| [[4.0.0-7|v2]], [[7.0.0-13|v1040]]&lt;br /&gt;
| [[4.1.0-8|v3]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020500&lt;br /&gt;
| 00021500&lt;br /&gt;
| 00022500&lt;br /&gt;
| 00026500&lt;br /&gt;
| 00027500&lt;br /&gt;
| 00028500&lt;br /&gt;
| CTR-N-HES?&lt;br /&gt;
| [[Nintendo 3DS Sound]] (CtrApp)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1027]], [[3.0.0-5|v2049]], [[4.0.0-7|v3072]], [[7.0.0-13|v3089]],  [[11.4.0-37|v4096]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1027]], [[3.0.0-5|v2049]], [[4.0.0-7|v3072]], [[7.0.0-13|v3088]], [[11.4.0-37|v4096]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1027]], [[3.0.0-5|v2049]], [[4.0.0-7|v3072]], [[7.0.0-13|v3088]], [[11.4.0-37|v4096]]&lt;br /&gt;
| [[4.0.0-7|v2]], [[11.4.0-37|v1024]]&lt;br /&gt;
| [[4.0.0-7|v2]], [[7.0.0-13|v16]],[[11.4.0-37|v4096]]&lt;br /&gt;
| [[4.1.0-8|v3]], [[11.4.0-37|v1024]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020700&lt;br /&gt;
| 00021700&lt;br /&gt;
| 00022700&lt;br /&gt;
| 00026700&lt;br /&gt;
| 00027700&lt;br /&gt;
| 00028700&lt;br /&gt;
| CTR-N-HED?&lt;br /&gt;
| [[Mii Maker]] (EDIT)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[7.0.0-13|v2055]], [[10.6.0-31|v2064]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| [[4.0.0-7|v1]]&lt;br /&gt;
| [[4.0.0-7|v1]], [[7.0.0-13|v16]]&lt;br /&gt;
| [[4.1.0-8|v2]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020800&lt;br /&gt;
| 00021800&lt;br /&gt;
| 00022800&lt;br /&gt;
| 00026800&lt;br /&gt;
| 00027800&lt;br /&gt;
| 00028800&lt;br /&gt;
| CTR-N-HME?&lt;br /&gt;
| [[StreetPass Mii Plaza]] (MEET)&lt;br /&gt;
| [[1.0.0-0|v0]], v1027, [[2.1.0-4|v2048]], [[3.0.0-5|v3087]], [[3.0.0-6|v4096]], [[6.0.0-11|v5121]]&lt;br /&gt;
| [[1.0.0-0|v0]], v1027, [[2.1.0-4|v2048]], [[3.0.0-5|v3087]], [[3.0.0-6|v4096]], [[6.0.0-11|v5122]]&lt;br /&gt;
| [[1.0.0-0|v0]], v1027, [[2.1.0-4|v2048]], [[3.0.0-5|v3087]], [[3.0.0-6|v4096]], [[6.1.0-12U|v5124]], [[7.0.0-13|v5136]]&lt;br /&gt;
| [[4.0.0-7|v0]], [[4.4.0-10|v4096]]&lt;br /&gt;
| [[4.0.0-7|v1]], [[4.4.0-10|v4096]], [[7.0.0-13|v5120]]&lt;br /&gt;
| [[4.1.0-8|v1]], [[4.4.0-10|v4096]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020900&lt;br /&gt;
| 00021900&lt;br /&gt;
| 00022900&lt;br /&gt;
| N/A&lt;br /&gt;
| 00027900&lt;br /&gt;
| 00028900&lt;br /&gt;
| CTR-N-HGR?&lt;br /&gt;
| [[eShop]] (tiger)&lt;br /&gt;
| [[2.0.0-2|v4]], [[2.1.0-3|v1026]], [[3.0.0-5|v2057]], [[4.0.0-7|v3081]], [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7169]], [[7.0.0-13|v8206]], [[7.1.0-14|v9231]], [[7.2.0-17|v10245]], [[8.0.0-18|v11265]], [[8.1.0-19|v12288]], [[9.0.0-20|v13320]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17421]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]], [[10.4.0-29|v20483]], [[10.7.0-32|v21504]], [[11.3.0-36|v23552]]&lt;br /&gt;
| [[2.0.0-2|v4]], [[2.1.0-3|v1026]], [[3.0.0-5|v2058]], [[4.0.0-7|v3081]], [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7171]], [[7.0.0-13|v8206]], [[7.1.0-14|v9231]], [[7.2.0-17|v10245]], [[8.0.0-18|v11265]], [[8.1.0-19|v12288]], [[9.0.0-20|v13320]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17421]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]], [[10.4.0-29|v20482]], [[10.7.0-32|v21505]], [[11.2.0-35|v22528]], [[11.3.0-36|v23552]], [[11.4.0-37|v24576]](New2DSXL)&lt;br /&gt;
| [[2.0.0-2|v4]], [[2.1.0-3|v1026]], [[3.0.0-5|v2058]], [[4.0.0-7|v3081]], [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7170]], [[7.0.0-13|v8206]], [[7.1.0-14|v9231]], [[7.2.0-17|v10246]], [[8.0.0-18|v11265]], [[8.1.0-19|v12288]], [[9.0.0-20|v13321]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17422]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]], [[10.4.0-29|v20482]], [[10.7.0-32|v21506]], [[11.3.0-36|v23552]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[4.0.0-7|v3082]], [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7169]], [[7.0.0-13|v8205]], [[7.1.0-14|v9231]], [[8.1.0-19|v12288]], [[9.0.0-20|v13320]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17420]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]], [[10.4.0-29|v20482]]&lt;br /&gt;
| [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7170]], [[7.0.0-13|v8205]], [[7.1.0-14|v9231]], [[8.1.0-19|v12288]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17421]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020A00&lt;br /&gt;
| 00021A00&lt;br /&gt;
| 00022A00&lt;br /&gt;
| N/A&lt;br /&gt;
| 00027A00&lt;br /&gt;
| 00028A00&lt;br /&gt;
| CTR-N-HCB?&lt;br /&gt;
| [[System Transfer]] (CARDBOARD)&lt;br /&gt;
| [[2.0.0-2|v4]], [[3.0.0-5|v1035]], [[4.0.0-7|v2050]], [[5.0.0-11|v3074]], [[7.0.0-13|v4109]], [[9.0.0-20|v5130]], [[9.6.0-24|v6154]]&lt;br /&gt;
| [[2.0.0-2|v4]], [[3.0.0-5|v1035]], [[4.0.0-7|v2050]], [[5.0.0-11|v3073]], [[7.0.0-13|v4109]], [[9.0.0-20|v5131]], [[9.6.0-24|v6155]]&lt;br /&gt;
| [[2.0.0-2|v4]], [[3.0.0-5|v1035]], [[4.0.0-7|v2051]], [[5.0.0-11|v3073]], [[7.0.0-13|v4109]], [[9.0.0-20|v5131]], [[9.6.0-24|v6156]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[4.0.0-7|v2]], [[5.0.0-11|v1025]], [[7.0.0-13|v2061]], [[9.0.0-20|v3082]]&lt;br /&gt;
| [[4.1.0-8|v2]], [[5.0.0-11|v1025]], [[7.0.0-13|v2061]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020B00&lt;br /&gt;
| 00021B00&lt;br /&gt;
| 00022B00&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| CTR-N-HMA?&lt;br /&gt;
| [[Nintendo Zone]] (&amp;quot;Nintendo&amp;quot;)&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1034]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020D00&lt;br /&gt;
| 00021D00&lt;br /&gt;
| 00022D00&lt;br /&gt;
| 00026D00&lt;br /&gt;
| 00027D00&lt;br /&gt;
| 00028D00&lt;br /&gt;
| CTR-N-HCH?&lt;br /&gt;
| [[Face Raiders]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1028]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1028]], [[7.0.0-13|v1040]]&lt;br /&gt;
| Same as EUR&lt;br /&gt;
| [[4.0.0-7|v0]]&lt;br /&gt;
| [[4.0.0-7|v0]]&lt;br /&gt;
| [[4.1.0-8|v2]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 20020D00&lt;br /&gt;
| 20021D00&lt;br /&gt;
| 20022D00&lt;br /&gt;
| N/A&lt;br /&gt;
| 20027D00&lt;br /&gt;
| N/A&lt;br /&gt;
| ?&lt;br /&gt;
| [[New_3DS]] [[Face Raiders]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v2050]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v2049]]&lt;br /&gt;
| Same as EUR.&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v2049]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020E00&lt;br /&gt;
| 00021E00&lt;br /&gt;
| 00022E00&lt;br /&gt;
| 00026E00&lt;br /&gt;
| 00027E00&lt;br /&gt;
| 00028E00&lt;br /&gt;
| CTR-N-HAR?&lt;br /&gt;
| [[AR Games]] (AR_ACT)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]], [[7.0.0-13|v1040]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1027]], [[7.0.0-13|v1040]]&lt;br /&gt;
| [[4.0.0-7|v0]]&lt;br /&gt;
| [[4.0.0-7|v0]], [[7.0.0-13|v16]]&lt;br /&gt;
| [[4.1.0-8|v1]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020F00&lt;br /&gt;
| 00021F00&lt;br /&gt;
| 00022F00&lt;br /&gt;
| 00026F00&lt;br /&gt;
| 00027F00&lt;br /&gt;
| 00028F00&lt;br /&gt;
| CTR-N-HSH?&lt;br /&gt;
| SAFE_MODE [[System Settings#System Updater|System Updater]] (mset)&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[6.0.0-11|v2049]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[6.0.0-11|v2050]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| [[4.0.0-7|v1]], [[6.0.0-11|v1026]]&lt;br /&gt;
| [[4.0.0-7|v1]]&lt;br /&gt;
| [[4.1.0-8|v1]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00023000&lt;br /&gt;
| 00024000&lt;br /&gt;
| 00025000&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| (Variable?)&lt;br /&gt;
| Promotional video&lt;br /&gt;
| [[1.1.0-1|v2]], [[2.0.0-2|v2048]]&lt;br /&gt;
| [[1.1.0-1|v&amp;lt;unknown&amp;gt;]], [[2.0.0-2|v2048]]&lt;br /&gt;
| [[1.1.0-1|v0]], [[2.0.0-2|v2048]]&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0002BF00&lt;br /&gt;
| 0002C000&lt;br /&gt;
| 0002C100&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| CTR-N-HAF?&lt;br /&gt;
| [[Nintendo Network ID Settings]] (act)&lt;br /&gt;
| [[7.0.0-13|v14]], [[7.2.0-17|v1029]], [[9.0.0-20|v2051]], [[9.3.0-21|v3072]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 20023100&lt;br /&gt;
| 20024100&lt;br /&gt;
| 20025100&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| CTR-N-HAJ?&lt;br /&gt;
| [[microSD Management]] (&#039;mcopy&#039;) ([[New_3DS]]-only)&lt;br /&gt;
| [[8.1.0-0_New3DS|v8]], [[9.0.0-20|v1024]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v5]]&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Available&lt;br /&gt;
|-&lt;br /&gt;
| 2002C800&lt;br /&gt;
| 2002CF00&lt;br /&gt;
| 2002D000&lt;br /&gt;
| N/A&lt;br /&gt;
| 2002D700&lt;br /&gt;
| N/A&lt;br /&gt;
| CTR-P-CTAP&lt;br /&gt;
| [[New_3DS]]-only, currently stubbed. &amp;quot;HOME menu/menu&amp;quot;.&lt;br /&gt;
| [[8.1.0-0_New3DS|v2]], [[9.0.0-20|v18]], [[9.3.0-21|v34]], [[9.6.0-24|v50]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v1]], [[9.3.0-21|v17]], [[9.6.0-24|v34]], [[11.4.0-37|v48]](New2DSXL)&lt;br /&gt;
| [[8.1.0-0_New3DS|v1]], [[9.3.0-21|v18]], [[9.6.0-24|v33]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v2]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 2002C900&lt;br /&gt;
| 2002D100&lt;br /&gt;
| 2002D200&lt;br /&gt;
| N/A&lt;br /&gt;
| 2002D800&lt;br /&gt;
| N/A&lt;br /&gt;
| CTR-P-CTAP&lt;br /&gt;
| [[New_3DS]]-only, currently stubbed. &amp;quot;Friends list/friend&amp;quot;.&lt;br /&gt;
| [[8.1.0-0_New3DS|v1]]&lt;br /&gt;
| Same as JPN.&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.3.0-21|v16]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v2]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 2002CA00&lt;br /&gt;
| 2002D300&lt;br /&gt;
| 2002D400&lt;br /&gt;
| N/A&lt;br /&gt;
| 2002D900&lt;br /&gt;
| N/A&lt;br /&gt;
| CTR-P-CTAP&lt;br /&gt;
| [[New_3DS]]-only, currently stubbed. &amp;quot;Notifications/newslist&amp;quot;.&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], v1([[Home_Menu|JPN-only]] Oct 2, 2014 &amp;quot;sysupdate&amp;quot;, actually uploaded on 09-29-14. Identical to v0, same TMDs besides title-versions)&lt;br /&gt;
| [[8.1.0-0_New3DS|v2]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v2]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 2002CB00&lt;br /&gt;
| 2002D500&lt;br /&gt;
| 2002D600&lt;br /&gt;
| N/A&lt;br /&gt;
| 2002DA00&lt;br /&gt;
| N/A&lt;br /&gt;
| CTR-P-CTAP&lt;br /&gt;
| [[New_3DS]]-only, currently stubbed. &amp;quot;Game notes/cherry&amp;quot;.&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.0.0-20|v1]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v2]]&lt;br /&gt;
| Same as EUR.&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v1]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0004001B - [[NCCH#CFA|System Data Archives]] ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00010002&lt;br /&gt;
| [[ClCertA]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 00010702&lt;br /&gt;
| [[NS CFA]]&lt;br /&gt;
| [[3.0.0-5|v0]], [[6.0.0-11|v1028]], [[6.3.0-12|v2048]], [[7.0.0-13|v3073]], [[9.0.0-20|v4096]](also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
| 00010802&lt;br /&gt;
| This CFA only contains a 1-byte &amp;quot;dummy.txt&amp;quot; in the RomFS, which contains &#039;0&#039;.&lt;br /&gt;
| [[6.3.0-12|v0]], [[9.5.0-23|v1024]], [[10.5.0-30|v2048]], [[11.0.0-33|v3072]]&lt;br /&gt;
|-&lt;br /&gt;
| 00018002&lt;br /&gt;
| Same contents as 00010802. Starting with [[7.1.0-15]], the &amp;quot;dummy.txt&amp;quot; file was removed from RomFS: this CFA RomFS now contains web-browser data(similar to 00018102) for NNID / networking, etc.&lt;br /&gt;
| [[7.0.0-13|v14]], [[7.1.0-15|v1025]], [[7.2.0-17|v2055]], [[9.0.0-20|v3078]], [[9.3.0-21|v4096]], [[9.6.0-24|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 00018102&lt;br /&gt;
| This contains local web-browser data(html/js, gfx, etc) for the Miiverse Offline-mode.&lt;br /&gt;
| [[7.0.0-13|v11]], [[9.0.0-20|v1025]](also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
| 00018202&lt;br /&gt;
| This contains the webkit/OSS [[CRO0|CROs]] used with the Miiverse applet and the &amp;quot;act&amp;quot; application.&lt;br /&gt;
| [[7.0.0-13|v7]], [[8.1.0-0_New3DS|v1026]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v2050]]&lt;br /&gt;
|-&lt;br /&gt;
| 00019002&lt;br /&gt;
| [[Fangate_updater]]&lt;br /&gt;
| [[9.3.0-21|v2]], [[9.6.0-24|v1026]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00040030 - System Applets===&lt;br /&gt;
==== System Applet Notes ====&lt;br /&gt;
Most of these processes are applets, see [[NS_and_APT_Services|here]] for details.&lt;br /&gt;
All of the below processes use the &amp;quot;SYSTEM&amp;quot; [[SVC|memory-region]].&lt;br /&gt;
The ExeFS for Home Menu is exactly the same for USA/EUR/JPN.&lt;br /&gt;
The Miiverse applet seems to use a web browser with webkit.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  JPN TitleIDLow&lt;br /&gt;
!  USA TitleIDLow&lt;br /&gt;
!  EUR TitleIDLow&lt;br /&gt;
!  CHN TitleIDLow&lt;br /&gt;
!  KOR TitleIDLow&lt;br /&gt;
!  TWN TitleIDLow&lt;br /&gt;
!  [[Product code]]&lt;br /&gt;
!  Description&lt;br /&gt;
!  JPN Versions&lt;br /&gt;
!  USA Versions&lt;br /&gt;
!  EUR Versions&lt;br /&gt;
|-&lt;br /&gt;
|colspan=6 align=center| 00008102&lt;br /&gt;
| CTR-P-CTAP&lt;br /&gt;
| [[NS#Alternate menu|Test Menu]] (Demo1)&lt;br /&gt;
|colspan=3 align=center| ..., v64, ..., v27648&lt;br /&gt;
|-&lt;br /&gt;
| 00008202&lt;br /&gt;
| 00008F02&lt;br /&gt;
| 00009802&lt;br /&gt;
| 0000A102&lt;br /&gt;
| 0000A902&lt;br /&gt;
| 0000B102&lt;br /&gt;
| CTR-P-HMM?&lt;br /&gt;
| [[Home Menu]] (menu)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[2.1.0-3|v2049]], [[2.2.0-X|v3075]], [[3.0.0-5|v4111]], [[4.0.0-7|v5131]], [[4.2.0-9|v6146]], [[5.0.0-11|v7172]], [[6.0.0-11|v8198]], [[7.0.0-13|v9230]], [[8.1.0-0_New3DS|v10250]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v13313]], [[9.1.0-20J|v14336]], [[9.2.0-20|v15360]], [[9.3.0-21|v16402]], [[9.4.0-21|v17408]], [[9.5.0-22|v18432]], [[9.6.0-24|v19476]], [[9.7.0-25|v20487]], [[9.8.0-25|v22528]], [[10.1.0-27|v23552]], [[10.2.0-28|v24576]], [[10.3.0-28|v25600]], [[10.4.0-29|v26626]], [[10.6.0-31|v27648]], [[11.1.0-34|v28672]], [[11.3.0-36|v29696]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[2.1.0-3|v2049]], [[2.2.0-X|v3075]], [[3.0.0-5|v4111]], [[4.0.0-7|v5131]], [[4.2.0-9|v6146]], [[5.0.0-11|v7172]], [[6.0.0-11|v8198]], [[7.0.0-13|v9230]], [[9.0.0-20|v11272]], [[9.2.0-20|v12288]], [[9.3.0-21|v13330]], [[9.4.0-21|v14336]], [[9.5.0-22|v15360]], [[9.6.0-24|v16404]], [[9.7.0-25|v17415]], [[9.8.0-25|v19456]], [[9.9.0-26|v20480]], [[10.1.0-27|v21504]], [[10.2.0-28|v22528]], [[10.3.0-28|v23552]], [[10.4.0-29|v24578]], [[10.6.0-31|v25600]], [[11.1.0-34|v26624]], [[11.3.0-36|v27648]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[2.1.0-3|v2049]], [[2.2.0-X|v3075]], [[3.0.0-5|v4111]], [[4.0.0-7|v5131]], [[4.2.0-9|v6146]], [[5.0.0-11|v7172]], [[6.0.0-11|v8198]], [[7.0.0-13|v9230]], [[9.0.0-20|v11272]], [[9.2.0-20|v12288]], [[9.3.0-21|v13330]], [[9.4.0-21|v14336]], [[9.5.0-22|v15360]], [[9.6.0-24|v16404]], [[9.7.0-25|v17415]], [[9.8.0-25|v19456]], [[10.1.0-27|v20480]], [[10.2.0-28|v21504]], [[10.3.0-28|v22528]], [[10.4.0-29|v23554]], [[10.6.0-31|v24576]], [[11.1.0-34|v25600]], [[11.3.0-36|v26624]], [[11.4.0-37|v27649]](New2DSXL)&lt;br /&gt;
|-&lt;br /&gt;
| 00008402&lt;br /&gt;
| 00009002&lt;br /&gt;
| 00009902&lt;br /&gt;
| 0000A202&lt;br /&gt;
| 0000AA02&lt;br /&gt;
| 0000B202&lt;br /&gt;
| CTR-N-HCS?&lt;br /&gt;
| Camera applet used by Home-menu (CtrApp)&lt;br /&gt;
|colspan=3| v0, v1036, [[9.0.0-20|v2049]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
| 00008502&lt;br /&gt;
| 00009102&lt;br /&gt;
| 00009A02&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| Not available on CDN&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 00008602&lt;br /&gt;
| 00009202&lt;br /&gt;
| 00009B02&lt;br /&gt;
| 0000A402&lt;br /&gt;
| 0000AC02&lt;br /&gt;
| 0000B402&lt;br /&gt;
| CTR-N-HMV?&lt;br /&gt;
| Instruction Manual, applet for displaying instruction manuals&lt;br /&gt;
|colspan=3| v0, v1026, v2048, v3072, [[5.0.0-11|v4097]], [[9.0.0-20|v5120]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
| 00008702&lt;br /&gt;
| 00009302&lt;br /&gt;
| 00009C02&lt;br /&gt;
| 0000A502&lt;br /&gt;
| 0000AD02&lt;br /&gt;
| 0000B502&lt;br /&gt;
| CTR-N-HGM?&lt;br /&gt;
| Game Notes (Cherry)&lt;br /&gt;
|colspan=3| v0, v1026, v2049, [[5.0.0-11|v3073]], [[9.0.0-20|v4096]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
| 00008802&lt;br /&gt;
| 00009402&lt;br /&gt;
| 00009D02&lt;br /&gt;
| 0000A602&lt;br /&gt;
| 0000AE02&lt;br /&gt;
| 0000B602&lt;br /&gt;
| &lt;br /&gt;
| [[Internet Browser]] (spider)&lt;br /&gt;
|colspan=3| [[2.0.0-2|v6]], [[2.1.0-4|v1024]], [[4.0.0-7|v2050]], [[5.0.0-11|v3074 (EUR)/v3075(USA,JAP)]], [[7.0.0-13|v3088]], [[7.1.0-16|v4096]], [[9.5.0-23|v5121]], [[9.9.0-26|v6149]], [[10.2.0-28|v7168]], [[10.6.0-31|v8192]], [[10.7.0-32|v9232]], [[11.1.0-34|v10240]]&lt;br /&gt;
|-&lt;br /&gt;
| 20008802&lt;br /&gt;
| 20009402&lt;br /&gt;
| 20009D02&lt;br /&gt;
| ?&lt;br /&gt;
| 2000AE02&lt;br /&gt;
| N/A&lt;br /&gt;
| CTR-N-HBR?&lt;br /&gt;
| [[New 3DS]] [[Internet Browser]] (SKATER)&lt;br /&gt;
|colspan=3| [[8.1.0-0_New3DS|v10]], [[9.3.0-21|v1027]], [[9.6.0-24|v2051]], [[9.9.0-26|v3077]], [[10.2.0-28|v4096]], [[10.4.0-29|v5121]], [[10.6.0-31|v6144]], [[10.7.0-32|v7184]], [[11.1.0-34|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=6| 00008A02&lt;br /&gt;
| &lt;br /&gt;
| Fatal error viewer ([[ErrDisp]])&lt;br /&gt;
|colspan=3| v0, v1025, [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5121]], [[8.0.0-18|v6144]], [[9.0.0-20|v7168]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
|colspan=6| 00008A03&lt;br /&gt;
| &lt;br /&gt;
| SAFE_MODE [[ErrDisp]]&lt;br /&gt;
|colspan=3| v0&lt;br /&gt;
|-&lt;br /&gt;
| 20008A03&lt;br /&gt;
| 20008A03&lt;br /&gt;
| 20008A03&lt;br /&gt;
| ?&lt;br /&gt;
| 20008A03&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[ErrDisp]]&lt;br /&gt;
|colspan=3| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00008D02&lt;br /&gt;
| 00009602&lt;br /&gt;
| 00009F02&lt;br /&gt;
| 0000A702&lt;br /&gt;
| 0000AF02&lt;br /&gt;
| 0000B702&lt;br /&gt;
| CTR-N-HFR?&lt;br /&gt;
| Friend List (friend)&lt;br /&gt;
|colspan=3| v0, v1026, [[2.2.0-X|v2051]], v3082, v4099, [[7.0.0-13|v5120]], [[9.0.0-20|v6144]](Also for [[8.1.0-0_New3DS]]) (EUR v6, v1024, v3082, v4099, [[7.0.0-13|v5120]], [[9.0.0-20|v6144]])&lt;br /&gt;
|-&lt;br /&gt;
| 00008E02&lt;br /&gt;
| 00009702&lt;br /&gt;
| 0000A002&lt;br /&gt;
| 0000A802&lt;br /&gt;
| 0000B002&lt;br /&gt;
| 0000B802&lt;br /&gt;
| CTR-N-HCR?&lt;br /&gt;
| Notifications (newslist)&lt;br /&gt;
|colspan=3| v0, v1029, v2054, v3075, [[9.0.0-20|v4097]] (EUR v6, v1024, v2054, v3075, [[9.0.0-20|v4097]]) (JPN: ..., [[8.1.0-0_New3DS|v4096]], [[9.0.0-20|v5121]])&lt;br /&gt;
|-&lt;br /&gt;
| 0000C002&lt;br /&gt;
| 0000C802&lt;br /&gt;
| 0000D002&lt;br /&gt;
| 0000D802&lt;br /&gt;
| 0000DE02&lt;br /&gt;
| 0000E402&lt;br /&gt;
| CTR-N-HKY?&lt;br /&gt;
| Software Keyboard (swkbd)&lt;br /&gt;
|colspan=3| v0, v1026, v2053, [[7.0.0-13|v3072]], [[9.0.0-20|v4096]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
| 0000C003&lt;br /&gt;
| 0000C803&lt;br /&gt;
| 0000D003&lt;br /&gt;
| 0000D803&lt;br /&gt;
| 0000DE03&lt;br /&gt;
| 0000E403&lt;br /&gt;
| &lt;br /&gt;
| SAFE_MODE Software Keyboard (swkbd)&lt;br /&gt;
|colspan=3| v0&lt;br /&gt;
|-&lt;br /&gt;
| 2000C003&lt;br /&gt;
| 2000C803&lt;br /&gt;
| 2000D003&lt;br /&gt;
| ?&lt;br /&gt;
| 2000DE03&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| [[New 3DS]] SAFE_MODE Software Keyboard (swkbd)&lt;br /&gt;
| [[8.1.0-0_New3DS|v1024]]&lt;br /&gt;
|colspan=2|[[9.0.0-20|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 0000C102&lt;br /&gt;
| 0000C902&lt;br /&gt;
| 0000D102&lt;br /&gt;
| 0000D902&lt;br /&gt;
| 0000DF02&lt;br /&gt;
| 0000E502&lt;br /&gt;
| CTR-N-HMS?&lt;br /&gt;
| Mii picker (appletEd)&lt;br /&gt;
|colspan=3| v0, v1026, [[9.0.0-20|v2048]](Also for [[8.1.0-0_New3DS]]), [[9.3.0-21|v3077]]&lt;br /&gt;
|-&lt;br /&gt;
| 0000C302&lt;br /&gt;
| 0000CB02&lt;br /&gt;
| 0000D302&lt;br /&gt;
| 0000DB02&lt;br /&gt;
| 0000E102&lt;br /&gt;
| 0000E702&lt;br /&gt;
| CTR-N-HCC?&lt;br /&gt;
| Picture picker (PNOTE_AP)&lt;br /&gt;
|colspan=3| v0, v1024, [[8.1.0-0_New3DS|v2049]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v3075]], [[9.3.0-21|v4096]]&lt;br /&gt;
|-&lt;br /&gt;
| 0000C402&lt;br /&gt;
| 0000CC02&lt;br /&gt;
| 0000D402&lt;br /&gt;
| 0000DC02&lt;br /&gt;
| 0000E202&lt;br /&gt;
| 0000E802&lt;br /&gt;
| CTR-N-HMC?&lt;br /&gt;
| [[Nintendo 3DS Sound|Voice memo]] picker (SNOTE_AP)&lt;br /&gt;
|colspan=3| v0, v3, [[8.0.0-18|v1026]], [[9.0.0-20|v2048]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
|colspan=3| 0000C502&lt;br /&gt;
|colspan=3| 0000CF02&lt;br /&gt;
| CTR-N-HEEA&lt;br /&gt;
CTR-N-HEEK&lt;br /&gt;
| Non-critical (online, etc) error display (error)&lt;br /&gt;
|colspan=3| v0, v1026, v2053, v3074, [[8.1.0-0_New3DS|v4096]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v5128]], [[9.6.0-24|v6145]]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=3| 0000C503&lt;br /&gt;
|colspan=3| 0000CF03&lt;br /&gt;
| &lt;br /&gt;
| SAFE_MODE error applet&lt;br /&gt;
|colspan=3| v0&lt;br /&gt;
|-&lt;br /&gt;
| 2000C503&lt;br /&gt;
| 2000C503&lt;br /&gt;
| 2000C503&lt;br /&gt;
| ?&lt;br /&gt;
| 2000CF03&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| [[New 3DS]] SAFE_MODE error applet&lt;br /&gt;
|colspan=3| [[8.1.0-0_New3DS|v1024]]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=3| 0000CD02&lt;br /&gt;
|colspan=3| 0000D502&lt;br /&gt;
| CTR-N-HADA&lt;br /&gt;
CTR-N-HADK&lt;br /&gt;
| [[Circle Pad Pro]] test/calibration applet (extrapad)&lt;br /&gt;
|colspan=3| v1, v1026, [[8.1.0-0_New3DS|v2048]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v3073]], [[11.4.0-37|v4097]](New2DSXL)&lt;br /&gt;
|-&lt;br /&gt;
| 0000C602&lt;br /&gt;
| 0000CE02&lt;br /&gt;
| 0000D602&lt;br /&gt;
| N/A&lt;br /&gt;
| 0000E302&lt;br /&gt;
| 0000E902&lt;br /&gt;
| CTR-N-HAA?&lt;br /&gt;
| eShop applet, used by applications for accessing the eShop, for DLC/etc. Also used by the eShop application itself. (mint)&lt;br /&gt;
|colspan=3| v5, v1028, [[4.2.0-9|v2050]], [[5.0.0-11|v3072]], [[7.0.0-13|v4109]], [[7.2.0-17|v5125]](v5123 for JPN), [[8.0.0-18|v6145]], [[8.1.0-0_New3DS|v7168]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v8200]], [[9.3.0-21|v9224]], [[9.6.0-24|v10247]], [[9.8.0-25|v11264]], [[10.0.0-27|v12293]], [[10.1.0-27|v13312]], [[10.3.0-28|v14337]], [[10.4.0-29|v15360]], [[10.7.0-32|v16384]], [[11.2.0-35|v17408]](EUR), [[11.3.0-36|v18432]]&lt;br /&gt;
|-&lt;br /&gt;
| 0000BC02&lt;br /&gt;
| 0000BD02&lt;br /&gt;
| 0000BE02&lt;br /&gt;
| ?&lt;br /&gt;
| N/A&lt;br /&gt;
| ?&lt;br /&gt;
| CTR-N-HAE?&lt;br /&gt;
| Miiverse (olv)&lt;br /&gt;
|colspan=3| [[7.0.0-13|v14]], [[7.2.0-17|v1024]], [[9.0.0-20|v2048]](Also for [[8.1.0-0_New3DS]]), [[9.3.0-21|v3072]], [[9.6.0-24|v4096]]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=3| 0000F602&lt;br /&gt;
| ?&lt;br /&gt;
| N/A&lt;br /&gt;
| ?&lt;br /&gt;
| CTR-N-HAGA&lt;br /&gt;
| Likely the &amp;quot;system library&amp;quot; for Miiverse (memolib)&lt;br /&gt;
|colspan=3| [[7.0.0-13|v5]], [[8.1.0-0_New3DS|v1024]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v2050]], [[9.3.0-21|v3072]]&lt;br /&gt;
|-&lt;br /&gt;
| 00008302&lt;br /&gt;
| 00008B02&lt;br /&gt;
| 0000BA02&lt;br /&gt;
| ?&lt;br /&gt;
| N/A&lt;br /&gt;
| ?&lt;br /&gt;
| CTR-N-HAH?&lt;br /&gt;
| In-app Miiverse-posting applet (solv3)&lt;br /&gt;
|colspan=3| [[9.0.0-20|v6]]&lt;br /&gt;
|-&lt;br /&gt;
| 00009502&lt;br /&gt;
| 00009E02&lt;br /&gt;
| 0000B902&lt;br /&gt;
| ?&lt;br /&gt;
| 00008C02&lt;br /&gt;
| 0000BF02&lt;br /&gt;
| CTR-N-HA3?&lt;br /&gt;
| Cabinet ([[amiibo Settings]])&lt;br /&gt;
|colspan=3| [[9.3.0-21|v7]], (v1024 for TWN), [[9.6.0-24|v1031]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0004009B - [[NCCH#CFA|Shared Data Archives]] ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  JPN TitleIDLow&lt;br /&gt;
!  USA TitleIDLow&lt;br /&gt;
!  EUR TitleIDLow&lt;br /&gt;
!  CHN TitleIDLow&lt;br /&gt;
!  KOR TitleIDLow&lt;br /&gt;
!  TWN TitleIDLow&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00010202&lt;br /&gt;
| 00010202&lt;br /&gt;
| 00010202&lt;br /&gt;
| 00010202&lt;br /&gt;
| 00010202&lt;br /&gt;
| 00010202&lt;br /&gt;
| Probably Mii-related, contains &amp;quot;CFL_Res.dat&amp;quot; in the RomFS.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 00010402&lt;br /&gt;
| 00010402&lt;br /&gt;
| 00010402&lt;br /&gt;
| 00010402&lt;br /&gt;
| 00010402&lt;br /&gt;
| 00010402&lt;br /&gt;
| Region Manifest. Mounted as &amp;quot;area:&amp;quot;&lt;br /&gt;
| v0, v1024, v2050, v3072, [[7.0.0-13|v4098]], [[9.6.0-24|v5122]]&lt;br /&gt;
|-&lt;br /&gt;
| 00010602&lt;br /&gt;
| 00010602&lt;br /&gt;
| 00010602&lt;br /&gt;
| 00010602&lt;br /&gt;
| 00010602&lt;br /&gt;
| 00010602&lt;br /&gt;
| Non-Nintendo TLS Root-CA Certificates (RomFS contains files with filename &amp;quot;CACERT_PUBLIC_CA_&amp;lt;val&amp;gt;.der&amp;quot;, where &amp;lt;val&amp;gt; is 5..8)&lt;br /&gt;
| v2, [[10.5.0-30|v1024]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 00011002&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|  &amp;quot;CHN/CN&amp;quot; Dictionary.&lt;br /&gt;
|  v1&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 00011102  &lt;br /&gt;
| &amp;quot;TWN/TN&amp;quot; dictionary.&lt;br /&gt;
| v1&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011202&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|  &lt;br /&gt;
| &amp;quot;NL/NL&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011302&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|  &lt;br /&gt;
| &amp;quot;EN/GB&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 00011402&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &amp;quot;EN/US&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011502&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &amp;quot;FR/FR/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 00011602&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|  &lt;br /&gt;
| &amp;quot;FR/CA/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011702&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &amp;quot;DE/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011802&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &amp;quot;IT/IT&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 00011902&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|  &lt;br /&gt;
| &amp;quot;JA_small/32&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 00011A02&lt;br /&gt;
|  &lt;br /&gt;
| &amp;quot;KO/KO&amp;quot; dictionary.&lt;br /&gt;
| v1&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011B02&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &amp;quot;PT/PT/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011C02&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &amp;quot;RU/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 00011D02&lt;br /&gt;
| 00011D02&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &amp;quot;ES/ES&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 00011E02&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &amp;quot;PT/BR/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 00012202&lt;br /&gt;
| 00012302&lt;br /&gt;
| 00012102&lt;br /&gt;
| 00012402&lt;br /&gt;
| 00012502&lt;br /&gt;
| 00012602&lt;br /&gt;
| ?contains a lists with error strings&lt;br /&gt;
| v1026, v2053, v3073, [[4.2.0-9|v4096]], [[5.0.0-11|v5120]], [[7.0.0-13|v6149]], [[7.2.0-17|v7168]], [[8.0.0-18|v8192]], [[9.0.0-20|v9218]], [[9.3.0-21|v10242]], [[9.6.0-24|v11269]], [[10.0.0-27|v12289]], [[10.4.0-29|v13312]], [[10.7.0-32|v13313]] (JPN: [[11.1.0-34|v14336]]) (KOR: [[9.6.0-24|v6148]], [[10.0.0-27|v7169]], [[10.3.0-28|v8193]], [[10.4.0-29|v9216]], [[11.1.0-34|v10240]])&lt;br /&gt;
|-&lt;br /&gt;
| 00013202&lt;br /&gt;
| 00013302&lt;br /&gt;
| 00013102&lt;br /&gt;
| 00013502&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Mounted as &amp;quot;eula:&amp;quot;&lt;br /&gt;
| v0, v1024, v2049 USA: v1024, v2051, [[7.0.0-13|v3074]], [[7.2.0-17|v4100]](EUR-only), [[9.0.0-20|v4099]], [[9.9.0-26|v6144]], [[10.4.0-29|v7168]] (KOR: [[9.7.0-25|v1025]])&lt;br /&gt;
|-&lt;br /&gt;
| 00014002&lt;br /&gt;
| 00014002&lt;br /&gt;
| 00014002&lt;br /&gt;
| 00014002&lt;br /&gt;
| 00014002&lt;br /&gt;
| 00014002&lt;br /&gt;
| JPN/EUR/USA [[System Font]] (&amp;quot;font:&amp;quot;)&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 00014102&lt;br /&gt;
| 00014102&lt;br /&gt;
| 00014102&lt;br /&gt;
| 00014102&lt;br /&gt;
| 00014102&lt;br /&gt;
| 00014102&lt;br /&gt;
| CHN [[System Font]] (&amp;quot;font:&amp;quot;)&lt;br /&gt;
| v0, v1024&lt;br /&gt;
|-&lt;br /&gt;
| 00014202&lt;br /&gt;
| 00014202&lt;br /&gt;
| 00014202&lt;br /&gt;
| 00014202&lt;br /&gt;
| 00014202&lt;br /&gt;
| 00014202&lt;br /&gt;
| KOR [[System Font]] (&amp;quot;font:&amp;quot;)&lt;br /&gt;
| v0, v1024&lt;br /&gt;
|-&lt;br /&gt;
| 00014302&lt;br /&gt;
| 00014302&lt;br /&gt;
| 00014302&lt;br /&gt;
| 00014302&lt;br /&gt;
| 00014302&lt;br /&gt;
| 00014302&lt;br /&gt;
| TWN [[System Font]] (&amp;quot;font:&amp;quot;)&lt;br /&gt;
| v0, v1024&lt;br /&gt;
|-&lt;br /&gt;
| 00015202&lt;br /&gt;
| 00015302&lt;br /&gt;
| 00015102&lt;br /&gt;
| N/A&lt;br /&gt;
| 00015502&lt;br /&gt;
| 0015602&lt;br /&gt;
| Mounted as &amp;quot;rate:&amp;quot;&lt;br /&gt;
| v0 (EUR: v0, v1024) (KOR: v1024)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 000400DB - [[NCCH#CFA|System Data Archives]] ===&lt;br /&gt;
==== System Data Archive Notes ====&lt;br /&gt;
These [[NVer]] titleIDs can be found @ offset 0x320 in every [[CCI]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  EUR TitleIDLow&lt;br /&gt;
!  JPN TitleIDLow&lt;br /&gt;
!  USA TitleIDLow&lt;br /&gt;
!  CHN TitleIDLow&lt;br /&gt;
!  KOR TitleIDLow&lt;br /&gt;
!  TWN TitleIDLow&lt;br /&gt;
!  Description&lt;br /&gt;
!  USA/EUR/JPN Versions&lt;br /&gt;
!  CHN Versions&lt;br /&gt;
!  TWN Versions&lt;br /&gt;
!  KOR Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| NGWord bad word list&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1024]], [[3.0.0-5|v2052]], [[4.0.0-7|v3072]], [[4.3.0-10|v4096]], [[5.0.0-11|v5120]], [[9.0.0-20|v6144]], [[9.3.0-21|v7168]], [[9.6.0-24|v8192]], [[11.1.0-34|v9217]]&lt;br /&gt;
| Same as USA&lt;br /&gt;
| Same as USA&lt;br /&gt;
| Same as USA&lt;br /&gt;
|-&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| [[Nintendo Zone]] hotspot list&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1024]], [[3.0.0-5|v2048]], [[4.0.0-7|v3073]], [[4.3.0-10|v4096]], [[4.4.0-10|v5120]], [[4.5.0-10|v6144]], [[5.0.0-11|v7169]], [[6.0.0-11|v8192]], [[6.2.0-12|v9216]], [[7.0.0-13|v10242]], [[7.2.0-17|v11267]], [[8.0.0-18|v12288]], [[9.0.0-20|v14336]], [[9.3.0-21|v15360]], [[9.6.0-24|v16386]], [[10.0.0-27|v17409]], [[10.4.0-29|v18432]], [[11.1.0-34|v19457]]&lt;br /&gt;
| Same as USA&lt;br /&gt;
| Same as USA&lt;br /&gt;
| Same as USA&lt;br /&gt;
|-&lt;br /&gt;
| 00016102&lt;br /&gt;
| 00016202&lt;br /&gt;
| 00016302&lt;br /&gt;
| 00016402&lt;br /&gt;
| 00016502&lt;br /&gt;
| 00016602&lt;br /&gt;
| [[NVer]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v16]], [[2.0.0-2|v32]], [[2.1.0-3|v48]], [[2.1.0-4|v64]], [[3.0.0-5|v80]], [[3.0.0-6|v96]], [[4.0.0-7|v112]],  [[4.1.0-8|v128]], [[4.2.0-9|v144]], [[4.3.0-10|v160]], [[5.0.0-11|v176]], non-USA=[[6.0.0-11|v192]]/USA=[[6.1.0-12U|v192]], [[7.0.0-13|v208]], [[7.1.0-14|v224]], [[7.1.0-15|v240]], [[7.1.0-16|v256]], [[7.2.0-17|v272]], [[8.0.0-18|v288]], [[8.1.0-19|v304]], [[9.0.0-20|v320]], [[9.3.0-21|v336]], [[9.5.0-22|v352]], [[9.5.0-23|v368]], [[9.6.0-24|v384]], [[9.7.0-25|v400]], [[9.9.0-26|v416]], [[10.0.0-27|v432]], [[10.2.0-28|v448]], [[10.4.0-29|v464]], [[10.5.0-30|v480]], [[10.6.0-31|v496]], [[10.7.0-32|v512]], [[11.0.0-33|v528]], [[11.1.0-34|v544]], [[11.2.0-35|v560]], [[11.3.0-36|v576]]&lt;br /&gt;
| [[4.0.0-7|v113]], [[4.2.0-9|v128]], [[5.0.0-11|v129]], [[7.1.0-16|v130]], [[7.2.0-17|v272]], [[9.5.0-23|v131]], [[9.9.0-26|v132]]&lt;br /&gt;
| [[4.1.0-8|v114]], [[4.2.0-9|v133]], [[4.3.0-10|v134]], [[5.0.0-11|v136]], [[7.0.0-13|v144]], [[7.1.0-14|v160]] [[7.1.0-16|v192]], [[7.2.0-17|v272]], [[8.0.0-18|v208]], [[8.1.0-19|v224]], [[9.0.0-20|v240]], [[9.5.0-22|v272]], [[9.5.0-23|v288]], [[9.6.0-24|v304]], [[9.7.0-25|v320]], [[9.9.0-26|v336]], [[10.0.0-27|v352]], [[10.2.0-28|v368]], [[10.4.0-29|v384]], [[10.5.0-30|v400]], [[10.6.0-31|v416]], [[10.7.0-32|v432]], [[11.0.0-33|v448]], [[11.1.0-34|v464]], [[11.2.0-35|v480]], [[11.3.0-36|v496]]&lt;br /&gt;
| [[4.0.0-7|v113]], [[4.1.0-8|v114]], [[4.2.0-9|v133]], [[4.3.0-10|v134]], [[5.0.0-11|v136]], [[7.0.0-13|v160]], [[7.1.0-14|v176]], [[7.1.0-16|v176]], [[7.2.0-17|v272]], [[8.0.0-18|v224]], [[8.1.0-19|v240]], [[9.0.0-20|v256]], [[9.3.0-21|v272]], [[9.5.0-22|v288]], [[9.5.0-23|v304]], [[9.6.0-24|v320]], [[9.7.0-25|v336]], [[9.9.0-26|v352]], [[10.0.0-27|v368]], [[10.2.0-28|v384]], [[10.4.0-29|v400]], [[10.5.0-30|v416]], [[10.6.0-31|v432]], [[10.7.0-32|v448]], [[11.0.0-33|v464]], [[11.1.0-34|v480]], [[11.2.0-35|v496]], [[11.3.0-36|v512]]&lt;br /&gt;
|-&lt;br /&gt;
| 20016102&lt;br /&gt;
| 20016202&lt;br /&gt;
| 20016302&lt;br /&gt;
| N/A&lt;br /&gt;
| 20016502&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]] [[NVer]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.0.0-20|v320]], [[9.3.0-21|v336]], [[9.5.0-22|v352]], [[9.5.0-22|v352]], [[9.5.0-23|v368]], [[9.6.0-24|v384]], [[9.7.0-25|v400]], [[9.9.0-26|v416]], [[10.0.0-27|v432]], [[10.2.0-28|v448]], [[10.4.0-29|v464]], [[10.5.0-30|v480]], [[10.6.0-31|v496]], [[10.7.0-32|v512]], [[11.0.0-33|v528]], [[11.1.0-34|v544]], [[11.2.0-35|v560]], [[11.3.0-36|v576]]&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v320]], [[9.7.0-25|v336]], [[9.9.0-26|v352]], [[10.0.0-27|v368]], [[10.2.0-28|v384]], [[10.4.0-29|v400]], [[10.5.0-30|v416]], [[10.6.0-31|v432]], [[10.7.0-32|v448]], [[11.0.0-33|v464]], [[11.2.0-35|v496]], [[11.3.0-36|v512]]&lt;br /&gt;
|-&lt;br /&gt;
| 00017102&lt;br /&gt;
| 00017202&lt;br /&gt;
| 00017302&lt;br /&gt;
| 00017402&lt;br /&gt;
| 00017502&lt;br /&gt;
| 00017602&lt;br /&gt;
| [[CVer]]&lt;br /&gt;
| [[1.0.0-0|v1024]], [[1.1.0-1|v1045]], [[2.0.0-2|v2049]], [[2.1.0-3|v2069]], [[2.2.0-X|v2088]] [[3.0.0-5|v3088]], [[4.0.0-7|v4098]], [[4.1.0-8|v4113]], [[4.2.0-9|v4130]], [[4.3.0-10|v4145]], [[4.4.0-10|v4163]], [[4.5.0-10|v4176]], [[5.0.0-11|v5120]], [[5.1.0-11|v5136]], [[6.0.0-11|v6146]], [[6.1.0-11|v6160]], [[6.2.0-12|v6178]], [[6.3.0-12|v6192]], [[7.0.0-13|v7175]], [[7.1.0-14|v7187]], [[7.2.0-17|v7203]], [[8.0.0-18|v8196]], [[8.1.0-18|v8208]], [[8.1.0-0_New3DS|v8215]](8.1.0-0_New3DS), [[9.0.0-20|v9218]], [[9.1.0-20J|v9232]](JPN-only), [[9.2.0-20|v9248]], [[9.3.0-21|v9264]], [[9.4.0-21|v9280]], [[9.5.0-22|v9296]], [[9.6.0-24|v9319]], [[9.7.0-25|v9328]], [[9.8.0-25|v9344]], [[9.9.0-26|v9360]], [[10.0.0-27|v10240]], [[10.1.0-27|v10256]], [[10.2.0-28|v10272]], [[10.3.0-28|v10288]], [[10.4.0-29|v10304]], [[10.5.0-30|v10320]], [[10.6.0-31|v10336]], [[10.7.0-32|v10352]], [[11.0.0-33|v11264]], [[11.1.0-34|v11280]], [[11.2.0-35|v11296]], [[11.3.0-36|v11312]]&lt;br /&gt;
| [[1.0.0-0|v1024]], [[1.1.0-1|v1045]], [[2.0.0-2|v2049]], [[2.1.0-3|v2069]], [[2.2.0-X|v2088]] [[3.0.0-5|v3088]], [[4.0.0-7|v4098]], [[4.1.0-8|v4113]], [[4.2.0-9|v4130]], [[4.3.0-10|v4145]], [[4.4.0-10|v4163]], [[4.5.0-10|v4176]], [[5.0.0-11|v5120]], [[5.1.0-11|v5136]], [[6.0.0-11|v6146]], [[6.1.0-11|v6160]], [[6.2.0-12|v6178]], [[6.3.0-12|v6192]], [[7.0.0-13|v7175]], [[7.1.0-14|v7187]], [[7.2.0-17|v7203]], [[8.0.0-18|v8196]], [[8.1.0-18|v8208]], [[9.0.0-20|v9217]], [[9.3.0-21|v9264]], [[9.5.0-22|v9296]], [[9.6.0-24|v9319]], [[9.7.0-25|v9328]], [[9.8.0-25|v9344]], [[9.9.0-26|v9360]], [[10.0.0-27|v10240]], [[10.2.0-28|v10272]], [[10.4.0-29|v10304]], [[10.5.0-30|v10320]], [[10.6.0-31|v10336]], [[10.7.0-32|v10352]], [[11.2.0-35|v11296]], [[11.3.0-36|v11312]]&lt;br /&gt;
| Same as CHN&lt;br /&gt;
| Same as CHN + [[11.1.0-34|v11280]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00040130 - System [[Services API|Modules]] ===&lt;br /&gt;
==== System Module Notes ====&lt;br /&gt;
Once Home Menu finishes loading, all of the below system modules are running, except for MP, RO, and act which are automatically [[Process_Manager_Services|loaded]] when a process requires them. &lt;br /&gt;
When [[Process_Manager_Services|PM]]-module terminates processes, it will check whether the processes listed as dependencies for this process are listed as dependencies for other processes. &lt;br /&gt;
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.&lt;br /&gt;
All of the below system modules use the &amp;quot;BASE&amp;quot; [[SVC|memory-region]](specified in the exheader), except when listed otherwise for certain modules.&lt;br /&gt;
When handling the exheader dependency list starting with [[8.0.0-18]], Old3DS FIRM [[Process_Manager_Services|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). &lt;br /&gt;
The exheader dependency list handling change is for the [[New 3DS]] system-module(s), which do not exist on Old3DS. &lt;br /&gt;
When the New3DS pm-module is launching any title except [[NS]], it first attempts to launch the title with programID-low bitmask 0x20000000 set, then with that bitmask clear if launching fails.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00001002&lt;br /&gt;
| [[Services|sm]] (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001003&lt;br /&gt;
| SAFE_MODE [[Services|sm]] (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001102&lt;br /&gt;
| [[Filesystem services‎|fs]] (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001103&lt;br /&gt;
| SAFE_MODE [[Filesystem services‎|fs]] (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001202&lt;br /&gt;
| [[Process Manager Services|pm]] (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001203&lt;br /&gt;
| SAFE_MODE [[Process Manager Services|pm]] (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001302&lt;br /&gt;
| [[Loader Services‎|loader]]  (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001303&lt;br /&gt;
| SAFE_MODE [[Loader Services‎|loader]]  (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001402&lt;br /&gt;
| [[PXI Services‎|pxi]]  (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001403&lt;br /&gt;
| SAFE_MODE [[PXI Services‎|pxi]]  (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001502&lt;br /&gt;
| [[Application Manager Services|AM]] ( Application Manager )&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[3.0.0-5|v2053]], [[4.0.0-7|v3072]], [[5.0.0-11|v4098]], [[6.0.0-11|v5120]], [[8.0.0-18|v6148]], [[8.1.0-0_New3DS|v7168]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v8192]], [[10.0.0-27|v9217]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001503&lt;br /&gt;
| SAFE_MODE [[Application Manager Services|AM]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001503&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Application Manager Services|AM]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001602&lt;br /&gt;
| [[Camera Services|Camera]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[3.0.0-5|v2048]], [[4.0.0-7|v3074]], [[5.0.0-11|v4098]], [[6.0.0-11|v5120]], [[7.1.0-14|v6146]], [[8.0.0-18|v7172]], [[9.0.0-20|v9216]], [[9.3.0-21|v10242]], [[10.0.0-27|v11265]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001602&lt;br /&gt;
| [[New_3DS]] [[Camera Services|Camera]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8200]], [[9.0.0-20|v9218]], [[9.3.0-21|v10242]], [[10.0.0-27|v11265]], [[11.4.0-37|v12288]](New2DSXL)&lt;br /&gt;
|-&lt;br /&gt;
| 00001702&lt;br /&gt;
| [[Config Services|Config]] (cfg)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1024]], [[3.0.0-5|v2049]], v3072, [[4.0.0-7|v4096]], [[5.0.0-11|v5122]], [[6.0.0-11|v6145]], [[6.1.0-11|v7168]], [[7.0.0-13|v8196]], [[7.2.0-17|v9220]], [[8.0.0-18|v10243]], [[8.1.0-0_New3DS|v11265]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v12290]], [[9.3.0-21|v13315]], [[9.6.0-24|v14342]], [[11.4.0-37|v15360]](New2DSXL)&lt;br /&gt;
|-&lt;br /&gt;
| 00001703&lt;br /&gt;
| SAFE_MODE [[Config Services|Config]] (cfg)&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001703&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Config Services|Config]] (cfg)&lt;br /&gt;
| [[8.1.0-0_New3DS|v11265]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001802&lt;br /&gt;
| [[Codec Services|Codec]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[5.0.0-11|v4098]], [[7.0.0-13|v5120]], [[8.0.0-18|v6144]], [[9.0.0-20|v7168]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
| 00001803&lt;br /&gt;
| SAFE_MODE [[Codec Services|Codec]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001803&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Codec Services|Codec]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001A02&lt;br /&gt;
| [[DSP Services|DSP]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[4.0.0-7|v2048]], [[5.0.0-11|v3074]], [[6.0.0-11|v4096]], [[8.0.0-18|v5120]], [[9.7.0-25|v6145]], [[11.1.0-34|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001A03&lt;br /&gt;
| SAFE_MODE [[DSP Services|DSP]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001A03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[DSP Services|DSP]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v6145]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001B02&lt;br /&gt;
| [[GPIO Services|GPIO]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[5.0.0-11|v1025]], [[8.0.0-18|v2048]], [[9.5.0-22|v3073]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001B03&lt;br /&gt;
| SAFE_MODE [[GPIO Services|GPIO]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001B03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[GPIO Services|GPIO]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v3073]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001C02&lt;br /&gt;
| [[GSP Services|GSP]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1040]], [[2.0.0-2|v2049]], [[3.0.0-5|v3075]], v4098, [[4.0.0-7|v5120]], [[5.0.0-11|v6145]], [[6.0.0-11|v7168]], [[8.0.0-18|v8196]], [[9.0.0-20|v10240]], [[9.3.0-21|v11264]], [[9.6.0-24|v12294]], [[11.3.0-36|v13312]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001C02&lt;br /&gt;
| [[New_3DS]] [[GSP Services|GSP]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v10243]], [[9.3.0-21|v11267]], [[9.6.0-24|v12294]], [[11.3.0-36|v13312]], [[11.4.0-37|v14336]](New2DSXL)&lt;br /&gt;
|-&lt;br /&gt;
| 00001C03&lt;br /&gt;
| SAFE_MODE [[GSP Services|GSP]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001C03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[GSP Services|GSP]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v9217]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001D02&lt;br /&gt;
| [[HID Services|HID]] (Human Interface Devices) &lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5121]], [[7.2.0-17|v6148]], [[8.0.0-18|v7168]], [[8.1.0-0_New3DS|v8192]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v9216]], [[9.3.0-21|v10240]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001D03&lt;br /&gt;
| SAFE_MODE [[HID Services|HID]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001D03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[HID Services|HID]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8193]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001E02&lt;br /&gt;
| [[I2C Services|i2c]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[5.0.0-11|v2049]], [[8.0.0-18|v3076]], [[9.3.0-21|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001E02&lt;br /&gt;
| [[New_3DS]] [[I2C Services|i2c]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4096]], [[9.3.0-21|v5121]]&lt;br /&gt;
|- &lt;br /&gt;
| 00001E03&lt;br /&gt;
| SAFE_MODE [[I2C Services|i2c]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|- &lt;br /&gt;
| 20001E03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[I2C Services|i2c]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4097]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001F02&lt;br /&gt;
| [[MCU Services|MCU]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.1.0-3|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4102]], [[5.0.0-11|v5122]], [[6.0.0-11|v6145]], [[7.0.0-13|v7168]], [[8.0.0-18|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001F02&lt;br /&gt;
| [[New_3DS]] [[MCU Services|MCU]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8192]], [[11.4.0-37|v9216]](New2DSXL)&lt;br /&gt;
|-&lt;br /&gt;
| 00001F03&lt;br /&gt;
| SAFE_MODE [[MCU Services|MCU]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001F03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[MCU Services|MCU]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v9217]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002002&lt;br /&gt;
| [[MIC Services|MIC]] (Microphone)&lt;br /&gt;
| [[1.0.0-0|v0]], [[5.0.0-11|v1025]], [[8.0.0-18|v2048]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002102&lt;br /&gt;
| [[PDN Services|PDN]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[5.0.0-11|v1025]], [[8.0.0-18|v2048]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002103&lt;br /&gt;
| SAFE_MODE [[PDN Services|PDN]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002103&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[PDN Services|PDN]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v3073]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002202&lt;br /&gt;
| [[PTM Services|PTM]] (Play time, pedometer, and battery manager)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3075]], v4096, [[4.0.0-7|v5120]], [[5.0.0-11|v6146]], [[6.0.0-11|v7168]], [[7.0.0-13|v8192]], [[8.0.0-18|v9219]], [[9.6.0-24|v11264]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002202&lt;br /&gt;
| [[New_3DS]] [[PTM Services|PTM]] (Play time, pedometer, and battery manager)&lt;br /&gt;
| [[8.1.0-0_New3DS|v10240]], [[9.6.0-24|v11264]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002203&lt;br /&gt;
| SAFE_MODE [[PTM Services|PTM]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002203&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[PTM Services|PTM]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v10241]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002302&lt;br /&gt;
| [[SPI Services|spi]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[5.0.0-11|v2049]], [[8.0.0-18|v3072]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002302&lt;br /&gt;
| [[New_3DS]] [[SPI Services|spi]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4096]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002303&lt;br /&gt;
| SAFE_MODE [[SPI Services|spi]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002303&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[SPI Services|spi]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4097]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002402&lt;br /&gt;
| [[AC Services|AC]] (Network manager)&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1024]], [[2.0.0-2|v2052]], [[2.1.0-3|v3072]], [[3.0.0-5|v4101]], [[5.0.0-11|v5122]], [[7.0.0-13|v6145]], [[8.0.0-18|v7172]], [[9.0.0-20|v8192]](Also for [[8.1.0-0_New3DS]]), [[9.3.0-21|v9216]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002403&lt;br /&gt;
| SAFE_MODE [[AC Services|AC]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002403&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[AC Services|AC]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8193]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002602&lt;br /&gt;
| [[CECD Services|Cecd]] (StreetPass)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3073]], [[4.0.0-7|v4097]], [[5.0.0-11|v5122]], [[6.0.0-11|v6144]], [[6.2.0-12|v7170]], [[7.0.0-13|v8193]], [[8.0.0-18|v9216]], [[9.0.0-20|v10240]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002702&lt;br /&gt;
| [[CSND Services|CSND]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[4.0.0-7|v2048]], [[5.0.0-11|v3073]], [[8.0.0-18|v4096]], [[9.0.0-20|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002703&lt;br /&gt;
| SAFE_MODE [[CSND Services|CSND]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002703&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[CSND Services|CSND]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v5121]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002802&lt;br /&gt;
| [[DLP Services|DLP]] ([[Download Play]])&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3078]], [[5.0.0-11|v4099]], [[8.0.0-18|v5123]], [[9.0.0-20|v6145]](Also for [[8.1.0-0_New3DS]]), [[9.6.0-24|v7174]], [[10.0.0-27|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002902&lt;br /&gt;
| [[HTTP Services|HTTP]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.1.0-3|v2049]], [[2.2.0-X|v3072]], [[3.0.0-5|v4099]], [[4.0.0-7|v5122]], [[5.0.0-11|v6145]], [[7.0.0-13|v7171]], [[7.1.0-14|v8192]], [[8.0.0-18|v9220]], [[8.1.0-18|v10245]], [[8.1.0-0_New3DS|v11264]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v12288]], [[9.6.0-24|v13318]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002903&lt;br /&gt;
| SAFE_MODE [[HTTP Services|HTTP]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002903&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[HTTP Services|HTTP]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v10241]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002A02&lt;br /&gt;
| [[MP Services|MP]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[5.0.0-11|v1025]], [[8.0.0-18|v2048]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002A03&lt;br /&gt;
| SAFE_MODE [[MP Services|MP]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002B02&lt;br /&gt;
| [[NDM Services|NDM]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[3.0.0-5|v2049]], [[4.0.0-7|v3072]], [[5.0.0-11|v4098]], [[8.0.0-18|v5124]], [[8.1.0-0_New3DS|v6144]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002C02&lt;br /&gt;
| [[NIM Services|NIM]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1028]], [[3.0.0-5|v2055]], [[4.0.0-7|v3074]], [[5.0.0-11|v4100]], [[6.0.0-11|v5120]], [[7.0.0-13|v6148]], [[7.2.0-17|v7174]], [[8.0.0-18|v8195]], [[8.1.0-0_New3DS|v9217]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v10249]], [[9.3.0-21|v11267]], [[9.6.0-24|v12296]], [[10.0.0-27|v13313]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002C03&lt;br /&gt;
| SAFE_MODE [[NIM Services|NIM]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002C03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[NIM Services|NIM]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v9217]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002D02&lt;br /&gt;
| [[NWM Services|NWM]] ( Low-level wifi manager )&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1024]], [[2.0.0-2|v2052]], [[2.2.0-X|v3072]], [[3.0.0-5|v4101]], [[4.0.0-7|v5120]], [[5.0.0-11|v6148]], [[6.0.0-11|v7169]], [[7.2.0-17|v8196]], [[8.0.0-18|v9216]], [[9.0.0-20|v10240]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002D03&lt;br /&gt;
| SAFE_MODE [[NWM Services|NWM]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[6.0.0-11|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002D03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[NWM Services|NWM]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v10241]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002E02&lt;br /&gt;
| [[Socket Services|Sockets]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1024]], [[2.0.0-2|v2053]], [[3.0.0-5|v3075]], [[4.0.0-7|v4096]], [[5.0.0-11|v5121]], [[8.0.0-18|v6144]], [[9.0.0-20|v7168]], [[10.6.0-31|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002E03&lt;br /&gt;
| SAFE_MODE [[Socket Services|Sockets]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002E03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Socket Services|Sockets]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002F02&lt;br /&gt;
| [[SSL Services|SSL]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1024]], [[2.1.0-3|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5122]], [[8.0.0-18|v6144]], [[9.0.0-20|v7168]], [[9.6.0-24|v8198]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002F03&lt;br /&gt;
| SAFE_MODE [[SSL Services|SSL]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002F03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[SSL Services|SSL]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003000&lt;br /&gt;
| [[FIRM|Process9]] (in SAFE_MODE and normal NATIVE_FIRM)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00003102&lt;br /&gt;
| [[Process Services‎|PS]] ( Process Manager )&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[5.0.0-11|v2049]], [[6.0.0-11|v3072]], [[8.0.0-18|v4096]], [[9.0.0-20|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003103&lt;br /&gt;
| SAFE_MODE [[Process Services‎|PS]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20003103&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Process Services‎|PS]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v5121]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003202&lt;br /&gt;
| [[Friend Services‎|friends]] (Friends list)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1028]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5122]], [[7.0.0-13|v6145]], [[8.0.0-18|v7172]], [[9.0.0-20|v8192]](Also for [[8.1.0-0_New3DS]]), [[10.5.0-30|v9216]], [[10.7.0-32|v10240]], [[11.0.0-33|v11264]], [[11.1.0-34|v12288]], [[11.2.0-35|v13312]], [[11.3.0-36|v14336]], [[11.4.0-37|v15360]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003203&lt;br /&gt;
| SAFE_MODE [[Friend Services‎|friends]] (Friends list)&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20003203&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Friend Services‎|friends]] (Friends list)&lt;br /&gt;
| [[8.1.0-0_New3DS|v8193]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003302&lt;br /&gt;
| [[IR Services‎|IR]] (Infrared)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5121]], [[8.0.0-18|v6148]], [[8.1.0-0_New3DS|v7170]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v8192]], [[9.3.0-21|v9216]], [[9.6.0-24|v10246]], [[10.0.0-27|v11265]], [[10.6.0-31|v12289]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003303&lt;br /&gt;
| SAFE_MODE [[IR Services‎|IR]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20003303&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[IR Services‎|IR]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|- &lt;br /&gt;
| 00003402&lt;br /&gt;
| [[BOSS Services‎|BOSS]] (SpotPass)&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1024]], [[2.0.0-2|v2053]], [[2.2.0-X|v3073]], [[3.0.0-5|v4101]], [[4.0.0-7|v5122]], [[5.0.0-11|v6146]], [[6.0.0-11|v7169]], [[6.2.0-12|v8193]], [[7.0.0-13|v9222]], [[8.0.0-18|v10240]], [[9.0.0-20|v11266]], [[10.0.0-27|v12289]], [[10.4.0-29|v13314]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003502&lt;br /&gt;
| [[News Services‎|News]] (Notifications)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1028]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[5.0.0-11|v4097]], [[8.0.0-18|v5120]], [[9.0.0-20|v6147]], [[9.7.0-25|v7168]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003702&lt;br /&gt;
| [[RO_Services|RO]]&lt;br /&gt;
| [[2.0.0-2|v0]], [[4.0.0-7|v1024]], [[5.0.0-11|v2049]], [[7.2.0-17|v3074]], [[8.0.0-18|v4096]], [[9.0.0-20|v5120]](Also for [[8.1.0-0_New3DS]]), [[9.3.0-21|v6148]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003802&lt;br /&gt;
| [[ACT Services‎|act]] (handles Nintendo Network &#039;&#039;&#039;a&#039;&#039;&#039;c&#039;&#039;&#039;c&#039;&#039;&#039;oun&#039;&#039;&#039;t&#039;&#039;&#039;s)&lt;br /&gt;
| [[7.0.0-13|v1029]], [[7.1.0-14|v2050]], [[7.2.0-17|v3077]], [[8.0.0-18|v4099]], [[8.1.0-0_New3DS|v5120]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v6144]], [[9.3.0-21|v7168]], [[9.6.0-24|v8198]], [[11.4.0-37|v9216]](New2DSXL)&lt;br /&gt;
|-&lt;br /&gt;
| 00004002&lt;br /&gt;
| Old3DS [[NFC_Services|nfc]]&lt;br /&gt;
| [[9.3.0-21|v2053]], [[9.6.0-24|v4106]], [[9.7.0-25|v5121]], [[10.0.0-27|v6145]], [[10.6.0-31|v7168]], [[10.7.0-32|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 20004002&lt;br /&gt;
| [[New_3DS]] [[NFC_Services|nfc]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.0.0-20|v1024]], [[9.3.0-21|v2053]], [[9.5.0-22|v3073]], [[9.6.0-24|v4102]], [[10.0.0-27|v6145]], [[10.6.0-31|v7168]]&lt;br /&gt;
|-&lt;br /&gt;
| 20004102&lt;br /&gt;
| [[New_3DS]] [[MVD Services|mvd]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.0.0-20|v1024]]&lt;br /&gt;
|-&lt;br /&gt;
| 20004202&lt;br /&gt;
| [[New_3DS]] [[QTM Services|qtm]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8]], [[9.0.0-20|v1024]], [[9.3.0-21|v2052]], [[11.4.0-37|v3072]](New2DSXL)&lt;br /&gt;
|-&lt;br /&gt;
| 00008002&lt;br /&gt;
| [[NS]] (Memory-region: &amp;quot;SYSTEM&amp;quot;)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1028]], [[2.2.0-X|v2048]], [[3.0.0-5|v3077]], v4096, [[4.0.0-7|v5121]], [[5.0.0-11|v6148]], [[5.1.0-11|v7168]], [[6.0.0-11|v8193]], [[6.1.0-11|v9216]], [[7.0.0-13|v10248]], [[7.2.0-17|v11268]], [[8.0.0-18|v12291]], [[8.1.0-0_New3DS|v13312]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v14336]], [[9.3.0-21|v15360]], [[9.6.0-24|v16390]], [[9.8.0-25|v17408]], [[10.0.0-27|v18433]], [[10.4.0-29|v19458]], [[11.1.0-34|v20482]], [[11.3.0-36|v21504]]&lt;br /&gt;
|-&lt;br /&gt;
| 00008003&lt;br /&gt;
| SAFE_MODE [[NS]] (Memory-region: &amp;quot;SYSTEM&amp;quot;)&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20008003&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[NS]] (Memory-region: &amp;quot;SYSTEM&amp;quot;)&lt;br /&gt;
| [[8.1.0-0_New3DS|v13313]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00040138 - [[FIRM|System Firmware]] ===&lt;br /&gt;
==== System Firmare Notes ====&lt;br /&gt;
NATIVE_FIRM and SAFE_MODE_FIRM for the initial versions are exactly the same, besides [[Configuration_Memory|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_Settings#System_Updater|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/&amp;lt;TID&amp;gt;/data use a custom format, this is handled by AGB_FIRM.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Description&lt;br /&gt;
!  USA/EUR/JPN Versions&lt;br /&gt;
!  CHN Versions&lt;br /&gt;
!  KOR Versions&lt;br /&gt;
!  TWN Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00000001&lt;br /&gt;
| Unknown, very similar to SAFE_MODE_FIRM. Exists only on dev units and seems to only be used by SystemUpdaters.&lt;br /&gt;
| v0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00000002&lt;br /&gt;
| NATIVE_FIRM (Native Firmware)&lt;br /&gt;
| [[1.0.0-0|v432]], [[1.1.0-1|v1472]], [[2.0.0-2|v2516]], [[2.1.0-3|v3553]], [[2.2.0-X|v4595]], [[3.0.0-5|v5647]], [[4.0.0-7|v6677]], [[4.1.0-8|v7712]], [[5.0.0-11|v8758]], [[5.1.0-11|v9792]], [[6.0.0-11|v10833]], [[6.1.0-11|v11872]], [[7.0.0-13|v12916]], [[7.2.0-17|v13956]], v15043, [[8.0.0-18|v15047]], [[9.0.0-20|v17120]], [[9.3.0-21|v18182]], [[9.5.0-22|v19216]], [[9.6.0-24|v20262]], [[10.0.0-27|v21288]], [[10.2.0-28|v22313]], [[10.4.0-29|v23341]], [[11.0.0-33|v24368]], [[11.1.0-34|v25396]], [[11.2.0-35|v26432]], [[11.3.0-36|v27476]]&lt;br /&gt;
| Same as USA/EUR/JPN starting with the USA/EUR/JPN [[4.0.0-7]] title-version&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 20000002&lt;br /&gt;
| [[New_3DS]] NATIVE_FIRM (Native Firmware)&lt;br /&gt;
| [[8.1.0-0_New3DS|v16085]], [[9.0.0-20|v17120]], [[9.3.0-21|v18182]], [[9.5.0-22|v19218]], [[9.6.0-24|v20262]], [[10.0.0-27|v21288]], [[10.2.0-28|v22313]], [[10.4.0-29|v23341]], [[11.0.0-33|v24368]], [[11.1.0-34|v25396]], [[11.2.0-35|v26432]], [[11.3.0-36|v27476]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 00000003&lt;br /&gt;
| SAFE_MODE_FIRM &lt;br /&gt;
| [[1.0.0-0|v432]], [[3.0.0-5|v5632]]&lt;br /&gt;
| Same as USA/EUR/JPN starting with the USA/EUR/JPN [[3.0.0-5]] title-version&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 20000003&lt;br /&gt;
| [[New_3DS]] SAFE_MODE_FIRM &lt;br /&gt;
| [[8.1.0-0_New3DS|v16081]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 00000102 &lt;br /&gt;
| TWL_FIRM ( DSi Firmware )&lt;br /&gt;
| [[1.0.0-0|v432]], [[2.0.0-2|v1489]], [[3.0.0-5|v2565]], v3601, [[4.0.0-7|v4625]], [[4.4.0-10|v5681]], [[4.5.0-10|v6704]], [[6.0.0-11|v7762]], [[6.2.0-12|v8817]]&lt;br /&gt;
| Same as USA/EUR/JPN starting with the USA/EUR/JPN [[4.0.0-7]] title-version&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 20000102 &lt;br /&gt;
| [[New_3DS]] TWL_FIRM ( DSi Firmware )&lt;br /&gt;
| [[8.1.0-0_New3DS|v9936]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|- &lt;br /&gt;
| 00000202&lt;br /&gt;
| AGB_FIRM ( GBA Firmware )&lt;br /&gt;
| [[3.0.0-5|v519]], v1553, [[4.0.0-7|v2576]], [[6.0.0-11|v3665]]&lt;br /&gt;
| [[4.0.0-7|v2576]]&lt;br /&gt;
| [[4.0.0-7|v2576]], [[6.0.0-11|v3665]]&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|- &lt;br /&gt;
| 20000202&lt;br /&gt;
| [[New_3DS]] AGB_FIRM ( GBA Firmware )&lt;br /&gt;
| [[8.1.0-0_New3DS|v4816]]&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Application Titles ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Category Bit Mask&lt;br /&gt;
!  Content Category&lt;br /&gt;
!  Bit Mask(s)&lt;br /&gt;
|-&lt;br /&gt;
|  0x0000&lt;br /&gt;
|  [[Title list/eShop Titles|Application / eShop]]&lt;br /&gt;
|  Normal&lt;br /&gt;
|-&lt;br /&gt;
|  0x0001&lt;br /&gt;
|  Download Play Child&lt;br /&gt;
|  DlpChild&lt;br /&gt;
|-&lt;br /&gt;
|  0x0002&lt;br /&gt;
|  [[EShop Demos|Demo]]&lt;br /&gt;
|  Demo&lt;br /&gt;
|-&lt;br /&gt;
|  0x000E&lt;br /&gt;
|  [[Title list/Patches|Patch]]&lt;br /&gt;
|  CannotExecution&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;Patch&lt;br /&gt;
|-&lt;br /&gt;
|  0x008C&lt;br /&gt;
|  [[Title list/DLC|Downloadable Content]]&lt;br /&gt;
|  NotRequireRightForMount&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;AddOnContents&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00040001 - [[Download Play]] Titles ===&lt;br /&gt;
==== Download Play Notes ====&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Factory Titles ==&lt;br /&gt;
==== Factory Titles Notes ====&lt;br /&gt;
This section is for hard-coded titleIDs referenced in codebins on retail. This can include [[Factory_Setup|factory]]/[[Nintendo_Service_Center_Tools|repair]] titles as well.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 000400000F802A00&lt;br /&gt;
| Unknown. Appears to be a [[9.8.0-25|gamecard]] title. See also [[11.3.0-36|here]].&lt;br /&gt;
Used during [[Nintendo_Service_Center_Tools|repair]], first non-system title listed in [[PTM_Services|playlog]] from repair.&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 000400000F802100&lt;br /&gt;
| Used during [[Nintendo_Service_Center_Tools|repair]], second non-system title listed in [[PTM_Services|playlog]] from repair.&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 000400000F802200&lt;br /&gt;
| Used during [[Nintendo_Service_Center_Tools|repair]], third non-system title listed in [[PTM_Services|playlog]] from repair.&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 000400000FFFFD00&lt;br /&gt;
|  Used by retail NS for appID 0xF11, but this isn&#039;t available on retail CDN.&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 000400000FFFFC00&lt;br /&gt;
|  Used by retail NS for appID 0xF12, but this isn&#039;t available on retail CDN.&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 000400000FFFFB00&lt;br /&gt;
|  Used by retail NS for appID 0xF13, but this isn&#039;t available on retail CDN.&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 000400000FFFF900&lt;br /&gt;
|  Used by retail NS for appID 0xF14, but this isn&#039;t available on retail CDN.&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 000400000FFFF800&lt;br /&gt;
|  Used by retail NS for appID 0xF15, but this isn&#039;t available on retail CDN.&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 000400000FFFF700&lt;br /&gt;
|  Used by retail NS for appID 0xF16, but this isn&#039;t available on retail CDN.&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 000400000FFFF600&lt;br /&gt;
|  Used by retail NS for appID 0xF17, but this isn&#039;t available on retail CDN.&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 000400000FFFF500&lt;br /&gt;
|  Used by retail NS for appID 0xF18, but this isn&#039;t available on retail CDN.&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0004003000008900&lt;br /&gt;
|  Used by retail NS for appID 0xF10, but this isn&#039;t available on retail CDN.&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0004013000001902&lt;br /&gt;
| dmnt, debugger sysmodule. This use devunit-only HIO for devunit&amp;lt;&amp;gt;pc comms. This only exists for development units(launched by NS during startup depending on certain [[Configuration_Memory]] fields&#039; values). &lt;br /&gt;
This is installed at the [[Factory_Setup|factory]], then later deleted at the factory on retail units.&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0004013000003602&lt;br /&gt;
| &amp;quot;debugger&amp;quot;. This only exist for development units(launched by NS during startup depending on certain [[Configuration_Memory]] fields&#039; values).&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 000401300FEF0000&lt;br /&gt;
| Referenced in eShop Metadata (NS_UID 50010000000584), but does not exist on retail CDN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== TWL (DSi) Titles ==&lt;br /&gt;
==== TWL Title Notes ====&lt;br /&gt;
Bitmask 0x1 for TWL titles denotes a system title (determining whether the title will be updated during a System Update).&lt;br /&gt;
 &lt;br /&gt;
It appears to be sufficient, but not necessary, to make the title invisible on the [[Home Menu]].&lt;br /&gt;
&lt;br /&gt;
Bitmask 0x2 for TWL titles may indicate no-execute.&lt;br /&gt;
&lt;br /&gt;
Bitmask 0x4 for TWL titles indicates internal storage.&lt;br /&gt;
&lt;br /&gt;
Bitmask 0x10 for TWL titles is found on developer tools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Content Category&lt;br /&gt;
!  Bit Mask(s)&lt;br /&gt;
!  Category Bit Mask&lt;br /&gt;
|-&lt;br /&gt;
|  Application (DSiWare)&lt;br /&gt;
|  TWL&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;0x4&lt;br /&gt;
|  0x8004&lt;br /&gt;
|-&lt;br /&gt;
|  System Application&lt;br /&gt;
|  TWL&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;0x1&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;0x4&lt;br /&gt;
|  0x8005&lt;br /&gt;
|-&lt;br /&gt;
|  System Archive&lt;br /&gt;
|  TWL&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;0x1&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;0x2&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;0x4&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;0x8&lt;br /&gt;
|  0x800F&lt;br /&gt;
|-&lt;br /&gt;
|  Developer Tool&lt;br /&gt;
|  TWL&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;0x1&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;0x4&amp;lt;nowiki&amp;gt; | &amp;lt;/nowiki&amp;gt;0x10&lt;br /&gt;
|  0x8015&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 00048005 - System Applications===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Region&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
!  Information&lt;br /&gt;
|-&lt;br /&gt;
| 42383841(B88A)&lt;br /&gt;
| ALL&lt;br /&gt;
| [[DS Internet]]&lt;br /&gt;
| v0, [[2.1.0-4|v1025]], [[3.0.0-5|v2048]]&lt;br /&gt;
| [[DS Internet]] is the DS-mode application, (also integrated in every online-enabled DS game) and now accessible through [[System Settings]] for configuring network settings for DS software. &lt;br /&gt;
|-&lt;br /&gt;
| 484E4441(HNDA)&lt;br /&gt;
| ALL&lt;br /&gt;
| [[Download Play]]&lt;br /&gt;
| v1024&lt;br /&gt;
| This [[Download Play]] application is the DS-mode Download Play client, launched by the 3DS-mode Download Play application.&lt;br /&gt;
|-&lt;br /&gt;
| 484E4443(HNDC)&lt;br /&gt;
| CHN&lt;br /&gt;
| [[Download Play]]&lt;br /&gt;
| v1024&lt;br /&gt;
| See Above Description.&lt;br /&gt;
|-&lt;br /&gt;
| 484E444B(HNDK)&lt;br /&gt;
| KOR&lt;br /&gt;
| [[Download Play]]&lt;br /&gt;
| v1024&lt;br /&gt;
| See Above Description.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0004800F - System Data Archives===&lt;br /&gt;
==== System Data Archive Notes ====&lt;br /&gt;
New system updates only block DS flash-cards when whitelist is updated, or when TWL_FIRM is updated. &lt;br /&gt;
The whitelist contains the data used for detecting flash-cards, this is used by TWL_FIRM.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 484E4841(HNHA)&lt;br /&gt;
| [[Nintendo DS Cart Whitelist]] - &lt;br /&gt;
| v0, [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[4.2.0-9|v5120]], [[4.3.0-10|v6145]], [[4.4.0-10|v7168]], [[4.5.0-10|v8192]], [[5.0.0-11|v9216]], [[6.0.0-11|v10240]], [[7.0.0-13|v11264]]&lt;br /&gt;
|-&lt;br /&gt;
| 484E4C41(HNLA)&lt;br /&gt;
| [[Version Data]]&lt;br /&gt;
| v0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00048004 - DSiWare Ports ===&lt;br /&gt;
==== DSiWare Port Notes ====&lt;br /&gt;
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.&lt;br /&gt;
See [[3DS DSiWare Titles]] for a complete list.&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Internet_Browser&amp;diff=19849</id>
		<title>Internet Browser</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Internet_Browser&amp;diff=19849"/>
		<updated>2017-04-11T13:48:40Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* User-Agent and Browser Versions */ 11.4 browser info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The 3DS Internet Browser was added in the June 2011 Update for JPN/EUR/USA.&lt;br /&gt;
&lt;br /&gt;
From the Internet Browser help section:&lt;br /&gt;
In compliance with the LGPL, the source code of the OSS is available via the Nintendo website.&lt;br /&gt;
This source code can be downloaded here:&lt;br /&gt;
[http://mediacontent.nintendo-europe.com/NOE/images/service/OpenSources.zip] [http://www.nintendo.co.jp/support/oss/index.html]&lt;br /&gt;
&lt;br /&gt;
The 3DS Internet Browser is [http://en.wikipedia.org/wiki/Netfront Netfront] Browser NX v1.0 based on [http://en.wikipedia.org/wiki/WebKit WebKit] engine.&lt;br /&gt;
&lt;br /&gt;
On O3DS the exheader name of this title is &amp;quot;SPIDER&amp;quot;; on N3DS, &amp;quot;SKATER&amp;quot;.&lt;br /&gt;
The only difference between the ExeFS .code for each region of the Old3DS/New3DS browser, is byte values for the title uniqueID/region.&lt;br /&gt;
&lt;br /&gt;
A [[#v9.9_dummy_web-browser|&amp;quot;dummy&amp;quot; browser]] (which replaces the actual browser) is being included with cartdrige games shipping with system updates starting with [[9.9.0-26|9.9.0-X]]. &lt;br /&gt;
In addition, versions of the real browser since 9.9.0-26X attempt to [[#Forced_system-update|check-in with a Nintendo server]] to determine if the existing browser version is out of date.&lt;br /&gt;
&lt;br /&gt;
==[[New 3DS]] Internet Browser==&lt;br /&gt;
New3DS has a separate browser title, with the exheader name &amp;quot;SKATER&amp;quot;.&lt;br /&gt;
Unlike the Old3DS browser, the New3DS browser has videos+HTML5 support. &lt;br /&gt;
&lt;br /&gt;
This browser also has a filter enabled by default in the JPN version. &lt;br /&gt;
Disabling it requires paying money with a credit-card, for [[NIM_Services|purchasing]] web-browser [[Title_list/DLC|DLC]].&lt;br /&gt;
During startup the browser does various HTTPS comms. When visting an URL, the browser sends a plaintext HTTP POST here: [http://ars.ifuser.jp:20080/ars2/rating]. The raw POST data begins with &amp;quot;ARS/2.0\r\n\x00&amp;quot;, the rest appears to be encrypted. The server reply content also has this ARS header + encrypted data. This appears to use a fixed xorpad, likely from a fixed encryption CTR/IV. The server content responses for allowed sites, and blocked sites, are fixed. When the server returns that the site is blocked, the browser goes to this page: [http://ars.ifuser.jp/filter/44.html](the Referrer header value is set to the same URL it&#039;s actually requesting).&lt;br /&gt;
&lt;br /&gt;
The WebKit source was updated since the Old3DS browser.&lt;br /&gt;
The New3DS browser uses the following services: [[MVD_Services|mvd:STD]] and [[IR_Services|ir:rst]](DLC-related services are used too but those aren&#039;t New3DS specific).&lt;br /&gt;
Video decoding is done with [[MVD_Services|mvd:STD]]. Audio decoding/playback is done with a browser-specific DSP binary. The Old3DS browser used CSND for audio playback, the New3DS browser doesn&#039;t have access to that at all since it uses DSP instead.&lt;br /&gt;
&lt;br /&gt;
=== Video / libstagefright ===&lt;br /&gt;
The browser manual includes licenses for Android and PacketVideo. The browser uses libstagefright from Android. Just like WebKit, the browser appears to use a very old version of libstagefright with security/other changes back-ported(for example, the v10.7 browser libstagefright codebase seems to be older than [https://android.googlesource.com/platform/frameworks/av/+/ec77122351b4e78c1fe5b60a208f76baf8c67591%5E%21/media/libstagefright/MPEG4Extractor.cpp this]). This codebase is missing certain chunk-parsing code for 3GP.&lt;br /&gt;
&lt;br /&gt;
HTTP for libstagefright is internally handled with [[HTTP_Services|HTTPC]], with a similar(?) set of RootCAs as for browser-version-check.&lt;br /&gt;
&lt;br /&gt;
===User-Agent and Browser Versions===&lt;br /&gt;
Normal user-agent format: &amp;lt;code style=&amp;quot;font-size:larger;&amp;quot;&amp;gt;Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/&amp;lt;WebKit version&amp;gt; (KHTML, like Gecko) NX/&amp;lt;Netfront version&amp;gt; Mobile NintendoBrowser/&amp;lt;Mobile NintendoBrowser version&amp;gt;.&amp;lt;region&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;region&amp;gt; can be one of the following: &amp;quot;JP&amp;quot;, &amp;quot;US&amp;quot;, or &amp;quot;EU&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Mobile User-Agent is always &amp;lt;code&amp;gt;Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Mobile NintendoBrowser version(displayed in browser settings)&lt;br /&gt;
! Normal UA&lt;br /&gt;
! CDN Title-version&lt;br /&gt;
! Network-only system-update version&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.9934&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.8 Mobile NintendoBrowser/1.0.9934.&amp;lt;region&amp;gt;&lt;br /&gt;
| v10&lt;br /&gt;
| [[9.0.0-20]]&lt;br /&gt;
| Initial version.&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.9996&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.10 Mobile NintendoBrowser/1.1.9996.&amp;lt;region&amp;gt;&lt;br /&gt;
| v1027&lt;br /&gt;
| [[9.3.0-21]]&lt;br /&gt;
| See below regarding OSS changes.&lt;br /&gt;
|-&lt;br /&gt;
| 1.2.10085&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.13 Mobile NintendoBrowser/1.2.10085.&amp;lt;region&amp;gt;&lt;br /&gt;
| v2051&lt;br /&gt;
| [[9.6.0-24]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v3075&lt;br /&gt;
| v9.9 CUP&lt;br /&gt;
| v9.9 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.10126&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.15 Mobile NintendoBrowser/1.3.10126.&amp;lt;region&amp;gt;&lt;br /&gt;
| v3077&lt;br /&gt;
| [[9.9.0-26]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.10138&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.17 Mobile NintendoBrowser/1.4.10138.&amp;lt;region&amp;gt;&lt;br /&gt;
| v4096&lt;br /&gt;
| [[10.2.0-28]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.5.10143&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.5.10143.&amp;lt;region&amp;gt;&lt;br /&gt;
| v5121&lt;br /&gt;
| [[10.4.0-29]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.6.10147&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.6.10147.&amp;lt;region&amp;gt;&lt;br /&gt;
| v6144&lt;br /&gt;
| [[10.6.0-31]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v7168&lt;br /&gt;
| v10.7 CUP&lt;br /&gt;
| v10.7 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7.10150&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.7.10150.&amp;lt;region&amp;gt;&lt;br /&gt;
| v7184&lt;br /&gt;
| [[10.7.0-32]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.8.10156&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.20 Mobile NintendoBrowser/1.8.10156.&amp;lt;region&amp;gt;&lt;br /&gt;
| v8192&lt;br /&gt;
| [[11.1.0-34]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.9.10160&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.20 Mobile NintendoBrowser/1.9.10160.&amp;lt;region&amp;gt;&lt;br /&gt;
| v9232&lt;br /&gt;
| [[11.4.0-37]]&lt;br /&gt;
| See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the latest Old3DS browser WebKit version at the time the initial New3DS browser was released, was the following: 532.8.&lt;br /&gt;
&lt;br /&gt;
The first version of the KOR New3DS browser was v9.6(which was when the New3DS KOR titles were originally added). Each version of the KOR browser has the same NintendoBrowser version as the other regions. The KOR browser has been only updated when the browser for the other regions were updated, hence the title-versions are the same as well. The KOR browser ExeFS .code is different from the other regions(more than just region-related IDs etc).&lt;br /&gt;
&lt;br /&gt;
==== OSS 9.0 and 9.3 diff ====&lt;br /&gt;
The following is a diff of the OSS archives from [http://www.nintendo.co.jp/support/oss/index.html here], for v9.0 and v9.3.&lt;br /&gt;
&lt;br /&gt;
 Files NewNintendo3DS_OpenSources9.0.0-/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp and NewNintendo3DS_OpenSources9.3.0-/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp differ&lt;br /&gt;
 Files NewNintendo3DS_OpenSources9.0.0-/WKC/WebKit/WKC/webkit/WKCVersion.h and NewNintendo3DS_OpenSources9.3.0-/WKC/WebKit/WKC/webkit/WKCVersion.h differ&lt;br /&gt;
&lt;br /&gt;
WKC_CUSTOMER_RELEASE_VERSION was changed from &amp;quot;0.5.8&amp;quot; to &amp;quot;0.5.10&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following code was added to ResourceHandleManager::doRedirect(): curl_easy_setopt(d-&amp;gt;m_handle, CURLOPT_SHARE, 0);&lt;br /&gt;
&lt;br /&gt;
==== v9.6 ====&lt;br /&gt;
WebKit/OSS code was actually updated.&lt;br /&gt;
ExeFS .code was updated. The following files in RomFS were updated:&lt;br /&gt;
* &amp;quot;/banner/CN/Skater.icn&amp;quot; and &amp;quot;/banner/KR/Skater.icn&amp;quot;.&lt;br /&gt;
* &amp;quot;/browser/rootca.pem&amp;quot;&lt;br /&gt;
* &amp;quot;/build/buildinfo.dat&amp;quot;&lt;br /&gt;
* &amp;quot;/cairo.cro.lex&amp;quot; and &amp;quot;/.crr/static.crr&amp;quot;&lt;br /&gt;
* &amp;quot;/lyt/Button/ButtonSelectHSearch.arc&amp;quot;&lt;br /&gt;
* &amp;quot;/lyt/Kbd/Swkbd.arc&amp;quot;&lt;br /&gt;
* &amp;quot;lyt/Kbd.arc&amp;quot;&lt;br /&gt;
* &amp;quot;skater.msbt&amp;quot; under all of the &amp;quot;/message/&amp;lt;region&amp;gt;_&amp;lt;language&amp;gt;/&amp;quot; directories.&lt;br /&gt;
* &amp;quot;/oss.cro.lex&amp;quot;, &amp;quot;/peer.cro.lex&amp;quot;, &amp;quot;/static.crs&amp;quot;, and &amp;quot;/webkit.cro.lex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following was added to RomFS:&lt;br /&gt;
* &amp;quot;/favicon/naver.dat&amp;quot;&lt;br /&gt;
* A &amp;quot;KO&amp;quot; directory under &amp;quot;/iwnn&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== v9.9 ====&lt;br /&gt;
ExeFS:/.code was updated.&lt;br /&gt;
&lt;br /&gt;
The only RomFS changes is file-updating, all of the following files were updated:&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /cairo.cro.lex&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex&lt;br /&gt;
 /peer.cro.lex&lt;br /&gt;
 /static.crs&lt;br /&gt;
 /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
See [https://gist.github.com/yellows8/9fb509fde4112339f342 here] for a diff of the OSS(WebKitLibraries/ is not included due to the massive cairo library diff). An exploitable security vuln(which was already known in the context of 3DS webkit) was fixed. [[User:Yellows8|Yellows8]]&#039; private(at the time of writing) exploit for it is based on the PoC from [http://pastebin.com/ufBCQKda here](see the pastebin for the actual pastebin author).&lt;br /&gt;
&lt;br /&gt;
==== v10.2 ====&lt;br /&gt;
The libstagefright build in the main SKATER codebin was updated to a version which fixed libstagefright vuln(s): the vuln used in [[browserhax|browserhax_fright]] at the time of sysupdate release was fixed. The *only* code changed in the main codebin, was code related to libstagefright.&lt;br /&gt;
&lt;br /&gt;
The only RomFS changes is file-updating, all of the following files were updated(see the forced-sysupdate section regarding what changed in the message files):&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex&lt;br /&gt;
 /static.crs&lt;br /&gt;
 /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
OSS diff:&lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/WKC/WebKit/WKC/webkit/WKCVersion.h b/NewNintendo3DS_OpenSources10.2.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index 4543297..0860336 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;0.5.15&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;0.5.17&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;536.30&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/ChangeLog b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 index a5abb35..cf5a9fa 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 @@ -1,3 +1,12 @@&lt;br /&gt;
 +2013-11-05  Ryosuke Niwa  &amp;lt;rniwa@webkit.org&amp;gt;&lt;br /&gt;
 +&lt;br /&gt;
 +        Use-after-free in SliderThumbElement::dragFrom&lt;br /&gt;
 +        https://bugs.webkit.org/show_bug.cgi?id=123873&lt;br /&gt;
 +&lt;br /&gt;
 +        Reviewed by Andreas Kling.&lt;br /&gt;
 +&lt;br /&gt;
 +        Merge https://chromium.googlesource.com/chromium/blink/+/04a23bfca2d04101a1828d36ff36c29f3a24f34b&lt;br /&gt;
 +&lt;br /&gt;
  2015-02-06  Maciej Stachowiak  &amp;lt;mjs@apple.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
          REGRESSION(r179706): Caused memory corruption on some tests (Requested by _ap_ on #webkit).&lt;br /&gt;
 @@ -879,7 +888,7 @@&lt;br /&gt;
          * rendering/RenderLineBoxList.cpp:&lt;br /&gt;
          (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):&lt;br /&gt;
  &lt;br /&gt;
 -2014-01-21  LÃ¡szlÃ³ LangÃ³  &amp;lt;llango.u-szeged@partner.samsung.com&amp;gt;&lt;br /&gt;
 +2014-01-21  Laszlo Lango  &amp;lt;llango.u-szeged@partner.samsung.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
          Assertion failure in Range::nodeWillBeRemoved&lt;br /&gt;
          https://bugs.webkit.org/show_bug.cgi?id=121694&lt;br /&gt;
 @@ -1879,7 +1888,7 @@&lt;br /&gt;
  &lt;br /&gt;
  2012-09-14  Simon Fraser  &amp;lt;simon.fraser@apple.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 -        REGRESSION: transition doesnât always override transition-property&lt;br /&gt;
 +        REGRESSION: transition doesnft always override transition-property&lt;br /&gt;
          https://bugs.webkit.org/show_bug.cgi?id=96658&lt;br /&gt;
  &lt;br /&gt;
          Reviewed by Dean Jackson.&lt;br /&gt;
 @@ -3691,8 +3700,8 @@&lt;br /&gt;
              glyph with font data for the primary font, presumably to meet the SVG&lt;br /&gt;
              spec requirement: &amp;quot;If the references to alternate glyphs do not result&lt;br /&gt;
              in successful identification of alternate glyphs to use, then the&lt;br /&gt;
 -            character(s) that are inside of the çª¶åltGlyphçª¶?element are rendered as&lt;br /&gt;
 -            if the çª¶åltGlyphçª¶?element were a çª¶?spançª¶?element instead.&amp;quot;&lt;br /&gt;
 +            character(s) that are inside of the âaltGlyphâ?element are rendered as&lt;br /&gt;
 +            if the âaltGlyphâ?element were a â?spanâ?element instead.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
              If the alt glyph is not then found we are in the case from the spec&lt;br /&gt;
              and indeed we should use the primary font. However, we end up replacing the GlyphPage&lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/html/RangeInputType.cpp b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 index 484adec..d7e9e8d 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 @@ -164,7 +164,7 @@ void RangeInputType::handleMouseDownEvent(MouseEvent* event)&lt;br /&gt;
      ASSERT(element()-&amp;gt;hasShadowRoot());&lt;br /&gt;
      if (targetNode != element() &amp;amp;&amp;amp; !targetNode-&amp;gt;isDescendantOf(element()-&amp;gt;shadowTree()-&amp;gt;oldestShadowRoot()))&lt;br /&gt;
          return;&lt;br /&gt;
 -    SliderThumbElement* thumb = sliderThumbElementOf(element());&lt;br /&gt;
 +    RefPtr&amp;lt;SliderThumbElement&amp;gt; thumb = sliderThumbElementOf(element());&lt;br /&gt;
      if (targetNode == thumb)&lt;br /&gt;
          return;&lt;br /&gt;
      thumb-&amp;gt;dragFrom(event-&amp;gt;absoluteLocation());&lt;br /&gt;
&lt;br /&gt;
==== v10.4 ====&lt;br /&gt;
The ExeFS codebin was updated, the only change was that the following code was updated in the actual NupCheck HTTPS request function:&lt;br /&gt;
* Previous version: sprintf(out, &amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/2/%s&amp;quot;, region);&lt;br /&gt;
* Current  version: sprintf(out, &amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/%d/%s&amp;quot;, 3, region);&lt;br /&gt;
&lt;br /&gt;
libpng was updated from version 1.5.21 to 1.5.24.&lt;br /&gt;
&lt;br /&gt;
The following RomFS files were updated(see the forced-sysupdate section regarding what changed in the message files):&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /cairo.cro.lex&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex differ&lt;br /&gt;
 /peer.cro.lex differ&lt;br /&gt;
 /static.crs differ&lt;br /&gt;
 /webkit.cro.lex differ&lt;br /&gt;
&lt;br /&gt;
==== v10.6 ====&lt;br /&gt;
The ExeFS codebin was updated.&lt;br /&gt;
&lt;br /&gt;
[[browserhax|browserhax_fright_tx3g]] was fixed. The code handling tx3g now matches the latest libstagefright git.&lt;br /&gt;
&lt;br /&gt;
Hence the below RomFS listing, no OSS was updated at all(besides libstagefright mentioned above).&lt;br /&gt;
&lt;br /&gt;
The following RomFS files were updated:&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /static.crs&lt;br /&gt;
&lt;br /&gt;
==== v10.7 ====&lt;br /&gt;
Basically the same changes as Old3DS v10.7, except with the usual buildinfo.dat update in RomFS. The below date is 6 days after the browser-version-check [[3DS_Userland_Flaws|bypass]] was publicly disclosed.&lt;br /&gt;
&lt;br /&gt;
 cat v7184/00000025_romfs/build/buildinfo.dat&lt;br /&gt;
 10150&lt;br /&gt;
 applet&lt;br /&gt;
 2016-03-02 18:25&lt;br /&gt;
&lt;br /&gt;
==== v11.1 ====&lt;br /&gt;
The ExeFS codebin was updated. The following files in RomFS were updated:&lt;br /&gt;
&lt;br /&gt;
  /build/buildinfo.dat&lt;br /&gt;
  /.crr/static.crr&lt;br /&gt;
  /oss.cro.lex&lt;br /&gt;
  /static.crs&lt;br /&gt;
  /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
  cat v8192/00000026_romfs/build/buildinfo.dat&lt;br /&gt;
  10156&lt;br /&gt;
  applet&lt;br /&gt;
  2016-08-26 19:47&lt;br /&gt;
&lt;br /&gt;
Minus the 4 functions that changed due to compiler optimization, only 1 function was actually updated. This is LT_1a4004, previous version at LT_1a4004: libstagefright status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth)&lt;br /&gt;
&lt;br /&gt;
Additional code was added which doesn&#039;t seem to be from upstream git, right [https://android.googlesource.com/platform/frameworks/av/+/32d6e5f0ebe9e00f80401e5f4fd6e285a474590d/media/libstagefright/MPEG4Extractor.cpp#880 before] the cprt code block: &amp;quot;if((*offset + chunk_size) - data_offset &amp;lt; 0)fail&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This fixed skater31hax + any other mp4 haxx which requires using a negative 64bit chunk_size value.&lt;br /&gt;
&lt;br /&gt;
The filepath base used in the assert strings were changed from &amp;quot;d:\Jenkins\workspace\MPSkaterBuild\MVPlayer\Skater\Base\Android\frameworks\base\media\libstagefright\&amp;quot; to &amp;quot;d:\jenkins\workspace\MPSkaterBuild-Git\Base\Android\frameworks\base\media\libstagefright\&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== v11.4 ====&lt;br /&gt;
The only changes in RomFS was for &amp;quot;/build/buildinfo.dat&amp;quot; and &amp;quot;/static.crs&amp;quot;, hence no OSS in CRO(s) were updated.&lt;br /&gt;
&lt;br /&gt;
The main codebin was updated.&lt;br /&gt;
&lt;br /&gt;
  cat v9232/00000027_romfs/build/buildinfo.dat&lt;br /&gt;
  10160&lt;br /&gt;
  applet&lt;br /&gt;
  2017-03-08 19:44&lt;br /&gt;
&lt;br /&gt;
=== New3DS Browser Specifications ===&lt;br /&gt;
[http://www.nintendo.co.jp/3ds/new/features/modal_net.html]&lt;br /&gt;
&lt;br /&gt;
English version:&lt;br /&gt;
* &amp;quot;Browser engine: NetFront® Browser NX v3.0&amp;quot;&lt;br /&gt;
* &amp;quot;User agent: Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML and like Gecko) NX/3.0.*.*.* Mobile NintendoBrowser/1.0.**** JP&lt;br /&gt;
* ** Version information is stated.&lt;br /&gt;
* *** When using the “Mobile version request” function, it differs from the above-mentioned character string&amp;quot;&lt;br /&gt;
* &amp;quot;Supported protocols: HTTP1.0/HTTP1.1/SSL3.0/TLS1.0/TLS1.1/TLS1.2&amp;quot;&lt;br /&gt;
* &amp;quot;Web standard: HTML4.01 / HTML5 / XHTML1.1 / Fullscreen API / Gamepad API / SVG / WebSocket / Video Subtitle / WOFF / Web Messaging / Server-Sent / Web Storage (partial) / XMLHttpRequest / Canvas element / Video / DOM Levels 1-3 / ECMAScript / CSS1 / CSS2.1 / CSS3 (partial)&amp;quot;&lt;br /&gt;
* &amp;quot;Image format: bmp / ​​gif / ico / jpeg / png / svg (There are, however, possibilities that some images won&#039;t display.)&amp;quot;&lt;br /&gt;
* &amp;quot;Image preview: mpo / jpeg (There are, however, possibilities that some images won&#039;t display.)&amp;quot;&lt;br /&gt;
* &amp;quot;Video format: MP4, M3U8 + TS (HTTPLiveStreaming) (There are, however, some videos that may not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Video codec: H.264 - MPEG-4 AVC Video (max 854x480 at level 3.2, 3D compatible) (There are, however, some videos that can not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Audio codec: AAC - ISO / IEC 14496-3 MPEG-4AAC, MP3 (There are, however, some videos that can not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Format for uploading 3D videos: .mkv (In order to be played, videos must be converted to the appropriate format within the site you are uploading to. In some cases, the video will not play even if converted.)&amp;quot;&lt;br /&gt;
* &amp;quot;Plug-ins: Plug-ins such as Adobe Flash are not supported&amp;quot;&lt;br /&gt;
* &amp;quot;Active Rating System filtering: provided by Digital Arts, Inc.. Access to web content can be limited based on its category information, restricting access to web content that may result inappropriate.&amp;quot;&lt;br /&gt;
* &amp;quot;Websites can be requested to provide the mobile version (However, if the web page does not have a mobile version, it won&#039;t change the way it&#039;s displayed.)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
MJPEG + .avi is also supported.&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
* The html &amp;quot;color&amp;quot; &amp;lt;input&amp;gt; type is not supported.&lt;br /&gt;
&lt;br /&gt;
== Old3DS browser ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Old3DS Browser Specifications ===&lt;br /&gt;
* &amp;quot;Browser engine: NetFront® Browser&amp;quot;&lt;br /&gt;
* &amp;quot;User agent: Mozilla/5.0 (Nintendo 3DS; region; ; en) Version/1.7498.US&amp;quot;&lt;br /&gt;
* &amp;quot;Supported protocols: HTTP1.0/HTTP1.1/SSLv3/TLS1.0&amp;quot;&lt;br /&gt;
* &amp;quot;Web standard: HTML 4.01/XHTML 1.1/CSS 1/CSS 2.1/CSS 3 (partial functionality)/DOM Levels 1-3/ECMAScript/XMLHttpRequest/Canvas Element (partial functionality)&amp;quot;&lt;br /&gt;
* &amp;quot;Image format: MPO / GIF / JPEG / PNG / BMP / ICO (some images cannot be displayed)&amp;quot;&lt;br /&gt;
* &amp;quot;Plug-ins: Plug-ins such as Adobe Flash are not supported&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Old3DS browser doesn&#039;t support events &amp;quot;focusin&amp;quot; and &amp;quot;focusout&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== User-Agent and Browser Versions ===&lt;br /&gt;
User-agent format: &amp;lt;code style=&amp;quot;font-size:larger;&amp;quot;&amp;gt;Mozilla/5.0 (Nintendo 3DS; U; ; &amp;lt;lang&amp;gt;) Version/&amp;lt;version&amp;gt;.&amp;lt;region&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lang&amp;gt; is &amp;quot;en&amp;quot;, &amp;quot;fr&amp;quot;, etc. &amp;lt;region&amp;gt; is &amp;quot;US&amp;quot;, &amp;quot;EU&amp;quot;, etc. See below for &amp;lt;version&amp;gt;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Browser version&lt;br /&gt;
! CDN Title-version&lt;br /&gt;
! Network-only system-update version&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.7412&lt;br /&gt;
| v6&lt;br /&gt;
| [[2.0.0-2|2.0.0-2]]&lt;br /&gt;
| This was the initial version.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7455&lt;br /&gt;
| v1024&lt;br /&gt;
| [[2.1.0-4]]&lt;br /&gt;
| ExeFS .code was updated, both of the CROs(webkit/OSS) were updated too.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7498&lt;br /&gt;
| v2050&lt;br /&gt;
| [[4.0.0-7]]&lt;br /&gt;
| ExeFS .code was updated, both of the CROs(webkit/OSS) were updated too. The manual CFA was updated as well.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7538&lt;br /&gt;
| v0&lt;br /&gt;
| [[4.2.0-9]]&lt;br /&gt;
| First version of the KOR browser. The CROs are different from the  USA/EUR/JPN [[4.0.0-7]] browser.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7552&lt;br /&gt;
| v3075&lt;br /&gt;
| [[5.0.0-11]]&lt;br /&gt;
| ExeFS .code and icon were updated, both of the CROs(webkit/OSS) were updated too. The manual CFA was updated as well.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7552&lt;br /&gt;
| v3088&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| The main NCCH wasn&#039;t updated at all(same TMD contentID/content-hash as the previous version), only the manual CFA for this title was updated.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7567&lt;br /&gt;
| v4096&lt;br /&gt;
| [[7.1.0-16]]&lt;br /&gt;
| The CXI .code was updated, some data in the RomFS was updated(none of the CROs such as webkit.cro were updated). The manual CFA was updated too.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7585&lt;br /&gt;
| v5121&lt;br /&gt;
| [[9.5.0-23]]&lt;br /&gt;
| The CXI .code was updated, and the manual CFA was updated. RomFS changes:&lt;br /&gt;
* &amp;quot;/browser/rootca.pem&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/oss.cro&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/static.crs&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/webkit.cro&amp;quot; updated&lt;br /&gt;
* &amp;quot;/.crr/static.crr&amp;quot; updated&lt;br /&gt;
* &amp;quot;/layout/dialogheader/WirelessSwitchOff.arc&amp;quot; was removed&lt;br /&gt;
* &amp;quot;/layout/favorite/favicondata/KOR.arc&amp;quot; updated&lt;br /&gt;
&lt;br /&gt;
A vuln used in a public(at the time of this sysupdate) webkit exploit for spider was fixed, which also fixed the removewinframe exploit from [https://github.com/yellows8/3ds_webkithax here].&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| v6147&lt;br /&gt;
| v9.9 CUP&lt;br /&gt;
| v9.9 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7610&lt;br /&gt;
| v6149&lt;br /&gt;
| [[9.9.0-26]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7616&lt;br /&gt;
| v7168&lt;br /&gt;
| [[10.2.0-28]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7622&lt;br /&gt;
| v8192&lt;br /&gt;
| [[10.6.0-31]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| v9216&lt;br /&gt;
| v10.7 CUP&lt;br /&gt;
| v10.7 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7625&lt;br /&gt;
| v9232&lt;br /&gt;
| [[10.7.0-32]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7630&lt;br /&gt;
| v10240&lt;br /&gt;
| [[11.1.0-34]]&lt;br /&gt;
| See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Heap ===&lt;br /&gt;
The USA/EUR/JPN + KOR browser allocates the 0x08000000 heap with size 0x01A97000. The size used by the CHN and TWN browser is 0x01997000, exactly 0x100000-bytes smaller.&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v9.9 ===&lt;br /&gt;
ExeFS:/.code was updated.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS were file-updating, the following files were updated:&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/spider.msbt&lt;br /&gt;
 /message/EU_Dutch/spider.msbt&lt;br /&gt;
 /message/EU_English/spider.msbt&lt;br /&gt;
 /message/EU_French/spider.msbt&lt;br /&gt;
 /message/EU_German/spider.msbt&lt;br /&gt;
 /message/EU_Italian/spider.msbt&lt;br /&gt;
 /message/EU_Portuguese/spider.msbt&lt;br /&gt;
 /message/EU_Russian/spider.msbt&lt;br /&gt;
 /message/EU_Spanish/spider.msbt&lt;br /&gt;
 /message/JP_Japanese/spider.msbt&lt;br /&gt;
 /message/KR_Hangeul/spider.msbt&lt;br /&gt;
 /message/TW_English/spider.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/spider.msbt&lt;br /&gt;
 /message/US_English/spider.msbt&lt;br /&gt;
 /message/US_French/spider.msbt&lt;br /&gt;
 /message/US_Portuguese/spider.msbt&lt;br /&gt;
 /message/US_Spanish/spider.msbt&lt;br /&gt;
&lt;br /&gt;
OSS diff for v9.5 and v9.9, without the .dox changes:&lt;br /&gt;
&lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/WKC/WebKit/WKC/webkit/WKCVersion.h b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index be5ff09..55a7274 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.14&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.16&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;532.7&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/webkit/WebCore/rendering/RenderBox.cpp b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 index da4127e..d03403e 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 @@ -305,23 +305,23 @@ int RenderBox::scrollHeight() const&lt;br /&gt;
  &lt;br /&gt;
  int RenderBox::scrollLeft() const&lt;br /&gt;
  {&lt;br /&gt;
 -    return hasOverflowClip() ? layer()-&amp;gt;scrollXOffset() : 0;&lt;br /&gt;
 +    return layer() &amp;amp;&amp;amp; hasOverflowClip() ? layer()-&amp;gt;scrollXOffset() : 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int RenderBox::scrollTop() const&lt;br /&gt;
  {&lt;br /&gt;
 -    return hasOverflowClip() ? layer()-&amp;gt;scrollYOffset() : 0;&lt;br /&gt;
 +    return layer() &amp;amp;&amp;amp; hasOverflowClip() ? layer()-&amp;gt;scrollYOffset() : 0;&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  void RenderBox::setScrollLeft(int newLeft)&lt;br /&gt;
  {&lt;br /&gt;
 -    if (hasOverflowClip())&lt;br /&gt;
 +    if (hasOverflowClip() &amp;amp;&amp;amp; layer())&lt;br /&gt;
          layer()-&amp;gt;scrollToXOffset(newLeft);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  void RenderBox::setScrollTop(int newTop)&lt;br /&gt;
  {&lt;br /&gt;
 -    if (hasOverflowClip())&lt;br /&gt;
 +    if (hasOverflowClip() &amp;amp;&amp;amp; layer())&lt;br /&gt;
          layer()-&amp;gt;scrollToYOffset(newTop);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.2 ===&lt;br /&gt;
The slider vuln from [https://github.com/yellows8/3ds_webkithax here] was fixed in the Old3DS browser.&lt;br /&gt;
&lt;br /&gt;
The main codebin .text only increased by 0x10-bytes.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS was that the following files were updated:&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
&lt;br /&gt;
OSS diff:&lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index 55a7274..fc153c4 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.16&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.17&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;532.7&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderSlider.cpp b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 index b2f5cef..1dd3dbd 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 @@ -221,6 +221,7 @@ RenderSlider::~RenderSlider()&lt;br /&gt;
  {&lt;br /&gt;
      if (m_thumb)&lt;br /&gt;
          m_thumb-&amp;gt;detach();&lt;br /&gt;
 +    m_thumb = 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int RenderSlider::baselinePosition(bool, bool) const&lt;br /&gt;
 @@ -493,7 +494,8 @@ void RenderSlider::forwardEvent(Event* event)&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
  &lt;br /&gt;
 -    m_thumb-&amp;gt;defaultEventHandler(event);&lt;br /&gt;
 +    if (m_thumb)&lt;br /&gt;
 +        m_thumb-&amp;gt;defaultEventHandler(event);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  bool RenderSlider::inDragMode() const&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.6 ===&lt;br /&gt;
[[browserhax|spider28hax]] was fixed. The &amp;quot;2^32 characters long string&amp;quot; vuln described [[3DS_Userland_Flaws|here]] was &#039;&#039;finally&#039;&#039; fixed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;A lot&#039;&#039; of WebKit issues/vulns were fixed, see [https://gist.github.com/yellows8/b1e10caa1d8bb8a46316 here] for the changes.&lt;br /&gt;
&lt;br /&gt;
libpng was updated from version 1.4.12 to 1.4.19. zlib was updated from 1.2.7 to 1.2.8.&lt;br /&gt;
&lt;br /&gt;
The .text size increased by 0x478-bytes.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS was that the following files were updated:&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /manual/Manual.bcma&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.7 ===&lt;br /&gt;
&#039;&#039;Nothing&#039;&#039; changed except some words for version-values in .text being updated(RomFS wasn&#039;t changed), code for browser-version-check was [[#v10.7_2|updated]].&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v11.1 ===&lt;br /&gt;
Nothing changed in the ExeFS codebin besides the usual version values. The following files in RomFS were updated:&lt;br /&gt;
  /cro/oss.cro&lt;br /&gt;
  /cro/webkit.cro&lt;br /&gt;
  /.crr/static.crr&lt;br /&gt;
&lt;br /&gt;
== Forced system-update ==&lt;br /&gt;
The Old3DS/New3DS Internet Browser updated with [[9.9.0-26]] added the following message strings:&lt;br /&gt;
 In order to use the Internet &lt;br /&gt;
 browser, a system update &lt;br /&gt;
 is required.&lt;br /&gt;
 To perform a system update, &lt;br /&gt;
 select System Update from Other&lt;br /&gt;
 Settings in System Settings.&lt;br /&gt;
&lt;br /&gt;
 The Internet browser cannot be&lt;br /&gt;
 used at this time.&lt;br /&gt;
 Please check your network&lt;br /&gt;
 environment or try again later.&lt;br /&gt;
&lt;br /&gt;
For whatever reason, the above &#039;&#039;message strings&#039;&#039; were removed with New3DS-browser v10.2, then re-added with v10.4. This does not apply to the Old3DS browser. Whenever v10.2 New3DS browser tries to use these message-strings for displaying a browser-update-related message, it will crash due to an assert failing since the message-strings are missing. Hence, if/when the v10.2 update-check page is ever updated where the browser tries to display a message for it, or when accessing that page fails, the browser will automatically crash.&lt;br /&gt;
&lt;br /&gt;
This wasn&#039;t enforced(web-browser displaying the above message when the installed browser isn&#039;t the latest version) until October 26, 2015.&lt;br /&gt;
&lt;br /&gt;
This message only triggers when attempting to load a web-page. This is only handled the first time the browser accesses a web-page, during this browser session.&lt;br /&gt;
&lt;br /&gt;
The browser codebins starting with v9.9 now contain the following URL strings:&lt;br /&gt;
* Old3DS: &amp;lt;nowiki&amp;gt;&amp;quot;https://cbvc.cdn.nintendo.net/CTR/1/&amp;lt;region&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* New3DS: &amp;lt;nowiki&amp;gt;&amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/1/&amp;lt;region&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;region&amp;gt; string is one of the following:&lt;br /&gt;
* &amp;quot;JPN&amp;quot;&lt;br /&gt;
* &amp;quot;USA&amp;quot;&lt;br /&gt;
* &amp;quot;EUR&amp;quot;&lt;br /&gt;
* &amp;quot;KOR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Starting with the browser from [[10.2.0-28]], the &amp;quot;1&amp;quot; in the above URLs were changed to &amp;quot;2&amp;quot;. With the New3DS browser from [[10.4.0-29]], it&#039;s now &amp;quot;3&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
As of October 26, 2015, the &amp;quot;1&amp;quot; URLs return the browser-version for v9.9(decimal number as a string without any &amp;quot;.&amp;quot;), while the &amp;quot;2&amp;quot; URLs returns 0.&lt;br /&gt;
&lt;br /&gt;
 if(internal_browserver &amp;gt; server_browserver)&lt;br /&gt;
 {&lt;br /&gt;
     &amp;lt;safe&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
 else&lt;br /&gt;
 {&lt;br /&gt;
     &amp;lt;update message&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Hence, internal_browserver == server_browserver will trigger the sysupdate message, which appears to be the normal way to indicate that the current browser is outdated(see above).&lt;br /&gt;
&lt;br /&gt;
There is a cache for this in savedata. The request is only done when at least 24-hours have passed since the last time the request was done(see the below savedata section).&lt;br /&gt;
&lt;br /&gt;
It is still possible to guard against this update by blocking the previous URLs using a proxy. &lt;br /&gt;
It is not possible to remove the update message by entering the [[Recovery Mode]].&lt;br /&gt;
&lt;br /&gt;
=== Page request ===&lt;br /&gt;
For this request, all root-CAs bundled with the browser are trusted, in addition to two of the SSL module builtin Nintendo root-CAs.&lt;br /&gt;
&lt;br /&gt;
The browser(with New3DS at least) does the following with [[HTTP_Services|HTTPC]] for requesting the above page:&lt;br /&gt;
* Initializes the HTTP context and uses [[HTTPC:InitializeConnectionSession]] + [[HTTPC:SetProxyDefault]].&lt;br /&gt;
* Uses [[HTTP_Services|HTTPC]] command 0x250080 twice with cmd[1]=contexthandle: first time cmd[2]=0x3, second time cmd[2]=0x6.&lt;br /&gt;
* Then [[HTTPC:AddTrustedRootCA]] is used 48 times to setup 48 trusted root CAs. This appears to be every cert in the browser &amp;quot;romfs:/browser/rootca.pem&amp;quot; file converted to DER, in the same order from there(in other words, every single root CA the browser trusts by default for normal web-browsing).&lt;br /&gt;
* Then [[HTTPC:BeginRequest]] is used.&lt;br /&gt;
* Then [[HTTPC:ReceiveDataTimeout]] is used, the recv-size seems to be fixed to 0x20.&lt;br /&gt;
* Then [[HTTPC:GetResponseStatusCodeTimeout]] is used.&lt;br /&gt;
* Then [[HTTPC:GetDownloadSizeState]] is used.&lt;br /&gt;
* Then the HTTP context is closed.&lt;br /&gt;
&lt;br /&gt;
Raw request data(New3DS USA v10.2 browser):&lt;br /&gt;
 000000: 47 45 54 20 2f 53 4e 41 4b 45 2f 32 2f 55 53 41  GET /SNAKE/2/USA&lt;br /&gt;
 000010: 20 48 54 54 50 2f 31 2e 31 0d 0a 48 6f 73 74 3a   HTTP/1.1..Host:&lt;br /&gt;
 000020: 20 63 62 76 63 2e 63 64 6e 2e 6e 69 6e 74 65 6e   cbvc.cdn.ninten&lt;br /&gt;
 000030: 64 6f 2e 6e 65 74 0d 0a 0d 0a                    do.net....&lt;br /&gt;
&lt;br /&gt;
=== v10.7 ===&lt;br /&gt;
The only actual code change with Old3DS/New3DS browser v10.7 was that the code which calculates the diff_timestamp was moved to immediately after the block which initializes &amp;lt;state_timestamp&amp;gt; when &amp;lt;state_timestamp&amp;gt; is all-zero. This fixed the browser-version-check [[3DS_Userland_Flaws|bypass]].&lt;br /&gt;
&lt;br /&gt;
== v9.9+/v10.7+ dummy web-browser ==&lt;br /&gt;
Gamecards v9.9 and above include, with their sysupdate, a dummy Old3DS/New3DS web-browser. The *only* thing this title does is display the same message listed in the above forced-update section. The message files in RomFS *only* contain that message string above. There are no &amp;quot;http&amp;quot; strings in the main codebin, and [[RO_Services|RO]] isn&#039;t used either(no CRO data in RomFS at all). Both browsers are internally called &amp;quot;dummySpider&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Hence, if you update your system below v9.8 with any v9.9 or above gamecard, the system web-browser will be rendered *completely* useless until you install a system-update from CDN(no network requests involved here).&lt;br /&gt;
&lt;br /&gt;
Gamecards v10.7 and above include an updated dummy web-browser, where the only difference is the title version.&lt;br /&gt;
&lt;br /&gt;
== Savedata ==&lt;br /&gt;
=== New3DS ===&lt;br /&gt;
On newer SKATER versions, it appears *all* NAND savedata is stored under the [[System_SaveData|0x000200BB]] savedata.&lt;br /&gt;
&lt;br /&gt;
==== 0x000200BB savedata ====&lt;br /&gt;
This only contains &amp;quot;t.bin&amp;quot; with filesize 0xadf80, the format is below.&lt;br /&gt;
&lt;br /&gt;
The timestamp format used here is the number of milliseconds since January 1, 2000(local-time).&lt;br /&gt;
&lt;br /&gt;
When using the &amp;quot;Initialize savedata&amp;quot; option in the browser, that deletes this savedata file/image then exits the browser. This file is then re-created when the browser gets started again.&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;
| 0x68&lt;br /&gt;
| 0x4?&lt;br /&gt;
| This counter is incremented each time the savedata is written.&lt;br /&gt;
|-&lt;br /&gt;
| 0x70&lt;br /&gt;
| 0x8&lt;br /&gt;
| Timestamp for when the savedata was last written.&lt;br /&gt;
|-&lt;br /&gt;
| 0x94&lt;br /&gt;
| 0x15?&lt;br /&gt;
| This is all-zeros on non-JPN systems. On JPN systems where the browser filter is disabled, this is a string in the following format: &amp;quot;4110-%016llX&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD8&lt;br /&gt;
| 0x8&lt;br /&gt;
| s64 timestamp, can be either a normal positive timestamp or a relative negative one. Used with the forced-update described above. When an update is detected this timestamp is negative, otherwise this is a normal positive timestamp(it&#039;s unknown how exactly this timestamp is checked). When positive, this seems to be the last time the forced-update HTTPS request was done where no update was needed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==APT Parameters==&lt;br /&gt;
The URL to load can optionally be loaded from char[] string [[APT:SendParameter|paramblk+0]]. This is used when scanning URL QR-codes in Home Menu / etc.&lt;br /&gt;
&lt;br /&gt;
==Errors==&lt;br /&gt;
&amp;quot;Failed to load part of this page&amp;quot;: This can be caused by failing to load &amp;quot;/favicon.ico&amp;quot;. For example, this can be caused by loading a plain HTTP page, with plain-http favicon redirecting to HTTPS. If cert-verify then fails with favicon in this case, this error would then trigger.&lt;br /&gt;
&lt;br /&gt;
==Other details==&lt;br /&gt;
&lt;br /&gt;
*It scored 90/100 on [http://acid3.acidtests.org/ Acid3] test&lt;br /&gt;
*Images from the Internet can be saved to the [[SD Filesystem|SD Card]] and viewed using the [[Nintendo 3DS Camera]] application.&lt;br /&gt;
*Images saved to an [[SD Filesystem|SD Card]] or to the Nintendo 3DS system memory can be uploaded to blogs or other sites that allow the uploading of photos using :&lt;br /&gt;
 &amp;lt;input type=&amp;quot;file&amp;quot; /&amp;gt;&lt;br /&gt;
* HTML5Test.com say that Drag and drop is supported but it&#039;s not (code on WebKit is ready, but it&#039;s not implemented on interface of browser)&lt;br /&gt;
&lt;br /&gt;
==Tips==&lt;br /&gt;
&lt;br /&gt;
=== Detect User Agent ===&lt;br /&gt;
&lt;br /&gt;
To detect if the user agent is Nintendo 3DS Browser :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
     if (navigator.userAgent.indexOf(&#039;Nintendo 3DS&#039;) == -1) { //If the UserAgent is not &amp;quot;Nintendo 3DS&amp;quot;&lt;br /&gt;
         location.replace(&#039;http://www.3dbrew.org&#039;); //Redirect to an other page&lt;br /&gt;
     }&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* You can check &amp;lt;em&amp;gt;navigator.platform==&amp;quot;Nintendo 3DS&amp;quot;&amp;lt;/em&amp;gt; as well.&lt;br /&gt;
&lt;br /&gt;
=== Scrolling ===&lt;br /&gt;
&lt;br /&gt;
Scrolling can be altered by modifying &amp;lt;em&amp;gt;document.body.scrollTop&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;document.body.scrollLeft&amp;lt;/em&amp;gt;.  However, there are drawbacks related to working with these properties:&lt;br /&gt;
&lt;br /&gt;
* Both properties return 0 when accessed&lt;br /&gt;
* Setting one property resets the other property&#039;s scroll position&lt;br /&gt;
&lt;br /&gt;
In order to set both at the same time (without either resetting to 0), use &amp;lt;em&amp;gt;window.scrollTo&amp;lt;/em&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Events ===&lt;br /&gt;
==== Key Events ====&lt;br /&gt;
The following buttons trigger the &amp;lt;em&amp;gt;onkeydown&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;onkeypress&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;onkeyup&amp;lt;/em&amp;gt; events:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;20%&amp;quot;&lt;br /&gt;
! Code !! Button &lt;br /&gt;
|-&lt;br /&gt;
| 13 || A&lt;br /&gt;
|-&lt;br /&gt;
| 37 || Left&lt;br /&gt;
|-&lt;br /&gt;
| 38 || Up&lt;br /&gt;
|-&lt;br /&gt;
| 39 || Right&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Down&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The events cannot have their default action cancelled.  Other buttons do not trigger key events.&lt;br /&gt;
&lt;br /&gt;
==== Touch/Mouse Events ====&lt;br /&gt;
&amp;lt;em&amp;gt;onmousedown&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;onmouseup&amp;lt;/em&amp;gt; &amp;amp; &amp;lt;em&amp;gt;onclick&amp;lt;/em&amp;gt; are all triggered by the browser.  However, the &amp;lt;em&amp;gt;onmousedown&amp;lt;/em&amp;gt; event doesn&#039;t trigger until you lift the stylus or you&#039;ve held it on the screen for ~2 seconds—which is when text selection mode is activated—making it pretty much the same as &amp;lt;em&amp;gt;onmouseup&amp;lt;/em&amp;gt;.  The events cannot have their default action cancelled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;em&amp;gt;onmousemove&amp;lt;/em&amp;gt; and common touch/gesture events are not supported.&lt;br /&gt;
&lt;br /&gt;
== Screen Resolution ==&lt;br /&gt;
&lt;br /&gt;
The up screen resolution is 400×240. However, the viewable area in the browser is only &amp;lt;b&amp;gt;400×220&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The touch screen resolution is 320×240. However, the viewable area in the browser is only &amp;lt;b&amp;gt;320×212&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can have a page span both screens. However, the browser will behave as if the bottom screen is the only active screen and the top screen is scrolled off. This is important when computing CSS coordinates. Items positioned from &amp;quot;bottom&amp;quot; will be positioned based on 220px and not the full 432px of both screens.&lt;br /&gt;
&lt;br /&gt;
== Using Both Screens ==&lt;br /&gt;
&lt;br /&gt;
Generally the easiest way to accomplish the correct layout is to create HTML elements that &amp;quot;contain&amp;quot; the top and bottom screens. Here&#039;s an example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
   &amp;lt;head&amp;gt;&lt;br /&gt;
     &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=400&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;style&amp;gt;&lt;br /&gt;
       body{margin:0px;}&lt;br /&gt;
       #topscreen{width:400px;height:220px;overflow:hidden;}&lt;br /&gt;
       #bottomscreen{width:320px;height:212px;overflow:hidden;margin:0 auto;}&lt;br /&gt;
     &amp;lt;/style&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div id=&amp;quot;topscreen&amp;quot;&amp;gt;Top Screen&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div id=&amp;quot;bottomscreen&amp;quot;&amp;gt;Bottom Screen&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This scheme allows the page to be easily manipulated through JavaScript.  In order to have the window snap to the correct position, use the following JavaScript code:&lt;br /&gt;
&lt;br /&gt;
 window.setInterval(function () {&lt;br /&gt;
     window.scrollTo(40, 220);  &lt;br /&gt;
 }, 50);&lt;br /&gt;
&lt;br /&gt;
This automatically resets the position if the user accidentally scrolls the page.&lt;br /&gt;
&lt;br /&gt;
==Example Sites==&lt;br /&gt;
&amp;lt;!-- If you have a website that demonstrates these techniques, place it here! --&amp;gt;&lt;br /&gt;
* [http://www.nintendo.com/3ds/internetbrowser/bookmarks Nintendo 3DS Bookmarks] - This is the first bookmark pre-installed in the browser.&lt;br /&gt;
* [http://3ds.andysmith.co.uk/jFox.html jFox] (Short URL: http://bit.ly/iB7FqW)&lt;br /&gt;
* [http://ditto3d.com/3ds Ditto3D] (Short URL: http://bit.ly/oVreWA)&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=FIRM&amp;diff=19825</id>
		<title>FIRM</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=FIRM&amp;diff=19825"/>
		<updated>2017-04-10T22:41:27Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* NATIVE_FIRM */ 11.4&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the file format for the [[Title list#00040138 - System Firmware|3DS&#039; Firmware]], it contains up to four &#039;sections&#039; of data comprising the ARM9 and ARM11 kernels, and some fundamental processes. The firmware sections are not encrypted. In a nutshell, a FIRM contains all the data required to set up the ARM9 and ARM11 kernels, and basic operating functionality.&lt;br /&gt;
&lt;br /&gt;
The ARM9 section contains the ARM9 kernel (and loader) and the Process9 NCCH (which is the only process run in user mode on the ARM9). The ARM11 sections contain the ARM11 kernel (and loader), and various ARM11 process NCCHs. For NATIVE_FIRM/SAFE_MODE_FIRM these ARM11 processes are sm, fs, pm, loader, and pxi. Normally the 4th section is not used. The code loaded from FIRM is constantly running on the system until another FIRM is launched. The ARM11 kernel is hard-coded to always decompress the ExeFS .code of embedded ARM11 NCCHs without checking the exheader compression bit.&lt;br /&gt;
&lt;br /&gt;
== FIRM 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;
|  0x000&lt;br /&gt;
|  4&lt;br /&gt;
|  Magic &#039;FIRM&#039;&lt;br /&gt;
|-&lt;br /&gt;
|  0x004&lt;br /&gt;
|  4&lt;br /&gt;
|  Boot priority (highest value = max prio), this is normally zero.&lt;br /&gt;
|-&lt;br /&gt;
|  0x008&lt;br /&gt;
|  4&lt;br /&gt;
|  ARM11 Entrypoint&lt;br /&gt;
|-&lt;br /&gt;
|  0x00C&lt;br /&gt;
|  4&lt;br /&gt;
|  ARM9 Entrypoint&lt;br /&gt;
|-&lt;br /&gt;
|  0x010&lt;br /&gt;
|  0x030&lt;br /&gt;
|  Reserved&lt;br /&gt;
|-&lt;br /&gt;
|  0x040&lt;br /&gt;
|  0x0C0 (0x030*4)&lt;br /&gt;
|  Firmware Section Headers&lt;br /&gt;
|-&lt;br /&gt;
|  0x100&lt;br /&gt;
|  0x100&lt;br /&gt;
|  RSA-2048 signature of the FIRM header&#039;s SHA-256 hash. The signature is checked when bootrom/Process9 are doing FIRM-launch (with the public key being hardcoded in each). The signature is not checked when installing FIRM to the NAND firm0/firm1 partitions.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firmware Section Headers ==&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;
|  0x000&lt;br /&gt;
|  4&lt;br /&gt;
|  Byte offset&lt;br /&gt;
|-&lt;br /&gt;
|  0x004&lt;br /&gt;
|  4&lt;br /&gt;
|  Physical address where the section is loaded to.&lt;br /&gt;
|-&lt;br /&gt;
|  0x008&lt;br /&gt;
|  4&lt;br /&gt;
|  Byte-size.  While loading FIRM this is the field used to determine whether the section exists or not, by checking for value 0x0.&lt;br /&gt;
|-&lt;br /&gt;
|  0x00C&lt;br /&gt;
|  4&lt;br /&gt;
|  Copy-method (0 = NDMA, 1 = XDMA, 2 = CPU mem-copy), Process9 ignores this field. Boot9 doesn&#039;t immediately throw an error when this isn&#039;t 0..2. In that case it will jump over section-data-loading which then results in the hash verification with the below hash being done with the hash already stored in the SHA hardware.&lt;br /&gt;
|-&lt;br /&gt;
|  0x010&lt;br /&gt;
|  0x020&lt;br /&gt;
|  SHA-256 Hash of Firmware Section&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== [[New_3DS]] FIRM ==&lt;br /&gt;
For New3DS firmwares (NATIVE_FIRM, TWL_FIRM, ..), the ARM9 FIRM binary has an additional layer of crypto. At the end of each ARM9 binary, there&#039;s a plaintext loader. The format of the FIRM header is identical to regular 3DS FIRM(the RSA modulo is the same as regular 3DS too).&lt;br /&gt;
&lt;br /&gt;
Before checking [[CONFIG_Registers|CFG_SYSPROT9]] the loader main() does the following:&lt;br /&gt;
* On [[9.5.0-22|9.5.0-X]]: executes a nop instruction with r0=0 and r1=&amp;lt;address of arm9binhdr+0x50&amp;gt;.&lt;br /&gt;
* Clears bit6 in [[AES_Registers|REG_AESKEYCNT]].&lt;br /&gt;
&lt;br /&gt;
If [[CONFIG_Registers#CFG_SYSPROT9|CFG_SYSPROT9]] bit 1 is clear (which means the OTP area is unlocked and so it knows that this is a hard reboot), it does the following things:&lt;br /&gt;
* Clears 0x200-bytes on the stack, then reads [[Flash_Filesystem|NAND]] sector 0x96(NAND image offset 0x12C00), with size 0x200-bytes into that stack buffer.&lt;br /&gt;
* Checks [[CONFIG_Registers#CFG_SYSPROT9|CFG_SYSPROT9]] bit 1 again, if it&#039;s set then it executes a panic function(set r0-r2=0, execute nop instruction, then execute instruction &amp;quot;bkpt 0x99&amp;quot;).&lt;br /&gt;
* Hashes data from the OTP region [[IO_Registers|0x10012000-0x10012090]] using SHA256 via the [[SHA_Registers|SHA]] hardware.&lt;br /&gt;
* Clears bit6 in [[AES_Registers|REG_AESKEYCNT]]. Initializes AES keyslot 0x11 keyX, keyY to the lower and higher portion of the above hash, respectively. Due to the above hashed data, the keyX+keyY here are console-unique.&lt;br /&gt;
* Decrypts the first 0x10-byte block in the above read NAND sector with keyslot 0x11 using AES-ECB. [[9.6.0-24|9.6.0-X]]: Then it decrypts the 0x10-bytes at offset 0x10 in the sector with keyslot 0x11.&lt;br /&gt;
* Then the normalkey, keyX, and keyY, for keyslot 0x11 are cleared to zero. Runs the TWL key-init/etc code which was originally in the ARM9-kernel, then writes 0x2 to [[CONFIG_Registers|CFG_SYSPROT9]] to disable the OTP area.&lt;br /&gt;
* Then it uses the above decrypted block from sector+0 to set the normalkey for keyslot 0x11. Decrypts arm9_bin_buf+0 using keyslot 0x11 with AES-ECB, and initialises keyX for keyslot 0x15 with it.&lt;br /&gt;
* [[9.6.0-24|9.6.0-X]]: Then it uses the above decrypted block from sector+0 to set the normalkey for keyslot 0x11. Decrypts a 0x10-byte block from arm9loader .(ro)data using keyslot 0x11 with AES-ECB, and initializes keyX for keyslot 0x18 with it(same block as previous versions).&lt;br /&gt;
* [[9.6.0-24|9.6.0-X]]: Starting with this version keyslot 0x16 keyX init was moved here, see below for details on this. The code for this is same as  [[9.5.0-22|9.5.0-X]], except the decrypted normalkey from sector+0x10 is used for keyslot 0x11 instead.&lt;br /&gt;
* Initialises KeyX for keyslots 0x18..0x1F(0x19..0x1F with [[9.6.0-24|9.6.0-X]]) with the output of decrypting a 0x10-byte block with AES-ECB using keyslot 0x11. This block was changed to a new one separate from keyslot 0x18, starting with [[9.6.0-24|9.6.0-X]]. The last byte in this 0x10-byte input block is increased by 0x01 after initializing each keyslot. Before doing the crypto each time, the loader sets the normal-key for keyslot 0x11 to the plaintext normalkey from sector+0(+0x10 with [[9.6.0-24|9.6.0-X]]). These are New3DS-specific keys.&lt;br /&gt;
* [[9.5.0-22|9.5.0-X]](moved to above with [[9.6.0-24|9.6.0-X]]): Sets the normal-key for keyslot 0x11 to the same one already decrypted on the stack. Decrypts the 0x10-byte block at arm9binhdr+0x60 with AES-ECB using keyslot 0x11, then sets the keyX for keyslot 0x16 to the output data.&lt;br /&gt;
* [[9.5.0-22|9.5.0-X]]: The normalkey, keyX, and keyY, for keyslot 0x11 are then cleared to zero.&lt;br /&gt;
&lt;br /&gt;
When [[CONFIG_Registers#CFG_SYSPROT9|CFG_SYSPROT9]] bit 1 is set(which means this happens only when this loader runs again for firm-launch), the normalkey, keyX, and keyY, for keyslot 0x11 are cleared to zero.&lt;br /&gt;
&lt;br /&gt;
It sets KeyY for keyslot 0x15(0x16 with [[9.5.0-22|9.5.0-X]]) to arm9_bin_buf+16, the CTR to arm9_bin_buf+32 (both are unique for every version). It then proceeds to decrypt the binary with AES-CTR. When done, it sets the normal-key for the keyslot used for binary decryption to zeros. It then decrypts arm9_bin_buf+64 using an hardcoded keyY for keyslot 0x15([[9.5.0-22|9.5.0-X]]/[[9.6.0-24|9.6.0-X]] also uses keyslot 0x15), sets the normal-key for this keyslot to zeros again, then makes sure the output block is all zeroes. If it is, it does some cleanup then it jumps to the entrypoint for the decrypted binary. Otherwise it will clear the keyX, keyY, and normal-key for each of the keyslots initialized by this loader (on [[9.6.0-24|9.6.0-X]]+, on older versions this was bugged and cleared keys 0x00..0x07 instead of 0x18..0x1F), do cleanup(same cleanup as when the decrypted block is all-zero) then just loop forever.&lt;br /&gt;
&lt;br /&gt;
Thus, the ARM9 binary has the following 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;
|  0x000&lt;br /&gt;
|  16&lt;br /&gt;
|  Encrypted KeyX (same for all FIRM&#039;s)&lt;br /&gt;
|-&lt;br /&gt;
|  0x010&lt;br /&gt;
|  16&lt;br /&gt;
|  KeyY&lt;br /&gt;
|-&lt;br /&gt;
|  0x020&lt;br /&gt;
|  16&lt;br /&gt;
|  CTR&lt;br /&gt;
|-&lt;br /&gt;
|  0x030&lt;br /&gt;
|  8&lt;br /&gt;
|  Size of encrypted binary, as ASCII text?&lt;br /&gt;
|-&lt;br /&gt;
|  0x038&lt;br /&gt;
|  8&lt;br /&gt;
|  ?&lt;br /&gt;
|-&lt;br /&gt;
|  0x040&lt;br /&gt;
|  16&lt;br /&gt;
|  Control block&lt;br /&gt;
|-&lt;br /&gt;
|  0x050&lt;br /&gt;
|  16&lt;br /&gt;
|  Added with [[9.5.0-22|9.5.0-X]]. Only used for hardware debugging: a nop instruction is executed with r0=0 and r1=&amp;lt;address of this data&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|  0x060&lt;br /&gt;
|  16&lt;br /&gt;
|  Added with [[9.5.0-22|9.5.0-X]]. Encrypted keyX for keyslot 0x16.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Originally the padding after the header before offset 0x800(start of actual ARM9-binary) was 0xFF bytes, with [[9.5.0-22|9.5.0-X]] this was changed to 0x0.&lt;br /&gt;
&lt;br /&gt;
For the New3DS NATIVE_FIRM arm9-section header, the only difference between the [[8.1.0-0_New3DS]] version and the [[9.0.0-20]] version is that the keyY, CTR, and the block at 0x30 in the header were updated.&lt;br /&gt;
&lt;br /&gt;
===New3DS ARM9 binary loader versions===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  FIRM system version(s)&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| [[8.1.0-0_New3DS]] - [[9.3.0-21|9.3.0-X]]&lt;br /&gt;
| Initial version.&lt;br /&gt;
|-&lt;br /&gt;
| [[9.5.0-22|9.5.0-X]]&lt;br /&gt;
| Added keyX initialization for keyslot 0x16(see above), and added code for clearing keyslot 0x11 immediately after the code finishes using keyslot 0x11. The keyslot used for arm9bin decryption was changed from 0x15 to 0x16. Added code for clearing keyslot 0x16 when control-block decryption fails. Added code for using arm9bin_hdr+0x50 with a nop instruction, at the very beginning of the main arm9-loader function. Added two new 0x10-blocks to the arm9bin-hdr.&lt;br /&gt;
|-&lt;br /&gt;
| [[9.6.0-24|9.6.0-X]] - [[11.3.0-36|11.3.0-X]]&lt;br /&gt;
| See above and [[9.6.0-24|here]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===New3DS ARM9 kernel===&lt;br /&gt;
The only actual code-difference for the Old3DS/New3DS ARM9-kernels&#039; crt0, besides TWL AES / [[IO_Registers|0x10012000]] related code, is that the New3DS ARM9-kernel writes 0x1 to [[CONFIG_Registers|REG_EXTMEMCNT9]] in the crt0.&lt;br /&gt;
&lt;br /&gt;
===New3DS Process9===&lt;br /&gt;
The following is all of the differences for Old3DS/New3DS Process9 with [[9.3.0-21|9.3.0-X]]:&lt;br /&gt;
* The FIRM-launch code called at the end of the New3DS proc9 main() has different mem-range checks.&lt;br /&gt;
* In the New3DS proc9, the v6.0/v7.0 keyinit function at the very beginning(before the original code) had additional code added for setting [[Flash_Filesystem|CTRNAND]] [[AES_Registers|keyslot]] 0x5, with keydata from .data. After setting the keyY, the keyY in .data is cleared.&lt;br /&gt;
* In New3DS proc9, the functions for getting the gamecard crypto keyslots / NCCH keyslot can return New3DS keyslots when New3DS flags(NCSD/NCCH) are set.&lt;br /&gt;
* The code/data for the binary near the end of arm9mem is slightly different, because of memory-region sizes.&lt;br /&gt;
* The only difference in .data(besides the above code binary) is that the New3DS proc9 has an additional 0x10-byte block for the keyslot 0x5 keyY, see above.&lt;br /&gt;
&lt;br /&gt;
== Variations ==&lt;br /&gt;
There exists different official firmwares for the 3DS: The default one (NATIVE_FIRM) is used to run all 3DS content and boots by default, while backwards compatibility is handled by TWL_FIRM and AGB_FIRM. There furthermore is a rescue mode provided by SAFE_MODE_FIRM.&lt;br /&gt;
&lt;br /&gt;
=== NATIVE_FIRM ===&lt;br /&gt;
NATIVE_FIRM is the FIRM which is installed to the [[Flash_Filesystem|NAND]] firm partitions, which is loaded by bootrom.&lt;br /&gt;
&lt;br /&gt;
Version history:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!  System version&lt;br /&gt;
!  old 3DS title version&lt;br /&gt;
!  old 3DS hex title contentID&lt;br /&gt;
!  Kernel/FIRM version (old 3DS/new 3DS)&lt;br /&gt;
|-&lt;br /&gt;
| [[Factory_Setup|Factory]] FIRM (titleID 00040001-00000002)&lt;br /&gt;
| v0&lt;br /&gt;
| 00&lt;br /&gt;
| 2.3-0&lt;br /&gt;
|-&lt;br /&gt;
| Pre-1.0. Referenced in the v1.0 Home Menu NCCH plain-region.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2.23-X&lt;br /&gt;
|-&lt;br /&gt;
| [[1.0.0-0|1.0.0]]&lt;br /&gt;
| v432&lt;br /&gt;
| 00&lt;br /&gt;
| 2.27-0&lt;br /&gt;
|-&lt;br /&gt;
| [[1.1.0-1|1.1.0]]&lt;br /&gt;
| v1472&lt;br /&gt;
| 02&lt;br /&gt;
| 2.28-0&lt;br /&gt;
|-&lt;br /&gt;
| [[2.0.0-2|2.0.0]]&lt;br /&gt;
| v2516&lt;br /&gt;
| 09&lt;br /&gt;
| 2.29-7&lt;br /&gt;
|-&lt;br /&gt;
| [[2.1.0-3|2.1.0]]&lt;br /&gt;
| v3553&lt;br /&gt;
| 0B&lt;br /&gt;
| 2.30-18&lt;br /&gt;
|-&lt;br /&gt;
| [[2.2.0-X|2.2.0]]&lt;br /&gt;
| v4595&lt;br /&gt;
| 0F&lt;br /&gt;
| 2.31-40&lt;br /&gt;
|-&lt;br /&gt;
| [[3.0.0-5|3.0.0]]&lt;br /&gt;
| v5647&lt;br /&gt;
| 18&lt;br /&gt;
| 2.32-15&lt;br /&gt;
|-&lt;br /&gt;
| [[4.0.0-7|4.0.0]]&lt;br /&gt;
| v6677&lt;br /&gt;
| 1D&lt;br /&gt;
| 2.33-4&lt;br /&gt;
|-&lt;br /&gt;
| [[4.1.0-8|4.1.0]]&lt;br /&gt;
| v7712&lt;br /&gt;
| 1F&lt;br /&gt;
| 2.34-0&lt;br /&gt;
|-&lt;br /&gt;
| [[5.0.0-11|5.0.0]]&lt;br /&gt;
| v8758&lt;br /&gt;
| 25&lt;br /&gt;
| 2.35-6&lt;br /&gt;
|-&lt;br /&gt;
| [[5.1.0-11|5.1.0]]&lt;br /&gt;
| v9792&lt;br /&gt;
| 26&lt;br /&gt;
| 2.36-0&lt;br /&gt;
|-&lt;br /&gt;
| [[6.0.0-11|6.0.0]]&lt;br /&gt;
| v10833&lt;br /&gt;
| 29&lt;br /&gt;
| 2.37-0&lt;br /&gt;
|-&lt;br /&gt;
| [[6.1.0-11|6.1.0]]&lt;br /&gt;
| v11872&lt;br /&gt;
| 2A&lt;br /&gt;
| 2.38-0&lt;br /&gt;
|-&lt;br /&gt;
| [[7.0.0-13|7.0.0]]&lt;br /&gt;
| v12916&lt;br /&gt;
| 2E&lt;br /&gt;
| 2.39-4&lt;br /&gt;
|-&lt;br /&gt;
| [[7.2.0-17|7.2.0]]&lt;br /&gt;
| v13956&lt;br /&gt;
| 30&lt;br /&gt;
| 2.40-0&lt;br /&gt;
|-&lt;br /&gt;
| [[8.0.0-18|8.0.0]]&lt;br /&gt;
| v15047&lt;br /&gt;
| 37&lt;br /&gt;
| 2.44-6&lt;br /&gt;
|-&lt;br /&gt;
| [[8.1.0-0_New3DS]]&lt;br /&gt;
|N/A&lt;br /&gt;
|N/A&lt;br /&gt;
| 2.45-5&lt;br /&gt;
|-&lt;br /&gt;
| [[9.0.0-20|9.0.0]]&lt;br /&gt;
| v17120&lt;br /&gt;
| 38&lt;br /&gt;
| 2.46-0&lt;br /&gt;
|-&lt;br /&gt;
| [[9.3.0-21|9.3.0]]&lt;br /&gt;
| v18182&lt;br /&gt;
| 3F&lt;br /&gt;
| 2.48-3&lt;br /&gt;
|-&lt;br /&gt;
| [[9.5.0-22|9.5.0]]&lt;br /&gt;
| v19216&lt;br /&gt;
| 40&lt;br /&gt;
| 2.49-0&lt;br /&gt;
|-&lt;br /&gt;
| [[9.6.0-24|9.6.0]]&lt;br /&gt;
| v20262&lt;br /&gt;
| 49&lt;br /&gt;
| 2.50-1&lt;br /&gt;
|-&lt;br /&gt;
| [[10.0.0-27|10.0.0]]&lt;br /&gt;
| v21288&lt;br /&gt;
| 4B&lt;br /&gt;
| 2.50-7&lt;br /&gt;
|-&lt;br /&gt;
| [[10.2.0-28|10.2.0]]&lt;br /&gt;
| v22313&lt;br /&gt;
| 4C&lt;br /&gt;
| 2.50-9&lt;br /&gt;
|-&lt;br /&gt;
| [[10.4.0-29|10.4.0]]&lt;br /&gt;
| v23341&lt;br /&gt;
| 50&lt;br /&gt;
| 2.50-11&lt;br /&gt;
|-&lt;br /&gt;
| [[11.0.0-33|11.0.0]]&lt;br /&gt;
| v24368&lt;br /&gt;
| 52&lt;br /&gt;
| 2.51-0&lt;br /&gt;
|-&lt;br /&gt;
| [[11.1.0-34|11.1.0]]&lt;br /&gt;
| v25396&lt;br /&gt;
| 56&lt;br /&gt;
| 2.51-2&lt;br /&gt;
|-&lt;br /&gt;
| [[11.2.0-35|11.2.0]]&lt;br /&gt;
| v26432&lt;br /&gt;
| 58&lt;br /&gt;
| 2.52-0&lt;br /&gt;
|-&lt;br /&gt;
| [[11.3.0-36|11.3.0]]&lt;br /&gt;
| v27476&lt;br /&gt;
| 5C&lt;br /&gt;
| 2.53-0&lt;br /&gt;
|-&lt;br /&gt;
| [[11.4.0-37|11.4.0]]&lt;br /&gt;
| v28512&lt;br /&gt;
| 5E&lt;br /&gt;
| 2.54-0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The above kernel/FIRM versions are in the format: &amp;lt;KERNEL_VERSIONMAJOR&amp;gt;.&amp;lt;KERNEL_VERSIONMINOR&amp;gt;-&amp;lt;KERNEL_VERSIONREVISION&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SAFE_MODE_FIRM ===&lt;br /&gt;
SAFE_MODE is used for running the [[System_Settings#System_Updater|System Updater]]. SAFE_MODE_FIRM and NATIVE_FIRM for the initial versions are exactly the same, except for the system core version fields.&lt;br /&gt;
&lt;br /&gt;
=== TWL_FIRM ===&lt;br /&gt;
TWL_FIRM handles DS(i) backwards compatibility.&lt;br /&gt;
&lt;br /&gt;
The 3DS-mode ARM9 core seems to switch into DSi-mode(for running DSi-mode ARM9 code) by writing to a [[PDN]] register(this changes the memory layout to DSi-mode / etc, therefore this register poke *must* be executed from ITCM). This is the final 3DS-mode register poke before the ARM9 switches into DSi-mode. DS(i)-mode ARM7 code is run on the internal [[ARM7]] core, which is started up during TWL_FIRM boot. Trying to read from the exception-vector region(address 0x0) under this DSi-mode ARM7 seems to only return 0x00/0xFF data. Also note that this DSi-mode ARM7 runs code(stored in TWL_FIRM) which pokes some DSi-mode registers that on the DSi were used for disabling access to the DSi bootROMs, however these registers do not affect the 3DS DSi-mode ARM9/ARM7 &amp;quot;bootrom&amp;quot; region(exceptionvector region + 0x8000) at all.&lt;br /&gt;
&lt;br /&gt;
For shutting down the system, TWL_FIRM writes u8 value 8 to [[I2C]] MCU register 0x20. For returning to 3DS-mode, TWL_FIRM writes value 4 to that MCU register to trigger a hardware system reboot.&lt;br /&gt;
&lt;br /&gt;
The TWL_FIRM ARM11-process includes a TWL bootloader, see [http://dsibrew.org/wiki/Bootloader here] and [[Memory_layout#Detailed_TWL_FIRM_ARM11_Memory|here]] for details.&lt;br /&gt;
&lt;br /&gt;
TWL_FIRM verifies all TWL RSA padding with the following. This is different from the DSi &amp;quot;BIOS&amp;quot; code.&lt;br /&gt;
* The first byte must be 0x0.&lt;br /&gt;
* The second byte must be 0x1 or 0x2.&lt;br /&gt;
* Executes a while(&amp;lt;value of byte at current pos in RSA message&amp;gt;). When the second_byte in the message is 0x1, the byte at curpos must be 0xFF(otherwise the non-zero value of the byte at curpos doesn&#039;t matter). This loop must find a zero byte before offset 0x7F in the message otherwise an error is returned.&lt;br /&gt;
* Returns an address for msg_curpos+1.&lt;br /&gt;
totalhashdatasize = rsasig_bytesize - above position in the message for the hashdata. The actual &amp;quot;totalhashdatasize&amp;quot; in the RSA message must be &amp;lt;= &amp;lt;expected hashdata_size&amp;gt;(0x74 for bootloader). The TWL_FIRM code copies the RSA &amp;quot;hashdata&amp;quot; to the output buffer, using the actual size of the RSA &amp;quot;hashdata&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== AGB_FIRM ===&lt;br /&gt;
AGB_FIRM handles running GBA VC titles. The ARM9 FIRM section for TWL_FIRM and AGB_FIRM are exactly the same (for TWL_FIRM and AGB_FIRM versions which were updated with the same system-update).&lt;br /&gt;
&lt;br /&gt;
== FIRM Launch Parameters ==&lt;br /&gt;
The FIRM-launch parameters structure is located at FCRAM+0, size 0x1000-bytes. The ARM11-kernel copies this structure elsewhere, then clears the 0x1000-bytes at FCRAM+0. It will not handle an existing structure at FCRAM+0 if [[CONFIG Registers#CFG_BOOTENV|CFG_BOOTENV]] is zero. The ARM9 kernel [[Configuration_Memory#0x1FF80016|writes some values]] about the boot environment to AXI WRAM during init to enable this.&lt;br /&gt;
&lt;br /&gt;
Note: it seems NATIVE_FIRM ARM11-kernel didn&#039;t parse this during boot until [[3.0.0-5|3.0.0-X]]?&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;
| 0x300&lt;br /&gt;
| 0x100&lt;br /&gt;
| &#039;TLNC&#039; block created by TWL applications, handled by NS for backwards-compatibility purposes. See [[NS#Auto-boot|here]] for more info.&lt;br /&gt;
|-&lt;br /&gt;
| 0x400&lt;br /&gt;
| 0x4&lt;br /&gt;
| Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x410&lt;br /&gt;
| 0xC&lt;br /&gt;
| This is used for overriding the FIRM_* fields in [[Configuration_Memory]], when the flag listed below is set, in the following order(basically just data-copy from here to 0x1FF80060): &amp;quot;FIRM_?&amp;quot;, FIRM_VERSIONREVISION, FIRM_VERSIONMINOR, FIRM_VERSIONMAJOR, FIRM_SYSCOREVER, and FIRM_CTRSDKVERSION.&lt;br /&gt;
|-&lt;br /&gt;
| 0x438&lt;br /&gt;
| 0x4&lt;br /&gt;
| The kernel checks this field for value 0xFFFF, if it matches the kernel uses the rest of these parameter fields, otherwise FIRM-launch parameters fields are ignored by the kernel.&lt;br /&gt;
|-&lt;br /&gt;
| 0x43C&lt;br /&gt;
| 0x4&lt;br /&gt;
| CRC32, this is calculated starting at FIRM-params offset 0x400, with size 0x140(with this field cleared to zero during calculation). When invalid the kernel clears the entire buffer used for storing the FIRM-params, therefore no actual FIRM-params are handled after that.&lt;br /&gt;
|-&lt;br /&gt;
| 0x440&lt;br /&gt;
| 0x10&lt;br /&gt;
| Titleinfo [[Filesystem_services#ProgramInfo|Program Info]], used by NS during NS startup, to launch the specified title when the below flag is set.&lt;br /&gt;
|-&lt;br /&gt;
| 0x450&lt;br /&gt;
| 0x10&lt;br /&gt;
| Titleinfo [[Filesystem_services#ProgramInfo|Program Info]]. This might be used for returning to the specified title, once the above launched title terminates?&lt;br /&gt;
|-&lt;br /&gt;
| 0x460&lt;br /&gt;
| 0x4&lt;br /&gt;
| Bit0: 0 = titleinfo structure isn&#039;t set, 1 = titleinfo structure is set.&lt;br /&gt;
|-&lt;br /&gt;
| 0x480&lt;br /&gt;
| 0x20&lt;br /&gt;
| This can be set via buf1 for [[APT:SendDeliverArg]]/[[APT:StartApplication]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A0&lt;br /&gt;
| 0x10&lt;br /&gt;
| This can be set by [[NSS:SetWirelessRebootInfo]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B0&lt;br /&gt;
| 0x14&lt;br /&gt;
| SHA1-HMAC of the banner for TWL/NTR titles. This can be set by [[NSS:SetTWLBannerHMAC]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x500&lt;br /&gt;
| 0x40&lt;br /&gt;
| This is used by [[APT:LoadSysMenuArg]] and [[APT:StoreSysMenuArg]].&lt;br /&gt;
|-&lt;br /&gt;
| 0xD70&lt;br /&gt;
| 0x290&lt;br /&gt;
| [[Config Savegame|Config]] data struct for LGY FIRM.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Flags from offset 0x400:&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;
| This can be used for overriding the default FCRAM [[Memory_layout|memory-regions]] allocation sizes(APPLICATION, SYSTEM, and BASE). The values for this is the same as [[Configuration_Memory#APPMEMTYPE|Configmem-APPMEMTYPE]]. Values 0-1 are handled the same way by the kernel. However for NS, 0=titleinfo structure for launching a title isn&#039;t set, while non-zero=titleinfo structure is set.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x3&lt;br /&gt;
| Setting bit0 here enables overriding the FIRM_* fields in [[Configuration_Memory]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Config Savegame|Config]] struct for booting LGY FIRMs from offset 0xD70:&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;
| Config block 0x30000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x1&lt;br /&gt;
| Config block 0x70001.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x1&lt;br /&gt;
| System language (Config block 0xA0002).&lt;br /&gt;
|-&lt;br /&gt;
| 0x3&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[Cfg:SecureInfoGetRegion|Region from SecureInfo]] (&amp;quot;pseudo-block&amp;quot; 0x140000 in LGY FIRM).&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0xF&lt;br /&gt;
| [[CfgS:SecureInfoGetSerialNo|Serial number from SecureInfo]] (&amp;quot;pseudo-block&amp;quot; 0x140001 in LGY FIRM).&lt;br /&gt;
|-&lt;br /&gt;
| 0x13&lt;br /&gt;
| 0x1&lt;br /&gt;
| Config block 0x100002.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x10&lt;br /&gt;
| Config block 0x100003.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x2&lt;br /&gt;
| Config block 0x100000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x1&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x27&lt;br /&gt;
| 0x1&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x94&lt;br /&gt;
| Config block 0x100001.&lt;br /&gt;
|-&lt;br /&gt;
| 0xBC&lt;br /&gt;
| 0x2&lt;br /&gt;
| Config block 0x50000.&lt;br /&gt;
|-&lt;br /&gt;
| 0xBE&lt;br /&gt;
| 0x2&lt;br /&gt;
| Config block 0x50001.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0&lt;br /&gt;
| 0x38&lt;br /&gt;
| Config block 0x50002.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF8&lt;br /&gt;
| 0x20&lt;br /&gt;
| Config block 0x50004.&lt;br /&gt;
|-&lt;br /&gt;
| 0x118&lt;br /&gt;
| 0x134&lt;br /&gt;
| Config block 0x20000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24C&lt;br /&gt;
| 0x10&lt;br /&gt;
| Config block 0x40000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25C&lt;br /&gt;
| 0x1C&lt;br /&gt;
| Config block 0x40001.&lt;br /&gt;
|-&lt;br /&gt;
| 0x278&lt;br /&gt;
| 0x4&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x27C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x280&lt;br /&gt;
| 0x8&lt;br /&gt;
| Config block 0x30001.&lt;br /&gt;
|-&lt;br /&gt;
| 0x288&lt;br /&gt;
| 0x2&lt;br /&gt;
| CRC16 over the above fields from offset 0x0, size 0x288. If not valid, LGY FIRM uses dummy data from .(ro)data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28A&lt;br /&gt;
| 0x2&lt;br /&gt;
| If non-zero, the size (below) is hardcoded (currently) to value 0x288, otherwise the size field below is used.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Value 0x288 (size used for verifying the CRC16).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Cleared to zero&amp;quot; fields above are not read at all by LGY FIRM.&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=FIRM&amp;diff=19494</id>
		<title>FIRM</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=FIRM&amp;diff=19494"/>
		<updated>2017-02-07T07:07:38Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* NATIVE_FIRM */ 11.3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the file format for the [[Title list#00040138 - System Firmware|3DS&#039; Firmware]], it contains up to four &#039;sections&#039; of data comprising the ARM9 and ARM11 kernels, and some fundamental processes. The firmware sections are not encrypted. In a nutshell, a FIRM contains all the data required to set up the ARM9 and ARM11 kernels, and basic operating functionality.&lt;br /&gt;
&lt;br /&gt;
The ARM9 section contains the ARM9 kernel (and loader) and the Process9 NCCH (which is the only process run in user mode on the ARM9). The ARM11 sections contain the ARM11 kernel (and loader), and various ARM11 process NCCHs. For NATIVE_FIRM/SAFE_MODE_FIRM these ARM11 processes are sm, fs, pm, loader, and pxi. Normally the 4th section is not used. The code loaded from FIRM is constantly running on the system until another FIRM is launched. The ARM11 kernel is hard-coded to always decompress the ExeFS .code of embedded ARM11 NCCHs without checking the exheader compression bit.&lt;br /&gt;
&lt;br /&gt;
== FIRM 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;
|  0x000&lt;br /&gt;
|  4&lt;br /&gt;
|  Magic &#039;FIRM&#039;&lt;br /&gt;
|-&lt;br /&gt;
|  0x004&lt;br /&gt;
|  4&lt;br /&gt;
|  Boot priority (highest value = max prio), this is normally zero.&lt;br /&gt;
|-&lt;br /&gt;
|  0x008&lt;br /&gt;
|  4&lt;br /&gt;
|  ARM11 Entrypoint&lt;br /&gt;
|-&lt;br /&gt;
|  0x00C&lt;br /&gt;
|  4&lt;br /&gt;
|  ARM9 Entrypoint&lt;br /&gt;
|-&lt;br /&gt;
|  0x010&lt;br /&gt;
|  0x030&lt;br /&gt;
|  Reserved&lt;br /&gt;
|-&lt;br /&gt;
|  0x040&lt;br /&gt;
|  0x0C0 (0x030*4)&lt;br /&gt;
|  Firmware Section Headers&lt;br /&gt;
|-&lt;br /&gt;
|  0x100&lt;br /&gt;
|  0x100&lt;br /&gt;
|  RSA-2048 signature of the FIRM header&#039;s SHA-256 hash. The signature is checked when bootrom/Process9 are doing FIRM-launch (with the public key being hardcoded in each). The signature is not checked when installing FIRM to the NAND firm0/firm1 partitions.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firmware Section Headers ==&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;
|  0x000&lt;br /&gt;
|  4&lt;br /&gt;
|  Byte offset&lt;br /&gt;
|-&lt;br /&gt;
|  0x004&lt;br /&gt;
|  4&lt;br /&gt;
|  Physical address where the section is loaded to.&lt;br /&gt;
|-&lt;br /&gt;
|  0x008&lt;br /&gt;
|  4&lt;br /&gt;
|  Byte-size.  While loading FIRM this is the field used to determine whether the section exists or not, by checking for value 0x0.&lt;br /&gt;
|-&lt;br /&gt;
|  0x00C&lt;br /&gt;
|  4&lt;br /&gt;
|  Copy-method (0 = NDMA, 1 = XDMA, 2 = CPU mem-copy), Process9 ignores this field. Boot9 doesn&#039;t immediately throw an error when this isn&#039;t 0..2. In that case it will jump over section-data-loading which then results in the hash verification with the below hash being done with the hash already stored in the SHA hardware.&lt;br /&gt;
|-&lt;br /&gt;
|  0x010&lt;br /&gt;
|  0x020&lt;br /&gt;
|  SHA-256 Hash of Firmware Section&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== [[New_3DS]] FIRM ==&lt;br /&gt;
For New3DS firmwares (NATIVE_FIRM, TWL_FIRM, ..), the ARM9 FIRM binary has an additional layer of crypto. At the end of each ARM9 binary, there&#039;s a plaintext loader. The format of the FIRM header is identical to regular 3DS FIRM(the RSA modulo is the same as regular 3DS too).&lt;br /&gt;
&lt;br /&gt;
Before checking [[CONFIG_Registers|CFG_SYSPROT9]] the loader main() does the following:&lt;br /&gt;
* On [[9.5.0-22|9.5.0-X]]: executes a nop instruction with r0=0 and r1=&amp;lt;address of arm9binhdr+0x50&amp;gt;.&lt;br /&gt;
* Clears bit6 in [[AES_Registers|REG_AESKEYCNT]].&lt;br /&gt;
&lt;br /&gt;
If [[CONFIG_Registers#CFG_SYSPROT9|CFG_SYSPROT9]] bit 1 is clear (which means the OTP area is unlocked and so it knows that this is a hard reboot), it does the following things:&lt;br /&gt;
* Clears 0x200-bytes on the stack, then reads [[Flash_Filesystem|NAND]] sector 0x96(NAND image offset 0x12C00), with size 0x200-bytes into that stack buffer.&lt;br /&gt;
* Checks [[CONFIG_Registers#CFG_SYSPROT9|CFG_SYSPROT9]] bit 1 again, if it&#039;s set then it executes a panic function(set r0-r2=0, execute nop instruction, then execute instruction &amp;quot;bkpt 0x99&amp;quot;).&lt;br /&gt;
* Hashes data from the OTP region [[IO_Registers|0x10012000-0x10012090]] using SHA256 via the [[SHA_Registers|SHA]] hardware.&lt;br /&gt;
* Clears bit6 in [[AES_Registers|REG_AESKEYCNT]]. Initializes AES keyslot 0x11 keyX, keyY to the lower and higher portion of the above hash, respectively. Due to the above hashed data, the keyX+keyY here are console-unique.&lt;br /&gt;
* Decrypts the first 0x10-byte block in the above read NAND sector with keyslot 0x11 using AES-ECB. [[9.6.0-24|9.6.0-X]]: Then it decrypts the 0x10-bytes at offset 0x10 in the sector with keyslot 0x11.&lt;br /&gt;
* Then the normalkey, keyX, and keyY, for keyslot 0x11 are cleared to zero. Runs the TWL key-init/etc code which was originally in the ARM9-kernel, then writes 0x2 to [[CONFIG_Registers|CFG_SYSPROT9]] to disable the OTP area.&lt;br /&gt;
* Then it uses the above decrypted block from sector+0 to set the normalkey for keyslot 0x11. Decrypts arm9_bin_buf+0 using keyslot 0x11 with AES-ECB, and initialises keyX for keyslot 0x15 with it.&lt;br /&gt;
* [[9.6.0-24|9.6.0-X]]: Then it uses the above decrypted block from sector+0 to set the normalkey for keyslot 0x11. Decrypts a 0x10-byte block from arm9loader .(ro)data using keyslot 0x11 with AES-ECB, and initializes keyX for keyslot 0x18 with it(same block as previous versions).&lt;br /&gt;
* [[9.6.0-24|9.6.0-X]]: Starting with this version keyslot 0x16 keyX init was moved here, see below for details on this. The code for this is same as  [[9.5.0-22|9.5.0-X]], except the decrypted normalkey from sector+0x10 is used for keyslot 0x11 instead.&lt;br /&gt;
* Initialises KeyX for keyslots 0x18..0x1F(0x19..0x1F with [[9.6.0-24|9.6.0-X]]) with the output of decrypting a 0x10-byte block with AES-ECB using keyslot 0x11. This block was changed to a new one separate from keyslot 0x18, starting with [[9.6.0-24|9.6.0-X]]. The last byte in this 0x10-byte input block is increased by 0x01 after initializing each keyslot. Before doing the crypto each time, the loader sets the normal-key for keyslot 0x11 to the plaintext normalkey from sector+0(+0x10 with [[9.6.0-24|9.6.0-X]]). These are New3DS-specific keys.&lt;br /&gt;
* [[9.5.0-22|9.5.0-X]](moved to above with [[9.6.0-24|9.6.0-X]]): Sets the normal-key for keyslot 0x11 to the same one already decrypted on the stack. Decrypts the 0x10-byte block at arm9binhdr+0x60 with AES-ECB using keyslot 0x11, then sets the keyX for keyslot 0x16 to the output data.&lt;br /&gt;
* [[9.5.0-22|9.5.0-X]]: The normalkey, keyX, and keyY, for keyslot 0x11 are then cleared to zero.&lt;br /&gt;
&lt;br /&gt;
When [[CONFIG_Registers#CFG_SYSPROT9|CFG_SYSPROT9]] bit 1 is set(which means this happens only when this loader runs again for firm-launch), the normalkey, keyX, and keyY, for keyslot 0x11 are cleared to zero.&lt;br /&gt;
&lt;br /&gt;
It sets KeyY for keyslot 0x15(0x16 with [[9.5.0-22|9.5.0-X]]) to arm9_bin_buf+16, the CTR to arm9_bin_buf+32 (both are unique for every version). It then proceeds to decrypt the binary with AES-CTR. When done, it sets the normal-key for the keyslot used for binary decryption to zeros. It then decrypts arm9_bin_buf+64 using an hardcoded keyY for keyslot 0x15([[9.5.0-22|9.5.0-X]]/[[9.6.0-24|9.6.0-X]] also uses keyslot 0x15), sets the normal-key for this keyslot to zeros again, then makes sure the output block is all zeroes. If it is, it does some cleanup then it jumps to the entrypoint for the decrypted binary. Otherwise it will clear the keyX, keyY, and normal-key for each of the keyslots initialized by this loader (on [[9.6.0-24|9.6.0-X]]+, on older versions this was bugged and cleared keys 0x00..0x07 instead of 0x18..0x1F), do cleanup(same cleanup as when the decrypted block is all-zero) then just loop forever.&lt;br /&gt;
&lt;br /&gt;
Thus, the ARM9 binary has the following 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;
|  0x000&lt;br /&gt;
|  16&lt;br /&gt;
|  Encrypted KeyX (same for all FIRM&#039;s)&lt;br /&gt;
|-&lt;br /&gt;
|  0x010&lt;br /&gt;
|  16&lt;br /&gt;
|  KeyY&lt;br /&gt;
|-&lt;br /&gt;
|  0x020&lt;br /&gt;
|  16&lt;br /&gt;
|  CTR&lt;br /&gt;
|-&lt;br /&gt;
|  0x030&lt;br /&gt;
|  8&lt;br /&gt;
|  Size of encrypted binary, as ASCII text?&lt;br /&gt;
|-&lt;br /&gt;
|  0x038&lt;br /&gt;
|  8&lt;br /&gt;
|  ?&lt;br /&gt;
|-&lt;br /&gt;
|  0x040&lt;br /&gt;
|  16&lt;br /&gt;
|  Control block&lt;br /&gt;
|-&lt;br /&gt;
|  0x050&lt;br /&gt;
|  16&lt;br /&gt;
|  Added with [[9.5.0-22|9.5.0-X]]. Only used for hardware debugging: a nop instruction is executed with r0=0 and r1=&amp;lt;address of this data&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|  0x060&lt;br /&gt;
|  16&lt;br /&gt;
|  Added with [[9.5.0-22|9.5.0-X]]. Encrypted keyX for keyslot 0x16.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Originally the padding after the header before offset 0x800(start of actual ARM9-binary) was 0xFF bytes, with [[9.5.0-22|9.5.0-X]] this was changed to 0x0.&lt;br /&gt;
&lt;br /&gt;
For the New3DS NATIVE_FIRM arm9-section header, the only difference between the [[8.1.0-0_New3DS]] version and the [[9.0.0-20]] version is that the keyY, CTR, and the block at 0x30 in the header were updated.&lt;br /&gt;
&lt;br /&gt;
===New3DS ARM9 binary loader versions===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  FIRM system version(s)&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| [[8.1.0-0_New3DS]] - [[9.3.0-21|9.3.0-X]]&lt;br /&gt;
| Initial version.&lt;br /&gt;
|-&lt;br /&gt;
| [[9.5.0-22|9.5.0-X]]&lt;br /&gt;
| Added keyX initialization for keyslot 0x16(see above), and added code for clearing keyslot 0x11 immediately after the code finishes using keyslot 0x11. The keyslot used for arm9bin decryption was changed from 0x15 to 0x16. Added code for clearing keyslot 0x16 when control-block decryption fails. Added code for using arm9bin_hdr+0x50 with a nop instruction, at the very beginning of the main arm9-loader function. Added two new 0x10-blocks to the arm9bin-hdr.&lt;br /&gt;
|-&lt;br /&gt;
| [[9.6.0-24|9.6.0-X]] - [[11.2.0-35|11.2.0-X]]&lt;br /&gt;
| See above and [[9.6.0-24|here]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===New3DS ARM9 kernel===&lt;br /&gt;
The only actual code-difference for the Old3DS/New3DS ARM9-kernels&#039; crt0, besides TWL AES / [[IO_Registers|0x10012000]] related code, is that the New3DS ARM9-kernel writes 0x1 to [[CONFIG_Registers|REG_EXTMEMCNT9]] in the crt0.&lt;br /&gt;
&lt;br /&gt;
===New3DS Process9===&lt;br /&gt;
The following is all of the differences for Old3DS/New3DS Process9 with [[9.3.0-21|9.3.0-X]]:&lt;br /&gt;
* The FIRM-launch code called at the end of the New3DS proc9 main() has different mem-range checks.&lt;br /&gt;
* In the New3DS proc9, the v6.0/v7.0 keyinit function at the very beginning(before the original code) had additional code added for setting [[Flash_Filesystem|CTRNAND]] [[AES_Registers|keyslot]] 0x5, with keydata from .data. After setting the keyY, the keyY in .data is cleared.&lt;br /&gt;
* In New3DS proc9, the functions for getting the gamecard crypto keyslots / NCCH keyslot can return New3DS keyslots when New3DS flags(NCSD/NCCH) are set.&lt;br /&gt;
* The code/data for the binary near the end of arm9mem is slightly different, because of memory-region sizes.&lt;br /&gt;
* The only difference in .data(besides the above code binary) is that the New3DS proc9 has an additional 0x10-byte block for the keyslot 0x5 keyY, see above.&lt;br /&gt;
&lt;br /&gt;
== Variations ==&lt;br /&gt;
There exists different official firmwares for the 3DS: The default one (NATIVE_FIRM) is used to run all 3DS content and boots by default, while backwards compatibility is handled by TWL_FIRM and AGB_FIRM. There furthermore is a rescue mode provided by SAFE_MODE_FIRM.&lt;br /&gt;
&lt;br /&gt;
=== NATIVE_FIRM ===&lt;br /&gt;
NATIVE_FIRM is the FIRM which is installed to the [[Flash_Filesystem|NAND]] firm partitions, which is loaded by bootrom.&lt;br /&gt;
&lt;br /&gt;
Version history:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!  System version&lt;br /&gt;
!  old 3DS title version&lt;br /&gt;
!  old 3DS hex title contentID&lt;br /&gt;
!  Kernel/FIRM version (old 3DS/new 3DS)&lt;br /&gt;
|-&lt;br /&gt;
| [[Factory_Setup|Factory]] FIRM (titleID 00040001-00000002)&lt;br /&gt;
| v0&lt;br /&gt;
| 00&lt;br /&gt;
| 2.3-0&lt;br /&gt;
|-&lt;br /&gt;
| Pre-1.0. Referenced in the v1.0 Home Menu NCCH plain-region.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2.23-X&lt;br /&gt;
|-&lt;br /&gt;
| [[1.0.0-0|1.0.0]]&lt;br /&gt;
| v432&lt;br /&gt;
| 00&lt;br /&gt;
| 2.27-0&lt;br /&gt;
|-&lt;br /&gt;
| [[1.1.0-1|1.1.0]]&lt;br /&gt;
| v1472&lt;br /&gt;
| 02&lt;br /&gt;
| 2.28-0&lt;br /&gt;
|-&lt;br /&gt;
| [[2.0.0-2|2.0.0]]&lt;br /&gt;
| v2516&lt;br /&gt;
| 09&lt;br /&gt;
| 2.29-7&lt;br /&gt;
|-&lt;br /&gt;
| [[2.1.0-3|2.1.0]]&lt;br /&gt;
| v3553&lt;br /&gt;
| 0B&lt;br /&gt;
| 2.30-18&lt;br /&gt;
|-&lt;br /&gt;
| [[2.2.0-X|2.2.0]]&lt;br /&gt;
| v4595&lt;br /&gt;
| 0F&lt;br /&gt;
| 2.31-40&lt;br /&gt;
|-&lt;br /&gt;
| [[3.0.0-5|3.0.0]]&lt;br /&gt;
| v5647&lt;br /&gt;
| 18&lt;br /&gt;
| 2.32-15&lt;br /&gt;
|-&lt;br /&gt;
| [[4.0.0-7|4.0.0]]&lt;br /&gt;
| v6677&lt;br /&gt;
| 1D&lt;br /&gt;
| 2.33-4&lt;br /&gt;
|-&lt;br /&gt;
| [[4.1.0-8|4.1.0]]&lt;br /&gt;
| v7712&lt;br /&gt;
| 1F&lt;br /&gt;
| 2.34-0&lt;br /&gt;
|-&lt;br /&gt;
| [[5.0.0-11|5.0.0]]&lt;br /&gt;
| v8758&lt;br /&gt;
| 25&lt;br /&gt;
| 2.35-6&lt;br /&gt;
|-&lt;br /&gt;
| [[5.1.0-11|5.1.0]]&lt;br /&gt;
| v9792&lt;br /&gt;
| 26&lt;br /&gt;
| 2.36-0&lt;br /&gt;
|-&lt;br /&gt;
| [[6.0.0-11|6.0.0]]&lt;br /&gt;
| v10833&lt;br /&gt;
| 29&lt;br /&gt;
| 2.37-0&lt;br /&gt;
|-&lt;br /&gt;
| [[6.1.0-11|6.1.0]]&lt;br /&gt;
| v11872&lt;br /&gt;
| 2A&lt;br /&gt;
| 2.38-0&lt;br /&gt;
|-&lt;br /&gt;
| [[7.0.0-13|7.0.0]]&lt;br /&gt;
| v12916&lt;br /&gt;
| 2E&lt;br /&gt;
| 2.39-4&lt;br /&gt;
|-&lt;br /&gt;
| [[7.2.0-17|7.2.0]]&lt;br /&gt;
| v13956&lt;br /&gt;
| 30&lt;br /&gt;
| 2.40-0&lt;br /&gt;
|-&lt;br /&gt;
| [[8.0.0-18|8.0.0]]&lt;br /&gt;
| v15047&lt;br /&gt;
| 37&lt;br /&gt;
| 2.44-6&lt;br /&gt;
|-&lt;br /&gt;
| [[8.1.0-0_New3DS]]&lt;br /&gt;
|N/A&lt;br /&gt;
|N/A&lt;br /&gt;
| 2.45-5&lt;br /&gt;
|-&lt;br /&gt;
| [[9.0.0-20|9.0.0]]&lt;br /&gt;
| v17120&lt;br /&gt;
| 38&lt;br /&gt;
| 2.46-0&lt;br /&gt;
|-&lt;br /&gt;
| [[9.3.0-21|9.3.0]]&lt;br /&gt;
| v18182&lt;br /&gt;
| 3F&lt;br /&gt;
| 2.48-3&lt;br /&gt;
|-&lt;br /&gt;
| [[9.5.0-22|9.5.0]]&lt;br /&gt;
| v19216&lt;br /&gt;
| 40&lt;br /&gt;
| 2.49-0&lt;br /&gt;
|-&lt;br /&gt;
| [[9.6.0-24|9.6.0]]&lt;br /&gt;
| v20262&lt;br /&gt;
| 49&lt;br /&gt;
| 2.50-1&lt;br /&gt;
|-&lt;br /&gt;
| [[10.0.0-27|10.0.0]]&lt;br /&gt;
| v21288&lt;br /&gt;
| 4B&lt;br /&gt;
| 2.50-7&lt;br /&gt;
|-&lt;br /&gt;
| [[10.2.0-28|10.2.0]]&lt;br /&gt;
| v22313&lt;br /&gt;
| 4C&lt;br /&gt;
| 2.50-9&lt;br /&gt;
|-&lt;br /&gt;
| [[10.4.0-29|10.4.0]]&lt;br /&gt;
| v23341&lt;br /&gt;
| 50&lt;br /&gt;
| 2.50-11&lt;br /&gt;
|-&lt;br /&gt;
| [[11.0.0-33|11.0.0]]&lt;br /&gt;
| v24368&lt;br /&gt;
| 52&lt;br /&gt;
| 2.51-0&lt;br /&gt;
|-&lt;br /&gt;
| [[11.1.0-34|11.1.0]]&lt;br /&gt;
| v25396&lt;br /&gt;
| 56&lt;br /&gt;
| 2.51-2&lt;br /&gt;
|-&lt;br /&gt;
| [[11.2.0-35|11.2.0]]&lt;br /&gt;
| v26432&lt;br /&gt;
| 58&lt;br /&gt;
| 2.52-0&lt;br /&gt;
|-&lt;br /&gt;
| [[11.3.0-36|11.3.0]]&lt;br /&gt;
| v27476&lt;br /&gt;
| 5C&lt;br /&gt;
| 2.53-0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The above kernel/FIRM versions are in the format: &amp;lt;KERNEL_VERSIONMAJOR&amp;gt;.&amp;lt;KERNEL_VERSIONMINOR&amp;gt;-&amp;lt;KERNEL_VERSIONREVISION&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SAFE_MODE_FIRM ===&lt;br /&gt;
SAFE_MODE is used for running the [[System_Settings#System_Updater|System Updater]]. SAFE_MODE_FIRM and NATIVE_FIRM for the initial versions are exactly the same, except for the system core version fields.&lt;br /&gt;
&lt;br /&gt;
=== TWL_FIRM ===&lt;br /&gt;
TWL_FIRM handles DS(i) backwards compatibility.&lt;br /&gt;
&lt;br /&gt;
The 3DS-mode ARM9 core seems to switch into DSi-mode(for running DSi-mode ARM9 code) by writing to a [[PDN]] register(this changes the memory layout to DSi-mode / etc, therefore this register poke *must* be executed from ITCM). This is the final 3DS-mode register poke before the ARM9 switches into DSi-mode. DS(i)-mode ARM7 code is run on the internal [[ARM7]] core, which is started up during TWL_FIRM boot. Trying to read from the exception-vector region(address 0x0) under this DSi-mode ARM7 seems to only return 0x00/0xFF data. Also note that this DSi-mode ARM7 runs code(stored in TWL_FIRM) which pokes some DSi-mode registers that on the DSi were used for disabling access to the DSi bootROMs, however these registers do not affect the 3DS DSi-mode ARM9/ARM7 &amp;quot;bootrom&amp;quot; region(exceptionvector region + 0x8000) at all.&lt;br /&gt;
&lt;br /&gt;
For shutting down the system, TWL_FIRM writes u8 value 8 to [[I2C]] MCU register 0x20. For returning to 3DS-mode, TWL_FIRM writes value 4 to that MCU register to trigger a hardware system reboot.&lt;br /&gt;
&lt;br /&gt;
The TWL_FIRM ARM11-process includes a TWL bootloader, see [http://dsibrew.org/wiki/Bootloader here] and [[Memory_layout#Detailed_TWL_FIRM_ARM11_Memory|here]] for details.&lt;br /&gt;
&lt;br /&gt;
TWL_FIRM verifies all TWL RSA padding with the following. This is different from the DSi &amp;quot;BIOS&amp;quot; code.&lt;br /&gt;
* The first byte must be 0x0.&lt;br /&gt;
* The second byte must be 0x1 or 0x2.&lt;br /&gt;
* Executes a while(&amp;lt;value of byte at current pos in RSA message&amp;gt;). When the second_byte in the message is 0x1, the byte at curpos must be 0xFF(otherwise the non-zero value of the byte at curpos doesn&#039;t matter). This loop must find a zero byte before offset 0x7F in the message otherwise an error is returned.&lt;br /&gt;
* Returns an address for msg_curpos+1.&lt;br /&gt;
totalhashdatasize = rsasig_bytesize - above position in the message for the hashdata. The actual &amp;quot;totalhashdatasize&amp;quot; in the RSA message must be &amp;lt;= &amp;lt;expected hashdata_size&amp;gt;(0x74 for bootloader). The TWL_FIRM code copies the RSA &amp;quot;hashdata&amp;quot; to the output buffer, using the actual size of the RSA &amp;quot;hashdata&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== AGB_FIRM ===&lt;br /&gt;
AGB_FIRM handles running GBA VC titles. The ARM9 FIRM section for TWL_FIRM and AGB_FIRM are exactly the same (for TWL_FIRM and AGB_FIRM versions which were updated with the same system-update).&lt;br /&gt;
&lt;br /&gt;
== FIRM Launch Parameters ==&lt;br /&gt;
The FIRM-launch parameters structure is located at FCRAM+0, size 0x1000-bytes. The ARM11-kernel copies this structure elsewhere, then clears the 0x1000-bytes at FCRAM+0. It will not handle an existing structure at FCRAM+0 if [[CONFIG Registers#CFG_BOOTENV|CFG_BOOTENV]] is zero. The ARM9 kernel [[Configuration_Memory#0x1FF80016|writes some values]] about the boot environment to AXI WRAM during init to enable this.&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;
| 0x300&lt;br /&gt;
| 0x100&lt;br /&gt;
| &#039;TLNC&#039; block created by TWL applications, handled by NS for backwards-compatibility purposes. See [[NS#Auto-boot|here]] for more info.&lt;br /&gt;
|-&lt;br /&gt;
| 0x400&lt;br /&gt;
| 0x4&lt;br /&gt;
| Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x410&lt;br /&gt;
| 0xC&lt;br /&gt;
| This is used for overriding the FIRM_* fields in [[Configuration_Memory]], when the flag listed below is set, in the following order(basically just data-copy from here to 0x1FF80060): &amp;quot;FIRM_?&amp;quot;, FIRM_VERSIONREVISION, FIRM_VERSIONMINOR, FIRM_VERSIONMAJOR, FIRM_SYSCOREVER, and FIRM_CTRSDKVERSION.&lt;br /&gt;
|-&lt;br /&gt;
| 0x438&lt;br /&gt;
| 0x4&lt;br /&gt;
| The kernel checks this field for value 0xFFFF, if it matches the kernel uses the rest of these parameter fields, otherwise FIRM-launch parameters fields are ignored by the kernel.&lt;br /&gt;
|-&lt;br /&gt;
| 0x43C&lt;br /&gt;
| 0x4&lt;br /&gt;
| CRC32, this is calculated starting at FIRM-params offset 0x400, with size 0x140(with this field cleared to zero during calculation). When invalid the kernel clears the entire buffer used for storing the FIRM-params, therefore no actual FIRM-params are handled after that.&lt;br /&gt;
|-&lt;br /&gt;
| 0x440&lt;br /&gt;
| 0x10&lt;br /&gt;
| Titleinfo [[Filesystem_services#ProgramInfo|Program Info]], used by NS during NS startup, to launch the specified title when the below flag is set.&lt;br /&gt;
|-&lt;br /&gt;
| 0x450&lt;br /&gt;
| 0x10&lt;br /&gt;
| Titleinfo [[Filesystem_services#ProgramInfo|Program Info]]. This might be used for returning to the specified title, once the above launched title terminates?&lt;br /&gt;
|-&lt;br /&gt;
| 0x460&lt;br /&gt;
| 0x4&lt;br /&gt;
| Bit0: 0 = titleinfo structure isn&#039;t set, 1 = titleinfo structure is set.&lt;br /&gt;
|-&lt;br /&gt;
| 0x480&lt;br /&gt;
| 0x20&lt;br /&gt;
| This can be set via buf1 for [[APT:SendDeliverArg]]/[[APT:StartApplication]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A0&lt;br /&gt;
| 0x10&lt;br /&gt;
| This can be set by [[NSS:SetWirelessRebootInfo]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B0&lt;br /&gt;
| 0x14&lt;br /&gt;
| SHA1-HMAC of the banner for TWL/NTR titles. This can be set by [[NSS:SetTWLBannerHMAC]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x500&lt;br /&gt;
| 0x40&lt;br /&gt;
| This is used by [[APT:LoadSysMenuArg]] and [[APT:StoreSysMenuArg]].&lt;br /&gt;
|-&lt;br /&gt;
| 0xD70&lt;br /&gt;
| 0x290&lt;br /&gt;
| [[Config Savegame|Config]] data struct for LGY FIRM.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Flags from offset 0x400:&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;
| This can be used for overriding the default FCRAM [[Memory_layout|memory-regions]] allocation sizes(APPLICATION, SYSTEM, and BASE). The values for this is the same as [[Configuration_Memory#APPMEMTYPE|Configmem-APPMEMTYPE]]. Values 0-1 are handled the same way by the kernel. However for NS, 0=titleinfo structure for launching a title isn&#039;t set, while non-zero=titleinfo structure is set.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x3&lt;br /&gt;
| Setting bit0 here enables overriding the FIRM_* fields in [[Configuration_Memory]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Config Savegame|Config]] struct for booting LGY FIRMs from offset 0xD70:&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;
| Config block 0x30000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x1&lt;br /&gt;
| Config block 0x70001.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x1&lt;br /&gt;
| System language (Config block 0xA0002).&lt;br /&gt;
|-&lt;br /&gt;
| 0x3&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[Cfg:SecureInfoGetRegion|Region from SecureInfo]] (&amp;quot;pseudo-block&amp;quot; 0x140000 in LGY FIRM).&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0xF&lt;br /&gt;
| [[CfgS:SecureInfoGetSerialNo|Serial number from SecureInfo]] (&amp;quot;pseudo-block&amp;quot; 0x140001 in LGY FIRM).&lt;br /&gt;
|-&lt;br /&gt;
| 0x13&lt;br /&gt;
| 0x1&lt;br /&gt;
| Config block 0x100002.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x10&lt;br /&gt;
| Config block 0x100003.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x2&lt;br /&gt;
| Config block 0x100000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x1&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x27&lt;br /&gt;
| 0x1&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x94&lt;br /&gt;
| Config block 0x100001.&lt;br /&gt;
|-&lt;br /&gt;
| 0xBC&lt;br /&gt;
| 0x2&lt;br /&gt;
| Config block 0x50000.&lt;br /&gt;
|-&lt;br /&gt;
| 0xBE&lt;br /&gt;
| 0x2&lt;br /&gt;
| Config block 0x50001.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0&lt;br /&gt;
| 0x38&lt;br /&gt;
| Config block 0x50002.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF8&lt;br /&gt;
| 0x20&lt;br /&gt;
| Config block 0x50004.&lt;br /&gt;
|-&lt;br /&gt;
| 0x118&lt;br /&gt;
| 0x134&lt;br /&gt;
| Config block 0x20000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24C&lt;br /&gt;
| 0x10&lt;br /&gt;
| Config block 0x40000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25C&lt;br /&gt;
| 0x1C&lt;br /&gt;
| Config block 0x40001.&lt;br /&gt;
|-&lt;br /&gt;
| 0x278&lt;br /&gt;
| 0x4&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x27C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x280&lt;br /&gt;
| 0x8&lt;br /&gt;
| Config block 0x30001.&lt;br /&gt;
|-&lt;br /&gt;
| 0x288&lt;br /&gt;
| 0x2&lt;br /&gt;
| CRC16 over the above fields from offset 0x0, size 0x288. If not valid, LGY FIRM uses dummy data from .(ro)data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28A&lt;br /&gt;
| 0x2&lt;br /&gt;
| If non-zero, the size (below) is hardcoded (currently) to value 0x288, otherwise the size field below is used.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Value 0x288 (size used for verifying the CRC16).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Cleared to zero&amp;quot; fields above are not read at all by LGY FIRM.&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Homebrew_Exploits&amp;diff=19072</id>
		<title>Homebrew Exploits</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Homebrew_Exploits&amp;diff=19072"/>
		<updated>2016-12-29T18:09:04Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: soundhax does work on 9.0 JPN too (tested on 9.2J)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Payload==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Works on latest fw&lt;br /&gt;
!  Name&lt;br /&gt;
!  Description&lt;br /&gt;
!  Supported firmwares&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: lightgreen&amp;quot; | Yes&lt;br /&gt;
| [https://smealum.github.io/3ds/ *hax payload]&lt;br /&gt;
| Booted by all of the below non-sysmodule exploits.&lt;br /&gt;
| From &#039;&#039;&#039;9.0.0-7&#039;&#039;&#039; up to and including &#039;&#039;&#039;11.2.0-35&#039;&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For the rest of this page, &amp;quot;Supported firmwares&amp;quot; refers to the exploit &#039;&#039;itself&#039;&#039;, not whether *hax payload supports it.&lt;br /&gt;
&lt;br /&gt;
==Standalone Homebrew Launcher Exploits==&lt;br /&gt;
The following homebrew exploits can be executed on a previously un-exploited system. &#039;&#039;Please&#039;&#039; see the above Payload section regarding what &amp;quot;Supported firmwares&amp;quot; indicates &#039;&#039;exactly&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Works on latest fw&lt;br /&gt;
!  Name&lt;br /&gt;
!  Supported firmwares&lt;br /&gt;
!  Requirements&lt;br /&gt;
!  Author&lt;br /&gt;
!  Install&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: salmon&amp;quot; | No&lt;br /&gt;
| [[ninjhax|Ninjhax 1.1b]]&lt;br /&gt;
| From &#039;&#039;&#039;4.0.0-7&#039;&#039;&#039; up to and including &#039;&#039;&#039;9.2.0-20&#039;&#039;&#039;.&lt;br /&gt;
| A cartridge or eShop version (JPN-only) of &amp;quot;Cubic Ninja&amp;quot;.&lt;br /&gt;
| smea&lt;br /&gt;
| [http://smealum.net/ninjhax/ Install]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: lightgreen&amp;quot; | Yes&lt;br /&gt;
| [[ninjhax|Ninjhax 2.x]]&lt;br /&gt;
| From &#039;&#039;&#039;9.0.0-7&#039;&#039;&#039; up to and including &#039;&#039;&#039;11.2.0-35&#039;&#039;&#039;.&lt;br /&gt;
|  A cartridge or eShop version (JPN-only, not available anymore for purchase) of &amp;quot;Cubic Ninja&amp;quot;.&lt;br /&gt;
| smea&lt;br /&gt;
| [https://smealum.github.io/ninjhax2/ Install]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: lightgreen&amp;quot; | Yes&lt;br /&gt;
| [http://plutooo.github.io/freakyhax/ freakyhax]&lt;br /&gt;
| From &#039;&#039;&#039;9.0.0-7&#039;&#039;&#039; up to and including &#039;&#039;&#039;11.2.0-35&#039;&#039;&#039;.&lt;br /&gt;
|  A cartridge or eShop version (USA/EUR/JAP, not available anymore for purchase) of &amp;quot;Freakyform Deluxe&amp;quot;.&lt;br /&gt;
| plutoo&lt;br /&gt;
| [http://plutooo.github.io/freakyhax/ Install]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: salmon&amp;quot; | No&lt;br /&gt;
| [http://plutooo.github.io/smilehax/ smilehax]&lt;br /&gt;
| From &#039;&#039;&#039;9.0.0-7&#039;&#039;&#039; up to and including &#039;&#039;&#039;11.0.0-33&#039;&#039;&#039;&lt;br /&gt;
| SmileBASIC (JPN all versions up to 3.32 excluded, USA 3.31 only)&lt;br /&gt;
| plutoo&lt;br /&gt;
| [http://plutooo.github.io/smilehax/ Install]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: salmon&amp;quot; | No&lt;br /&gt;
| [http://mrnbayoh.github.io/basicsploit/ BASICSploit]&lt;br /&gt;
| From &#039;&#039;&#039;9.0.0-7&#039;&#039;&#039; up to and including &#039;&#039;&#039;11.0.0-33&#039;&#039;&#039;&lt;br /&gt;
| SmileBASIC (USA all versions)&lt;br /&gt;
| MrNbaYoh&lt;br /&gt;
| [http://mrnbayoh.github.io/basicsploit/ Install]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: lightgreen&amp;quot; | Yes&lt;br /&gt;
| [[smashbroshax|smashbroshax]] (beaconhax)&lt;br /&gt;
| (New 3DS only) From &#039;&#039;&#039;9.0.0-X&#039;&#039;&#039; up to and including &#039;&#039;&#039;11.2.0-35&#039;&#039;&#039;.&lt;br /&gt;
| Super Smash Bros 3DS (full-game) and a way to broadcast raw wifi beacons. The demo (prior to the updated November 2015 [https://github.com/yellows8/3ds_smashbroshax version]) isn&#039;t usable with the *hax payloads. Game-version v1.1.3 fixed the vuln used with this, see the repo for a workaround for that.&lt;br /&gt;
| [[User:Yellows8|Yellows8]]&lt;br /&gt;
| [https://github.com/yellows8/3ds_smashbroshax Install]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: salmon&amp;quot; | No&lt;br /&gt;
| [[browserhax]]&lt;br /&gt;
| From &#039;&#039;&#039;9.0.0-2&#039;&#039;&#039; to &#039;&#039;&#039;11.0.0-33&#039;&#039;&#039;&lt;br /&gt;
Note that the browser-version-check bypass is only usable prior to [[10.7.0-32]].&lt;br /&gt;
| A USA, EUR, JPN, or KOR system.&lt;br /&gt;
| [[User:Yellows8|Yellows8]]&lt;br /&gt;
| [http://yls8.mtheall.com/3dsbrowserhax.php Install]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: lightgreen&amp;quot; | Yes&lt;br /&gt;
| [https://github.com/svanheulen/genhax genhax]&lt;br /&gt;
| (New 3DS only) From &#039;&#039;&#039;9.9.0-X&#039;&#039;&#039; up to and including &#039;&#039;&#039;11.2.0-X&#039;&#039;&#039;.&lt;br /&gt;
| A gamecard or eShop-install of Monster Hunter X (JPN only), and the DLC encryption key (see installer instructions).&lt;br /&gt;
| svanheulen&lt;br /&gt;
| [https://github.com/svanheulen/genhax_installer Install]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: lightgreen&amp;quot; | Yes&lt;br /&gt;
| [https://github.com/nedwill/soundhax soundhax]&lt;br /&gt;
| From &#039;&#039;&#039;9.0.0-7&#039;&#039;&#039; up to and including &#039;&#039;&#039;11.2.0-35&#039;&#039;&#039;.&lt;br /&gt;
| A USA, EUR or JPN system.&lt;br /&gt;
| nedwill&lt;br /&gt;
| [https://github.com/nedwill/soundhax/ Install]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that ninjhax 1.x is still not obsolete. Even though ninjhax 2.x can be run on 9.3+, this was made possible (amongst other things) by sacrificing the memory remapping exploit used in ninjhax 1.x (rohax). Therefore, things like JIT engines for emulators can only be supported on ninjhax 1.x. Furthermore, ninjhax 2.x does not run on system versions below 9.0.0-X, while ninjhax 1.x does.&lt;br /&gt;
&lt;br /&gt;
==Secondary Exploits==&lt;br /&gt;
Installation of these exploits requires a previously exploited system to install. After installation, they can be used on their own. &#039;&#039;Please&#039;&#039; see the above Payload section regarding what &amp;quot;Supported firmwares&amp;quot; indicates &#039;&#039;exactly&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!  Works on latest fw&lt;br /&gt;
!  Name&lt;br /&gt;
!  Supported firmwares&lt;br /&gt;
!  Requirements&lt;br /&gt;
!  Author&lt;br /&gt;
!  Install&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: salmon&amp;quot; | No&lt;br /&gt;
| [[ironhax]]&lt;br /&gt;
| From &#039;&#039;&#039;9.5.0-X&#039;&#039;&#039; up to and including &#039;&#039;&#039;10.3.0-X&#039;&#039;&#039;, for &#039;&#039;&#039;X&#039;&#039;&#039; up to and including 28.&lt;br /&gt;
| A copy of &amp;quot;Ironfall: Invasion&amp;quot; downloaded from eShop before August 11th, 2015. Note the updated version that was released on October 13th, 2015 is not supported.&lt;br /&gt;
| smea&lt;br /&gt;
| [http://smealum.github.io/3ds/ Install]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: lightgreen&amp;quot; | Yes&lt;br /&gt;
| [http://vegaroxas.github.io/ steelhax]&lt;br /&gt;
| From &#039;&#039;&#039;9.0.0-X&#039;&#039;&#039; up to and including &#039;&#039;&#039;11.2.0-X&#039;&#039;&#039;, for &#039;&#039;&#039;X&#039;&#039;&#039; up to and including 35.&lt;br /&gt;
| A copy of Steel Diver: Sub Wars&lt;br /&gt;
| Vegaroxas&lt;br /&gt;
| [https://github.com/VegaRoXas/vegaroxas.github.io/raw/master/files/steelhax-installer.zip Install]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: lightgreen&amp;quot; | Yes&lt;br /&gt;
| [https://github.com/yellows8/oot3dhax oot3dhax]&lt;br /&gt;
| From &#039;&#039;&#039;9.0.0-X&#039;&#039;&#039; up to and including &#039;&#039;&#039;11.2.0-X&#039;&#039;&#039;, for &#039;&#039;&#039;X&#039;&#039;&#039; up to and including 35.&lt;br /&gt;
| A gamecard or eShop-install of Legend of Zelda: Ocarina of Time 3D. Besides using the installer app, writing raw saveimages with a save dongle for example is another option. Before compression was introduced in the 2016-7-18 release, the size of the *hax payload meant the exploit can&#039;t coexist with regular saves on a physical version of the game.&lt;br /&gt;
| Yellows8 / smea et al.&lt;br /&gt;
| See [https://smealum.github.io/3ds/ here].&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: salmon&amp;quot; | No&lt;br /&gt;
| [[menuhax]]&lt;br /&gt;
| JPN/USA/EUR: From &#039;&#039;&#039;9.0.0-X&#039;&#039;&#039; up to and including &#039;&#039;&#039;11.0.0-X&#039;&#039;&#039;.&lt;br /&gt;
KOR: From &#039;&#039;&#039;9.6.0-X&#039;&#039;&#039; up to and including &#039;&#039;&#039;11.0.0-X&#039;&#039;&#039;.&lt;br /&gt;
| JPN/USA/EUR: Having created [[Home_Menu#Home_Menu_Theme_SD_ExtData|theme extdata]] through opening the official theme selector at least once.&lt;br /&gt;
| [[User:Yellows8|Yellows8]]&lt;br /&gt;
| [https://github.com/yellows8/3ds_homemenuhax/releases Download]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: lightgreen&amp;quot; | Yes&lt;br /&gt;
| [https://github.com/shinyquagsire23/supermysterychunkhax supermysterychunkhax]&lt;br /&gt;
| From &#039;&#039;&#039;9.9.0-X&#039;&#039;&#039; (USA/JPN) / &#039;&#039;&#039;10.2.0-X&#039;&#039;&#039; (EUR) up to and including &#039;&#039;&#039;11.1.0-X&#039;&#039;&#039;, for &#039;&#039;&#039;X&#039;&#039;&#039; up to and including 34.&lt;br /&gt;
| A gamecard or eShop-install of Pokémon Super Mystery Dungeon.&lt;br /&gt;
| Shiny Quagsire / SALT team&lt;br /&gt;
| [https://smd.salthax.org/ Install].&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: salmon&amp;quot; | No&lt;br /&gt;
| [https://github.com/shinyquagsire23/v_hax (v*)hax]&lt;br /&gt;
| From &#039;&#039;&#039;9.0.0-X&#039;&#039;&#039; up to and including &#039;&#039;&#039;11.0.0-X&#039;&#039;&#039;, for &#039;&#039;&#039;X&#039;&#039;&#039; up to and including 33.&lt;br /&gt;
Note that &#039;&#039;&#039;9.0.0-X&#039;&#039;&#039; is only required for the Homebrew Launcher - the game itself only requires &#039;&#039;&#039;2.1.0-X&#039;&#039;&#039; for primitive userland code execution.&lt;br /&gt;
| A copy of VVVVVV downloaded after March 2012 (v1). v1.1 patches out the overflow vulnerability used by (v*)hax.&lt;br /&gt;
| Shiny Quagsire / SALT team&lt;br /&gt;
| [https://vvvvvv.salthax.org/ Install].&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: lightgreen&amp;quot; | Yes&lt;br /&gt;
| [https://github.com/Dazzozo/humblehax humblehax]&lt;br /&gt;
| From &#039;&#039;&#039;9.0.0-X&#039;&#039;&#039; (USA/EUR) up to and including &#039;&#039;&#039;11.2.0-X&#039;&#039;&#039;, for &#039;&#039;&#039;X&#039;&#039;&#039; up to and including 35.&lt;br /&gt;
| An eShop-install of Citizens of Earth (either v1 or v2), featured in the Humble &amp;quot;Friends of Nintendo&amp;quot; Bundle.&lt;br /&gt;
| Dazzozo / SALT team&lt;br /&gt;
| [https://citizens.salthax.org/ Install].&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: salmon&amp;quot; | No&lt;br /&gt;
| [http://mrnbayoh.github.io/basehaxx/ basehaxx]&lt;br /&gt;
| From &#039;&#039;&#039;9.0.0-X&#039;&#039;&#039; up to and including &#039;&#039;&#039;11.1.0-X&#039;&#039;&#039;, for &#039;&#039;&#039;X&#039;&#039;&#039; up to and including 34.&lt;br /&gt;
| A gamecard or eShop-install of Pokémon Omega Ruby / Alpha Sapphire.&lt;br /&gt;
| MrNbaYoh&lt;br /&gt;
| [http://mrnbayoh.github.io/basehaxx/ install]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: lightgreen&amp;quot; | Yes&lt;br /&gt;
| [https://github.com/yellows8/stickerhax stickerhax]&lt;br /&gt;
| From &#039;&#039;&#039;9.0.0-X&#039;&#039;&#039; up to and including &#039;&#039;&#039;11.2.0-X&#039;&#039;&#039;.&lt;br /&gt;
| A gamecard or eShop-install of Paper Mario: Sticker Star.&lt;br /&gt;
| [[User:Yellows8|Yellows8]]&lt;br /&gt;
| [https://github.com/yellows8/stickerhax Here]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: lightgreen&amp;quot; | Yes&lt;br /&gt;
| [https://github.com/svanheulen/genhax genhax]&lt;br /&gt;
| (New 3DS only) From &#039;&#039;&#039;9.9.0-X&#039;&#039;&#039;(JPN) or &#039;&#039;&#039;10.3.0-X&#039;&#039;&#039;(EUR/USA) up to and including &#039;&#039;&#039;11.2.0-X&#039;&#039;&#039;.&lt;br /&gt;
| A gamecard or eShop-install of Monster Hunter Generations, and an internet connection during installation.&lt;br /&gt;
| svanheulen&lt;br /&gt;
| [https://github.com/svanheulen/genhax_installer Install]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: lightgreen&amp;quot; | Yes&lt;br /&gt;
| [https://github.com/MrNbaYoh/painthax painthax]&lt;br /&gt;
| From &#039;&#039;&#039;9.0.0-X&#039;&#039;&#039; up to and including &#039;&#039;&#039;11.2.0-X&#039;&#039;&#039;.&lt;br /&gt;
| An eShop-install of PixelPaint.&lt;br /&gt;
| MrNbaYoh&lt;br /&gt;
| [https://github.com/MrNbaYoh/painthax/releases/latest install]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Exploits without Homebrew Launcher (Not recommended)==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Warning:&#039;&#039;&#039;&amp;lt;/u&amp;gt; The following exploits can run code, but are missing a 3DSX launcher. They cannot launch any homebrew in the 3DSX format.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Works on latest fw&lt;br /&gt;
!  Name&lt;br /&gt;
!  Supported firmwares&lt;br /&gt;
!  Requirements&lt;br /&gt;
!  Author&lt;br /&gt;
!  Install&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: salmon&amp;quot; | No&lt;br /&gt;
| [[browserhax]] (Without the loader in the 3ds_browserhax_common repo)&lt;br /&gt;
| (Old3DS) From &#039;&#039;&#039;5.0.0-2&#039;&#039;&#039; to &#039;&#039;&#039;11.0.0-33&#039;&#039;&#039; (Pre-v5.0 is supported for some versions if you manually modify the source)&lt;br /&gt;
&lt;br /&gt;
(New3DS) From &#039;&#039;&#039;9.0.0-20&#039;&#039;&#039; to &#039;&#039;&#039;11.0.0-33&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that the browser-version-check bypass is only usable prior to [[10.7.0-32]].&lt;br /&gt;
| An USA, EUR, or JPN system.&lt;br /&gt;
| [[User:Yellows8|Yellows8]]&lt;br /&gt;
| [[browserhax|Install]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: salmon&amp;quot; | No&lt;br /&gt;
| Ninjhax (with specialized payloads)&lt;br /&gt;
| Up to &#039;&#039;&#039;9.2.0-20&#039;&#039;&#039;?&lt;br /&gt;
| &lt;br /&gt;
| smea + independent developers&lt;br /&gt;
| N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Previous Exploits==&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Warning:&#039;&#039;&#039;&amp;lt;/u&amp;gt; These exploits &#039;&#039;&#039;do not work&#039;&#039;&#039;. They are exploits which no longer function at all, regardless of software or firmware revision.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!  Works on latest fw&lt;br /&gt;
! Name&lt;br /&gt;
! Supported firmwares&lt;br /&gt;
! Requirements&lt;br /&gt;
! Author&lt;br /&gt;
! Install&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: salmon&amp;quot; | No&lt;br /&gt;
| [[tubehax|Tubehax]]&lt;br /&gt;
| None. &#039;&#039;&#039;Was&#039;&#039;&#039;: From &#039;&#039;&#039;9.0.0-X&#039;&#039;&#039; up to and including &#039;&#039;&#039;10.1.0-X&#039;&#039;&#039;, for &#039;&#039;&#039;X&#039;&#039;&#039; up to and including 27.&lt;br /&gt;
| The YouTube application and an Internet connection. As of October 15, 2015, this is no longer usable due to an update being released which fixes the vuln used by tubehax + app update being forced (see [[YouTube|here]]).&lt;br /&gt;
| smea&lt;br /&gt;
| [http://smealum.github.io/3ds/ Install]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Other Homebrew Loaders==&lt;br /&gt;
The [https://github.com/yellows8/hblauncher_loader hblauncher_loader] title can be used when running under modded-FIRM which allows running unsigned titles, to boot the *hax payloads.&lt;br /&gt;
&lt;br /&gt;
==Sysmodule Exploits==&lt;br /&gt;
This section is for system-module exploits, which can be run from the *hax payloads.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Works on latest fw&lt;br /&gt;
! Name&lt;br /&gt;
! Supported firmwares&lt;br /&gt;
! Requirements&lt;br /&gt;
! Author&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: lightgreen&amp;quot; | Yes, that&#039;s not the intended default use however.&lt;br /&gt;
| [https://github.com/yellows8/ctr-httpwn/releases ctr-httpwn]&lt;br /&gt;
| From &#039;&#039;&#039;9.6.0-X&#039;&#039;&#039; up to and including &#039;&#039;&#039;11.2.0-X&#039;&#039;&#039;.&lt;br /&gt;
| None&lt;br /&gt;
| [[User:Yellows8|Yellows8]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==WebKit vuln testing==&lt;br /&gt;
See [https://github.com/yellows8/3ds_browserhax_common/issues/28 here].&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Home_Menu&amp;diff=18503</id>
		<title>Home Menu</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Home_Menu&amp;diff=18503"/>
		<updated>2016-10-27T19:37:45Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* System Versions */ checked and CUPs don&amp;#039;t actually update 3DS camera (checked 10.2.0U card)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Home Menu&#039;&#039;&#039; is the heart of the Nintendo 3DS. From there one can start games, applications, and access various processes including the friends list. It is launched by [[NS]], and is always running in the background in 3DS-mode except when other programID-high 00040030 applications like Internet Browser, Friend-List, etc are running. Home Menu is still running while [[System Settings]] is running, however the System Settings application does not allow directly returning to home-menu. The system will normally re-launch Home Menu when the Home Menu process crashes/terminates. When this re-launch occurs while Home Menu is active, Home Menu displays an error message which says to manually reboot the system.&lt;br /&gt;
&lt;br /&gt;
== System Versions ==&lt;br /&gt;
Nintendo devised a system, whereby updates would be delivered via two channels: &lt;br /&gt;
*Card Updates (CUP) - The Nintendo 3DS is updated with data from an [[System Update CFA|update partition]] on retail gamecard title. &lt;br /&gt;
*Network Updates (NUP) - The Nintendo 3DS is updated by downloading data from Nintendo&#039;s [[Title list|CDN]].&lt;br /&gt;
&lt;br /&gt;
CUPs will only deliver updates to core features, such as the Home Menu, [[Download Play]] etc. CUPs will not deliver updates to Network features, such as [[System Transfer]], [[Internet Browser]], [[StreetPass Mii Plaza]] or [[EShop|eShop]].&lt;br /&gt;
&lt;br /&gt;
NUPs can deliver updates to core features as well as (updated) Network Features.&lt;br /&gt;
&lt;br /&gt;
As a result of deciding to make a distinction between what content could be updated and how, Nintendo split the system version displayed by [[System Settings]] into two parts: [[CVer]] (Console Version) and [[NVer]] (Network Update Version). Represented as: &lt;br /&gt;
 &amp;lt;CVer Major&amp;gt;.&amp;lt;CVer Minor&amp;gt;.&amp;lt;CVer Micro&amp;gt;-&amp;lt;NUP Version&amp;gt;&amp;lt;NUP Region&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Console Version represents the version of the collectively installed core features. And the NUP Version represents the version of the collectively installed network features.&lt;br /&gt;
&lt;br /&gt;
So if a 3DS&#039; System Firmware read &#039;&#039;&#039;2.1.0-2U&#039;&#039;&#039;, it would indicate a console version of &#039;&#039;&#039;2.1.0&#039;&#039;&#039; and a NUP version of &#039;&#039;&#039;2U&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
NOTES:&lt;br /&gt;
* CUPs can only update core content, so [[NVer]] is never updated with CUPs.&lt;br /&gt;
* NUPs will not update [[NVer]] if network features are not updated. (Best seen with the USA vs JPN/EUR 6.0.0 NUP)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CUPs are implemented by adding a [[System Update CFA]] to retail NCSD gamecard images. Nintendo generally creates CUPs after NUPs are released.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When updating the system from 4.5.0-6 to 4.5.0-10, the following titles are updated(in the order of title download+install): [[Health and Safety Information]], [[Nintendo 3DS Camera]], [[eShop]], [[System Transfer]], [[Internet Browser]], [[Title_list|0004009B00014102]], [[Title_list|0004009B00014202]], [[Title_list|0004009B00014302]], [[NVer]], and [[FIRM|AGB_FIRM]].&lt;br /&gt;
&lt;br /&gt;
=== System Versions List ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! System version &lt;br /&gt;
! Home Menu title version&lt;br /&gt;
! Release date &lt;br /&gt;
! Changelog &lt;br /&gt;
! System security [[3DS_System_Flaws|flaws]] fixed*&lt;br /&gt;
! Userland security [[3DS_Userland_Flaws|flaws]] fixed*&lt;br /&gt;
! 3DS-mode homebrew affected*&lt;br /&gt;
! CUP Released&lt;br /&gt;
! CDN Availability&lt;br /&gt;
! CDN Post Date&lt;br /&gt;
|-&lt;br /&gt;
| [[1.0.0-0|1.0.0-0]]&lt;br /&gt;
| 0&lt;br /&gt;
| February 26, 2011&lt;br /&gt;
| Shipped with 3DS on launch&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| Available&lt;br /&gt;
| February 18, 2011&lt;br /&gt;
|-&lt;br /&gt;
| [[1.1.0-1|1.1.0-1]] &lt;br /&gt;
| 0 &lt;br /&gt;
| February ?, 2011&lt;br /&gt;
| General bug fixes&lt;br /&gt;
Added 3D Video title to menu. (&amp;quot;For a Limited Time Only&amp;quot;)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| Available&lt;br /&gt;
| March 1, 2011&lt;br /&gt;
|-&lt;br /&gt;
| [[2.0.0-2|2.0.0-2]]&lt;br /&gt;
| 1029&lt;br /&gt;
| June 6/7, 2011&lt;br /&gt;
| [[eShop]] added, web browser available, [[System Transfer]] added. Full DSiWare data management available. [[Automatic_System_Update_Download|Automatic]] downloading for system updates added.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| June 6, 2011&lt;br /&gt;
|-&lt;br /&gt;
| [[2.1.0-3|2.1.0-3]]&lt;br /&gt;
| 2049&lt;br /&gt;
| June 15, 2011&lt;br /&gt;
| Fixes the Ridge Racer freeze.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| Available&lt;br /&gt;
| June 15, 2011&lt;br /&gt;
|-&lt;br /&gt;
| [[2.1.0-4|2.1.0-4]]&lt;br /&gt;
| Not updated&lt;br /&gt;
| July 25, 2011&lt;br /&gt;
| System stability improvements and other adjustments.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| July 25, 2011&lt;br /&gt;
|-&lt;br /&gt;
| [[2.2.0-X|2.2.0]]&lt;br /&gt;
| ?&lt;br /&gt;
| November 6, 2011&lt;br /&gt;
| CUP Only Release. Improved the arrangement of [[Friend List]]. Update from some game cards such as Super Mario 3D Land.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| Unavailable&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| [[3.0.0-5|3.0.0-5]]&lt;br /&gt;
| 4111&lt;br /&gt;
| December 7, 2011&lt;br /&gt;
| Added 3D video recording to the camera title, updated Mii Streetpass Plaza, [[System Transfer]] between 3DS systems available, improved eShop, home menu QR code scanning with QR codes containing URLs. [[Nintendo Zone]] is now always accessible, 3D video streaming support was added to NZone. This added support for running GBA VC titles via AGB_FIRM as well, support for GBA VC titles was also added to NATIVE_FIRM.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| Available&lt;br /&gt;
| December 7, 2011&lt;br /&gt;
|-&lt;br /&gt;
| [[3.0.0-6|3.0.0-6]]&lt;br /&gt;
| Not updated&lt;br /&gt;
| December 21, 2011&lt;br /&gt;
| Only StreetPass Mii Plaza and the [[NVer]] title were updated. From Nintendo&#039;s release notes: &amp;quot;System stability improvements and other adjustments&amp;quot;.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| December 21, 2011&lt;br /&gt;
|-&lt;br /&gt;
| [[3.1.0-6|3.1.0-6]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Unknown&lt;br /&gt;
| Unknown. Sighted preinstalled on some early European 3DS XLs.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| ?&lt;br /&gt;
| Unknown&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[4.0.0-7|4.0.0-7]]&lt;br /&gt;
| 5131&lt;br /&gt;
| April 24, 2012&lt;br /&gt;
| Add folders to Home Menu, game patching added, buy more expensive games than 1000 yen in JPN. System titles for CHN, TWN, and KOR became available.&lt;br /&gt;
| Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| Available&lt;br /&gt;
| April 24, 2012&lt;br /&gt;
|-&lt;br /&gt;
| [[4.1.0-8|4.1.0-8]]&lt;br /&gt;
| Not updated&lt;br /&gt;
| May 14, 2012&lt;br /&gt;
| From changelog: &amp;quot;improvements to overall system stability and other minor adjustments&amp;quot;. Once updated to [[4.1.0-8]], the parental-controls PIN is no longer required for future system updates.&lt;br /&gt;
| Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| Available&lt;br /&gt;
| May 14, 2012&lt;br /&gt;
|-&lt;br /&gt;
| [[4.2.0-9|4.2.0-9]]&lt;br /&gt;
| 6146&lt;br /&gt;
| June 26, 2012&lt;br /&gt;
| Improved eShop safety for entering credit-card info, and behind the scenes improvements. Stored CC info will be deleted by this updated eShop, and can be re-entered again.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| Available&lt;br /&gt;
| June 26, 2012&lt;br /&gt;
|-&lt;br /&gt;
| [[4.3.0-10|4.3.0-10]]&lt;br /&gt;
| Not updated&lt;br /&gt;
| July 24, 2012&lt;br /&gt;
| Updated eShop, bad word list and NZone hotspot list updated.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| Available&lt;br /&gt;
| July 24, 2012&lt;br /&gt;
|-&lt;br /&gt;
| [[4.4.0-10|4.4.0-10]]&lt;br /&gt;
| Not updated&lt;br /&gt;
| September 19, 2012&lt;br /&gt;
| NZone hotspot list updated and TWL_FIRM updated for blocking flash cards.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| Available&lt;br /&gt;
| September 19, 2012&lt;br /&gt;
|-&lt;br /&gt;
| [[4.4.0-10|4.4.0-10C]]&lt;br /&gt;
| Not updated&lt;br /&gt;
| October 17, 2012&lt;br /&gt;
| China-only, the *only* updated title was [[System Settings]]. This title was updated to a version already available in TWN/KOR.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| ?&lt;br /&gt;
| Available&lt;br /&gt;
| October 17, 2012&lt;br /&gt;
|-&lt;br /&gt;
| [[4.5.0-10|4.5.0-10]]&lt;br /&gt;
| Not updated&lt;br /&gt;
| December 4, 2012&lt;br /&gt;
| Flash-card block via updated TWL_FIRM and whitelist. NZone hotspot list updated as well.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| Available&lt;br /&gt;
| December 4, 2012&lt;br /&gt;
|-&lt;br /&gt;
| [[5.0.0-11|5.0.0-11]]&lt;br /&gt;
| 7172&lt;br /&gt;
| March 25, 2013&lt;br /&gt;
| Many system titles including NATIVE_FIRM were updated, multiple vulnerabilities were fixed as well.&lt;br /&gt;
| Yes&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| March 25, 2013&lt;br /&gt;
|-&lt;br /&gt;
| [[5.1.0-11|5.1.0-11]]&lt;br /&gt;
| Not updated&lt;br /&gt;
| April 4, 2013&lt;br /&gt;
| NATIVE_FIRM and NS were updated. According to the official change-log: &amp;quot;Resolves an issue that may prevent access to the System Settings or other features.&amp;quot;&lt;br /&gt;
| No&lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| Available&lt;br /&gt;
| April 4, 2013&lt;br /&gt;
|-&lt;br /&gt;
| [[6.0.0-11|6.0.0-12 (-11U)]]&lt;br /&gt;
| 8198&lt;br /&gt;
| June 17, 2013&lt;br /&gt;
| Official change-log: &amp;quot;Users can now back up save data for downloadable versions of Nintendo 3DS software and most Virtual Console games&amp;quot;. For EUR/JPN, the [[StreetPass Mii Plaza]] application and the [[Nintendo 3DS Camera]] application were updated. Other titles for all regions were updated as well.&lt;br /&gt;
| Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| June 17, 2013&lt;br /&gt;
|-&lt;br /&gt;
| [[6.1.0-11|6.1.0-12 (-11U)]]&lt;br /&gt;
| Not updated&lt;br /&gt;
| June 27, 2013&lt;br /&gt;
| Official change-log: &amp;quot;Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience.&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| Available&lt;br /&gt;
| June 27, 2013&lt;br /&gt;
|-&lt;br /&gt;
| [[6.1.0-12U]]&lt;br /&gt;
| Not updated&lt;br /&gt;
| July 11, 2013&lt;br /&gt;
| This USA-only update added the updated network features applications which were first released in JPN/EUR with the [[6.0.0-11|6.0.0-12 NUP]] update.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| July 11, 2013&lt;br /&gt;
|-&lt;br /&gt;
| [[6.2.0-12]]&lt;br /&gt;
| Not updated&lt;br /&gt;
| August 6, 2013&lt;br /&gt;
| This update added support for the StreetPass relay feature, updated TWL_FIRM, and updated the Nintendo Zone hotspots list.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| Available&lt;br /&gt;
| August 6, 2013&lt;br /&gt;
|-&lt;br /&gt;
| [[6.3.0-12]]&lt;br /&gt;
| Not updated&lt;br /&gt;
| September 13, 2013&lt;br /&gt;
| See [[6.3.0-12|this]].&lt;br /&gt;
| No&lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| September 13, 2013&lt;br /&gt;
|-&lt;br /&gt;
| [[6.4.0-12]]&lt;br /&gt;
| ?&lt;br /&gt;
| November 11, 2013&lt;br /&gt;
| See [[6.4.0-12|this]](Only for the KOR and TWN regions).&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| November 11, 2013&lt;br /&gt;
|-&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| 9230&lt;br /&gt;
| December 9, 2013&lt;br /&gt;
| See [[7.0.0-13|this]].&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| December 9, 2013&lt;br /&gt;
|-&lt;br /&gt;
| [[7.1.0-14]]&lt;br /&gt;
| Not updated&lt;br /&gt;
| December 19, 2013&lt;br /&gt;
| See [[7.1.0-14|this]].&lt;br /&gt;
| No&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| Available&lt;br /&gt;
| December 19, 2013&lt;br /&gt;
|-&lt;br /&gt;
| [[7.1.0-15]]&lt;br /&gt;
| Not updated&lt;br /&gt;
| January 22, 2014&lt;br /&gt;
| See [[7.1.0-15|this]].&lt;br /&gt;
| No&lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| January 22, 2014&lt;br /&gt;
|-&lt;br /&gt;
| [[7.1.0-16]]&lt;br /&gt;
| Not updated&lt;br /&gt;
| February 26, 2014&lt;br /&gt;
| See [[7.1.0-16|this]].&lt;br /&gt;
| No&lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| February 26, 2014&lt;br /&gt;
|-&lt;br /&gt;
| [[7.2.0-17]]&lt;br /&gt;
| Not updated&lt;br /&gt;
| May 12, 2014&lt;br /&gt;
| See [[7.2.0-17|this]].&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| Available&lt;br /&gt;
| May 12, 2014&lt;br /&gt;
|-&lt;br /&gt;
| [[8.0.0-18]]&lt;br /&gt;
| Not updated&lt;br /&gt;
| July 7, 2014&lt;br /&gt;
| See [[8.0.0-18|this]].&lt;br /&gt;
| No&lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| Available&lt;br /&gt;
| July 7, 2014&lt;br /&gt;
|-&lt;br /&gt;
| [[8.1.0-18]]&lt;br /&gt;
| Not updated&lt;br /&gt;
| July 24, 2014&lt;br /&gt;
| See [[8.1.0-18|this]].&lt;br /&gt;
| No&lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| Available&lt;br /&gt;
| July 24, 2014&lt;br /&gt;
|-&lt;br /&gt;
| [[8.1.0-19]]&lt;br /&gt;
| Not updated&lt;br /&gt;
| August 7, 2014&lt;br /&gt;
| See [[8.1.0-19|this]].&lt;br /&gt;
| No&lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| August 7, 2014&lt;br /&gt;
|-&lt;br /&gt;
| [[8.1.0-0 New3DS]]&lt;br /&gt;
| Not updated&lt;br /&gt;
| September 26, 2014&lt;br /&gt;
| See [[8.1.0-0 New3DS|this]].&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| September 26, 2014&lt;br /&gt;
|-&lt;br /&gt;
| 8.1.0-19&lt;br /&gt;
| Not updated&lt;br /&gt;
| October 2, 2014&lt;br /&gt;
| Japan-only &amp;quot;update&amp;quot;, see [http://yls8.mtheall.com/ninupdates/reports.php?date=10-02-14_02-05-03&amp;amp;sys=ctr here]. The only change was that a new title([[New_3DS]]-only system application) was added, CVer/NVer titles were not even updated. The initial version of this [[Title_list|title]] is a stub.&lt;br /&gt;
| No&lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| October 2, 2014&lt;br /&gt;
|-&lt;br /&gt;
| [[9.0.0-20]]&lt;br /&gt;
| v11272&lt;br /&gt;
| October 6, 2014&lt;br /&gt;
| See [[9.0.0-20|this]].&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| October 6, 2014&lt;br /&gt;
|-&lt;br /&gt;
| [[9.1.0-20J]]&lt;br /&gt;
| v14336(JPN-region title)&lt;br /&gt;
| October 10, 2014&lt;br /&gt;
| Japan-only, see [[9.1.0-20J|this]].&lt;br /&gt;
| No&lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| October 10, 2014&lt;br /&gt;
|-&lt;br /&gt;
| [[9.2.0-20]]&lt;br /&gt;
| &lt;br /&gt;
| October 29, 2014&lt;br /&gt;
| See [[9.2.0-20|this]].&lt;br /&gt;
| No&lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| October 29, 2014&lt;br /&gt;
|-&lt;br /&gt;
| [[9.3.0-21]]&lt;br /&gt;
| &lt;br /&gt;
| December 8, 2014&lt;br /&gt;
| See [[9.3.0-21|this]].&lt;br /&gt;
| Yes&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| December 8, 2014&lt;br /&gt;
|-&lt;br /&gt;
| [[9.4.0-21]]&lt;br /&gt;
| &lt;br /&gt;
| December 11, 2014&lt;br /&gt;
| See [[9.4.0-21|this]].&lt;br /&gt;
| No&lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| December 11, 2014&lt;br /&gt;
|-&lt;br /&gt;
| [[9.5.0-22]]&lt;br /&gt;
| &lt;br /&gt;
| February 2, 2015&lt;br /&gt;
| See [[9.5.0-22|this]].&lt;br /&gt;
| Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| February 2, 2015&lt;br /&gt;
|-&lt;br /&gt;
| [[9.5.0-23]]&lt;br /&gt;
| &lt;br /&gt;
| March 2, 2015&lt;br /&gt;
| See [[9.5.0-22|this]].&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| March 2, 2015&lt;br /&gt;
|-&lt;br /&gt;
| [[9.6.0-24]]&lt;br /&gt;
| &lt;br /&gt;
| March 23, 2015&lt;br /&gt;
| See [[9.6.0-24|this]].&lt;br /&gt;
| See [[9.6.0-24|here]].&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| March 23, 2015&lt;br /&gt;
|-&lt;br /&gt;
| [[9.7.0-25]]&lt;br /&gt;
| &lt;br /&gt;
| April 20, 2015&lt;br /&gt;
| See [[9.7.0-25|this]].&lt;br /&gt;
| Probably none?&lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| April 20, 2015&lt;br /&gt;
|-&lt;br /&gt;
| [[9.8.0-25]]&lt;br /&gt;
| &lt;br /&gt;
| June 1, 2015&lt;br /&gt;
| See [[9.8.0-25|this]].&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| June 1, 2015&lt;br /&gt;
|-&lt;br /&gt;
| [[9.9.0-26|9.9.0-26]]&lt;br /&gt;
| &lt;br /&gt;
| July 13, 2015&lt;br /&gt;
| See [[9.9.0-26|this]].&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| July 13, 2015&lt;br /&gt;
|-&lt;br /&gt;
| [[10.0.0-27|10.0.0-27]]&lt;br /&gt;
| &lt;br /&gt;
| September 8, 2015&lt;br /&gt;
| See [[10.0.0-27|this]].&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| September 8, 2015&lt;br /&gt;
|-&lt;br /&gt;
| [[10.1.0-27|10.1.0-27]]&lt;br /&gt;
| &lt;br /&gt;
| September 14, 2015&lt;br /&gt;
| See [[10.1.0-27|this]].&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| September 14, 2015&lt;br /&gt;
|-&lt;br /&gt;
| [[10.2.0-28|10.2.0-28]]&lt;br /&gt;
| &lt;br /&gt;
| October 19, 2015&lt;br /&gt;
| See [[10.2.0-28|this]].&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| October 19, 2015&lt;br /&gt;
|-&lt;br /&gt;
| [[10.3.0-28|10.3.0-28]]&lt;br /&gt;
| &lt;br /&gt;
| November 9, 2015&lt;br /&gt;
| See [[10.3.0-28|this]].&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| November 9, 2015&lt;br /&gt;
|-&lt;br /&gt;
| [[10.4.0-29|10.4.0-29]]&lt;br /&gt;
| &lt;br /&gt;
| January 18, 2016&lt;br /&gt;
| See [[10.4.0-29|this]].&lt;br /&gt;
| Yes&lt;br /&gt;
| Launching old Ironfall was blocked.&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| January 18, 2016&lt;br /&gt;
|-&lt;br /&gt;
| [[10.5.0-30|10.5.0-30]]&lt;br /&gt;
| &lt;br /&gt;
| January 25, 2016&lt;br /&gt;
| See [[10.5.0-30|this]].&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| January 25, 2016&lt;br /&gt;
|-&lt;br /&gt;
| [[10.6.0-31|10.6.0-31]]&lt;br /&gt;
| &lt;br /&gt;
| February 22, 2016&lt;br /&gt;
| See [[10.6.0-31|this]].&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| February 22, 2016&lt;br /&gt;
|-&lt;br /&gt;
| [[10.7.0-32|10.7.0-32]]&lt;br /&gt;
| &lt;br /&gt;
| March 14, 2016&lt;br /&gt;
| See [[10.7.0-32|this]].&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| March 14, 2016&lt;br /&gt;
|-&lt;br /&gt;
| [[11.0.0-33|11.0.0-33]]&lt;br /&gt;
| &lt;br /&gt;
| May 9, 2016&lt;br /&gt;
| See [[11.0.0-33|this]].&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| May 9, 2016&lt;br /&gt;
|-&lt;br /&gt;
| [[11.1.0-34|11.1.0-34]]&lt;br /&gt;
| &lt;br /&gt;
| September 13, 2016&lt;br /&gt;
| See [[11.1.0-34|this]].&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| September 13, 2016&lt;br /&gt;
|-&lt;br /&gt;
| [[11.2.0-35|11.2.0-35]]&lt;br /&gt;
| &lt;br /&gt;
| October 24, 2016&lt;br /&gt;
| See [[11.2.0-35|this]].&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| Available&lt;br /&gt;
| October 24, 2016&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*&amp;quot;: This includes known flaws, and any fixed flaws discovered via code bin-diff.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*&amp;quot; and &amp;quot;3DS-mode homebrew affected&amp;quot; only apply to the changes done with that specific system-update(&amp;quot;affected&amp;quot; does not include hax codebases breaking *just* due to updated codebins).&lt;br /&gt;
&lt;br /&gt;
[[Category:Nintendo Software]]&lt;br /&gt;
&lt;br /&gt;
== Auto-Boot Function ==&lt;br /&gt;
When the Home Menu is initially loaded by [[NS]], it checks the gamecard ExeFS:/[[SMDH|icon]] for the auto-boot flag. If the auto-boot flag is set, it will load the application on the cartridge and the home menu will not remain running in the background, or at least not in an operational state. Using software cues to return to the home menu, or sleep menu while in this state, causes a shutdown.&lt;br /&gt;
&lt;br /&gt;
Notable features of demo titles:&lt;br /&gt;
*Auto-boot demos generally disable the functionality of the home button.&lt;br /&gt;
*The &#039;&#039;New Super Mario Bros 2&#039;&#039; demo, retained the functionality of the home button, and had an timer which triggered the demo to quit after a period of inactivity.&lt;br /&gt;
&lt;br /&gt;
Auto-boot cartridges, can bypass some of the functions of the Home Menu. Auto Booted software:&lt;br /&gt;
* Doesn&#039;t show usage history in the [[Activity Log]]&lt;br /&gt;
* Bypasses Parental controls&lt;br /&gt;
* Bypasses Forced Game Card Updates&lt;br /&gt;
* Bypasses Initial 3DS Setup&lt;br /&gt;
* The console does not have a friends list presence.&lt;br /&gt;
* Is still subject to region lock(see below).&lt;br /&gt;
&lt;br /&gt;
Region lock is still active, so the home menu will refuse to launch demos with incorrect region lock will not load, displaying &amp;quot;An Error has Occurred&amp;quot;. However, game card update partition checks are not done, which allows launching demos that have region free encoding, but have an alternate(or even invalid) region update partition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following auto-boot paths can be used by Home Menu, checked in the same order listed below(the above gamecard auto-boot is checked before this):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key-combo / requirements for this path&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| R, L, and X&lt;br /&gt;
| This launches [[System Settings]] for touchscreen calibration.&lt;br /&gt;
|-&lt;br /&gt;
| R, L, and Y&lt;br /&gt;
| This launches [[System Settings]] for circlepad calibration.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following is only checked when the low u16 from [[Config_Savegame|config]] block 0x00110000 is value zero(normally this is non-zero). Thus, the below is only handled when a system setup is required.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key-combo / requirements for this path&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| R, X, Y, A, and B, a 3DS gamecard must be inserted as well.&lt;br /&gt;
| This launches the gamecard application. Note that pressing the HOME button in the gamecard application launched this way will only result in the system shutting down.&lt;br /&gt;
|-&lt;br /&gt;
| This is used when the above path isn&#039;t used.&lt;br /&gt;
| This launches System Settings for the system setup.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Region Lockout ==&lt;br /&gt;
&lt;br /&gt;
One of the Home Menu&#039;s functions, is to regulate region lockout. The region lockout data for any given title is held in the [[SMDH#BNR Region|ICN data]]. There are 6 regions of which have their own region lockout, Japan, USA, Europe(including Nintendo Australia), China, Taiwan and Korea. There is also a value which makes a title exempt from region lockout, and consequently accessible from any region of 3DS.&lt;br /&gt;
&lt;br /&gt;
The region-field stored in the [[SMDH|ICN-data]] is only checked when Home Menu itself launches a title, not when other titles use NS to have Home Menu launch titles. This isn&#039;t actually useful for gamecard region-free however, due to the gamecard system-updates, see below.&lt;br /&gt;
&lt;br /&gt;
Also note that while some gamecard games are mostly region-free(main CXI is identical for all regions of the gamecard), those gamecards can&#039;t actually be launched with all 3DS regions due to the gamecard system-update, see below. Note that the main CXI being identical for all regions of a gamecard also means the savedata keyY is identical for all regions of that gamecard too(except for old system-version &amp;lt;v2.2 games, in some cases, due to different cardIDs).&lt;br /&gt;
&lt;br /&gt;
=== Effects of Region Lockout  ===&lt;br /&gt;
Every 3DS title regardless of location (NAND/SD Card/Game Card) is subject to region lockout scrutiny by the Home Menu. And the home menu treats &#039;out-of-region&#039; titles by simply refusing to show them on the home menu. No messages are shown on the home menu to notify the user, the title is simply ignored. However out-of-region SD Card titles, will appear and quickly disappear, while all the SD Titles are being processed. In cases where access to the home menu GUI is not needed to launch the title (like in the case of kiosk demos), the home menu states an error has occurred, and launching of the title is stopped.&lt;br /&gt;
&lt;br /&gt;
=== Game Card Updates ===&lt;br /&gt;
Either intentionally a region lock mechanism or not, the function which checks the game card update partition returns an error when it is detected the update is for a region other than the 3DS&#039;s region (Most likely triggered by the absence of the correct CVer title). And errors returned from checking the update partition, will result in the home menu displaying &amp;quot;This Game Card cannnot be used&amp;quot;, when the user attempts to launch the title.&lt;br /&gt;
&lt;br /&gt;
== Home-menu [[SpotPass]] usage ==&lt;br /&gt;
&lt;br /&gt;
Home-menu originally used two domains with HTTPS for SpotPass. SpotPass stores this content in Home-menu&#039;s NAND shared extdata.&lt;br /&gt;
&lt;br /&gt;
* The system notifications are downloaded from: https://a248.e.akamai.net/f/248/103046/10m/npdl.c.app.nintendowifi.net/p01/nsa/&amp;lt;regionID&amp;gt;/&amp;lt;filename&amp;gt;/&amp;lt;langcode&amp;gt;/&amp;lt;filename&amp;gt; Where langcode is the two-character language codes from [[Config Savegame#Languages|config]], and regionID is from the below table. &amp;lt;filename&amp;gt; is bashoX/sysmsgX where X is 0-3.&lt;br /&gt;
* https://pls.c.shop.nintendowifi.net/pl/upload This URL is used for uploading data from the home menu NAND shared extdata, it&#039;s unknown what this is used for. This data is uploaded every 24 hours.&lt;br /&gt;
* https://npul.c.app.nintendowifi.net/p01/recv/&amp;lt;regionID&amp;gt;/&amp;lt;filename&amp;gt; This is used for uploading unknown data from extdata. &amp;lt;filename&amp;gt; can be &amp;quot;phu&amp;quot;, &amp;quot;tiu&amp;quot;, &amp;quot;splu&amp;quot;, or &amp;quot;sendmgn&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Region&lt;br /&gt;
! ID&lt;br /&gt;
|-&lt;br /&gt;
| JPN&lt;br /&gt;
| gWr4JXxb2mKTG3lq&lt;br /&gt;
|-&lt;br /&gt;
| NA&lt;br /&gt;
| uuI82221UKkqmtbp&lt;br /&gt;
|-&lt;br /&gt;
| EUR / Others&lt;br /&gt;
| UrXSeurnxhPrq7AS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The SpotPass content payload for notifications begin with a header, followed by an [[SMDH|icon]] and the UTF-16 text, and various metadata.&lt;br /&gt;
&lt;br /&gt;
=== VersionList ===&lt;br /&gt;
During startup, Home Menu loads &amp;quot;/versionList.dat&amp;quot; from NAND extdata 0xf000000e. This is downloaded via SpotPass, the file-data downloaded via HTTPS here is raw (no SpotPass container):&lt;br /&gt;
* Retail: [https://tagaya-ctr.cdn.nintendo.net/tagaya/versionlist]&lt;br /&gt;
* Dev-unit: [https://tagaya-dev-ctr.cdn.nintendo.net/tagaya/versionlist] The titles listed in this are not available on the [[Title list|normal]] CDN.&lt;br /&gt;
&lt;br /&gt;
This is a list of title-updates available on the eShop, for regular app titles and update-titles. This is what Home Menu checks to determine whether the currently selected application needs to be updated or not. When an Internet connection is not available or wifi is disabled, Home Menu will skip VersionList handling/messages when you launch applications.&lt;br /&gt;
&lt;br /&gt;
File structure:&lt;br /&gt;
{| class=&amp;quot;wikitable&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;
| The first u32 is normally 0x1, the rest is normally all-zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| &amp;lt;Filesize-0x10&amp;gt;&lt;br /&gt;
| Title entries, 0x10-bytes each.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Title entry structure:&lt;br /&gt;
{| class=&amp;quot;wikitable&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;
| u64 TitleID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32 titleversion&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Unknown u32, usually zero?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Automatic System Update Download ==&lt;br /&gt;
See [[Automatic System Update Download]].&lt;br /&gt;
&lt;br /&gt;
== Home Menu Error Messages ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Dialog Text&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;quot;An error has occured. Please save your data ... then restart the system&amp;quot;&lt;br /&gt;
| This dialog is displayed when a system applet(including Home Menu) crashes/terminates. This dialog is also displayed for system errors as well.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Home Menu Themes ==&lt;br /&gt;
See [[Home_Menu/Themes|here]].&lt;br /&gt;
&lt;br /&gt;
As of [[11.0.0-33]] Home Menu themes are only supported with USA, EUR, and JPN. CHN Home Menu was last updated with v7.0, and TWN doesn&#039;t even have a Home Menu settings menu(just the old screen brightness config menu + an [[amiibo Settings]] icon on the right side of the browser icon).&lt;br /&gt;
&lt;br /&gt;
KOR Home Menu doesn&#039;t have the theme-settings menu button. While this does have the theme handling code, it isn&#039;t actually usable since extdataID 0x0 is used for theme-extdata for non-&amp;lt;JPN/USA/EUR&amp;gt; regions(which is invalid).&lt;br /&gt;
&lt;br /&gt;
== Home Menu [[System_SaveData|NAND]] savedata ==&lt;br /&gt;
=== Launcher.dat ===&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;
| Launcher.dat format version.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x1&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x2&lt;br /&gt;
| Unknown, normally 0x1.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Unknown, normally 0x0.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0xB40&lt;br /&gt;
| 360 u64s, list of titleIDs. For an unused entry, the u64 value is ~0(in that case, the corresponding entries at 0xD9A/0x106A for this titleID are not used either). This is used for the icons displayed on the main Home Menu screen.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD9A&lt;br /&gt;
| 0x2D0&lt;br /&gt;
| Array of 360 s16 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position, 0x0 for the very first icon, 0x1 for the next one and so on. This is completely linear, no X/Y coordinates. Implemented with the format-version for [[4.0.0-7|4.0.0-X]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x106A&lt;br /&gt;
| 0x168&lt;br /&gt;
| Array of 360 s8 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position. When an s8 here is -1(which is the normal value), the icon is located with the first chunk of icons(outbuf+0), otherwise the base address is outbuf+0xB40+&amp;lt;s8val*0x1E0&amp;gt;(which is equivalent to 60 icons * s8val). Implemented with the format-version for [[4.0.0-7|4.0.0-X]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SD ExtData ==&lt;br /&gt;
The SD ExtData [[Extdata#Filesystem|File System]] for Home Menu introduced with [[2.0.0-2|2.0.0-X]] is as follows:&lt;br /&gt;
&lt;br /&gt;
 root&lt;br /&gt;
 ├── icon&lt;br /&gt;
 ├── boss&lt;br /&gt;
 └── user&lt;br /&gt;
     ├── SaveData.dat&lt;br /&gt;
     ├── Cache.dat&lt;br /&gt;
     └── CacheD.dat&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  File&lt;br /&gt;
!  Details&lt;br /&gt;
!  Size&lt;br /&gt;
!  FW Introduced&lt;br /&gt;
!  Plaintext&lt;br /&gt;
|-&lt;br /&gt;
|  icon&lt;br /&gt;
|  Stubbed. Always image 00000002.&lt;br /&gt;
|  0x4 Bytes&lt;br /&gt;
|  n/a&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  SaveData.dat&lt;br /&gt;
|  Always image 00000003.&lt;br /&gt;
|  0x2cb0 Bytes (0x2da0 starting with [[4.0.0-7]])&lt;br /&gt;
|  [[2.0.0-2]]&lt;br /&gt;
|  [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/SaveData.dat Download]&lt;br /&gt;
|-&lt;br /&gt;
|  Cache.dat&lt;br /&gt;
|  Indexes and records details for the cached icon data. Always image 00000004.&lt;br /&gt;
|  0x1688 Bytes&lt;br /&gt;
|  [[2.0.0-2]]&lt;br /&gt;
|  [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/Cache.dat Download]&lt;br /&gt;
|-&lt;br /&gt;
|  CacheD.dat&lt;br /&gt;
|  Cached icon data for Home Menu. Always image 00000005.&lt;br /&gt;
|  0x4cfe00 Bytes&lt;br /&gt;
|  [[2.0.0-2]]&lt;br /&gt;
|  [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/CacheD.dat Download]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Cache.dat &amp;amp; CacheD.dat ===&lt;br /&gt;
These two files work in tandem to allow the home menu to cache icon data for applications which are presented on the Home Menu. The size of both files suggests a maximum cache size of 360 icons. Cache.dat stores details about the cache icon data, and CacheD.dat stores the icon data. The icon cache stores icon data for *all* applications shown on the Home Menu, this includes DSi NAND Titles, and DS(i) cartridges. The format of cached DS(i) icon data is not understood, but they are the same size as 3DS icon data (0x36c0).&lt;br /&gt;
&lt;br /&gt;
In Cache.dat the first 8 bytes are a header where the first byte is the format-version, then follows each icon slots&#039;s entry in the format:&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 in Little Endian&lt;br /&gt;
|-&lt;br /&gt;
|  0x8&lt;br /&gt;
|  4&lt;br /&gt;
|  Unknown&lt;br /&gt;
|-&lt;br /&gt;
|  0xc&lt;br /&gt;
|  4&lt;br /&gt;
|  Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All unused entries have the Title IDs filled with &amp;quot;0xff&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In CacheD.dat, the icon data is concatenated together, with the first icon at offset 0x0.&lt;br /&gt;
&lt;br /&gt;
=== SaveData.dat ===&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;
| SaveData.dat format version.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0xB40&lt;br /&gt;
| 360 u64s, list of titleIDs(used with icons). Equivalent to the same array in Launcher.dat.&lt;br /&gt;
|-&lt;br /&gt;
| 0xB48&lt;br /&gt;
| 0x168&lt;br /&gt;
| s8 bool array with 360 entries. Some SD-only icon array. Probably an array for each icon present status? Each entry is only known to be set to 0x00 or 0x01, with the former being the default.&lt;br /&gt;
|-&lt;br /&gt;
| 0xCB0&lt;br /&gt;
| 0x2D0&lt;br /&gt;
| s16 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF80&lt;br /&gt;
| 0x168&lt;br /&gt;
| s8 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.&lt;br /&gt;
|-&lt;br /&gt;
| 0x13b8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Theme entry structure for the regular theme.&lt;br /&gt;
|-&lt;br /&gt;
| 0x13c0&lt;br /&gt;
| 0x8*10(0x50)&lt;br /&gt;
| Array of theme entry structures for theme [[9.3.0-21|shuffling]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x141b&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0 = one regular theme, 1 = multiple themes for theme [[9.3.0-21|shuffle]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The icon arrays above are handled exactly the same way as Launcher.dat.&lt;br /&gt;
&lt;br /&gt;
When the theme cache is enabled via the above fields, Home Menu loads the cache at startup(if the used theme structure is valid).&lt;br /&gt;
&lt;br /&gt;
Theme entry structure:&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;
| Theme index: for DLC this is the content-index, for built-in themes this is an index for an array selecting the built-in theme.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x1&lt;br /&gt;
| Normally zero. This is the low 8-bits in the DLC titleID that this theme was originally loaded from.&lt;br /&gt;
|-&lt;br /&gt;
| 0x5&lt;br /&gt;
| 0x1&lt;br /&gt;
| Theme type, the valid range is 0..5. 0 = none, 1 = built-in theme from Home Menu RomFS, 2 = theme data loaded from SD cache / content archive. 3 = ?, 4 = ?, 5 = ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x6&lt;br /&gt;
| 0x1&lt;br /&gt;
| Normally zero?&lt;br /&gt;
|-&lt;br /&gt;
| 0x7&lt;br /&gt;
| 0x1&lt;br /&gt;
| Normally zero?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When the theme-type is value1 the themeindex must be &amp;lt;9. When the theme-type is value2 the themeindex has to be non-zero, and the u8 at offset 0x4 must not be &amp;gt;=10.&lt;br /&gt;
&lt;br /&gt;
The theme-loader code (besides the AM &amp;lt;is-current-themeindex-DLC-installed&amp;gt; code) handles all theme-types &amp;gt;=2 the same way. However, it seems all DLC AM code involving checking the currently-used theme DLC only gets executed when the theme-type is value2. The code in the theme-loader for that also checks that a certain Home Menu state flag is non-zero, before running the AM DLC code(it&#039;s unknown where this flag value comes from).&lt;br /&gt;
&lt;br /&gt;
==== SaveData.dat format versions ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Version value&lt;br /&gt;
!  Filesize&lt;br /&gt;
!  Implemented with Home Menu system-version&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0x2CB0&lt;br /&gt;
| [[2.0.0-2|2.0.0-X]]&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 0x2DA0&lt;br /&gt;
| [[4.0.0-7|4.0.0-X]]&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| 0x2DA0&lt;br /&gt;
| [[9.0.0-20|9.0.0-X]]&lt;br /&gt;
|-&lt;br /&gt;
| 4 (Latest version as of v10.6-v11.0 Home Menu)&lt;br /&gt;
| 0x2DA0&lt;br /&gt;
| [[9.3.0-21|9.3.0-X]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Home Menu code for writing the updated SaveData.dat to FS is broken when the filesize is smaller than expected due to being from an older format-version originally. When writing to the file, Home Menu checks the filesize then attempts to use [[FSFile:SetSize]] on mismatch, but [[FSFile:SetSize]] can&#039;t be used with extdata(error from [[FSFile:SetSize]] appears to be ignored). When writing to SaveData.dat the write-size is the one for the current format-version, but since extdata files are fixed-size this will only result in the first {original filesize} bytes being written(result-code = 0xE0E046C1).&lt;br /&gt;
&lt;br /&gt;
Basically, unless the extdata is deleted from the SD card FS manually, the SaveData.dat filesize will never be successfully updated from an old filesize to the current-format filesize by Home Menu.&lt;br /&gt;
&lt;br /&gt;
== Home Menu [[Home_Menu/Themes|Theme]] SD [[Extdata|ExtData]] ==&lt;br /&gt;
The filesystem for this extdata is as follows:&lt;br /&gt;
&lt;br /&gt;
 root&lt;br /&gt;
 ├── icon&lt;br /&gt;
 ├── boss&lt;br /&gt;
 └── user&lt;br /&gt;
     ├── ThemeManage.bin&lt;br /&gt;
     ├── BodyCache.bin&lt;br /&gt;
     ├── BgmCache.bin&lt;br /&gt;
     └── nsalist&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  File&lt;br /&gt;
!  Details&lt;br /&gt;
!  Size&lt;br /&gt;
!  Extdata image ID&lt;br /&gt;
!  FW Introduced&lt;br /&gt;
!  Plaintext&lt;br /&gt;
|-&lt;br /&gt;
| ThemeManage.bin&lt;br /&gt;
| Theme management info. The filesize must match 0x800, otherwise the Home Menu code returns an error.&lt;br /&gt;
| 0x800&lt;br /&gt;
| 00000003&lt;br /&gt;
| [[9.0.0-20]]&lt;br /&gt;
|-&lt;br /&gt;
| BodyCache.bin&lt;br /&gt;
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS body_LZ.bin file. The filesize must match 0x150000, otherwise the Home Menu code returns an error.&lt;br /&gt;
| 0x150000&lt;br /&gt;
| 00000004&lt;br /&gt;
| [[9.0.0-20]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| BgmCache.bin&lt;br /&gt;
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS bgm.bcstm file. The filesize must match 0x337000, otherwise the Home Menu code returns an error.&lt;br /&gt;
| 0x337000&lt;br /&gt;
| 00000005&lt;br /&gt;
| [[9.0.0-20]]&lt;br /&gt;
|-&lt;br /&gt;
| nsalist&lt;br /&gt;
| Contains the list of DLC themes(IDs+prices), downloaded via [[SpotPass]].&lt;br /&gt;
| &lt;br /&gt;
| 00000007&lt;br /&gt;
| [[9.0.0-20]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
BodyCache.bin and BgmCache.bin contain cached theme data for the currently used DLC theme. ThemeManage.bin is loaded by Home Menu during startup. The cached theme data is loaded at startup when a DLC theme is selected. This also contains theme-shop [[SpotPass]] data.&lt;br /&gt;
&lt;br /&gt;
BodyCache.bin and BgmCache.bin are all-zero when no theme is selected.&lt;br /&gt;
&lt;br /&gt;
Starting with [[9.3.0-21|9.3.0-X]] Home Menu can use more files in this extdata, for theme shuffling. &amp;quot;theme:/ThemeManage.bin&amp;quot; &amp;quot;theme:/BgmCache_%02d.bin&amp;quot; &amp;quot;theme:/BodyCache_rd.bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== ThemeManage.bin ===&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;
| Unknown, normally value 0x1?&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Unknown, normally zero?&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Actual size of the cached body_LZ.bin data.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Actual size of the cached bgm.bcstm data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x4&lt;br /&gt;
| When a DLC theme is selected, this is the content-index of the DLC theme.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Unknown, usually value 0x200 when the data in theme-cache is actually used?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The total filesize is 0x800-bytes, normally the data starting at offset 0x1C is all-zero.&lt;br /&gt;
&lt;br /&gt;
When no theme is actually used,  the only non-zero fields are the following: the u32 stored at offset 0x0 in ThemeManage.bin is value 0x1, with offset 0x10 u32 set to value 0x1.&lt;br /&gt;
&lt;br /&gt;
== Home Menu badge SD [[Extdata|ExtData]] ==&lt;br /&gt;
The filesystem for this extdata(when it actually exists) is as follows:&lt;br /&gt;
&lt;br /&gt;
 root&lt;br /&gt;
 ├── icon&lt;br /&gt;
 ├── boss&lt;br /&gt;
 └── user&lt;br /&gt;
     ├── BadgeData.dat&lt;br /&gt;
     └── BadgeMngFile.dat&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  File&lt;br /&gt;
!  Details&lt;br /&gt;
!  Size&lt;br /&gt;
!  Extdata image ID&lt;br /&gt;
!  FW Introduced&lt;br /&gt;
|-&lt;br /&gt;
| BadgeData.dat&lt;br /&gt;
| [[Home_Menu#BadgeData.dat|See below.]]&lt;br /&gt;
| 0xF4DF80&lt;br /&gt;
| &lt;br /&gt;
| [[9.0.0-20]]&lt;br /&gt;
|-&lt;br /&gt;
| BadgeMngFile.dat&lt;br /&gt;
| [[Home_Menu#BadgeMngFile.dat|See below.]]&lt;br /&gt;
| 0xD4A8&lt;br /&gt;
| &lt;br /&gt;
| [[9.0.0-20]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BadgeData.dat ===&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;
| 100 * 16 * 0x8A&lt;br /&gt;
| UTF-16 Badge Set Titles (16 per set for different languages)&lt;br /&gt;
|-&lt;br /&gt;
| 0x35E80&lt;br /&gt;
| 1000 * 16 * 0x8A&lt;br /&gt;
| UTF-16 Badge Titles (16 per set for different languages)&lt;br /&gt;
|-&lt;br /&gt;
| 0x250F80&lt;br /&gt;
| 100 * 0x2000&lt;br /&gt;
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 Badge Set Icons&lt;br /&gt;
|-&lt;br /&gt;
| 0x318F80&lt;br /&gt;
| 1000 * 0x2800&lt;br /&gt;
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 + Tiled A4 64x64 Badge Icons&lt;br /&gt;
|-&lt;br /&gt;
| 0xCDCF80&lt;br /&gt;
| 1000 * 0xA00&lt;br /&gt;
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 32x32 + Tiled A4 32x32 Badge Icons&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BadgeMngFile.dat ===&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;
| u32, Must Be Zero&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, Number of Badge Sets&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, Number of Unique Badges&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, Number of Placed Badges&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, Selected Badge Set in Home Menu (0xFFFFFFFF = All Badges)&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, Selected Badge Column in All Badges&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, Number of Total Badges&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, Nintendo Network ID Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x338&lt;br /&gt;
| Unknown (always zeros? unused?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x358&lt;br /&gt;
| 0x80&lt;br /&gt;
| Used Badge Slots (each bit = 1 slot)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D8&lt;br /&gt;
| 0x10&lt;br /&gt;
| Used Badge Set Slots (each bit = 1 slot)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E8&lt;br /&gt;
| 1000 * 0x28&lt;br /&gt;
| [[Home_Menu#BadgeInfo|BadgeInfo]] Entries&lt;br /&gt;
|-&lt;br /&gt;
| 0xA028&lt;br /&gt;
| 100 * 0x30&lt;br /&gt;
| [[Home_Menu#BadgeSetInfo|BadgeSetInfo]] Entries&lt;br /&gt;
|-&lt;br /&gt;
| 0xB2E8&lt;br /&gt;
| 360 * 0x18&lt;br /&gt;
| [[Home_Menu#BadgeLayoutSlot|BadgeLayoutSlot]] Entries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== BadgeIdentifier ====&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;
| u32, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, Badge ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, Badge Set ID&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x2&lt;br /&gt;
| u16, Badge Index&lt;br /&gt;
|-&lt;br /&gt;
| 0xE&lt;br /&gt;
| 0x2&lt;br /&gt;
| u16, Badge Sub ID (used for multi-part badges)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== BadgeSetIdentifier ====&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;
| u32, Unknown (Usually 0xFFFFFFFF)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, Unknown (Usually 0xFFFFFFFF)&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, Unknown (Usually 0x0)&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, Unknown (Usually 0x2710)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, Badge Set ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, Badge Set Index&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== BadgeInfo ====&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;
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x2&lt;br /&gt;
| u16, Number Placed&lt;br /&gt;
|-&lt;br /&gt;
| 0x12&lt;br /&gt;
| 0x2&lt;br /&gt;
| u16, Quantity&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, Unknown (packed data?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x10&lt;br /&gt;
| u64[2], Shortcut Title ID (twice, once per u64)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== BadgeSetInfo ====&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;
| 0x18&lt;br /&gt;
| [[Home_Menu#BadgeSetIdentifier|BadgeSetIdentifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, Unknown (usually 0xFFFFFFFF)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, Number of Unique Badges&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, Number of Total Badges&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, Start Badge Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, Unknown (usually 0x0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, Unknown (usually 0x0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== BadgeLayoutSlot ====&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;
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, Folder (0xF0FF = Icon of a folder, 0xFFFFFFFF = No folder)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The file size must match 0xD4A8, otherwise the Home Menu code returns an error.&lt;br /&gt;
&lt;br /&gt;
== Home Menu theme layout SD [[Extdata|ExtData]] ==&lt;br /&gt;
The filesystem for this extdata(when it actually exists) is as follows:&lt;br /&gt;
&lt;br /&gt;
 root&lt;br /&gt;
 ├── icon&lt;br /&gt;
 ├── boss&lt;br /&gt;
 └── user&lt;br /&gt;
     └── MngFile.dat&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  File&lt;br /&gt;
!  Details&lt;br /&gt;
!  Size&lt;br /&gt;
!  Extdata image ID&lt;br /&gt;
!  FW Introduced&lt;br /&gt;
!  Plaintext&lt;br /&gt;
|-&lt;br /&gt;
| MngFile.dat&lt;br /&gt;
| See below.&lt;br /&gt;
| 0x004D1280&lt;br /&gt;
| 00000003&lt;br /&gt;
| [[9.6.0-24]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MngFile.dat ===&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;
| u32, must be zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, total number of stored layouts.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| ?&lt;br /&gt;
| Start of the layout entries.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Layout entries structure:&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;
| 0x2558&lt;br /&gt;
| Exact copy of the entire Home Menu [[System_SaveData]] Launcher.dat, this is the actual layout data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2558&lt;br /&gt;
| ?&lt;br /&gt;
| Layout preview screenshot gfx data, displayed by the Home Menu layout settings menu.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The filesize must match 0x004D1280, otherwise the Home Menu code returns an error. The saved Home Menu layouts are stored here.&lt;br /&gt;
&lt;br /&gt;
When saving a layout, the total layout field is increased, then a new layout entry is created with the contents of the current Home Menu [[System_SaveData]](NAND savedata) Launcher.dat + a screenshot of the main Home Menu screen is written. When loading a layout, Launcher.dat in savedata is written with the current Launcher.dat data already stored in memory(unknown if any data gets changed for it here), then data from the layout entry is copied into the Home Menu [[System_SaveData]] Launcher.dat.&lt;br /&gt;
&lt;br /&gt;
Home Menu *only* accesses this file with the Home Menu layout-settings menu / when entering that menu.&lt;br /&gt;
&lt;br /&gt;
== Home Menu startup ==&lt;br /&gt;
The following is what Home Menu does at startup(converted from cmd-logs), from [[9.4.0-21]], in the same order Home Menu does it.&lt;br /&gt;
&lt;br /&gt;
Originally Home Menu mounted sdmc in main(), starting(?) with [[6.0.0-11]] Home Menu only has sdmc mounted while handling [[SD_Savedata_Backups]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Archive&lt;br /&gt;
!  Filename&lt;br /&gt;
!  Read size&lt;br /&gt;
!  Notes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| srv_init(), then srv_GetServiceHandle is used to initialize the service handles for the following services: [[NS_and_APT_Services|ns:s]], [[PTM_Services|ptm:sysm]], and [[Config_Services|cfg:s]].&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[CfgS:SecureInfoGetByte101]] and [[CfgS:GetLocalFriendCodeSeed]] are used, the output data from these are not used. If either of these return an error, Home Menu uses [[ERR:Throw]].&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[Cfg:GetSystemModel]] is then used to initialize a Home Menu state field.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Home Menu then loads the system language via [[CfgS:GetConfigInfoBlk2]], and uses [[Cfg:SecureInfoGetRegion]], to initialize Home Menu region/language state. Home Menu then uses [[Cfg:SecureInfoGetRegion]] again, then loads the [[Config_Savegame|CountryInfo]] via [[CfgS:GetConfigInfoBlk2]].&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Home Menu initializes [[Filesystem_services|fs:USER]] here. Home Menu then mounts the Home Menu CXI RomFS. Then Home Menu uses [[Filesystem_services|FSUSER:GetPriority]].&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Home Menu starts APT initialization / using APT service commands here. Eventually Home Menu then [[NSS:LaunchTitle|launches]] various system-modules.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Here Home Menu attempts to open NAND shared-[[extdata]] 0xe0000000, which will normally fail since it doesn&#039;t exist.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Here Home Menu uses [[Application_Manager_Services|AM]] command 0x00130040, with input u8 = value 0x0. Home Menu continues using APT commands after this.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[HID_Services|hid:SPVR]] service initialization is done here.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[PTM_Services|PTMSYSM:GetShellStatus]] is used here.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read to check the auto-boot flag(see the auto-boot section on this page). The system-setup-required flag is then read here if needed, as mentioned under the auto-boot section of this page.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Home Menu then uses cfg commands to load system language, region, and CountryInfo.&lt;br /&gt;
|-&lt;br /&gt;
| Home Menu CXI RomFS&lt;br /&gt;
| &amp;quot;/message/&amp;lt;Region&amp;gt;_&amp;lt;Language&amp;gt;/menu_msbt_LZ.bin&amp;quot;&lt;br /&gt;
| Presumably loaded from the filesize.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Home Menu CXI RomFS&lt;br /&gt;
| &amp;quot;/message/&amp;lt;Region&amp;gt;_&amp;lt;Language&amp;gt;/RI_mstl_LZ.bin&amp;quot;&lt;br /&gt;
| Presumably loaded from the filesize.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Home Menu CXI RomFS&lt;br /&gt;
| &amp;quot;/message_hud/&amp;lt;Region&amp;gt;_&amp;lt;Language&amp;gt;/hud_msbt_LZ.bin&amp;quot;&lt;br /&gt;
| Presumably loaded from the filesize.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Home Menu CXI RomFS&lt;br /&gt;
| &amp;quot;/message_hud/&amp;lt;Region&amp;gt;_&amp;lt;Language&amp;gt;/RI_mstl_LZ.bin&amp;quot;&lt;br /&gt;
| Presumably loaded from the filesize.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[NS_and_APT_Services|APT:GetSharedFont]] is used here.&lt;br /&gt;
|-&lt;br /&gt;
| Home Menu CXI RomFS&lt;br /&gt;
| &amp;quot;/font/Hud_JP.bcfnt&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| Here Home Menu loads the [[Config_Savegame|cfg]] state for blkID 0x50005.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Here Home Menu loads the GPU shaders from RomFS.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Here Home Menu does DSP initialization then starts using DSP commands etc + loads sound data from RomFS.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Here Home Menu does GSP initialization.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[APT:GetCaptureInfo]] is used here.&lt;br /&gt;
|-&lt;br /&gt;
| Home Menu CXI RomFS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Here Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]], [[PTMSYSM:GetSoftwareClosedFlag]], and [[PTMSYSM:ClearSoftwareClosedFlag]]. Home Menu then uses [[PTM_Services|PTMSYSM:GetShellStatus]] 3 times in a row. Starting from here, Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]] frequently(presumably from a separate thread).&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Home Menu opens the archive for the Home Menu [[System_SaveData]] here. Then Home Menu attempts to open &amp;quot;/Launcher.dat&amp;quot; for reading, when successful Home Menu just closes the file.&lt;br /&gt;
|-&lt;br /&gt;
| Home Menu [[System_SaveData]]&lt;br /&gt;
| &amp;quot;/Launcher.dat&amp;quot;&lt;br /&gt;
| 0x2490&lt;br /&gt;
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].&lt;br /&gt;
|-&lt;br /&gt;
| System CFA, titleID for USA: 0004009B00013302&lt;br /&gt;
| &amp;quot;/country.bin&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[NS CFA]]&lt;br /&gt;
| &amp;quot;/ctr_backup_black_list&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| Home Menu first reads 0x10-bytes from offset 0x0, then after that it reads the rest of the file.&lt;br /&gt;
|-&lt;br /&gt;
| Home Menu CXI RomFS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Home Menu reads various RomFS files here.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Home Menu [[NSS:LaunchTitle|launches]] the camera system-module here.&lt;br /&gt;
|-&lt;br /&gt;
| Home Menu CXI RomFS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Home Menu reads various RomFS files here.&lt;br /&gt;
|-&lt;br /&gt;
| NGWord bad word list CFA&lt;br /&gt;
| &amp;quot;/version.dat&amp;quot;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Home Menu mounts the ngword archive here, then reads version.dat. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000A0000.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Home Menu [[NSS:LaunchTitle|launches]] various system-modules here(from a separate thread?).&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Home Menu opens the following NAND shared extdata archives here: 0xf0000001, 0xf0000002, 0xf0000009, 0xf000000b, 0xf000000c, 0xf000000d, and 0xf000000b again.&lt;br /&gt;
|-&lt;br /&gt;
| NAND [[extdata]] 0xf000000b&lt;br /&gt;
| &amp;quot;/ubll.lst&amp;quot;&lt;br /&gt;
| 0x2ee0&lt;br /&gt;
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Home Menu opens NAND shared extdata archive 0xf000000b again.&lt;br /&gt;
|-&lt;br /&gt;
| NAND extdata 0xf000000b&lt;br /&gt;
| &amp;quot;/CFL_DB.dat&amp;quot;&lt;br /&gt;
| 0xe4c0&lt;br /&gt;
| Home Menu only does one read with size 0xe4c0 for this, even though the value it loads from [[FSFile:GetSize]] is larger than that.&lt;br /&gt;
|-&lt;br /&gt;
| NAND extdata 0xf000000b&lt;br /&gt;
| &amp;quot;/CFL_OldDB.dat&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| Home Menu just closes this file immediately after opening it, when opening it was successful at least.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Home Menu loads the [[Config_Savegame|cfg]] data for blkID 0x000C0000 here.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Home Menu opens NAND shared extdata archive 0xf000000b again.&lt;br /&gt;
|-&lt;br /&gt;
| NAND extdata 0xf000000b&lt;br /&gt;
| [[Extdata|&amp;quot;/gamecoin.dat&amp;quot;]]&lt;br /&gt;
| 0x14&lt;br /&gt;
| Home Menu first tries to use [[FS:CreateFile]] with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM:GetTotalStepCount]], then uses [[FSFile:GetSize]]. Then the service handle for [[NDM_Services|&amp;quot;ndm:u&amp;quot;]] is initialized with srv_GetServiceHandle(done from a separate thread perhaps?). Then Home Menu writes to the already opened gamecoin.dat file.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[Filesystem_services|FSUSER:CardSlotIsInserted]] and [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[BOSS_Services|&amp;quot;boss:P&amp;quot;]] service handle initialization with srv_GetServiceHandle is done here. Then [[Services|srv_Subscribe]] is used with various noticationIDs. Home Menu then uses [[FS:IsSdmcDetected]] and [[FS:IsSdmcWritable]]. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000D0000. Home Menu uses boss:P command 0x4010082, then uses srv_GetServiceHandle for initializing service handles with the following services: [[News_Services|&amp;quot;news:s&amp;quot;]] and &amp;quot;cecd:s&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| srv_GetServiceHandle is used to initialize the service handle for service [[Friend_Services|&amp;quot;frd:a&amp;quot;]], then various service commands are used for that.&lt;br /&gt;
|-&lt;br /&gt;
| NAND [[extdata]] 0xf000000c&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Home Menu first attempts to use [[FS:CreateFile]] with &amp;quot;/bashotorya.dat&amp;quot;, which normally fails since that file already exists. Home Menu then repeats this with &amp;quot;/bashotorya2.dat&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Here, Home Menu opens the following SD extdata archives: Home Menu badge SD extdata, Home Menu SD extdata, and the theme-cache SD extdata.&lt;br /&gt;
|-&lt;br /&gt;
| Home Menu SD extdata&lt;br /&gt;
| &amp;quot;/SaveData.dat&amp;quot;&lt;br /&gt;
| 0x2da0&lt;br /&gt;
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].&lt;br /&gt;
|-&lt;br /&gt;
| Home Menu SD extdata&lt;br /&gt;
| &amp;quot;/Cache.dat&amp;quot;&lt;br /&gt;
| 0x1688&lt;br /&gt;
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].&lt;br /&gt;
|-&lt;br /&gt;
| Home Menu SD extdata&lt;br /&gt;
| &amp;quot;/CacheD.dat&amp;quot;&lt;br /&gt;
| 0x36c0&lt;br /&gt;
| This is used to read the cached icon data for the currently inserted gamecard, if any. Prior to doing the read, Home Menu uses [[FSFile:GetSize]]. After opening the file and before [[FSFile:GetSize]] is used, Home Menu uses AM commands 0x10070102(for theme DLC) and 0x30084(gamecard &amp;quot;title-listing&amp;quot;).&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Home Menu uses the following AM commands for theme DLC here: 0x10050084 and 0x10020104.&lt;br /&gt;
|-&lt;br /&gt;
| Home Menu Theme SD extdata&lt;br /&gt;
| &amp;quot;/BodyCache.bin&amp;quot;&lt;br /&gt;
| 0x150000&lt;br /&gt;
| Before opening the file, Home Menu firsts opens this archive under a new archive-handle again, then closes it. Prior to doing the read, Home Menu uses [[FSFile:GetSize]].&lt;br /&gt;
|-&lt;br /&gt;
| Home Menu Theme SD extdata&lt;br /&gt;
| &amp;quot;/ThemeManage.bin&amp;quot;&lt;br /&gt;
| 0x8&lt;br /&gt;
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]](the result is filesize 0x800).&lt;br /&gt;
|-&lt;br /&gt;
| Home Menu Theme SD extdata&lt;br /&gt;
| &amp;quot;/BgmCache.bin&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| The data is read from here as needed. After opening the file, Home Menu uses [[FSFile:GetSize]].&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| boss:P commands 0x00040000 and 0x04040080 are used here. Home Menu opens NAND shared-extdata 0xf000000e, then closes it when the archive was opened successfully. Then Home Menu uses boss:P command 0x04500102 with the theme extdata, with string &amp;quot;thmtop&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| boss:P command 0x04040080 is used, with the input programID set to the gamecard one. Then boss:P commands 0x000E0000 and 0x00160082 are used.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=SD and maxTIDs = 0x1c00.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| boss:P command 0x00160082 is used.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[PTM_Services|PTM:GetStepHistory]] is used.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| srv_GetServiceHandle is used to initialize the service handle for [[AC_Services|&amp;quot;ac:u&amp;quot;]], then [[AC_Services|ACU:SetClientVersion]] is used. [[Services|srv_Subscribe]] is used, then ACU command 0x002F0004 is used.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=NAND and maxTIDs = 0x1c00.&lt;br /&gt;
|-&lt;br /&gt;
| NAND extdata 0xf000000b&lt;br /&gt;
| &amp;quot;/gamecoin.dat&amp;quot;&lt;br /&gt;
| 0x14&lt;br /&gt;
| Home Menu first tries to use FS:CreateFile with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM_Services|PTM:GetTotalStepCount]], then uses FSFile:GetSize. Then Home Menu writes to the already opened gamecoin.dat file. &lt;br /&gt;
&lt;br /&gt;
At the same time as doing the above, Home Menu also uses(probably from a different thread) [[AMNet:GetTitleIDList3|AM:GetTitleIDList3]] with mediatype=NAND and maxTIDs=0x2000. Then Home Menu uses [[AMNet:ListTitles|AM:ListTitles]] with the NAND promotional-video titleID. Then Home Menu attempts to open the ExeFS:/icon in the NAND promotional-video title.&lt;br /&gt;
|-&lt;br /&gt;
| Home Menu [[System_SaveData]]&lt;br /&gt;
| &amp;quot;/Launcher.dat&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| Prior to doing the write, Home Menu uses [[FSFile:GetSize]]. Home Menu writes 0x2490-bytes to the file here. From a separate thread(?) at the same time, Home Menu also uses [[AM:ReloadDBS]] and AM command 0x00130040 with input=0x1.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Home Menu loads the u8 value from [[Config_Savegame|cfg]] blkID 0x000E0000 here.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[AM:ReloadDBS]], AM command 0x10070102(for theme DLC), AM command 0x00130040, and AM command 0x10050084(for theme DLC) are used here.&lt;br /&gt;
At the same time(from a different thread?), the &amp;quot;act:u&amp;quot; service handle is initialized with srv_GetServiceHandle. Then ACTU commands 0x00010084 and 0x000600C2 are used.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| The [[NIM_Services|&amp;quot;nim:u&amp;quot;]] service handle is initialized with srv_GetServiceHandle. Then NIMU commands 0x000F0042, 0x00170042, 0x00150000, and 0x00050000 are used.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| AM command 0x10020104(theme DLC) is used here. Then Home Menu CXI RomFS data is read.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Home Menu CXI RomFS data is read. [[Filesystem_services|FS:GetSpecialContentIndex]] for the gamecard is used, then MICU initialization is done here(separate thread maybe?).&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[ACU:GetWifiStatus]] is used, the NAND shared-extdata 0xf000000b archive is then opened here.&lt;br /&gt;
|-&lt;br /&gt;
| NAND extdata 0xf000000b&lt;br /&gt;
| &amp;quot;/idb.dat&amp;quot;&lt;br /&gt;
| 0x2008&lt;br /&gt;
| This first opens the file for writing, then uses [[FSFile:GetSize]](output filesize is 0x6d4000). Then it writes to the file using size 0, then closes the file. Then [[PTM_Services|PTM:GetStepHistory]] is used. Then Home Menu opens &amp;quot;/idbt.dat&amp;quot;, then reads 0x2008-bytes.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Home Menu starts using [[News_Services|&amp;quot;news:s&amp;quot;]] commands here. While Home Menu is doing this, it also uses(from another thread?) [[NS_and_APT_Services|APT:PrepareToStartNewestHomeMenu]], [[NIM_Services|NIMU:GetState]], and [[NDM_Services|NDMU:OverrideDefaultDaemons]] with input value 0xF.&lt;br /&gt;
Later with that news-command code still running, Home Menu also uses the following commands: [[ACU:GetWifiStatus]], [[NDM_Services|NDMU:QueryExclusiveMode]], and CECDS command 0x000E0000. Then [[Config_Savegame|cfg]] blkID 0x000D0000 is loaded.&lt;br /&gt;
|-&lt;br /&gt;
| NAND extdata 0xf000000b&lt;br /&gt;
| &amp;quot;/idbt.dat&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| Home Menu writes 0x2008-bytes to this file.&lt;br /&gt;
|-&lt;br /&gt;
| NAND extdata 0xf000000e&lt;br /&gt;
| &amp;quot;/versionList.dat&amp;quot;&lt;br /&gt;
| Loaded from the filesize.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| boss:P command 0x00200082 is used with string &amp;quot;mmVerDl&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| Home Menu [[System_SaveData]]&lt;br /&gt;
| &amp;quot;/Launcher.dat&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| When Home Menu is terminating(?), Home Menu writes 0x2490-bytes to the file here. After doing this, Home Menu opens, writes, and closes the file again.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hardware reboot ===&lt;br /&gt;
During Home Menu start-up it uses [[APT:PrepareToStartNewestHomeMenu]]. If that doesn&#039;t return an error(normally NS returns 0xC8A0CFFC for that), Home Menu starts a hardware reboot with [[APT:StartNewestHomeMenu]] etc.&lt;br /&gt;
&lt;br /&gt;
On retail this essentially means a hardware-reboot will automatically trigger if [[Configuration_Memory|configmem]] SYSCOREVER doesn&#039;t match FIRM_SYSCOREVER, or when the current APPMEMTYPE doesn&#039;t match the default APPMEMTYPE for this Old3DS/New3ds model. The latter can happen with running New3DS NATIVE_FIRM with Old3DS system-titles, for example.&lt;br /&gt;
&lt;br /&gt;
== Returning to Home Menu from a crashed application ==&lt;br /&gt;
When returning to Home Menu from an application that didn&#039;t properly shutdown(like with an exception), PTM module writes data to the PTM system savedata. Then the system terminates Home Menu, and starts Home Menu again.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* http://www.nintendo.com/consumer/systems/3ds/en_na/menu_update.jsp&lt;br /&gt;
* http://www.nintendo.co.jp/netinfo/3ds/JPN/ja.html&lt;br /&gt;
* https://yls8.mtheall.com/ninupdates/reports.php&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=FirmwareNews&amp;diff=18456</id>
		<title>FirmwareNews</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=FirmwareNews&amp;diff=18456"/>
		<updated>2016-10-25T00:54:00Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: new update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As of this writing, the latest firmware is &#039;&#039;&#039; 11.2.0-35&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
See [[Homebrew Exploits|here]] regarding running homebrew.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Full system control exploits are only public for system versions up to and including &#039;&#039;&#039;9.2.0-X&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Internet_Browser&amp;diff=18309</id>
		<title>Internet Browser</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Internet_Browser&amp;diff=18309"/>
		<updated>2016-09-27T15:36:44Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* Old3DS Browser Specifications */ fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The 3DS Internet Browser was added in the June 2011 Update for JPN/EUR/USA.&lt;br /&gt;
&lt;br /&gt;
From the Internet Browser help section:&lt;br /&gt;
In compliance with the LGPL, the source code of the OSS is available via the Nintendo website.&lt;br /&gt;
This source code can be downloaded here:&lt;br /&gt;
[http://mediacontent.nintendo-europe.com/NOE/images/service/OpenSources.zip] [http://www.nintendo.co.jp/support/oss/index.html]&lt;br /&gt;
&lt;br /&gt;
The 3DS Internet Browser is [http://en.wikipedia.org/wiki/Netfront Netfront] Browser NX v1.0 based on [http://en.wikipedia.org/wiki/WebKit WebKit] engine.&lt;br /&gt;
&lt;br /&gt;
On O3DS the exheader name of this title is &amp;quot;SPIDER&amp;quot;; on N3DS, &amp;quot;SKATER&amp;quot;.&lt;br /&gt;
The only difference between the ExeFS .code for each region of the Old3DS/New3DS browser, is byte values for the title uniqueID/region.&lt;br /&gt;
&lt;br /&gt;
A [[#v9.9_dummy_web-browser|&amp;quot;dummy&amp;quot; browser]] (which replaces the actual browser) is being included with cartdrige games shipping with system updates starting with [[9.9.0-26|9.9.0-X]]. &lt;br /&gt;
In addition, versions of the real browser since 9.9.0-26X attempt to [[#Forced_system-update|check-in with a Nintendo server]] to determine if the existing browser version is out of date.&lt;br /&gt;
&lt;br /&gt;
==[[New 3DS]] Internet Browser==&lt;br /&gt;
New3DS has a separate browser title, with the exheader name &amp;quot;SKATER&amp;quot;.&lt;br /&gt;
Unlike the Old3DS browser, the New3DS browser has videos+HTML5 support. &lt;br /&gt;
&lt;br /&gt;
This browser also has a filter enabled by default in the JPN version. &lt;br /&gt;
Disabling it requires paying money with a credit-card, for [[NIM_Services|purchasing]] web-browser [[Title_list/DLC|DLC]].&lt;br /&gt;
During startup the browser does various HTTPS comms. When visting an URL, the browser sends a plaintext HTTP POST here: [http://ars.ifuser.jp:20080/ars2/rating]. The raw POST data begins with &amp;quot;ARS/2.0\r\n\x00&amp;quot;, the rest appears to be encrypted. The server reply content also has this ARS header + encrypted data. This appears to use a fixed xorpad, likely from a fixed encryption CTR/IV. The server content responses for allowed sites, and blocked sites, are fixed. When the server returns that the site is blocked, the browser goes to this page: [http://ars.ifuser.jp/filter/44.html](the Referrer header value is set to the same URL it&#039;s actually requesting).&lt;br /&gt;
&lt;br /&gt;
The WebKit source was updated since the Old3DS browser.&lt;br /&gt;
The New3DS browser uses the following services: [[MVD_Services|mvd:STD]] and [[IR_Services|ir:rst]](DLC-related services are used too but those aren&#039;t New3DS specific).&lt;br /&gt;
Video decoding is done with [[MVD_Services|mvd:STD]]. Audio decoding/playback is done with a browser-specific DSP binary. The Old3DS browser used CSND for audio playback, the New3DS browser doesn&#039;t have access to that at all since it uses DSP instead.&lt;br /&gt;
&lt;br /&gt;
=== Video / libstagefright ===&lt;br /&gt;
The browser manual includes licenses for Android and PacketVideo. The browser uses libstagefright from Android. Just like WebKit, the browser appears to use a very old version of libstagefright with security/other changes back-ported(for example, the v10.7 browser libstagefright codebase seems to be older than [https://android.googlesource.com/platform/frameworks/av/+/ec77122351b4e78c1fe5b60a208f76baf8c67591%5E%21/media/libstagefright/MPEG4Extractor.cpp this]). This codebase is missing certain chunk-parsing code for 3GP.&lt;br /&gt;
&lt;br /&gt;
HTTP for libstagefright is internally handled with [[HTTP_Services|HTTPC]], with a similar(?) set of RootCAs as for browser-version-check.&lt;br /&gt;
&lt;br /&gt;
===User-Agent and Browser Versions===&lt;br /&gt;
Normal user-agent format: &amp;lt;code style=&amp;quot;font-size:larger;&amp;quot;&amp;gt;Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/&amp;lt;WebKit version&amp;gt; (KHTML, like Gecko) NX/&amp;lt;Netfront version&amp;gt; Mobile NintendoBrowser/&amp;lt;Mobile NintendoBrowser version&amp;gt;.&amp;lt;region&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;region&amp;gt; can be one of the following: &amp;quot;JP&amp;quot;, &amp;quot;US&amp;quot;, or &amp;quot;EU&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Mobile User-Agent is always &amp;lt;code&amp;gt;Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Mobile NintendoBrowser version(displayed in browser settings)&lt;br /&gt;
! Normal UA&lt;br /&gt;
! CDN Title-version&lt;br /&gt;
! Network-only system-update version&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.9934&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.8 Mobile NintendoBrowser/1.0.9934.&amp;lt;region&amp;gt;&lt;br /&gt;
| v10&lt;br /&gt;
| [[9.0.0-20]]&lt;br /&gt;
| Initial version.&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.9996&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.10 Mobile NintendoBrowser/1.1.9996.&amp;lt;region&amp;gt;&lt;br /&gt;
| v1027&lt;br /&gt;
| [[9.3.0-21]]&lt;br /&gt;
| See below regarding OSS changes.&lt;br /&gt;
|-&lt;br /&gt;
| 1.2.10085&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.13 Mobile NintendoBrowser/1.2.10085.&amp;lt;region&amp;gt;&lt;br /&gt;
| v2051&lt;br /&gt;
| [[9.6.0-24]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v3075&lt;br /&gt;
| v9.9 CUP&lt;br /&gt;
| v9.9 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.10126&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.15 Mobile NintendoBrowser/1.3.10126.&amp;lt;region&amp;gt;&lt;br /&gt;
| v3077&lt;br /&gt;
| [[9.9.0-26]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.10138&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.17 Mobile NintendoBrowser/1.4.10138.&amp;lt;region&amp;gt;&lt;br /&gt;
| v4096&lt;br /&gt;
| [[10.2.0-28]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.5.10143&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.5.10143.&amp;lt;region&amp;gt;&lt;br /&gt;
| v5121&lt;br /&gt;
| [[10.4.0-29]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.6.10147&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.6.10147.&amp;lt;region&amp;gt;&lt;br /&gt;
| v6144&lt;br /&gt;
| [[10.6.0-31]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v7168&lt;br /&gt;
| v10.7 CUP&lt;br /&gt;
| v10.7 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7.10150&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.7.10150.&amp;lt;region&amp;gt;&lt;br /&gt;
| v7184&lt;br /&gt;
| [[10.7.0-32]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.8.10156&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.20 Mobile NintendoBrowser/1.8.10156.&amp;lt;region&amp;gt;&lt;br /&gt;
| v8192&lt;br /&gt;
| [[11.1.0-34]]&lt;br /&gt;
| See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the latest Old3DS browser WebKit version at the time the initial New3DS browser was released, was the following: 532.8.&lt;br /&gt;
&lt;br /&gt;
The first version of the KOR New3DS browser was v9.6(which was when the New3DS KOR titles were originally added). Each version of the KOR browser has the same NintendoBrowser version as the other regions. The KOR browser has been only updated when the browser for the other regions were updated, hence the title-versions are the same as well. The KOR browser ExeFS .code is different from the other regions(more than just region-related IDs etc).&lt;br /&gt;
&lt;br /&gt;
==== OSS 9.0 and 9.3 diff ====&lt;br /&gt;
The following is a diff of the OSS archives from [http://www.nintendo.co.jp/support/oss/index.html here], for v9.0 and v9.3.&lt;br /&gt;
&lt;br /&gt;
 Files NewNintendo3DS_OpenSources9.0.0-/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp and NewNintendo3DS_OpenSources9.3.0-/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp differ&lt;br /&gt;
 Files NewNintendo3DS_OpenSources9.0.0-/WKC/WebKit/WKC/webkit/WKCVersion.h and NewNintendo3DS_OpenSources9.3.0-/WKC/WebKit/WKC/webkit/WKCVersion.h differ&lt;br /&gt;
&lt;br /&gt;
WKC_CUSTOMER_RELEASE_VERSION was changed from &amp;quot;0.5.8&amp;quot; to &amp;quot;0.5.10&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following code was added to ResourceHandleManager::doRedirect(): curl_easy_setopt(d-&amp;gt;m_handle, CURLOPT_SHARE, 0);&lt;br /&gt;
&lt;br /&gt;
==== v9.6 ====&lt;br /&gt;
WebKit/OSS code was actually updated.&lt;br /&gt;
ExeFS .code was updated. The following files in RomFS were updated:&lt;br /&gt;
* &amp;quot;/banner/CN/Skater.icn&amp;quot; and &amp;quot;/banner/KR/Skater.icn&amp;quot;.&lt;br /&gt;
* &amp;quot;/browser/rootca.pem&amp;quot;&lt;br /&gt;
* &amp;quot;/build/buildinfo.dat&amp;quot;&lt;br /&gt;
* &amp;quot;/cairo.cro.lex&amp;quot; and &amp;quot;/.crr/static.crr&amp;quot;&lt;br /&gt;
* &amp;quot;/lyt/Button/ButtonSelectHSearch.arc&amp;quot;&lt;br /&gt;
* &amp;quot;/lyt/Kbd/Swkbd.arc&amp;quot;&lt;br /&gt;
* &amp;quot;lyt/Kbd.arc&amp;quot;&lt;br /&gt;
* &amp;quot;skater.msbt&amp;quot; under all of the &amp;quot;/message/&amp;lt;region&amp;gt;_&amp;lt;language&amp;gt;/&amp;quot; directories.&lt;br /&gt;
* &amp;quot;/oss.cro.lex&amp;quot;, &amp;quot;/peer.cro.lex&amp;quot;, &amp;quot;/static.crs&amp;quot;, and &amp;quot;/webkit.cro.lex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following was added to RomFS:&lt;br /&gt;
* &amp;quot;/favicon/naver.dat&amp;quot;&lt;br /&gt;
* A &amp;quot;KO&amp;quot; directory under &amp;quot;/iwnn&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== v9.9 ====&lt;br /&gt;
ExeFS:/.code was updated.&lt;br /&gt;
&lt;br /&gt;
The only RomFS changes is file-updating, all of the following files were updated:&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /cairo.cro.lex&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex&lt;br /&gt;
 /peer.cro.lex&lt;br /&gt;
 /static.crs&lt;br /&gt;
 /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
See [https://gist.github.com/yellows8/9fb509fde4112339f342 here] for a diff of the OSS(WebKitLibraries/ is not included due to the massive cairo library diff). An exploitable security vuln(which was already known in the context of 3DS webkit) was fixed. [[User:Yellows8|Yellows8]]&#039; private(at the time of writing) exploit for it is based on the PoC from [http://pastebin.com/ufBCQKda here](see the pastebin for the actual pastebin author).&lt;br /&gt;
&lt;br /&gt;
==== v10.2 ====&lt;br /&gt;
The libstagefright build in the main SKATER codebin was updated to a version which fixed libstagefright vuln(s): the vuln used in [[browserhax|browserhax_fright]] at the time of sysupdate release was fixed. The *only* code changed in the main codebin, was code related to libstagefright.&lt;br /&gt;
&lt;br /&gt;
The only RomFS changes is file-updating, all of the following files were updated(see the forced-sysupdate section regarding what changed in the message files):&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex&lt;br /&gt;
 /static.crs&lt;br /&gt;
 /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
OSS diff:&lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/WKC/WebKit/WKC/webkit/WKCVersion.h b/NewNintendo3DS_OpenSources10.2.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index 4543297..0860336 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;0.5.15&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;0.5.17&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;536.30&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/ChangeLog b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 index a5abb35..cf5a9fa 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 @@ -1,3 +1,12 @@&lt;br /&gt;
 +2013-11-05  Ryosuke Niwa  &amp;lt;rniwa@webkit.org&amp;gt;&lt;br /&gt;
 +&lt;br /&gt;
 +        Use-after-free in SliderThumbElement::dragFrom&lt;br /&gt;
 +        https://bugs.webkit.org/show_bug.cgi?id=123873&lt;br /&gt;
 +&lt;br /&gt;
 +        Reviewed by Andreas Kling.&lt;br /&gt;
 +&lt;br /&gt;
 +        Merge https://chromium.googlesource.com/chromium/blink/+/04a23bfca2d04101a1828d36ff36c29f3a24f34b&lt;br /&gt;
 +&lt;br /&gt;
  2015-02-06  Maciej Stachowiak  &amp;lt;mjs@apple.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
          REGRESSION(r179706): Caused memory corruption on some tests (Requested by _ap_ on #webkit).&lt;br /&gt;
 @@ -879,7 +888,7 @@&lt;br /&gt;
          * rendering/RenderLineBoxList.cpp:&lt;br /&gt;
          (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):&lt;br /&gt;
  &lt;br /&gt;
 -2014-01-21  LÃ¡szlÃ³ LangÃ³  &amp;lt;llango.u-szeged@partner.samsung.com&amp;gt;&lt;br /&gt;
 +2014-01-21  Laszlo Lango  &amp;lt;llango.u-szeged@partner.samsung.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
          Assertion failure in Range::nodeWillBeRemoved&lt;br /&gt;
          https://bugs.webkit.org/show_bug.cgi?id=121694&lt;br /&gt;
 @@ -1879,7 +1888,7 @@&lt;br /&gt;
  &lt;br /&gt;
  2012-09-14  Simon Fraser  &amp;lt;simon.fraser@apple.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 -        REGRESSION: transition doesnât always override transition-property&lt;br /&gt;
 +        REGRESSION: transition doesnft always override transition-property&lt;br /&gt;
          https://bugs.webkit.org/show_bug.cgi?id=96658&lt;br /&gt;
  &lt;br /&gt;
          Reviewed by Dean Jackson.&lt;br /&gt;
 @@ -3691,8 +3700,8 @@&lt;br /&gt;
              glyph with font data for the primary font, presumably to meet the SVG&lt;br /&gt;
              spec requirement: &amp;quot;If the references to alternate glyphs do not result&lt;br /&gt;
              in successful identification of alternate glyphs to use, then the&lt;br /&gt;
 -            character(s) that are inside of the çª¶åltGlyphçª¶?element are rendered as&lt;br /&gt;
 -            if the çª¶åltGlyphçª¶?element were a çª¶?spançª¶?element instead.&amp;quot;&lt;br /&gt;
 +            character(s) that are inside of the âaltGlyphâ?element are rendered as&lt;br /&gt;
 +            if the âaltGlyphâ?element were a â?spanâ?element instead.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
              If the alt glyph is not then found we are in the case from the spec&lt;br /&gt;
              and indeed we should use the primary font. However, we end up replacing the GlyphPage&lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/html/RangeInputType.cpp b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 index 484adec..d7e9e8d 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 @@ -164,7 +164,7 @@ void RangeInputType::handleMouseDownEvent(MouseEvent* event)&lt;br /&gt;
      ASSERT(element()-&amp;gt;hasShadowRoot());&lt;br /&gt;
      if (targetNode != element() &amp;amp;&amp;amp; !targetNode-&amp;gt;isDescendantOf(element()-&amp;gt;shadowTree()-&amp;gt;oldestShadowRoot()))&lt;br /&gt;
          return;&lt;br /&gt;
 -    SliderThumbElement* thumb = sliderThumbElementOf(element());&lt;br /&gt;
 +    RefPtr&amp;lt;SliderThumbElement&amp;gt; thumb = sliderThumbElementOf(element());&lt;br /&gt;
      if (targetNode == thumb)&lt;br /&gt;
          return;&lt;br /&gt;
      thumb-&amp;gt;dragFrom(event-&amp;gt;absoluteLocation());&lt;br /&gt;
&lt;br /&gt;
==== v10.4 ====&lt;br /&gt;
The ExeFS codebin was updated, the only change was that the following code was updated in the actual NupCheck HTTPS request function:&lt;br /&gt;
* Previous version: sprintf(out, &amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/2/%s&amp;quot;, region);&lt;br /&gt;
* Current  version: sprintf(out, &amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/%d/%s&amp;quot;, 3, region);&lt;br /&gt;
&lt;br /&gt;
libpng was updated from version 1.5.21 to 1.5.24.&lt;br /&gt;
&lt;br /&gt;
The following RomFS files were updated(see the forced-sysupdate section regarding what changed in the message files):&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /cairo.cro.lex&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex differ&lt;br /&gt;
 /peer.cro.lex differ&lt;br /&gt;
 /static.crs differ&lt;br /&gt;
 /webkit.cro.lex differ&lt;br /&gt;
&lt;br /&gt;
==== v10.6 ====&lt;br /&gt;
The ExeFS codebin was updated.&lt;br /&gt;
&lt;br /&gt;
[[browserhax|browserhax_fright_tx3g]] was fixed. The code handling tx3g now matches the latest libstagefright git.&lt;br /&gt;
&lt;br /&gt;
Hence the below RomFS listing, no OSS was updated at all(besides libstagefright mentioned above).&lt;br /&gt;
&lt;br /&gt;
The following RomFS files were updated:&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /static.crs&lt;br /&gt;
&lt;br /&gt;
==== v10.7 ====&lt;br /&gt;
Basically the same changes as Old3DS v10.7, except with the usual buildinfo.dat update in RomFS. The below date is 6 days after the browser-version-check [[3DS_Userland_Flaws|bypass]] was publicly disclosed.&lt;br /&gt;
&lt;br /&gt;
 cat v7184/00000025_romfs/build/buildinfo.dat&lt;br /&gt;
 10150&lt;br /&gt;
 applet&lt;br /&gt;
 2016-03-02 18:25&lt;br /&gt;
&lt;br /&gt;
==== v11.1 ====&lt;br /&gt;
The ExeFS codebin was updated. The following files in RomFS were updated:&lt;br /&gt;
&lt;br /&gt;
  /build/buildinfo.dat&lt;br /&gt;
  /.crr/static.crr&lt;br /&gt;
  /oss.cro.lex&lt;br /&gt;
  /static.crs&lt;br /&gt;
  /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
  cat v8192/00000026_romfs/build/buildinfo.dat&lt;br /&gt;
  10156&lt;br /&gt;
  applet&lt;br /&gt;
  2016-08-26 19:47&lt;br /&gt;
&lt;br /&gt;
Minus the 4 functions that changed due to compiler optimization, only 1 function was actually updated. This is LT_1a4004, previous version at LT_1a4004: libstagefright status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth)&lt;br /&gt;
&lt;br /&gt;
Additional code was added which doesn&#039;t seem to be from upstream git, right [https://android.googlesource.com/platform/frameworks/av/+/32d6e5f0ebe9e00f80401e5f4fd6e285a474590d/media/libstagefright/MPEG4Extractor.cpp#880 before] the cprt code block: &amp;quot;if((*offset + chunk_size) - data_offset &amp;lt; 0)fail&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This fixed skater31hax + any other mp4 haxx which requires using a negative 64bit chunk_size value.&lt;br /&gt;
&lt;br /&gt;
The filepath base used in the assert strings were changed from &amp;quot;d:\Jenkins\workspace\MPSkaterBuild\MVPlayer\Skater\Base\Android\frameworks\base\media\libstagefright\&amp;quot; to &amp;quot;d:\jenkins\workspace\MPSkaterBuild-Git\Base\Android\frameworks\base\media\libstagefright\&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== New3DS Browser Specifications ===&lt;br /&gt;
[http://www.nintendo.co.jp/3ds/new/features/modal_net.html]&lt;br /&gt;
&lt;br /&gt;
English version:&lt;br /&gt;
* &amp;quot;Browser engine: NetFront® Browser NX v3.0&amp;quot;&lt;br /&gt;
* &amp;quot;User agent: Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML and like Gecko) NX/3.0.*.*.* Mobile NintendoBrowser/1.0.**** JP&lt;br /&gt;
* ** Version information is stated.&lt;br /&gt;
* *** When using the “Mobile version request” function, it differs from the above-mentioned character string&amp;quot;&lt;br /&gt;
* &amp;quot;Supported protocols: HTTP1.0/HTTP1.1/SSL3.0/TLS1.0/TLS1.1/TLS1.2&amp;quot;&lt;br /&gt;
* &amp;quot;Web standard: HTML4.01 / HTML5 / XHTML1.1 / Fullscreen API / Gamepad API / SVG / WebSocket / Video Subtitle / WOFF / Web Messaging / Server-Sent / Web Storage (partial) / XMLHttpRequest / Canvas element / Video / DOM Levels 1-3 / ECMAScript / CSS1 / CSS2.1 / CSS3 (partial)&amp;quot;&lt;br /&gt;
* &amp;quot;Image format: bmp / ​​gif / ico / jpeg / png / svg (There are, however, possibilities that some images won&#039;t display.)&amp;quot;&lt;br /&gt;
* &amp;quot;Image preview: mpo / jpeg (There are, however, possibilities that some images won&#039;t display.)&amp;quot;&lt;br /&gt;
* &amp;quot;Video format: MP4, M3U8 + TS (HTTPLiveStreaming) (There are, however, some videos that may not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Video codec: H.264 - MPEG-4 AVC Video (max 854x480 at level 3.2, 3D compatible) (There are, however, some videos that can not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Audio codec: AAC - ISO / IEC 14496-3 MPEG-4AAC, MP3 (There are, however, some videos that can not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Format for uploading 3D videos: .mkv (In order to be played, videos must be converted to the appropriate format within the site you are uploading to. In some cases, the video will not play even if converted.)&amp;quot;&lt;br /&gt;
* &amp;quot;Plug-ins: Plug-ins such as Adobe Flash are not supported&amp;quot;&lt;br /&gt;
* &amp;quot;Active Rating System filtering: provided by Digital Arts, Inc.. Access to web content can be limited based on its category information, restricting access to web content that may result inappropriate.&amp;quot;&lt;br /&gt;
* &amp;quot;Websites can be requested to provide the mobile version (However, if the web page does not have a mobile version, it won&#039;t change the way it&#039;s displayed.)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
MJPEG + .avi is also supported.&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
* The html &amp;quot;color&amp;quot; &amp;lt;input&amp;gt; type is not supported.&lt;br /&gt;
&lt;br /&gt;
== Old3DS browser ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Old3DS Browser Specifications ===&lt;br /&gt;
* &amp;quot;Browser engine: NetFront® Browser&amp;quot;&lt;br /&gt;
* &amp;quot;User agent: Mozilla/5.0 (Nintendo 3DS; region; ; en) Version/1.7498.US&amp;quot;&lt;br /&gt;
* &amp;quot;Supported protocols: HTTP1.0/HTTP1.1/SSLv3/TLS1.0&amp;quot;&lt;br /&gt;
* &amp;quot;Web standard: HTML 4.01/XHTML 1.1/CSS 1/CSS 2.1/CSS 3 (partial functionality)/DOM Levels 1-3/ECMAScript/XMLHttpRequest/Canvas Element (partial functionality)&amp;quot;&lt;br /&gt;
* &amp;quot;Image format: MPO / GIF / JPEG / PNG / BMP / ICO (some images cannot be displayed)&amp;quot;&lt;br /&gt;
* &amp;quot;Plug-ins: Plug-ins such as Adobe Flash are not supported&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Old3DS browser doesn&#039;t support events &amp;quot;focusin&amp;quot; and &amp;quot;focusout&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== User-Agent and Browser Versions ===&lt;br /&gt;
User-agent format: &amp;lt;code style=&amp;quot;font-size:larger;&amp;quot;&amp;gt;Mozilla/5.0 (Nintendo 3DS; U; ; &amp;lt;lang&amp;gt;) Version/&amp;lt;version&amp;gt;.&amp;lt;region&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lang&amp;gt; is &amp;quot;en&amp;quot;, &amp;quot;fr&amp;quot;, etc. &amp;lt;region&amp;gt; is &amp;quot;US&amp;quot;, &amp;quot;EU&amp;quot;, etc. See below for &amp;lt;version&amp;gt;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Browser version&lt;br /&gt;
! CDN Title-version&lt;br /&gt;
! Network-only system-update version&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.7412&lt;br /&gt;
| v6&lt;br /&gt;
| [[2.0.0-2|2.0.0-2]]&lt;br /&gt;
| This was the initial version.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7455&lt;br /&gt;
| v1024&lt;br /&gt;
| [[2.1.0-4]]&lt;br /&gt;
| ExeFS .code was updated, both of the CROs(webkit/OSS) were updated too.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7498&lt;br /&gt;
| v2050&lt;br /&gt;
| [[4.0.0-7]]&lt;br /&gt;
| ExeFS .code was updated, both of the CROs(webkit/OSS) were updated too. The manual CFA was updated as well.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7538&lt;br /&gt;
| v0&lt;br /&gt;
| [[4.2.0-9]]&lt;br /&gt;
| First version of the KOR browser. The CROs are different from the  USA/EUR/JPN [[4.0.0-7]] browser.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7552&lt;br /&gt;
| v3075&lt;br /&gt;
| [[5.0.0-11]]&lt;br /&gt;
| ExeFS .code and icon were updated, both of the CROs(webkit/OSS) were updated too. The manual CFA was updated as well.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7552&lt;br /&gt;
| v3088&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| The main NCCH wasn&#039;t updated at all(same TMD contentID/content-hash as the previous version), only the manual CFA for this title was updated.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7567&lt;br /&gt;
| v4096&lt;br /&gt;
| [[7.1.0-16]]&lt;br /&gt;
| The CXI .code was updated, some data in the RomFS was updated(none of the CROs such as webkit.cro were updated). The manual CFA was updated too.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7585&lt;br /&gt;
| v5121&lt;br /&gt;
| [[9.5.0-23]]&lt;br /&gt;
| The CXI .code was updated, and the manual CFA was updated. RomFS changes:&lt;br /&gt;
* &amp;quot;/browser/rootca.pem&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/oss.cro&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/static.crs&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/webkit.cro&amp;quot; updated&lt;br /&gt;
* &amp;quot;/.crr/static.crr&amp;quot; updated&lt;br /&gt;
* &amp;quot;/layout/dialogheader/WirelessSwitchOff.arc&amp;quot; was removed&lt;br /&gt;
* &amp;quot;/layout/favorite/favicondata/KOR.arc&amp;quot; updated&lt;br /&gt;
&lt;br /&gt;
A vuln used in a public(at the time of this sysupdate) webkit exploit for spider was fixed, which also fixed the removewinframe exploit from [https://github.com/yellows8/3ds_webkithax here].&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| v6147&lt;br /&gt;
| v9.9 CUP&lt;br /&gt;
| v9.9 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7610&lt;br /&gt;
| v6149&lt;br /&gt;
| [[9.9.0-26]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7616&lt;br /&gt;
| v7168&lt;br /&gt;
| [[10.2.0-28]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7622&lt;br /&gt;
| v8192&lt;br /&gt;
| [[10.6.0-31]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| v9216&lt;br /&gt;
| v10.7 CUP&lt;br /&gt;
| v10.7 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7625&lt;br /&gt;
| v9232&lt;br /&gt;
| [[10.7.0-32]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7630&lt;br /&gt;
| v10240&lt;br /&gt;
| [[11.1.0-34]]&lt;br /&gt;
| See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Heap ===&lt;br /&gt;
The USA/EUR/JPN + KOR browser allocates the 0x08000000 heap with size 0x01A97000. The size used by the CHN and TWN browser is 0x01997000, exactly 0x100000-bytes smaller.&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v9.9 ===&lt;br /&gt;
ExeFS:/.code was updated.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS were file-updating, the following files were updated:&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/spider.msbt&lt;br /&gt;
 /message/EU_Dutch/spider.msbt&lt;br /&gt;
 /message/EU_English/spider.msbt&lt;br /&gt;
 /message/EU_French/spider.msbt&lt;br /&gt;
 /message/EU_German/spider.msbt&lt;br /&gt;
 /message/EU_Italian/spider.msbt&lt;br /&gt;
 /message/EU_Portuguese/spider.msbt&lt;br /&gt;
 /message/EU_Russian/spider.msbt&lt;br /&gt;
 /message/EU_Spanish/spider.msbt&lt;br /&gt;
 /message/JP_Japanese/spider.msbt&lt;br /&gt;
 /message/KR_Hangeul/spider.msbt&lt;br /&gt;
 /message/TW_English/spider.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/spider.msbt&lt;br /&gt;
 /message/US_English/spider.msbt&lt;br /&gt;
 /message/US_French/spider.msbt&lt;br /&gt;
 /message/US_Portuguese/spider.msbt&lt;br /&gt;
 /message/US_Spanish/spider.msbt&lt;br /&gt;
&lt;br /&gt;
OSS diff for v9.5 and v9.9, without the .dox changes:&lt;br /&gt;
&lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/WKC/WebKit/WKC/webkit/WKCVersion.h b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index be5ff09..55a7274 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.14&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.16&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;532.7&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/webkit/WebCore/rendering/RenderBox.cpp b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 index da4127e..d03403e 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 @@ -305,23 +305,23 @@ int RenderBox::scrollHeight() const&lt;br /&gt;
  &lt;br /&gt;
  int RenderBox::scrollLeft() const&lt;br /&gt;
  {&lt;br /&gt;
 -    return hasOverflowClip() ? layer()-&amp;gt;scrollXOffset() : 0;&lt;br /&gt;
 +    return layer() &amp;amp;&amp;amp; hasOverflowClip() ? layer()-&amp;gt;scrollXOffset() : 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int RenderBox::scrollTop() const&lt;br /&gt;
  {&lt;br /&gt;
 -    return hasOverflowClip() ? layer()-&amp;gt;scrollYOffset() : 0;&lt;br /&gt;
 +    return layer() &amp;amp;&amp;amp; hasOverflowClip() ? layer()-&amp;gt;scrollYOffset() : 0;&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  void RenderBox::setScrollLeft(int newLeft)&lt;br /&gt;
  {&lt;br /&gt;
 -    if (hasOverflowClip())&lt;br /&gt;
 +    if (hasOverflowClip() &amp;amp;&amp;amp; layer())&lt;br /&gt;
          layer()-&amp;gt;scrollToXOffset(newLeft);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  void RenderBox::setScrollTop(int newTop)&lt;br /&gt;
  {&lt;br /&gt;
 -    if (hasOverflowClip())&lt;br /&gt;
 +    if (hasOverflowClip() &amp;amp;&amp;amp; layer())&lt;br /&gt;
          layer()-&amp;gt;scrollToYOffset(newTop);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.2 ===&lt;br /&gt;
The slider vuln from [https://github.com/yellows8/3ds_webkithax here] was fixed in the Old3DS browser.&lt;br /&gt;
&lt;br /&gt;
The main codebin .text only increased by 0x10-bytes.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS was that the following files were updated:&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
&lt;br /&gt;
OSS diff:&lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index 55a7274..fc153c4 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.16&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.17&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;532.7&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderSlider.cpp b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 index b2f5cef..1dd3dbd 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 @@ -221,6 +221,7 @@ RenderSlider::~RenderSlider()&lt;br /&gt;
  {&lt;br /&gt;
      if (m_thumb)&lt;br /&gt;
          m_thumb-&amp;gt;detach();&lt;br /&gt;
 +    m_thumb = 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int RenderSlider::baselinePosition(bool, bool) const&lt;br /&gt;
 @@ -493,7 +494,8 @@ void RenderSlider::forwardEvent(Event* event)&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
  &lt;br /&gt;
 -    m_thumb-&amp;gt;defaultEventHandler(event);&lt;br /&gt;
 +    if (m_thumb)&lt;br /&gt;
 +        m_thumb-&amp;gt;defaultEventHandler(event);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  bool RenderSlider::inDragMode() const&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.6 ===&lt;br /&gt;
[[browserhax|spider28hax]] was fixed. The &amp;quot;2^32 characters long string&amp;quot; vuln described [[3DS_Userland_Flaws|here]] was &#039;&#039;finally&#039;&#039; fixed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;A lot&#039;&#039; of WebKit issues/vulns were fixed, see [https://gist.github.com/yellows8/b1e10caa1d8bb8a46316 here] for the changes.&lt;br /&gt;
&lt;br /&gt;
libpng was updated from version 1.4.12 to 1.4.19. zlib was updated from 1.2.7 to 1.2.8.&lt;br /&gt;
&lt;br /&gt;
The .text size increased by 0x478-bytes.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS was that the following files were updated:&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /manual/Manual.bcma&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.7 ===&lt;br /&gt;
&#039;&#039;Nothing&#039;&#039; changed except some words for version-values in .text being updated(RomFS wasn&#039;t changed), code for browser-version-check was [[#v10.7_2|updated]].&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v11.1 ===&lt;br /&gt;
Nothing changed in the ExeFS codebin besides the usual version values. The following files in RomFS were updated:&lt;br /&gt;
  /cro/oss.cro&lt;br /&gt;
  /cro/webkit.cro&lt;br /&gt;
  /.crr/static.crr&lt;br /&gt;
&lt;br /&gt;
== Forced system-update ==&lt;br /&gt;
The Old3DS/New3DS Internet Browser updated with [[9.9.0-26]] added the following message strings:&lt;br /&gt;
 In order to use the Internet &lt;br /&gt;
 browser, a system update &lt;br /&gt;
 is required.&lt;br /&gt;
 To perform a system update, &lt;br /&gt;
 select System Update from Other&lt;br /&gt;
 Settings in System Settings.&lt;br /&gt;
&lt;br /&gt;
 The Internet browser cannot be&lt;br /&gt;
 used at this time.&lt;br /&gt;
 Please check your network&lt;br /&gt;
 environment or try again later.&lt;br /&gt;
&lt;br /&gt;
For whatever reason, the above &#039;&#039;message strings&#039;&#039; were removed with New3DS-browser v10.2, then re-added with v10.4. This does not apply to the Old3DS browser. Whenever v10.2 New3DS browser tries to use these message-strings for displaying a browser-update-related message, it will crash due to an assert failing since the message-strings are missing. Hence, if/when the v10.2 update-check page is ever updated where the browser tries to display a message for it, or when accessing that page fails, the browser will automatically crash.&lt;br /&gt;
&lt;br /&gt;
This wasn&#039;t enforced(web-browser displaying the above message when the installed browser isn&#039;t the latest version) until October 26, 2015.&lt;br /&gt;
&lt;br /&gt;
This message only triggers when attempting to load a web-page. This is only handled the first time the browser accesses a web-page, during this browser session.&lt;br /&gt;
&lt;br /&gt;
The browser codebins starting with v9.9 now contain the following URL strings:&lt;br /&gt;
* Old3DS: &amp;lt;nowiki&amp;gt;&amp;quot;https://cbvc.cdn.nintendo.net/CTR/1/&amp;lt;region&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* New3DS: &amp;lt;nowiki&amp;gt;&amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/1/&amp;lt;region&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;region&amp;gt; string is one of the following:&lt;br /&gt;
* &amp;quot;JPN&amp;quot;&lt;br /&gt;
* &amp;quot;USA&amp;quot;&lt;br /&gt;
* &amp;quot;EUR&amp;quot;&lt;br /&gt;
* &amp;quot;KOR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Starting with the browser from [[10.2.0-28]], the &amp;quot;1&amp;quot; in the above URLs were changed to &amp;quot;2&amp;quot;. With the New3DS browser from [[10.4.0-29]], it&#039;s now &amp;quot;3&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
As of October 26, 2015, the &amp;quot;1&amp;quot; URLs return the browser-version for v9.9(decimal number as a string without any &amp;quot;.&amp;quot;), while the &amp;quot;2&amp;quot; URLs returns 0.&lt;br /&gt;
&lt;br /&gt;
 if(internal_browserver &amp;gt; server_browserver)&lt;br /&gt;
 {&lt;br /&gt;
     &amp;lt;safe&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
 else&lt;br /&gt;
 {&lt;br /&gt;
     &amp;lt;update message&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Hence, internal_browserver == server_browserver will trigger the sysupdate message, which appears to be the normal way to indicate that the current browser is outdated(see above).&lt;br /&gt;
&lt;br /&gt;
There is a cache for this in savedata. The request is only done when at least 24-hours have passed since the last time the request was done(see the below savedata section).&lt;br /&gt;
&lt;br /&gt;
It is still possible to guard against this update by blocking the previous URLs using a proxy. &lt;br /&gt;
It is not possible to remove the update message by entering the [[Recovery Mode]].&lt;br /&gt;
&lt;br /&gt;
=== Page request ===&lt;br /&gt;
For this request, all root-CAs bundled with the browser are trusted, in addition to two of the SSL module builtin Nintendo root-CAs.&lt;br /&gt;
&lt;br /&gt;
The browser(with New3DS at least) does the following with [[HTTP_Services|HTTPC]] for requesting the above page:&lt;br /&gt;
* Initializes the HTTP context and uses [[HTTPC:InitializeConnectionSession]] + [[HTTPC:SetProxyDefault]].&lt;br /&gt;
* Uses [[HTTP_Services|HTTPC]] command 0x250080 twice with cmd[1]=contexthandle: first time cmd[2]=0x3, second time cmd[2]=0x6.&lt;br /&gt;
* Then [[HTTPC:AddTrustedRootCA]] is used 48 times to setup 48 trusted root CAs. This appears to be every cert in the browser &amp;quot;romfs:/browser/rootca.pem&amp;quot; file converted to DER, in the same order from there(in other words, every single root CA the browser trusts by default for normal web-browsing).&lt;br /&gt;
* Then [[HTTPC:BeginRequest]] is used.&lt;br /&gt;
* Then [[HTTPC:ReceiveDataTimeout]] is used, the recv-size seems to be fixed to 0x20.&lt;br /&gt;
* Then [[HTTPC:GetResponseStatusCodeTimeout]] is used.&lt;br /&gt;
* Then [[HTTPC:GetDownloadSizeState]] is used.&lt;br /&gt;
* Then the HTTP context is closed.&lt;br /&gt;
&lt;br /&gt;
Raw request data(New3DS USA v10.2 browser):&lt;br /&gt;
 000000: 47 45 54 20 2f 53 4e 41 4b 45 2f 32 2f 55 53 41  GET /SNAKE/2/USA&lt;br /&gt;
 000010: 20 48 54 54 50 2f 31 2e 31 0d 0a 48 6f 73 74 3a   HTTP/1.1..Host:&lt;br /&gt;
 000020: 20 63 62 76 63 2e 63 64 6e 2e 6e 69 6e 74 65 6e   cbvc.cdn.ninten&lt;br /&gt;
 000030: 64 6f 2e 6e 65 74 0d 0a 0d 0a                    do.net....&lt;br /&gt;
&lt;br /&gt;
=== v10.7 ===&lt;br /&gt;
The only actual code change with Old3DS/New3DS browser v10.7 was that the code which calculates the diff_timestamp was moved to immediately after the block which initializes &amp;lt;state_timestamp&amp;gt; when &amp;lt;state_timestamp&amp;gt; is all-zero. This fixed the browser-version-check [[3DS_Userland_Flaws|bypass]].&lt;br /&gt;
&lt;br /&gt;
== v9.9+/v10.7+ dummy web-browser ==&lt;br /&gt;
Gamecards v9.9 and above include, with their sysupdate, a dummy Old3DS/New3DS web-browser. The *only* thing this title does is display the same message listed in the above forced-update section. The message files in RomFS *only* contain that message string above. There are no &amp;quot;http&amp;quot; strings in the main codebin, and [[RO_Services|RO]] isn&#039;t used either(no CRO data in RomFS at all). Both browsers are internally called &amp;quot;dummySpider&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Hence, if you update your system below v9.8 with any v9.9 or above gamecard, the system web-browser will be rendered *completely* useless until you install a system-update from CDN(no network requests involved here).&lt;br /&gt;
&lt;br /&gt;
Gamecards v10.7 and above include an updated dummy web-browser, where the only difference is the title version.&lt;br /&gt;
&lt;br /&gt;
== Savedata ==&lt;br /&gt;
=== New3DS ===&lt;br /&gt;
On newer SKATER versions, it appears *all* NAND savedata is stored under the [[System_SaveData|0x000200BB]] savedata.&lt;br /&gt;
&lt;br /&gt;
==== 0x000200BB savedata ====&lt;br /&gt;
This only contains &amp;quot;t.bin&amp;quot; with filesize 0xadf80, the format is below.&lt;br /&gt;
&lt;br /&gt;
The timestamp format used here is the number of milliseconds since January 1, 2000(local-time).&lt;br /&gt;
&lt;br /&gt;
When using the &amp;quot;Initialize savedata&amp;quot; option in the browser, that deletes this savedata file/image then exits the browser. This file is then re-created when the browser gets started again.&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;
| 0x68&lt;br /&gt;
| 0x4?&lt;br /&gt;
| This counter is incremented each time the savedata is written.&lt;br /&gt;
|-&lt;br /&gt;
| 0x70&lt;br /&gt;
| 0x8&lt;br /&gt;
| Timestamp for when the savedata was last written.&lt;br /&gt;
|-&lt;br /&gt;
| 0x94&lt;br /&gt;
| 0x15?&lt;br /&gt;
| This is all-zeros on non-JPN systems. On JPN systems where the browser filter is disabled, this is a string in the following format: &amp;quot;4110-%016llX&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD8&lt;br /&gt;
| 0x8&lt;br /&gt;
| s64 timestamp, can be either a normal positive timestamp or a relative negative one. Used with the forced-update described above. When an update is detected this timestamp is negative, otherwise this is a normal positive timestamp(it&#039;s unknown how exactly this timestamp is checked). When positive, this seems to be the last time the forced-update HTTPS request was done where no update was needed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==APT Parameters==&lt;br /&gt;
The URL to load can optionally be loaded from char[] string [[APT:SendParameter|paramblk+0]]. This is used when scanning URL QR-codes in Home Menu / etc.&lt;br /&gt;
&lt;br /&gt;
==Errors==&lt;br /&gt;
&amp;quot;Failed to load part of this page&amp;quot;: This can be caused by failing to load &amp;quot;/favicon.ico&amp;quot;. For example, this can be caused by loading a plain HTTP page, with plain-http favicon redirecting to HTTPS. If cert-verify then fails with favicon in this case, this error would then trigger.&lt;br /&gt;
&lt;br /&gt;
==Other details==&lt;br /&gt;
&lt;br /&gt;
*It scored 90/100 on [http://acid3.acidtests.org/ Acid3] test&lt;br /&gt;
*Images from the Internet can be saved to the [[SD Filesystem|SD Card]] and viewed using the [[Nintendo 3DS Camera]] application.&lt;br /&gt;
*Images saved to an [[SD Filesystem|SD Card]] or to the Nintendo 3DS system memory can be uploaded to blogs or other sites that allow the uploading of photos using :&lt;br /&gt;
 &amp;lt;input type=&amp;quot;file&amp;quot; /&amp;gt;&lt;br /&gt;
* HTML5Test.com say that Drag and drop is supported but it&#039;s not (code on WebKit is ready, but it&#039;s not implemented on interface of browser)&lt;br /&gt;
&lt;br /&gt;
==Tips==&lt;br /&gt;
&lt;br /&gt;
=== Detect User Agent ===&lt;br /&gt;
&lt;br /&gt;
To detect if the user agent is Nintendo 3DS Browser :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
     if (navigator.userAgent.indexOf(&#039;Nintendo 3DS&#039;) == -1) { //If the UserAgent is not &amp;quot;Nintendo 3DS&amp;quot;&lt;br /&gt;
         location.replace(&#039;http://www.3dbrew.org&#039;); //Redirect to an other page&lt;br /&gt;
     }&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* You can check &amp;lt;em&amp;gt;navigator.platform==&amp;quot;Nintendo 3DS&amp;quot;&amp;lt;/em&amp;gt; as well.&lt;br /&gt;
&lt;br /&gt;
=== Scrolling ===&lt;br /&gt;
&lt;br /&gt;
Scrolling can be altered by modifying &amp;lt;em&amp;gt;document.body.scrollTop&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;document.body.scrollLeft&amp;lt;/em&amp;gt;.  However, there are drawbacks related to working with these properties:&lt;br /&gt;
&lt;br /&gt;
* Both properties return 0 when accessed&lt;br /&gt;
* Setting one property resets the other property&#039;s scroll position&lt;br /&gt;
&lt;br /&gt;
In order to set both at the same time (without either resetting to 0), use &amp;lt;em&amp;gt;window.scrollTo&amp;lt;/em&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Events ===&lt;br /&gt;
==== Key Events ====&lt;br /&gt;
The following buttons trigger the &amp;lt;em&amp;gt;onkeydown&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;onkeypress&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;onkeyup&amp;lt;/em&amp;gt; events:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;20%&amp;quot;&lt;br /&gt;
! Code !! Button &lt;br /&gt;
|-&lt;br /&gt;
| 13 || A&lt;br /&gt;
|-&lt;br /&gt;
| 37 || Left&lt;br /&gt;
|-&lt;br /&gt;
| 38 || Up&lt;br /&gt;
|-&lt;br /&gt;
| 39 || Right&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Down&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The events cannot have their default action cancelled.  Other buttons do not trigger key events.&lt;br /&gt;
&lt;br /&gt;
==== Touch/Mouse Events ====&lt;br /&gt;
&amp;lt;em&amp;gt;onmousedown&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;onmouseup&amp;lt;/em&amp;gt; &amp;amp; &amp;lt;em&amp;gt;onclick&amp;lt;/em&amp;gt; are all triggered by the browser.  However, the &amp;lt;em&amp;gt;onmousedown&amp;lt;/em&amp;gt; event doesn&#039;t trigger until you lift the stylus or you&#039;ve held it on the screen for ~2 seconds—which is when text selection mode is activated—making it pretty much the same as &amp;lt;em&amp;gt;onmouseup&amp;lt;/em&amp;gt;.  The events cannot have their default action cancelled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;em&amp;gt;onmousemove&amp;lt;/em&amp;gt; and common touch/gesture events are not supported.&lt;br /&gt;
&lt;br /&gt;
== Screen Resolution ==&lt;br /&gt;
&lt;br /&gt;
The up screen resolution is 400×240. However, the viewable area in the browser is only &amp;lt;b&amp;gt;400×220&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The touch screen resolution is 320×240. However, the viewable area in the browser is only &amp;lt;b&amp;gt;320×212&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can have a page span both screens. However, the browser will behave as if the bottom screen is the only active screen and the top screen is scrolled off. This is important when computing CSS coordinates. Items positioned from &amp;quot;bottom&amp;quot; will be positioned based on 220px and not the full 432px of both screens.&lt;br /&gt;
&lt;br /&gt;
== Using Both Screens ==&lt;br /&gt;
&lt;br /&gt;
Generally the easiest way to accomplish the correct layout is to create HTML elements that &amp;quot;contain&amp;quot; the top and bottom screens. Here&#039;s an example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
   &amp;lt;head&amp;gt;&lt;br /&gt;
     &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=400&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;style&amp;gt;&lt;br /&gt;
       body{margin:0px;}&lt;br /&gt;
       #topscreen{width:400px;height:220px;overflow:hidden;}&lt;br /&gt;
       #bottomscreen{width:320px;height:212px;overflow:hidden;margin:0 auto;}&lt;br /&gt;
     &amp;lt;/style&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div id=&amp;quot;topscreen&amp;quot;&amp;gt;Top Screen&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div id=&amp;quot;bottomscreen&amp;quot;&amp;gt;Bottom Screen&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This scheme allows the page to be easily manipulated through JavaScript.  In order to have the window snap to the correct position, use the following JavaScript code:&lt;br /&gt;
&lt;br /&gt;
 window.setInterval(function () {&lt;br /&gt;
     window.scrollTo(40, 220);  &lt;br /&gt;
 }, 50);&lt;br /&gt;
&lt;br /&gt;
This automatically resets the position if the user accidentally scrolls the page.&lt;br /&gt;
&lt;br /&gt;
==Example Sites==&lt;br /&gt;
&amp;lt;!-- If you have a website that demonstrates these techniques, place it here! --&amp;gt;&lt;br /&gt;
* [http://www.nintendo.com/3ds/internetbrowser/bookmarks Nintendo 3DS Bookmarks] - This is the first bookmark pre-installed in the browser.&lt;br /&gt;
* [http://3ds.andysmith.co.uk/jFox.html jFox] (Short URL: http://bit.ly/iB7FqW)&lt;br /&gt;
* [http://ditto3d.com/3ds Ditto3D] (Short URL: http://bit.ly/oVreWA)&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Internet_Browser&amp;diff=18300</id>
		<title>Internet Browser</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Internet_Browser&amp;diff=18300"/>
		<updated>2016-09-26T07:20:43Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* User-Agent and Browser Versions */ old 3DS browser versions + dummy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The 3DS Internet Browser was added in the June 2011 Update for JPN/EUR/USA.&lt;br /&gt;
&lt;br /&gt;
From the Internet Browser help section:&lt;br /&gt;
In compliance with the LGPL, the source code of the OSS is available via the Nintendo website.&lt;br /&gt;
This source code can be downloaded here:&lt;br /&gt;
[http://mediacontent.nintendo-europe.com/NOE/images/service/OpenSources.zip] [http://www.nintendo.co.jp/support/oss/index.html]&lt;br /&gt;
&lt;br /&gt;
The 3DS Internet Browser is [http://en.wikipedia.org/wiki/Netfront Netfront] Browser NX v1.0 based on [http://en.wikipedia.org/wiki/WebKit WebKit] engine.&lt;br /&gt;
&lt;br /&gt;
On O3DS the exheader name of this title is &amp;quot;SPIDER&amp;quot;; on N3DS, &amp;quot;SKATER&amp;quot;.&lt;br /&gt;
The only difference between the ExeFS .code for each region of the Old3DS/New3DS browser, is byte values for the title uniqueID/region.&lt;br /&gt;
&lt;br /&gt;
A [[#v9.9_dummy_web-browser|&amp;quot;dummy&amp;quot; browser]] (which replaces the actual browser) is being included with cartdrige games shipping with system updates starting with [[9.9.0-26|9.9.0-X]]. &lt;br /&gt;
In addition, versions of the real browser since 9.9.0-26X attempt to [[#Forced_system-update|check-in with a Nintendo server]] to determine if the existing browser version is out of date.&lt;br /&gt;
&lt;br /&gt;
==[[New 3DS]] Internet Browser==&lt;br /&gt;
New3DS has a separate browser title, with the exheader name &amp;quot;SKATER&amp;quot;.&lt;br /&gt;
Unlike the Old3DS browser, the New3DS browser has videos+HTML5 support. &lt;br /&gt;
&lt;br /&gt;
This browser also has a filter enabled by default in the JPN version. &lt;br /&gt;
Disabling it requires paying money with a credit-card, for [[NIM_Services|purchasing]] web-browser [[Title_list/DLC|DLC]].&lt;br /&gt;
During startup the browser does various HTTPS comms. When visting an URL, the browser sends a plaintext HTTP POST here: [http://ars.ifuser.jp:20080/ars2/rating]. The raw POST data begins with &amp;quot;ARS/2.0\r\n\x00&amp;quot;, the rest appears to be encrypted. The server reply content also has this ARS header + encrypted data. This appears to use a fixed xorpad, likely from a fixed encryption CTR/IV. The server content responses for allowed sites, and blocked sites, are fixed. When the server returns that the site is blocked, the browser goes to this page: [http://ars.ifuser.jp/filter/44.html](the Referrer header value is set to the same URL it&#039;s actually requesting).&lt;br /&gt;
&lt;br /&gt;
The WebKit source was updated since the Old3DS browser.&lt;br /&gt;
The New3DS browser uses the following services: [[MVD_Services|mvd:STD]] and [[IR_Services|ir:rst]](DLC-related services are used too but those aren&#039;t New3DS specific).&lt;br /&gt;
Video decoding is done with [[MVD_Services|mvd:STD]]. Audio decoding/playback is done with a browser-specific DSP binary. The Old3DS browser used CSND for audio playback, the New3DS browser doesn&#039;t have access to that at all since it uses DSP instead.&lt;br /&gt;
&lt;br /&gt;
=== Video / libstagefright ===&lt;br /&gt;
The browser manual includes licenses for Android and PacketVideo. The browser uses libstagefright from Android. Just like WebKit, the browser appears to use a very old version of libstagefright with security/other changes back-ported(for example, the v10.7 browser libstagefright codebase seems to be older than [https://android.googlesource.com/platform/frameworks/av/+/ec77122351b4e78c1fe5b60a208f76baf8c67591%5E%21/media/libstagefright/MPEG4Extractor.cpp this]). This codebase is missing certain chunk-parsing code for 3GP.&lt;br /&gt;
&lt;br /&gt;
HTTP for libstagefright is internally handled with [[HTTP_Services|HTTPC]], with a similar(?) set of RootCAs as for browser-version-check.&lt;br /&gt;
&lt;br /&gt;
===User-Agent and Browser Versions===&lt;br /&gt;
Normal user-agent format: &amp;lt;code style=&amp;quot;font-size:larger;&amp;quot;&amp;gt;Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/&amp;lt;WebKit version&amp;gt; (KHTML, like Gecko) NX/&amp;lt;Netfront version&amp;gt; Mobile NintendoBrowser/&amp;lt;Mobile NintendoBrowser version&amp;gt;.&amp;lt;region&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;region&amp;gt; can be one of the following: &amp;quot;JP&amp;quot;, &amp;quot;US&amp;quot;, or &amp;quot;EU&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Mobile User-Agent is always &amp;lt;code&amp;gt;Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Mobile NintendoBrowser version(displayed in browser settings)&lt;br /&gt;
! Normal UA&lt;br /&gt;
! CDN Title-version&lt;br /&gt;
! Network-only system-update version&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.9934&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.8 Mobile NintendoBrowser/1.0.9934.&amp;lt;region&amp;gt;&lt;br /&gt;
| v10&lt;br /&gt;
| [[9.0.0-20]]&lt;br /&gt;
| Initial version.&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.9996&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.10 Mobile NintendoBrowser/1.1.9996.&amp;lt;region&amp;gt;&lt;br /&gt;
| v1027&lt;br /&gt;
| [[9.3.0-21]]&lt;br /&gt;
| See below regarding OSS changes.&lt;br /&gt;
|-&lt;br /&gt;
| 1.2.10085&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.13 Mobile NintendoBrowser/1.2.10085.&amp;lt;region&amp;gt;&lt;br /&gt;
| v2051&lt;br /&gt;
| [[9.6.0-24]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v3075&lt;br /&gt;
| v9.9 CUP&lt;br /&gt;
| v9.9 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.10126&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.15 Mobile NintendoBrowser/1.3.10126.&amp;lt;region&amp;gt;&lt;br /&gt;
| v3077&lt;br /&gt;
| [[9.9.0-26]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.10138&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.17 Mobile NintendoBrowser/1.4.10138.&amp;lt;region&amp;gt;&lt;br /&gt;
| v4096&lt;br /&gt;
| [[10.2.0-28]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.5.10143&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.5.10143.&amp;lt;region&amp;gt;&lt;br /&gt;
| v5121&lt;br /&gt;
| [[10.4.0-29]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.6.10147&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.6.10147.&amp;lt;region&amp;gt;&lt;br /&gt;
| v6144&lt;br /&gt;
| [[10.6.0-31]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v7168&lt;br /&gt;
| v10.7 CUP&lt;br /&gt;
| v10.7 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7.10150&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.7.10150.&amp;lt;region&amp;gt;&lt;br /&gt;
| v7184&lt;br /&gt;
| [[10.7.0-32]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.8.10156&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.20 Mobile NintendoBrowser/1.8.10156.&amp;lt;region&amp;gt;&lt;br /&gt;
| v8192&lt;br /&gt;
| [[11.1.0-34]]&lt;br /&gt;
| See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the latest Old3DS browser WebKit version at the time the initial New3DS browser was released, was the following: 532.8.&lt;br /&gt;
&lt;br /&gt;
The first version of the KOR New3DS browser was v9.6(which was when the New3DS KOR titles were originally added). Each version of the KOR browser has the same NintendoBrowser version as the other regions. The KOR browser has been only updated when the browser for the other regions were updated, hence the title-versions are the same as well. The KOR browser ExeFS .code is different from the other regions(more than just region-related IDs etc).&lt;br /&gt;
&lt;br /&gt;
==== OSS 9.0 and 9.3 diff ====&lt;br /&gt;
The following is a diff of the OSS archives from [http://www.nintendo.co.jp/support/oss/index.html here], for v9.0 and v9.3.&lt;br /&gt;
&lt;br /&gt;
 Files NewNintendo3DS_OpenSources9.0.0-/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp and NewNintendo3DS_OpenSources9.3.0-/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp differ&lt;br /&gt;
 Files NewNintendo3DS_OpenSources9.0.0-/WKC/WebKit/WKC/webkit/WKCVersion.h and NewNintendo3DS_OpenSources9.3.0-/WKC/WebKit/WKC/webkit/WKCVersion.h differ&lt;br /&gt;
&lt;br /&gt;
WKC_CUSTOMER_RELEASE_VERSION was changed from &amp;quot;0.5.8&amp;quot; to &amp;quot;0.5.10&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following code was added to ResourceHandleManager::doRedirect(): curl_easy_setopt(d-&amp;gt;m_handle, CURLOPT_SHARE, 0);&lt;br /&gt;
&lt;br /&gt;
==== v9.6 ====&lt;br /&gt;
WebKit/OSS code was actually updated.&lt;br /&gt;
ExeFS .code was updated. The following files in RomFS were updated:&lt;br /&gt;
* &amp;quot;/banner/CN/Skater.icn&amp;quot; and &amp;quot;/banner/KR/Skater.icn&amp;quot;.&lt;br /&gt;
* &amp;quot;/browser/rootca.pem&amp;quot;&lt;br /&gt;
* &amp;quot;/build/buildinfo.dat&amp;quot;&lt;br /&gt;
* &amp;quot;/cairo.cro.lex&amp;quot; and &amp;quot;/.crr/static.crr&amp;quot;&lt;br /&gt;
* &amp;quot;/lyt/Button/ButtonSelectHSearch.arc&amp;quot;&lt;br /&gt;
* &amp;quot;/lyt/Kbd/Swkbd.arc&amp;quot;&lt;br /&gt;
* &amp;quot;lyt/Kbd.arc&amp;quot;&lt;br /&gt;
* &amp;quot;skater.msbt&amp;quot; under all of the &amp;quot;/message/&amp;lt;region&amp;gt;_&amp;lt;language&amp;gt;/&amp;quot; directories.&lt;br /&gt;
* &amp;quot;/oss.cro.lex&amp;quot;, &amp;quot;/peer.cro.lex&amp;quot;, &amp;quot;/static.crs&amp;quot;, and &amp;quot;/webkit.cro.lex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following was added to RomFS:&lt;br /&gt;
* &amp;quot;/favicon/naver.dat&amp;quot;&lt;br /&gt;
* A &amp;quot;KO&amp;quot; directory under &amp;quot;/iwnn&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== v9.9 ====&lt;br /&gt;
ExeFS:/.code was updated.&lt;br /&gt;
&lt;br /&gt;
The only RomFS changes is file-updating, all of the following files were updated:&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /cairo.cro.lex&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex&lt;br /&gt;
 /peer.cro.lex&lt;br /&gt;
 /static.crs&lt;br /&gt;
 /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
See [https://gist.github.com/yellows8/9fb509fde4112339f342 here] for a diff of the OSS(WebKitLibraries/ is not included due to the massive cairo library diff). An exploitable security vuln(which was already known in the context of 3DS webkit) was fixed. [[User:Yellows8|Yellows8]]&#039; private(at the time of writing) exploit for it is based on the PoC from [http://pastebin.com/ufBCQKda here](see the pastebin for the actual pastebin author).&lt;br /&gt;
&lt;br /&gt;
==== v10.2 ====&lt;br /&gt;
The libstagefright build in the main SKATER codebin was updated to a version which fixed libstagefright vuln(s): the vuln used in [[browserhax|browserhax_fright]] at the time of sysupdate release was fixed. The *only* code changed in the main codebin, was code related to libstagefright.&lt;br /&gt;
&lt;br /&gt;
The only RomFS changes is file-updating, all of the following files were updated(see the forced-sysupdate section regarding what changed in the message files):&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex&lt;br /&gt;
 /static.crs&lt;br /&gt;
 /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
OSS diff:&lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/WKC/WebKit/WKC/webkit/WKCVersion.h b/NewNintendo3DS_OpenSources10.2.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index 4543297..0860336 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;0.5.15&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;0.5.17&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;536.30&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/ChangeLog b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 index a5abb35..cf5a9fa 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 @@ -1,3 +1,12 @@&lt;br /&gt;
 +2013-11-05  Ryosuke Niwa  &amp;lt;rniwa@webkit.org&amp;gt;&lt;br /&gt;
 +&lt;br /&gt;
 +        Use-after-free in SliderThumbElement::dragFrom&lt;br /&gt;
 +        https://bugs.webkit.org/show_bug.cgi?id=123873&lt;br /&gt;
 +&lt;br /&gt;
 +        Reviewed by Andreas Kling.&lt;br /&gt;
 +&lt;br /&gt;
 +        Merge https://chromium.googlesource.com/chromium/blink/+/04a23bfca2d04101a1828d36ff36c29f3a24f34b&lt;br /&gt;
 +&lt;br /&gt;
  2015-02-06  Maciej Stachowiak  &amp;lt;mjs@apple.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
          REGRESSION(r179706): Caused memory corruption on some tests (Requested by _ap_ on #webkit).&lt;br /&gt;
 @@ -879,7 +888,7 @@&lt;br /&gt;
          * rendering/RenderLineBoxList.cpp:&lt;br /&gt;
          (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):&lt;br /&gt;
  &lt;br /&gt;
 -2014-01-21  LÃ¡szlÃ³ LangÃ³  &amp;lt;llango.u-szeged@partner.samsung.com&amp;gt;&lt;br /&gt;
 +2014-01-21  Laszlo Lango  &amp;lt;llango.u-szeged@partner.samsung.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
          Assertion failure in Range::nodeWillBeRemoved&lt;br /&gt;
          https://bugs.webkit.org/show_bug.cgi?id=121694&lt;br /&gt;
 @@ -1879,7 +1888,7 @@&lt;br /&gt;
  &lt;br /&gt;
  2012-09-14  Simon Fraser  &amp;lt;simon.fraser@apple.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 -        REGRESSION: transition doesnât always override transition-property&lt;br /&gt;
 +        REGRESSION: transition doesnft always override transition-property&lt;br /&gt;
          https://bugs.webkit.org/show_bug.cgi?id=96658&lt;br /&gt;
  &lt;br /&gt;
          Reviewed by Dean Jackson.&lt;br /&gt;
 @@ -3691,8 +3700,8 @@&lt;br /&gt;
              glyph with font data for the primary font, presumably to meet the SVG&lt;br /&gt;
              spec requirement: &amp;quot;If the references to alternate glyphs do not result&lt;br /&gt;
              in successful identification of alternate glyphs to use, then the&lt;br /&gt;
 -            character(s) that are inside of the çª¶åltGlyphçª¶?element are rendered as&lt;br /&gt;
 -            if the çª¶åltGlyphçª¶?element were a çª¶?spançª¶?element instead.&amp;quot;&lt;br /&gt;
 +            character(s) that are inside of the âaltGlyphâ?element are rendered as&lt;br /&gt;
 +            if the âaltGlyphâ?element were a â?spanâ?element instead.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
              If the alt glyph is not then found we are in the case from the spec&lt;br /&gt;
              and indeed we should use the primary font. However, we end up replacing the GlyphPage&lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/html/RangeInputType.cpp b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 index 484adec..d7e9e8d 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 @@ -164,7 +164,7 @@ void RangeInputType::handleMouseDownEvent(MouseEvent* event)&lt;br /&gt;
      ASSERT(element()-&amp;gt;hasShadowRoot());&lt;br /&gt;
      if (targetNode != element() &amp;amp;&amp;amp; !targetNode-&amp;gt;isDescendantOf(element()-&amp;gt;shadowTree()-&amp;gt;oldestShadowRoot()))&lt;br /&gt;
          return;&lt;br /&gt;
 -    SliderThumbElement* thumb = sliderThumbElementOf(element());&lt;br /&gt;
 +    RefPtr&amp;lt;SliderThumbElement&amp;gt; thumb = sliderThumbElementOf(element());&lt;br /&gt;
      if (targetNode == thumb)&lt;br /&gt;
          return;&lt;br /&gt;
      thumb-&amp;gt;dragFrom(event-&amp;gt;absoluteLocation());&lt;br /&gt;
&lt;br /&gt;
==== v10.4 ====&lt;br /&gt;
The ExeFS codebin was updated, the only change was that the following code was updated in the actual NupCheck HTTPS request function:&lt;br /&gt;
* Previous version: sprintf(out, &amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/2/%s&amp;quot;, region);&lt;br /&gt;
* Current  version: sprintf(out, &amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/%d/%s&amp;quot;, 3, region);&lt;br /&gt;
&lt;br /&gt;
libpng was updated from version 1.5.21 to 1.5.24.&lt;br /&gt;
&lt;br /&gt;
The following RomFS files were updated(see the forced-sysupdate section regarding what changed in the message files):&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /cairo.cro.lex&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex differ&lt;br /&gt;
 /peer.cro.lex differ&lt;br /&gt;
 /static.crs differ&lt;br /&gt;
 /webkit.cro.lex differ&lt;br /&gt;
&lt;br /&gt;
==== v10.6 ====&lt;br /&gt;
The ExeFS codebin was updated.&lt;br /&gt;
&lt;br /&gt;
[[browserhax|browserhax_fright_tx3g]] was fixed. The code handling tx3g now matches the latest libstagefright git.&lt;br /&gt;
&lt;br /&gt;
Hence the below RomFS listing, no OSS was updated at all(besides libstagefright mentioned above).&lt;br /&gt;
&lt;br /&gt;
The following RomFS files were updated:&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /static.crs&lt;br /&gt;
&lt;br /&gt;
==== v10.7 ====&lt;br /&gt;
Basically the same changes as Old3DS v10.7, except with the usual buildinfo.dat update in RomFS. The below date is 6 days after the browser-version-check [[3DS_Userland_Flaws|bypass]] was publicly disclosed.&lt;br /&gt;
&lt;br /&gt;
 cat v7184/00000025_romfs/build/buildinfo.dat&lt;br /&gt;
 10150&lt;br /&gt;
 applet&lt;br /&gt;
 2016-03-02 18:25&lt;br /&gt;
&lt;br /&gt;
==== v11.1 ====&lt;br /&gt;
The ExeFS codebin was updated. The following files in RomFS were updated:&lt;br /&gt;
&lt;br /&gt;
  /build/buildinfo.dat&lt;br /&gt;
  /.crr/static.crr&lt;br /&gt;
  /oss.cro.lex&lt;br /&gt;
  /static.crs&lt;br /&gt;
  /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
  cat v8192/00000026_romfs/build/buildinfo.dat&lt;br /&gt;
  10156&lt;br /&gt;
  applet&lt;br /&gt;
  2016-08-26 19:47&lt;br /&gt;
&lt;br /&gt;
Minus the 4 functions that changed due to compiler optimization, only 1 function was actually updated. This is LT_1a4004, previous version at LT_1a4004: libstagefright status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth)&lt;br /&gt;
&lt;br /&gt;
Additional code was added which doesn&#039;t seem to be from upstream git, right [https://android.googlesource.com/platform/frameworks/av/+/32d6e5f0ebe9e00f80401e5f4fd6e285a474590d/media/libstagefright/MPEG4Extractor.cpp#880 before] the cprt code block: &amp;quot;if((*offset + chunk_size) - data_offset &amp;lt; 0)fail&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This fixed skater31hax + any other mp4 haxx which requires using a negative 64bit chunk_size value.&lt;br /&gt;
&lt;br /&gt;
The filepath base used in the assert strings were changed from &amp;quot;d:\Jenkins\workspace\MPSkaterBuild\MVPlayer\Skater\Base\Android\frameworks\base\media\libstagefright\&amp;quot; to &amp;quot;d:\jenkins\workspace\MPSkaterBuild-Git\Base\Android\frameworks\base\media\libstagefright\&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== New3DS Browser Specifications ===&lt;br /&gt;
[http://www.nintendo.co.jp/3ds/new/features/modal_net.html]&lt;br /&gt;
&lt;br /&gt;
English version:&lt;br /&gt;
* &amp;quot;Browser engine: NetFront® Browser NX v3.0&amp;quot;&lt;br /&gt;
* &amp;quot;User agent: Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML and like Gecko) NX/3.0.*.*.* Mobile NintendoBrowser/1.0.**** JP&lt;br /&gt;
* ** Version information is stated.&lt;br /&gt;
* *** When using the “Mobile version request” function, it differs from the above-mentioned character string&amp;quot;&lt;br /&gt;
* &amp;quot;Supported protocols: HTTP1.0/HTTP1.1/SSL3.0/TLS1.0/TLS1.1/TLS1.2&amp;quot;&lt;br /&gt;
* &amp;quot;Web standard: HTML4.01 / HTML5 / XHTML1.1 / Fullscreen API / Gamepad API / SVG / WebSocket / Video Subtitle / WOFF / Web Messaging / Server-Sent / Web Storage (partial) / XMLHttpRequest / Canvas element / Video / DOM Levels 1-3 / ECMAScript / CSS1 / CSS2.1 / CSS3 (partial)&amp;quot;&lt;br /&gt;
* &amp;quot;Image format: bmp / ​​gif / ico / jpeg / png / svg (There are, however, possibilities that some images won&#039;t display.)&amp;quot;&lt;br /&gt;
* &amp;quot;Image preview: mpo / jpeg (There are, however, possibilities that some images won&#039;t display.)&amp;quot;&lt;br /&gt;
* &amp;quot;Video format: MP4, M3U8 + TS (HTTPLiveStreaming) (There are, however, some videos that may not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Video codec: H.264 - MPEG-4 AVC Video (max 854x480 at level 3.2, 3D compatible) (There are, however, some videos that can not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Audio codec: AAC - ISO / IEC 14496-3 MPEG-4AAC, MP3 (There are, however, some videos that can not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Format for uploading 3D videos: .mkv (In order to be played, videos must be converted to the appropriate format within the site you are uploading to. In some cases, the video will not play even if converted.)&amp;quot;&lt;br /&gt;
* &amp;quot;Plug-ins: Plug-ins such as Adobe Flash are not supported&amp;quot;&lt;br /&gt;
* &amp;quot;Active Rating System filtering: provided by Digital Arts, Inc.. Access to web content can be limited based on its category information, restricting access to web content that may result inappropriate.&amp;quot;&lt;br /&gt;
* &amp;quot;Websites can be requested to provide the mobile version (However, if the web page does not have a mobile version, it won&#039;t change the way it&#039;s displayed.)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
MJPEG + .avi is also supported.&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
* The html &amp;quot;color&amp;quot; &amp;lt;input&amp;gt; type is not supported.&lt;br /&gt;
&lt;br /&gt;
== Old3DS browser ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Old3DS Browser Specifications ===&lt;br /&gt;
* &amp;quot;Browser engine: NetFront® Browser&amp;quot;&lt;br /&gt;
* &amp;quot;User agent: Mozilla/5.0 (Nintendo 3DS; region; ; en) Version/1.7498.US&amp;quot;&lt;br /&gt;
* &amp;quot;Supported protocols: HTTP1.0/HTTP1.1/SSLv3/TLS1.0&amp;quot;&lt;br /&gt;
* &amp;quot;Web standard: HTML 4.01/XHTML 1.1/CSS 1/CSS 2.1/CSS 3 (partial functionality)/DOM Levels 1-3/ECMAScript&lt;br /&gt;
/XMLHttpRequest/Canvas Element (partial functionality)&amp;quot;&lt;br /&gt;
* &amp;quot;Image format: MPO / GIF / JPEG / PNG / BMP / ICO (some images cannot be displayed)&amp;quot;&lt;br /&gt;
* &amp;quot;Plug-ins: Plug-ins such as Adobe Flash are not supported&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Old3DS browser doesn&#039;t support events &amp;quot;focusin&amp;quot; and &amp;quot;focusout&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== User-Agent and Browser Versions ===&lt;br /&gt;
User-agent format: &amp;lt;code style=&amp;quot;font-size:larger;&amp;quot;&amp;gt;Mozilla/5.0 (Nintendo 3DS; U; ; &amp;lt;lang&amp;gt;) Version/&amp;lt;version&amp;gt;.&amp;lt;region&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lang&amp;gt; is &amp;quot;en&amp;quot;, &amp;quot;fr&amp;quot;, etc. &amp;lt;region&amp;gt; is &amp;quot;US&amp;quot;, &amp;quot;EU&amp;quot;, etc. See below for &amp;lt;version&amp;gt;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Browser version&lt;br /&gt;
! CDN Title-version&lt;br /&gt;
! Network-only system-update version&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.7412&lt;br /&gt;
| v6&lt;br /&gt;
| [[2.0.0-2|2.0.0-2]]&lt;br /&gt;
| This was the initial version.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7455&lt;br /&gt;
| v1024&lt;br /&gt;
| [[2.1.0-4]]&lt;br /&gt;
| ExeFS .code was updated, both of the CROs(webkit/OSS) were updated too.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7498&lt;br /&gt;
| v2050&lt;br /&gt;
| [[4.0.0-7]]&lt;br /&gt;
| ExeFS .code was updated, both of the CROs(webkit/OSS) were updated too. The manual CFA was updated as well.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7538&lt;br /&gt;
| v0&lt;br /&gt;
| [[4.2.0-9]]&lt;br /&gt;
| First version of the KOR browser. The CROs are different from the  USA/EUR/JPN [[4.0.0-7]] browser.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7552&lt;br /&gt;
| v3075&lt;br /&gt;
| [[5.0.0-11]]&lt;br /&gt;
| ExeFS .code and icon were updated, both of the CROs(webkit/OSS) were updated too. The manual CFA was updated as well.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7552&lt;br /&gt;
| v3088&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| The main NCCH wasn&#039;t updated at all(same TMD contentID/content-hash as the previous version), only the manual CFA for this title was updated.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7567&lt;br /&gt;
| v4096&lt;br /&gt;
| [[7.1.0-16]]&lt;br /&gt;
| The CXI .code was updated, some data in the RomFS was updated(none of the CROs such as webkit.cro were updated). The manual CFA was updated too.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7585&lt;br /&gt;
| v5121&lt;br /&gt;
| [[9.5.0-23]]&lt;br /&gt;
| The CXI .code was updated, and the manual CFA was updated. RomFS changes:&lt;br /&gt;
* &amp;quot;/browser/rootca.pem&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/oss.cro&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/static.crs&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/webkit.cro&amp;quot; updated&lt;br /&gt;
* &amp;quot;/.crr/static.crr&amp;quot; updated&lt;br /&gt;
* &amp;quot;/layout/dialogheader/WirelessSwitchOff.arc&amp;quot; was removed&lt;br /&gt;
* &amp;quot;/layout/favorite/favicondata/KOR.arc&amp;quot; updated&lt;br /&gt;
&lt;br /&gt;
A vuln used in a public(at the time of this sysupdate) webkit exploit for spider was fixed, which also fixed the removewinframe exploit from [https://github.com/yellows8/3ds_webkithax here].&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| v6147&lt;br /&gt;
| v9.9 CUP&lt;br /&gt;
| v9.9 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7610&lt;br /&gt;
| v6149&lt;br /&gt;
| [[9.9.0-26]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7616&lt;br /&gt;
| v7168&lt;br /&gt;
| [[10.2.0-28]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7622&lt;br /&gt;
| v8192&lt;br /&gt;
| [[10.6.0-31]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| v9216&lt;br /&gt;
| v10.7 CUP&lt;br /&gt;
| v10.7 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7625&lt;br /&gt;
| v9232&lt;br /&gt;
| [[10.7.0-32]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7630&lt;br /&gt;
| v10240&lt;br /&gt;
| [[11.1.0-34]]&lt;br /&gt;
| See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Heap ===&lt;br /&gt;
The USA/EUR/JPN + KOR browser allocates the 0x08000000 heap with size 0x01A97000. The size used by the CHN and TWN browser is 0x01997000, exactly 0x100000-bytes smaller.&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v9.9 ===&lt;br /&gt;
ExeFS:/.code was updated.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS were file-updating, the following files were updated:&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/spider.msbt&lt;br /&gt;
 /message/EU_Dutch/spider.msbt&lt;br /&gt;
 /message/EU_English/spider.msbt&lt;br /&gt;
 /message/EU_French/spider.msbt&lt;br /&gt;
 /message/EU_German/spider.msbt&lt;br /&gt;
 /message/EU_Italian/spider.msbt&lt;br /&gt;
 /message/EU_Portuguese/spider.msbt&lt;br /&gt;
 /message/EU_Russian/spider.msbt&lt;br /&gt;
 /message/EU_Spanish/spider.msbt&lt;br /&gt;
 /message/JP_Japanese/spider.msbt&lt;br /&gt;
 /message/KR_Hangeul/spider.msbt&lt;br /&gt;
 /message/TW_English/spider.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/spider.msbt&lt;br /&gt;
 /message/US_English/spider.msbt&lt;br /&gt;
 /message/US_French/spider.msbt&lt;br /&gt;
 /message/US_Portuguese/spider.msbt&lt;br /&gt;
 /message/US_Spanish/spider.msbt&lt;br /&gt;
&lt;br /&gt;
OSS diff for v9.5 and v9.9, without the .dox changes:&lt;br /&gt;
&lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/WKC/WebKit/WKC/webkit/WKCVersion.h b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index be5ff09..55a7274 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.14&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.16&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;532.7&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/webkit/WebCore/rendering/RenderBox.cpp b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 index da4127e..d03403e 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 @@ -305,23 +305,23 @@ int RenderBox::scrollHeight() const&lt;br /&gt;
  &lt;br /&gt;
  int RenderBox::scrollLeft() const&lt;br /&gt;
  {&lt;br /&gt;
 -    return hasOverflowClip() ? layer()-&amp;gt;scrollXOffset() : 0;&lt;br /&gt;
 +    return layer() &amp;amp;&amp;amp; hasOverflowClip() ? layer()-&amp;gt;scrollXOffset() : 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int RenderBox::scrollTop() const&lt;br /&gt;
  {&lt;br /&gt;
 -    return hasOverflowClip() ? layer()-&amp;gt;scrollYOffset() : 0;&lt;br /&gt;
 +    return layer() &amp;amp;&amp;amp; hasOverflowClip() ? layer()-&amp;gt;scrollYOffset() : 0;&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  void RenderBox::setScrollLeft(int newLeft)&lt;br /&gt;
  {&lt;br /&gt;
 -    if (hasOverflowClip())&lt;br /&gt;
 +    if (hasOverflowClip() &amp;amp;&amp;amp; layer())&lt;br /&gt;
          layer()-&amp;gt;scrollToXOffset(newLeft);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  void RenderBox::setScrollTop(int newTop)&lt;br /&gt;
  {&lt;br /&gt;
 -    if (hasOverflowClip())&lt;br /&gt;
 +    if (hasOverflowClip() &amp;amp;&amp;amp; layer())&lt;br /&gt;
          layer()-&amp;gt;scrollToYOffset(newTop);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.2 ===&lt;br /&gt;
The slider vuln from [https://github.com/yellows8/3ds_webkithax here] was fixed in the Old3DS browser.&lt;br /&gt;
&lt;br /&gt;
The main codebin .text only increased by 0x10-bytes.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS was that the following files were updated:&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
&lt;br /&gt;
OSS diff:&lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index 55a7274..fc153c4 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.16&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.17&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;532.7&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderSlider.cpp b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 index b2f5cef..1dd3dbd 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 @@ -221,6 +221,7 @@ RenderSlider::~RenderSlider()&lt;br /&gt;
  {&lt;br /&gt;
      if (m_thumb)&lt;br /&gt;
          m_thumb-&amp;gt;detach();&lt;br /&gt;
 +    m_thumb = 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int RenderSlider::baselinePosition(bool, bool) const&lt;br /&gt;
 @@ -493,7 +494,8 @@ void RenderSlider::forwardEvent(Event* event)&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
  &lt;br /&gt;
 -    m_thumb-&amp;gt;defaultEventHandler(event);&lt;br /&gt;
 +    if (m_thumb)&lt;br /&gt;
 +        m_thumb-&amp;gt;defaultEventHandler(event);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  bool RenderSlider::inDragMode() const&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.6 ===&lt;br /&gt;
[[browserhax|spider28hax]] was fixed. The &amp;quot;2^32 characters long string&amp;quot; vuln described [[3DS_Userland_Flaws|here]] was &#039;&#039;finally&#039;&#039; fixed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;A lot&#039;&#039; of WebKit issues/vulns were fixed, see [https://gist.github.com/yellows8/b1e10caa1d8bb8a46316 here] for the changes.&lt;br /&gt;
&lt;br /&gt;
libpng was updated from version 1.4.12 to 1.4.19. zlib was updated from 1.2.7 to 1.2.8.&lt;br /&gt;
&lt;br /&gt;
The .text size increased by 0x478-bytes.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS was that the following files were updated:&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /manual/Manual.bcma&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.7 ===&lt;br /&gt;
&#039;&#039;Nothing&#039;&#039; changed except some words for version-values in .text being updated(RomFS wasn&#039;t changed), code for browser-version-check was [[#v10.7_2|updated]].&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v11.1 ===&lt;br /&gt;
Nothing changed in the ExeFS codebin besides the usual version values. The following files in RomFS were updated:&lt;br /&gt;
  /cro/oss.cro&lt;br /&gt;
  /cro/webkit.cro&lt;br /&gt;
  /.crr/static.crr&lt;br /&gt;
&lt;br /&gt;
== Forced system-update ==&lt;br /&gt;
The Old3DS/New3DS Internet Browser updated with [[9.9.0-26]] added the following message strings:&lt;br /&gt;
 In order to use the Internet &lt;br /&gt;
 browser, a system update &lt;br /&gt;
 is required.&lt;br /&gt;
 To perform a system update, &lt;br /&gt;
 select System Update from Other&lt;br /&gt;
 Settings in System Settings.&lt;br /&gt;
&lt;br /&gt;
 The Internet browser cannot be&lt;br /&gt;
 used at this time.&lt;br /&gt;
 Please check your network&lt;br /&gt;
 environment or try again later.&lt;br /&gt;
&lt;br /&gt;
For whatever reason, the above &#039;&#039;message strings&#039;&#039; were removed with New3DS-browser v10.2, then re-added with v10.4. This does not apply to the Old3DS browser. Whenever v10.2 New3DS browser tries to use these message-strings for displaying a browser-update-related message, it will crash due to an assert failing since the message-strings are missing. Hence, if/when the v10.2 update-check page is ever updated where the browser tries to display a message for it, or when accessing that page fails, the browser will automatically crash.&lt;br /&gt;
&lt;br /&gt;
This wasn&#039;t enforced(web-browser displaying the above message when the installed browser isn&#039;t the latest version) until October 26, 2015.&lt;br /&gt;
&lt;br /&gt;
This message only triggers when attempting to load a web-page. This is only handled the first time the browser accesses a web-page, during this browser session.&lt;br /&gt;
&lt;br /&gt;
The browser codebins starting with v9.9 now contain the following URL strings:&lt;br /&gt;
* Old3DS: &amp;lt;nowiki&amp;gt;&amp;quot;https://cbvc.cdn.nintendo.net/CTR/1/&amp;lt;region&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* New3DS: &amp;lt;nowiki&amp;gt;&amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/1/&amp;lt;region&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;region&amp;gt; string is one of the following:&lt;br /&gt;
* &amp;quot;JPN&amp;quot;&lt;br /&gt;
* &amp;quot;USA&amp;quot;&lt;br /&gt;
* &amp;quot;EUR&amp;quot;&lt;br /&gt;
* &amp;quot;KOR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Starting with the browser from [[10.2.0-28]], the &amp;quot;1&amp;quot; in the above URLs were changed to &amp;quot;2&amp;quot;. With the New3DS browser from [[10.4.0-29]], it&#039;s now &amp;quot;3&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
As of October 26, 2015, the &amp;quot;1&amp;quot; URLs return the browser-version for v9.9(decimal number as a string without any &amp;quot;.&amp;quot;), while the &amp;quot;2&amp;quot; URLs returns 0.&lt;br /&gt;
&lt;br /&gt;
 if(internal_browserver &amp;gt; server_browserver)&lt;br /&gt;
 {&lt;br /&gt;
     &amp;lt;safe&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
 else&lt;br /&gt;
 {&lt;br /&gt;
     &amp;lt;update message&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Hence, internal_browserver == server_browserver will trigger the sysupdate message, which appears to be the normal way to indicate that the current browser is outdated(see above).&lt;br /&gt;
&lt;br /&gt;
There is a cache for this in savedata. The request is only done when at least 24-hours have passed since the last time the request was done(see the below savedata section).&lt;br /&gt;
&lt;br /&gt;
It is still possible to guard against this update by blocking the previous URLs using a proxy. &lt;br /&gt;
It is not possible to remove the update message by entering the [[Recovery Mode]].&lt;br /&gt;
&lt;br /&gt;
=== Page request ===&lt;br /&gt;
For this request, all root-CAs bundled with the browser are trusted, in addition to two of the SSL module builtin Nintendo root-CAs.&lt;br /&gt;
&lt;br /&gt;
The browser(with New3DS at least) does the following with [[HTTP_Services|HTTPC]] for requesting the above page:&lt;br /&gt;
* Initializes the HTTP context and uses [[HTTPC:InitializeConnectionSession]] + [[HTTPC:SetProxyDefault]].&lt;br /&gt;
* Uses [[HTTP_Services|HTTPC]] command 0x250080 twice with cmd[1]=contexthandle: first time cmd[2]=0x3, second time cmd[2]=0x6.&lt;br /&gt;
* Then [[HTTPC:AddTrustedRootCA]] is used 48 times to setup 48 trusted root CAs. This appears to be every cert in the browser &amp;quot;romfs:/browser/rootca.pem&amp;quot; file converted to DER, in the same order from there(in other words, every single root CA the browser trusts by default for normal web-browsing).&lt;br /&gt;
* Then [[HTTPC:BeginRequest]] is used.&lt;br /&gt;
* Then [[HTTPC:ReceiveDataTimeout]] is used, the recv-size seems to be fixed to 0x20.&lt;br /&gt;
* Then [[HTTPC:GetResponseStatusCodeTimeout]] is used.&lt;br /&gt;
* Then [[HTTPC:GetDownloadSizeState]] is used.&lt;br /&gt;
* Then the HTTP context is closed.&lt;br /&gt;
&lt;br /&gt;
Raw request data(New3DS USA v10.2 browser):&lt;br /&gt;
 000000: 47 45 54 20 2f 53 4e 41 4b 45 2f 32 2f 55 53 41  GET /SNAKE/2/USA&lt;br /&gt;
 000010: 20 48 54 54 50 2f 31 2e 31 0d 0a 48 6f 73 74 3a   HTTP/1.1..Host:&lt;br /&gt;
 000020: 20 63 62 76 63 2e 63 64 6e 2e 6e 69 6e 74 65 6e   cbvc.cdn.ninten&lt;br /&gt;
 000030: 64 6f 2e 6e 65 74 0d 0a 0d 0a                    do.net....&lt;br /&gt;
&lt;br /&gt;
=== v10.7 ===&lt;br /&gt;
The only actual code change with Old3DS/New3DS browser v10.7 was that the code which calculates the diff_timestamp was moved to immediately after the block which initializes &amp;lt;state_timestamp&amp;gt; when &amp;lt;state_timestamp&amp;gt; is all-zero. This fixed the browser-version-check [[3DS_Userland_Flaws|bypass]].&lt;br /&gt;
&lt;br /&gt;
== v9.9+/v10.7+ dummy web-browser ==&lt;br /&gt;
Gamecards v9.9 and above include, with their sysupdate, a dummy Old3DS/New3DS web-browser. The *only* thing this title does is display the same message listed in the above forced-update section. The message files in RomFS *only* contain that message string above. There are no &amp;quot;http&amp;quot; strings in the main codebin, and [[RO_Services|RO]] isn&#039;t used either(no CRO data in RomFS at all). Both browsers are internally called &amp;quot;dummySpider&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Hence, if you update your system below v9.8 with any v9.9 or above gamecard, the system web-browser will be rendered *completely* useless until you install a system-update from CDN(no network requests involved here).&lt;br /&gt;
&lt;br /&gt;
Gamecards v10.7 and above include an updated dummy web-browser, where the only difference is the title version.&lt;br /&gt;
&lt;br /&gt;
== Savedata ==&lt;br /&gt;
=== New3DS ===&lt;br /&gt;
On newer SKATER versions, it appears *all* NAND savedata is stored under the [[System_SaveData|0x000200BB]] savedata.&lt;br /&gt;
&lt;br /&gt;
==== 0x000200BB savedata ====&lt;br /&gt;
This only contains &amp;quot;t.bin&amp;quot; with filesize 0xadf80, the format is below.&lt;br /&gt;
&lt;br /&gt;
The timestamp format used here is the number of milliseconds since January 1, 2000(local-time).&lt;br /&gt;
&lt;br /&gt;
When using the &amp;quot;Initialize savedata&amp;quot; option in the browser, that deletes this savedata file/image then exits the browser. This file is then re-created when the browser gets started again.&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;
| 0x68&lt;br /&gt;
| 0x4?&lt;br /&gt;
| This counter is incremented each time the savedata is written.&lt;br /&gt;
|-&lt;br /&gt;
| 0x70&lt;br /&gt;
| 0x8&lt;br /&gt;
| Timestamp for when the savedata was last written.&lt;br /&gt;
|-&lt;br /&gt;
| 0x94&lt;br /&gt;
| 0x15?&lt;br /&gt;
| This is all-zeros on non-JPN systems. On JPN systems where the browser filter is disabled, this is a string in the following format: &amp;quot;4110-%016llX&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD8&lt;br /&gt;
| 0x8&lt;br /&gt;
| s64 timestamp, can be either a normal positive timestamp or a relative negative one. Used with the forced-update described above. When an update is detected this timestamp is negative, otherwise this is a normal positive timestamp(it&#039;s unknown how exactly this timestamp is checked). When positive, this seems to be the last time the forced-update HTTPS request was done where no update was needed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==APT Parameters==&lt;br /&gt;
The URL to load can optionally be loaded from char[] string [[APT:SendParameter|paramblk+0]]. This is used when scanning URL QR-codes in Home Menu / etc.&lt;br /&gt;
&lt;br /&gt;
==Errors==&lt;br /&gt;
&amp;quot;Failed to load part of this page&amp;quot;: This can be caused by failing to load &amp;quot;/favicon.ico&amp;quot;. For example, this can be caused by loading a plain HTTP page, with plain-http favicon redirecting to HTTPS. If cert-verify then fails with favicon in this case, this error would then trigger.&lt;br /&gt;
&lt;br /&gt;
==Other details==&lt;br /&gt;
&lt;br /&gt;
*It scored 90/100 on [http://acid3.acidtests.org/ Acid3] test&lt;br /&gt;
*Images from the Internet can be saved to the [[SD Filesystem|SD Card]] and viewed using the [[Nintendo 3DS Camera]] application.&lt;br /&gt;
*Images saved to an [[SD Filesystem|SD Card]] or to the Nintendo 3DS system memory can be uploaded to blogs or other sites that allow the uploading of photos using :&lt;br /&gt;
 &amp;lt;input type=&amp;quot;file&amp;quot; /&amp;gt;&lt;br /&gt;
* HTML5Test.com say that Drag and drop is supported but it&#039;s not (code on WebKit is ready, but it&#039;s not implemented on interface of browser)&lt;br /&gt;
&lt;br /&gt;
==Tips==&lt;br /&gt;
&lt;br /&gt;
=== Detect User Agent ===&lt;br /&gt;
&lt;br /&gt;
To detect if the user agent is Nintendo 3DS Browser :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
     if (navigator.userAgent.indexOf(&#039;Nintendo 3DS&#039;) == -1) { //If the UserAgent is not &amp;quot;Nintendo 3DS&amp;quot;&lt;br /&gt;
         location.replace(&#039;http://www.3dbrew.org&#039;); //Redirect to an other page&lt;br /&gt;
     }&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* You can check &amp;lt;em&amp;gt;navigator.platform==&amp;quot;Nintendo 3DS&amp;quot;&amp;lt;/em&amp;gt; as well.&lt;br /&gt;
&lt;br /&gt;
=== Scrolling ===&lt;br /&gt;
&lt;br /&gt;
Scrolling can be altered by modifying &amp;lt;em&amp;gt;document.body.scrollTop&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;document.body.scrollLeft&amp;lt;/em&amp;gt;.  However, there are drawbacks related to working with these properties:&lt;br /&gt;
&lt;br /&gt;
* Both properties return 0 when accessed&lt;br /&gt;
* Setting one property resets the other property&#039;s scroll position&lt;br /&gt;
&lt;br /&gt;
In order to set both at the same time (without either resetting to 0), use &amp;lt;em&amp;gt;window.scrollTo&amp;lt;/em&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Events ===&lt;br /&gt;
==== Key Events ====&lt;br /&gt;
The following buttons trigger the &amp;lt;em&amp;gt;onkeydown&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;onkeypress&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;onkeyup&amp;lt;/em&amp;gt; events:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;20%&amp;quot;&lt;br /&gt;
! Code !! Button &lt;br /&gt;
|-&lt;br /&gt;
| 13 || A&lt;br /&gt;
|-&lt;br /&gt;
| 37 || Left&lt;br /&gt;
|-&lt;br /&gt;
| 38 || Up&lt;br /&gt;
|-&lt;br /&gt;
| 39 || Right&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Down&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The events cannot have their default action cancelled.  Other buttons do not trigger key events.&lt;br /&gt;
&lt;br /&gt;
==== Touch/Mouse Events ====&lt;br /&gt;
&amp;lt;em&amp;gt;onmousedown&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;onmouseup&amp;lt;/em&amp;gt; &amp;amp; &amp;lt;em&amp;gt;onclick&amp;lt;/em&amp;gt; are all triggered by the browser.  However, the &amp;lt;em&amp;gt;onmousedown&amp;lt;/em&amp;gt; event doesn&#039;t trigger until you lift the stylus or you&#039;ve held it on the screen for ~2 seconds—which is when text selection mode is activated—making it pretty much the same as &amp;lt;em&amp;gt;onmouseup&amp;lt;/em&amp;gt;.  The events cannot have their default action cancelled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;em&amp;gt;onmousemove&amp;lt;/em&amp;gt; and common touch/gesture events are not supported.&lt;br /&gt;
&lt;br /&gt;
== Screen Resolution ==&lt;br /&gt;
&lt;br /&gt;
The up screen resolution is 400×240. However, the viewable area in the browser is only &amp;lt;b&amp;gt;400×220&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The touch screen resolution is 320×240. However, the viewable area in the browser is only &amp;lt;b&amp;gt;320×212&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can have a page span both screens. However, the browser will behave as if the bottom screen is the only active screen and the top screen is scrolled off. This is important when computing CSS coordinates. Items positioned from &amp;quot;bottom&amp;quot; will be positioned based on 220px and not the full 432px of both screens.&lt;br /&gt;
&lt;br /&gt;
== Using Both Screens ==&lt;br /&gt;
&lt;br /&gt;
Generally the easiest way to accomplish the correct layout is to create HTML elements that &amp;quot;contain&amp;quot; the top and bottom screens. Here&#039;s an example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
   &amp;lt;head&amp;gt;&lt;br /&gt;
     &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=400&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;style&amp;gt;&lt;br /&gt;
       body{margin:0px;}&lt;br /&gt;
       #topscreen{width:400px;height:220px;overflow:hidden;}&lt;br /&gt;
       #bottomscreen{width:320px;height:212px;overflow:hidden;margin:0 auto;}&lt;br /&gt;
     &amp;lt;/style&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div id=&amp;quot;topscreen&amp;quot;&amp;gt;Top Screen&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div id=&amp;quot;bottomscreen&amp;quot;&amp;gt;Bottom Screen&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This scheme allows the page to be easily manipulated through JavaScript.  In order to have the window snap to the correct position, use the following JavaScript code:&lt;br /&gt;
&lt;br /&gt;
 window.setInterval(function () {&lt;br /&gt;
     window.scrollTo(40, 220);  &lt;br /&gt;
 }, 50);&lt;br /&gt;
&lt;br /&gt;
This automatically resets the position if the user accidentally scrolls the page.&lt;br /&gt;
&lt;br /&gt;
==Example Sites==&lt;br /&gt;
&amp;lt;!-- If you have a website that demonstrates these techniques, place it here! --&amp;gt;&lt;br /&gt;
* [http://www.nintendo.com/3ds/internetbrowser/bookmarks Nintendo 3DS Bookmarks] - This is the first bookmark pre-installed in the browser.&lt;br /&gt;
* [http://3ds.andysmith.co.uk/jFox.html jFox] (Short URL: http://bit.ly/iB7FqW)&lt;br /&gt;
* [http://ditto3d.com/3ds Ditto3D] (Short URL: http://bit.ly/oVreWA)&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Internet_Browser&amp;diff=18299</id>
		<title>Internet Browser</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Internet_Browser&amp;diff=18299"/>
		<updated>2016-09-26T06:49:39Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: user agents&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The 3DS Internet Browser was added in the June 2011 Update for JPN/EUR/USA.&lt;br /&gt;
&lt;br /&gt;
From the Internet Browser help section:&lt;br /&gt;
In compliance with the LGPL, the source code of the OSS is available via the Nintendo website.&lt;br /&gt;
This source code can be downloaded here:&lt;br /&gt;
[http://mediacontent.nintendo-europe.com/NOE/images/service/OpenSources.zip] [http://www.nintendo.co.jp/support/oss/index.html]&lt;br /&gt;
&lt;br /&gt;
The 3DS Internet Browser is [http://en.wikipedia.org/wiki/Netfront Netfront] Browser NX v1.0 based on [http://en.wikipedia.org/wiki/WebKit WebKit] engine.&lt;br /&gt;
&lt;br /&gt;
On O3DS the exheader name of this title is &amp;quot;SPIDER&amp;quot;; on N3DS, &amp;quot;SKATER&amp;quot;.&lt;br /&gt;
The only difference between the ExeFS .code for each region of the Old3DS/New3DS browser, is byte values for the title uniqueID/region.&lt;br /&gt;
&lt;br /&gt;
A [[#v9.9_dummy_web-browser|&amp;quot;dummy&amp;quot; browser]] (which replaces the actual browser) is being included with cartdrige games shipping with system updates starting with [[9.9.0-26|9.9.0-X]]. &lt;br /&gt;
In addition, versions of the real browser since 9.9.0-26X attempt to [[#Forced_system-update|check-in with a Nintendo server]] to determine if the existing browser version is out of date.&lt;br /&gt;
&lt;br /&gt;
==[[New 3DS]] Internet Browser==&lt;br /&gt;
New3DS has a separate browser title, with the exheader name &amp;quot;SKATER&amp;quot;.&lt;br /&gt;
Unlike the Old3DS browser, the New3DS browser has videos+HTML5 support. &lt;br /&gt;
&lt;br /&gt;
This browser also has a filter enabled by default in the JPN version. &lt;br /&gt;
Disabling it requires paying money with a credit-card, for [[NIM_Services|purchasing]] web-browser [[Title_list/DLC|DLC]].&lt;br /&gt;
During startup the browser does various HTTPS comms. When visting an URL, the browser sends a plaintext HTTP POST here: [http://ars.ifuser.jp:20080/ars2/rating]. The raw POST data begins with &amp;quot;ARS/2.0\r\n\x00&amp;quot;, the rest appears to be encrypted. The server reply content also has this ARS header + encrypted data. This appears to use a fixed xorpad, likely from a fixed encryption CTR/IV. The server content responses for allowed sites, and blocked sites, are fixed. When the server returns that the site is blocked, the browser goes to this page: [http://ars.ifuser.jp/filter/44.html](the Referrer header value is set to the same URL it&#039;s actually requesting).&lt;br /&gt;
&lt;br /&gt;
The WebKit source was updated since the Old3DS browser.&lt;br /&gt;
The New3DS browser uses the following services: [[MVD_Services|mvd:STD]] and [[IR_Services|ir:rst]](DLC-related services are used too but those aren&#039;t New3DS specific).&lt;br /&gt;
Video decoding is done with [[MVD_Services|mvd:STD]]. Audio decoding/playback is done with a browser-specific DSP binary. The Old3DS browser used CSND for audio playback, the New3DS browser doesn&#039;t have access to that at all since it uses DSP instead.&lt;br /&gt;
&lt;br /&gt;
=== Video / libstagefright ===&lt;br /&gt;
The browser manual includes licenses for Android and PacketVideo. The browser uses libstagefright from Android. Just like WebKit, the browser appears to use a very old version of libstagefright with security/other changes back-ported(for example, the v10.7 browser libstagefright codebase seems to be older than [https://android.googlesource.com/platform/frameworks/av/+/ec77122351b4e78c1fe5b60a208f76baf8c67591%5E%21/media/libstagefright/MPEG4Extractor.cpp this]). This codebase is missing certain chunk-parsing code for 3GP.&lt;br /&gt;
&lt;br /&gt;
HTTP for libstagefright is internally handled with [[HTTP_Services|HTTPC]], with a similar(?) set of RootCAs as for browser-version-check.&lt;br /&gt;
&lt;br /&gt;
===User-Agent and Browser Versions===&lt;br /&gt;
Normal user-agent format: &amp;lt;code style=&amp;quot;font-size:larger;&amp;quot;&amp;gt;Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/&amp;lt;WebKit version&amp;gt; (KHTML, like Gecko) NX/&amp;lt;Netfront version&amp;gt; Mobile NintendoBrowser/&amp;lt;Mobile NintendoBrowser version&amp;gt;.&amp;lt;region&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;region&amp;gt; can be one of the following: &amp;quot;JP&amp;quot;, &amp;quot;US&amp;quot;, or &amp;quot;EU&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Mobile User-Agent is always &amp;lt;code&amp;gt;Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Mobile NintendoBrowser version(displayed in browser settings)&lt;br /&gt;
! Normal UA&lt;br /&gt;
! CDN Title-version&lt;br /&gt;
! Network-only system-update version&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.9934&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.8 Mobile NintendoBrowser/1.0.9934.&amp;lt;region&amp;gt;&lt;br /&gt;
| v10&lt;br /&gt;
| [[9.0.0-20]]&lt;br /&gt;
| Initial version.&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.9996&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.10 Mobile NintendoBrowser/1.1.9996.&amp;lt;region&amp;gt;&lt;br /&gt;
| v1027&lt;br /&gt;
| [[9.3.0-21]]&lt;br /&gt;
| See below regarding OSS changes.&lt;br /&gt;
|-&lt;br /&gt;
| 1.2.10085&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.13 Mobile NintendoBrowser/1.2.10085.&amp;lt;region&amp;gt;&lt;br /&gt;
| v2051&lt;br /&gt;
| [[9.6.0-24]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v3075&lt;br /&gt;
| v9.9 CUP&lt;br /&gt;
| v9.9 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.10126&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.15 Mobile NintendoBrowser/1.3.10126.&amp;lt;region&amp;gt;&lt;br /&gt;
| v3077&lt;br /&gt;
| [[9.9.0-26]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.10138&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.17 Mobile NintendoBrowser/1.4.10138.&amp;lt;region&amp;gt;&lt;br /&gt;
| v4096&lt;br /&gt;
| [[10.2.0-28]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.5.10143&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.5.10143.&amp;lt;region&amp;gt;&lt;br /&gt;
| v5121&lt;br /&gt;
| [[10.4.0-29]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.6.10147&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.6.10147.&amp;lt;region&amp;gt;&lt;br /&gt;
| v6144&lt;br /&gt;
| [[10.6.0-31]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v7168&lt;br /&gt;
| v10.7 CUP&lt;br /&gt;
| v10.7 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7.10150&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.7.10150.&amp;lt;region&amp;gt;&lt;br /&gt;
| v7184&lt;br /&gt;
| [[10.7.0-32]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.8.10156&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.20 Mobile NintendoBrowser/1.8.10156.&amp;lt;region&amp;gt;&lt;br /&gt;
| v8192&lt;br /&gt;
| [[11.1.0-34]]&lt;br /&gt;
| See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the latest Old3DS browser WebKit version at the time the initial New3DS browser was released, was the following: 532.8.&lt;br /&gt;
&lt;br /&gt;
The first version of the KOR New3DS browser was v9.6(which was when the New3DS KOR titles were originally added). Each version of the KOR browser has the same NintendoBrowser version as the other regions. The KOR browser has been only updated when the browser for the other regions were updated, hence the title-versions are the same as well. The KOR browser ExeFS .code is different from the other regions(more than just region-related IDs etc).&lt;br /&gt;
&lt;br /&gt;
==== OSS 9.0 and 9.3 diff ====&lt;br /&gt;
The following is a diff of the OSS archives from [http://www.nintendo.co.jp/support/oss/index.html here], for v9.0 and v9.3.&lt;br /&gt;
&lt;br /&gt;
 Files NewNintendo3DS_OpenSources9.0.0-/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp and NewNintendo3DS_OpenSources9.3.0-/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp differ&lt;br /&gt;
 Files NewNintendo3DS_OpenSources9.0.0-/WKC/WebKit/WKC/webkit/WKCVersion.h and NewNintendo3DS_OpenSources9.3.0-/WKC/WebKit/WKC/webkit/WKCVersion.h differ&lt;br /&gt;
&lt;br /&gt;
WKC_CUSTOMER_RELEASE_VERSION was changed from &amp;quot;0.5.8&amp;quot; to &amp;quot;0.5.10&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following code was added to ResourceHandleManager::doRedirect(): curl_easy_setopt(d-&amp;gt;m_handle, CURLOPT_SHARE, 0);&lt;br /&gt;
&lt;br /&gt;
==== v9.6 ====&lt;br /&gt;
WebKit/OSS code was actually updated.&lt;br /&gt;
ExeFS .code was updated. The following files in RomFS were updated:&lt;br /&gt;
* &amp;quot;/banner/CN/Skater.icn&amp;quot; and &amp;quot;/banner/KR/Skater.icn&amp;quot;.&lt;br /&gt;
* &amp;quot;/browser/rootca.pem&amp;quot;&lt;br /&gt;
* &amp;quot;/build/buildinfo.dat&amp;quot;&lt;br /&gt;
* &amp;quot;/cairo.cro.lex&amp;quot; and &amp;quot;/.crr/static.crr&amp;quot;&lt;br /&gt;
* &amp;quot;/lyt/Button/ButtonSelectHSearch.arc&amp;quot;&lt;br /&gt;
* &amp;quot;/lyt/Kbd/Swkbd.arc&amp;quot;&lt;br /&gt;
* &amp;quot;lyt/Kbd.arc&amp;quot;&lt;br /&gt;
* &amp;quot;skater.msbt&amp;quot; under all of the &amp;quot;/message/&amp;lt;region&amp;gt;_&amp;lt;language&amp;gt;/&amp;quot; directories.&lt;br /&gt;
* &amp;quot;/oss.cro.lex&amp;quot;, &amp;quot;/peer.cro.lex&amp;quot;, &amp;quot;/static.crs&amp;quot;, and &amp;quot;/webkit.cro.lex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following was added to RomFS:&lt;br /&gt;
* &amp;quot;/favicon/naver.dat&amp;quot;&lt;br /&gt;
* A &amp;quot;KO&amp;quot; directory under &amp;quot;/iwnn&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== v9.9 ====&lt;br /&gt;
ExeFS:/.code was updated.&lt;br /&gt;
&lt;br /&gt;
The only RomFS changes is file-updating, all of the following files were updated:&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /cairo.cro.lex&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex&lt;br /&gt;
 /peer.cro.lex&lt;br /&gt;
 /static.crs&lt;br /&gt;
 /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
See [https://gist.github.com/yellows8/9fb509fde4112339f342 here] for a diff of the OSS(WebKitLibraries/ is not included due to the massive cairo library diff). An exploitable security vuln(which was already known in the context of 3DS webkit) was fixed. [[User:Yellows8|Yellows8]]&#039; private(at the time of writing) exploit for it is based on the PoC from [http://pastebin.com/ufBCQKda here](see the pastebin for the actual pastebin author).&lt;br /&gt;
&lt;br /&gt;
==== v10.2 ====&lt;br /&gt;
The libstagefright build in the main SKATER codebin was updated to a version which fixed libstagefright vuln(s): the vuln used in [[browserhax|browserhax_fright]] at the time of sysupdate release was fixed. The *only* code changed in the main codebin, was code related to libstagefright.&lt;br /&gt;
&lt;br /&gt;
The only RomFS changes is file-updating, all of the following files were updated(see the forced-sysupdate section regarding what changed in the message files):&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex&lt;br /&gt;
 /static.crs&lt;br /&gt;
 /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
OSS diff:&lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/WKC/WebKit/WKC/webkit/WKCVersion.h b/NewNintendo3DS_OpenSources10.2.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index 4543297..0860336 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;0.5.15&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;0.5.17&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;536.30&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/ChangeLog b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 index a5abb35..cf5a9fa 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 @@ -1,3 +1,12 @@&lt;br /&gt;
 +2013-11-05  Ryosuke Niwa  &amp;lt;rniwa@webkit.org&amp;gt;&lt;br /&gt;
 +&lt;br /&gt;
 +        Use-after-free in SliderThumbElement::dragFrom&lt;br /&gt;
 +        https://bugs.webkit.org/show_bug.cgi?id=123873&lt;br /&gt;
 +&lt;br /&gt;
 +        Reviewed by Andreas Kling.&lt;br /&gt;
 +&lt;br /&gt;
 +        Merge https://chromium.googlesource.com/chromium/blink/+/04a23bfca2d04101a1828d36ff36c29f3a24f34b&lt;br /&gt;
 +&lt;br /&gt;
  2015-02-06  Maciej Stachowiak  &amp;lt;mjs@apple.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
          REGRESSION(r179706): Caused memory corruption on some tests (Requested by _ap_ on #webkit).&lt;br /&gt;
 @@ -879,7 +888,7 @@&lt;br /&gt;
          * rendering/RenderLineBoxList.cpp:&lt;br /&gt;
          (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):&lt;br /&gt;
  &lt;br /&gt;
 -2014-01-21  LÃ¡szlÃ³ LangÃ³  &amp;lt;llango.u-szeged@partner.samsung.com&amp;gt;&lt;br /&gt;
 +2014-01-21  Laszlo Lango  &amp;lt;llango.u-szeged@partner.samsung.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
          Assertion failure in Range::nodeWillBeRemoved&lt;br /&gt;
          https://bugs.webkit.org/show_bug.cgi?id=121694&lt;br /&gt;
 @@ -1879,7 +1888,7 @@&lt;br /&gt;
  &lt;br /&gt;
  2012-09-14  Simon Fraser  &amp;lt;simon.fraser@apple.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 -        REGRESSION: transition doesnât always override transition-property&lt;br /&gt;
 +        REGRESSION: transition doesnft always override transition-property&lt;br /&gt;
          https://bugs.webkit.org/show_bug.cgi?id=96658&lt;br /&gt;
  &lt;br /&gt;
          Reviewed by Dean Jackson.&lt;br /&gt;
 @@ -3691,8 +3700,8 @@&lt;br /&gt;
              glyph with font data for the primary font, presumably to meet the SVG&lt;br /&gt;
              spec requirement: &amp;quot;If the references to alternate glyphs do not result&lt;br /&gt;
              in successful identification of alternate glyphs to use, then the&lt;br /&gt;
 -            character(s) that are inside of the çª¶åltGlyphçª¶?element are rendered as&lt;br /&gt;
 -            if the çª¶åltGlyphçª¶?element were a çª¶?spançª¶?element instead.&amp;quot;&lt;br /&gt;
 +            character(s) that are inside of the âaltGlyphâ?element are rendered as&lt;br /&gt;
 +            if the âaltGlyphâ?element were a â?spanâ?element instead.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
              If the alt glyph is not then found we are in the case from the spec&lt;br /&gt;
              and indeed we should use the primary font. However, we end up replacing the GlyphPage&lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/html/RangeInputType.cpp b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 index 484adec..d7e9e8d 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 @@ -164,7 +164,7 @@ void RangeInputType::handleMouseDownEvent(MouseEvent* event)&lt;br /&gt;
      ASSERT(element()-&amp;gt;hasShadowRoot());&lt;br /&gt;
      if (targetNode != element() &amp;amp;&amp;amp; !targetNode-&amp;gt;isDescendantOf(element()-&amp;gt;shadowTree()-&amp;gt;oldestShadowRoot()))&lt;br /&gt;
          return;&lt;br /&gt;
 -    SliderThumbElement* thumb = sliderThumbElementOf(element());&lt;br /&gt;
 +    RefPtr&amp;lt;SliderThumbElement&amp;gt; thumb = sliderThumbElementOf(element());&lt;br /&gt;
      if (targetNode == thumb)&lt;br /&gt;
          return;&lt;br /&gt;
      thumb-&amp;gt;dragFrom(event-&amp;gt;absoluteLocation());&lt;br /&gt;
&lt;br /&gt;
==== v10.4 ====&lt;br /&gt;
The ExeFS codebin was updated, the only change was that the following code was updated in the actual NupCheck HTTPS request function:&lt;br /&gt;
* Previous version: sprintf(out, &amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/2/%s&amp;quot;, region);&lt;br /&gt;
* Current  version: sprintf(out, &amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/%d/%s&amp;quot;, 3, region);&lt;br /&gt;
&lt;br /&gt;
libpng was updated from version 1.5.21 to 1.5.24.&lt;br /&gt;
&lt;br /&gt;
The following RomFS files were updated(see the forced-sysupdate section regarding what changed in the message files):&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /cairo.cro.lex&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex differ&lt;br /&gt;
 /peer.cro.lex differ&lt;br /&gt;
 /static.crs differ&lt;br /&gt;
 /webkit.cro.lex differ&lt;br /&gt;
&lt;br /&gt;
==== v10.6 ====&lt;br /&gt;
The ExeFS codebin was updated.&lt;br /&gt;
&lt;br /&gt;
[[browserhax|browserhax_fright_tx3g]] was fixed. The code handling tx3g now matches the latest libstagefright git.&lt;br /&gt;
&lt;br /&gt;
Hence the below RomFS listing, no OSS was updated at all(besides libstagefright mentioned above).&lt;br /&gt;
&lt;br /&gt;
The following RomFS files were updated:&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /static.crs&lt;br /&gt;
&lt;br /&gt;
==== v10.7 ====&lt;br /&gt;
Basically the same changes as Old3DS v10.7, except with the usual buildinfo.dat update in RomFS. The below date is 6 days after the browser-version-check [[3DS_Userland_Flaws|bypass]] was publicly disclosed.&lt;br /&gt;
&lt;br /&gt;
 cat v7184/00000025_romfs/build/buildinfo.dat&lt;br /&gt;
 10150&lt;br /&gt;
 applet&lt;br /&gt;
 2016-03-02 18:25&lt;br /&gt;
&lt;br /&gt;
==== v11.1 ====&lt;br /&gt;
The ExeFS codebin was updated. The following files in RomFS were updated:&lt;br /&gt;
&lt;br /&gt;
  /build/buildinfo.dat&lt;br /&gt;
  /.crr/static.crr&lt;br /&gt;
  /oss.cro.lex&lt;br /&gt;
  /static.crs&lt;br /&gt;
  /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
  cat v8192/00000026_romfs/build/buildinfo.dat&lt;br /&gt;
  10156&lt;br /&gt;
  applet&lt;br /&gt;
  2016-08-26 19:47&lt;br /&gt;
&lt;br /&gt;
Minus the 4 functions that changed due to compiler optimization, only 1 function was actually updated. This is LT_1a4004, previous version at LT_1a4004: libstagefright status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth)&lt;br /&gt;
&lt;br /&gt;
Additional code was added which doesn&#039;t seem to be from upstream git, right [https://android.googlesource.com/platform/frameworks/av/+/32d6e5f0ebe9e00f80401e5f4fd6e285a474590d/media/libstagefright/MPEG4Extractor.cpp#880 before] the cprt code block: &amp;quot;if((*offset + chunk_size) - data_offset &amp;lt; 0)fail&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This fixed skater31hax + any other mp4 haxx which requires using a negative 64bit chunk_size value.&lt;br /&gt;
&lt;br /&gt;
The filepath base used in the assert strings were changed from &amp;quot;d:\Jenkins\workspace\MPSkaterBuild\MVPlayer\Skater\Base\Android\frameworks\base\media\libstagefright\&amp;quot; to &amp;quot;d:\jenkins\workspace\MPSkaterBuild-Git\Base\Android\frameworks\base\media\libstagefright\&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== New3DS Browser Specifications ===&lt;br /&gt;
[http://www.nintendo.co.jp/3ds/new/features/modal_net.html]&lt;br /&gt;
&lt;br /&gt;
English version:&lt;br /&gt;
* &amp;quot;Browser engine: NetFront® Browser NX v3.0&amp;quot;&lt;br /&gt;
* &amp;quot;User agent: Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML and like Gecko) NX/3.0.*.*.* Mobile NintendoBrowser/1.0.**** JP&lt;br /&gt;
* ** Version information is stated.&lt;br /&gt;
* *** When using the “Mobile version request” function, it differs from the above-mentioned character string&amp;quot;&lt;br /&gt;
* &amp;quot;Supported protocols: HTTP1.0/HTTP1.1/SSL3.0/TLS1.0/TLS1.1/TLS1.2&amp;quot;&lt;br /&gt;
* &amp;quot;Web standard: HTML4.01 / HTML5 / XHTML1.1 / Fullscreen API / Gamepad API / SVG / WebSocket / Video Subtitle / WOFF / Web Messaging / Server-Sent / Web Storage (partial) / XMLHttpRequest / Canvas element / Video / DOM Levels 1-3 / ECMAScript / CSS1 / CSS2.1 / CSS3 (partial)&amp;quot;&lt;br /&gt;
* &amp;quot;Image format: bmp / ​​gif / ico / jpeg / png / svg (There are, however, possibilities that some images won&#039;t display.)&amp;quot;&lt;br /&gt;
* &amp;quot;Image preview: mpo / jpeg (There are, however, possibilities that some images won&#039;t display.)&amp;quot;&lt;br /&gt;
* &amp;quot;Video format: MP4, M3U8 + TS (HTTPLiveStreaming) (There are, however, some videos that may not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Video codec: H.264 - MPEG-4 AVC Video (max 854x480 at level 3.2, 3D compatible) (There are, however, some videos that can not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Audio codec: AAC - ISO / IEC 14496-3 MPEG-4AAC, MP3 (There are, however, some videos that can not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Format for uploading 3D videos: .mkv (In order to be played, videos must be converted to the appropriate format within the site you are uploading to. In some cases, the video will not play even if converted.)&amp;quot;&lt;br /&gt;
* &amp;quot;Plug-ins: Plug-ins such as Adobe Flash are not supported&amp;quot;&lt;br /&gt;
* &amp;quot;Active Rating System filtering: provided by Digital Arts, Inc.. Access to web content can be limited based on its category information, restricting access to web content that may result inappropriate.&amp;quot;&lt;br /&gt;
* &amp;quot;Websites can be requested to provide the mobile version (However, if the web page does not have a mobile version, it won&#039;t change the way it&#039;s displayed.)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
MJPEG + .avi is also supported.&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
* The html &amp;quot;color&amp;quot; &amp;lt;input&amp;gt; type is not supported.&lt;br /&gt;
&lt;br /&gt;
== Old3DS browser ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Old3DS Browser Specifications ===&lt;br /&gt;
* &amp;quot;Browser engine: NetFront® Browser&amp;quot;&lt;br /&gt;
* &amp;quot;User agent: Mozilla/5.0 (Nintendo 3DS; region; ; en) Version/1.7498.US&amp;quot;&lt;br /&gt;
* &amp;quot;Supported protocols: HTTP1.0/HTTP1.1/SSLv3/TLS1.0&amp;quot;&lt;br /&gt;
* &amp;quot;Web standard: HTML 4.01/XHTML 1.1/CSS 1/CSS 2.1/CSS 3 (partial functionality)/DOM Levels 1-3/ECMAScript&lt;br /&gt;
/XMLHttpRequest/Canvas Element (partial functionality)&amp;quot;&lt;br /&gt;
* &amp;quot;Image format: MPO / GIF / JPEG / PNG / BMP / ICO (some images cannot be displayed)&amp;quot;&lt;br /&gt;
* &amp;quot;Plug-ins: Plug-ins such as Adobe Flash are not supported&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Old3DS browser doesn&#039;t support events &amp;quot;focusin&amp;quot; and &amp;quot;focusout&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== User-Agent and Browser Versions ===&lt;br /&gt;
User-agent format: &amp;lt;code style=&amp;quot;font-size:larger;&amp;quot;&amp;gt;Mozilla/5.0 (Nintendo 3DS; U; ; &amp;lt;lang&amp;gt;) Version/&amp;lt;version&amp;gt;.&amp;lt;region&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lang&amp;gt; is &amp;quot;en&amp;quot;, &amp;quot;fr&amp;quot;, etc. &amp;lt;region&amp;gt; is &amp;quot;US&amp;quot;, &amp;quot;EU&amp;quot;, etc. See below for &amp;lt;version&amp;gt;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Browser version&lt;br /&gt;
! CDN Title-version&lt;br /&gt;
! Network-only system-update version&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.7412&lt;br /&gt;
| v6&lt;br /&gt;
| [[2.0.0-2|2.0.0-2]]&lt;br /&gt;
| This was the initial version.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7455&lt;br /&gt;
| v1024&lt;br /&gt;
| [[2.1.0-4]]&lt;br /&gt;
| ExeFS .code was updated, both of the CROs(webkit/OSS) were updated too.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7498&lt;br /&gt;
| v2050&lt;br /&gt;
| [[4.0.0-7]]&lt;br /&gt;
| ExeFS .code was updated, both of the CROs(webkit/OSS) were updated too. The manual CFA was updated as well.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7538&lt;br /&gt;
| v0&lt;br /&gt;
| [[4.2.0-9]]&lt;br /&gt;
| First version of the KOR browser. The CROs are different from the  USA/EUR/JPN [[4.0.0-7]] browser.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7552&lt;br /&gt;
| v3075&lt;br /&gt;
| [[5.0.0-11]]&lt;br /&gt;
| ExeFS .code and icon were updated, both of the CROs(webkit/OSS) were updated too. The manual CFA was updated as well.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7552&lt;br /&gt;
| v3088&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| The main NCCH wasn&#039;t updated at all(same TMD contentID/content-hash as the previous version), only the manual CFA for this title was updated.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7567&lt;br /&gt;
| v4096&lt;br /&gt;
| [[7.1.0-16]]&lt;br /&gt;
| The CXI .code was updated, some data in the RomFS was updated(none of the CROs such as webkit.cro were updated). The manual CFA was updated too.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7585&lt;br /&gt;
| v5121&lt;br /&gt;
| [[9.5.0-23]]&lt;br /&gt;
| The CXI .code was updated, and the manual CFA was updated. RomFS changes:&lt;br /&gt;
* &amp;quot;/browser/rootca.pem&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/oss.cro&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/static.crs&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/webkit.cro&amp;quot; updated&lt;br /&gt;
* &amp;quot;/.crr/static.crr&amp;quot; updated&lt;br /&gt;
* &amp;quot;/layout/dialogheader/WirelessSwitchOff.arc&amp;quot; was removed&lt;br /&gt;
* &amp;quot;/layout/favorite/favicondata/KOR.arc&amp;quot; updated&lt;br /&gt;
&lt;br /&gt;
A vuln used in a public(at the time of this sysupdate) webkit exploit for spider was fixed, which also fixed the removewinframe exploit from [https://github.com/yellows8/3ds_webkithax here].&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| v6147&lt;br /&gt;
| v9.9 CUP&lt;br /&gt;
| v9.9 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7610&lt;br /&gt;
| v6149&lt;br /&gt;
| [[9.9.0-26]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7616&lt;br /&gt;
| v7168&lt;br /&gt;
| [[10.2.0-28]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7622&lt;br /&gt;
| v8192&lt;br /&gt;
| [[10.6.0-31]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7625&lt;br /&gt;
| v9232&lt;br /&gt;
| [[10.7.0-32]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| v10240&lt;br /&gt;
| [[11.1.0-34]]&lt;br /&gt;
| See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Heap ===&lt;br /&gt;
The USA/EUR/JPN + KOR browser allocates the 0x08000000 heap with size 0x01A97000. The size used by the CHN and TWN browser is 0x01997000, exactly 0x100000-bytes smaller.&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v9.9 ===&lt;br /&gt;
ExeFS:/.code was updated.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS were file-updating, the following files were updated:&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/spider.msbt&lt;br /&gt;
 /message/EU_Dutch/spider.msbt&lt;br /&gt;
 /message/EU_English/spider.msbt&lt;br /&gt;
 /message/EU_French/spider.msbt&lt;br /&gt;
 /message/EU_German/spider.msbt&lt;br /&gt;
 /message/EU_Italian/spider.msbt&lt;br /&gt;
 /message/EU_Portuguese/spider.msbt&lt;br /&gt;
 /message/EU_Russian/spider.msbt&lt;br /&gt;
 /message/EU_Spanish/spider.msbt&lt;br /&gt;
 /message/JP_Japanese/spider.msbt&lt;br /&gt;
 /message/KR_Hangeul/spider.msbt&lt;br /&gt;
 /message/TW_English/spider.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/spider.msbt&lt;br /&gt;
 /message/US_English/spider.msbt&lt;br /&gt;
 /message/US_French/spider.msbt&lt;br /&gt;
 /message/US_Portuguese/spider.msbt&lt;br /&gt;
 /message/US_Spanish/spider.msbt&lt;br /&gt;
&lt;br /&gt;
OSS diff for v9.5 and v9.9, without the .dox changes:&lt;br /&gt;
&lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/WKC/WebKit/WKC/webkit/WKCVersion.h b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index be5ff09..55a7274 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.14&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.16&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;532.7&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/webkit/WebCore/rendering/RenderBox.cpp b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 index da4127e..d03403e 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 @@ -305,23 +305,23 @@ int RenderBox::scrollHeight() const&lt;br /&gt;
  &lt;br /&gt;
  int RenderBox::scrollLeft() const&lt;br /&gt;
  {&lt;br /&gt;
 -    return hasOverflowClip() ? layer()-&amp;gt;scrollXOffset() : 0;&lt;br /&gt;
 +    return layer() &amp;amp;&amp;amp; hasOverflowClip() ? layer()-&amp;gt;scrollXOffset() : 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int RenderBox::scrollTop() const&lt;br /&gt;
  {&lt;br /&gt;
 -    return hasOverflowClip() ? layer()-&amp;gt;scrollYOffset() : 0;&lt;br /&gt;
 +    return layer() &amp;amp;&amp;amp; hasOverflowClip() ? layer()-&amp;gt;scrollYOffset() : 0;&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  void RenderBox::setScrollLeft(int newLeft)&lt;br /&gt;
  {&lt;br /&gt;
 -    if (hasOverflowClip())&lt;br /&gt;
 +    if (hasOverflowClip() &amp;amp;&amp;amp; layer())&lt;br /&gt;
          layer()-&amp;gt;scrollToXOffset(newLeft);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  void RenderBox::setScrollTop(int newTop)&lt;br /&gt;
  {&lt;br /&gt;
 -    if (hasOverflowClip())&lt;br /&gt;
 +    if (hasOverflowClip() &amp;amp;&amp;amp; layer())&lt;br /&gt;
          layer()-&amp;gt;scrollToYOffset(newTop);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.2 ===&lt;br /&gt;
The slider vuln from [https://github.com/yellows8/3ds_webkithax here] was fixed in the Old3DS browser.&lt;br /&gt;
&lt;br /&gt;
The main codebin .text only increased by 0x10-bytes.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS was that the following files were updated:&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
&lt;br /&gt;
OSS diff:&lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index 55a7274..fc153c4 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.16&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.17&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;532.7&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderSlider.cpp b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 index b2f5cef..1dd3dbd 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 @@ -221,6 +221,7 @@ RenderSlider::~RenderSlider()&lt;br /&gt;
  {&lt;br /&gt;
      if (m_thumb)&lt;br /&gt;
          m_thumb-&amp;gt;detach();&lt;br /&gt;
 +    m_thumb = 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int RenderSlider::baselinePosition(bool, bool) const&lt;br /&gt;
 @@ -493,7 +494,8 @@ void RenderSlider::forwardEvent(Event* event)&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
  &lt;br /&gt;
 -    m_thumb-&amp;gt;defaultEventHandler(event);&lt;br /&gt;
 +    if (m_thumb)&lt;br /&gt;
 +        m_thumb-&amp;gt;defaultEventHandler(event);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  bool RenderSlider::inDragMode() const&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.6 ===&lt;br /&gt;
[[browserhax|spider28hax]] was fixed. The &amp;quot;2^32 characters long string&amp;quot; vuln described [[3DS_Userland_Flaws|here]] was &#039;&#039;finally&#039;&#039; fixed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;A lot&#039;&#039; of WebKit issues/vulns were fixed, see [https://gist.github.com/yellows8/b1e10caa1d8bb8a46316 here] for the changes.&lt;br /&gt;
&lt;br /&gt;
libpng was updated from version 1.4.12 to 1.4.19. zlib was updated from 1.2.7 to 1.2.8.&lt;br /&gt;
&lt;br /&gt;
The .text size increased by 0x478-bytes.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS was that the following files were updated:&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /manual/Manual.bcma&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.7 ===&lt;br /&gt;
&#039;&#039;Nothing&#039;&#039; changed except some words for version-values in .text being updated(RomFS wasn&#039;t changed), code for browser-version-check was [[#v10.7_2|updated]].&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v11.1 ===&lt;br /&gt;
Nothing changed in the ExeFS codebin besides the usual version values. The following files in RomFS were updated:&lt;br /&gt;
  /cro/oss.cro&lt;br /&gt;
  /cro/webkit.cro&lt;br /&gt;
  /.crr/static.crr&lt;br /&gt;
&lt;br /&gt;
== Forced system-update ==&lt;br /&gt;
The Old3DS/New3DS Internet Browser updated with [[9.9.0-26]] added the following message strings:&lt;br /&gt;
 In order to use the Internet &lt;br /&gt;
 browser, a system update &lt;br /&gt;
 is required.&lt;br /&gt;
 To perform a system update, &lt;br /&gt;
 select System Update from Other&lt;br /&gt;
 Settings in System Settings.&lt;br /&gt;
&lt;br /&gt;
 The Internet browser cannot be&lt;br /&gt;
 used at this time.&lt;br /&gt;
 Please check your network&lt;br /&gt;
 environment or try again later.&lt;br /&gt;
&lt;br /&gt;
For whatever reason, the above &#039;&#039;message strings&#039;&#039; were removed with New3DS-browser v10.2, then re-added with v10.4. This does not apply to the Old3DS browser. Whenever v10.2 New3DS browser tries to use these message-strings for displaying a browser-update-related message, it will crash due to an assert failing since the message-strings are missing. Hence, if/when the v10.2 update-check page is ever updated where the browser tries to display a message for it, or when accessing that page fails, the browser will automatically crash.&lt;br /&gt;
&lt;br /&gt;
This wasn&#039;t enforced(web-browser displaying the above message when the installed browser isn&#039;t the latest version) until October 26, 2015.&lt;br /&gt;
&lt;br /&gt;
This message only triggers when attempting to load a web-page. This is only handled the first time the browser accesses a web-page, during this browser session.&lt;br /&gt;
&lt;br /&gt;
The browser codebins starting with v9.9 now contain the following URL strings:&lt;br /&gt;
* Old3DS: &amp;lt;nowiki&amp;gt;&amp;quot;https://cbvc.cdn.nintendo.net/CTR/1/&amp;lt;region&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* New3DS: &amp;lt;nowiki&amp;gt;&amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/1/&amp;lt;region&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;region&amp;gt; string is one of the following:&lt;br /&gt;
* &amp;quot;JPN&amp;quot;&lt;br /&gt;
* &amp;quot;USA&amp;quot;&lt;br /&gt;
* &amp;quot;EUR&amp;quot;&lt;br /&gt;
* &amp;quot;KOR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Starting with the browser from [[10.2.0-28]], the &amp;quot;1&amp;quot; in the above URLs were changed to &amp;quot;2&amp;quot;. With the New3DS browser from [[10.4.0-29]], it&#039;s now &amp;quot;3&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
As of October 26, 2015, the &amp;quot;1&amp;quot; URLs return the browser-version for v9.9(decimal number as a string without any &amp;quot;.&amp;quot;), while the &amp;quot;2&amp;quot; URLs returns 0.&lt;br /&gt;
&lt;br /&gt;
 if(internal_browserver &amp;gt; server_browserver)&lt;br /&gt;
 {&lt;br /&gt;
     &amp;lt;safe&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
 else&lt;br /&gt;
 {&lt;br /&gt;
     &amp;lt;update message&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Hence, internal_browserver == server_browserver will trigger the sysupdate message, which appears to be the normal way to indicate that the current browser is outdated(see above).&lt;br /&gt;
&lt;br /&gt;
There is a cache for this in savedata. The request is only done when at least 24-hours have passed since the last time the request was done(see the below savedata section).&lt;br /&gt;
&lt;br /&gt;
It is still possible to guard against this update by blocking the previous URLs using a proxy. &lt;br /&gt;
It is not possible to remove the update message by entering the [[Recovery Mode]].&lt;br /&gt;
&lt;br /&gt;
=== Page request ===&lt;br /&gt;
For this request, all root-CAs bundled with the browser are trusted, in addition to two of the SSL module builtin Nintendo root-CAs.&lt;br /&gt;
&lt;br /&gt;
The browser(with New3DS at least) does the following with [[HTTP_Services|HTTPC]] for requesting the above page:&lt;br /&gt;
* Initializes the HTTP context and uses [[HTTPC:InitializeConnectionSession]] + [[HTTPC:SetProxyDefault]].&lt;br /&gt;
* Uses [[HTTP_Services|HTTPC]] command 0x250080 twice with cmd[1]=contexthandle: first time cmd[2]=0x3, second time cmd[2]=0x6.&lt;br /&gt;
* Then [[HTTPC:AddTrustedRootCA]] is used 48 times to setup 48 trusted root CAs. This appears to be every cert in the browser &amp;quot;romfs:/browser/rootca.pem&amp;quot; file converted to DER, in the same order from there(in other words, every single root CA the browser trusts by default for normal web-browsing).&lt;br /&gt;
* Then [[HTTPC:BeginRequest]] is used.&lt;br /&gt;
* Then [[HTTPC:ReceiveDataTimeout]] is used, the recv-size seems to be fixed to 0x20.&lt;br /&gt;
* Then [[HTTPC:GetResponseStatusCodeTimeout]] is used.&lt;br /&gt;
* Then [[HTTPC:GetDownloadSizeState]] is used.&lt;br /&gt;
* Then the HTTP context is closed.&lt;br /&gt;
&lt;br /&gt;
Raw request data(New3DS USA v10.2 browser):&lt;br /&gt;
 000000: 47 45 54 20 2f 53 4e 41 4b 45 2f 32 2f 55 53 41  GET /SNAKE/2/USA&lt;br /&gt;
 000010: 20 48 54 54 50 2f 31 2e 31 0d 0a 48 6f 73 74 3a   HTTP/1.1..Host:&lt;br /&gt;
 000020: 20 63 62 76 63 2e 63 64 6e 2e 6e 69 6e 74 65 6e   cbvc.cdn.ninten&lt;br /&gt;
 000030: 64 6f 2e 6e 65 74 0d 0a 0d 0a                    do.net....&lt;br /&gt;
&lt;br /&gt;
=== v10.7 ===&lt;br /&gt;
The only actual code change with Old3DS/New3DS browser v10.7 was that the code which calculates the diff_timestamp was moved to immediately after the block which initializes &amp;lt;state_timestamp&amp;gt; when &amp;lt;state_timestamp&amp;gt; is all-zero. This fixed the browser-version-check [[3DS_Userland_Flaws|bypass]].&lt;br /&gt;
&lt;br /&gt;
== v9.9+/v10.7+ dummy web-browser ==&lt;br /&gt;
Gamecards v9.9 and above include, with their sysupdate, a dummy Old3DS/New3DS web-browser. The *only* thing this title does is display the same message listed in the above forced-update section. The message files in RomFS *only* contain that message string above. There are no &amp;quot;http&amp;quot; strings in the main codebin, and [[RO_Services|RO]] isn&#039;t used either(no CRO data in RomFS at all). Both browsers are internally called &amp;quot;dummySpider&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Hence, if you update your system below v9.8 with any v9.9 or above gamecard, the system web-browser will be rendered *completely* useless until you install a system-update from CDN(no network requests involved here).&lt;br /&gt;
&lt;br /&gt;
Gamecards v10.7 and above include an updated dummy web-browser, where the only difference is the title version.&lt;br /&gt;
&lt;br /&gt;
== Savedata ==&lt;br /&gt;
=== New3DS ===&lt;br /&gt;
On newer SKATER versions, it appears *all* NAND savedata is stored under the [[System_SaveData|0x000200BB]] savedata.&lt;br /&gt;
&lt;br /&gt;
==== 0x000200BB savedata ====&lt;br /&gt;
This only contains &amp;quot;t.bin&amp;quot; with filesize 0xadf80, the format is below.&lt;br /&gt;
&lt;br /&gt;
The timestamp format used here is the number of milliseconds since January 1, 2000(local-time).&lt;br /&gt;
&lt;br /&gt;
When using the &amp;quot;Initialize savedata&amp;quot; option in the browser, that deletes this savedata file/image then exits the browser. This file is then re-created when the browser gets started again.&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;
| 0x68&lt;br /&gt;
| 0x4?&lt;br /&gt;
| This counter is incremented each time the savedata is written.&lt;br /&gt;
|-&lt;br /&gt;
| 0x70&lt;br /&gt;
| 0x8&lt;br /&gt;
| Timestamp for when the savedata was last written.&lt;br /&gt;
|-&lt;br /&gt;
| 0x94&lt;br /&gt;
| 0x15?&lt;br /&gt;
| This is all-zeros on non-JPN systems. On JPN systems where the browser filter is disabled, this is a string in the following format: &amp;quot;4110-%016llX&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD8&lt;br /&gt;
| 0x8&lt;br /&gt;
| s64 timestamp, can be either a normal positive timestamp or a relative negative one. Used with the forced-update described above. When an update is detected this timestamp is negative, otherwise this is a normal positive timestamp(it&#039;s unknown how exactly this timestamp is checked). When positive, this seems to be the last time the forced-update HTTPS request was done where no update was needed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==APT Parameters==&lt;br /&gt;
The URL to load can optionally be loaded from char[] string [[APT:SendParameter|paramblk+0]]. This is used when scanning URL QR-codes in Home Menu / etc.&lt;br /&gt;
&lt;br /&gt;
==Errors==&lt;br /&gt;
&amp;quot;Failed to load part of this page&amp;quot;: This can be caused by failing to load &amp;quot;/favicon.ico&amp;quot;. For example, this can be caused by loading a plain HTTP page, with plain-http favicon redirecting to HTTPS. If cert-verify then fails with favicon in this case, this error would then trigger.&lt;br /&gt;
&lt;br /&gt;
==Other details==&lt;br /&gt;
&lt;br /&gt;
*It scored 90/100 on [http://acid3.acidtests.org/ Acid3] test&lt;br /&gt;
*Images from the Internet can be saved to the [[SD Filesystem|SD Card]] and viewed using the [[Nintendo 3DS Camera]] application.&lt;br /&gt;
*Images saved to an [[SD Filesystem|SD Card]] or to the Nintendo 3DS system memory can be uploaded to blogs or other sites that allow the uploading of photos using :&lt;br /&gt;
 &amp;lt;input type=&amp;quot;file&amp;quot; /&amp;gt;&lt;br /&gt;
* HTML5Test.com say that Drag and drop is supported but it&#039;s not (code on WebKit is ready, but it&#039;s not implemented on interface of browser)&lt;br /&gt;
&lt;br /&gt;
==Tips==&lt;br /&gt;
&lt;br /&gt;
=== Detect User Agent ===&lt;br /&gt;
&lt;br /&gt;
To detect if the user agent is Nintendo 3DS Browser :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
     if (navigator.userAgent.indexOf(&#039;Nintendo 3DS&#039;) == -1) { //If the UserAgent is not &amp;quot;Nintendo 3DS&amp;quot;&lt;br /&gt;
         location.replace(&#039;http://www.3dbrew.org&#039;); //Redirect to an other page&lt;br /&gt;
     }&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* You can check &amp;lt;em&amp;gt;navigator.platform==&amp;quot;Nintendo 3DS&amp;quot;&amp;lt;/em&amp;gt; as well.&lt;br /&gt;
&lt;br /&gt;
=== Scrolling ===&lt;br /&gt;
&lt;br /&gt;
Scrolling can be altered by modifying &amp;lt;em&amp;gt;document.body.scrollTop&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;document.body.scrollLeft&amp;lt;/em&amp;gt;.  However, there are drawbacks related to working with these properties:&lt;br /&gt;
&lt;br /&gt;
* Both properties return 0 when accessed&lt;br /&gt;
* Setting one property resets the other property&#039;s scroll position&lt;br /&gt;
&lt;br /&gt;
In order to set both at the same time (without either resetting to 0), use &amp;lt;em&amp;gt;window.scrollTo&amp;lt;/em&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Events ===&lt;br /&gt;
==== Key Events ====&lt;br /&gt;
The following buttons trigger the &amp;lt;em&amp;gt;onkeydown&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;onkeypress&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;onkeyup&amp;lt;/em&amp;gt; events:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;20%&amp;quot;&lt;br /&gt;
! Code !! Button &lt;br /&gt;
|-&lt;br /&gt;
| 13 || A&lt;br /&gt;
|-&lt;br /&gt;
| 37 || Left&lt;br /&gt;
|-&lt;br /&gt;
| 38 || Up&lt;br /&gt;
|-&lt;br /&gt;
| 39 || Right&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Down&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The events cannot have their default action cancelled.  Other buttons do not trigger key events.&lt;br /&gt;
&lt;br /&gt;
==== Touch/Mouse Events ====&lt;br /&gt;
&amp;lt;em&amp;gt;onmousedown&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;onmouseup&amp;lt;/em&amp;gt; &amp;amp; &amp;lt;em&amp;gt;onclick&amp;lt;/em&amp;gt; are all triggered by the browser.  However, the &amp;lt;em&amp;gt;onmousedown&amp;lt;/em&amp;gt; event doesn&#039;t trigger until you lift the stylus or you&#039;ve held it on the screen for ~2 seconds—which is when text selection mode is activated—making it pretty much the same as &amp;lt;em&amp;gt;onmouseup&amp;lt;/em&amp;gt;.  The events cannot have their default action cancelled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;em&amp;gt;onmousemove&amp;lt;/em&amp;gt; and common touch/gesture events are not supported.&lt;br /&gt;
&lt;br /&gt;
== Screen Resolution ==&lt;br /&gt;
&lt;br /&gt;
The up screen resolution is 400×240. However, the viewable area in the browser is only &amp;lt;b&amp;gt;400×220&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The touch screen resolution is 320×240. However, the viewable area in the browser is only &amp;lt;b&amp;gt;320×212&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can have a page span both screens. However, the browser will behave as if the bottom screen is the only active screen and the top screen is scrolled off. This is important when computing CSS coordinates. Items positioned from &amp;quot;bottom&amp;quot; will be positioned based on 220px and not the full 432px of both screens.&lt;br /&gt;
&lt;br /&gt;
== Using Both Screens ==&lt;br /&gt;
&lt;br /&gt;
Generally the easiest way to accomplish the correct layout is to create HTML elements that &amp;quot;contain&amp;quot; the top and bottom screens. Here&#039;s an example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
   &amp;lt;head&amp;gt;&lt;br /&gt;
     &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=400&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;style&amp;gt;&lt;br /&gt;
       body{margin:0px;}&lt;br /&gt;
       #topscreen{width:400px;height:220px;overflow:hidden;}&lt;br /&gt;
       #bottomscreen{width:320px;height:212px;overflow:hidden;margin:0 auto;}&lt;br /&gt;
     &amp;lt;/style&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div id=&amp;quot;topscreen&amp;quot;&amp;gt;Top Screen&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div id=&amp;quot;bottomscreen&amp;quot;&amp;gt;Bottom Screen&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This scheme allows the page to be easily manipulated through JavaScript.  In order to have the window snap to the correct position, use the following JavaScript code:&lt;br /&gt;
&lt;br /&gt;
 window.setInterval(function () {&lt;br /&gt;
     window.scrollTo(40, 220);  &lt;br /&gt;
 }, 50);&lt;br /&gt;
&lt;br /&gt;
This automatically resets the position if the user accidentally scrolls the page.&lt;br /&gt;
&lt;br /&gt;
==Example Sites==&lt;br /&gt;
&amp;lt;!-- If you have a website that demonstrates these techniques, place it here! --&amp;gt;&lt;br /&gt;
* [http://www.nintendo.com/3ds/internetbrowser/bookmarks Nintendo 3DS Bookmarks] - This is the first bookmark pre-installed in the browser.&lt;br /&gt;
* [http://3ds.andysmith.co.uk/jFox.html jFox] (Short URL: http://bit.ly/iB7FqW)&lt;br /&gt;
* [http://ditto3d.com/3ds Ditto3D] (Short URL: http://bit.ly/oVreWA)&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Internet_Browser&amp;diff=18298</id>
		<title>Internet Browser</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Internet_Browser&amp;diff=18298"/>
		<updated>2016-09-26T06:04:22Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* User-Agent and Browser Versions */ 10.7 dummy info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The 3DS Internet Browser was added in the June 2011 Update for JPN/EUR/USA.&lt;br /&gt;
&lt;br /&gt;
From the Internet Browser help section:&lt;br /&gt;
In compliance with the LGPL, the source code of the OSS is available via the Nintendo website.&lt;br /&gt;
This source code can be downloaded here:&lt;br /&gt;
[http://mediacontent.nintendo-europe.com/NOE/images/service/OpenSources.zip] [http://www.nintendo.co.jp/support/oss/index.html]&lt;br /&gt;
&lt;br /&gt;
The 3DS Internet Browser is [http://en.wikipedia.org/wiki/Netfront Netfront] Browser NX v1.0 based on [http://en.wikipedia.org/wiki/WebKit WebKit] engine.&lt;br /&gt;
&lt;br /&gt;
On O3DS the exheader name of this title is &amp;quot;SPIDER&amp;quot;; on N3DS, &amp;quot;SKATER&amp;quot;.&lt;br /&gt;
The only difference between the ExeFS .code for each region of the Old3DS/New3DS browser, is byte values for the title uniqueID/region.&lt;br /&gt;
&lt;br /&gt;
A [[#v9.9_dummy_web-browser|&amp;quot;dummy&amp;quot; browser]] (which replaces the actual browser) is being included with cartdrige games shipping with system updates starting with [[9.9.0-26|9.9.0-X]]. &lt;br /&gt;
In addition, versions of the real browser since 9.9.0-26X attempt to [[#Forced_system-update|check-in with a Nintendo server]] to determine if the existing browser version is out of date.&lt;br /&gt;
&lt;br /&gt;
==[[New 3DS]] Internet Browser==&lt;br /&gt;
New3DS has a separate browser title, with the exheader name &amp;quot;SKATER&amp;quot;.&lt;br /&gt;
Unlike the Old3DS browser, the New3DS browser has videos+HTML5 support. &lt;br /&gt;
&lt;br /&gt;
This browser also has a filter enabled by default in the JPN version. &lt;br /&gt;
Disabling it requires paying money with a credit-card, for [[NIM_Services|purchasing]] web-browser [[Title_list/DLC|DLC]].&lt;br /&gt;
During startup the browser does various HTTPS comms. When visting an URL, the browser sends a plaintext HTTP POST here: [http://ars.ifuser.jp:20080/ars2/rating]. The raw POST data begins with &amp;quot;ARS/2.0\r\n\x00&amp;quot;, the rest appears to be encrypted. The server reply content also has this ARS header + encrypted data. This appears to use a fixed xorpad, likely from a fixed encryption CTR/IV. The server content responses for allowed sites, and blocked sites, are fixed. When the server returns that the site is blocked, the browser goes to this page: [http://ars.ifuser.jp/filter/44.html](the Referrer header value is set to the same URL it&#039;s actually requesting).&lt;br /&gt;
&lt;br /&gt;
The WebKit source was updated since the Old3DS browser.&lt;br /&gt;
The New3DS browser uses the following services: [[MVD_Services|mvd:STD]] and [[IR_Services|ir:rst]](DLC-related services are used too but those aren&#039;t New3DS specific).&lt;br /&gt;
Video decoding is done with [[MVD_Services|mvd:STD]]. Audio decoding/playback is done with a browser-specific DSP binary. The Old3DS browser used CSND for audio playback, the New3DS browser doesn&#039;t have access to that at all since it uses DSP instead.&lt;br /&gt;
&lt;br /&gt;
=== Video / libstagefright ===&lt;br /&gt;
The browser manual includes licenses for Android and PacketVideo. The browser uses libstagefright from Android. Just like WebKit, the browser appears to use a very old version of libstagefright with security/other changes back-ported(for example, the v10.7 browser libstagefright codebase seems to be older than [https://android.googlesource.com/platform/frameworks/av/+/ec77122351b4e78c1fe5b60a208f76baf8c67591%5E%21/media/libstagefright/MPEG4Extractor.cpp this]). This codebase is missing certain chunk-parsing code for 3GP.&lt;br /&gt;
&lt;br /&gt;
HTTP for libstagefright is internally handled with [[HTTP_Services|HTTPC]], with a similar(?) set of RootCAs as for browser-version-check.&lt;br /&gt;
&lt;br /&gt;
===User-Agent and Browser Versions===&lt;br /&gt;
Normal user-agent format: &amp;lt;code style=&amp;quot;font-size:larger;&amp;quot;&amp;gt;Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/&amp;lt;WebKit version&amp;gt; (KHTML, like Gecko) NX/&amp;lt;Netfront version&amp;gt; Mobile NintendoBrowser/&amp;lt;Mobile NintendoBrowser version&amp;gt;.&amp;lt;region&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;region&amp;gt; can be one of the following: &amp;quot;JP&amp;quot;, &amp;quot;US&amp;quot;, or &amp;quot;EU&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Mobile NintendoBrowser version(displayed in browser settings)&lt;br /&gt;
! Normal UA&lt;br /&gt;
! Mobile UA&lt;br /&gt;
! CDN Title-version&lt;br /&gt;
! Network-only system-update version&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.9934&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.8 Mobile NintendoBrowser/1.0.9934.&amp;lt;region&amp;gt;&lt;br /&gt;
| Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&lt;br /&gt;
| v10&lt;br /&gt;
| [[9.0.0-20]]&lt;br /&gt;
| Initial version.&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.9996&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.10 Mobile NintendoBrowser/1.1.9996.&amp;lt;region&amp;gt;&lt;br /&gt;
| Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&lt;br /&gt;
| v1027&lt;br /&gt;
| [[9.3.0-21]]&lt;br /&gt;
| See below regarding OSS changes.&lt;br /&gt;
|-&lt;br /&gt;
| 1.2.10085&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.13 Mobile NintendoBrowser/1.2.10085.&amp;lt;region&amp;gt;&lt;br /&gt;
| Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&lt;br /&gt;
| v2051&lt;br /&gt;
| [[9.6.0-24]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v3075&lt;br /&gt;
| v9.9 CUP&lt;br /&gt;
| v9.9 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.10126&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.15 Mobile NintendoBrowser/1.3.10126.US&lt;br /&gt;
| Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&lt;br /&gt;
| v3077&lt;br /&gt;
| [[9.9.0-26]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.10138&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.17 Mobile NintendoBrowser/1.4.10138.US&lt;br /&gt;
| Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&lt;br /&gt;
| v4096&lt;br /&gt;
| [[10.2.0-28]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.5.10143&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| v5121&lt;br /&gt;
| [[10.4.0-29]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.6.10147&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.6.10147.US&lt;br /&gt;
| Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&lt;br /&gt;
| v6144&lt;br /&gt;
| [[10.6.0-31]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v7168&lt;br /&gt;
| v10.7 CUP&lt;br /&gt;
| v10.7 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7.10150&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.7.10150.US&lt;br /&gt;
| &lt;br /&gt;
| v7184&lt;br /&gt;
| [[10.7.0-32]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| v8192&lt;br /&gt;
| [[11.1.0-34]]&lt;br /&gt;
| See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the latest Old3DS browser WebKit version at the time the initial New3DS browser was released, was the following: 532.8.&lt;br /&gt;
&lt;br /&gt;
The first version of the KOR New3DS browser was v9.6(which was when the New3DS KOR titles were originally added). Each version of the KOR browser has the same NintendoBrowser version as the other regions. The KOR browser has been only updated when the browser for the other regions were updated, hence the title-versions are the same as well. The KOR browser ExeFS .code is different from the other regions(more than just region-related IDs etc).&lt;br /&gt;
&lt;br /&gt;
==== OSS 9.0 and 9.3 diff ====&lt;br /&gt;
The following is a diff of the OSS archives from [http://www.nintendo.co.jp/support/oss/index.html here], for v9.0 and v9.3.&lt;br /&gt;
&lt;br /&gt;
 Files NewNintendo3DS_OpenSources9.0.0-/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp and NewNintendo3DS_OpenSources9.3.0-/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp differ&lt;br /&gt;
 Files NewNintendo3DS_OpenSources9.0.0-/WKC/WebKit/WKC/webkit/WKCVersion.h and NewNintendo3DS_OpenSources9.3.0-/WKC/WebKit/WKC/webkit/WKCVersion.h differ&lt;br /&gt;
&lt;br /&gt;
WKC_CUSTOMER_RELEASE_VERSION was changed from &amp;quot;0.5.8&amp;quot; to &amp;quot;0.5.10&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following code was added to ResourceHandleManager::doRedirect(): curl_easy_setopt(d-&amp;gt;m_handle, CURLOPT_SHARE, 0);&lt;br /&gt;
&lt;br /&gt;
==== v9.6 ====&lt;br /&gt;
WebKit/OSS code was actually updated.&lt;br /&gt;
ExeFS .code was updated. The following files in RomFS were updated:&lt;br /&gt;
* &amp;quot;/banner/CN/Skater.icn&amp;quot; and &amp;quot;/banner/KR/Skater.icn&amp;quot;.&lt;br /&gt;
* &amp;quot;/browser/rootca.pem&amp;quot;&lt;br /&gt;
* &amp;quot;/build/buildinfo.dat&amp;quot;&lt;br /&gt;
* &amp;quot;/cairo.cro.lex&amp;quot; and &amp;quot;/.crr/static.crr&amp;quot;&lt;br /&gt;
* &amp;quot;/lyt/Button/ButtonSelectHSearch.arc&amp;quot;&lt;br /&gt;
* &amp;quot;/lyt/Kbd/Swkbd.arc&amp;quot;&lt;br /&gt;
* &amp;quot;lyt/Kbd.arc&amp;quot;&lt;br /&gt;
* &amp;quot;skater.msbt&amp;quot; under all of the &amp;quot;/message/&amp;lt;region&amp;gt;_&amp;lt;language&amp;gt;/&amp;quot; directories.&lt;br /&gt;
* &amp;quot;/oss.cro.lex&amp;quot;, &amp;quot;/peer.cro.lex&amp;quot;, &amp;quot;/static.crs&amp;quot;, and &amp;quot;/webkit.cro.lex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following was added to RomFS:&lt;br /&gt;
* &amp;quot;/favicon/naver.dat&amp;quot;&lt;br /&gt;
* A &amp;quot;KO&amp;quot; directory under &amp;quot;/iwnn&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== v9.9 ====&lt;br /&gt;
ExeFS:/.code was updated.&lt;br /&gt;
&lt;br /&gt;
The only RomFS changes is file-updating, all of the following files were updated:&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /cairo.cro.lex&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex&lt;br /&gt;
 /peer.cro.lex&lt;br /&gt;
 /static.crs&lt;br /&gt;
 /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
See [https://gist.github.com/yellows8/9fb509fde4112339f342 here] for a diff of the OSS(WebKitLibraries/ is not included due to the massive cairo library diff). An exploitable security vuln(which was already known in the context of 3DS webkit) was fixed. [[User:Yellows8|Yellows8]]&#039; private(at the time of writing) exploit for it is based on the PoC from [http://pastebin.com/ufBCQKda here](see the pastebin for the actual pastebin author).&lt;br /&gt;
&lt;br /&gt;
==== v10.2 ====&lt;br /&gt;
The libstagefright build in the main SKATER codebin was updated to a version which fixed libstagefright vuln(s): the vuln used in [[browserhax|browserhax_fright]] at the time of sysupdate release was fixed. The *only* code changed in the main codebin, was code related to libstagefright.&lt;br /&gt;
&lt;br /&gt;
The only RomFS changes is file-updating, all of the following files were updated(see the forced-sysupdate section regarding what changed in the message files):&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex&lt;br /&gt;
 /static.crs&lt;br /&gt;
 /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
OSS diff:&lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/WKC/WebKit/WKC/webkit/WKCVersion.h b/NewNintendo3DS_OpenSources10.2.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index 4543297..0860336 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;0.5.15&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;0.5.17&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;536.30&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/ChangeLog b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 index a5abb35..cf5a9fa 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 @@ -1,3 +1,12 @@&lt;br /&gt;
 +2013-11-05  Ryosuke Niwa  &amp;lt;rniwa@webkit.org&amp;gt;&lt;br /&gt;
 +&lt;br /&gt;
 +        Use-after-free in SliderThumbElement::dragFrom&lt;br /&gt;
 +        https://bugs.webkit.org/show_bug.cgi?id=123873&lt;br /&gt;
 +&lt;br /&gt;
 +        Reviewed by Andreas Kling.&lt;br /&gt;
 +&lt;br /&gt;
 +        Merge https://chromium.googlesource.com/chromium/blink/+/04a23bfca2d04101a1828d36ff36c29f3a24f34b&lt;br /&gt;
 +&lt;br /&gt;
  2015-02-06  Maciej Stachowiak  &amp;lt;mjs@apple.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
          REGRESSION(r179706): Caused memory corruption on some tests (Requested by _ap_ on #webkit).&lt;br /&gt;
 @@ -879,7 +888,7 @@&lt;br /&gt;
          * rendering/RenderLineBoxList.cpp:&lt;br /&gt;
          (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):&lt;br /&gt;
  &lt;br /&gt;
 -2014-01-21  LÃ¡szlÃ³ LangÃ³  &amp;lt;llango.u-szeged@partner.samsung.com&amp;gt;&lt;br /&gt;
 +2014-01-21  Laszlo Lango  &amp;lt;llango.u-szeged@partner.samsung.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
          Assertion failure in Range::nodeWillBeRemoved&lt;br /&gt;
          https://bugs.webkit.org/show_bug.cgi?id=121694&lt;br /&gt;
 @@ -1879,7 +1888,7 @@&lt;br /&gt;
  &lt;br /&gt;
  2012-09-14  Simon Fraser  &amp;lt;simon.fraser@apple.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 -        REGRESSION: transition doesnât always override transition-property&lt;br /&gt;
 +        REGRESSION: transition doesnft always override transition-property&lt;br /&gt;
          https://bugs.webkit.org/show_bug.cgi?id=96658&lt;br /&gt;
  &lt;br /&gt;
          Reviewed by Dean Jackson.&lt;br /&gt;
 @@ -3691,8 +3700,8 @@&lt;br /&gt;
              glyph with font data for the primary font, presumably to meet the SVG&lt;br /&gt;
              spec requirement: &amp;quot;If the references to alternate glyphs do not result&lt;br /&gt;
              in successful identification of alternate glyphs to use, then the&lt;br /&gt;
 -            character(s) that are inside of the çª¶åltGlyphçª¶?element are rendered as&lt;br /&gt;
 -            if the çª¶åltGlyphçª¶?element were a çª¶?spançª¶?element instead.&amp;quot;&lt;br /&gt;
 +            character(s) that are inside of the âaltGlyphâ?element are rendered as&lt;br /&gt;
 +            if the âaltGlyphâ?element were a â?spanâ?element instead.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
              If the alt glyph is not then found we are in the case from the spec&lt;br /&gt;
              and indeed we should use the primary font. However, we end up replacing the GlyphPage&lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/html/RangeInputType.cpp b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 index 484adec..d7e9e8d 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 @@ -164,7 +164,7 @@ void RangeInputType::handleMouseDownEvent(MouseEvent* event)&lt;br /&gt;
      ASSERT(element()-&amp;gt;hasShadowRoot());&lt;br /&gt;
      if (targetNode != element() &amp;amp;&amp;amp; !targetNode-&amp;gt;isDescendantOf(element()-&amp;gt;shadowTree()-&amp;gt;oldestShadowRoot()))&lt;br /&gt;
          return;&lt;br /&gt;
 -    SliderThumbElement* thumb = sliderThumbElementOf(element());&lt;br /&gt;
 +    RefPtr&amp;lt;SliderThumbElement&amp;gt; thumb = sliderThumbElementOf(element());&lt;br /&gt;
      if (targetNode == thumb)&lt;br /&gt;
          return;&lt;br /&gt;
      thumb-&amp;gt;dragFrom(event-&amp;gt;absoluteLocation());&lt;br /&gt;
&lt;br /&gt;
==== v10.4 ====&lt;br /&gt;
The ExeFS codebin was updated, the only change was that the following code was updated in the actual NupCheck HTTPS request function:&lt;br /&gt;
* Previous version: sprintf(out, &amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/2/%s&amp;quot;, region);&lt;br /&gt;
* Current  version: sprintf(out, &amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/%d/%s&amp;quot;, 3, region);&lt;br /&gt;
&lt;br /&gt;
libpng was updated from version 1.5.21 to 1.5.24.&lt;br /&gt;
&lt;br /&gt;
The following RomFS files were updated(see the forced-sysupdate section regarding what changed in the message files):&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /cairo.cro.lex&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex differ&lt;br /&gt;
 /peer.cro.lex differ&lt;br /&gt;
 /static.crs differ&lt;br /&gt;
 /webkit.cro.lex differ&lt;br /&gt;
&lt;br /&gt;
==== v10.6 ====&lt;br /&gt;
The ExeFS codebin was updated.&lt;br /&gt;
&lt;br /&gt;
[[browserhax|browserhax_fright_tx3g]] was fixed. The code handling tx3g now matches the latest libstagefright git.&lt;br /&gt;
&lt;br /&gt;
Hence the below RomFS listing, no OSS was updated at all(besides libstagefright mentioned above).&lt;br /&gt;
&lt;br /&gt;
The following RomFS files were updated:&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /static.crs&lt;br /&gt;
&lt;br /&gt;
==== v10.7 ====&lt;br /&gt;
Basically the same changes as Old3DS v10.7, except with the usual buildinfo.dat update in RomFS. The below date is 6 days after the browser-version-check [[3DS_Userland_Flaws|bypass]] was publicly disclosed.&lt;br /&gt;
&lt;br /&gt;
 cat v7184/00000025_romfs/build/buildinfo.dat&lt;br /&gt;
 10150&lt;br /&gt;
 applet&lt;br /&gt;
 2016-03-02 18:25&lt;br /&gt;
&lt;br /&gt;
==== v11.1 ====&lt;br /&gt;
The ExeFS codebin was updated. The following files in RomFS were updated:&lt;br /&gt;
&lt;br /&gt;
  /build/buildinfo.dat&lt;br /&gt;
  /.crr/static.crr&lt;br /&gt;
  /oss.cro.lex&lt;br /&gt;
  /static.crs&lt;br /&gt;
  /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
  cat v8192/00000026_romfs/build/buildinfo.dat&lt;br /&gt;
  10156&lt;br /&gt;
  applet&lt;br /&gt;
  2016-08-26 19:47&lt;br /&gt;
&lt;br /&gt;
Minus the 4 functions that changed due to compiler optimization, only 1 function was actually updated. This is LT_1a4004, previous version at LT_1a4004: libstagefright status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth)&lt;br /&gt;
&lt;br /&gt;
Additional code was added which doesn&#039;t seem to be from upstream git, right [https://android.googlesource.com/platform/frameworks/av/+/32d6e5f0ebe9e00f80401e5f4fd6e285a474590d/media/libstagefright/MPEG4Extractor.cpp#880 before] the cprt code block: &amp;quot;if((*offset + chunk_size) - data_offset &amp;lt; 0)fail&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This fixed skater31hax + any other mp4 haxx which requires using a negative 64bit chunk_size value.&lt;br /&gt;
&lt;br /&gt;
The filepath base used in the assert strings were changed from &amp;quot;d:\Jenkins\workspace\MPSkaterBuild\MVPlayer\Skater\Base\Android\frameworks\base\media\libstagefright\&amp;quot; to &amp;quot;d:\jenkins\workspace\MPSkaterBuild-Git\Base\Android\frameworks\base\media\libstagefright\&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== New3DS Browser Specifications ===&lt;br /&gt;
[http://www.nintendo.co.jp/3ds/new/features/modal_net.html]&lt;br /&gt;
&lt;br /&gt;
English version:&lt;br /&gt;
* &amp;quot;Browser engine: NetFront® Browser NX v3.0&amp;quot;&lt;br /&gt;
* &amp;quot;User agent: Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML and like Gecko) NX/3.0.*.*.* Mobile NintendoBrowser/1.0.**** JP&lt;br /&gt;
* ** Version information is stated.&lt;br /&gt;
* *** When using the “Mobile version request” function, it differs from the above-mentioned character string&amp;quot;&lt;br /&gt;
* &amp;quot;Supported protocols: HTTP1.0/HTTP1.1/SSL3.0/TLS1.0/TLS1.1/TLS1.2&amp;quot;&lt;br /&gt;
* &amp;quot;Web standard: HTML4.01 / HTML5 / XHTML1.1 / Fullscreen API / Gamepad API / SVG / WebSocket / Video Subtitle / WOFF / Web Messaging / Server-Sent / Web Storage (partial) / XMLHttpRequest / Canvas element / Video / DOM Levels 1-3 / ECMAScript / CSS1 / CSS2.1 / CSS3 (partial)&amp;quot;&lt;br /&gt;
* &amp;quot;Image format: bmp / ​​gif / ico / jpeg / png / svg (There are, however, possibilities that some images won&#039;t display.)&amp;quot;&lt;br /&gt;
* &amp;quot;Image preview: mpo / jpeg (There are, however, possibilities that some images won&#039;t display.)&amp;quot;&lt;br /&gt;
* &amp;quot;Video format: MP4, M3U8 + TS (HTTPLiveStreaming) (There are, however, some videos that may not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Video codec: H.264 - MPEG-4 AVC Video (max 854x480 at level 3.2, 3D compatible) (There are, however, some videos that can not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Audio codec: AAC - ISO / IEC 14496-3 MPEG-4AAC, MP3 (There are, however, some videos that can not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Format for uploading 3D videos: .mkv (In order to be played, videos must be converted to the appropriate format within the site you are uploading to. In some cases, the video will not play even if converted.)&amp;quot;&lt;br /&gt;
* &amp;quot;Plug-ins: Plug-ins such as Adobe Flash are not supported&amp;quot;&lt;br /&gt;
* &amp;quot;Active Rating System filtering: provided by Digital Arts, Inc.. Access to web content can be limited based on its category information, restricting access to web content that may result inappropriate.&amp;quot;&lt;br /&gt;
* &amp;quot;Websites can be requested to provide the mobile version (However, if the web page does not have a mobile version, it won&#039;t change the way it&#039;s displayed.)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
MJPEG + .avi is also supported.&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
* The html &amp;quot;color&amp;quot; &amp;lt;input&amp;gt; type is not supported.&lt;br /&gt;
&lt;br /&gt;
== Old3DS browser ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Old3DS Browser Specifications ===&lt;br /&gt;
* &amp;quot;Browser engine: NetFront® Browser&amp;quot;&lt;br /&gt;
* &amp;quot;User agent: Mozilla/5.0 (Nintendo 3DS; region; ; en) Version/1.7498.US&amp;quot;&lt;br /&gt;
* &amp;quot;Supported protocols: HTTP1.0/HTTP1.1/SSLv3/TLS1.0&amp;quot;&lt;br /&gt;
* &amp;quot;Web standard: HTML 4.01/XHTML 1.1/CSS 1/CSS 2.1/CSS 3 (partial functionality)/DOM Levels 1-3/ECMAScript&lt;br /&gt;
/XMLHttpRequest/Canvas Element (partial functionality)&amp;quot;&lt;br /&gt;
* &amp;quot;Image format: MPO / GIF / JPEG / PNG / BMP / ICO (some images cannot be displayed)&amp;quot;&lt;br /&gt;
* &amp;quot;Plug-ins: Plug-ins such as Adobe Flash are not supported&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Old3DS browser doesn&#039;t support events &amp;quot;focusin&amp;quot; and &amp;quot;focusout&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== User-Agent and Browser Versions ===&lt;br /&gt;
User-agent format: &amp;lt;code style=&amp;quot;font-size:larger;&amp;quot;&amp;gt;Mozilla/5.0 (Nintendo 3DS; U; ; &amp;lt;lang&amp;gt;) Version/&amp;lt;version&amp;gt;.&amp;lt;region&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lang&amp;gt; is &amp;quot;en&amp;quot;, &amp;quot;fr&amp;quot;, etc. &amp;lt;region&amp;gt; is &amp;quot;US&amp;quot;, &amp;quot;EU&amp;quot;, etc. See below for &amp;lt;version&amp;gt;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Browser version&lt;br /&gt;
! CDN Title-version&lt;br /&gt;
! Network-only system-update version&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.7412&lt;br /&gt;
| v6&lt;br /&gt;
| [[2.0.0-2|2.0.0-2]]&lt;br /&gt;
| This was the initial version.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7455&lt;br /&gt;
| v1024&lt;br /&gt;
| [[2.1.0-4]]&lt;br /&gt;
| ExeFS .code was updated, both of the CROs(webkit/OSS) were updated too.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7498&lt;br /&gt;
| v2050&lt;br /&gt;
| [[4.0.0-7]]&lt;br /&gt;
| ExeFS .code was updated, both of the CROs(webkit/OSS) were updated too. The manual CFA was updated as well.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7538&lt;br /&gt;
| v0&lt;br /&gt;
| [[4.2.0-9]]&lt;br /&gt;
| First version of the KOR browser. The CROs are different from the  USA/EUR/JPN [[4.0.0-7]] browser.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7552&lt;br /&gt;
| v3075&lt;br /&gt;
| [[5.0.0-11]]&lt;br /&gt;
| ExeFS .code and icon were updated, both of the CROs(webkit/OSS) were updated too. The manual CFA was updated as well.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7552&lt;br /&gt;
| v3088&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| The main NCCH wasn&#039;t updated at all(same TMD contentID/content-hash as the previous version), only the manual CFA for this title was updated.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7567&lt;br /&gt;
| v4096&lt;br /&gt;
| [[7.1.0-16]]&lt;br /&gt;
| The CXI .code was updated, some data in the RomFS was updated(none of the CROs such as webkit.cro were updated). The manual CFA was updated too.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7585&lt;br /&gt;
| v5121&lt;br /&gt;
| [[9.5.0-23]]&lt;br /&gt;
| The CXI .code was updated, and the manual CFA was updated. RomFS changes:&lt;br /&gt;
* &amp;quot;/browser/rootca.pem&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/oss.cro&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/static.crs&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/webkit.cro&amp;quot; updated&lt;br /&gt;
* &amp;quot;/.crr/static.crr&amp;quot; updated&lt;br /&gt;
* &amp;quot;/layout/dialogheader/WirelessSwitchOff.arc&amp;quot; was removed&lt;br /&gt;
* &amp;quot;/layout/favorite/favicondata/KOR.arc&amp;quot; updated&lt;br /&gt;
&lt;br /&gt;
A vuln used in a public(at the time of this sysupdate) webkit exploit for spider was fixed, which also fixed the removewinframe exploit from [https://github.com/yellows8/3ds_webkithax here].&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| v6147&lt;br /&gt;
| v9.9 CUP&lt;br /&gt;
| v9.9 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7610&lt;br /&gt;
| v6149&lt;br /&gt;
| [[9.9.0-26]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7616&lt;br /&gt;
| v7168&lt;br /&gt;
| [[10.2.0-28]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7622&lt;br /&gt;
| v8192&lt;br /&gt;
| [[10.6.0-31]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7625&lt;br /&gt;
| v9232&lt;br /&gt;
| [[10.7.0-32]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| v10240&lt;br /&gt;
| [[11.1.0-34]]&lt;br /&gt;
| See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Heap ===&lt;br /&gt;
The USA/EUR/JPN + KOR browser allocates the 0x08000000 heap with size 0x01A97000. The size used by the CHN and TWN browser is 0x01997000, exactly 0x100000-bytes smaller.&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v9.9 ===&lt;br /&gt;
ExeFS:/.code was updated.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS were file-updating, the following files were updated:&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/spider.msbt&lt;br /&gt;
 /message/EU_Dutch/spider.msbt&lt;br /&gt;
 /message/EU_English/spider.msbt&lt;br /&gt;
 /message/EU_French/spider.msbt&lt;br /&gt;
 /message/EU_German/spider.msbt&lt;br /&gt;
 /message/EU_Italian/spider.msbt&lt;br /&gt;
 /message/EU_Portuguese/spider.msbt&lt;br /&gt;
 /message/EU_Russian/spider.msbt&lt;br /&gt;
 /message/EU_Spanish/spider.msbt&lt;br /&gt;
 /message/JP_Japanese/spider.msbt&lt;br /&gt;
 /message/KR_Hangeul/spider.msbt&lt;br /&gt;
 /message/TW_English/spider.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/spider.msbt&lt;br /&gt;
 /message/US_English/spider.msbt&lt;br /&gt;
 /message/US_French/spider.msbt&lt;br /&gt;
 /message/US_Portuguese/spider.msbt&lt;br /&gt;
 /message/US_Spanish/spider.msbt&lt;br /&gt;
&lt;br /&gt;
OSS diff for v9.5 and v9.9, without the .dox changes:&lt;br /&gt;
&lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/WKC/WebKit/WKC/webkit/WKCVersion.h b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index be5ff09..55a7274 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.14&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.16&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;532.7&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/webkit/WebCore/rendering/RenderBox.cpp b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 index da4127e..d03403e 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 @@ -305,23 +305,23 @@ int RenderBox::scrollHeight() const&lt;br /&gt;
  &lt;br /&gt;
  int RenderBox::scrollLeft() const&lt;br /&gt;
  {&lt;br /&gt;
 -    return hasOverflowClip() ? layer()-&amp;gt;scrollXOffset() : 0;&lt;br /&gt;
 +    return layer() &amp;amp;&amp;amp; hasOverflowClip() ? layer()-&amp;gt;scrollXOffset() : 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int RenderBox::scrollTop() const&lt;br /&gt;
  {&lt;br /&gt;
 -    return hasOverflowClip() ? layer()-&amp;gt;scrollYOffset() : 0;&lt;br /&gt;
 +    return layer() &amp;amp;&amp;amp; hasOverflowClip() ? layer()-&amp;gt;scrollYOffset() : 0;&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  void RenderBox::setScrollLeft(int newLeft)&lt;br /&gt;
  {&lt;br /&gt;
 -    if (hasOverflowClip())&lt;br /&gt;
 +    if (hasOverflowClip() &amp;amp;&amp;amp; layer())&lt;br /&gt;
          layer()-&amp;gt;scrollToXOffset(newLeft);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  void RenderBox::setScrollTop(int newTop)&lt;br /&gt;
  {&lt;br /&gt;
 -    if (hasOverflowClip())&lt;br /&gt;
 +    if (hasOverflowClip() &amp;amp;&amp;amp; layer())&lt;br /&gt;
          layer()-&amp;gt;scrollToYOffset(newTop);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.2 ===&lt;br /&gt;
The slider vuln from [https://github.com/yellows8/3ds_webkithax here] was fixed in the Old3DS browser.&lt;br /&gt;
&lt;br /&gt;
The main codebin .text only increased by 0x10-bytes.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS was that the following files were updated:&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
&lt;br /&gt;
OSS diff:&lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index 55a7274..fc153c4 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.16&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.17&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;532.7&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderSlider.cpp b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 index b2f5cef..1dd3dbd 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 @@ -221,6 +221,7 @@ RenderSlider::~RenderSlider()&lt;br /&gt;
  {&lt;br /&gt;
      if (m_thumb)&lt;br /&gt;
          m_thumb-&amp;gt;detach();&lt;br /&gt;
 +    m_thumb = 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int RenderSlider::baselinePosition(bool, bool) const&lt;br /&gt;
 @@ -493,7 +494,8 @@ void RenderSlider::forwardEvent(Event* event)&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
  &lt;br /&gt;
 -    m_thumb-&amp;gt;defaultEventHandler(event);&lt;br /&gt;
 +    if (m_thumb)&lt;br /&gt;
 +        m_thumb-&amp;gt;defaultEventHandler(event);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  bool RenderSlider::inDragMode() const&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.6 ===&lt;br /&gt;
[[browserhax|spider28hax]] was fixed. The &amp;quot;2^32 characters long string&amp;quot; vuln described [[3DS_Userland_Flaws|here]] was &#039;&#039;finally&#039;&#039; fixed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;A lot&#039;&#039; of WebKit issues/vulns were fixed, see [https://gist.github.com/yellows8/b1e10caa1d8bb8a46316 here] for the changes.&lt;br /&gt;
&lt;br /&gt;
libpng was updated from version 1.4.12 to 1.4.19. zlib was updated from 1.2.7 to 1.2.8.&lt;br /&gt;
&lt;br /&gt;
The .text size increased by 0x478-bytes.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS was that the following files were updated:&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /manual/Manual.bcma&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.7 ===&lt;br /&gt;
&#039;&#039;Nothing&#039;&#039; changed except some words for version-values in .text being updated(RomFS wasn&#039;t changed), code for browser-version-check was [[#v10.7_2|updated]].&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v11.1 ===&lt;br /&gt;
Nothing changed in the ExeFS codebin besides the usual version values. The following files in RomFS were updated:&lt;br /&gt;
  /cro/oss.cro&lt;br /&gt;
  /cro/webkit.cro&lt;br /&gt;
  /.crr/static.crr&lt;br /&gt;
&lt;br /&gt;
== Forced system-update ==&lt;br /&gt;
The Old3DS/New3DS Internet Browser updated with [[9.9.0-26]] added the following message strings:&lt;br /&gt;
 In order to use the Internet &lt;br /&gt;
 browser, a system update &lt;br /&gt;
 is required.&lt;br /&gt;
 To perform a system update, &lt;br /&gt;
 select System Update from Other&lt;br /&gt;
 Settings in System Settings.&lt;br /&gt;
&lt;br /&gt;
 The Internet browser cannot be&lt;br /&gt;
 used at this time.&lt;br /&gt;
 Please check your network&lt;br /&gt;
 environment or try again later.&lt;br /&gt;
&lt;br /&gt;
For whatever reason, the above &#039;&#039;message strings&#039;&#039; were removed with New3DS-browser v10.2, then re-added with v10.4. This does not apply to the Old3DS browser. Whenever v10.2 New3DS browser tries to use these message-strings for displaying a browser-update-related message, it will crash due to an assert failing since the message-strings are missing. Hence, if/when the v10.2 update-check page is ever updated where the browser tries to display a message for it, or when accessing that page fails, the browser will automatically crash.&lt;br /&gt;
&lt;br /&gt;
This wasn&#039;t enforced(web-browser displaying the above message when the installed browser isn&#039;t the latest version) until October 26, 2015.&lt;br /&gt;
&lt;br /&gt;
This message only triggers when attempting to load a web-page. This is only handled the first time the browser accesses a web-page, during this browser session.&lt;br /&gt;
&lt;br /&gt;
The browser codebins starting with v9.9 now contain the following URL strings:&lt;br /&gt;
* Old3DS: &amp;lt;nowiki&amp;gt;&amp;quot;https://cbvc.cdn.nintendo.net/CTR/1/&amp;lt;region&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* New3DS: &amp;lt;nowiki&amp;gt;&amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/1/&amp;lt;region&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;region&amp;gt; string is one of the following:&lt;br /&gt;
* &amp;quot;JPN&amp;quot;&lt;br /&gt;
* &amp;quot;USA&amp;quot;&lt;br /&gt;
* &amp;quot;EUR&amp;quot;&lt;br /&gt;
* &amp;quot;KOR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Starting with the browser from [[10.2.0-28]], the &amp;quot;1&amp;quot; in the above URLs were changed to &amp;quot;2&amp;quot;. With the New3DS browser from [[10.4.0-29]], it&#039;s now &amp;quot;3&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
As of October 26, 2015, the &amp;quot;1&amp;quot; URLs return the browser-version for v9.9(decimal number as a string without any &amp;quot;.&amp;quot;), while the &amp;quot;2&amp;quot; URLs returns 0.&lt;br /&gt;
&lt;br /&gt;
 if(internal_browserver &amp;gt; server_browserver)&lt;br /&gt;
 {&lt;br /&gt;
     &amp;lt;safe&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
 else&lt;br /&gt;
 {&lt;br /&gt;
     &amp;lt;update message&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Hence, internal_browserver == server_browserver will trigger the sysupdate message, which appears to be the normal way to indicate that the current browser is outdated(see above).&lt;br /&gt;
&lt;br /&gt;
There is a cache for this in savedata. The request is only done when at least 24-hours have passed since the last time the request was done(see the below savedata section).&lt;br /&gt;
&lt;br /&gt;
It is still possible to guard against this update by blocking the previous URLs using a proxy. &lt;br /&gt;
It is not possible to remove the update message by entering the [[Recovery Mode]].&lt;br /&gt;
&lt;br /&gt;
=== Page request ===&lt;br /&gt;
For this request, all root-CAs bundled with the browser are trusted, in addition to two of the SSL module builtin Nintendo root-CAs.&lt;br /&gt;
&lt;br /&gt;
The browser(with New3DS at least) does the following with [[HTTP_Services|HTTPC]] for requesting the above page:&lt;br /&gt;
* Initializes the HTTP context and uses [[HTTPC:InitializeConnectionSession]] + [[HTTPC:SetProxyDefault]].&lt;br /&gt;
* Uses [[HTTP_Services|HTTPC]] command 0x250080 twice with cmd[1]=contexthandle: first time cmd[2]=0x3, second time cmd[2]=0x6.&lt;br /&gt;
* Then [[HTTPC:AddTrustedRootCA]] is used 48 times to setup 48 trusted root CAs. This appears to be every cert in the browser &amp;quot;romfs:/browser/rootca.pem&amp;quot; file converted to DER, in the same order from there(in other words, every single root CA the browser trusts by default for normal web-browsing).&lt;br /&gt;
* Then [[HTTPC:BeginRequest]] is used.&lt;br /&gt;
* Then [[HTTPC:ReceiveDataTimeout]] is used, the recv-size seems to be fixed to 0x20.&lt;br /&gt;
* Then [[HTTPC:GetResponseStatusCodeTimeout]] is used.&lt;br /&gt;
* Then [[HTTPC:GetDownloadSizeState]] is used.&lt;br /&gt;
* Then the HTTP context is closed.&lt;br /&gt;
&lt;br /&gt;
Raw request data(New3DS USA v10.2 browser):&lt;br /&gt;
 000000: 47 45 54 20 2f 53 4e 41 4b 45 2f 32 2f 55 53 41  GET /SNAKE/2/USA&lt;br /&gt;
 000010: 20 48 54 54 50 2f 31 2e 31 0d 0a 48 6f 73 74 3a   HTTP/1.1..Host:&lt;br /&gt;
 000020: 20 63 62 76 63 2e 63 64 6e 2e 6e 69 6e 74 65 6e   cbvc.cdn.ninten&lt;br /&gt;
 000030: 64 6f 2e 6e 65 74 0d 0a 0d 0a                    do.net....&lt;br /&gt;
&lt;br /&gt;
=== v10.7 ===&lt;br /&gt;
The only actual code change with Old3DS/New3DS browser v10.7 was that the code which calculates the diff_timestamp was moved to immediately after the block which initializes &amp;lt;state_timestamp&amp;gt; when &amp;lt;state_timestamp&amp;gt; is all-zero. This fixed the browser-version-check [[3DS_Userland_Flaws|bypass]].&lt;br /&gt;
&lt;br /&gt;
== v9.9+/v10.7+ dummy web-browser ==&lt;br /&gt;
Gamecards v9.9 and above include, with their sysupdate, a dummy Old3DS/New3DS web-browser. The *only* thing this title does is display the same message listed in the above forced-update section. The message files in RomFS *only* contain that message string above. There are no &amp;quot;http&amp;quot; strings in the main codebin, and [[RO_Services|RO]] isn&#039;t used either(no CRO data in RomFS at all). Both browsers are internally called &amp;quot;dummySpider&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Hence, if you update your system below v9.8 with any v9.9 or above gamecard, the system web-browser will be rendered *completely* useless until you install a system-update from CDN(no network requests involved here).&lt;br /&gt;
&lt;br /&gt;
Gamecards v10.7 and above include an updated dummy web-browser, where the only difference is the title version.&lt;br /&gt;
&lt;br /&gt;
== Savedata ==&lt;br /&gt;
=== New3DS ===&lt;br /&gt;
On newer SKATER versions, it appears *all* NAND savedata is stored under the [[System_SaveData|0x000200BB]] savedata.&lt;br /&gt;
&lt;br /&gt;
==== 0x000200BB savedata ====&lt;br /&gt;
This only contains &amp;quot;t.bin&amp;quot; with filesize 0xadf80, the format is below.&lt;br /&gt;
&lt;br /&gt;
The timestamp format used here is the number of milliseconds since January 1, 2000(local-time).&lt;br /&gt;
&lt;br /&gt;
When using the &amp;quot;Initialize savedata&amp;quot; option in the browser, that deletes this savedata file/image then exits the browser. This file is then re-created when the browser gets started again.&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;
| 0x68&lt;br /&gt;
| 0x4?&lt;br /&gt;
| This counter is incremented each time the savedata is written.&lt;br /&gt;
|-&lt;br /&gt;
| 0x70&lt;br /&gt;
| 0x8&lt;br /&gt;
| Timestamp for when the savedata was last written.&lt;br /&gt;
|-&lt;br /&gt;
| 0x94&lt;br /&gt;
| 0x15?&lt;br /&gt;
| This is all-zeros on non-JPN systems. On JPN systems where the browser filter is disabled, this is a string in the following format: &amp;quot;4110-%016llX&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD8&lt;br /&gt;
| 0x8&lt;br /&gt;
| s64 timestamp, can be either a normal positive timestamp or a relative negative one. Used with the forced-update described above. When an update is detected this timestamp is negative, otherwise this is a normal positive timestamp(it&#039;s unknown how exactly this timestamp is checked). When positive, this seems to be the last time the forced-update HTTPS request was done where no update was needed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==APT Parameters==&lt;br /&gt;
The URL to load can optionally be loaded from char[] string [[APT:SendParameter|paramblk+0]]. This is used when scanning URL QR-codes in Home Menu / etc.&lt;br /&gt;
&lt;br /&gt;
==Errors==&lt;br /&gt;
&amp;quot;Failed to load part of this page&amp;quot;: This can be caused by failing to load &amp;quot;/favicon.ico&amp;quot;. For example, this can be caused by loading a plain HTTP page, with plain-http favicon redirecting to HTTPS. If cert-verify then fails with favicon in this case, this error would then trigger.&lt;br /&gt;
&lt;br /&gt;
==Other details==&lt;br /&gt;
&lt;br /&gt;
*It scored 90/100 on [http://acid3.acidtests.org/ Acid3] test&lt;br /&gt;
*Images from the Internet can be saved to the [[SD Filesystem|SD Card]] and viewed using the [[Nintendo 3DS Camera]] application.&lt;br /&gt;
*Images saved to an [[SD Filesystem|SD Card]] or to the Nintendo 3DS system memory can be uploaded to blogs or other sites that allow the uploading of photos using :&lt;br /&gt;
 &amp;lt;input type=&amp;quot;file&amp;quot; /&amp;gt;&lt;br /&gt;
* HTML5Test.com say that Drag and drop is supported but it&#039;s not (code on WebKit is ready, but it&#039;s not implemented on interface of browser)&lt;br /&gt;
&lt;br /&gt;
==Tips==&lt;br /&gt;
&lt;br /&gt;
=== Detect User Agent ===&lt;br /&gt;
&lt;br /&gt;
To detect if the user agent is Nintendo 3DS Browser :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
     if (navigator.userAgent.indexOf(&#039;Nintendo 3DS&#039;) == -1) { //If the UserAgent is not &amp;quot;Nintendo 3DS&amp;quot;&lt;br /&gt;
         location.replace(&#039;http://www.3dbrew.org&#039;); //Redirect to an other page&lt;br /&gt;
     }&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* You can check &amp;lt;em&amp;gt;navigator.platform==&amp;quot;Nintendo 3DS&amp;quot;&amp;lt;/em&amp;gt; as well.&lt;br /&gt;
&lt;br /&gt;
=== Scrolling ===&lt;br /&gt;
&lt;br /&gt;
Scrolling can be altered by modifying &amp;lt;em&amp;gt;document.body.scrollTop&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;document.body.scrollLeft&amp;lt;/em&amp;gt;.  However, there are drawbacks related to working with these properties:&lt;br /&gt;
&lt;br /&gt;
* Both properties return 0 when accessed&lt;br /&gt;
* Setting one property resets the other property&#039;s scroll position&lt;br /&gt;
&lt;br /&gt;
In order to set both at the same time (without either resetting to 0), use &amp;lt;em&amp;gt;window.scrollTo&amp;lt;/em&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Events ===&lt;br /&gt;
==== Key Events ====&lt;br /&gt;
The following buttons trigger the &amp;lt;em&amp;gt;onkeydown&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;onkeypress&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;onkeyup&amp;lt;/em&amp;gt; events:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;20%&amp;quot;&lt;br /&gt;
! Code !! Button &lt;br /&gt;
|-&lt;br /&gt;
| 13 || A&lt;br /&gt;
|-&lt;br /&gt;
| 37 || Left&lt;br /&gt;
|-&lt;br /&gt;
| 38 || Up&lt;br /&gt;
|-&lt;br /&gt;
| 39 || Right&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Down&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The events cannot have their default action cancelled.  Other buttons do not trigger key events.&lt;br /&gt;
&lt;br /&gt;
==== Touch/Mouse Events ====&lt;br /&gt;
&amp;lt;em&amp;gt;onmousedown&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;onmouseup&amp;lt;/em&amp;gt; &amp;amp; &amp;lt;em&amp;gt;onclick&amp;lt;/em&amp;gt; are all triggered by the browser.  However, the &amp;lt;em&amp;gt;onmousedown&amp;lt;/em&amp;gt; event doesn&#039;t trigger until you lift the stylus or you&#039;ve held it on the screen for ~2 seconds—which is when text selection mode is activated—making it pretty much the same as &amp;lt;em&amp;gt;onmouseup&amp;lt;/em&amp;gt;.  The events cannot have their default action cancelled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;em&amp;gt;onmousemove&amp;lt;/em&amp;gt; and common touch/gesture events are not supported.&lt;br /&gt;
&lt;br /&gt;
== Screen Resolution ==&lt;br /&gt;
&lt;br /&gt;
The up screen resolution is 400×240. However, the viewable area in the browser is only &amp;lt;b&amp;gt;400×220&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The touch screen resolution is 320×240. However, the viewable area in the browser is only &amp;lt;b&amp;gt;320×212&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can have a page span both screens. However, the browser will behave as if the bottom screen is the only active screen and the top screen is scrolled off. This is important when computing CSS coordinates. Items positioned from &amp;quot;bottom&amp;quot; will be positioned based on 220px and not the full 432px of both screens.&lt;br /&gt;
&lt;br /&gt;
== Using Both Screens ==&lt;br /&gt;
&lt;br /&gt;
Generally the easiest way to accomplish the correct layout is to create HTML elements that &amp;quot;contain&amp;quot; the top and bottom screens. Here&#039;s an example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
   &amp;lt;head&amp;gt;&lt;br /&gt;
     &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=400&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;style&amp;gt;&lt;br /&gt;
       body{margin:0px;}&lt;br /&gt;
       #topscreen{width:400px;height:220px;overflow:hidden;}&lt;br /&gt;
       #bottomscreen{width:320px;height:212px;overflow:hidden;margin:0 auto;}&lt;br /&gt;
     &amp;lt;/style&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div id=&amp;quot;topscreen&amp;quot;&amp;gt;Top Screen&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div id=&amp;quot;bottomscreen&amp;quot;&amp;gt;Bottom Screen&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This scheme allows the page to be easily manipulated through JavaScript.  In order to have the window snap to the correct position, use the following JavaScript code:&lt;br /&gt;
&lt;br /&gt;
 window.setInterval(function () {&lt;br /&gt;
     window.scrollTo(40, 220);  &lt;br /&gt;
 }, 50);&lt;br /&gt;
&lt;br /&gt;
This automatically resets the position if the user accidentally scrolls the page.&lt;br /&gt;
&lt;br /&gt;
==Example Sites==&lt;br /&gt;
&amp;lt;!-- If you have a website that demonstrates these techniques, place it here! --&amp;gt;&lt;br /&gt;
* [http://www.nintendo.com/3ds/internetbrowser/bookmarks Nintendo 3DS Bookmarks] - This is the first bookmark pre-installed in the browser.&lt;br /&gt;
* [http://3ds.andysmith.co.uk/jFox.html jFox] (Short URL: http://bit.ly/iB7FqW)&lt;br /&gt;
* [http://ditto3d.com/3ds Ditto3D] (Short URL: http://bit.ly/oVreWA)&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=9.9.0-26&amp;diff=18275</id>
		<title>9.9.0-26</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=9.9.0-26&amp;diff=18275"/>
		<updated>2016-09-25T01:11:12Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: add system update reports&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Old3DS+New3DS 9.9.0-26 system update was released on July 13, 2015 for all available regions.&lt;br /&gt;
&lt;br /&gt;
== Change-log ==&lt;br /&gt;
Official change-log:&lt;br /&gt;
* Further improvements to overall system stability, system security, and other minor adjustments have been made to enhance the user experience&lt;br /&gt;
&lt;br /&gt;
==System Titles==&lt;br /&gt;
All of the following titles were updated for Old3DS+New3DS: [[Home Menu]](only for certain regions), [[CVer]], and [[NVer]].&lt;br /&gt;
&lt;br /&gt;
Both platforms&#039; browsers ([[Internet_Browser|spider and SKATER]]) were updated, see [[Internet_Browser|here]] for details.&lt;br /&gt;
&lt;br /&gt;
The Taiwan amiibo Settings system-applet was added.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
System update report(s):&lt;br /&gt;
* [https://yls8.mtheall.com/ninupdates/reports.php?date=07-13-15_08-05-03&amp;amp;sys=ctr]&lt;br /&gt;
* [https://yls8.mtheall.com/ninupdates/reports.php?date=07-13-15_08-05-13&amp;amp;sys=ktr]&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Internet_Browser&amp;diff=18274</id>
		<title>Internet Browser</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Internet_Browser&amp;diff=18274"/>
		<updated>2016-09-24T12:46:24Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: reword&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The 3DS Internet Browser was added in the June 2011 Update for JPN/EUR/USA.&lt;br /&gt;
&lt;br /&gt;
From the Internet Browser help section:&lt;br /&gt;
In compliance with the LGPL, the source code of the OSS is available via the Nintendo website.&lt;br /&gt;
This source code can be downloaded here:&lt;br /&gt;
[http://mediacontent.nintendo-europe.com/NOE/images/service/OpenSources.zip] [http://www.nintendo.co.jp/support/oss/index.html]&lt;br /&gt;
&lt;br /&gt;
The 3DS Internet Browser is [http://en.wikipedia.org/wiki/Netfront Netfront] Browser NX v1.0 based on [http://en.wikipedia.org/wiki/WebKit WebKit] engine.&lt;br /&gt;
&lt;br /&gt;
On O3DS the exheader name of this title is &amp;quot;SPIDER&amp;quot;; on N3DS, &amp;quot;SKATER&amp;quot;.&lt;br /&gt;
The only difference between the ExeFS .code for each region of the Old3DS/New3DS browser, is byte values for the title uniqueID/region.&lt;br /&gt;
&lt;br /&gt;
A [[#v9.9_dummy_web-browser|&amp;quot;dummy&amp;quot; browser]] (which replaces the actual browser) is being included with cartdrige games shipping with system updates starting with [[9.9.0-26|9.9.0-X]]. &lt;br /&gt;
In addition, versions of the real browser since 9.9.0-26X attempt to [[#Forced_system-update|check-in with a Nintendo server]] to determine if the existing browser version is out of date.&lt;br /&gt;
&lt;br /&gt;
==[[New 3DS]] Internet Browser==&lt;br /&gt;
New3DS has a separate browser title, with the exheader name &amp;quot;SKATER&amp;quot;.&lt;br /&gt;
Unlike the Old3DS browser, the New3DS browser has videos+HTML5 support. &lt;br /&gt;
&lt;br /&gt;
This browser also has a filter enabled by default in the JPN version. &lt;br /&gt;
Disabling it requires paying money with a credit-card, for [[NIM_Services|purchasing]] web-browser [[Title_list/DLC|DLC]].&lt;br /&gt;
During startup the browser does various HTTPS comms. When visting an URL, the browser sends a plaintext HTTP POST here: [http://ars.ifuser.jp:20080/ars2/rating]. The raw POST data begins with &amp;quot;ARS/2.0\r\n\x00&amp;quot;, the rest appears to be encrypted. The server reply content also has this ARS header + encrypted data. This appears to use a fixed xorpad, likely from a fixed encryption CTR/IV. The server content responses for allowed sites, and blocked sites, are fixed. When the server returns that the site is blocked, the browser goes to this page: [http://ars.ifuser.jp/filter/44.html](the Referrer header value is set to the same URL it&#039;s actually requesting).&lt;br /&gt;
&lt;br /&gt;
The WebKit source was updated since the Old3DS browser.&lt;br /&gt;
The New3DS browser uses the following services: [[MVD_Services|mvd:STD]] and [[IR_Services|ir:rst]](DLC-related services are used too but those aren&#039;t New3DS specific).&lt;br /&gt;
Video decoding is done with [[MVD_Services|mvd:STD]]. Audio decoding/playback is done with a browser-specific DSP binary. The Old3DS browser used CSND for audio playback, the New3DS browser doesn&#039;t have access to that at all since it uses DSP instead.&lt;br /&gt;
&lt;br /&gt;
=== Video / libstagefright ===&lt;br /&gt;
The browser manual includes licenses for Android and PacketVideo. The browser uses libstagefright from Android. Just like WebKit, the browser appears to use a very old version of libstagefright with security/other changes back-ported(for example, the v10.7 browser libstagefright codebase seems to be older than [https://android.googlesource.com/platform/frameworks/av/+/ec77122351b4e78c1fe5b60a208f76baf8c67591%5E%21/media/libstagefright/MPEG4Extractor.cpp this]). This codebase is missing certain chunk-parsing code for 3GP.&lt;br /&gt;
&lt;br /&gt;
HTTP for libstagefright is internally handled with [[HTTP_Services|HTTPC]], with a similar(?) set of RootCAs as for browser-version-check.&lt;br /&gt;
&lt;br /&gt;
===User-Agent and Browser Versions===&lt;br /&gt;
Normal user-agent format: &amp;lt;code style=&amp;quot;font-size:larger;&amp;quot;&amp;gt;Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/&amp;lt;WebKit version&amp;gt; (KHTML, like Gecko) NX/&amp;lt;Netfront version&amp;gt; Mobile NintendoBrowser/&amp;lt;Mobile NintendoBrowser version&amp;gt;.&amp;lt;region&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;region&amp;gt; can be one of the following: &amp;quot;JP&amp;quot;, &amp;quot;US&amp;quot;, or &amp;quot;EU&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Mobile NintendoBrowser version(displayed in browser settings)&lt;br /&gt;
! Normal UA&lt;br /&gt;
! Mobile UA&lt;br /&gt;
! CDN Title-version&lt;br /&gt;
! Network-only system-update version&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.9934&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.8 Mobile NintendoBrowser/1.0.9934.&amp;lt;region&amp;gt;&lt;br /&gt;
| Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&lt;br /&gt;
| v10&lt;br /&gt;
| [[9.0.0-20]]&lt;br /&gt;
| Initial version.&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.9996&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.10 Mobile NintendoBrowser/1.1.9996.&amp;lt;region&amp;gt;&lt;br /&gt;
| Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&lt;br /&gt;
| v1027&lt;br /&gt;
| [[9.3.0-21]]&lt;br /&gt;
| See below regarding OSS changes.&lt;br /&gt;
|-&lt;br /&gt;
| 1.2.10085&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.13 Mobile NintendoBrowser/1.2.10085.&amp;lt;region&amp;gt;&lt;br /&gt;
| Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&lt;br /&gt;
| v2051&lt;br /&gt;
| [[9.6.0-24]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v3075&lt;br /&gt;
| v9.9 CUP&lt;br /&gt;
| v9.9 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.10126&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.15 Mobile NintendoBrowser/1.3.10126.US&lt;br /&gt;
| Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&lt;br /&gt;
| v3077&lt;br /&gt;
| [[9.9.0-26]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.10138&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.17 Mobile NintendoBrowser/1.4.10138.US&lt;br /&gt;
| Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&lt;br /&gt;
| v4096&lt;br /&gt;
| [[10.2.0-28]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.5.10143&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| v5121&lt;br /&gt;
| [[10.4.0-29]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.6.10147&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.6.10147.US&lt;br /&gt;
| Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&lt;br /&gt;
| v6144&lt;br /&gt;
| [[10.6.0-31]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7.10150&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.7.10150.US&lt;br /&gt;
| &lt;br /&gt;
| v7184&lt;br /&gt;
| [[10.7.0-32]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| v8192&lt;br /&gt;
| [[11.1.0-34]]&lt;br /&gt;
| See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the latest Old3DS browser WebKit version at the time the initial New3DS browser was released, was the following: 532.8.&lt;br /&gt;
&lt;br /&gt;
The first version of the KOR New3DS browser was v9.6(which was when the New3DS KOR titles were originally added). Each version of the KOR browser has the same NintendoBrowser version as the other regions. The KOR browser has been only updated when the browser for the other regions were updated, hence the title-versions are the same as well. The KOR browser ExeFS .code is different from the other regions(more than just region-related IDs etc).&lt;br /&gt;
&lt;br /&gt;
==== OSS 9.0 and 9.3 diff ====&lt;br /&gt;
The following is a diff of the OSS archives from [http://www.nintendo.co.jp/support/oss/index.html here], for v9.0 and v9.3.&lt;br /&gt;
&lt;br /&gt;
 Files NewNintendo3DS_OpenSources9.0.0-/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp and NewNintendo3DS_OpenSources9.3.0-/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp differ&lt;br /&gt;
 Files NewNintendo3DS_OpenSources9.0.0-/WKC/WebKit/WKC/webkit/WKCVersion.h and NewNintendo3DS_OpenSources9.3.0-/WKC/WebKit/WKC/webkit/WKCVersion.h differ&lt;br /&gt;
&lt;br /&gt;
WKC_CUSTOMER_RELEASE_VERSION was changed from &amp;quot;0.5.8&amp;quot; to &amp;quot;0.5.10&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following code was added to ResourceHandleManager::doRedirect(): curl_easy_setopt(d-&amp;gt;m_handle, CURLOPT_SHARE, 0);&lt;br /&gt;
&lt;br /&gt;
==== v9.6 ====&lt;br /&gt;
WebKit/OSS code was actually updated.&lt;br /&gt;
ExeFS .code was updated. The following files in RomFS were updated:&lt;br /&gt;
* &amp;quot;/banner/CN/Skater.icn&amp;quot; and &amp;quot;/banner/KR/Skater.icn&amp;quot;.&lt;br /&gt;
* &amp;quot;/browser/rootca.pem&amp;quot;&lt;br /&gt;
* &amp;quot;/build/buildinfo.dat&amp;quot;&lt;br /&gt;
* &amp;quot;/cairo.cro.lex&amp;quot; and &amp;quot;/.crr/static.crr&amp;quot;&lt;br /&gt;
* &amp;quot;/lyt/Button/ButtonSelectHSearch.arc&amp;quot;&lt;br /&gt;
* &amp;quot;/lyt/Kbd/Swkbd.arc&amp;quot;&lt;br /&gt;
* &amp;quot;lyt/Kbd.arc&amp;quot;&lt;br /&gt;
* &amp;quot;skater.msbt&amp;quot; under all of the &amp;quot;/message/&amp;lt;region&amp;gt;_&amp;lt;language&amp;gt;/&amp;quot; directories.&lt;br /&gt;
* &amp;quot;/oss.cro.lex&amp;quot;, &amp;quot;/peer.cro.lex&amp;quot;, &amp;quot;/static.crs&amp;quot;, and &amp;quot;/webkit.cro.lex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following was added to RomFS:&lt;br /&gt;
* &amp;quot;/favicon/naver.dat&amp;quot;&lt;br /&gt;
* A &amp;quot;KO&amp;quot; directory under &amp;quot;/iwnn&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== v9.9 ====&lt;br /&gt;
ExeFS:/.code was updated.&lt;br /&gt;
&lt;br /&gt;
The only RomFS changes is file-updating, all of the following files were updated:&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /cairo.cro.lex&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex&lt;br /&gt;
 /peer.cro.lex&lt;br /&gt;
 /static.crs&lt;br /&gt;
 /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
See [https://gist.github.com/yellows8/9fb509fde4112339f342 here] for a diff of the OSS(WebKitLibraries/ is not included due to the massive cairo library diff). An exploitable security vuln(which was already known in the context of 3DS webkit) was fixed. [[User:Yellows8|Yellows8]]&#039; private(at the time of writing) exploit for it is based on the PoC from [http://pastebin.com/ufBCQKda here](see the pastebin for the actual pastebin author).&lt;br /&gt;
&lt;br /&gt;
==== v10.2 ====&lt;br /&gt;
The libstagefright build in the main SKATER codebin was updated to a version which fixed libstagefright vuln(s): the vuln used in [[browserhax|browserhax_fright]] at the time of sysupdate release was fixed. The *only* code changed in the main codebin, was code related to libstagefright.&lt;br /&gt;
&lt;br /&gt;
The only RomFS changes is file-updating, all of the following files were updated(see the forced-sysupdate section regarding what changed in the message files):&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex&lt;br /&gt;
 /static.crs&lt;br /&gt;
 /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
OSS diff:&lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/WKC/WebKit/WKC/webkit/WKCVersion.h b/NewNintendo3DS_OpenSources10.2.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index 4543297..0860336 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;0.5.15&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;0.5.17&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;536.30&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/ChangeLog b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 index a5abb35..cf5a9fa 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 @@ -1,3 +1,12 @@&lt;br /&gt;
 +2013-11-05  Ryosuke Niwa  &amp;lt;rniwa@webkit.org&amp;gt;&lt;br /&gt;
 +&lt;br /&gt;
 +        Use-after-free in SliderThumbElement::dragFrom&lt;br /&gt;
 +        https://bugs.webkit.org/show_bug.cgi?id=123873&lt;br /&gt;
 +&lt;br /&gt;
 +        Reviewed by Andreas Kling.&lt;br /&gt;
 +&lt;br /&gt;
 +        Merge https://chromium.googlesource.com/chromium/blink/+/04a23bfca2d04101a1828d36ff36c29f3a24f34b&lt;br /&gt;
 +&lt;br /&gt;
  2015-02-06  Maciej Stachowiak  &amp;lt;mjs@apple.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
          REGRESSION(r179706): Caused memory corruption on some tests (Requested by _ap_ on #webkit).&lt;br /&gt;
 @@ -879,7 +888,7 @@&lt;br /&gt;
          * rendering/RenderLineBoxList.cpp:&lt;br /&gt;
          (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):&lt;br /&gt;
  &lt;br /&gt;
 -2014-01-21  LÃ¡szlÃ³ LangÃ³  &amp;lt;llango.u-szeged@partner.samsung.com&amp;gt;&lt;br /&gt;
 +2014-01-21  Laszlo Lango  &amp;lt;llango.u-szeged@partner.samsung.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
          Assertion failure in Range::nodeWillBeRemoved&lt;br /&gt;
          https://bugs.webkit.org/show_bug.cgi?id=121694&lt;br /&gt;
 @@ -1879,7 +1888,7 @@&lt;br /&gt;
  &lt;br /&gt;
  2012-09-14  Simon Fraser  &amp;lt;simon.fraser@apple.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 -        REGRESSION: transition doesnât always override transition-property&lt;br /&gt;
 +        REGRESSION: transition doesnft always override transition-property&lt;br /&gt;
          https://bugs.webkit.org/show_bug.cgi?id=96658&lt;br /&gt;
  &lt;br /&gt;
          Reviewed by Dean Jackson.&lt;br /&gt;
 @@ -3691,8 +3700,8 @@&lt;br /&gt;
              glyph with font data for the primary font, presumably to meet the SVG&lt;br /&gt;
              spec requirement: &amp;quot;If the references to alternate glyphs do not result&lt;br /&gt;
              in successful identification of alternate glyphs to use, then the&lt;br /&gt;
 -            character(s) that are inside of the çª¶åltGlyphçª¶?element are rendered as&lt;br /&gt;
 -            if the çª¶åltGlyphçª¶?element were a çª¶?spançª¶?element instead.&amp;quot;&lt;br /&gt;
 +            character(s) that are inside of the âaltGlyphâ?element are rendered as&lt;br /&gt;
 +            if the âaltGlyphâ?element were a â?spanâ?element instead.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
              If the alt glyph is not then found we are in the case from the spec&lt;br /&gt;
              and indeed we should use the primary font. However, we end up replacing the GlyphPage&lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/html/RangeInputType.cpp b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 index 484adec..d7e9e8d 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 @@ -164,7 +164,7 @@ void RangeInputType::handleMouseDownEvent(MouseEvent* event)&lt;br /&gt;
      ASSERT(element()-&amp;gt;hasShadowRoot());&lt;br /&gt;
      if (targetNode != element() &amp;amp;&amp;amp; !targetNode-&amp;gt;isDescendantOf(element()-&amp;gt;shadowTree()-&amp;gt;oldestShadowRoot()))&lt;br /&gt;
          return;&lt;br /&gt;
 -    SliderThumbElement* thumb = sliderThumbElementOf(element());&lt;br /&gt;
 +    RefPtr&amp;lt;SliderThumbElement&amp;gt; thumb = sliderThumbElementOf(element());&lt;br /&gt;
      if (targetNode == thumb)&lt;br /&gt;
          return;&lt;br /&gt;
      thumb-&amp;gt;dragFrom(event-&amp;gt;absoluteLocation());&lt;br /&gt;
&lt;br /&gt;
==== v10.4 ====&lt;br /&gt;
The ExeFS codebin was updated, the only change was that the following code was updated in the actual NupCheck HTTPS request function:&lt;br /&gt;
* Previous version: sprintf(out, &amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/2/%s&amp;quot;, region);&lt;br /&gt;
* Current  version: sprintf(out, &amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/%d/%s&amp;quot;, 3, region);&lt;br /&gt;
&lt;br /&gt;
libpng was updated from version 1.5.21 to 1.5.24.&lt;br /&gt;
&lt;br /&gt;
The following RomFS files were updated(see the forced-sysupdate section regarding what changed in the message files):&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /cairo.cro.lex&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex differ&lt;br /&gt;
 /peer.cro.lex differ&lt;br /&gt;
 /static.crs differ&lt;br /&gt;
 /webkit.cro.lex differ&lt;br /&gt;
&lt;br /&gt;
==== v10.6 ====&lt;br /&gt;
The ExeFS codebin was updated.&lt;br /&gt;
&lt;br /&gt;
[[browserhax|browserhax_fright_tx3g]] was fixed. The code handling tx3g now matches the latest libstagefright git.&lt;br /&gt;
&lt;br /&gt;
Hence the below RomFS listing, no OSS was updated at all(besides libstagefright mentioned above).&lt;br /&gt;
&lt;br /&gt;
The following RomFS files were updated:&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /static.crs&lt;br /&gt;
&lt;br /&gt;
==== v10.7 ====&lt;br /&gt;
Basically the same changes as Old3DS v10.7, except with the usual buildinfo.dat update in RomFS. The below date is 6 days after the browser-version-check [[3DS_Userland_Flaws|bypass]] was publicly disclosed.&lt;br /&gt;
&lt;br /&gt;
 cat v7184/00000025_romfs/build/buildinfo.dat&lt;br /&gt;
 10150&lt;br /&gt;
 applet&lt;br /&gt;
 2016-03-02 18:25&lt;br /&gt;
&lt;br /&gt;
==== v11.1 ====&lt;br /&gt;
The ExeFS codebin was updated. The following files in RomFS were updated:&lt;br /&gt;
&lt;br /&gt;
  /build/buildinfo.dat&lt;br /&gt;
  /.crr/static.crr&lt;br /&gt;
  /oss.cro.lex&lt;br /&gt;
  /static.crs&lt;br /&gt;
  /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
  cat v8192/00000026_romfs/build/buildinfo.dat&lt;br /&gt;
  10156&lt;br /&gt;
  applet&lt;br /&gt;
  2016-08-26 19:47&lt;br /&gt;
&lt;br /&gt;
Minus the 4 functions that changed due to compiler optimization, only 1 function was actually updated. This is LT_1a4004, previous version at LT_1a4004: libstagefright status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth)&lt;br /&gt;
&lt;br /&gt;
Additional code was added which doesn&#039;t seem to be from upstream git, right [https://android.googlesource.com/platform/frameworks/av/+/32d6e5f0ebe9e00f80401e5f4fd6e285a474590d/media/libstagefright/MPEG4Extractor.cpp#880 before] the cprt code block: &amp;quot;if((*offset + chunk_size) - data_offset &amp;lt; 0)fail&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This fixed skater31hax + any other mp4 haxx which requires using a negative 64bit chunk_size value.&lt;br /&gt;
&lt;br /&gt;
The filepath base used in the assert strings were changed from &amp;quot;d:\Jenkins\workspace\MPSkaterBuild\MVPlayer\Skater\Base\Android\frameworks\base\media\libstagefright\&amp;quot; to &amp;quot;d:\jenkins\workspace\MPSkaterBuild-Git\Base\Android\frameworks\base\media\libstagefright\&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== New3DS Browser Specifications ===&lt;br /&gt;
[http://www.nintendo.co.jp/3ds/new/features/modal_net.html]&lt;br /&gt;
&lt;br /&gt;
English version:&lt;br /&gt;
* &amp;quot;Browser engine: NetFront® Browser NX v3.0&amp;quot;&lt;br /&gt;
* &amp;quot;User agent: Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML and like Gecko) NX/3.0.*.*.* Mobile NintendoBrowser/1.0.**** JP&lt;br /&gt;
* ** Version information is stated.&lt;br /&gt;
* *** When using the “Mobile version request” function, it differs from the above-mentioned character string&amp;quot;&lt;br /&gt;
* &amp;quot;Supported protocols: HTTP1.0/HTTP1.1/SSL3.0/TLS1.0/TLS1.1/TLS1.2&amp;quot;&lt;br /&gt;
* &amp;quot;Web standard: HTML4.01 / HTML5 / XHTML1.1 / Fullscreen API / Gamepad API / SVG / WebSocket / Video Subtitle / WOFF / Web Messaging / Server-Sent / Web Storage (partial) / XMLHttpRequest / Canvas element / Video / DOM Levels 1-3 / ECMAScript / CSS1 / CSS2.1 / CSS3 (partial)&amp;quot;&lt;br /&gt;
* &amp;quot;Image format: bmp / ​​gif / ico / jpeg / png / svg (There are, however, possibilities that some images won&#039;t display.)&amp;quot;&lt;br /&gt;
* &amp;quot;Image preview: mpo / jpeg (There are, however, possibilities that some images won&#039;t display.)&amp;quot;&lt;br /&gt;
* &amp;quot;Video format: MP4, M3U8 + TS (HTTPLiveStreaming) (There are, however, some videos that may not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Video codec: H.264 - MPEG-4 AVC Video (max 854x480 at level 3.2, 3D compatible) (There are, however, some videos that can not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Audio codec: AAC - ISO / IEC 14496-3 MPEG-4AAC, MP3 (There are, however, some videos that can not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Format for uploading 3D videos: .mkv (In order to be played, videos must be converted to the appropriate format within the site you are uploading to. In some cases, the video will not play even if converted.)&amp;quot;&lt;br /&gt;
* &amp;quot;Plug-ins: Plug-ins such as Adobe Flash are not supported&amp;quot;&lt;br /&gt;
* &amp;quot;Active Rating System filtering: provided by Digital Arts, Inc.. Access to web content can be limited based on its category information, restricting access to web content that may result inappropriate.&amp;quot;&lt;br /&gt;
* &amp;quot;Websites can be requested to provide the mobile version (However, if the web page does not have a mobile version, it won&#039;t change the way it&#039;s displayed.)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
MJPEG + .avi is also supported.&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
* The html &amp;quot;color&amp;quot; &amp;lt;input&amp;gt; type is not supported.&lt;br /&gt;
&lt;br /&gt;
== Old3DS browser ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Old3DS Browser Specifications ===&lt;br /&gt;
* &amp;quot;Browser engine: NetFront® Browser&amp;quot;&lt;br /&gt;
* &amp;quot;User agent: Mozilla/5.0 (Nintendo 3DS; region; ; en) Version/1.7498.US&amp;quot;&lt;br /&gt;
* &amp;quot;Supported protocols: HTTP1.0/HTTP1.1/SSLv3/TLS1.0&amp;quot;&lt;br /&gt;
* &amp;quot;Web standard: HTML 4.01/XHTML 1.1/CSS 1/CSS 2.1/CSS 3 (partial functionality)/DOM Levels 1-3/ECMAScript&lt;br /&gt;
/XMLHttpRequest/Canvas Element (partial functionality)&amp;quot;&lt;br /&gt;
* &amp;quot;Image format: MPO / GIF / JPEG / PNG / BMP / ICO (some images cannot be displayed)&amp;quot;&lt;br /&gt;
* &amp;quot;Plug-ins: Plug-ins such as Adobe Flash are not supported&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Old3DS browser doesn&#039;t support events &amp;quot;focusin&amp;quot; and &amp;quot;focusout&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== User-Agent and Browser Versions ===&lt;br /&gt;
User-agent format: &amp;lt;code style=&amp;quot;font-size:larger;&amp;quot;&amp;gt;Mozilla/5.0 (Nintendo 3DS; U; ; &amp;lt;lang&amp;gt;) Version/&amp;lt;version&amp;gt;.&amp;lt;region&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lang&amp;gt; is &amp;quot;en&amp;quot;, &amp;quot;fr&amp;quot;, etc. &amp;lt;region&amp;gt; is &amp;quot;US&amp;quot;, &amp;quot;EU&amp;quot;, etc. See below for &amp;lt;version&amp;gt;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Browser version&lt;br /&gt;
! CDN Title-version&lt;br /&gt;
! Network-only system-update version&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.7412&lt;br /&gt;
| v6&lt;br /&gt;
| [[2.0.0-2|2.0.0-2]]&lt;br /&gt;
| This was the initial version.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7455&lt;br /&gt;
| v1024&lt;br /&gt;
| [[2.1.0-4]]&lt;br /&gt;
| ExeFS .code was updated, both of the CROs(webkit/OSS) were updated too.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7498&lt;br /&gt;
| v2050&lt;br /&gt;
| [[4.0.0-7]]&lt;br /&gt;
| ExeFS .code was updated, both of the CROs(webkit/OSS) were updated too. The manual CFA was updated as well.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7538&lt;br /&gt;
| v0&lt;br /&gt;
| [[4.2.0-9]]&lt;br /&gt;
| First version of the KOR browser. The CROs are different from the  USA/EUR/JPN [[4.0.0-7]] browser.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7552&lt;br /&gt;
| v3075&lt;br /&gt;
| [[5.0.0-11]]&lt;br /&gt;
| ExeFS .code and icon were updated, both of the CROs(webkit/OSS) were updated too. The manual CFA was updated as well.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7552&lt;br /&gt;
| v3088&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| The main NCCH wasn&#039;t updated at all(same TMD contentID/content-hash as the previous version), only the manual CFA for this title was updated.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7567&lt;br /&gt;
| v4096&lt;br /&gt;
| [[7.1.0-16]]&lt;br /&gt;
| The CXI .code was updated, some data in the RomFS was updated(none of the CROs such as webkit.cro were updated). The manual CFA was updated too.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7585&lt;br /&gt;
| v5121&lt;br /&gt;
| [[9.5.0-23]]&lt;br /&gt;
| The CXI .code was updated, and the manual CFA was updated. RomFS changes:&lt;br /&gt;
* &amp;quot;/browser/rootca.pem&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/oss.cro&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/static.crs&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/webkit.cro&amp;quot; updated&lt;br /&gt;
* &amp;quot;/.crr/static.crr&amp;quot; updated&lt;br /&gt;
* &amp;quot;/layout/dialogheader/WirelessSwitchOff.arc&amp;quot; was removed&lt;br /&gt;
* &amp;quot;/layout/favorite/favicondata/KOR.arc&amp;quot; updated&lt;br /&gt;
&lt;br /&gt;
A vuln used in a public(at the time of this sysupdate) webkit exploit for spider was fixed, which also fixed the removewinframe exploit from [https://github.com/yellows8/3ds_webkithax here].&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| v6147&lt;br /&gt;
| v9.9 CUP&lt;br /&gt;
| v9.9 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7610&lt;br /&gt;
| v6149&lt;br /&gt;
| [[9.9.0-26]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7616&lt;br /&gt;
| v7168&lt;br /&gt;
| [[10.2.0-28]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7622&lt;br /&gt;
| v8192&lt;br /&gt;
| [[10.6.0-31]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7625&lt;br /&gt;
| v9232&lt;br /&gt;
| [[10.7.0-32]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| v10240&lt;br /&gt;
| [[11.1.0-34]]&lt;br /&gt;
| See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Heap ===&lt;br /&gt;
The USA/EUR/JPN + KOR browser allocates the 0x08000000 heap with size 0x01A97000. The size used by the CHN and TWN browser is 0x01997000, exactly 0x100000-bytes smaller.&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v9.9 ===&lt;br /&gt;
ExeFS:/.code was updated.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS were file-updating, the following files were updated:&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/spider.msbt&lt;br /&gt;
 /message/EU_Dutch/spider.msbt&lt;br /&gt;
 /message/EU_English/spider.msbt&lt;br /&gt;
 /message/EU_French/spider.msbt&lt;br /&gt;
 /message/EU_German/spider.msbt&lt;br /&gt;
 /message/EU_Italian/spider.msbt&lt;br /&gt;
 /message/EU_Portuguese/spider.msbt&lt;br /&gt;
 /message/EU_Russian/spider.msbt&lt;br /&gt;
 /message/EU_Spanish/spider.msbt&lt;br /&gt;
 /message/JP_Japanese/spider.msbt&lt;br /&gt;
 /message/KR_Hangeul/spider.msbt&lt;br /&gt;
 /message/TW_English/spider.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/spider.msbt&lt;br /&gt;
 /message/US_English/spider.msbt&lt;br /&gt;
 /message/US_French/spider.msbt&lt;br /&gt;
 /message/US_Portuguese/spider.msbt&lt;br /&gt;
 /message/US_Spanish/spider.msbt&lt;br /&gt;
&lt;br /&gt;
OSS diff for v9.5 and v9.9, without the .dox changes:&lt;br /&gt;
&lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/WKC/WebKit/WKC/webkit/WKCVersion.h b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index be5ff09..55a7274 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.14&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.16&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;532.7&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/webkit/WebCore/rendering/RenderBox.cpp b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 index da4127e..d03403e 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 @@ -305,23 +305,23 @@ int RenderBox::scrollHeight() const&lt;br /&gt;
  &lt;br /&gt;
  int RenderBox::scrollLeft() const&lt;br /&gt;
  {&lt;br /&gt;
 -    return hasOverflowClip() ? layer()-&amp;gt;scrollXOffset() : 0;&lt;br /&gt;
 +    return layer() &amp;amp;&amp;amp; hasOverflowClip() ? layer()-&amp;gt;scrollXOffset() : 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int RenderBox::scrollTop() const&lt;br /&gt;
  {&lt;br /&gt;
 -    return hasOverflowClip() ? layer()-&amp;gt;scrollYOffset() : 0;&lt;br /&gt;
 +    return layer() &amp;amp;&amp;amp; hasOverflowClip() ? layer()-&amp;gt;scrollYOffset() : 0;&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  void RenderBox::setScrollLeft(int newLeft)&lt;br /&gt;
  {&lt;br /&gt;
 -    if (hasOverflowClip())&lt;br /&gt;
 +    if (hasOverflowClip() &amp;amp;&amp;amp; layer())&lt;br /&gt;
          layer()-&amp;gt;scrollToXOffset(newLeft);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  void RenderBox::setScrollTop(int newTop)&lt;br /&gt;
  {&lt;br /&gt;
 -    if (hasOverflowClip())&lt;br /&gt;
 +    if (hasOverflowClip() &amp;amp;&amp;amp; layer())&lt;br /&gt;
          layer()-&amp;gt;scrollToYOffset(newTop);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.2 ===&lt;br /&gt;
The slider vuln from [https://github.com/yellows8/3ds_webkithax here] was fixed in the Old3DS browser.&lt;br /&gt;
&lt;br /&gt;
The main codebin .text only increased by 0x10-bytes.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS was that the following files were updated:&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
&lt;br /&gt;
OSS diff:&lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index 55a7274..fc153c4 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.16&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.17&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;532.7&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderSlider.cpp b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 index b2f5cef..1dd3dbd 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 @@ -221,6 +221,7 @@ RenderSlider::~RenderSlider()&lt;br /&gt;
  {&lt;br /&gt;
      if (m_thumb)&lt;br /&gt;
          m_thumb-&amp;gt;detach();&lt;br /&gt;
 +    m_thumb = 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int RenderSlider::baselinePosition(bool, bool) const&lt;br /&gt;
 @@ -493,7 +494,8 @@ void RenderSlider::forwardEvent(Event* event)&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
  &lt;br /&gt;
 -    m_thumb-&amp;gt;defaultEventHandler(event);&lt;br /&gt;
 +    if (m_thumb)&lt;br /&gt;
 +        m_thumb-&amp;gt;defaultEventHandler(event);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  bool RenderSlider::inDragMode() const&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.6 ===&lt;br /&gt;
[[browserhax|spider28hax]] was fixed. The &amp;quot;2^32 characters long string&amp;quot; vuln described [[3DS_Userland_Flaws|here]] was &#039;&#039;finally&#039;&#039; fixed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;A lot&#039;&#039; of WebKit issues/vulns were fixed, see [https://gist.github.com/yellows8/b1e10caa1d8bb8a46316 here] for the changes.&lt;br /&gt;
&lt;br /&gt;
libpng was updated from version 1.4.12 to 1.4.19. zlib was updated from 1.2.7 to 1.2.8.&lt;br /&gt;
&lt;br /&gt;
The .text size increased by 0x478-bytes.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS was that the following files were updated:&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /manual/Manual.bcma&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.7 ===&lt;br /&gt;
&#039;&#039;Nothing&#039;&#039; changed except some words for version-values in .text being updated(RomFS wasn&#039;t changed), code for browser-version-check was [[#v10.7_2|updated]].&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v11.1 ===&lt;br /&gt;
Nothing changed in the ExeFS codebin besides the usual version values. The following files in RomFS were updated:&lt;br /&gt;
  /cro/oss.cro&lt;br /&gt;
  /cro/webkit.cro&lt;br /&gt;
  /.crr/static.crr&lt;br /&gt;
&lt;br /&gt;
== Forced system-update ==&lt;br /&gt;
The Old3DS/New3DS Internet Browser updated with [[9.9.0-26]] added the following message strings:&lt;br /&gt;
 In order to use the Internet &lt;br /&gt;
 browser, a system update &lt;br /&gt;
 is required.&lt;br /&gt;
 To perform a system update, &lt;br /&gt;
 select System Update from Other&lt;br /&gt;
 Settings in System Settings.&lt;br /&gt;
&lt;br /&gt;
 The Internet browser cannot be&lt;br /&gt;
 used at this time.&lt;br /&gt;
 Please check your network&lt;br /&gt;
 environment or try again later.&lt;br /&gt;
&lt;br /&gt;
For whatever reason, the above &#039;&#039;message strings&#039;&#039; were removed with New3DS-browser v10.2, then re-added with v10.4. This does not apply to the Old3DS browser. Whenever v10.2 New3DS browser tries to use these message-strings for displaying a browser-update-related message, it will crash due to an assert failing since the message-strings are missing. Hence, if/when the v10.2 update-check page is ever updated where the browser tries to display a message for it, or when accessing that page fails, the browser will automatically crash.&lt;br /&gt;
&lt;br /&gt;
This wasn&#039;t enforced(web-browser displaying the above message when the installed browser isn&#039;t the latest version) until October 26, 2015.&lt;br /&gt;
&lt;br /&gt;
This message only triggers when attempting to load a web-page. This is only handled the first time the browser accesses a web-page, during this browser session.&lt;br /&gt;
&lt;br /&gt;
The browser codebins starting with v9.9 now contain the following URL strings:&lt;br /&gt;
* Old3DS: &amp;lt;nowiki&amp;gt;&amp;quot;https://cbvc.cdn.nintendo.net/CTR/1/&amp;lt;region&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* New3DS: &amp;lt;nowiki&amp;gt;&amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/1/&amp;lt;region&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;region&amp;gt; string is one of the following:&lt;br /&gt;
* &amp;quot;JPN&amp;quot;&lt;br /&gt;
* &amp;quot;USA&amp;quot;&lt;br /&gt;
* &amp;quot;EUR&amp;quot;&lt;br /&gt;
* &amp;quot;KOR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Starting with the browser from [[10.2.0-28]], the &amp;quot;1&amp;quot; in the above URLs were changed to &amp;quot;2&amp;quot;. With the New3DS browser from [[10.4.0-29]], it&#039;s now &amp;quot;3&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
As of October 26, 2015, the &amp;quot;1&amp;quot; URLs return the browser-version for v9.9(decimal number as a string without any &amp;quot;.&amp;quot;), while the &amp;quot;2&amp;quot; URLs returns 0.&lt;br /&gt;
&lt;br /&gt;
 if(internal_browserver &amp;gt; server_browserver)&lt;br /&gt;
 {&lt;br /&gt;
     &amp;lt;safe&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
 else&lt;br /&gt;
 {&lt;br /&gt;
     &amp;lt;update message&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Hence, internal_browserver == server_browserver will trigger the sysupdate message, which appears to be the normal way to indicate that the current browser is outdated(see above).&lt;br /&gt;
&lt;br /&gt;
There is a cache for this in savedata. The request is only done when at least 24-hours have passed since the last time the request was done(see the below savedata section).&lt;br /&gt;
&lt;br /&gt;
It is still possible to guard against this update by blocking the previous URLs using a proxy. &lt;br /&gt;
It is not possible to remove the update message by entering the [[Recovery Mode]].&lt;br /&gt;
&lt;br /&gt;
=== Page request ===&lt;br /&gt;
For this request, all root-CAs bundled with the browser are trusted, in addition to two of the SSL module builtin Nintendo root-CAs.&lt;br /&gt;
&lt;br /&gt;
The browser(with New3DS at least) does the following with [[HTTP_Services|HTTPC]] for requesting the above page:&lt;br /&gt;
* Initializes the HTTP context and uses [[HTTPC:InitializeConnectionSession]] + [[HTTPC:SetProxyDefault]].&lt;br /&gt;
* Uses [[HTTP_Services|HTTPC]] command 0x250080 twice with cmd[1]=contexthandle: first time cmd[2]=0x3, second time cmd[2]=0x6.&lt;br /&gt;
* Then [[HTTPC:AddTrustedRootCA]] is used 48 times to setup 48 trusted root CAs. This appears to be every cert in the browser &amp;quot;romfs:/browser/rootca.pem&amp;quot; file converted to DER, in the same order from there(in other words, every single root CA the browser trusts by default for normal web-browsing).&lt;br /&gt;
* Then [[HTTPC:BeginRequest]] is used.&lt;br /&gt;
* Then [[HTTPC:ReceiveDataTimeout]] is used, the recv-size seems to be fixed to 0x20.&lt;br /&gt;
* Then [[HTTPC:GetResponseStatusCodeTimeout]] is used.&lt;br /&gt;
* Then [[HTTPC:GetDownloadSizeState]] is used.&lt;br /&gt;
* Then the HTTP context is closed.&lt;br /&gt;
&lt;br /&gt;
Raw request data(New3DS USA v10.2 browser):&lt;br /&gt;
 000000: 47 45 54 20 2f 53 4e 41 4b 45 2f 32 2f 55 53 41  GET /SNAKE/2/USA&lt;br /&gt;
 000010: 20 48 54 54 50 2f 31 2e 31 0d 0a 48 6f 73 74 3a   HTTP/1.1..Host:&lt;br /&gt;
 000020: 20 63 62 76 63 2e 63 64 6e 2e 6e 69 6e 74 65 6e   cbvc.cdn.ninten&lt;br /&gt;
 000030: 64 6f 2e 6e 65 74 0d 0a 0d 0a                    do.net....&lt;br /&gt;
&lt;br /&gt;
=== v10.7 ===&lt;br /&gt;
The only actual code change with Old3DS/New3DS browser v10.7 was that the code which calculates the diff_timestamp was moved to immediately after the block which initializes &amp;lt;state_timestamp&amp;gt; when &amp;lt;state_timestamp&amp;gt; is all-zero. This fixed the browser-version-check [[3DS_Userland_Flaws|bypass]].&lt;br /&gt;
&lt;br /&gt;
== v9.9+/v10.7+ dummy web-browser ==&lt;br /&gt;
Gamecards v9.9 and above include, with their sysupdate, a dummy Old3DS/New3DS web-browser. The *only* thing this title does is display the same message listed in the above forced-update section. The message files in RomFS *only* contain that message string above. There are no &amp;quot;http&amp;quot; strings in the main codebin, and [[RO_Services|RO]] isn&#039;t used either(no CRO data in RomFS at all). Both browsers are internally called &amp;quot;dummySpider&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Hence, if you update your system below v9.8 with any v9.9 or above gamecard, the system web-browser will be rendered *completely* useless until you install a system-update from CDN(no network requests involved here).&lt;br /&gt;
&lt;br /&gt;
Gamecards v10.7 and above include an updated dummy web-browser, where the only difference is the title version.&lt;br /&gt;
&lt;br /&gt;
== Savedata ==&lt;br /&gt;
=== New3DS ===&lt;br /&gt;
On newer SKATER versions, it appears *all* NAND savedata is stored under the [[System_SaveData|0x000200BB]] savedata.&lt;br /&gt;
&lt;br /&gt;
==== 0x000200BB savedata ====&lt;br /&gt;
This only contains &amp;quot;t.bin&amp;quot; with filesize 0xadf80, the format is below.&lt;br /&gt;
&lt;br /&gt;
The timestamp format used here is the number of milliseconds since January 1, 2000(local-time).&lt;br /&gt;
&lt;br /&gt;
When using the &amp;quot;Initialize savedata&amp;quot; option in the browser, that deletes this savedata file/image then exits the browser. This file is then re-created when the browser gets started again.&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;
| 0x68&lt;br /&gt;
| 0x4?&lt;br /&gt;
| This counter is incremented each time the savedata is written.&lt;br /&gt;
|-&lt;br /&gt;
| 0x70&lt;br /&gt;
| 0x8&lt;br /&gt;
| Timestamp for when the savedata was last written.&lt;br /&gt;
|-&lt;br /&gt;
| 0x94&lt;br /&gt;
| 0x15?&lt;br /&gt;
| This is all-zeros on non-JPN systems. On JPN systems where the browser filter is disabled, this is a string in the following format: &amp;quot;4110-%016llX&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD8&lt;br /&gt;
| 0x8&lt;br /&gt;
| s64 timestamp, can be either a normal positive timestamp or a relative negative one. Used with the forced-update described above. When an update is detected this timestamp is negative, otherwise this is a normal positive timestamp(it&#039;s unknown how exactly this timestamp is checked). When positive, this seems to be the last time the forced-update HTTPS request was done where no update was needed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==APT Parameters==&lt;br /&gt;
The URL to load can optionally be loaded from char[] string [[APT:SendParameter|paramblk+0]]. This is used when scanning URL QR-codes in Home Menu / etc.&lt;br /&gt;
&lt;br /&gt;
==Errors==&lt;br /&gt;
&amp;quot;Failed to load part of this page&amp;quot;: This can be caused by failing to load &amp;quot;/favicon.ico&amp;quot;. For example, this can be caused by loading a plain HTTP page, with plain-http favicon redirecting to HTTPS. If cert-verify then fails with favicon in this case, this error would then trigger.&lt;br /&gt;
&lt;br /&gt;
==Other details==&lt;br /&gt;
&lt;br /&gt;
*It scored 90/100 on [http://acid3.acidtests.org/ Acid3] test&lt;br /&gt;
*Images from the Internet can be saved to the [[SD Filesystem|SD Card]] and viewed using the [[Nintendo 3DS Camera]] application.&lt;br /&gt;
*Images saved to an [[SD Filesystem|SD Card]] or to the Nintendo 3DS system memory can be uploaded to blogs or other sites that allow the uploading of photos using :&lt;br /&gt;
 &amp;lt;input type=&amp;quot;file&amp;quot; /&amp;gt;&lt;br /&gt;
* HTML5Test.com say that Drag and drop is supported but it&#039;s not (code on WebKit is ready, but it&#039;s not implemented on interface of browser)&lt;br /&gt;
&lt;br /&gt;
==Tips==&lt;br /&gt;
&lt;br /&gt;
=== Detect User Agent ===&lt;br /&gt;
&lt;br /&gt;
To detect if the user agent is Nintendo 3DS Browser :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
     if (navigator.userAgent.indexOf(&#039;Nintendo 3DS&#039;) == -1) { //If the UserAgent is not &amp;quot;Nintendo 3DS&amp;quot;&lt;br /&gt;
         location.replace(&#039;http://www.3dbrew.org&#039;); //Redirect to an other page&lt;br /&gt;
     }&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* You can check &amp;lt;em&amp;gt;navigator.platform==&amp;quot;Nintendo 3DS&amp;quot;&amp;lt;/em&amp;gt; as well.&lt;br /&gt;
&lt;br /&gt;
=== Scrolling ===&lt;br /&gt;
&lt;br /&gt;
Scrolling can be altered by modifying &amp;lt;em&amp;gt;document.body.scrollTop&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;document.body.scrollLeft&amp;lt;/em&amp;gt;.  However, there are drawbacks related to working with these properties:&lt;br /&gt;
&lt;br /&gt;
* Both properties return 0 when accessed&lt;br /&gt;
* Setting one property resets the other property&#039;s scroll position&lt;br /&gt;
&lt;br /&gt;
In order to set both at the same time (without either resetting to 0), use &amp;lt;em&amp;gt;window.scrollTo&amp;lt;/em&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Events ===&lt;br /&gt;
==== Key Events ====&lt;br /&gt;
The following buttons trigger the &amp;lt;em&amp;gt;onkeydown&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;onkeypress&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;onkeyup&amp;lt;/em&amp;gt; events:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;20%&amp;quot;&lt;br /&gt;
! Code !! Button &lt;br /&gt;
|-&lt;br /&gt;
| 13 || A&lt;br /&gt;
|-&lt;br /&gt;
| 37 || Left&lt;br /&gt;
|-&lt;br /&gt;
| 38 || Up&lt;br /&gt;
|-&lt;br /&gt;
| 39 || Right&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Down&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The events cannot have their default action cancelled.  Other buttons do not trigger key events.&lt;br /&gt;
&lt;br /&gt;
==== Touch/Mouse Events ====&lt;br /&gt;
&amp;lt;em&amp;gt;onmousedown&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;onmouseup&amp;lt;/em&amp;gt; &amp;amp; &amp;lt;em&amp;gt;onclick&amp;lt;/em&amp;gt; are all triggered by the browser.  However, the &amp;lt;em&amp;gt;onmousedown&amp;lt;/em&amp;gt; event doesn&#039;t trigger until you lift the stylus or you&#039;ve held it on the screen for ~2 seconds—which is when text selection mode is activated—making it pretty much the same as &amp;lt;em&amp;gt;onmouseup&amp;lt;/em&amp;gt;.  The events cannot have their default action cancelled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;em&amp;gt;onmousemove&amp;lt;/em&amp;gt; and common touch/gesture events are not supported.&lt;br /&gt;
&lt;br /&gt;
== Screen Resolution ==&lt;br /&gt;
&lt;br /&gt;
The up screen resolution is 400×240. However, the viewable area in the browser is only &amp;lt;b&amp;gt;400×220&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The touch screen resolution is 320×240. However, the viewable area in the browser is only &amp;lt;b&amp;gt;320×212&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can have a page span both screens. However, the browser will behave as if the bottom screen is the only active screen and the top screen is scrolled off. This is important when computing CSS coordinates. Items positioned from &amp;quot;bottom&amp;quot; will be positioned based on 220px and not the full 432px of both screens.&lt;br /&gt;
&lt;br /&gt;
== Using Both Screens ==&lt;br /&gt;
&lt;br /&gt;
Generally the easiest way to accomplish the correct layout is to create HTML elements that &amp;quot;contain&amp;quot; the top and bottom screens. Here&#039;s an example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
   &amp;lt;head&amp;gt;&lt;br /&gt;
     &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=400&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;style&amp;gt;&lt;br /&gt;
       body{margin:0px;}&lt;br /&gt;
       #topscreen{width:400px;height:220px;overflow:hidden;}&lt;br /&gt;
       #bottomscreen{width:320px;height:212px;overflow:hidden;margin:0 auto;}&lt;br /&gt;
     &amp;lt;/style&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div id=&amp;quot;topscreen&amp;quot;&amp;gt;Top Screen&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div id=&amp;quot;bottomscreen&amp;quot;&amp;gt;Bottom Screen&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This scheme allows the page to be easily manipulated through JavaScript.  In order to have the window snap to the correct position, use the following JavaScript code:&lt;br /&gt;
&lt;br /&gt;
 window.setInterval(function () {&lt;br /&gt;
     window.scrollTo(40, 220);  &lt;br /&gt;
 }, 50);&lt;br /&gt;
&lt;br /&gt;
This automatically resets the position if the user accidentally scrolls the page.&lt;br /&gt;
&lt;br /&gt;
==Example Sites==&lt;br /&gt;
&amp;lt;!-- If you have a website that demonstrates these techniques, place it here! --&amp;gt;&lt;br /&gt;
* [http://www.nintendo.com/3ds/internetbrowser/bookmarks Nintendo 3DS Bookmarks] - This is the first bookmark pre-installed in the browser.&lt;br /&gt;
* [http://3ds.andysmith.co.uk/jFox.html jFox] (Short URL: http://bit.ly/iB7FqW)&lt;br /&gt;
* [http://ditto3d.com/3ds Ditto3D] (Short URL: http://bit.ly/oVreWA)&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Internet_Browser&amp;diff=18273</id>
		<title>Internet Browser</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Internet_Browser&amp;diff=18273"/>
		<updated>2016-09-24T12:43:57Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: 10.7 updated dummy browser&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The 3DS Internet Browser was added in the June 2011 Update for JPN/EUR/USA.&lt;br /&gt;
&lt;br /&gt;
From the Internet Browser help section:&lt;br /&gt;
In compliance with the LGPL, the source code of the OSS is available via the Nintendo website.&lt;br /&gt;
This source code can be downloaded here:&lt;br /&gt;
[http://mediacontent.nintendo-europe.com/NOE/images/service/OpenSources.zip] [http://www.nintendo.co.jp/support/oss/index.html]&lt;br /&gt;
&lt;br /&gt;
The 3DS Internet Browser is [http://en.wikipedia.org/wiki/Netfront Netfront] Browser NX v1.0 based on [http://en.wikipedia.org/wiki/WebKit WebKit] engine.&lt;br /&gt;
&lt;br /&gt;
On O3DS the exheader name of this title is &amp;quot;SPIDER&amp;quot;; on N3DS, &amp;quot;SKATER&amp;quot;.&lt;br /&gt;
The only difference between the ExeFS .code for each region of the Old3DS/New3DS browser, is byte values for the title uniqueID/region.&lt;br /&gt;
&lt;br /&gt;
A [[#v9.9_dummy_web-browser|&amp;quot;dummy&amp;quot; browser]] (which replaces the actual browser) is being included with cartdrige games shipping the [[9.9.0-26|9.9.0-X]] and [[10.7.0-32|10.7.0-X]] system updates. &lt;br /&gt;
In addition, versions of the real browser since 9.9.0-26X attempt to [[#Forced_system-update|check-in with a Nintendo server]] to determine if the existing browser version is out of date.&lt;br /&gt;
&lt;br /&gt;
==[[New 3DS]] Internet Browser==&lt;br /&gt;
New3DS has a separate browser title, with the exheader name &amp;quot;SKATER&amp;quot;.&lt;br /&gt;
Unlike the Old3DS browser, the New3DS browser has videos+HTML5 support. &lt;br /&gt;
&lt;br /&gt;
This browser also has a filter enabled by default in the JPN version. &lt;br /&gt;
Disabling it requires paying money with a credit-card, for [[NIM_Services|purchasing]] web-browser [[Title_list/DLC|DLC]].&lt;br /&gt;
During startup the browser does various HTTPS comms. When visting an URL, the browser sends a plaintext HTTP POST here: [http://ars.ifuser.jp:20080/ars2/rating]. The raw POST data begins with &amp;quot;ARS/2.0\r\n\x00&amp;quot;, the rest appears to be encrypted. The server reply content also has this ARS header + encrypted data. This appears to use a fixed xorpad, likely from a fixed encryption CTR/IV. The server content responses for allowed sites, and blocked sites, are fixed. When the server returns that the site is blocked, the browser goes to this page: [http://ars.ifuser.jp/filter/44.html](the Referrer header value is set to the same URL it&#039;s actually requesting).&lt;br /&gt;
&lt;br /&gt;
The WebKit source was updated since the Old3DS browser.&lt;br /&gt;
The New3DS browser uses the following services: [[MVD_Services|mvd:STD]] and [[IR_Services|ir:rst]](DLC-related services are used too but those aren&#039;t New3DS specific).&lt;br /&gt;
Video decoding is done with [[MVD_Services|mvd:STD]]. Audio decoding/playback is done with a browser-specific DSP binary. The Old3DS browser used CSND for audio playback, the New3DS browser doesn&#039;t have access to that at all since it uses DSP instead.&lt;br /&gt;
&lt;br /&gt;
=== Video / libstagefright ===&lt;br /&gt;
The browser manual includes licenses for Android and PacketVideo. The browser uses libstagefright from Android. Just like WebKit, the browser appears to use a very old version of libstagefright with security/other changes back-ported(for example, the v10.7 browser libstagefright codebase seems to be older than [https://android.googlesource.com/platform/frameworks/av/+/ec77122351b4e78c1fe5b60a208f76baf8c67591%5E%21/media/libstagefright/MPEG4Extractor.cpp this]). This codebase is missing certain chunk-parsing code for 3GP.&lt;br /&gt;
&lt;br /&gt;
HTTP for libstagefright is internally handled with [[HTTP_Services|HTTPC]], with a similar(?) set of RootCAs as for browser-version-check.&lt;br /&gt;
&lt;br /&gt;
===User-Agent and Browser Versions===&lt;br /&gt;
Normal user-agent format: &amp;lt;code style=&amp;quot;font-size:larger;&amp;quot;&amp;gt;Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/&amp;lt;WebKit version&amp;gt; (KHTML, like Gecko) NX/&amp;lt;Netfront version&amp;gt; Mobile NintendoBrowser/&amp;lt;Mobile NintendoBrowser version&amp;gt;.&amp;lt;region&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;region&amp;gt; can be one of the following: &amp;quot;JP&amp;quot;, &amp;quot;US&amp;quot;, or &amp;quot;EU&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Mobile NintendoBrowser version(displayed in browser settings)&lt;br /&gt;
! Normal UA&lt;br /&gt;
! Mobile UA&lt;br /&gt;
! CDN Title-version&lt;br /&gt;
! Network-only system-update version&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.9934&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.8 Mobile NintendoBrowser/1.0.9934.&amp;lt;region&amp;gt;&lt;br /&gt;
| Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&lt;br /&gt;
| v10&lt;br /&gt;
| [[9.0.0-20]]&lt;br /&gt;
| Initial version.&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.9996&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.10 Mobile NintendoBrowser/1.1.9996.&amp;lt;region&amp;gt;&lt;br /&gt;
| Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&lt;br /&gt;
| v1027&lt;br /&gt;
| [[9.3.0-21]]&lt;br /&gt;
| See below regarding OSS changes.&lt;br /&gt;
|-&lt;br /&gt;
| 1.2.10085&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.13 Mobile NintendoBrowser/1.2.10085.&amp;lt;region&amp;gt;&lt;br /&gt;
| Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&lt;br /&gt;
| v2051&lt;br /&gt;
| [[9.6.0-24]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| v3075&lt;br /&gt;
| v9.9 CUP&lt;br /&gt;
| v9.9 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.10126&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.15 Mobile NintendoBrowser/1.3.10126.US&lt;br /&gt;
| Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&lt;br /&gt;
| v3077&lt;br /&gt;
| [[9.9.0-26]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.10138&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.17 Mobile NintendoBrowser/1.4.10138.US&lt;br /&gt;
| Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&lt;br /&gt;
| v4096&lt;br /&gt;
| [[10.2.0-28]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.5.10143&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| v5121&lt;br /&gt;
| [[10.4.0-29]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.6.10147&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.6.10147.US&lt;br /&gt;
| Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25&lt;br /&gt;
| v6144&lt;br /&gt;
| [[10.6.0-31]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7.10150&lt;br /&gt;
| Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.19 Mobile NintendoBrowser/1.7.10150.US&lt;br /&gt;
| &lt;br /&gt;
| v7184&lt;br /&gt;
| [[10.7.0-32]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| v8192&lt;br /&gt;
| [[11.1.0-34]]&lt;br /&gt;
| See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the latest Old3DS browser WebKit version at the time the initial New3DS browser was released, was the following: 532.8.&lt;br /&gt;
&lt;br /&gt;
The first version of the KOR New3DS browser was v9.6(which was when the New3DS KOR titles were originally added). Each version of the KOR browser has the same NintendoBrowser version as the other regions. The KOR browser has been only updated when the browser for the other regions were updated, hence the title-versions are the same as well. The KOR browser ExeFS .code is different from the other regions(more than just region-related IDs etc).&lt;br /&gt;
&lt;br /&gt;
==== OSS 9.0 and 9.3 diff ====&lt;br /&gt;
The following is a diff of the OSS archives from [http://www.nintendo.co.jp/support/oss/index.html here], for v9.0 and v9.3.&lt;br /&gt;
&lt;br /&gt;
 Files NewNintendo3DS_OpenSources9.0.0-/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp and NewNintendo3DS_OpenSources9.3.0-/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp differ&lt;br /&gt;
 Files NewNintendo3DS_OpenSources9.0.0-/WKC/WebKit/WKC/webkit/WKCVersion.h and NewNintendo3DS_OpenSources9.3.0-/WKC/WebKit/WKC/webkit/WKCVersion.h differ&lt;br /&gt;
&lt;br /&gt;
WKC_CUSTOMER_RELEASE_VERSION was changed from &amp;quot;0.5.8&amp;quot; to &amp;quot;0.5.10&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following code was added to ResourceHandleManager::doRedirect(): curl_easy_setopt(d-&amp;gt;m_handle, CURLOPT_SHARE, 0);&lt;br /&gt;
&lt;br /&gt;
==== v9.6 ====&lt;br /&gt;
WebKit/OSS code was actually updated.&lt;br /&gt;
ExeFS .code was updated. The following files in RomFS were updated:&lt;br /&gt;
* &amp;quot;/banner/CN/Skater.icn&amp;quot; and &amp;quot;/banner/KR/Skater.icn&amp;quot;.&lt;br /&gt;
* &amp;quot;/browser/rootca.pem&amp;quot;&lt;br /&gt;
* &amp;quot;/build/buildinfo.dat&amp;quot;&lt;br /&gt;
* &amp;quot;/cairo.cro.lex&amp;quot; and &amp;quot;/.crr/static.crr&amp;quot;&lt;br /&gt;
* &amp;quot;/lyt/Button/ButtonSelectHSearch.arc&amp;quot;&lt;br /&gt;
* &amp;quot;/lyt/Kbd/Swkbd.arc&amp;quot;&lt;br /&gt;
* &amp;quot;lyt/Kbd.arc&amp;quot;&lt;br /&gt;
* &amp;quot;skater.msbt&amp;quot; under all of the &amp;quot;/message/&amp;lt;region&amp;gt;_&amp;lt;language&amp;gt;/&amp;quot; directories.&lt;br /&gt;
* &amp;quot;/oss.cro.lex&amp;quot;, &amp;quot;/peer.cro.lex&amp;quot;, &amp;quot;/static.crs&amp;quot;, and &amp;quot;/webkit.cro.lex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following was added to RomFS:&lt;br /&gt;
* &amp;quot;/favicon/naver.dat&amp;quot;&lt;br /&gt;
* A &amp;quot;KO&amp;quot; directory under &amp;quot;/iwnn&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== v9.9 ====&lt;br /&gt;
ExeFS:/.code was updated.&lt;br /&gt;
&lt;br /&gt;
The only RomFS changes is file-updating, all of the following files were updated:&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /cairo.cro.lex&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex&lt;br /&gt;
 /peer.cro.lex&lt;br /&gt;
 /static.crs&lt;br /&gt;
 /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
See [https://gist.github.com/yellows8/9fb509fde4112339f342 here] for a diff of the OSS(WebKitLibraries/ is not included due to the massive cairo library diff). An exploitable security vuln(which was already known in the context of 3DS webkit) was fixed. [[User:Yellows8|Yellows8]]&#039; private(at the time of writing) exploit for it is based on the PoC from [http://pastebin.com/ufBCQKda here](see the pastebin for the actual pastebin author).&lt;br /&gt;
&lt;br /&gt;
==== v10.2 ====&lt;br /&gt;
The libstagefright build in the main SKATER codebin was updated to a version which fixed libstagefright vuln(s): the vuln used in [[browserhax|browserhax_fright]] at the time of sysupdate release was fixed. The *only* code changed in the main codebin, was code related to libstagefright.&lt;br /&gt;
&lt;br /&gt;
The only RomFS changes is file-updating, all of the following files were updated(see the forced-sysupdate section regarding what changed in the message files):&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex&lt;br /&gt;
 /static.crs&lt;br /&gt;
 /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
OSS diff:&lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/WKC/WebKit/WKC/webkit/WKCVersion.h b/NewNintendo3DS_OpenSources10.2.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index 4543297..0860336 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;0.5.15&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;0.5.17&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;536.30&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/ChangeLog b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 index a5abb35..cf5a9fa 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/ChangeLog&lt;br /&gt;
 @@ -1,3 +1,12 @@&lt;br /&gt;
 +2013-11-05  Ryosuke Niwa  &amp;lt;rniwa@webkit.org&amp;gt;&lt;br /&gt;
 +&lt;br /&gt;
 +        Use-after-free in SliderThumbElement::dragFrom&lt;br /&gt;
 +        https://bugs.webkit.org/show_bug.cgi?id=123873&lt;br /&gt;
 +&lt;br /&gt;
 +        Reviewed by Andreas Kling.&lt;br /&gt;
 +&lt;br /&gt;
 +        Merge https://chromium.googlesource.com/chromium/blink/+/04a23bfca2d04101a1828d36ff36c29f3a24f34b&lt;br /&gt;
 +&lt;br /&gt;
  2015-02-06  Maciej Stachowiak  &amp;lt;mjs@apple.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
          REGRESSION(r179706): Caused memory corruption on some tests (Requested by _ap_ on #webkit).&lt;br /&gt;
 @@ -879,7 +888,7 @@&lt;br /&gt;
          * rendering/RenderLineBoxList.cpp:&lt;br /&gt;
          (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):&lt;br /&gt;
  &lt;br /&gt;
 -2014-01-21  LÃ¡szlÃ³ LangÃ³  &amp;lt;llango.u-szeged@partner.samsung.com&amp;gt;&lt;br /&gt;
 +2014-01-21  Laszlo Lango  &amp;lt;llango.u-szeged@partner.samsung.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
          Assertion failure in Range::nodeWillBeRemoved&lt;br /&gt;
          https://bugs.webkit.org/show_bug.cgi?id=121694&lt;br /&gt;
 @@ -1879,7 +1888,7 @@&lt;br /&gt;
  &lt;br /&gt;
  2012-09-14  Simon Fraser  &amp;lt;simon.fraser@apple.com&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 -        REGRESSION: transition doesnât always override transition-property&lt;br /&gt;
 +        REGRESSION: transition doesnft always override transition-property&lt;br /&gt;
          https://bugs.webkit.org/show_bug.cgi?id=96658&lt;br /&gt;
  &lt;br /&gt;
          Reviewed by Dean Jackson.&lt;br /&gt;
 @@ -3691,8 +3700,8 @@&lt;br /&gt;
              glyph with font data for the primary font, presumably to meet the SVG&lt;br /&gt;
              spec requirement: &amp;quot;If the references to alternate glyphs do not result&lt;br /&gt;
              in successful identification of alternate glyphs to use, then the&lt;br /&gt;
 -            character(s) that are inside of the çª¶åltGlyphçª¶?element are rendered as&lt;br /&gt;
 -            if the çª¶åltGlyphçª¶?element were a çª¶?spançª¶?element instead.&amp;quot;&lt;br /&gt;
 +            character(s) that are inside of the âaltGlyphâ?element are rendered as&lt;br /&gt;
 +            if the âaltGlyphâ?element were a â?spanâ?element instead.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
              If the alt glyph is not then found we are in the case from the spec&lt;br /&gt;
              and indeed we should use the primary font. However, we end up replacing the GlyphPage&lt;br /&gt;
 diff --git a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/html/RangeInputType.cpp b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 index 484adec..d7e9e8d 100644&lt;br /&gt;
 --- a/NewNintendo3DS_OpenSources9.9.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 +++ b/NewNintendo3DS_OpenSources10.2.0-/webkit/WebCore/html/RangeInputType.cpp&lt;br /&gt;
 @@ -164,7 +164,7 @@ void RangeInputType::handleMouseDownEvent(MouseEvent* event)&lt;br /&gt;
      ASSERT(element()-&amp;gt;hasShadowRoot());&lt;br /&gt;
      if (targetNode != element() &amp;amp;&amp;amp; !targetNode-&amp;gt;isDescendantOf(element()-&amp;gt;shadowTree()-&amp;gt;oldestShadowRoot()))&lt;br /&gt;
          return;&lt;br /&gt;
 -    SliderThumbElement* thumb = sliderThumbElementOf(element());&lt;br /&gt;
 +    RefPtr&amp;lt;SliderThumbElement&amp;gt; thumb = sliderThumbElementOf(element());&lt;br /&gt;
      if (targetNode == thumb)&lt;br /&gt;
          return;&lt;br /&gt;
      thumb-&amp;gt;dragFrom(event-&amp;gt;absoluteLocation());&lt;br /&gt;
&lt;br /&gt;
==== v10.4 ====&lt;br /&gt;
The ExeFS codebin was updated, the only change was that the following code was updated in the actual NupCheck HTTPS request function:&lt;br /&gt;
* Previous version: sprintf(out, &amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/2/%s&amp;quot;, region);&lt;br /&gt;
* Current  version: sprintf(out, &amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/%d/%s&amp;quot;, 3, region);&lt;br /&gt;
&lt;br /&gt;
libpng was updated from version 1.5.21 to 1.5.24.&lt;br /&gt;
&lt;br /&gt;
The following RomFS files were updated(see the forced-sysupdate section regarding what changed in the message files):&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /cairo.cro.lex&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/skater.msbt&lt;br /&gt;
 /message/EU_Dutch/skater.msbt&lt;br /&gt;
 /message/EU_English/skater.msbt&lt;br /&gt;
 /message/EU_French/skater.msbt&lt;br /&gt;
 /message/EU_German/skater.msbt&lt;br /&gt;
 /message/EU_Italian/skater.msbt&lt;br /&gt;
 /message/EU_Portuguese/skater.msbt&lt;br /&gt;
 /message/EU_Russian/skater.msbt&lt;br /&gt;
 /message/EU_Spanish/skater.msbt&lt;br /&gt;
 /message/JP_Japanese/skater.msbt&lt;br /&gt;
 /message/KR_Hangeul/skater.msbt&lt;br /&gt;
 /message/TW_English/skater.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/skater.msbt&lt;br /&gt;
 /message/US_English/skater.msbt&lt;br /&gt;
 /message/US_French/skater.msbt&lt;br /&gt;
 /message/US_Portuguese/skater.msbt&lt;br /&gt;
 /message/US_Spanish/skater.msbt&lt;br /&gt;
 /oss.cro.lex differ&lt;br /&gt;
 /peer.cro.lex differ&lt;br /&gt;
 /static.crs differ&lt;br /&gt;
 /webkit.cro.lex differ&lt;br /&gt;
&lt;br /&gt;
==== v10.6 ====&lt;br /&gt;
The ExeFS codebin was updated.&lt;br /&gt;
&lt;br /&gt;
[[browserhax|browserhax_fright_tx3g]] was fixed. The code handling tx3g now matches the latest libstagefright git.&lt;br /&gt;
&lt;br /&gt;
Hence the below RomFS listing, no OSS was updated at all(besides libstagefright mentioned above).&lt;br /&gt;
&lt;br /&gt;
The following RomFS files were updated:&lt;br /&gt;
 /build/buildinfo.dat&lt;br /&gt;
 /static.crs&lt;br /&gt;
&lt;br /&gt;
==== v10.7 ====&lt;br /&gt;
Basically the same changes as Old3DS v10.7, except with the usual buildinfo.dat update in RomFS. The below date is 6 days after the browser-version-check [[3DS_Userland_Flaws|bypass]] was publicly disclosed.&lt;br /&gt;
&lt;br /&gt;
 cat v7184/00000025_romfs/build/buildinfo.dat&lt;br /&gt;
 10150&lt;br /&gt;
 applet&lt;br /&gt;
 2016-03-02 18:25&lt;br /&gt;
&lt;br /&gt;
==== v11.1 ====&lt;br /&gt;
The ExeFS codebin was updated. The following files in RomFS were updated:&lt;br /&gt;
&lt;br /&gt;
  /build/buildinfo.dat&lt;br /&gt;
  /.crr/static.crr&lt;br /&gt;
  /oss.cro.lex&lt;br /&gt;
  /static.crs&lt;br /&gt;
  /webkit.cro.lex&lt;br /&gt;
&lt;br /&gt;
  cat v8192/00000026_romfs/build/buildinfo.dat&lt;br /&gt;
  10156&lt;br /&gt;
  applet&lt;br /&gt;
  2016-08-26 19:47&lt;br /&gt;
&lt;br /&gt;
Minus the 4 functions that changed due to compiler optimization, only 1 function was actually updated. This is LT_1a4004, previous version at LT_1a4004: libstagefright status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth)&lt;br /&gt;
&lt;br /&gt;
Additional code was added which doesn&#039;t seem to be from upstream git, right [https://android.googlesource.com/platform/frameworks/av/+/32d6e5f0ebe9e00f80401e5f4fd6e285a474590d/media/libstagefright/MPEG4Extractor.cpp#880 before] the cprt code block: &amp;quot;if((*offset + chunk_size) - data_offset &amp;lt; 0)fail&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This fixed skater31hax + any other mp4 haxx which requires using a negative 64bit chunk_size value.&lt;br /&gt;
&lt;br /&gt;
The filepath base used in the assert strings were changed from &amp;quot;d:\Jenkins\workspace\MPSkaterBuild\MVPlayer\Skater\Base\Android\frameworks\base\media\libstagefright\&amp;quot; to &amp;quot;d:\jenkins\workspace\MPSkaterBuild-Git\Base\Android\frameworks\base\media\libstagefright\&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== New3DS Browser Specifications ===&lt;br /&gt;
[http://www.nintendo.co.jp/3ds/new/features/modal_net.html]&lt;br /&gt;
&lt;br /&gt;
English version:&lt;br /&gt;
* &amp;quot;Browser engine: NetFront® Browser NX v3.0&amp;quot;&lt;br /&gt;
* &amp;quot;User agent: Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML and like Gecko) NX/3.0.*.*.* Mobile NintendoBrowser/1.0.**** JP&lt;br /&gt;
* ** Version information is stated.&lt;br /&gt;
* *** When using the “Mobile version request” function, it differs from the above-mentioned character string&amp;quot;&lt;br /&gt;
* &amp;quot;Supported protocols: HTTP1.0/HTTP1.1/SSL3.0/TLS1.0/TLS1.1/TLS1.2&amp;quot;&lt;br /&gt;
* &amp;quot;Web standard: HTML4.01 / HTML5 / XHTML1.1 / Fullscreen API / Gamepad API / SVG / WebSocket / Video Subtitle / WOFF / Web Messaging / Server-Sent / Web Storage (partial) / XMLHttpRequest / Canvas element / Video / DOM Levels 1-3 / ECMAScript / CSS1 / CSS2.1 / CSS3 (partial)&amp;quot;&lt;br /&gt;
* &amp;quot;Image format: bmp / ​​gif / ico / jpeg / png / svg (There are, however, possibilities that some images won&#039;t display.)&amp;quot;&lt;br /&gt;
* &amp;quot;Image preview: mpo / jpeg (There are, however, possibilities that some images won&#039;t display.)&amp;quot;&lt;br /&gt;
* &amp;quot;Video format: MP4, M3U8 + TS (HTTPLiveStreaming) (There are, however, some videos that may not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Video codec: H.264 - MPEG-4 AVC Video (max 854x480 at level 3.2, 3D compatible) (There are, however, some videos that can not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Audio codec: AAC - ISO / IEC 14496-3 MPEG-4AAC, MP3 (There are, however, some videos that can not be played.)&amp;quot;&lt;br /&gt;
* &amp;quot;Format for uploading 3D videos: .mkv (In order to be played, videos must be converted to the appropriate format within the site you are uploading to. In some cases, the video will not play even if converted.)&amp;quot;&lt;br /&gt;
* &amp;quot;Plug-ins: Plug-ins such as Adobe Flash are not supported&amp;quot;&lt;br /&gt;
* &amp;quot;Active Rating System filtering: provided by Digital Arts, Inc.. Access to web content can be limited based on its category information, restricting access to web content that may result inappropriate.&amp;quot;&lt;br /&gt;
* &amp;quot;Websites can be requested to provide the mobile version (However, if the web page does not have a mobile version, it won&#039;t change the way it&#039;s displayed.)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
MJPEG + .avi is also supported.&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
* The html &amp;quot;color&amp;quot; &amp;lt;input&amp;gt; type is not supported.&lt;br /&gt;
&lt;br /&gt;
== Old3DS browser ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Old3DS Browser Specifications ===&lt;br /&gt;
* &amp;quot;Browser engine: NetFront® Browser&amp;quot;&lt;br /&gt;
* &amp;quot;User agent: Mozilla/5.0 (Nintendo 3DS; region; ; en) Version/1.7498.US&amp;quot;&lt;br /&gt;
* &amp;quot;Supported protocols: HTTP1.0/HTTP1.1/SSLv3/TLS1.0&amp;quot;&lt;br /&gt;
* &amp;quot;Web standard: HTML 4.01/XHTML 1.1/CSS 1/CSS 2.1/CSS 3 (partial functionality)/DOM Levels 1-3/ECMAScript&lt;br /&gt;
/XMLHttpRequest/Canvas Element (partial functionality)&amp;quot;&lt;br /&gt;
* &amp;quot;Image format: MPO / GIF / JPEG / PNG / BMP / ICO (some images cannot be displayed)&amp;quot;&lt;br /&gt;
* &amp;quot;Plug-ins: Plug-ins such as Adobe Flash are not supported&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Old3DS browser doesn&#039;t support events &amp;quot;focusin&amp;quot; and &amp;quot;focusout&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== User-Agent and Browser Versions ===&lt;br /&gt;
User-agent format: &amp;lt;code style=&amp;quot;font-size:larger;&amp;quot;&amp;gt;Mozilla/5.0 (Nintendo 3DS; U; ; &amp;lt;lang&amp;gt;) Version/&amp;lt;version&amp;gt;.&amp;lt;region&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lang&amp;gt; is &amp;quot;en&amp;quot;, &amp;quot;fr&amp;quot;, etc. &amp;lt;region&amp;gt; is &amp;quot;US&amp;quot;, &amp;quot;EU&amp;quot;, etc. See below for &amp;lt;version&amp;gt;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Browser version&lt;br /&gt;
! CDN Title-version&lt;br /&gt;
! Network-only system-update version&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.7412&lt;br /&gt;
| v6&lt;br /&gt;
| [[2.0.0-2|2.0.0-2]]&lt;br /&gt;
| This was the initial version.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7455&lt;br /&gt;
| v1024&lt;br /&gt;
| [[2.1.0-4]]&lt;br /&gt;
| ExeFS .code was updated, both of the CROs(webkit/OSS) were updated too.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7498&lt;br /&gt;
| v2050&lt;br /&gt;
| [[4.0.0-7]]&lt;br /&gt;
| ExeFS .code was updated, both of the CROs(webkit/OSS) were updated too. The manual CFA was updated as well.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7538&lt;br /&gt;
| v0&lt;br /&gt;
| [[4.2.0-9]]&lt;br /&gt;
| First version of the KOR browser. The CROs are different from the  USA/EUR/JPN [[4.0.0-7]] browser.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7552&lt;br /&gt;
| v3075&lt;br /&gt;
| [[5.0.0-11]]&lt;br /&gt;
| ExeFS .code and icon were updated, both of the CROs(webkit/OSS) were updated too. The manual CFA was updated as well.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7552&lt;br /&gt;
| v3088&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| The main NCCH wasn&#039;t updated at all(same TMD contentID/content-hash as the previous version), only the manual CFA for this title was updated.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7567&lt;br /&gt;
| v4096&lt;br /&gt;
| [[7.1.0-16]]&lt;br /&gt;
| The CXI .code was updated, some data in the RomFS was updated(none of the CROs such as webkit.cro were updated). The manual CFA was updated too.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7585&lt;br /&gt;
| v5121&lt;br /&gt;
| [[9.5.0-23]]&lt;br /&gt;
| The CXI .code was updated, and the manual CFA was updated. RomFS changes:&lt;br /&gt;
* &amp;quot;/browser/rootca.pem&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/oss.cro&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/static.crs&amp;quot; updated&lt;br /&gt;
* &amp;quot;/cro/webkit.cro&amp;quot; updated&lt;br /&gt;
* &amp;quot;/.crr/static.crr&amp;quot; updated&lt;br /&gt;
* &amp;quot;/layout/dialogheader/WirelessSwitchOff.arc&amp;quot; was removed&lt;br /&gt;
* &amp;quot;/layout/favorite/favicondata/KOR.arc&amp;quot; updated&lt;br /&gt;
&lt;br /&gt;
A vuln used in a public(at the time of this sysupdate) webkit exploit for spider was fixed, which also fixed the removewinframe exploit from [https://github.com/yellows8/3ds_webkithax here].&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| v6147&lt;br /&gt;
| v9.9 CUP&lt;br /&gt;
| v9.9 CUP dummy web-browser, see below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7610&lt;br /&gt;
| v6149&lt;br /&gt;
| [[9.9.0-26]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7616&lt;br /&gt;
| v7168&lt;br /&gt;
| [[10.2.0-28]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7622&lt;br /&gt;
| v8192&lt;br /&gt;
| [[10.6.0-31]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| 1.7625&lt;br /&gt;
| v9232&lt;br /&gt;
| [[10.7.0-32]]&lt;br /&gt;
| See below.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| v10240&lt;br /&gt;
| [[11.1.0-34]]&lt;br /&gt;
| See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Heap ===&lt;br /&gt;
The USA/EUR/JPN + KOR browser allocates the 0x08000000 heap with size 0x01A97000. The size used by the CHN and TWN browser is 0x01997000, exactly 0x100000-bytes smaller.&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v9.9 ===&lt;br /&gt;
ExeFS:/.code was updated.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS were file-updating, the following files were updated:&lt;br /&gt;
 /browser/rootca.pem&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /message/CN_Simp_Chinese/spider.msbt&lt;br /&gt;
 /message/EU_Dutch/spider.msbt&lt;br /&gt;
 /message/EU_English/spider.msbt&lt;br /&gt;
 /message/EU_French/spider.msbt&lt;br /&gt;
 /message/EU_German/spider.msbt&lt;br /&gt;
 /message/EU_Italian/spider.msbt&lt;br /&gt;
 /message/EU_Portuguese/spider.msbt&lt;br /&gt;
 /message/EU_Russian/spider.msbt&lt;br /&gt;
 /message/EU_Spanish/spider.msbt&lt;br /&gt;
 /message/JP_Japanese/spider.msbt&lt;br /&gt;
 /message/KR_Hangeul/spider.msbt&lt;br /&gt;
 /message/TW_English/spider.msbt&lt;br /&gt;
 /message/TW_Trad_Chinese/spider.msbt&lt;br /&gt;
 /message/US_English/spider.msbt&lt;br /&gt;
 /message/US_French/spider.msbt&lt;br /&gt;
 /message/US_Portuguese/spider.msbt&lt;br /&gt;
 /message/US_Spanish/spider.msbt&lt;br /&gt;
&lt;br /&gt;
OSS diff for v9.5 and v9.9, without the .dox changes:&lt;br /&gt;
&lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/WKC/WebKit/WKC/webkit/WKCVersion.h b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index be5ff09..55a7274 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.14&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.16&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;532.7&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/webkit/WebCore/rendering/RenderBox.cpp b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 index da4127e..d03403e 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.5.0(23J_23U_23E_19K_18T_3C)/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderBox.cpp&lt;br /&gt;
 @@ -305,23 +305,23 @@ int RenderBox::scrollHeight() const&lt;br /&gt;
  &lt;br /&gt;
  int RenderBox::scrollLeft() const&lt;br /&gt;
  {&lt;br /&gt;
 -    return hasOverflowClip() ? layer()-&amp;gt;scrollXOffset() : 0;&lt;br /&gt;
 +    return layer() &amp;amp;&amp;amp; hasOverflowClip() ? layer()-&amp;gt;scrollXOffset() : 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int RenderBox::scrollTop() const&lt;br /&gt;
  {&lt;br /&gt;
 -    return hasOverflowClip() ? layer()-&amp;gt;scrollYOffset() : 0;&lt;br /&gt;
 +    return layer() &amp;amp;&amp;amp; hasOverflowClip() ? layer()-&amp;gt;scrollYOffset() : 0;&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  void RenderBox::setScrollLeft(int newLeft)&lt;br /&gt;
  {&lt;br /&gt;
 -    if (hasOverflowClip())&lt;br /&gt;
 +    if (hasOverflowClip() &amp;amp;&amp;amp; layer())&lt;br /&gt;
          layer()-&amp;gt;scrollToXOffset(newLeft);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  void RenderBox::setScrollTop(int newTop)&lt;br /&gt;
  {&lt;br /&gt;
 -    if (hasOverflowClip())&lt;br /&gt;
 +    if (hasOverflowClip() &amp;amp;&amp;amp; layer())&lt;br /&gt;
          layer()-&amp;gt;scrollToYOffset(newTop);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.2 ===&lt;br /&gt;
The slider vuln from [https://github.com/yellows8/3ds_webkithax here] was fixed in the Old3DS browser.&lt;br /&gt;
&lt;br /&gt;
The main codebin .text only increased by 0x10-bytes.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS was that the following files were updated:&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
&lt;br /&gt;
OSS diff:&lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 index 55a7274..fc153c4 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/WKC/WebKit/WKC/webkit/WKCVersion.h&lt;br /&gt;
 @@ -29,7 +29,7 @@&lt;br /&gt;
  #define WKC_VERSION_CHECK(major, minor, micro) \&lt;br /&gt;
      (((major)*10000) + ((minor)*100) + (micro)) &amp;gt;= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO))&lt;br /&gt;
  &lt;br /&gt;
 -#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.16&amp;quot;&lt;br /&gt;
 +#define WKC_CUSTOMER_RELEASE_VERSION &amp;quot;1.8.17&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  #define WKC_WEBKIT_VERSION &amp;quot;532.7&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 diff --git a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderSlider.cpp b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 index b2f5cef..1dd3dbd 100644&lt;br /&gt;
 --- a/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_9.9.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 +++ b/3DS_InternetBrowser_OpenSources_JP_US_EU_KR_TW_HK_CN_10.2.0/webkit/WebCore/rendering/RenderSlider.cpp&lt;br /&gt;
 @@ -221,6 +221,7 @@ RenderSlider::~RenderSlider()&lt;br /&gt;
  {&lt;br /&gt;
      if (m_thumb)&lt;br /&gt;
          m_thumb-&amp;gt;detach();&lt;br /&gt;
 +    m_thumb = 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int RenderSlider::baselinePosition(bool, bool) const&lt;br /&gt;
 @@ -493,7 +494,8 @@ void RenderSlider::forwardEvent(Event* event)&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
  &lt;br /&gt;
 -    m_thumb-&amp;gt;defaultEventHandler(event);&lt;br /&gt;
 +    if (m_thumb)&lt;br /&gt;
 +        m_thumb-&amp;gt;defaultEventHandler(event);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  bool RenderSlider::inDragMode() const&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.6 ===&lt;br /&gt;
[[browserhax|spider28hax]] was fixed. The &amp;quot;2^32 characters long string&amp;quot; vuln described [[3DS_Userland_Flaws|here]] was &#039;&#039;finally&#039;&#039; fixed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;A lot&#039;&#039; of WebKit issues/vulns were fixed, see [https://gist.github.com/yellows8/b1e10caa1d8bb8a46316 here] for the changes.&lt;br /&gt;
&lt;br /&gt;
libpng was updated from version 1.4.12 to 1.4.19. zlib was updated from 1.2.7 to 1.2.8.&lt;br /&gt;
&lt;br /&gt;
The .text size increased by 0x478-bytes.&lt;br /&gt;
&lt;br /&gt;
The only changes in RomFS was that the following files were updated:&lt;br /&gt;
 /cro/oss.cro&lt;br /&gt;
 /cro/static.crs&lt;br /&gt;
 /cro/webkit.cro&lt;br /&gt;
 /.crr/static.crr&lt;br /&gt;
 /manual/Manual.bcma&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v10.7 ===&lt;br /&gt;
&#039;&#039;Nothing&#039;&#039; changed except some words for version-values in .text being updated(RomFS wasn&#039;t changed), code for browser-version-check was [[#v10.7_2|updated]].&lt;br /&gt;
&lt;br /&gt;
=== Old3DS v11.1 ===&lt;br /&gt;
Nothing changed in the ExeFS codebin besides the usual version values. The following files in RomFS were updated:&lt;br /&gt;
  /cro/oss.cro&lt;br /&gt;
  /cro/webkit.cro&lt;br /&gt;
  /.crr/static.crr&lt;br /&gt;
&lt;br /&gt;
== Forced system-update ==&lt;br /&gt;
The Old3DS/New3DS Internet Browser updated with [[9.9.0-26]] added the following message strings:&lt;br /&gt;
 In order to use the Internet &lt;br /&gt;
 browser, a system update &lt;br /&gt;
 is required.&lt;br /&gt;
 To perform a system update, &lt;br /&gt;
 select System Update from Other&lt;br /&gt;
 Settings in System Settings.&lt;br /&gt;
&lt;br /&gt;
 The Internet browser cannot be&lt;br /&gt;
 used at this time.&lt;br /&gt;
 Please check your network&lt;br /&gt;
 environment or try again later.&lt;br /&gt;
&lt;br /&gt;
For whatever reason, the above &#039;&#039;message strings&#039;&#039; were removed with New3DS-browser v10.2, then re-added with v10.4. This does not apply to the Old3DS browser. Whenever v10.2 New3DS browser tries to use these message-strings for displaying a browser-update-related message, it will crash due to an assert failing since the message-strings are missing. Hence, if/when the v10.2 update-check page is ever updated where the browser tries to display a message for it, or when accessing that page fails, the browser will automatically crash.&lt;br /&gt;
&lt;br /&gt;
This wasn&#039;t enforced(web-browser displaying the above message when the installed browser isn&#039;t the latest version) until October 26, 2015.&lt;br /&gt;
&lt;br /&gt;
This message only triggers when attempting to load a web-page. This is only handled the first time the browser accesses a web-page, during this browser session.&lt;br /&gt;
&lt;br /&gt;
The browser codebins starting with v9.9 now contain the following URL strings:&lt;br /&gt;
* Old3DS: &amp;lt;nowiki&amp;gt;&amp;quot;https://cbvc.cdn.nintendo.net/CTR/1/&amp;lt;region&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* New3DS: &amp;lt;nowiki&amp;gt;&amp;quot;https://cbvc.cdn.nintendo.net/SNAKE/1/&amp;lt;region&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;region&amp;gt; string is one of the following:&lt;br /&gt;
* &amp;quot;JPN&amp;quot;&lt;br /&gt;
* &amp;quot;USA&amp;quot;&lt;br /&gt;
* &amp;quot;EUR&amp;quot;&lt;br /&gt;
* &amp;quot;KOR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Starting with the browser from [[10.2.0-28]], the &amp;quot;1&amp;quot; in the above URLs were changed to &amp;quot;2&amp;quot;. With the New3DS browser from [[10.4.0-29]], it&#039;s now &amp;quot;3&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
As of October 26, 2015, the &amp;quot;1&amp;quot; URLs return the browser-version for v9.9(decimal number as a string without any &amp;quot;.&amp;quot;), while the &amp;quot;2&amp;quot; URLs returns 0.&lt;br /&gt;
&lt;br /&gt;
 if(internal_browserver &amp;gt; server_browserver)&lt;br /&gt;
 {&lt;br /&gt;
     &amp;lt;safe&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
 else&lt;br /&gt;
 {&lt;br /&gt;
     &amp;lt;update message&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Hence, internal_browserver == server_browserver will trigger the sysupdate message, which appears to be the normal way to indicate that the current browser is outdated(see above).&lt;br /&gt;
&lt;br /&gt;
There is a cache for this in savedata. The request is only done when at least 24-hours have passed since the last time the request was done(see the below savedata section).&lt;br /&gt;
&lt;br /&gt;
It is still possible to guard against this update by blocking the previous URLs using a proxy. &lt;br /&gt;
It is not possible to remove the update message by entering the [[Recovery Mode]].&lt;br /&gt;
&lt;br /&gt;
=== Page request ===&lt;br /&gt;
For this request, all root-CAs bundled with the browser are trusted, in addition to two of the SSL module builtin Nintendo root-CAs.&lt;br /&gt;
&lt;br /&gt;
The browser(with New3DS at least) does the following with [[HTTP_Services|HTTPC]] for requesting the above page:&lt;br /&gt;
* Initializes the HTTP context and uses [[HTTPC:InitializeConnectionSession]] + [[HTTPC:SetProxyDefault]].&lt;br /&gt;
* Uses [[HTTP_Services|HTTPC]] command 0x250080 twice with cmd[1]=contexthandle: first time cmd[2]=0x3, second time cmd[2]=0x6.&lt;br /&gt;
* Then [[HTTPC:AddTrustedRootCA]] is used 48 times to setup 48 trusted root CAs. This appears to be every cert in the browser &amp;quot;romfs:/browser/rootca.pem&amp;quot; file converted to DER, in the same order from there(in other words, every single root CA the browser trusts by default for normal web-browsing).&lt;br /&gt;
* Then [[HTTPC:BeginRequest]] is used.&lt;br /&gt;
* Then [[HTTPC:ReceiveDataTimeout]] is used, the recv-size seems to be fixed to 0x20.&lt;br /&gt;
* Then [[HTTPC:GetResponseStatusCodeTimeout]] is used.&lt;br /&gt;
* Then [[HTTPC:GetDownloadSizeState]] is used.&lt;br /&gt;
* Then the HTTP context is closed.&lt;br /&gt;
&lt;br /&gt;
Raw request data(New3DS USA v10.2 browser):&lt;br /&gt;
 000000: 47 45 54 20 2f 53 4e 41 4b 45 2f 32 2f 55 53 41  GET /SNAKE/2/USA&lt;br /&gt;
 000010: 20 48 54 54 50 2f 31 2e 31 0d 0a 48 6f 73 74 3a   HTTP/1.1..Host:&lt;br /&gt;
 000020: 20 63 62 76 63 2e 63 64 6e 2e 6e 69 6e 74 65 6e   cbvc.cdn.ninten&lt;br /&gt;
 000030: 64 6f 2e 6e 65 74 0d 0a 0d 0a                    do.net....&lt;br /&gt;
&lt;br /&gt;
=== v10.7 ===&lt;br /&gt;
The only actual code change with Old3DS/New3DS browser v10.7 was that the code which calculates the diff_timestamp was moved to immediately after the block which initializes &amp;lt;state_timestamp&amp;gt; when &amp;lt;state_timestamp&amp;gt; is all-zero. This fixed the browser-version-check [[3DS_Userland_Flaws|bypass]].&lt;br /&gt;
&lt;br /&gt;
== v9.9+/v10.7+ dummy web-browser ==&lt;br /&gt;
Gamecards v9.9 and above include, with their sysupdate, a dummy Old3DS/New3DS web-browser. The *only* thing this title does is display the same message listed in the above forced-update section. The message files in RomFS *only* contain that message string above. There are no &amp;quot;http&amp;quot; strings in the main codebin, and [[RO_Services|RO]] isn&#039;t used either(no CRO data in RomFS at all). Both browsers are internally called &amp;quot;dummySpider&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Hence, if you update your system below v9.8 with any v9.9 or above gamecard, the system web-browser will be rendered *completely* useless until you install a system-update from CDN(no network requests involved here).&lt;br /&gt;
&lt;br /&gt;
Gamecards v10.7 and above include an updated dummy web-browser, where the only difference is the title version.&lt;br /&gt;
&lt;br /&gt;
== Savedata ==&lt;br /&gt;
=== New3DS ===&lt;br /&gt;
On newer SKATER versions, it appears *all* NAND savedata is stored under the [[System_SaveData|0x000200BB]] savedata.&lt;br /&gt;
&lt;br /&gt;
==== 0x000200BB savedata ====&lt;br /&gt;
This only contains &amp;quot;t.bin&amp;quot; with filesize 0xadf80, the format is below.&lt;br /&gt;
&lt;br /&gt;
The timestamp format used here is the number of milliseconds since January 1, 2000(local-time).&lt;br /&gt;
&lt;br /&gt;
When using the &amp;quot;Initialize savedata&amp;quot; option in the browser, that deletes this savedata file/image then exits the browser. This file is then re-created when the browser gets started again.&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;
| 0x68&lt;br /&gt;
| 0x4?&lt;br /&gt;
| This counter is incremented each time the savedata is written.&lt;br /&gt;
|-&lt;br /&gt;
| 0x70&lt;br /&gt;
| 0x8&lt;br /&gt;
| Timestamp for when the savedata was last written.&lt;br /&gt;
|-&lt;br /&gt;
| 0x94&lt;br /&gt;
| 0x15?&lt;br /&gt;
| This is all-zeros on non-JPN systems. On JPN systems where the browser filter is disabled, this is a string in the following format: &amp;quot;4110-%016llX&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD8&lt;br /&gt;
| 0x8&lt;br /&gt;
| s64 timestamp, can be either a normal positive timestamp or a relative negative one. Used with the forced-update described above. When an update is detected this timestamp is negative, otherwise this is a normal positive timestamp(it&#039;s unknown how exactly this timestamp is checked). When positive, this seems to be the last time the forced-update HTTPS request was done where no update was needed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==APT Parameters==&lt;br /&gt;
The URL to load can optionally be loaded from char[] string [[APT:SendParameter|paramblk+0]]. This is used when scanning URL QR-codes in Home Menu / etc.&lt;br /&gt;
&lt;br /&gt;
==Errors==&lt;br /&gt;
&amp;quot;Failed to load part of this page&amp;quot;: This can be caused by failing to load &amp;quot;/favicon.ico&amp;quot;. For example, this can be caused by loading a plain HTTP page, with plain-http favicon redirecting to HTTPS. If cert-verify then fails with favicon in this case, this error would then trigger.&lt;br /&gt;
&lt;br /&gt;
==Other details==&lt;br /&gt;
&lt;br /&gt;
*It scored 90/100 on [http://acid3.acidtests.org/ Acid3] test&lt;br /&gt;
*Images from the Internet can be saved to the [[SD Filesystem|SD Card]] and viewed using the [[Nintendo 3DS Camera]] application.&lt;br /&gt;
*Images saved to an [[SD Filesystem|SD Card]] or to the Nintendo 3DS system memory can be uploaded to blogs or other sites that allow the uploading of photos using :&lt;br /&gt;
 &amp;lt;input type=&amp;quot;file&amp;quot; /&amp;gt;&lt;br /&gt;
* HTML5Test.com say that Drag and drop is supported but it&#039;s not (code on WebKit is ready, but it&#039;s not implemented on interface of browser)&lt;br /&gt;
&lt;br /&gt;
==Tips==&lt;br /&gt;
&lt;br /&gt;
=== Detect User Agent ===&lt;br /&gt;
&lt;br /&gt;
To detect if the user agent is Nintendo 3DS Browser :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
     if (navigator.userAgent.indexOf(&#039;Nintendo 3DS&#039;) == -1) { //If the UserAgent is not &amp;quot;Nintendo 3DS&amp;quot;&lt;br /&gt;
         location.replace(&#039;http://www.3dbrew.org&#039;); //Redirect to an other page&lt;br /&gt;
     }&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* You can check &amp;lt;em&amp;gt;navigator.platform==&amp;quot;Nintendo 3DS&amp;quot;&amp;lt;/em&amp;gt; as well.&lt;br /&gt;
&lt;br /&gt;
=== Scrolling ===&lt;br /&gt;
&lt;br /&gt;
Scrolling can be altered by modifying &amp;lt;em&amp;gt;document.body.scrollTop&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;document.body.scrollLeft&amp;lt;/em&amp;gt;.  However, there are drawbacks related to working with these properties:&lt;br /&gt;
&lt;br /&gt;
* Both properties return 0 when accessed&lt;br /&gt;
* Setting one property resets the other property&#039;s scroll position&lt;br /&gt;
&lt;br /&gt;
In order to set both at the same time (without either resetting to 0), use &amp;lt;em&amp;gt;window.scrollTo&amp;lt;/em&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Events ===&lt;br /&gt;
==== Key Events ====&lt;br /&gt;
The following buttons trigger the &amp;lt;em&amp;gt;onkeydown&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;onkeypress&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;onkeyup&amp;lt;/em&amp;gt; events:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;20%&amp;quot;&lt;br /&gt;
! Code !! Button &lt;br /&gt;
|-&lt;br /&gt;
| 13 || A&lt;br /&gt;
|-&lt;br /&gt;
| 37 || Left&lt;br /&gt;
|-&lt;br /&gt;
| 38 || Up&lt;br /&gt;
|-&lt;br /&gt;
| 39 || Right&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Down&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The events cannot have their default action cancelled.  Other buttons do not trigger key events.&lt;br /&gt;
&lt;br /&gt;
==== Touch/Mouse Events ====&lt;br /&gt;
&amp;lt;em&amp;gt;onmousedown&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;onmouseup&amp;lt;/em&amp;gt; &amp;amp; &amp;lt;em&amp;gt;onclick&amp;lt;/em&amp;gt; are all triggered by the browser.  However, the &amp;lt;em&amp;gt;onmousedown&amp;lt;/em&amp;gt; event doesn&#039;t trigger until you lift the stylus or you&#039;ve held it on the screen for ~2 seconds—which is when text selection mode is activated—making it pretty much the same as &amp;lt;em&amp;gt;onmouseup&amp;lt;/em&amp;gt;.  The events cannot have their default action cancelled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;em&amp;gt;onmousemove&amp;lt;/em&amp;gt; and common touch/gesture events are not supported.&lt;br /&gt;
&lt;br /&gt;
== Screen Resolution ==&lt;br /&gt;
&lt;br /&gt;
The up screen resolution is 400×240. However, the viewable area in the browser is only &amp;lt;b&amp;gt;400×220&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The touch screen resolution is 320×240. However, the viewable area in the browser is only &amp;lt;b&amp;gt;320×212&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can have a page span both screens. However, the browser will behave as if the bottom screen is the only active screen and the top screen is scrolled off. This is important when computing CSS coordinates. Items positioned from &amp;quot;bottom&amp;quot; will be positioned based on 220px and not the full 432px of both screens.&lt;br /&gt;
&lt;br /&gt;
== Using Both Screens ==&lt;br /&gt;
&lt;br /&gt;
Generally the easiest way to accomplish the correct layout is to create HTML elements that &amp;quot;contain&amp;quot; the top and bottom screens. Here&#039;s an example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
   &amp;lt;head&amp;gt;&lt;br /&gt;
     &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=400&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;style&amp;gt;&lt;br /&gt;
       body{margin:0px;}&lt;br /&gt;
       #topscreen{width:400px;height:220px;overflow:hidden;}&lt;br /&gt;
       #bottomscreen{width:320px;height:212px;overflow:hidden;margin:0 auto;}&lt;br /&gt;
     &amp;lt;/style&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div id=&amp;quot;topscreen&amp;quot;&amp;gt;Top Screen&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div id=&amp;quot;bottomscreen&amp;quot;&amp;gt;Bottom Screen&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This scheme allows the page to be easily manipulated through JavaScript.  In order to have the window snap to the correct position, use the following JavaScript code:&lt;br /&gt;
&lt;br /&gt;
 window.setInterval(function () {&lt;br /&gt;
     window.scrollTo(40, 220);  &lt;br /&gt;
 }, 50);&lt;br /&gt;
&lt;br /&gt;
This automatically resets the position if the user accidentally scrolls the page.&lt;br /&gt;
&lt;br /&gt;
==Example Sites==&lt;br /&gt;
&amp;lt;!-- If you have a website that demonstrates these techniques, place it here! --&amp;gt;&lt;br /&gt;
* [http://www.nintendo.com/3ds/internetbrowser/bookmarks Nintendo 3DS Bookmarks] - This is the first bookmark pre-installed in the browser.&lt;br /&gt;
* [http://3ds.andysmith.co.uk/jFox.html jFox] (Short URL: http://bit.ly/iB7FqW)&lt;br /&gt;
* [http://ditto3d.com/3ds Ditto3D] (Short URL: http://bit.ly/oVreWA)&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Title_list&amp;diff=17983</id>
		<title>Title list</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Title_list&amp;diff=17983"/>
		<updated>2016-08-25T06:07:53Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* TWL (DSi) Titles */ fix bad link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NOTE: This Title list is a condensed version, only the System Titles lists are full lists. For a full list of titles on Nintendo&#039;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.&lt;br /&gt;
&lt;br /&gt;
== CTR System Titles ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  System Category&lt;br /&gt;
!  Bit Mask(s)&lt;br /&gt;
!  Category Bit Mask&lt;br /&gt;
|-&lt;br /&gt;
|  Application (SYSTEM_APPLICATION)&lt;br /&gt;
|  Normal&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&lt;br /&gt;
|  0x0010&lt;br /&gt;
|-&lt;br /&gt;
|  System Data Archives (SYSTEM_CONTENT)&lt;br /&gt;
|  Contents&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&lt;br /&gt;
|  0x001B&lt;br /&gt;
|-&lt;br /&gt;
|  Shared Data Archives (SHARED_CONTENT)&lt;br /&gt;
|  Contents&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;NotRequireRightForMount&lt;br /&gt;
|  0x009B&lt;br /&gt;
|-&lt;br /&gt;
|  System Data Archives (AUTO_UPDATE_CONTENT)&lt;br /&gt;
|  Contents&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;NotRequireUserApproval&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;NotRequireRightForMount&lt;br /&gt;
|  0x00DB&lt;br /&gt;
|-&lt;br /&gt;
|  Applet (APPLET)&lt;br /&gt;
|  Normal&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;RequireBatchUpdate&lt;br /&gt;
|  0x0030&lt;br /&gt;
|-&lt;br /&gt;
|  Module (BASE)&lt;br /&gt;
|  Normal&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;RequireBatchUpdate&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CanSkipConvertJumpId&lt;br /&gt;
|  0x0130&lt;br /&gt;
|-&lt;br /&gt;
|  Firmware (FIRMWARE)&lt;br /&gt;
|  Normal&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;RequireBatchUpdate&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CanSkipConvertJumpId&lt;br /&gt;
|  0x0138&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00040010 - System Applications ===&lt;br /&gt;
The versions for CHN, KOR, and TWN are separate from the other regions.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  JPN TIDLow&lt;br /&gt;
!  USA TIDLow&lt;br /&gt;
!  EUR TIDLow&lt;br /&gt;
!  CHN TIDLow&lt;br /&gt;
!  KOR TIDLow&lt;br /&gt;
!  TWN TIDLow&lt;br /&gt;
!  [[Product code]]&lt;br /&gt;
!  Description&lt;br /&gt;
!  JPN Versions&lt;br /&gt;
!  EUR Versions&lt;br /&gt;
!  USA Versions&lt;br /&gt;
!  CHN Versions&lt;br /&gt;
!  KOR Versions&lt;br /&gt;
!  TWN Versions&lt;br /&gt;
!  Status&lt;br /&gt;
|-&lt;br /&gt;
| 00020000&lt;br /&gt;
| 00021000&lt;br /&gt;
| 00022000&lt;br /&gt;
| 00026000&lt;br /&gt;
| 00027000&lt;br /&gt;
| 00028000&lt;br /&gt;
| CTR-N-HAS?&lt;br /&gt;
| [[System Settings]] (mset)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[3.0.0-5|v2060]], [[4.0.0-7|v3074]], [[5.0.0-11|v4097]], [[6.0.0-11|v5127]], [[7.0.0-13|v6157]], [[7.2.0-17|v7173]], [[8.1.0-0_New3DS|v8198]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v9224]], [[9.6.0-24|v10245]], [[10.6.0-31|v10256]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[3.0.0-5|v2061]], [[4.0.0-7|v3075]], [[5.0.0-11|v4097]], [[6.0.0-11|v5127]], [[7.0.0-13|v6157]], [[7.2.0-17|v7174]], [[9.0.0-20|v8202]], [[9.6.0-24|v9220]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[3.0.0-5|v2062]], [[4.0.0-7|v3078]], [[5.0.0-11|v4098]], [[6.0.0-11|v5128]], [[7.0.0-13|v6157]], [[7.2.0-17|v7174]], [[9.0.0-20|v8203]], [[9.6.0-24|v9221]]&lt;br /&gt;
| [[4.0.0-7|v8]], [[4.4.0-10|v1024]](CHN-only sysupdate for just mset), [[5.0.0-11|v2049]], [[7.0.0-13|v3075]]&lt;br /&gt;
| [[4.0.0-7|v1026]], [[5.0.0-11|v2049]], [[7.0.0-13|v4098]]&lt;br /&gt;
| [[4.1.0-8|v8]], [[4.2.0-9|v1024]], [[5.0.0-11|v2050]], [[7.0.0-13|v3074]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020100&lt;br /&gt;
| 00021100&lt;br /&gt;
| 00022100&lt;br /&gt;
| 00026100&lt;br /&gt;
| 00027100&lt;br /&gt;
| 00028100&lt;br /&gt;
| CTR-N-HDL?&lt;br /&gt;
| [[Download Play]] (dlplay)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]], [[4.0.0-7|v2051]], [[9.0.0-20|v3072]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]], [[4.0.0-7|v2051]], [[9.0.0-20|v3073]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]], [[4.0.0-7|v2051]], [[9.0.0-20|v3073]]&lt;br /&gt;
| [[4.0.0-7|v4]]&lt;br /&gt;
| [[4.0.0-7|v1027]]&lt;br /&gt;
| [[4.1.0-8|v4]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020200&lt;br /&gt;
| 00021200&lt;br /&gt;
| 00022200&lt;br /&gt;
| 00026200&lt;br /&gt;
| 00027200&lt;br /&gt;
| 00028200&lt;br /&gt;
| CTR-N-HMK?&lt;br /&gt;
| [[Activity Log]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[3.0.0-5|v2051]], [[10.6.0-31|v2080]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[3.0.0-5|v2054]], [[7.0.0-13|v2064]]&lt;br /&gt;
| Same as EUR&lt;br /&gt;
| [[4.0.0-7|v3]]&lt;br /&gt;
| [[4.0.0-7|v2]], [[7.0.0-13|v16]]&lt;br /&gt;
| [[4.1.0-8|v2]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020300&lt;br /&gt;
| 00021300&lt;br /&gt;
| 00022300&lt;br /&gt;
| 00026300&lt;br /&gt;
| 00027300&lt;br /&gt;
| 00028300&lt;br /&gt;
| ?&lt;br /&gt;
| [[Health and Safety Information]] (safe)&lt;br /&gt;
| [[1.0.0-0|v0]], [[4.0.0-7|v1024]], [[6.0.0-11|v2050]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[4.0.0-7|v2050]], [[6.0.0-11|v3077]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[4.0.0-7|v1026]], [[6.1.0-12U|v2051]]&lt;br /&gt;
| [[4.0.0-7|v5]]&lt;br /&gt;
| [[4.0.0-7|v2]]&lt;br /&gt;
| [[4.1.0-8|v5]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 20020300&lt;br /&gt;
| 20021300&lt;br /&gt;
| 20022300&lt;br /&gt;
| N/A&lt;br /&gt;
| 20027300&lt;br /&gt;
| N/A&lt;br /&gt;
| CTR-N-HAC?&lt;br /&gt;
| [[New_3DS]] [[Health and Safety Information]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v2]], [[9.3.0-21|v17]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v1]]&lt;br /&gt;
| Same as EUR.&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v2]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020400&lt;br /&gt;
| 00021400&lt;br /&gt;
| 00022400&lt;br /&gt;
| 00026400&lt;br /&gt;
| 00027400&lt;br /&gt;
| 00028400&lt;br /&gt;
| CTR-N-HEP?&lt;br /&gt;
| [[Nintendo 3DS Camera]] (CtrApp)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v16]], [[3.0.0-5|v1038]], [[4.0.0-7|v2048]], [[6.0.0-11|v3073]], [[9.0.0-20|v4097]](Also for [[8.1.0-0_New3DS]]), [[10.6.0-31|v4112]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v16]], [[3.0.0-5|v1039]], [[4.0.0-7|v2048]], [[6.0.0-11|v3073]], [[7.0.0-13|v3088]], [[9.0.0-20|v4097]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v16]], [[3.0.0-5|v1039]], [[4.0.0-7|v2048]], [[6.1.0-12U|v3074]], [[7.0.0-13|v3088]], [[9.0.0-20|v4097]]&lt;br /&gt;
| [[4.0.0-7|v3]]&lt;br /&gt;
| [[4.0.0-7|v2]], [[7.0.0-13|v1040]]&lt;br /&gt;
| [[4.1.0-8|v3]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020500&lt;br /&gt;
| 00021500&lt;br /&gt;
| 00022500&lt;br /&gt;
| 00026500&lt;br /&gt;
| 00027500&lt;br /&gt;
| 00028500&lt;br /&gt;
| CTR-N-HES?&lt;br /&gt;
| [[Nintendo 3DS Sound]] (CtrApp)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1027]], [[3.0.0-5|v2049]], [[4.0.0-7|v3072]], [[7.0.0-13|v3089]], [[10.6.0-31|3104]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1027]], [[3.0.0-5|v2049]], [[4.0.0-7|v3072]], [[7.0.0-13|v3088]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1027]], [[3.0.0-5|v2049]], [[4.0.0-7|v3072]], [[7.0.0-13|v3088]]&lt;br /&gt;
| [[4.0.0-7|v2]]&lt;br /&gt;
| [[4.0.0-7|v2]], [[7.0.0-13|v16]]&lt;br /&gt;
| [[4.1.0-8|v3]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020700&lt;br /&gt;
| 00021700&lt;br /&gt;
| 00022700&lt;br /&gt;
| 00026700&lt;br /&gt;
| 00027700&lt;br /&gt;
| 00028700&lt;br /&gt;
| CTR-N-HED?&lt;br /&gt;
| [[Mii Maker]] (EDIT)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[7.0.0-13|v2055]], [[10.6.0-31|v2064]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| [[4.0.0-7|v1]]&lt;br /&gt;
| [[4.0.0-7|v1]], [[7.0.0-13|v16]]&lt;br /&gt;
| [[4.1.0-8|v2]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020800&lt;br /&gt;
| 00021800&lt;br /&gt;
| 00022800&lt;br /&gt;
| 00026800&lt;br /&gt;
| 00027800&lt;br /&gt;
| 00028800&lt;br /&gt;
| CTR-N-HME?&lt;br /&gt;
| [[StreetPass Mii Plaza]] (MEET)&lt;br /&gt;
| [[1.0.0-0|v0]], v1027, [[2.1.0-4|v2048]], [[3.0.0-5|v3087]], [[3.0.0-6|v4096]], [[6.0.0-11|v5121]]&lt;br /&gt;
| [[1.0.0-0|v0]], v1027, [[2.1.0-4|v2048]], [[3.0.0-5|v3087]], [[3.0.0-6|v4096]], [[6.0.0-11|v5122]]&lt;br /&gt;
| [[1.0.0-0|v0]], v1027, [[2.1.0-4|v2048]], [[3.0.0-5|v3087]], [[3.0.0-6|v4096]], [[6.1.0-12U|v5124]], [[7.0.0-13|v5136]]&lt;br /&gt;
| [[4.0.0-7|v0]], [[4.4.0-10|v4096]]&lt;br /&gt;
| [[4.0.0-7|v1]], [[4.4.0-10|v4096]], [[7.0.0-13|v5120]]&lt;br /&gt;
| [[4.1.0-8|v1]], [[4.4.0-10|v4096]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020900&lt;br /&gt;
| 00021900&lt;br /&gt;
| 00022900&lt;br /&gt;
| N/A&lt;br /&gt;
| 00027900&lt;br /&gt;
| 00028900&lt;br /&gt;
| CTR-N-HGR?&lt;br /&gt;
| [[eShop]] (tiger)&lt;br /&gt;
| [[2.0.0-2|v4]], [[2.1.0-3|v1026]], [[3.0.0-5|v2057]], [[4.0.0-7|v3081]], [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7169]], [[7.0.0-13|v8206]], [[7.1.0-14|v9231]], [[7.2.0-17|v10245]], [[8.0.0-18|v11265]], [[8.1.0-19|v12288]], [[9.0.0-20|v13320]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17421]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]], [[10.4.0-29|v20483]], [[10.7.0-32|v21504]]&lt;br /&gt;
| [[2.0.0-2|v4]], [[2.1.0-3|v1026]], [[3.0.0-5|v2058]], [[4.0.0-7|v3081]], [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7171]], [[7.0.0-13|v8206]], [[7.1.0-14|v9231]], [[7.2.0-17|v10245]], [[8.0.0-18|v11265]], [[8.1.0-19|v12288]], [[9.0.0-20|v13320]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17421]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]], [[10.4.0-29|v20482]], [[10.7.0-32|v21505]]&lt;br /&gt;
| [[2.0.0-2|v4]], [[2.1.0-3|v1026]], [[3.0.0-5|v2058]], [[4.0.0-7|v3081]], [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7170]], [[7.0.0-13|v8206]], [[7.1.0-14|v9231]], [[7.2.0-17|v10246]], [[8.0.0-18|v11265]], [[8.1.0-19|v12288]], [[9.0.0-20|v13321]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17422]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]], [[10.4.0-29|v20482]], [[10.7.0-32|v21506]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[4.0.0-7|v3082]], [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7169]], [[7.0.0-13|v8205]], [[7.1.0-14|v9231]], [[8.1.0-19|v12288]], [[9.0.0-20|v13320]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17420]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]], [[10.4.0-29|v20482]]&lt;br /&gt;
| [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7170]], [[7.0.0-13|v8205]], [[7.1.0-14|v9231]], [[8.1.0-19|v12288]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17421]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020A00&lt;br /&gt;
| 00021A00&lt;br /&gt;
| 00022A00&lt;br /&gt;
| N/A&lt;br /&gt;
| 00027A00&lt;br /&gt;
| 00028A00&lt;br /&gt;
| CTR-N-HCB?&lt;br /&gt;
| [[System Transfer]] (CARDBOARD)&lt;br /&gt;
| [[2.0.0-2|v4]], [[3.0.0-5|v1035]], [[4.0.0-7|v2050]], [[5.0.0-11|v3074]], [[7.0.0-13|v4109]], [[9.0.0-20|v5130]], [[9.6.0-24|v6154]]&lt;br /&gt;
| [[2.0.0-2|v4]], [[3.0.0-5|v1035]], [[4.0.0-7|v2050]], [[5.0.0-11|v3073]], [[7.0.0-13|v4109]], [[9.0.0-20|v5131]], [[9.6.0-24|v6155]]&lt;br /&gt;
| [[2.0.0-2|v4]], [[3.0.0-5|v1035]], [[4.0.0-7|v2051]], [[5.0.0-11|v3073]], [[7.0.0-13|v4109]], [[9.0.0-20|v5131]], [[9.6.0-24|v6156]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[4.0.0-7|v2]], [[5.0.0-11|v1025]], [[7.0.0-13|v2061]], [[9.0.0-20|v3082]]&lt;br /&gt;
| [[4.1.0-8|v2]], [[5.0.0-11|v1025]], [[7.0.0-13|v2061]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020B00&lt;br /&gt;
| 00021B00&lt;br /&gt;
| 00022B00&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| CTR-N-HMA?&lt;br /&gt;
| [[Nintendo Zone]] (&amp;quot;Nintendo&amp;quot;)&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1034]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020D00&lt;br /&gt;
| 00021D00&lt;br /&gt;
| 00022D00&lt;br /&gt;
| 00026D00&lt;br /&gt;
| 00027D00&lt;br /&gt;
| 00028D00&lt;br /&gt;
| CTR-N-HCH?&lt;br /&gt;
| [[Face Raiders]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1028]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1028]], [[7.0.0-13|v1040]]&lt;br /&gt;
| Same as EUR&lt;br /&gt;
| [[4.0.0-7|v0]]&lt;br /&gt;
| [[4.0.0-7|v0]]&lt;br /&gt;
| [[4.1.0-8|v2]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 20020D00&lt;br /&gt;
| 20021D00&lt;br /&gt;
| 20022D00&lt;br /&gt;
| N/A&lt;br /&gt;
| 20027D00&lt;br /&gt;
| N/A&lt;br /&gt;
| ?&lt;br /&gt;
| [[New_3DS]] [[Face Raiders]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v2050]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v2049]]&lt;br /&gt;
| Same as EUR.&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v2049]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020E00&lt;br /&gt;
| 00021E00&lt;br /&gt;
| 00022E00&lt;br /&gt;
| 00026E00&lt;br /&gt;
| 00027E00&lt;br /&gt;
| 00028E00&lt;br /&gt;
| CTR-N-HAR?&lt;br /&gt;
| [[AR Games]] (AR_ACT)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]], [[7.0.0-13|v1040]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1027]], [[7.0.0-13|v1040]]&lt;br /&gt;
| [[4.0.0-7|v0]]&lt;br /&gt;
| [[4.0.0-7|v0]], [[7.0.0-13|v16]]&lt;br /&gt;
| [[4.1.0-8|v1]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020F00&lt;br /&gt;
| 00021F00&lt;br /&gt;
| 00022F00&lt;br /&gt;
| 00026F00&lt;br /&gt;
| 00027F00&lt;br /&gt;
| 00028F00&lt;br /&gt;
| CTR-N-HSH?&lt;br /&gt;
| SAFE_MODE [[System Settings#System Updater|System Updater]] (mset)&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[6.0.0-11|v2049]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[6.0.0-11|v2050]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| [[4.0.0-7|v1]], [[6.0.0-11|v1026]]&lt;br /&gt;
| [[4.0.0-7|v1]]&lt;br /&gt;
| [[4.1.0-8|v1]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00023000&lt;br /&gt;
| 00024000&lt;br /&gt;
| 00025000&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| (Variable?)&lt;br /&gt;
| Promotional video&lt;br /&gt;
| [[1.1.0-1|v2]], [[2.0.0-2|v2048]]&lt;br /&gt;
| [[1.1.0-1|v&amp;lt;unknown&amp;gt;]], [[2.0.0-2|v2048]]&lt;br /&gt;
| [[1.1.0-1|v0]], [[2.0.0-2|v2048]]&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0002BF00&lt;br /&gt;
| 0002C000&lt;br /&gt;
| 0002C100&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| CTR-N-HAF?&lt;br /&gt;
| Nintendo Network ID Settings (act)&lt;br /&gt;
| [[7.0.0-13|v14]], [[7.2.0-17|v1029]], [[9.0.0-20|v2051]], [[9.3.0-21|v3072]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 20023100&lt;br /&gt;
| 20024100&lt;br /&gt;
| 20025100&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| CTR-N-HAJ?&lt;br /&gt;
| [[microSD Management]] (&#039;mcopy&#039;) ([[New_3DS]]-only)&lt;br /&gt;
| [[8.1.0-0_New3DS|v8]], [[9.0.0-20|v1024]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v5]]&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Available&lt;br /&gt;
|-&lt;br /&gt;
| 2002C800&lt;br /&gt;
| 2002CF00&lt;br /&gt;
| 2002D000&lt;br /&gt;
| N/A&lt;br /&gt;
| 2002D700&lt;br /&gt;
| N/A&lt;br /&gt;
| CTR-P-CTAP&lt;br /&gt;
| [[New_3DS]]-only, currently stubbed. &amp;quot;HOME menu/menu&amp;quot;.&lt;br /&gt;
| [[8.1.0-0_New3DS|v2]], [[9.0.0-20|v18]], [[9.3.0-21|v34]], [[9.6.0-24|v50]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v1]], [[9.3.0-21|v17]], [[9.6.0-24|v34]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v1]], [[9.3.0-21|v18]], [[9.6.0-24|v33]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v2]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 2002C900&lt;br /&gt;
| 2002D100&lt;br /&gt;
| 2002D200&lt;br /&gt;
| N/A&lt;br /&gt;
| 2002D800&lt;br /&gt;
| N/A&lt;br /&gt;
| CTR-P-CTAP&lt;br /&gt;
| [[New_3DS]]-only, currently stubbed. &amp;quot;Friends list/friend&amp;quot;.&lt;br /&gt;
| [[8.1.0-0_New3DS|v1]]&lt;br /&gt;
| Same as JPN.&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.3.0-21|v16]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v2]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 2002CA00&lt;br /&gt;
| 2002D300&lt;br /&gt;
| 2002D400&lt;br /&gt;
| N/A&lt;br /&gt;
| 2002D900&lt;br /&gt;
| N/A&lt;br /&gt;
| CTR-P-CTAP&lt;br /&gt;
| [[New_3DS]]-only, currently stubbed. &amp;quot;Notifications/newslist&amp;quot;.&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], v1([[Home_Menu|JPN-only]] Oct 2, 2014 &amp;quot;sysupdate&amp;quot;, actually uploaded on 09-29-14. Identical to v0, same TMDs besides title-versions)&lt;br /&gt;
| [[8.1.0-0_New3DS|v2]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v2]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 2002CB00&lt;br /&gt;
| 2002D500&lt;br /&gt;
| 2002D600&lt;br /&gt;
| N/A&lt;br /&gt;
| 2002DA00&lt;br /&gt;
| N/A&lt;br /&gt;
| CTR-P-CTAP&lt;br /&gt;
| [[New_3DS]]-only, currently stubbed. &amp;quot;Game notes/cherry&amp;quot;.&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.0.0-20|v1]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v2]]&lt;br /&gt;
| Same as EUR.&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v1]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;act&amp;quot; application seems to use a web browser with webkit?&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== 0004001B - [[NCCH#CFA|System Data Archives]] ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00010002&lt;br /&gt;
| [[ClCertA]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 00010702&lt;br /&gt;
| [[NS CFA]]&lt;br /&gt;
| [[3.0.0-5|v0]], [[6.0.0-11|v1028]], [[6.3.0-12|v2048]], [[7.0.0-13|v3073]], [[9.0.0-20|v4096]](also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
| 00010802&lt;br /&gt;
| This CFA only contains a 1-byte &amp;quot;dummy.txt&amp;quot; in the RomFS, which contains &#039;0&#039;.&lt;br /&gt;
| [[6.3.0-12|v0]], [[9.5.0-23|v1024]], [[10.5.0-30|v2048]], [[11.0.0-33|v3072]]&lt;br /&gt;
|-&lt;br /&gt;
| 00018002&lt;br /&gt;
| Same contents as 00010802. Starting with [[7.1.0-15]], the &amp;quot;dummy.txt&amp;quot; file was removed from RomFS: this CFA RomFS now contains web-browser data(similar to 00018102) for NNID / networking, etc.&lt;br /&gt;
| [[7.0.0-13|v14]], [[7.1.0-15|v1025]], [[7.2.0-17|v2055]], [[9.0.0-20|v3078]], [[9.3.0-21|v4096]], [[9.6.0-24|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 00018102&lt;br /&gt;
| This contains local web-browser data(html/js, gfx, etc) for the Miiverse Offline-mode.&lt;br /&gt;
| [[7.0.0-13|v11]], [[9.0.0-20|v1025]](also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
| 00018202&lt;br /&gt;
| This contains the webkit/OSS [[CRO0|CROs]] used with the Miiverse applet and the &amp;quot;act&amp;quot; application.&lt;br /&gt;
| [[7.0.0-13|v7]], [[8.1.0-0_New3DS|v1026]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v2050]]&lt;br /&gt;
|-&lt;br /&gt;
| 00019002&lt;br /&gt;
| [[Fangate_updater]]&lt;br /&gt;
| [[9.3.0-21|v2]], [[9.6.0-24|v1026]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00040030 - Applets===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  JPN TitleIDLow&lt;br /&gt;
!  USA TitleIDLow&lt;br /&gt;
!  EUR TitleIDLow&lt;br /&gt;
!  CHN TitleIDLow&lt;br /&gt;
!  KOR TitleIDLow&lt;br /&gt;
!  TWN TitleIDLow&lt;br /&gt;
!  [[Product code]]&lt;br /&gt;
!  Description&lt;br /&gt;
!  JPN Versions&lt;br /&gt;
!  USA Versions&lt;br /&gt;
!  EUR Versions&lt;br /&gt;
|-&lt;br /&gt;
|colspan=6| 00008102&lt;br /&gt;
| CTR-P-CTAP&lt;br /&gt;
| [[NS#Alternate menu|Test Menu]] (Demo1)&lt;br /&gt;
|colspan=3| ..., v64, ..., v27648&lt;br /&gt;
|-&lt;br /&gt;
| 00008202&lt;br /&gt;
| 00008F02&lt;br /&gt;
| 00009802&lt;br /&gt;
| 0000A102&lt;br /&gt;
| 0000A902&lt;br /&gt;
| 0000B102&lt;br /&gt;
| CTR-P-HMM?&lt;br /&gt;
| [[Home Menu]] (menu)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[2.1.0-3|v2049]], [[2.2.0-X|v3075]], [[3.0.0-5|v4111]], [[4.0.0-7|v5131]], [[4.2.0-9|v6146]], [[5.0.0-11|v7172]], [[6.0.0-11|v8198]], [[7.0.0-13|v9230]], [[8.1.0-0_New3DS|v10250]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v13313]], [[9.1.0-20J|v14336]], [[9.2.0-20|v15360]], [[9.3.0-21|v16402]], [[9.4.0-21|v17408]], [[9.5.0-22|v18432]], [[9.6.0-24|v19476]], [[9.7.0-25|v20487]], [[9.8.0-25|v22528]], [[10.1.0-27|v23552]], [[10.2.0-28|v24576]], [[10.3.0-28|v25600]], [[10.4.0-29|v26626]], [[10.6.0-31|v27648]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[2.1.0-3|v2049]], [[2.2.0-X|v3075]], [[3.0.0-5|v4111]], [[4.0.0-7|v5131]], [[4.2.0-9|v6146]], [[5.0.0-11|v7172]], [[6.0.0-11|v8198]], [[7.0.0-13|v9230]], [[9.0.0-20|v11272]], [[9.2.0-20|v12288]], [[9.3.0-21|v13330]], [[9.4.0-21|v14336]], [[9.5.0-22|v15360]], [[9.6.0-24|v16404]], [[9.7.0-25|v17415]], [[9.8.0-25|v19456]], [[9.9.0-26|v20480]], [[10.1.0-27|v21504]], [[10.2.0-28|v22528]], [[10.3.0-28|v23552]], [[10.4.0-29|v24578]], [[10.6.0-31|v25600]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[2.1.0-3|v2049]], [[2.2.0-X|v3075]], [[3.0.0-5|v4111]], [[4.0.0-7|v5131]], [[4.2.0-9|v6146]], [[5.0.0-11|v7172]], [[6.0.0-11|v8198]], [[7.0.0-13|v9230]], [[9.0.0-20|v11272]], [[9.2.0-20|v12288]], [[9.3.0-21|v13330]], [[9.4.0-21|v14336]], [[9.5.0-22|v15360]], [[9.6.0-24|v16404]], [[9.7.0-25|v17415]], [[9.8.0-25|v19456]], [[10.1.0-27|v20480]], [[10.2.0-28|v21504]], [[10.3.0-28|v22528]], [[10.4.0-29|v23554]], [[10.6.0-31|v24576]]&lt;br /&gt;
|-&lt;br /&gt;
| 00008402&lt;br /&gt;
| 00009002&lt;br /&gt;
| 00009902&lt;br /&gt;
| 0000A202&lt;br /&gt;
| 0000AA02&lt;br /&gt;
| 0000B202&lt;br /&gt;
| CTR-N-HCS?&lt;br /&gt;
| Camera applet used by Home-menu (CtrApp)&lt;br /&gt;
|colspan=3| v0, v1036, [[9.0.0-20|v2049]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
| 00008502&lt;br /&gt;
| 00009102&lt;br /&gt;
| 00009A02&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| Not available on CDN&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 00008602&lt;br /&gt;
| 00009202&lt;br /&gt;
| 00009B02&lt;br /&gt;
| 0000A402&lt;br /&gt;
| 0000AC02&lt;br /&gt;
| 0000B402&lt;br /&gt;
| &lt;br /&gt;
| Instruction Manual, applet for displaying instruction manuals&lt;br /&gt;
|colspan=3| v0, v1026, v2048, v3072, [[5.0.0-11|v4097]], [[9.0.0-20|v5120]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
| 00008702&lt;br /&gt;
| 00009302&lt;br /&gt;
| 00009C02&lt;br /&gt;
| 0000A502&lt;br /&gt;
| 0000AD02&lt;br /&gt;
| 0000B502&lt;br /&gt;
| CTR-N-HGM?&lt;br /&gt;
| Game Notes (Cherry)&lt;br /&gt;
|colspan=3| v0, v1026, v2049, [[5.0.0-11|v3073]], [[9.0.0-20|v4096]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
| 00008802&lt;br /&gt;
| 00009402&lt;br /&gt;
| 00009D02&lt;br /&gt;
| 0000A602&lt;br /&gt;
| 0000AE02&lt;br /&gt;
| 0000B602&lt;br /&gt;
| &lt;br /&gt;
| [[Internet Browser]] (spider)&lt;br /&gt;
|colspan=3| [[2.0.0-2|v6]], [[2.1.0-4|v1024]], [[4.0.0-7|v2050]], [[5.0.0-11|v3074 (EUR)/v3075(USA,JAP)]], [[7.0.0-13|v3088]], [[7.1.0-16|v4096]], [[9.5.0-23|v5121]], [[9.9.0-26|v6149]], [[10.2.0-28|v7168]], [[10.6.0-31|v8192]], [[10.7.0-32|v9232]]&lt;br /&gt;
|-&lt;br /&gt;
| 20008802&lt;br /&gt;
| 20009402&lt;br /&gt;
| 20009D02&lt;br /&gt;
| ?&lt;br /&gt;
| 2000AE02&lt;br /&gt;
| N/A&lt;br /&gt;
| CTR-N-HBR?&lt;br /&gt;
| [[New 3DS]] [[Internet Browser]] (SKATER)&lt;br /&gt;
|colspan=3| [[8.1.0-0_New3DS|v10]], [[9.3.0-21|v1027]], [[9.6.0-24|v2051]], [[9.9.0-26|v3077]], [[10.2.0-28|v4096]], [[10.4.0-29|v5121]], [[10.6.0-31|v6144]], [[10.7.0-32|v7184]]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=6| 00008A02&lt;br /&gt;
| &lt;br /&gt;
| Fatal error viewer ([[ErrDisp]])&lt;br /&gt;
|colspan=3| v0, v1025, [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5121]], [[8.0.0-18|v6144]], [[9.0.0-20|v7168]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
|colspan=6| 00008A03&lt;br /&gt;
| &lt;br /&gt;
| SAFE_MODE [[ErrDisp]]&lt;br /&gt;
|colspan=3| v0&lt;br /&gt;
|-&lt;br /&gt;
| 20008A03&lt;br /&gt;
| 20008A03&lt;br /&gt;
| 20008A03&lt;br /&gt;
| ?&lt;br /&gt;
| 20008A03&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[ErrDisp]]&lt;br /&gt;
|colspan=3| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00008D02&lt;br /&gt;
| 00009602&lt;br /&gt;
| 00009F02&lt;br /&gt;
| 0000A702&lt;br /&gt;
| 0000AF02&lt;br /&gt;
| 0000B702&lt;br /&gt;
| CTR-N-HFR?&lt;br /&gt;
| Friend List (friend)&lt;br /&gt;
|colspan=3| v0, v1026, [[2.2.0-X|v2051]], v3082, v4099, [[7.0.0-13|v5120]], [[9.0.0-20|v6144]](Also for [[8.1.0-0_New3DS]]) (EUR v6, v1024, v3082, v4099, [[7.0.0-13|v5120]], [[9.0.0-20|v6144]])&lt;br /&gt;
|-&lt;br /&gt;
| 00008E02&lt;br /&gt;
| 00009702&lt;br /&gt;
| 0000A002&lt;br /&gt;
| 0000A802&lt;br /&gt;
| 0000B002&lt;br /&gt;
| 0000B802&lt;br /&gt;
| CTR-N-HCR?&lt;br /&gt;
| Notifications (newslist)&lt;br /&gt;
|colspan=3| v0, v1029, v2054, v3075, [[9.0.0-20|v4097]] (EUR v6, v1024, v2054, v3075, [[9.0.0-20|v4097]]) (JPN: ..., [[8.1.0-0_New3DS|v4096]], [[9.0.0-20|v5121]])&lt;br /&gt;
|-&lt;br /&gt;
| 0000C002&lt;br /&gt;
| 0000C802&lt;br /&gt;
| 0000D002&lt;br /&gt;
| 0000D802&lt;br /&gt;
| 0000DE02&lt;br /&gt;
| 0000E402&lt;br /&gt;
| CTR-N-HKY?&lt;br /&gt;
| Software Keyboard (swkbd)&lt;br /&gt;
|colspan=3| v0, v1026, v2053, [[7.0.0-13|v3072]], [[9.0.0-20|v4096]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
| 0000C003&lt;br /&gt;
| 0000C803&lt;br /&gt;
| 0000D003&lt;br /&gt;
| 0000D803&lt;br /&gt;
| 0000DE03&lt;br /&gt;
| 0000E403&lt;br /&gt;
| &lt;br /&gt;
| SAFE_MODE Software Keyboard (swkbd)&lt;br /&gt;
|colspan=3| v0&lt;br /&gt;
|-&lt;br /&gt;
| 2000C003&lt;br /&gt;
| 2000C803&lt;br /&gt;
| 2000D003&lt;br /&gt;
| ?&lt;br /&gt;
| 2000DE03&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| [[New 3DS]] SAFE_MODE Software Keyboard (swkbd)&lt;br /&gt;
| [[8.1.0-0_New3DS|v1024]]&lt;br /&gt;
|colspan=2|[[9.0.0-20|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 0000C102&lt;br /&gt;
| 0000C902&lt;br /&gt;
| 0000D102&lt;br /&gt;
| 0000D902&lt;br /&gt;
| 0000DF02&lt;br /&gt;
| 0000E502&lt;br /&gt;
| &lt;br /&gt;
| Mii picker (appletEd)&lt;br /&gt;
|colspan=3| v0, v1026, [[9.0.0-20|v2048]](Also for [[8.1.0-0_New3DS]]), [[9.3.0-21|v3077]]&lt;br /&gt;
|-&lt;br /&gt;
| 0000C302&lt;br /&gt;
| 0000CB02&lt;br /&gt;
| 0000D302&lt;br /&gt;
| 0000DB02&lt;br /&gt;
| 0000E102&lt;br /&gt;
| 0000E702&lt;br /&gt;
| &lt;br /&gt;
| Picture picker (PNOTE_AP)&lt;br /&gt;
|colspan=3| v0, v1024, [[8.1.0-0_New3DS|v2049]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v3075]], [[9.3.0-21|v4096]]&lt;br /&gt;
|-&lt;br /&gt;
| 0000C402&lt;br /&gt;
| 0000CC02&lt;br /&gt;
| 0000D402&lt;br /&gt;
| 0000DC02&lt;br /&gt;
| 0000E202&lt;br /&gt;
| 0000E802&lt;br /&gt;
| &lt;br /&gt;
| [[Nintendo 3DS Sound|Voice memo]] picker (SNOTE_AP)&lt;br /&gt;
|colspan=3| v0, v3, [[8.0.0-18|v1026]], [[9.0.0-20|v2048]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
|colspan=3| 0000C502&lt;br /&gt;
|colspan=3| 0000CF02&lt;br /&gt;
| &lt;br /&gt;
| Non-critical (online, etc) error display (error)&lt;br /&gt;
|colspan=3| v0, v1026, v2053, v3074, [[8.1.0-0_New3DS|v4096]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v5128]], [[9.6.0-24|v6145]]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=3| 0000C503&lt;br /&gt;
|colspan=3| 0000CF03&lt;br /&gt;
| &lt;br /&gt;
| SAFE_MODE error applet&lt;br /&gt;
|colspan=3| v0&lt;br /&gt;
|-&lt;br /&gt;
| 2000C503&lt;br /&gt;
| 2000C503&lt;br /&gt;
| 2000C503&lt;br /&gt;
| ?&lt;br /&gt;
| 2000CF03&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| [[New 3DS]] SAFE_MODE error applet&lt;br /&gt;
|colspan=3| [[8.1.0-0_New3DS|v1024]]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=3| 0000CD02&lt;br /&gt;
|colspan=3| 0000D502&lt;br /&gt;
| &lt;br /&gt;
| [[Circle Pad Pro]] test/calibration applet (extrapad)&lt;br /&gt;
|colspan=3| v1, v1026, [[8.1.0-0_New3DS|v2048]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v3073]]&lt;br /&gt;
|-&lt;br /&gt;
| 0000C602&lt;br /&gt;
| 0000CE02&lt;br /&gt;
| 0000D602&lt;br /&gt;
| N/A&lt;br /&gt;
| 0000E302&lt;br /&gt;
| 0000E902&lt;br /&gt;
| CTR-N-HAA?&lt;br /&gt;
| eShop applet, used by applications for accessing the eShop, for DLC/etc. Also used by the eShop application itself. (mint)&lt;br /&gt;
|colspan=3| v5, v1028, [[4.2.0-9|v2050]], [[5.0.0-11|v3072]], [[7.0.0-13|v4109]], [[7.2.0-17|v5125]](v5123 for JPN), [[8.0.0-18|v6145]], [[8.1.0-0_New3DS|v7168]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v8200]], [[9.3.0-21|v9224]], [[9.6.0-24|v10247]], [[9.8.0-25|v11264]], [[10.0.0-27|v12293]], [[10.1.0-27|v13312]], [[10.3.0-28|v14337]], [[10.4.0-29|v15360]], [[10.7.0-32|v16384]]&lt;br /&gt;
|-&lt;br /&gt;
| 0000BC02&lt;br /&gt;
| 0000BD02&lt;br /&gt;
| 0000BE02&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| CTR-N-HAE?&lt;br /&gt;
| Miiverse (olv)&lt;br /&gt;
|colspan=3| [[7.0.0-13|v14]], [[7.2.0-17|v1024]], [[9.0.0-20|v2048]](Also for [[8.1.0-0_New3DS]]), [[9.3.0-21|v3072]], [[9.6.0-24|v4096]]&lt;br /&gt;
|-&lt;br /&gt;
| 0000F602&lt;br /&gt;
| 0000F602&lt;br /&gt;
| 0000F602&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
| Likely the &amp;quot;system library&amp;quot; for Miiverse (memolib)&lt;br /&gt;
|colspan=3| [[7.0.0-13|v5]], [[8.1.0-0_New3DS|v1024]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v2050]], [[9.3.0-21|v3072]]&lt;br /&gt;
|-&lt;br /&gt;
| 00008302&lt;br /&gt;
| 00008B02&lt;br /&gt;
| 0000BA02&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| CTR-N-HAH?&lt;br /&gt;
| In-app Miiverse-posting applet (solv3)&lt;br /&gt;
|colspan=3| [[9.0.0-20|v6]]&lt;br /&gt;
|-&lt;br /&gt;
| 00009502&lt;br /&gt;
| 00009E02&lt;br /&gt;
| 0000B902&lt;br /&gt;
| ?&lt;br /&gt;
| 00008C02&lt;br /&gt;
| ?&lt;br /&gt;
| CTR-N-HA3?&lt;br /&gt;
| Cabinet ([[amiibo Settings]])&lt;br /&gt;
|colspan=3| [[9.3.0-21|v7]], [[9.6.0-24|v1031]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Most of these processes are applets, see [[NS_and_APT_Services|here]] for details.&lt;br /&gt;
&lt;br /&gt;
All of the above processes use the &amp;quot;SYSTEM&amp;quot; [[SVC|memory-region]].&lt;br /&gt;
&lt;br /&gt;
The ExeFS for Home Menu is exactly the same for USA/EUR/JPN.&lt;br /&gt;
&lt;br /&gt;
The Miiverse applet seems to use a web browser with webkit.&lt;br /&gt;
&lt;br /&gt;
=== 0004009B - [[NCCH#CFA|System Data Archives]] (Shared Archives) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  JPN TitleIDLow&lt;br /&gt;
!  USA TitleIDLow&lt;br /&gt;
!  EUR TitleIDLow&lt;br /&gt;
!  KOR TitleIDLow&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00010202&lt;br /&gt;
| 00010202&lt;br /&gt;
| 00010202&lt;br /&gt;
| 00010202&lt;br /&gt;
| Probably Mii-related, contains &amp;quot;CFL_Res.dat&amp;quot; in the RomFS.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
|&lt;br /&gt;
| Only exists for dev-units.&lt;br /&gt;
| v0, v2052&lt;br /&gt;
|-&lt;br /&gt;
| 00010402&lt;br /&gt;
| 00010402&lt;br /&gt;
| 00010402&lt;br /&gt;
| 00010402&lt;br /&gt;
| Mounted as &amp;quot;area:&amp;quot;, contains Country and Region names&lt;br /&gt;
| v0, v1024, v2050, v3072, [[7.0.0-13|v4098]], [[9.6.0-24|v5122]]&lt;br /&gt;
|-&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
|&lt;br /&gt;
| Only exists for dev-units.&lt;br /&gt;
| v0, v1024, v2048&lt;br /&gt;
|-&lt;br /&gt;
| 00010602&lt;br /&gt;
| 00010602&lt;br /&gt;
| 00010602&lt;br /&gt;
| 00010602&lt;br /&gt;
| Non-Nintendo TLS Root-CA Certificates (RomFS contains files with filename &amp;quot;CACERT_PUBLIC_CA_&amp;lt;val&amp;gt;.der&amp;quot;, where &amp;lt;val&amp;gt; is 5..8)&lt;br /&gt;
| v2, [[10.5.0-30|v1024]]&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011202&lt;br /&gt;
|&lt;br /&gt;
| &amp;quot;NL/NL&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011302&lt;br /&gt;
|&lt;br /&gt;
| &amp;quot;EN/GB&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 00011402&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &amp;quot;EN/US&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011502&lt;br /&gt;
|&lt;br /&gt;
| &amp;quot;FR/FR/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 00011602&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &amp;quot;FR/CA/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011702&lt;br /&gt;
|&lt;br /&gt;
| &amp;quot;DE/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011802&lt;br /&gt;
|&lt;br /&gt;
| &amp;quot;IT/IT&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 00011902&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &amp;quot;JA_small/32&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| 00011A02&lt;br /&gt;
| ?&lt;br /&gt;
| v1&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011B02&lt;br /&gt;
|&lt;br /&gt;
| &amp;quot;PT/PT/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011C02&lt;br /&gt;
|&lt;br /&gt;
| &amp;quot;RU/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 00011D02&lt;br /&gt;
| 00011D02&lt;br /&gt;
|&lt;br /&gt;
| &amp;quot;ES/ES&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 00011E02&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &amp;quot;PT/BR/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 00012202&lt;br /&gt;
| 00012302&lt;br /&gt;
| 00012102&lt;br /&gt;
| 00012502&lt;br /&gt;
| ?contains a lists with error strings&lt;br /&gt;
| v1026, v2053, v3073, [[4.2.0-9|v4096]], [[5.0.0-11|v5120]], [[7.0.0-13|v6149]], [[7.2.0-17|v7168]], [[8.0.0-18|v8192]], [[9.0.0-20|v9218]], [[9.3.0-21|v10242]], [[9.6.0-24|v11269]], [[10.0.0-27|v12289]], [[10.4.0-29|v13312]], [[10.7.0-32|v13313]] (KOR: [[9.6.0-24|v6148]], [[10.0.0-27|v7169]], [[10.3.0-28|v8193]], [[10.4.0-29|v9216]])&lt;br /&gt;
|-&lt;br /&gt;
| 00013202&lt;br /&gt;
| 00013302&lt;br /&gt;
| 00013102&lt;br /&gt;
| 00013502&lt;br /&gt;
| Mounted as &amp;quot;eula:&amp;quot;&lt;br /&gt;
| v0, v1024, v2049 USA: v1024, v2051, [[7.0.0-13|v3074]], [[7.2.0-17|v4100]](EUR-only), [[9.0.0-20|v4099]], [[9.9.0-26|v6144]], [[10.4.0-29|v7168]] (KOR: [[9.7.0-25|v1025]])&lt;br /&gt;
|-&lt;br /&gt;
| 00014002&lt;br /&gt;
| 00014002&lt;br /&gt;
| 00014002&lt;br /&gt;
| 00014002&lt;br /&gt;
| JPN/EUR/USA [[System Font]] (&amp;quot;font:&amp;quot;)&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 00014102&lt;br /&gt;
| 00014102&lt;br /&gt;
| 00014102&lt;br /&gt;
| 00014102&lt;br /&gt;
| CHN [[System Font]] (&amp;quot;font:&amp;quot;)&lt;br /&gt;
| v0, v1024&lt;br /&gt;
|-&lt;br /&gt;
| 00014202&lt;br /&gt;
| 00014202&lt;br /&gt;
| 00014202&lt;br /&gt;
| 00014202&lt;br /&gt;
| KOR [[System Font]] (&amp;quot;font:&amp;quot;)&lt;br /&gt;
| v0, v1024&lt;br /&gt;
|-&lt;br /&gt;
| 00014302&lt;br /&gt;
| 00014302&lt;br /&gt;
| 00014302&lt;br /&gt;
| 00014302&lt;br /&gt;
| TWN [[System Font]] (&amp;quot;font:&amp;quot;)&lt;br /&gt;
| v0, v1024&lt;br /&gt;
|-&lt;br /&gt;
| 00015202&lt;br /&gt;
| 00015302&lt;br /&gt;
| 00015102&lt;br /&gt;
| 00015502&lt;br /&gt;
| Mounted as &amp;quot;rate:&amp;quot;&lt;br /&gt;
| v0 (EUR: v0, v1024) (KOR: v1024)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 000400DB - [[NCCH#CFA|System Data Archives]] ===&lt;br /&gt;
These [[NVer]] titleIDs can be found @ offset 0x320 in every [[CCI]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  EUR TitleIDLow&lt;br /&gt;
!  JPN TitleIDLow&lt;br /&gt;
!  USA TitleIDLow&lt;br /&gt;
!  CHN TitleIDLow&lt;br /&gt;
!  KOR TitleIDLow&lt;br /&gt;
!  TWN TitleIDLow&lt;br /&gt;
!  Description&lt;br /&gt;
!  USA/EUR/JPN Versions&lt;br /&gt;
!  CHN Versions&lt;br /&gt;
!  TWN Versions&lt;br /&gt;
!  KOR Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| NGWord bad word list&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1024]], [[3.0.0-5|v2052]], [[4.0.0-7|v3072]], [[4.3.0-10|v4096]], [[5.0.0-11|v5120]], [[9.0.0-20|v6144]], [[9.3.0-21|v7168]], [[9.6.0-24|v8192]]&lt;br /&gt;
| Same as USA&lt;br /&gt;
| Same as USA&lt;br /&gt;
| Same as USA&lt;br /&gt;
|-&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| [[Nintendo Zone]] hotspot list&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1024]], [[3.0.0-5|v2048]], [[4.0.0-7|v3073]], [[4.3.0-10|v4096]], [[4.4.0-10|v5120]], [[4.5.0-10|v6144]], [[5.0.0-11|v7169]], [[6.0.0-11|v8192]], [[6.2.0-12|v9216]], [[7.0.0-13|v10242]], [[7.2.0-17|v11267]], [[8.0.0-18|v12288]], [[9.0.0-20|v14336]], [[9.3.0-21|v15360]], [[9.6.0-24|v16386]], [[10.0.0-27|v17409]], [[10.4.0-29|18432]]&lt;br /&gt;
| Same as USA&lt;br /&gt;
| Same as USA&lt;br /&gt;
| Same as USA&lt;br /&gt;
|-&lt;br /&gt;
| 00016102&lt;br /&gt;
| 00016202&lt;br /&gt;
| 00016302&lt;br /&gt;
| 00016402&lt;br /&gt;
| 00016502&lt;br /&gt;
| 00016602&lt;br /&gt;
| [[NVer]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v16]], [[2.0.0-2|v32]], [[2.1.0-3|v48]], [[2.1.0-4|v64]], [[3.0.0-5|v80]], [[3.0.0-6|v96]], [[4.0.0-7|v112]],  [[4.1.0-8|v128]], [[4.2.0-9|v144]], [[4.3.0-10|v160]], [[5.0.0-11|v176]], non-USA=[[6.0.0-11|v192]]/USA=[[6.1.0-12U|v192]], [[7.0.0-13|v208]], [[7.1.0-14|v224]], [[7.1.0-15|v240]], [[7.1.0-16|v256]], [[7.2.0-17|v272]], [[8.0.0-18|v288]], [[8.1.0-19|v304]], [[9.0.0-20|v320]], [[9.3.0-21|v336]], [[9.5.0-22|v352]], [[9.5.0-23|v368]], [[9.6.0-24|v384]], [[9.7.0-25|v400]], [[9.9.0-26|v416]], [[10.0.0-27|v432]], [[10.2.0-28|v448]], [[10.4.0-29|v464]], [[10.5.0-30|v480]], [[10.6.0-31|v496]], [[10.7.0-32|v512]], [[11.0.0-33|v528]]&lt;br /&gt;
| [[4.0.0-7|v113]], [[4.2.0-9|v128]], [[5.0.0-11|v129]], [[7.1.0-16|v130]], [[7.2.0-17|v272]], [[9.5.0-23|v131]], [[9.9.0-26|v132]]&lt;br /&gt;
| [[4.1.0-8|v114]], [[4.2.0-9|v133]], [[4.3.0-10|v134]], [[5.0.0-11|v136]], [[7.0.0-13|v144]], [[7.1.0-14|v160]] [[7.1.0-16|v192]], [[7.2.0-17|v272]], [[8.0.0-18|v208]], [[8.1.0-19|v224]], [[9.0.0-20|v240]], [[9.5.0-22|v272]], [[9.5.0-23|v288]], [[9.6.0-24|v304]], [[9.7.0-25|v320]], [[9.9.0-26|v336]], [[10.0.0-27|v352]], [[10.2.0-28|v368]], [[10.4.0-29|v384]], [[10.5.0-30|v400]], [[10.6.0-31|v416]], [[10.7.0-32|v432]], [[11.0.0-33|v448]]&lt;br /&gt;
| [[4.0.0-7|v113]], [[4.1.0-8|v114]], [[4.2.0-9|v133]], [[4.3.0-10|v134]], [[5.0.0-11|v136]], [[7.0.0-13|v160]], [[7.1.0-14|v176]], [[7.1.0-16|v176]], [[7.2.0-17|v272]], [[8.0.0-18|v224]], [[8.1.0-19|v240]], [[9.0.0-20|v256]], [[9.3.0-21|v272]], [[9.5.0-22|v288]], [[9.5.0-23|v304]], [[9.6.0-24|v320]], [[9.7.0-25|v336]], [[9.9.0-26|v352]], [[10.0.0-27|v368]], [[10.2.0-28|v384]], [[10.4.0-29|v400]], [[10.5.0-30|v416]], [[10.6.0-31|v432]], [[10.7.0-32|v448]], [[11.0.0-33|v464]]&lt;br /&gt;
|-&lt;br /&gt;
| 20016102&lt;br /&gt;
| 20016202&lt;br /&gt;
| 20016302&lt;br /&gt;
| N/A&lt;br /&gt;
| 20016502&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]] [[NVer]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.0.0-20|v320]], [[9.3.0-21|v336]], [[9.5.0-22|v352]], [[9.5.0-22|v352]], [[9.5.0-23|v368]], [[9.6.0-24|v384]], [[9.7.0-25|v400]], [[9.9.0-26|v416]], [[10.0.0-27|v432]], [[10.2.0-28|v448]], [[10.4.0-29|v464]], [[10.5.0-30|v480]], [[10.6.0-31|v496]], [[10.7.0-32|v512]], [[11.0.0-33|v528]]&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v320]], [[9.7.0-25|v336]], [[9.9.0-26|v352]], [[10.0.0-27|v368]], [[10.2.0-28|v384]], [[10.4.0-29|v400]], [[10.5.0-30|v416]], [[10.6.0-31|v432]], [[10.7.0-32|v448]], [[11.0.0-33|v464]]&lt;br /&gt;
|-&lt;br /&gt;
| 00017102&lt;br /&gt;
| 00017202&lt;br /&gt;
| 00017302&lt;br /&gt;
| 00017402&lt;br /&gt;
| 00017502&lt;br /&gt;
| 00017602&lt;br /&gt;
| [[CVer]]&lt;br /&gt;
| [[1.0.0-0|v1024]], [[1.1.0-1|v1045]], [[2.0.0-2|v2049]], [[2.1.0-3|v2069]], [[2.2.0-X|v2088]] [[3.0.0-5|v3088]], [[4.0.0-7|v4098]], [[4.1.0-8|v4113]], [[4.2.0-9|v4130]], [[4.3.0-10|v4145]], [[4.4.0-10|v4163]], [[4.5.0-10|v4176]], [[5.0.0-11|v5120]], [[5.1.0-11|v5136]], [[6.0.0-11|v6146]], [[6.1.0-11|v6160]], [[6.2.0-12|v6178]], [[6.3.0-12|v6192]], [[7.0.0-13|v7175]], [[7.1.0-14|v7187]], [[7.2.0-17|v7203]], [[8.0.0-18|v8196]], [[8.1.0-18|v8208]], [[8.1.0-0_New3DS|v8215]](8.1.0-0_New3DS), [[9.0.0-20|v9218]], [[9.1.0-20J|v9232]](JPN-only), [[9.2.0-20|v9248]], [[9.3.0-21|v9264]], [[9.4.0-21|v9280]], [[9.5.0-22|v9296]], [[9.6.0-24|v9319]], [[9.7.0-25|v9328]], [[9.8.0-25|v9344]], [[9.9.0-26|v9360]], [[10.0.0-27|v10240]], [[10.1.0-27|v10256]], [[10.2.0-28|v10272]], [[10.3.0-28|v10288]], [[10.4.0-29|v10304]], [[10.5.0-30|v10320]], [[10.6.0-31|v10336]], [[10.7.0-32|v10352]], [[11.0.0-33|v11264]]&lt;br /&gt;
| [[1.0.0-0|v1024]], [[1.1.0-1|v1045]], [[2.0.0-2|v2049]], [[2.1.0-3|v2069]], [[2.2.0-X|v2088]] [[3.0.0-5|v3088]], [[4.0.0-7|v4098]], [[4.1.0-8|v4113]], [[4.2.0-9|v4130]], [[4.3.0-10|v4145]], [[4.4.0-10|v4163]], [[4.5.0-10|v4176]], [[5.0.0-11|v5120]], [[5.1.0-11|v5136]], [[6.0.0-11|v6146]], [[6.1.0-11|v6160]], [[6.2.0-12|v6178]], [[6.3.0-12|v6192]], [[7.0.0-13|v7175]], [[7.1.0-14|v7187]], [[7.2.0-17|v7203]], [[8.0.0-18|v8196]], [[8.1.0-18|v8208]], [[9.0.0-20|v9217]], [[9.3.0-21|v9264]], [[9.5.0-22|v9296]], [[9.6.0-24|v9319]], [[9.7.0-25|v9328]], [[9.8.0-25|v9344]], [[9.9.0-26|v9360]], [[10.0.0-27|v10240]], [[10.2.0-28|v10272]], [[10.4.0-29|v10304]], [[10.5.0-30|v10320]], [[10.6.0-31|v10336]], [[10.7.0-32|v10352]], [[11.0.0-33|v11264]]&lt;br /&gt;
| Same as CHN&lt;br /&gt;
| Same as CHN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00040130 - System [[Services API|Modules]] ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00001002&lt;br /&gt;
| [[Services|sm]] (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001003&lt;br /&gt;
| SAFE_MODE [[Services|sm]] (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001102&lt;br /&gt;
| [[Filesystem services‎|fs]] (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001103&lt;br /&gt;
| SAFE_MODE [[Filesystem services‎|fs]] (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001202&lt;br /&gt;
| [[Process Manager Services|pm]] (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001203&lt;br /&gt;
| SAFE_MODE [[Process Manager Services|pm]] (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001302&lt;br /&gt;
| [[Loader Services‎|loader]]  (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001303&lt;br /&gt;
| SAFE_MODE [[Loader Services‎|loader]]  (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001402&lt;br /&gt;
| [[PXI Services‎|pxi]]  (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001403&lt;br /&gt;
| SAFE_MODE [[PXI Services‎|pxi]]  (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001502&lt;br /&gt;
| [[Application Manager Services|AM]] ( Application Manager )&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[3.0.0-5|v2053]], [[4.0.0-7|v3072]], [[5.0.0-11|v4098]], [[6.0.0-11|v5120]], [[8.0.0-18|v6148]], [[8.1.0-0_New3DS|v7168]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v8192]], [[10.0.0-27|v9217]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001503&lt;br /&gt;
| SAFE_MODE [[Application Manager Services|AM]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001503&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Application Manager Services|AM]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001602&lt;br /&gt;
| [[Camera Services|Camera]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[3.0.0-5|v2048]], [[4.0.0-7|v3074]], [[5.0.0-11|v4098]], [[6.0.0-11|v5120]], [[7.1.0-14|v6146]], [[8.0.0-18|v7172]], [[9.0.0-20|v9216]], [[9.3.0-21|v10242]], [[10.0.0-27|v11265]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001602&lt;br /&gt;
| [[New_3DS]] [[Camera Services|Camera]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8200]], [[9.0.0-20|v9218]], [[9.3.0-21|v10242]], [[10.0.0-27|v11265]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001702&lt;br /&gt;
| [[Config Services|Config]] (cfg)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1024]], [[3.0.0-5|v2049]], v3072, [[4.0.0-7|v4096]], [[5.0.0-11|v5122]], [[6.0.0-11|v6145]], [[6.1.0-11|v7168]], [[7.0.0-13|v8196]], [[7.2.0-17|v9220]], [[8.0.0-18|v10243]], [[8.1.0-0_New3DS|v11265]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v12290]], [[9.3.0-21|v13315]], [[9.6.0-24|v14342]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001703&lt;br /&gt;
| SAFE_MODE [[Config Services|Config]] (cfg)&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001703&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Config Services|Config]] (cfg)&lt;br /&gt;
| [[8.1.0-0_New3DS|v11265]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001802&lt;br /&gt;
| [[Codec Services|Codec]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[5.0.0-11|v4098]], [[7.0.0-13|v5120]], [[8.0.0-18|v6144]], [[9.0.0-20|v7168]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
| 00001803&lt;br /&gt;
| SAFE_MODE [[Codec Services|Codec]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001803&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Codec Services|Codec]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001902&lt;br /&gt;
| dmnt, debugger sysmodule. This use devunit-only HIO for devunit&amp;lt;&amp;gt;pc comms. This only exists for development units(launched by NS during startup depending on certain [[Configuration_Memory]] fields&#039; values). This is installed at the [[Factory_Setup|factory]], then later deleted at the factory on retail units.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00001A02&lt;br /&gt;
| [[DSP Services|DSP]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[4.0.0-7|v2048]], [[5.0.0-11|v3074]], [[6.0.0-11|v4096]], [[8.0.0-18|v5120]], [[9.7.0-25|v6145]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001A03&lt;br /&gt;
| SAFE_MODE [[DSP Services|DSP]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001A03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[DSP Services|DSP]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v6145]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001B02&lt;br /&gt;
| [[GPIO Services|GPIO]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[5.0.0-11|v1025]], [[8.0.0-18|v2048]], [[9.5.0-22|v3073]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001B03&lt;br /&gt;
| SAFE_MODE [[GPIO Services|GPIO]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001B03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[GPIO Services|GPIO]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v3073]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001C02&lt;br /&gt;
| [[GSP Services|GSP]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1040]], [[2.0.0-2|v2049]], [[3.0.0-5|v3075]], v4098, [[4.0.0-7|v5120]], [[5.0.0-11|v6145]], [[6.0.0-11|v7168]], [[8.0.0-18|v8196]], [[9.0.0-20|v10240]], [[9.3.0-21|v11264]], [[9.6.0-24|v12294]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001C02&lt;br /&gt;
| [[New_3DS]] [[GSP Services|GSP]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v10243]], [[9.3.0-21|v11267]], [[9.6.0-24|v12294]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001C03&lt;br /&gt;
| SAFE_MODE [[GSP Services|GSP]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001C03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[GSP Services|GSP]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v9217]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001D02&lt;br /&gt;
| [[HID Services|HID]] (Human Interface Devices) &lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5121]], [[7.2.0-17|v6148]], [[8.0.0-18|v7168]], [[8.1.0-0_New3DS|v8192]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v9216]], [[9.3.0-21|v10240]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001D03&lt;br /&gt;
| SAFE_MODE [[HID Services|HID]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001D03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[HID Services|HID]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8193]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001E02&lt;br /&gt;
| [[I2C Services|i2c]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[5.0.0-11|v2049]], [[8.0.0-18|v3076]], [[9.3.0-21|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001E02&lt;br /&gt;
| [[New_3DS]] [[I2C Services|i2c]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4096]], [[9.3.0-21|v5121]]&lt;br /&gt;
|- &lt;br /&gt;
| 00001E03&lt;br /&gt;
| SAFE_MODE [[I2C Services|i2c]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|- &lt;br /&gt;
| 20001E03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[I2C Services|i2c]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4097]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001F02&lt;br /&gt;
| [[MCU Services|MCU]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.1.0-3|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4102]], [[5.0.0-11|v5122]], [[6.0.0-11|v6145]], [[7.0.0-13|v7168]], [[8.0.0-18|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001F02&lt;br /&gt;
| [[New_3DS]] [[MCU Services|MCU]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001F03&lt;br /&gt;
| SAFE_MODE [[MCU Services|MCU]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001F03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[MCU Services|MCU]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v9217]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002002&lt;br /&gt;
| [[MIC Services|MIC]] (Microphone)&lt;br /&gt;
| [[1.0.0-0|v0]], [[5.0.0-11|v1025]], [[8.0.0-18|v2048]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002102&lt;br /&gt;
| [[PDN Services|PDN]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[5.0.0-11|v1025]], [[8.0.0-18|v2048]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002103&lt;br /&gt;
| SAFE_MODE [[PDN Services|PDN]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002103&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[PDN Services|PDN]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v3073]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002202&lt;br /&gt;
| [[PTM Services|PTM]] (Play time, pedometer, and battery manager)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3075]], v4096, [[4.0.0-7|v5120]], [[5.0.0-11|v6146]], [[6.0.0-11|v7168]], [[7.0.0-13|v8192]], [[8.0.0-18|v9219]], [[9.6.0-24|v11264]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002202&lt;br /&gt;
| [[New_3DS]] [[PTM Services|PTM]] (Play time, pedometer, and battery manager)&lt;br /&gt;
| [[8.1.0-0_New3DS|v10240]], [[9.6.0-24|v11264]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002203&lt;br /&gt;
| SAFE_MODE [[PTM Services|PTM]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002203&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[PTM Services|PTM]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v10241]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002302&lt;br /&gt;
| [[SPI Services|spi]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[5.0.0-11|v2049]], [[8.0.0-18|v3072]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002302&lt;br /&gt;
| [[New_3DS]] [[SPI Services|spi]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4096]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002303&lt;br /&gt;
| SAFE_MODE [[SPI Services|spi]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002303&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[SPI Services|spi]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4097]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002402&lt;br /&gt;
| [[AC Services|AC]] (Network manager)&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1024]], [[2.0.0-2|v2052]], [[2.1.0-3|v3072]], [[3.0.0-5|v4101]], [[5.0.0-11|v5122]], [[7.0.0-13|v6145]], [[8.0.0-18|v7172]], [[9.0.0-20|v8192]](Also for [[8.1.0-0_New3DS]]), [[9.3.0-21|v9216]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002403&lt;br /&gt;
| SAFE_MODE [[AC Services|AC]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002403&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[AC Services|AC]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8193]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002602&lt;br /&gt;
| [[CECD Services|Cecd]] (StreetPass)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3073]], [[4.0.0-7|v4097]], [[5.0.0-11|v5122]], [[6.0.0-11|v6144]], [[6.2.0-12|v7170]], [[7.0.0-13|v8193]], [[8.0.0-18|v9216]], [[9.0.0-20|v10240]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002702&lt;br /&gt;
| [[CSND Services|CSND]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[4.0.0-7|v2048]], [[5.0.0-11|v3073]], [[8.0.0-18|v4096]], [[9.0.0-20|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002703&lt;br /&gt;
| SAFE_MODE [[CSND Services|CSND]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002703&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[CSND Services|CSND]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v5121]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002802&lt;br /&gt;
| [[DLP Services|DLP]] ([[Download Play]])&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3078]], [[5.0.0-11|v4099]], [[8.0.0-18|v5123]], [[9.0.0-20|v6145]](Also for [[8.1.0-0_New3DS]]), [[9.6.0-24|v7174]], [[10.0.0-27|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002902&lt;br /&gt;
| [[HTTP Services|HTTP]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.1.0-3|v2049]], [[2.2.0-X|v3072]], [[3.0.0-5|v4099]], [[4.0.0-7|v5122]], [[5.0.0-11|v6145]], [[7.0.0-13|v7171]], [[7.1.0-14|v8192]], [[8.0.0-18|v9220]], [[8.1.0-18|v10245]], [[8.1.0-0_New3DS|v11264]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v12288]], [[9.6.0-24|v13318]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002903&lt;br /&gt;
| SAFE_MODE [[HTTP Services|HTTP]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002903&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[HTTP Services|HTTP]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v10241]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002A02&lt;br /&gt;
| [[MP Services|MP]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[5.0.0-11|v1025]], [[8.0.0-18|v2048]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002A03&lt;br /&gt;
| SAFE_MODE [[MP Services|MP]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002B02&lt;br /&gt;
| [[NDM Services|NDM]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[3.0.0-5|v2049]], [[4.0.0-7|v3072]], [[5.0.0-11|v4098]], [[8.0.0-18|v5124]], [[8.1.0-0_New3DS|v6144]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002C02&lt;br /&gt;
| [[NIM Services|NIM]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1028]], [[3.0.0-5|v2055]], [[4.0.0-7|v3074]], [[5.0.0-11|v4100]], [[6.0.0-11|v5120]], [[7.0.0-13|v6148]], [[7.2.0-17|v7174]], [[8.0.0-18|v8195]], [[8.1.0-0_New3DS|v9217]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v10249]], [[9.3.0-21|v11267]], [[9.6.0-24|v12296]], [[10.0.0-27|v13313]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002C03&lt;br /&gt;
| SAFE_MODE [[NIM Services|NIM]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002C03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[NIM Services|NIM]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v9217]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002D02&lt;br /&gt;
| [[NWM Services|NWM]] ( Low-level wifi manager )&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1024]], [[2.0.0-2|v2052]], [[2.2.0-X|v3072]], [[3.0.0-5|v4101]], [[4.0.0-7|v5120]], [[5.0.0-11|v6148]], [[6.0.0-11|v7169]], [[7.2.0-17|v8196]], [[8.0.0-18|v9216]], [[9.0.0-20|v10240]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002D03&lt;br /&gt;
| SAFE_MODE [[NWM Services|NWM]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[6.0.0-11|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002D03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[NWM Services|NWM]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v10241]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002E02&lt;br /&gt;
| [[Socket Services|Sockets]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1024]], [[2.0.0-2|v2053]], [[3.0.0-5|v3075]], [[4.0.0-7|v4096]], [[5.0.0-11|v5121]], [[8.0.0-18|v6144]], [[9.0.0-20|v7168]], [[10.6.0-31|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002E03&lt;br /&gt;
| SAFE_MODE [[Socket Services|Sockets]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002E03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Socket Services|Sockets]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002F02&lt;br /&gt;
| [[SSL Services|SSL]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1024]], [[2.1.0-3|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5122]], [[8.0.0-18|v6144]], [[9.0.0-20|v7168]], [[9.6.0-24|v8198]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002F03&lt;br /&gt;
| SAFE_MODE [[SSL Services|SSL]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002F03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[SSL Services|SSL]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003000&lt;br /&gt;
| [[FIRM|Process9]] (in SAFE_MODE and normal NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00003102&lt;br /&gt;
| [[Process Services‎|PS]] ( Process Manager )&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[5.0.0-11|v2049]], [[6.0.0-11|v3072]], [[8.0.0-18|v4096]], [[9.0.0-20|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003103&lt;br /&gt;
| SAFE_MODE [[Process Services‎|PS]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20003103&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Process Services‎|PS]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v5121]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003202&lt;br /&gt;
| [[Friend Services‎|friends]] (Friends list)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1028]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5122]], [[7.0.0-13|v6145]], [[8.0.0-18|v7172]], [[9.0.0-20|v8192]](Also for [[8.1.0-0_New3DS]]), [[10.5.0-30|v9216]], [[10.7.0-32|v10240]], [[11.0.0-33|v11264]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003203&lt;br /&gt;
| SAFE_MODE [[Friend Services‎|friends]] (Friends list)&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20003203&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Friend Services‎|friends]] (Friends list)&lt;br /&gt;
| [[8.1.0-0_New3DS|v8193]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003302&lt;br /&gt;
| [[IR Services‎|IR]] (Infrared)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5121]], [[8.0.0-18|v6148]], [[8.1.0-0_New3DS|v7170]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v8192]], [[9.3.0-21|v9216]], [[9.6.0-24|v10246]], [[10.0.0-27|v11265]], [[10.6.0-31|v12289]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003303&lt;br /&gt;
| SAFE_MODE [[IR Services‎|IR]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20003303&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[IR Services‎|IR]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|- &lt;br /&gt;
| 00003402&lt;br /&gt;
| [[BOSS Services‎|BOSS]] (SpotPass)&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1024]], [[2.0.0-2|v2053]], [[2.2.0-X|v3073]], [[3.0.0-5|v4101]], [[4.0.0-7|v5122]], [[5.0.0-11|v6146]], [[6.0.0-11|v7169]], [[6.2.0-12|v8193]], [[7.0.0-13|v9222]], [[8.0.0-18|v10240]], [[9.0.0-20|v11266]], [[10.0.0-27|v12289]], [[10.4.0-29|v13314]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003502&lt;br /&gt;
| [[News Services‎|News]] (Notifications)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1028]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[5.0.0-11|v4097]], [[8.0.0-18|v5120]], [[9.0.0-20|v6147]], [[9.7.0-25|v7168]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003602&lt;br /&gt;
| &amp;quot;debugger&amp;quot;. This only exist for development units(launched by NS during startup depending on certain [[Configuration_Memory]] fields&#039; values).&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00003702&lt;br /&gt;
| [[RO_Services|RO]]&lt;br /&gt;
| [[2.0.0-2|v0]], [[4.0.0-7|v1024]], [[5.0.0-11|v2049]], [[7.2.0-17|v3074]], [[8.0.0-18|v4096]], [[9.0.0-20|v5120]](Also for [[8.1.0-0_New3DS]]), [[9.3.0-21|v6148]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003802&lt;br /&gt;
| [[ACT Services‎|act]] (handles Nintendo Network &#039;&#039;&#039;a&#039;&#039;&#039;c&#039;&#039;&#039;c&#039;&#039;&#039;oun&#039;&#039;&#039;t&#039;&#039;&#039;s)&lt;br /&gt;
| [[7.0.0-13|v1029]], [[7.1.0-14|v2050]], [[7.2.0-17|v3077]], [[8.0.0-18|v4099]], [[8.1.0-0_New3DS|v5120]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v6144]], [[9.3.0-21|v7168]], [[9.6.0-24|v8198]]&lt;br /&gt;
|-&lt;br /&gt;
| 00004002&lt;br /&gt;
| Old3DS [[NFC_Services|nfc]]&lt;br /&gt;
| [[9.3.0-21|v2053]], [[9.6.0-24|v4106]], [[9.7.0-25|v5121]], [[10.0.0-27|v6145]], [[10.6.0-31|v7168]], [[10.7.0-32|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 20004002&lt;br /&gt;
| [[New_3DS]] [[NFC_Services|nfc]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.0.0-20|v1024]], [[9.3.0-21|v2053]], [[9.5.0-22|v3073]], [[9.6.0-24|v4102]], [[10.0.0-27|v6145]], [[10.6.0-31|v7168]]&lt;br /&gt;
|-&lt;br /&gt;
| 20004102&lt;br /&gt;
| [[New_3DS]] [[MVD Services|mvd]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.0.0-20|v1024]]&lt;br /&gt;
|-&lt;br /&gt;
| 20004202&lt;br /&gt;
| [[New_3DS]] [[QTM Services|qtm]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8]], [[9.0.0-20|v1024]], [[9.3.0-21|v2052]]&lt;br /&gt;
|-&lt;br /&gt;
| 00008002&lt;br /&gt;
| [[NS]] (Memory-region: &amp;quot;SYSTEM&amp;quot;)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1028]], [[2.2.0-X|v2048]], [[3.0.0-5|v3077]], v4096, [[4.0.0-7|v5121]], [[5.0.0-11|v6148]], [[5.1.0-11|v7168]], [[6.0.0-11|v8193]], [[6.1.0-11|v9216]], [[7.0.0-13|v10248]], [[7.2.0-17|v11268]], [[8.0.0-18|v12291]], [[8.1.0-0_New3DS|v13312]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v14336]], [[9.3.0-21|v15360]], [[9.6.0-24|v16390]], [[9.8.0-25|v17408]], [[10.0.0-27|v18433]], [[10.4.0-29|v19458]]&lt;br /&gt;
|-&lt;br /&gt;
| 00008003&lt;br /&gt;
| SAFE_MODE [[NS]] (Memory-region: &amp;quot;SYSTEM&amp;quot;)&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20008003&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[NS]] (Memory-region: &amp;quot;SYSTEM&amp;quot;)&lt;br /&gt;
| [[8.1.0-0_New3DS|v13313]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Once Home Menu finishes loading, all of the above system modules are running, except for MP, RO, and act which are automatically [[Process_Manager_Services|loaded]] when a process requires them. When [[Process_Manager_Services|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.&lt;br /&gt;
&lt;br /&gt;
All of the above system modules use the &amp;quot;BASE&amp;quot; [[SVC|memory-region]](specified in the exheader), except when listed otherwise for certain modules.&lt;br /&gt;
&lt;br /&gt;
When handling the exheader dependency list starting with [[8.0.0-18]], Old3DS FIRM [[Process_Manager_Services|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. When the New3DS pm-module is launching any title except [[NS]], it first attempts to launch the title with programID-low bitmask 0x20000000 set, then with that bitmask clear if launching fails.&lt;br /&gt;
&lt;br /&gt;
=== 00040138 - [[FIRM|System Firmware]] ===&lt;br /&gt;
NATIVE_FIRM and SAFE_MODE_FIRM for the initial versions are exactly the same, besides [[Configuration_Memory|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_Settings#System_Updater|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/&amp;lt;TID&amp;gt;/data use a custom format, this is handled by AGB_FIRM.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Description&lt;br /&gt;
!  USA/EUR/JPN Versions&lt;br /&gt;
!  CHN Versions&lt;br /&gt;
!  KOR Versions&lt;br /&gt;
!  TWN Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00000001&lt;br /&gt;
| Unknown, very similar to SAFE_MODE_FIRM. Exists only on dev units and seems to only be used by SystemUpdaters.&lt;br /&gt;
| v0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00000002&lt;br /&gt;
| NATIVE_FIRM (Native Firmware)&lt;br /&gt;
| [[1.0.0-0|v432]], [[1.1.0-1|v1472]], [[2.0.0-2|v2516]], [[2.1.0-3|v3553]], [[2.2.0-X|v4595]], [[3.0.0-5|v5647]], [[4.0.0-7|v6677]], [[4.1.0-8|v7712]], [[5.0.0-11|v8758]], [[5.1.0-11|v9792]], [[6.0.0-11|v10833]], [[6.1.0-11|v11872]], [[7.0.0-13|v12916]], [[7.2.0-17|v13956]], v15043, [[8.0.0-18|v15047]], [[9.0.0-20|v17120]], [[9.3.0-21|v18182]], [[9.5.0-22|v19216]], [[9.6.0-24|v20262]], [[10.0.0-27|v21288]], [[10.2.0-28|v22313]], [[10.4.0-29|v23341]], [[11.0.0-33|v24368]]&lt;br /&gt;
| Same as USA/EUR/JPN starting with the USA/EUR/JPN [[4.0.0-7]] title-version&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 20000002&lt;br /&gt;
| [[New_3DS]] NATIVE_FIRM (Native Firmware)&lt;br /&gt;
| [[8.1.0-0_New3DS|v16085]], [[9.0.0-20|v17120]], [[9.3.0-21|v18182]], [[9.5.0-22|v19218]], [[9.6.0-24|v20262]], [[10.0.0-27|v21288]], [[10.2.0-28|v22313]], [[10.4.0-29|v23341]], [[11.0.0-33|v24368]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 00000003&lt;br /&gt;
| SAFE_MODE_FIRM &lt;br /&gt;
| [[1.0.0-0|v432]], [[3.0.0-5|v5632]]&lt;br /&gt;
| Same as USA/EUR/JPN starting with the USA/EUR/JPN [[3.0.0-5]] title-version&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 20000003&lt;br /&gt;
| [[New_3DS]] SAFE_MODE_FIRM &lt;br /&gt;
| [[8.1.0-0_New3DS|v16081]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 00000102 &lt;br /&gt;
| TWL_FIRM ( DSi Firmware )&lt;br /&gt;
| [[1.0.0-0|v432]], [[2.0.0-2|v1489]], [[3.0.0-5|v2565]], v3601, [[4.0.0-7|v4625]], [[4.4.0-10|v5681]], [[4.5.0-10|v6704]], [[6.0.0-11|v7762]], [[6.2.0-12|v8817]]&lt;br /&gt;
| Same as USA/EUR/JPN starting with the USA/EUR/JPN [[4.0.0-7]] title-version&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 20000102 &lt;br /&gt;
| [[New_3DS]] TWL_FIRM ( DSi Firmware )&lt;br /&gt;
| [[8.1.0-0_New3DS|v9936]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|- &lt;br /&gt;
| 00000202&lt;br /&gt;
| AGB_FIRM ( GBA Firmware )&lt;br /&gt;
| [[3.0.0-5|v519]], v1553, [[4.0.0-7|v2576]], [[6.0.0-11|v3665]]&lt;br /&gt;
| [[4.0.0-7|v2576]]&lt;br /&gt;
| [[4.0.0-7|v2576]], [[6.0.0-11|v3665]]&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|- &lt;br /&gt;
| 20000202&lt;br /&gt;
| [[New_3DS]] AGB_FIRM ( GBA Firmware )&lt;br /&gt;
| [[8.1.0-0_New3DS|v4816]]&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Application Titles ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Content Category&lt;br /&gt;
!  Bit Mask(s)&lt;br /&gt;
!  Category Bit Mask&lt;br /&gt;
|-&lt;br /&gt;
|  [[Title list/eShop Titles|Application]] (eShop Title)&lt;br /&gt;
|  Normal&lt;br /&gt;
|  0x0000&lt;br /&gt;
|-&lt;br /&gt;
|  DLP Child&lt;br /&gt;
|  DlpChild&lt;br /&gt;
|  0x0001&lt;br /&gt;
|-&lt;br /&gt;
|  [[EShop Demos|Demo]]&lt;br /&gt;
|  Demo&lt;br /&gt;
|  0x0002&lt;br /&gt;
|-&lt;br /&gt;
|  [[Title list/Patches|Patch]]&lt;br /&gt;
|  CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;Patch&lt;br /&gt;
|  0x000E&lt;br /&gt;
|-&lt;br /&gt;
|  [[Title list/DLC|Add-on Content]] (DLC)&lt;br /&gt;
|  NotRequireRightForMount&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;AddOnContents&lt;br /&gt;
|  0x008C&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00040001 - [[Download Play]] Titles ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TWL (DSi) Titles ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Content Category&lt;br /&gt;
!  Bit Mask(s)&lt;br /&gt;
!  Category Bit Mask&lt;br /&gt;
|-&lt;br /&gt;
|  Application (DSiWare)&lt;br /&gt;
|  TWL&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x4&lt;br /&gt;
|  0x8004&lt;br /&gt;
|-&lt;br /&gt;
|  System Application&lt;br /&gt;
|  TWL&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x1&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x4&lt;br /&gt;
|  0x8005&lt;br /&gt;
|-&lt;br /&gt;
|  System Archive&lt;br /&gt;
|  TWL&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x1&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x2&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x4&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x8&lt;br /&gt;
|  0x800F&lt;br /&gt;
|-&lt;br /&gt;
|  Developer Tool&lt;br /&gt;
|  TWL&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x1&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x4&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x10&lt;br /&gt;
|  0x8015&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Bitmask 0x1 for TWL titles denotes a system title (determining whether the title will be updated during a System Update). It appears to be sufficient, but not necessary, to make the title invisible on the [[Home Menu]].&lt;br /&gt;
&lt;br /&gt;
Bitmask 0x2 for TWL titles may indicate no-execute.&lt;br /&gt;
&lt;br /&gt;
Bitmask 0x4 for TWL titles indicates internal storage.&lt;br /&gt;
&lt;br /&gt;
Bitmask 0x10 for TWL titles is found on developer tools.&lt;br /&gt;
&lt;br /&gt;
=== 00048005 - System Applications===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Region&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
!  Information&lt;br /&gt;
|-&lt;br /&gt;
| 42383841(B88A)&lt;br /&gt;
| ALL&lt;br /&gt;
| [[DS Internet]]&lt;br /&gt;
| v0, [[2.1.0-4|v1025]], [[3.0.0-5|v2048]]&lt;br /&gt;
| [[DS Internet]] is the DS-mode application, (also integrated in every online-enabled DS game) and now accessible through [[System Settings]] for configuring network settings for DS software. &lt;br /&gt;
|-&lt;br /&gt;
| 484E4441(HNDA)&lt;br /&gt;
| ALL&lt;br /&gt;
| [[Download Play]]&lt;br /&gt;
| v1024&lt;br /&gt;
| This [[Download Play]] application is the DS-mode Download Play client, launched by the 3DS-mode Download Play application.&lt;br /&gt;
|-&lt;br /&gt;
| 484E4443(HNDC)&lt;br /&gt;
| CHN&lt;br /&gt;
| [[Download Play]]&lt;br /&gt;
| v1024&lt;br /&gt;
| See Above Description.&lt;br /&gt;
|-&lt;br /&gt;
| 484E444B(HNDK)&lt;br /&gt;
| KOR&lt;br /&gt;
| [[Download Play]]&lt;br /&gt;
| v1024&lt;br /&gt;
| See Above Description.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0004800F - System Data Archives===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 484E4841(HNHA)&lt;br /&gt;
| [[Nintendo DS Cart Whitelist]]&lt;br /&gt;
| v0, [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[4.2.0-9|v5120]], [[4.3.0-10|v6145]], [[4.4.0-10|v7168]], [[4.5.0-10|v8192]], [[5.0.0-11|v9216]], [[6.0.0-11|v10240]], [[7.0.0-13|v11264]]&lt;br /&gt;
|-&lt;br /&gt;
| 484E4C41(HNLA)&lt;br /&gt;
| [[Version Data]]&lt;br /&gt;
| v0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 00048004 - DSiWare ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Region&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 4B4B5456(KKTV)&lt;br /&gt;
| EUR&lt;br /&gt;
| Cut the Rope&lt;br /&gt;
| v0, v64&lt;br /&gt;
|-&lt;br /&gt;
| 4B4E5256(KNRV)&lt;br /&gt;
| EUR&lt;br /&gt;
| A Little Bit of... Brain Training™: Maths Edition &lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 4B5A4C56(KZLV)&lt;br /&gt;
| EUR&lt;br /&gt;
| Plants vs. Zombies™&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 4B454256(KEBV)&lt;br /&gt;
| EUR&lt;br /&gt;
| ELECTROPLANKTON (Hanenbow)&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 4B513956(KQ9V)&lt;br /&gt;
| EUR&lt;br /&gt;
| Zelda: Four Swords Anniversary Edition&lt;br /&gt;
| v16&lt;br /&gt;
|-&lt;br /&gt;
| 4B574256(KWBV)&lt;br /&gt;
| EUR&lt;br /&gt;
| Mario Calculator &lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 4B574656(KWFV)&lt;br /&gt;
| EUR&lt;br /&gt;
| Mario Clock &lt;br /&gt;
| v0&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=SMDH&amp;diff=17938</id>
		<title>SMDH</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=SMDH&amp;diff=17938"/>
		<updated>2016-08-15T22:14:36Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* Flags */ new 3ds exclusive bit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the format of the icon stored at [[NCCH#CXI|CXI]] ExeFS:/icon and [[CIA]] icons.&lt;br /&gt;
The size of icons is 0x36c0 bytes. The CXI icon is displayed by [[Home Menu]] and [[System Settings]](3DS Software Management), while [[CIA#Meta|CIA icons]] are dummies and not yet utilised by Dev 3DS&#039; (as of rev 47586).&lt;br /&gt;
&lt;br /&gt;
== Format ==&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;
|  0x00&lt;br /&gt;
|  0x04 &lt;br /&gt;
|  Magic &#039;SMDH&#039;&lt;br /&gt;
|- &lt;br /&gt;
|  0x04&lt;br /&gt;
|  0x02 &lt;br /&gt;
|  Version&lt;br /&gt;
|- &lt;br /&gt;
|  0x06&lt;br /&gt;
|  0x02 &lt;br /&gt;
|  Reserved&lt;br /&gt;
|-&lt;br /&gt;
|  0x8&lt;br /&gt;
|  0x2000&lt;br /&gt;
|  16 application titles structs, each 0x200 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x2008&lt;br /&gt;
| 0x30&lt;br /&gt;
| Application Settings&lt;br /&gt;
|-&lt;br /&gt;
| 0x2038&lt;br /&gt;
| 0x8&lt;br /&gt;
| Reserved &lt;br /&gt;
|-&lt;br /&gt;
| 0x2040&lt;br /&gt;
| 0x1680&lt;br /&gt;
| Icon graphics&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Application Titles ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  START&lt;br /&gt;
!  SIZE&lt;br /&gt;
!  DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|  0x00&lt;br /&gt;
|  0x80&lt;br /&gt;
|  Short Description&lt;br /&gt;
|- &lt;br /&gt;
|  0x80&lt;br /&gt;
|  0x100 &lt;br /&gt;
|  Long Description&lt;br /&gt;
|- &lt;br /&gt;
|  0x180&lt;br /&gt;
|  0x80 &lt;br /&gt;
|  Publisher&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All encoded in UTF-16.&lt;br /&gt;
There are 16 app title structs(currently only 12 are used), each one for separate languages.&lt;br /&gt;
&lt;br /&gt;
The languages by order of appearance:&lt;br /&gt;
&lt;br /&gt;
* 1st: Japanese title name&lt;br /&gt;
* 2nd: English title name&lt;br /&gt;
* 3rd: French title name&lt;br /&gt;
* 4th: German title name&lt;br /&gt;
* 5th: Italian title name&lt;br /&gt;
* 6th: Spanish title name&lt;br /&gt;
* 7th: Simplified Chinese title name&lt;br /&gt;
* 8th: Korean title name&lt;br /&gt;
* 9th: Dutch title name&lt;br /&gt;
* 10th: Portuguese title name&lt;br /&gt;
* 11th: Russian title name&lt;br /&gt;
* 12th: Traditional Chinese title name&lt;br /&gt;
&lt;br /&gt;
== Application Settings ==&lt;br /&gt;
&lt;br /&gt;
Most of these flags are only used by the [[Home Menu]]. All of these are represented in SMDH files in little endian. But when documented below, the tables represent values in big endian.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  START&lt;br /&gt;
!  SIZE&lt;br /&gt;
!  DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|  0x2008&lt;br /&gt;
|  0x10&lt;br /&gt;
|  Region Specific Game Ratings (For use with Parental Controls)&lt;br /&gt;
|-&lt;br /&gt;
|  0x2018&lt;br /&gt;
|  0x4&lt;br /&gt;
|  Region Lockout&lt;br /&gt;
|-  &lt;br /&gt;
|  0x201C&lt;br /&gt;
|  0xC &lt;br /&gt;
|  Match Maker IDs (Online Play)&lt;br /&gt;
|-    &lt;br /&gt;
|  0x2028&lt;br /&gt;
|  0x4&lt;br /&gt;
|  Flags&lt;br /&gt;
|-    &lt;br /&gt;
|  0x202C&lt;br /&gt;
|  0x2 &lt;br /&gt;
|  EULA Version&lt;br /&gt;
|-    &lt;br /&gt;
|  0x202E&lt;br /&gt;
|  0x2 &lt;br /&gt;
|  Reserved&lt;br /&gt;
|-  &lt;br /&gt;
|  0x2030&lt;br /&gt;
|  0x4 &lt;br /&gt;
|  &#039;Optimal Animation Default Frame&#039; (for BNR)&lt;br /&gt;
|-    &lt;br /&gt;
|  0x2034&lt;br /&gt;
|  0x4 &lt;br /&gt;
|  CEC (StreetPass) ID (So the Home Menu knows which application icon to show the &#039;Green&#039; CEC notification for)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Region Specific Game Age Ratings ===&lt;br /&gt;
&lt;br /&gt;
These flags tell the 3DS the &#039;Age Rating&#039; of the software for the below regions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  START&lt;br /&gt;
!  SIZE&lt;br /&gt;
!  DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|  0x2008&lt;br /&gt;
|  0x1&lt;br /&gt;
|  CERO (Japan)&lt;br /&gt;
|-&lt;br /&gt;
|  0x2009&lt;br /&gt;
|  0x1&lt;br /&gt;
|  ESRB (USA)&lt;br /&gt;
|-&lt;br /&gt;
|  0x200A&lt;br /&gt;
|  0x1&lt;br /&gt;
|  Reserved&lt;br /&gt;
|-&lt;br /&gt;
|  0x200B&lt;br /&gt;
|  0x1&lt;br /&gt;
|  USK (German)&lt;br /&gt;
|-&lt;br /&gt;
|  0x200C&lt;br /&gt;
|  0x1&lt;br /&gt;
|  PEGI GEN (Europe)&lt;br /&gt;
|-&lt;br /&gt;
|  0x200D&lt;br /&gt;
|  0x1&lt;br /&gt;
|  Reserved&lt;br /&gt;
|-&lt;br /&gt;
|  0x200E&lt;br /&gt;
|  0x1&lt;br /&gt;
|  PEGI PRT (Portugal)&lt;br /&gt;
|-&lt;br /&gt;
|  0x200F&lt;br /&gt;
|  0x1&lt;br /&gt;
|  PEGI BBFC (England)&lt;br /&gt;
|-&lt;br /&gt;
|  0x2010&lt;br /&gt;
|  0x1&lt;br /&gt;
|  COB (Australia)&lt;br /&gt;
|-&lt;br /&gt;
|  0x2011&lt;br /&gt;
|  0x1&lt;br /&gt;
|  GRB (South Korea)&lt;br /&gt;
|-&lt;br /&gt;
|  0x2012&lt;br /&gt;
|  0x1&lt;br /&gt;
|  CGSRR (Taiwan)&lt;br /&gt;
|-&lt;br /&gt;
|  0x2013&lt;br /&gt;
|  0x1&lt;br /&gt;
|  Reserved&lt;br /&gt;
|-&lt;br /&gt;
|  0x2014&lt;br /&gt;
|  0x1&lt;br /&gt;
|  Reserved&lt;br /&gt;
|-&lt;br /&gt;
|  0x2015&lt;br /&gt;
|  0x1&lt;br /&gt;
|  Reserved&lt;br /&gt;
|-&lt;br /&gt;
|  0x2016&lt;br /&gt;
|  0x1&lt;br /&gt;
|  Reserved&lt;br /&gt;
|-&lt;br /&gt;
|  0x2017&lt;br /&gt;
|  0x1&lt;br /&gt;
|  Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Active ratings have a bitmask of 0x80, and inactive ratings have no bitmask at all. Ratings without the 0x80 bitmask are ignored. 0x40 bitmask indicates Rating Pending. 0x20 bitmask indicates No Age Restriction.&lt;br /&gt;
Age limits are set by adding the minimal age to 0x80 (for example, limiting to 12 years and up would give a bitmask of 0x8C)&lt;br /&gt;
&lt;br /&gt;
=== Region Lockout ===&lt;br /&gt;
&lt;br /&gt;
This u32 flag is what the Home Menu uses to determine the [[Home Menu#Region Lockout|Region Lockout]] of a title.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  REGION&lt;br /&gt;
!  BITMASK&lt;br /&gt;
|-&lt;br /&gt;
|  Japan&lt;br /&gt;
|  0x01&lt;br /&gt;
|-&lt;br /&gt;
|  North America&lt;br /&gt;
|  0x02 &lt;br /&gt;
|-&lt;br /&gt;
|  Europe&lt;br /&gt;
|  0x04 &lt;br /&gt;
|-&lt;br /&gt;
|  Australia&lt;br /&gt;
|  0x08 &lt;br /&gt;
|-&lt;br /&gt;
|  China&lt;br /&gt;
|  0x10 &lt;br /&gt;
|-&lt;br /&gt;
|  Korea&lt;br /&gt;
|  0x20 &lt;br /&gt;
|-&lt;br /&gt;
|  Taiwan &lt;br /&gt;
|  0x40 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Regions are &#039;included&#039; in region lock by setting their bitmask value. Nintendo defines region free as 0x7fffffff. Early in the 3DS&#039; development, Nintendo grouped the Australian and Europe markets together. Nintendo defines market Europe as having the combined bitmasks of Europe and Australia. No 3DS&#039; which check the Australia bitmask have been seen (Australia uses the European 3DS model).&lt;br /&gt;
&lt;br /&gt;
=== Match Maker IDs ===&lt;br /&gt;
&lt;br /&gt;
These IDs are an application&#039;s online gaming IDs.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  START&lt;br /&gt;
!  SIZE&lt;br /&gt;
!  DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|  0x201C&lt;br /&gt;
|  0x4&lt;br /&gt;
|  Match Maker ID&lt;br /&gt;
|- &lt;br /&gt;
|  0x2020&lt;br /&gt;
|  0x8&lt;br /&gt;
|  Match Maker BIT ID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Flags ===&lt;br /&gt;
The u32 is used for storing flags as bit-masks.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  FLAG&lt;br /&gt;
!  BITMASK VALUE&lt;br /&gt;
|-&lt;br /&gt;
|  Visibility Flag (Required for visibility on the Home Menu)&lt;br /&gt;
|  0x0001&lt;br /&gt;
|-&lt;br /&gt;
|  [[Home Menu#Auto-Boot Kiosk Function|Auto-boot]] this gamecard title&lt;br /&gt;
|  0x0002&lt;br /&gt;
|-&lt;br /&gt;
|  Allow use of 3D? (For use with parental Controls. An application can use the 3D affect, even when this flag isn&#039;t set)&lt;br /&gt;
|  0x0004&lt;br /&gt;
|-&lt;br /&gt;
|  Require accepting CTR EULA before being launched by Home (see below)&lt;br /&gt;
|  0x0008&lt;br /&gt;
|-&lt;br /&gt;
|  Autosave on exit? (see below)&lt;br /&gt;
|  0x0010&lt;br /&gt;
|-&lt;br /&gt;
|  Uses an [[Extended Banner]]?&lt;br /&gt;
|  0x0020&lt;br /&gt;
|-&lt;br /&gt;
|  [[SMDH#Region Specific Game Age Ratings|Region game rating]] required&lt;br /&gt;
|  0x0040&lt;br /&gt;
|-&lt;br /&gt;
|  Uses save data? (see below)&lt;br /&gt;
|  0x0080&lt;br /&gt;
|-&lt;br /&gt;
|  Application usage is to be recorded. If this is not set, it causes the application&#039;s usage to be omitted from the Home Menu&#039;s [[Home_Menu#Cache.dat &amp;amp; CacheD.dat|icon cache]], as well as in [[????????|other places]].&lt;br /&gt;
|  0x0100&lt;br /&gt;
|-&lt;br /&gt;
|  Disables [[SD Savedata Backups]] for this title. This is in addition to [[NS CFA|the blacklist]].&lt;br /&gt;
|  0x0400&lt;br /&gt;
|-&lt;br /&gt;
|  New 3DS exclusive title. Shows an error if used on Old 3DS.&lt;br /&gt;
|  0x1000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Effect of SaveData and AutoSave====&lt;br /&gt;
&lt;br /&gt;
These options have no effect on the performance of the application itself: they&#039;re used to select an appropriate warning when closing an application from [[Home Menu|Home]].&lt;br /&gt;
&lt;br /&gt;
* Both off: &amp;quot;Closing software&amp;quot; (no warning if quitting directly with X)&lt;br /&gt;
* SaveData: &amp;quot;Do you want to close [...]? (Unsaved data will be lost.)&amp;quot;&lt;br /&gt;
* AutoSave: ?&lt;br /&gt;
* Both on:  &amp;quot;Saving data and closing software...&amp;quot; (no warning if quitting directly with X)&lt;br /&gt;
&lt;br /&gt;
=== EULA Version ===&lt;br /&gt;
This is the EULA version which is checked when the Accept EULA flag is set, the version is compared to one stored in the 3DS. If the SMDH version is greater, then the user will be prompted to accept the EULA.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  START&lt;br /&gt;
!  SIZE&lt;br /&gt;
!  DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|  0x202C&lt;br /&gt;
|  0x01&lt;br /&gt;
|  EULA Version Minor&lt;br /&gt;
|-&lt;br /&gt;
|  0x202D&lt;br /&gt;
|  0x01&lt;br /&gt;
|  EULA Version Major&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;Optimal Animation Default Frame&#039; (for BNR) ===&lt;br /&gt;
&lt;br /&gt;
This is a float, indicating the preferred (or &#039;most representative&#039;) frame for the banner animation.&lt;br /&gt;
&lt;br /&gt;
=== CEC (StreetPass) ID ===&lt;br /&gt;
&lt;br /&gt;
This u32 represents the application CEC ID. This is likely loaded by applications for use with the CEC services as well.&lt;br /&gt;
&lt;br /&gt;
== Icon graphics ==&lt;br /&gt;
&lt;br /&gt;
At offset 0x2040, there are two icons:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  START&lt;br /&gt;
!  SIZE&lt;br /&gt;
!  DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|  0x2040&lt;br /&gt;
|  0x480&lt;br /&gt;
|  Small - 24x24 (shown on top screen when pausing the app)&lt;br /&gt;
|- &lt;br /&gt;
|  0x24C0&lt;br /&gt;
|  0x1200 &lt;br /&gt;
|  Large - 48x48 icon (the general icon)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Both of the icons are encoded in RGB565 meaning 16bpp. Although both icons are known to be RGB565, developers have the option of encoding icons (and banners) with the following encodings :&lt;br /&gt;
&lt;br /&gt;
* RGBA8&lt;br /&gt;
* RGB8&lt;br /&gt;
* RGBA5551&lt;br /&gt;
* RGB565&lt;br /&gt;
* RGBA4&lt;br /&gt;
* LA8&lt;br /&gt;
* HILO8&lt;br /&gt;
* L8&lt;br /&gt;
* A8&lt;br /&gt;
* LA4&lt;br /&gt;
* L4&lt;br /&gt;
* ETC1&lt;br /&gt;
* ETC1A4&lt;br /&gt;
&lt;br /&gt;
This does not necessarily mean the other encodings will be used, it is just that those are the options when compiling. Like we&#039;ve seen with Super Mario 3D Land Nintendo has changed save file encryption, and likewise they can encode icons and banners differently &#039;&#039;should they choose to&#039;&#039;. Currently we&#039;ve seen just RGB565 so don&#039;t be fooled if an icon doesn&#039;t show up right! It is probably one of these formats above. Although we will probably not see other formats used for a while it&#039;s nice to know they have an opportunity to change.&lt;br /&gt;
&lt;br /&gt;
The data is encoded in tiles (starting from size 8x8, continuing recursively).&lt;br /&gt;
&lt;br /&gt;
If the buffer is like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  0&lt;br /&gt;
!  1&lt;br /&gt;
!  2&lt;br /&gt;
!  3&lt;br /&gt;
!  4&lt;br /&gt;
!  5&lt;br /&gt;
!  6&lt;br /&gt;
!  7&lt;br /&gt;
!  8&lt;br /&gt;
!  9&lt;br /&gt;
!  10&lt;br /&gt;
!  11&lt;br /&gt;
!  12&lt;br /&gt;
!  13&lt;br /&gt;
!  14&lt;br /&gt;
!  15&lt;br /&gt;
!  16&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Then the image would look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  x=0&lt;br /&gt;
!  x=1&lt;br /&gt;
!  x=2&lt;br /&gt;
!  x=3&lt;br /&gt;
!  x=4&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 5&lt;br /&gt;
| 16&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
| 6&lt;br /&gt;
| 7&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| 9&lt;br /&gt;
| 12&lt;br /&gt;
| 13&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| 11&lt;br /&gt;
| 14&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
[[CiTRUS]] - (GUI)(Windows Only) Generating ICN files&lt;br /&gt;
&lt;br /&gt;
[[3DSExplorer]] - (GUI)(Windows Only) Parsing ICN files&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Nandrw/sys/LocalFriendCodeSeed_B&amp;diff=17472</id>
		<title>Nandrw/sys/LocalFriendCodeSeed B</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Nandrw/sys/LocalFriendCodeSeed_B&amp;diff=17472"/>
		<updated>2016-06-06T02:12:28Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: add displaytitle so it looks like &amp;quot;LocalFriendCodeSeed_B&amp;quot; instead of &amp;quot;LocalFriendCodeSeed B&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Nandrw/sys/LocalFriendCodeSeed_B}}&lt;br /&gt;
=Format=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&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 over the following 0x10-bytes.&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 0x8&lt;br /&gt;
| Normally zero?&lt;br /&gt;
|-&lt;br /&gt;
| 0x108&lt;br /&gt;
| 0x8&lt;br /&gt;
| LocalFriendCodeSeed, this is the same as the first 0x8-bytes from the [[Nand/private/movable.sed|movable.sed]] keyY.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This contains the same LocalFriendCodeSeed data that [[PSPXI:GetLocalFriendCodeSeed]] retrieves from memory.&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
* [[Config Services]]&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Title_list&amp;diff=17461</id>
		<title>Title list</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Title_list&amp;diff=17461"/>
		<updated>2016-06-02T08:48:27Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* 00040130 - System Modules */ 11.0.0-33 friends module&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NOTE: This Title list is a condensed version, only the System Titles lists are full lists. For a full list of titles on Nintendo&#039;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.&lt;br /&gt;
&lt;br /&gt;
== CTR System Titles ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  System Category&lt;br /&gt;
!  Bit Mask(s)&lt;br /&gt;
!  Category Bit Mask&lt;br /&gt;
|-&lt;br /&gt;
|  Application (SYSTEM_APPLICATION)&lt;br /&gt;
|  Normal&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&lt;br /&gt;
|  0x0010&lt;br /&gt;
|-&lt;br /&gt;
|  System Data Archives (SYSTEM_CONTENT)&lt;br /&gt;
|  Contents&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&lt;br /&gt;
|  0x001B&lt;br /&gt;
|-&lt;br /&gt;
|  Shared Data Archives (SHARED_CONTENT)&lt;br /&gt;
|  Contents&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;NotRequireRightForMount&lt;br /&gt;
|  0x009B&lt;br /&gt;
|-&lt;br /&gt;
|  System Data Archives (AUTO_UPDATE_CONTENT)&lt;br /&gt;
|  Contents&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;NotRequireUserApproval&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;NotRequireRightForMount&lt;br /&gt;
|  0x00DB&lt;br /&gt;
|-&lt;br /&gt;
|  Applet (APPLET)&lt;br /&gt;
|  Normal&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;RequireBatchUpdate&lt;br /&gt;
|  0x0030&lt;br /&gt;
|-&lt;br /&gt;
|  Module (BASE)&lt;br /&gt;
|  Normal&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;RequireBatchUpdate&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CanSkipConvertJumpId&lt;br /&gt;
|  0x0130&lt;br /&gt;
|-&lt;br /&gt;
|  Firmware (FIRMWARE)&lt;br /&gt;
|  Normal&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;RequireBatchUpdate&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CanSkipConvertJumpId&lt;br /&gt;
|  0x0138&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00040010 - System Applications ===&lt;br /&gt;
The versions for CHN, KOR, and TWN are separate from the other regions.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  JPN TIDLow&lt;br /&gt;
!  USA TIDLow&lt;br /&gt;
!  EUR TIDLow&lt;br /&gt;
!  CHN TIDLow&lt;br /&gt;
!  KOR TIDLow&lt;br /&gt;
!  TWN TIDLow&lt;br /&gt;
!  Description&lt;br /&gt;
!  JPN Versions&lt;br /&gt;
!  EUR Versions&lt;br /&gt;
!  USA Versions&lt;br /&gt;
!  CHN Versions&lt;br /&gt;
!  KOR Versions&lt;br /&gt;
!  TWN Versions&lt;br /&gt;
!  Status&lt;br /&gt;
|-&lt;br /&gt;
| 00020000&lt;br /&gt;
| 00021000&lt;br /&gt;
| 00022000&lt;br /&gt;
| 00026000&lt;br /&gt;
| 00027000&lt;br /&gt;
| 00028000&lt;br /&gt;
| [[System Settings]] (mset)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[3.0.0-5|v2060]], [[4.0.0-7|v3074]], [[5.0.0-11|v4097]], [[6.0.0-11|v5127]], [[7.0.0-13|v6157]], [[7.2.0-17|v7173]], [[8.1.0-0_New3DS|v8198]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v9224]], [[9.6.0-24|v10245]], [[10.6.0-31|v10256]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[3.0.0-5|v2061]], [[4.0.0-7|v3075]], [[5.0.0-11|v4097]], [[6.0.0-11|v5127]], [[7.0.0-13|v6157]], [[7.2.0-17|v7174]], [[9.0.0-20|v8202]], [[9.6.0-24|v9220]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[3.0.0-5|v2062]], [[4.0.0-7|v3078]], [[5.0.0-11|v4098]], [[6.0.0-11|v5128]], [[7.0.0-13|v6157]], [[7.2.0-17|v7174]], [[9.0.0-20|v8203]], [[9.6.0-24|v9221]]&lt;br /&gt;
| [[4.0.0-7|v8]], [[4.4.0-10|v1024]](CHN-only sysupdate for just mset), [[5.0.0-11|v2049]], [[7.0.0-13|v3075]]&lt;br /&gt;
| [[4.0.0-7|v1026]], [[5.0.0-11|v2049]], [[7.0.0-13|v4098]]&lt;br /&gt;
| [[4.1.0-8|v8]], [[4.2.0-9|v1024]], [[5.0.0-11|v2050]], [[7.0.0-13|v3074]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020100&lt;br /&gt;
| 00021100&lt;br /&gt;
| 00022100&lt;br /&gt;
| 00026100&lt;br /&gt;
| 00027100&lt;br /&gt;
| 00028100&lt;br /&gt;
| [[Download Play]] (dlplay)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]], [[4.0.0-7|v2051]], [[9.0.0-20|v3072]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]], [[4.0.0-7|v2051]], [[9.0.0-20|v3073]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]], [[4.0.0-7|v2051]], [[9.0.0-20|v3073]]&lt;br /&gt;
| [[4.0.0-7|v4]]&lt;br /&gt;
| [[4.0.0-7|v1027]]&lt;br /&gt;
| [[4.1.0-8|v4]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020200&lt;br /&gt;
| 00021200&lt;br /&gt;
| 00022200&lt;br /&gt;
| 00026200&lt;br /&gt;
| 00027200&lt;br /&gt;
| 00028200&lt;br /&gt;
| [[Activity Log]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[3.0.0-5|v2051]], [[10.6.0-31|v2080]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[3.0.0-5|v2054]], [[7.0.0-13|v2064]]&lt;br /&gt;
| Same as EUR&lt;br /&gt;
| [[4.0.0-7|v3]]&lt;br /&gt;
| [[4.0.0-7|v2]], [[7.0.0-13|v16]]&lt;br /&gt;
| [[4.1.0-8|v2]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020300&lt;br /&gt;
| 00021300&lt;br /&gt;
| 00022300&lt;br /&gt;
| 00026300&lt;br /&gt;
| 00027300&lt;br /&gt;
| 00028300&lt;br /&gt;
| [[Health and Safety Information]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[4.0.0-7|v1024]], [[6.0.0-11|v2050]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[4.0.0-7|v2050]], [[6.0.0-11|v3077]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[4.0.0-7|v1026]], [[6.1.0-12U|v2051]]&lt;br /&gt;
| [[4.0.0-7|v5]]&lt;br /&gt;
| [[4.0.0-7|v2]]&lt;br /&gt;
| [[4.1.0-8|v5]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 20020300&lt;br /&gt;
| 20021300&lt;br /&gt;
| 20022300&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]] [[Health and Safety Information]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v2]], [[9.3.0-21|v17]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v1]]&lt;br /&gt;
| Same as EUR.&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020400&lt;br /&gt;
| 00021400&lt;br /&gt;
| 00022400&lt;br /&gt;
| 00026400&lt;br /&gt;
| 00027400&lt;br /&gt;
| 00028400&lt;br /&gt;
| [[Nintendo 3DS Camera]] (CtrApp)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v16]], [[3.0.0-5|v1038]], [[4.0.0-7|v2048]], [[6.0.0-11|v3073]], [[9.0.0-20|v4097]](Also for [[8.1.0-0_New3DS]]), [[10.6.0-31|v4112]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v16]], [[3.0.0-5|v1039]], [[4.0.0-7|v2048]], [[6.0.0-11|v3073]], [[7.0.0-13|v3088]], [[9.0.0-20|v4097]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v16]], [[3.0.0-5|v1039]], [[4.0.0-7|v2048]], [[6.1.0-12U|v3074]], [[7.0.0-13|v3088]], [[9.0.0-20|v4097]]&lt;br /&gt;
| [[4.0.0-7|v3]]&lt;br /&gt;
| [[4.0.0-7|v2]], [[7.0.0-13|v1040]]&lt;br /&gt;
| [[4.1.0-8|v3]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020500&lt;br /&gt;
| 00021500&lt;br /&gt;
| 00022500&lt;br /&gt;
| 00026500&lt;br /&gt;
| 00027500&lt;br /&gt;
| 00028500&lt;br /&gt;
| [[Nintendo 3DS Sound]] (CtrApp)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1027]], [[3.0.0-5|v2049]], [[4.0.0-7|v3072]], [[7.0.0-13|v3089]], [[10.6.0-31|3104]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1027]], [[3.0.0-5|v2049]], [[4.0.0-7|v3072]], [[7.0.0-13|v3088]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1027]], [[3.0.0-5|v2049]], [[4.0.0-7|v3072]], [[7.0.0-13|v3088]]&lt;br /&gt;
| [[4.0.0-7|v2]]&lt;br /&gt;
| [[4.0.0-7|v2]], [[7.0.0-13|v16]]&lt;br /&gt;
| [[4.1.0-8|v3]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020700&lt;br /&gt;
| 00021700&lt;br /&gt;
| 00022700&lt;br /&gt;
| 00026700&lt;br /&gt;
| 00027700&lt;br /&gt;
| 00028700&lt;br /&gt;
| [[Mii Maker]] (EDIT)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[7.0.0-13|v2055]], [[10.6.0-31|v2064]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| [[4.0.0-7|v1]]&lt;br /&gt;
| [[4.0.0-7|v1]], [[7.0.0-13|v16]]&lt;br /&gt;
| [[4.1.0-8|v2]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020800&lt;br /&gt;
| 00021800&lt;br /&gt;
| 00022800&lt;br /&gt;
| 00026800&lt;br /&gt;
| 00027800&lt;br /&gt;
| 00028800&lt;br /&gt;
| [[StreetPass Mii Plaza]] (MEET)&lt;br /&gt;
| [[1.0.0-0|v0]], v1027, [[2.1.0-4|v2048]], [[3.0.0-5|v3087]], [[3.0.0-6|v4096]], [[6.0.0-11|v5121]]&lt;br /&gt;
| [[1.0.0-0|v0]], v1027, [[2.1.0-4|v2048]], [[3.0.0-5|v3087]], [[3.0.0-6|v4096]], [[6.0.0-11|v5122]]&lt;br /&gt;
| [[1.0.0-0|v0]], v1027, [[2.1.0-4|v2048]], [[3.0.0-5|v3087]], [[3.0.0-6|v4096]], [[6.1.0-12U|v5124]], [[7.0.0-13|v5136]]&lt;br /&gt;
| [[4.0.0-7|v0]], [[4.4.0-10|v4096]]&lt;br /&gt;
| [[4.0.0-7|v1]], [[4.4.0-10|v4096]], [[7.0.0-13|v5120]]&lt;br /&gt;
| [[4.1.0-8|v1]], [[4.4.0-10|v4096]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020900&lt;br /&gt;
| 00021900&lt;br /&gt;
| 00022900&lt;br /&gt;
| N/A&lt;br /&gt;
| 00027900&lt;br /&gt;
| 00028900&lt;br /&gt;
| [[eShop]] (tiger)&lt;br /&gt;
| [[2.0.0-2|v4]], [[2.1.0-3|v1026]], [[3.0.0-5|v2057]], [[4.0.0-7|v3081]], [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7169]], [[7.0.0-13|v8206]], [[7.1.0-14|v9231]], [[7.2.0-17|v10245]], [[8.0.0-18|v11265]], [[8.1.0-19|v12288]], [[9.0.0-20|v13320]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17421]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]], [[10.4.0-29|v20483]], [[10.7.0-32|v21504]]&lt;br /&gt;
| [[2.0.0-2|v4]], [[2.1.0-3|v1026]], [[3.0.0-5|v2058]], [[4.0.0-7|v3081]], [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7171]], [[7.0.0-13|v8206]], [[7.1.0-14|v9231]], [[7.2.0-17|v10245]], [[8.0.0-18|v11265]], [[8.1.0-19|v12288]], [[9.0.0-20|v13320]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17421]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]], [[10.4.0-29|v20482]], [[10.7.0-32|v21505]]&lt;br /&gt;
| [[2.0.0-2|v4]], [[2.1.0-3|v1026]], [[3.0.0-5|v2058]], [[4.0.0-7|v3081]], [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7170]], [[7.0.0-13|v8206]], [[7.1.0-14|v9231]], [[7.2.0-17|v10246]], [[8.0.0-18|v11265]], [[8.1.0-19|v12288]], [[9.0.0-20|v13321]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17422]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]], [[10.4.0-29|v20482]], [[10.7.0-32|v21506]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[4.0.0-7|v3082]], [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7169]], [[7.0.0-13|v8205]], [[7.1.0-14|v9231]], [[8.1.0-19|v12288]], [[9.0.0-20|v13320]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17420]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]], [[10.4.0-29|v20482]]&lt;br /&gt;
| [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7170]], [[7.0.0-13|v8205]], [[7.1.0-14|v9231]], [[8.1.0-19|v12288]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17421]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020A00&lt;br /&gt;
| 00021A00&lt;br /&gt;
| 00022A00&lt;br /&gt;
| N/A&lt;br /&gt;
| 00027A00&lt;br /&gt;
| 00028A00&lt;br /&gt;
| [[System Transfer]] (CARDBOARD)&lt;br /&gt;
| [[2.0.0-2|v4]], [[3.0.0-5|v1035]], [[4.0.0-7|v2050]], [[5.0.0-11|v3074]], [[7.0.0-13|v4109]], [[9.0.0-20|v5130]], [[9.6.0-24|v6154]]&lt;br /&gt;
| [[2.0.0-2|v4]], [[3.0.0-5|v1035]], [[4.0.0-7|v2050]], [[5.0.0-11|v3073]], [[7.0.0-13|v4109]], [[9.0.0-20|v5131]], [[9.6.0-24|v6155]]&lt;br /&gt;
| [[2.0.0-2|v4]], [[3.0.0-5|v1035]], [[4.0.0-7|v2051]], [[5.0.0-11|v3073]], [[7.0.0-13|v4109]], [[9.0.0-20|v5131]], [[9.6.0-24|v6156]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[4.0.0-7|v2]], [[5.0.0-11|v1025]], [[7.0.0-13|v2061]], [[9.0.0-20|v3082]]&lt;br /&gt;
| [[4.1.0-8|v2]], [[5.0.0-11|v1025]], [[7.0.0-13|v2061]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020B00&lt;br /&gt;
| 00021B00&lt;br /&gt;
| 00022B00&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| [[Nintendo Zone]] (&amp;quot;Nintendo&amp;quot;)&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1034]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020D00&lt;br /&gt;
| 00021D00&lt;br /&gt;
| 00022D00&lt;br /&gt;
| 00026D00&lt;br /&gt;
| 00027D00&lt;br /&gt;
| 00028D00&lt;br /&gt;
| [[Face Raiders]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1028]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1028]], [[7.0.0-13|v1040]]&lt;br /&gt;
| Same as EUR&lt;br /&gt;
| [[4.0.0-7|v0]]&lt;br /&gt;
| [[4.0.0-7|v0]]&lt;br /&gt;
| [[4.1.0-8|v2]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 20020D00&lt;br /&gt;
| 20021D00&lt;br /&gt;
| 20022D00&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]] [[Face Raiders]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v2050]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v2049]]&lt;br /&gt;
| Same as EUR.&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020E00&lt;br /&gt;
| 00021E00&lt;br /&gt;
| 00022E00&lt;br /&gt;
| 00026E00&lt;br /&gt;
| 00027E00&lt;br /&gt;
| 00028E00&lt;br /&gt;
| [[AR Games]] (AR_ACT)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]], [[7.0.0-13|v1040]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1027]], [[7.0.0-13|v1040]]&lt;br /&gt;
| [[4.0.0-7|v0]]&lt;br /&gt;
| [[4.0.0-7|v0]], [[7.0.0-13|v16]]&lt;br /&gt;
| [[4.1.0-8|v1]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020F00&lt;br /&gt;
| 00021F00&lt;br /&gt;
| 00022F00&lt;br /&gt;
| 00026F00&lt;br /&gt;
| 00027F00&lt;br /&gt;
| 00028F00&lt;br /&gt;
| SAFE_MODE [[System Settings#System Updater|System Updater]] (mset)&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[6.0.0-11|v2049]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[6.0.0-11|v2050]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| [[4.0.0-7|v1]], [[6.0.0-11|v1026]]&lt;br /&gt;
| [[4.0.0-7|v1]]&lt;br /&gt;
| [[4.1.0-8|v1]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00023000&lt;br /&gt;
| 00024000&lt;br /&gt;
| 00025000&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Promotional video&lt;br /&gt;
| [[1.1.0-1|v2]], [[2.0.0-2|v2048]]&lt;br /&gt;
| [[1.1.0-1|v&amp;lt;unknown&amp;gt;]], [[2.0.0-2|v2048]]&lt;br /&gt;
| [[1.1.0-1|v0]], [[2.0.0-2|v2048]]&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0002BF00&lt;br /&gt;
| 0002C000&lt;br /&gt;
| 0002C100&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Nintendo Network ID Settings (act)&lt;br /&gt;
| [[7.0.0-13|v14]], [[7.2.0-17|v1029]], [[9.0.0-20|v2051]], [[9.3.0-21|v3072]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 20023100&lt;br /&gt;
| 20024100&lt;br /&gt;
| 20025100&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| [[microSD Management]] (&#039;mcopy&#039;) ([[New_3DS]]-only)&lt;br /&gt;
| [[8.1.0-0_New3DS|v8]], [[9.0.0-20|v1024]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v5]]&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Available&lt;br /&gt;
|-&lt;br /&gt;
| 2002C800&lt;br /&gt;
| 2002CF00&lt;br /&gt;
| 2002D000&lt;br /&gt;
| N/A&lt;br /&gt;
| 2002D700&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]]-only, currently stubbed. Placeholder exheader name is &amp;quot;menu&amp;quot;.&lt;br /&gt;
| [[8.1.0-0_New3DS|v2]], [[9.0.0-20|v18]], [[9.3.0-21|v34]], [[9.6.0-24|v50]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v1]], [[9.3.0-21|v17]], [[9.6.0-24|v34]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v1]], [[9.3.0-21|v18]], [[9.6.0-24|v33]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v2]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 2002C900&lt;br /&gt;
| 2002D100&lt;br /&gt;
| 2002D200&lt;br /&gt;
| N/A&lt;br /&gt;
| 2002D800&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]]-only, currently stubbed. Placeholder exheader name is &amp;quot;friend&amp;quot;.&lt;br /&gt;
| [[8.1.0-0_New3DS|v1]]&lt;br /&gt;
| Same as JPN.&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.3.0-21|v16]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v2]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 2002CA00&lt;br /&gt;
| 2002D300&lt;br /&gt;
| 2002D400&lt;br /&gt;
| N/A&lt;br /&gt;
| 2002D900&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]]-only, currently stubbed. Placeholder exheader name is &amp;quot;newslist&amp;quot;.&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], v1([[Home_Menu|JPN-only]] Oct 2, 2014 &amp;quot;sysupdate&amp;quot;, actually uploaded on 09-29-14. Identical to v0, same TMDs besides title-versions)&lt;br /&gt;
| [[8.1.0-0_New3DS|v2]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v2]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 2002CB00&lt;br /&gt;
| 2002D500&lt;br /&gt;
| 2002D600&lt;br /&gt;
| N/A&lt;br /&gt;
| 2002DA00&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]]-only, currently stubbed. Placeholder exheader name is &amp;quot;cherry&amp;quot;.&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.0.0-20|v1]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v2]]&lt;br /&gt;
| Same as EUR.&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v1]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;act&amp;quot; application seems to use a web browser with webkit?&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== 0004001B - [[NCCH#CFA|System Data Archives]] ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00010002&lt;br /&gt;
| [[ClCertA]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 00010702&lt;br /&gt;
| [[NS CFA]]&lt;br /&gt;
| [[3.0.0-5|v0]], [[6.0.0-11|v1028]], [[6.3.0-12|v2048]], [[7.0.0-13|v3073]], [[9.0.0-20|v4096]](also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
| 00010802&lt;br /&gt;
| This CFA only contains a 1-byte &amp;quot;dummy.txt&amp;quot; in the RomFS, which contains &#039;0&#039;.&lt;br /&gt;
| [[6.3.0-12|v0]], [[9.5.0-23|v1024]], [[10.5.0-30|v2048]], [[11.0.0-33|v3072]]&lt;br /&gt;
|-&lt;br /&gt;
| 00018002&lt;br /&gt;
| Same contents as 00010802. Starting with [[7.1.0-15]], the &amp;quot;dummy.txt&amp;quot; file was removed from RomFS: this CFA RomFS now contains web-browser data(similar to 00018102) for NNID / networking, etc.&lt;br /&gt;
| [[7.0.0-13|v14]], [[7.1.0-15|v1025]], [[7.2.0-17|v2055]], [[9.0.0-20|v3078]], [[9.3.0-21|v4096]], [[9.6.0-24|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 00018102&lt;br /&gt;
| This contains local web-browser data(html/js, gfx, etc) for the Miiverse Offline-mode.&lt;br /&gt;
| [[7.0.0-13|v11]], [[9.0.0-20|v1025]](also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
| 00018202&lt;br /&gt;
| This contains the webkit/OSS [[CRO0|CROs]] used with the Miiverse applet and the &amp;quot;act&amp;quot; application.&lt;br /&gt;
| [[7.0.0-13|v7]], [[8.1.0-0_New3DS|v1026]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v2050]]&lt;br /&gt;
|-&lt;br /&gt;
| 00019002&lt;br /&gt;
| [[Fangate_updater]]&lt;br /&gt;
| [[9.3.0-21|v2]], [[9.6.0-24|v1026]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00040030 - Applets===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  JPN TitleIDLow&lt;br /&gt;
!  USA TitleIDLow&lt;br /&gt;
!  EUR TitleIDLow&lt;br /&gt;
!  CHN TitleIDLow&lt;br /&gt;
!  KOR TitleIDLow&lt;br /&gt;
!  TWN TitleIDLow&lt;br /&gt;
!  Description&lt;br /&gt;
!  JPN Versions&lt;br /&gt;
!  USA Versions&lt;br /&gt;
!  EUR Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00008102&lt;br /&gt;
| 00008102&lt;br /&gt;
| 00008102&lt;br /&gt;
| 00008102&lt;br /&gt;
| 00008102&lt;br /&gt;
| 00008102&lt;br /&gt;
| [[NS#Alternate menu|Alternate menu]]&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00008202&lt;br /&gt;
| 00008F02&lt;br /&gt;
| 00009802&lt;br /&gt;
| 0000a102&lt;br /&gt;
| 0000a902&lt;br /&gt;
| 0000b102&lt;br /&gt;
| [[Home Menu|Home Menu]] (menu)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[2.1.0-3|v2049]], [[2.2.0-X|v3075]], [[3.0.0-5|v4111]], [[4.0.0-7|v5131]], [[4.2.0-9|v6146]], [[5.0.0-11|v7172]], [[6.0.0-11|v8198]], [[7.0.0-13|v9230]], [[8.1.0-0_New3DS|v10250]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v13313]], [[9.1.0-20J|v14336]], [[9.2.0-20|v15360]], [[9.3.0-21|v16402]], [[9.4.0-21|v17408]], [[9.5.0-22|v18432]], [[9.6.0-24|v19476]], [[9.7.0-25|v20487]], [[9.8.0-25|v22528]], [[10.1.0-27|v23552]], [[10.2.0-28|v24576]], [[10.3.0-28|v25600]], [[10.4.0-29|v26626]], [[10.6.0-31|v27648]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[2.1.0-3|v2049]], [[2.2.0-X|v3075]], [[3.0.0-5|v4111]], [[4.0.0-7|v5131]], [[4.2.0-9|v6146]], [[5.0.0-11|v7172]], [[6.0.0-11|v8198]], [[7.0.0-13|v9230]], [[8.1.0-0_New3DS|v10250]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v11272]], [[9.2.0-20|v12288]], [[9.3.0-21|v13330]], [[9.4.0-21|v14336]], [[9.5.0-22|v15360]], [[9.6.0-24|v16404]], [[9.7.0-25|v17415]], [[9.8.0-25|v19456]], [[9.9.0-26|v20480]], [[10.1.0-27|v21504]], [[10.2.0-28|v22528]], [[10.3.0-28|v23552]], [[10.4.0-29|v24578]], [[10.6.0-31|v25600]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[2.1.0-3|v2049]], [[2.2.0-X|v3075]], [[3.0.0-5|v4111]], [[4.0.0-7|v5131]], [[4.2.0-9|v6146]], [[5.0.0-11|v7172]], [[6.0.0-11|v8198]], [[7.0.0-13|v9230]], [[8.1.0-0_New3DS|v10250]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v11272]], [[9.2.0-20|v12288]], [[9.3.0-21|v13330]], [[9.4.0-21|v14336]], [[9.5.0-22|v15360]], [[9.6.0-24|v16404]], [[9.7.0-25|v17415]], [[9.8.0-25|v19456]], [[10.1.0-27|v20480]], [[10.2.0-28|v21504]], [[10.3.0-28|v22528]], [[10.4.0-29|v23554]], [[10.6.0-31|v24576]]&lt;br /&gt;
|-&lt;br /&gt;
| 00008402&lt;br /&gt;
| 00009002&lt;br /&gt;
| 00009902&lt;br /&gt;
| 0000A202&lt;br /&gt;
| 0000AA02&lt;br /&gt;
| 0000B202&lt;br /&gt;
| Camera applet used by Home-menu (CtrApp)&lt;br /&gt;
| v0, v1036, [[9.0.0-20|v2049]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008502&lt;br /&gt;
| 00009102&lt;br /&gt;
| 00009A02&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| Not available on CDN&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00008602&lt;br /&gt;
| 00009202&lt;br /&gt;
| 00009B02&lt;br /&gt;
| 0000A402&lt;br /&gt;
| 0000AC02&lt;br /&gt;
| 0000B402&lt;br /&gt;
| Instruction Manual, applet for displaying instruction manuals&lt;br /&gt;
| v0, v1026, v2048, v3072, [[5.0.0-11|v4097]], [[9.0.0-20|v5120]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008702&lt;br /&gt;
| 00009302&lt;br /&gt;
| 00009C02&lt;br /&gt;
| 0000A502&lt;br /&gt;
| 0000AD02&lt;br /&gt;
| 0000B502&lt;br /&gt;
| Game Notes (Cherry)&lt;br /&gt;
| v0, v1026, v2049, [[5.0.0-11|v3073]], [[9.0.0-20|v4096]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008802&lt;br /&gt;
| 00009402&lt;br /&gt;
| 00009D02&lt;br /&gt;
| 0000A602&lt;br /&gt;
| 0000AE02&lt;br /&gt;
| 0000B602&lt;br /&gt;
| [[Internet Browser]] (spider)&lt;br /&gt;
| [[2.0.0-2|v6]], [[2.1.0-4|v1024]], [[4.0.0-7|v2050]], [[5.0.0-11|v3074 (EUR)/v3075(USA,JAP)]], [[7.0.0-13|v3088]], [[7.1.0-16|v4096]], [[9.5.0-23|v5121]], [[9.9.0-26|v6149]], [[10.2.0-28|v7168]], [[10.6.0-31|v8192]], [[10.7.0-32|v9232]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 20008802&lt;br /&gt;
| 20009402&lt;br /&gt;
| 20009D02&lt;br /&gt;
| ?&lt;br /&gt;
| 2000AE02&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]] [[Internet Browser]] (SKATER)&lt;br /&gt;
| [[8.1.0-0_New3DS|v10]], [[9.3.0-21|v1027]], [[9.6.0-24|v2051]], [[9.9.0-26|v3077]], [[10.2.0-28|v4096]], [[10.4.0-29|v5121]], [[10.6.0-31|v6144]], [[10.7.0-32|v7184]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008A02&lt;br /&gt;
| 00008A02&lt;br /&gt;
| 00008A02&lt;br /&gt;
| 00008A02&lt;br /&gt;
| 00008A02&lt;br /&gt;
| 00008A02&lt;br /&gt;
| [[ErrDisp]]&lt;br /&gt;
| v0, v1025, [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5121]], [[8.0.0-18|v6144]], [[9.0.0-20|v7168]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008A03&lt;br /&gt;
| 00008A03&lt;br /&gt;
| 00008A03&lt;br /&gt;
| 00008A03&lt;br /&gt;
| 00008A03&lt;br /&gt;
| 00008A03&lt;br /&gt;
| SAFE_MODE [[ErrDisp]]&lt;br /&gt;
| v0&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 20008A03&lt;br /&gt;
| 20008A03&lt;br /&gt;
| 20008A03&lt;br /&gt;
| ?&lt;br /&gt;
| 20008A03&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[ErrDisp]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008D02&lt;br /&gt;
| 00009602&lt;br /&gt;
| 00009F02&lt;br /&gt;
| 0000A702&lt;br /&gt;
| 0000AE02&lt;br /&gt;
| 0000B702&lt;br /&gt;
| Friend List (friend)&lt;br /&gt;
| v0, v1026, [[2.2.0-X|v2051]], v3082, v4099, [[7.0.0-13|v5120]], [[9.0.0-20|v6144]](Also for [[8.1.0-0_New3DS]]) (EUR v6, v1024, v3082, v4099, [[7.0.0-13|v5120]], [[9.0.0-20|v6144]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008E02&lt;br /&gt;
| 00009702&lt;br /&gt;
| 0000A002&lt;br /&gt;
| 0000A802&lt;br /&gt;
| 0000B002&lt;br /&gt;
| 0000B802&lt;br /&gt;
| Notifications (newslist)&lt;br /&gt;
| v0, v1029, v2054, v3075, [[9.0.0-20|v4097]] (EUR v6, v1024, v2054, v3075, [[9.0.0-20|v4097]]) (JPN: ..., [[8.1.0-0_New3DS|v4096]], [[9.0.0-20|v5121]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C002&lt;br /&gt;
| 0000C802&lt;br /&gt;
| 0000D002&lt;br /&gt;
| 0000D802&lt;br /&gt;
| 0000DE02&lt;br /&gt;
| 0000E402&lt;br /&gt;
| Software Keyboard (swkbd)&lt;br /&gt;
| v0, v1026, v2053, [[7.0.0-13|v3072]], [[9.0.0-20|v4096]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C003&lt;br /&gt;
| 0000C803&lt;br /&gt;
| 0000D003&lt;br /&gt;
| 0000D803&lt;br /&gt;
| 0000DE03&lt;br /&gt;
| 0000E403&lt;br /&gt;
| SAFE_MODE Software Keyboard (swkbd)&lt;br /&gt;
| v0&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 2000C003&lt;br /&gt;
| 2000C803&lt;br /&gt;
| 2000D003&lt;br /&gt;
| ?&lt;br /&gt;
| 2000DE03&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]] SAFE_MODE Software Keyboard (swkbd)&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]](for JPN this is v1024)&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C102&lt;br /&gt;
| 0000C902&lt;br /&gt;
| 0000D102&lt;br /&gt;
| 0000D902&lt;br /&gt;
| 0000DF02&lt;br /&gt;
| 0000E502&lt;br /&gt;
| appletEd (MiiSelector)&lt;br /&gt;
| v0, v1026, [[9.0.0-20|v2048]](Also for [[8.1.0-0_New3DS]]), [[9.3.0-21|v3077]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C302&lt;br /&gt;
| 0000CB02&lt;br /&gt;
| 0000D302&lt;br /&gt;
| 0000DB02&lt;br /&gt;
| 0000E102&lt;br /&gt;
| 0000E702&lt;br /&gt;
| PNOTE_AP (Photo file selector applet, for SD-card/etc?)&lt;br /&gt;
| v0, v1024, [[8.1.0-0_New3DS|v2049]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v3075]], [[9.3.0-21|v4096]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C402&lt;br /&gt;
| 0000CC02&lt;br /&gt;
| 0000D402&lt;br /&gt;
| 0000DC02&lt;br /&gt;
| 0000E202&lt;br /&gt;
| 0000E802&lt;br /&gt;
| SNOTE_AP (Sound file selector applet, for SD-card/etc?)&lt;br /&gt;
| v0, v3, [[8.0.0-18|v1026]], [[9.0.0-20|v2048]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C502&lt;br /&gt;
| 0000C502&lt;br /&gt;
| 0000C502&lt;br /&gt;
| 0000CF02&lt;br /&gt;
| 0000CF02&lt;br /&gt;
| 0000CF02&lt;br /&gt;
| error (This applet displays networking errors, etc)&lt;br /&gt;
| v0, v1026, v2053, v3074, [[8.1.0-0_New3DS|v4096]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v5128]], [[9.6.0-24|v6145]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C503&lt;br /&gt;
| 0000C503&lt;br /&gt;
| 0000C503&lt;br /&gt;
| 0000CF03&lt;br /&gt;
| 0000CF03&lt;br /&gt;
| 0000CF03&lt;br /&gt;
| SAFE_MODE error applet&lt;br /&gt;
| v0&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 2000C503&lt;br /&gt;
| 2000C503&lt;br /&gt;
| 2000C503&lt;br /&gt;
| ?&lt;br /&gt;
| 2000CF03&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]] SAFE_MODE error applet&lt;br /&gt;
| [[8.1.0-0_New3DS|v1024]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000CD02&lt;br /&gt;
| 0000CD02&lt;br /&gt;
| 0000CD02&lt;br /&gt;
| 0000D502&lt;br /&gt;
| 0000D502&lt;br /&gt;
| 0000D502&lt;br /&gt;
| extrapad ([[Circle Pad Pro]] calibration applet)&lt;br /&gt;
| v1, v1026, [[8.1.0-0_New3DS|v2048]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v3073]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C602&lt;br /&gt;
| 0000CE02&lt;br /&gt;
| 0000D602&lt;br /&gt;
| N/A&lt;br /&gt;
| 0000E302&lt;br /&gt;
| 0000E902&lt;br /&gt;
| mint. eShop applet, used by applications for accessing the eShop, for DLC/etc. Also used by the eShop application itself.&lt;br /&gt;
| v5, v1028, [[4.2.0-9|v2050]], [[5.0.0-11|v3072]], [[7.0.0-13|v4109]], [[7.2.0-17|v5125]](v5123 for JPN), [[8.0.0-18|v6145]], [[8.1.0-0_New3DS|v7168]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v8200]], [[9.3.0-21|v9224]], [[9.6.0-24|v10247]], [[9.8.0-25|v11264]], [[10.0.0-27|v12293]], [[10.1.0-27|v13312]], [[10.3.0-28|v14337]], [[10.4.0-29|v15360]], [[10.7.0-32|v16384]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000BC02&lt;br /&gt;
| 0000BD02&lt;br /&gt;
| 0000BE02&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| olv (Miiverse applet)&lt;br /&gt;
| [[7.0.0-13|v14]], [[7.2.0-17|v1024]], [[9.0.0-20|v2048]](Also for [[8.1.0-0_New3DS]]), [[9.3.0-21|v3072]], [[9.6.0-24|v4096]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000F602&lt;br /&gt;
| 0000F602&lt;br /&gt;
| 0000F602&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| memolib (Uses Miiverse, likely the &amp;quot;system library&amp;quot; for Miiverse)&lt;br /&gt;
| [[7.0.0-13|v5]], [[8.1.0-0_New3DS|v1024]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v2050]], [[9.3.0-21|v3072]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008302&lt;br /&gt;
| 00008B02&lt;br /&gt;
| 0000BA02&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| solv3 (Miiverse-posting applet)&lt;br /&gt;
| [[9.0.0-20|v6]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00009502&lt;br /&gt;
| 00009E02&lt;br /&gt;
| 0000B902&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| Cabinet ([[amiibo Settings]])&lt;br /&gt;
| [[9.3.0-21|v7]], [[9.6.0-24|v1031]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Most of these processes are applets, see [[NS_and_APT_Services|here]] for details.&lt;br /&gt;
&lt;br /&gt;
All of the above processes use the &amp;quot;SYSTEM&amp;quot; [[SVC|memory-region]].&lt;br /&gt;
&lt;br /&gt;
The ExeFS for Home Menu is exactly the same for USA/EUR/JPN.&lt;br /&gt;
&lt;br /&gt;
The Miiverse applet seems to use a web browser with webkit.&lt;br /&gt;
&lt;br /&gt;
=== 0004009B - [[NCCH#CFA|System Data Archives]] (Shared Archives) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  JPN TitleIDLow&lt;br /&gt;
!  USA TitleIDLow&lt;br /&gt;
!  EUR TitleIDLow&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00010202&lt;br /&gt;
| 00010202&lt;br /&gt;
| 00010202&lt;br /&gt;
| Probably Mii-related, contains &amp;quot;CFL_Res.dat&amp;quot; in the RomFS.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| Only exists for dev-units.&lt;br /&gt;
| v0, v2052&lt;br /&gt;
|-&lt;br /&gt;
| 00010402&lt;br /&gt;
| 00010402&lt;br /&gt;
| 00010402&lt;br /&gt;
| Mounted as &amp;quot;area:&amp;quot;, contains Country and Region names&lt;br /&gt;
| v0, v1024, v2050, v3072, [[7.0.0-13|v4098]], [[9.6.0-24|v5122]]&lt;br /&gt;
|-&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| Only exists for dev-units.&lt;br /&gt;
| v0, v1024, v2048&lt;br /&gt;
|-&lt;br /&gt;
| 00010602&lt;br /&gt;
| 00010602&lt;br /&gt;
| 00010602&lt;br /&gt;
| Non-Nintendo TLS Root-CA Certificates (RomFS contains files with filename &amp;quot;CACERT_PUBLIC_CA_&amp;lt;val&amp;gt;.der&amp;quot;, where &amp;lt;val&amp;gt; is 5..8)&lt;br /&gt;
| v2, [[10.5.0-30|v1024]]&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011202&lt;br /&gt;
| &amp;quot;NL/NL&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011302&lt;br /&gt;
| &amp;quot;EN/GB&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 00011402&lt;br /&gt;
| &lt;br /&gt;
| &amp;quot;EN/US&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011502&lt;br /&gt;
| &amp;quot;FR/FR/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 00011602&lt;br /&gt;
| &lt;br /&gt;
| &amp;quot;FR/CA/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011702&lt;br /&gt;
| &amp;quot;DE/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011802&lt;br /&gt;
| &amp;quot;IT/IT&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 00011902&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &amp;quot;JA_small/32&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011B02&lt;br /&gt;
| &amp;quot;PT/PT/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011C02&lt;br /&gt;
| &amp;quot;RU/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 00011D02&lt;br /&gt;
| 00011D02&lt;br /&gt;
| &amp;quot;ES/ES&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 00011E02&lt;br /&gt;
| &lt;br /&gt;
| &amp;quot;PT/BR/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 00012202&lt;br /&gt;
| 00012302&lt;br /&gt;
| 00012102&lt;br /&gt;
| ?contains a lists with error strings&lt;br /&gt;
| v1026, v2053, v3073, [[4.2.0-9|v4096]], [[5.0.0-11|v5120]], [[7.0.0-13|v6149]], [[7.2.0-17|v7168]], [[8.0.0-18|v8192]], [[9.0.0-20|v9218]], [[9.3.0-21|v10242]], [[9.6.0-24|v11269]], [[10.0.0-27|v12289]], [[10.4.0-29|v13312]], [[10.7.0-32|v13313]]&lt;br /&gt;
|-&lt;br /&gt;
| 00013202&lt;br /&gt;
| 00013302&lt;br /&gt;
| 00013102&lt;br /&gt;
| Mounted as &amp;quot;eula:&amp;quot;&lt;br /&gt;
| v0, v1024, v2049 USA: v1024, v2051, [[7.0.0-13|v3074]], [[7.2.0-17|v4100]](EUR-only), [[9.0.0-20|v4099]], [[9.9.0-26|v6144]], [[10.4.0-29|v7168]]&lt;br /&gt;
|-&lt;br /&gt;
| 00014002&lt;br /&gt;
| 00014002&lt;br /&gt;
| 00014002&lt;br /&gt;
| JPN/EUR/USA [[System Font]] (&amp;quot;font:&amp;quot;)&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 00014102&lt;br /&gt;
| 00014102&lt;br /&gt;
| 00014102&lt;br /&gt;
| CHN [[System Font]] (&amp;quot;font:&amp;quot;)&lt;br /&gt;
| v0, v1024&lt;br /&gt;
|-&lt;br /&gt;
| 00014202&lt;br /&gt;
| 00014202&lt;br /&gt;
| 00014202&lt;br /&gt;
| KOR [[System Font]] (&amp;quot;font:&amp;quot;)&lt;br /&gt;
| v0, v1024&lt;br /&gt;
|-&lt;br /&gt;
| 00014302&lt;br /&gt;
| 00014302&lt;br /&gt;
| 00014302&lt;br /&gt;
| TWN [[System Font]] (&amp;quot;font:&amp;quot;)&lt;br /&gt;
| v0, v1024&lt;br /&gt;
|-&lt;br /&gt;
| 00015202&lt;br /&gt;
| 00015302&lt;br /&gt;
| 00015102&lt;br /&gt;
| Mounted as &amp;quot;rate:&amp;quot;&lt;br /&gt;
| v0 (EUR: v0, v1024)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 000400DB - [[NCCH#CFA|System Data Archives]] ===&lt;br /&gt;
These [[NVer]] titleIDs can be found @ offset 0x320 in every [[CCI]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  EUR TitleIDLow&lt;br /&gt;
!  JPN TitleIDLow&lt;br /&gt;
!  USA TitleIDLow&lt;br /&gt;
!  CHN TitleIDLow&lt;br /&gt;
!  KOR TitleIDLow&lt;br /&gt;
!  TWN TitleIDLow&lt;br /&gt;
!  Description&lt;br /&gt;
!  USA/EUR/JPN Versions&lt;br /&gt;
!  CHN Versions&lt;br /&gt;
!  TWN Versions&lt;br /&gt;
!  KOR Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| NGWord bad word list&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1024]], [[3.0.0-5|v2052]], [[4.0.0-7|v3072]], [[4.3.0-10|v4096]], [[5.0.0-11|v5120]], [[9.0.0-20|v6144]], [[9.3.0-21|v7168]], [[9.6.0-24|v8192]]&lt;br /&gt;
| Same as USA&lt;br /&gt;
| Same as USA&lt;br /&gt;
| Same as USA&lt;br /&gt;
|-&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| [[Nintendo Zone]] hotspot list&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1024]], [[3.0.0-5|v2048]], [[4.0.0-7|v3073]], [[4.3.0-10|v4096]], [[4.4.0-10|v5120]], [[4.5.0-10|v6144]], [[5.0.0-11|v7169]], [[6.0.0-11|v8192]], [[6.2.0-12|v9216]], [[7.0.0-13|v10242]], [[7.2.0-17|v11267]], [[8.0.0-18|v12288]], [[9.0.0-20|v14336]], [[9.3.0-21|v15360]], [[9.6.0-24|v16386]], [[10.0.0-27|v17409]], [[10.4.0-29|18432]]&lt;br /&gt;
| Same as USA&lt;br /&gt;
| Same as USA&lt;br /&gt;
| Same as USA&lt;br /&gt;
|-&lt;br /&gt;
| 00016102&lt;br /&gt;
| 00016202&lt;br /&gt;
| 00016302&lt;br /&gt;
| 00016402&lt;br /&gt;
| 00016502&lt;br /&gt;
| 00016602&lt;br /&gt;
| [[NVer]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v16]], [[2.0.0-2|v32]], [[2.1.0-3|v48]], [[2.1.0-4|v64]], [[3.0.0-5|v80]], [[3.0.0-6|v96]], [[4.0.0-7|v112]],  [[4.1.0-8|v128]], [[4.2.0-9|v144]], [[4.3.0-10|v160]], [[5.0.0-11|v176]], non-USA=[[6.0.0-11|v192]]/USA=[[6.1.0-12U|v192]], [[7.0.0-13|v208]], [[7.1.0-14|v224]], [[7.1.0-15|v240]], [[7.1.0-16|v256]], [[7.2.0-17|v272]], [[8.0.0-18|v288]], [[8.1.0-19|v304]], [[9.0.0-20|v320]], [[9.3.0-21|v336]], [[9.5.0-22|v352]], [[9.5.0-23|v368]], [[9.6.0-24|v384]], [[9.7.0-25|v400]], [[9.9.0-26|v416]], [[10.0.0-27|v432]], [[10.2.0-28|v448]], [[10.4.0-29|v464]], [[10.5.0-30|v480]], [[10.6.0-31|v496]], [[10.7.0-32|v512]], [[11.0.0-33|v528]]&lt;br /&gt;
| [[4.0.0-7|v113]], [[4.2.0-9|v128]], [[5.0.0-11|v129]], [[7.1.0-16|v130]], [[7.2.0-17|v272]], [[9.5.0-23|v131]], [[9.9.0-26|v132]]&lt;br /&gt;
| [[4.1.0-8|v114]], [[4.2.0-9|v133]], [[4.3.0-10|v134]], [[5.0.0-11|v136]], [[7.0.0-13|v144]], [[7.1.0-14|v160]] [[7.1.0-16|v192]], [[7.2.0-17|v272]], [[8.0.0-18|v208]], [[8.1.0-19|v224]], [[9.0.0-20|v240]], [[9.5.0-22|v272]], [[9.5.0-23|v288]], [[9.6.0-24|v304]], [[9.7.0-25|v320]], [[9.9.0-26|v336]], [[10.0.0-27|v352]], [[10.2.0-28|v368]], [[10.4.0-29|v384]], [[10.5.0-30|v400]], [[10.6.0-31|v416]], [[10.7.0-32|v432]], [[11.0.0-33|v448]]&lt;br /&gt;
| [[4.0.0-7|v113]], [[4.1.0-8|v114]], [[4.2.0-9|v133]], [[4.3.0-10|v134]], [[5.0.0-11|v136]], [[7.0.0-13|v160]], [[7.1.0-14|v176]], [[7.1.0-16|v176]], [[7.2.0-17|v272]], [[8.0.0-18|v224]], [[8.1.0-19|v240]], [[9.0.0-20|v256]], [[9.3.0-21|v272]], [[9.5.0-22|v288]], [[9.5.0-23|v304]], [[9.6.0-24|v320]], [[9.7.0-25|v336]], [[9.9.0-26|v352]], [[10.0.0-27|v368]], [[10.2.0-28|v384]], [[10.4.0-29|v400]], [[10.5.0-30|v416]], [[10.6.0-31|v432]], [[10.7.0-32|v448]], [[11.0.0-33|v464]]&lt;br /&gt;
|-&lt;br /&gt;
| 20016102&lt;br /&gt;
| 20016202&lt;br /&gt;
| 20016302&lt;br /&gt;
| N/A&lt;br /&gt;
| 20016502&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]] [[NVer]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.0.0-20|v320]], [[9.3.0-21|v336]], [[9.5.0-22|v352]], [[9.5.0-22|v352]], [[9.5.0-23|v368]], [[9.6.0-24|v384]], [[9.7.0-25|v400]], [[9.9.0-26|v416]], [[10.0.0-27|v432]], [[10.2.0-28|v448]], [[10.4.0-29|v464]], [[10.5.0-30|v480]], [[10.6.0-31|v496]], [[10.7.0-32|v512]], [[11.0.0-33|v528]]&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v320]], [[9.7.0-25|v336]], [[9.9.0-26|v352]], [[10.0.0-27|v368]], [[10.2.0-28|v384]], [[10.4.0-29|v400]], [[10.5.0-30|v416]], [[10.6.0-31|v432]], [[10.7.0-32|v448]], [[11.0.0-33|v464]]&lt;br /&gt;
|-&lt;br /&gt;
| 00017102&lt;br /&gt;
| 00017202&lt;br /&gt;
| 00017302&lt;br /&gt;
| 00017402&lt;br /&gt;
| 00017502&lt;br /&gt;
| 00017602&lt;br /&gt;
| [[CVer]]&lt;br /&gt;
| [[1.0.0-0|v1024]], [[1.1.0-1|v1045]], [[2.0.0-2|v2049]], [[2.1.0-3|v2069]], [[2.2.0-X|v2088]] [[3.0.0-5|v3088]], [[4.0.0-7|v4098]], [[4.1.0-8|v4113]], [[4.2.0-9|v4130]], [[4.3.0-10|v4145]], [[4.4.0-10|v4163]], [[4.5.0-10|v4176]], [[5.0.0-11|v5120]], [[5.1.0-11|v5136]], [[6.0.0-11|v6146]], [[6.1.0-11|v6160]], [[6.2.0-12|v6178]], [[6.3.0-12|v6192]], [[7.0.0-13|v7175]], [[7.1.0-14|v7187]], [[7.2.0-17|v7203]], [[8.0.0-18|v8196]], [[8.1.0-18|v8208]], [[8.1.0-0_New3DS|v8215]](8.1.0-0_New3DS), [[9.0.0-20|v9218]], [[9.1.0-20J|v9232]](JPN-only), [[9.2.0-20|v9248]], [[9.3.0-21|v9264]], [[9.4.0-21|v9280]], [[9.5.0-22|v9296]], [[9.6.0-24|v9319]], [[9.7.0-25|v9328]], [[9.8.0-25|v9344]], [[9.9.0-26|v9360]], [[10.0.0-27|v10240]], [[10.1.0-27|v10256]], [[10.2.0-28|v10272]], [[10.3.0-28|v10288]], [[10.4.0-29|v10304]], [[10.5.0-30|v10320]], [[10.6.0-31|v10336]], [[10.7.0-32|v10352]], [[11.0.0-33|v11264]]&lt;br /&gt;
| [[1.0.0-0|v1024]], [[1.1.0-1|v1045]], [[2.0.0-2|v2049]], [[2.1.0-3|v2069]], [[2.2.0-X|v2088]] [[3.0.0-5|v3088]], [[4.0.0-7|v4098]], [[4.1.0-8|v4113]], [[4.2.0-9|v4130]], [[4.3.0-10|v4145]], [[4.4.0-10|v4163]], [[4.5.0-10|v4176]], [[5.0.0-11|v5120]], [[5.1.0-11|v5136]], [[6.0.0-11|v6146]], [[6.1.0-11|v6160]], [[6.2.0-12|v6178]], [[6.3.0-12|v6192]], [[7.0.0-13|v7175]], [[7.1.0-14|v7187]], [[7.2.0-17|v7203]], [[8.0.0-18|v8196]], [[8.1.0-18|v8208]], [[9.0.0-20|v9217]], [[9.3.0-21|v9264]], [[9.5.0-22|v9296]], [[9.6.0-24|v9319]], [[9.7.0-25|v9328]], [[9.8.0-25|v9344]], [[9.9.0-26|v9360]], [[10.0.0-27|v10240]], [[10.2.0-28|v10272]], [[10.4.0-29|v10304]], [[10.5.0-30|v10320]], [[10.6.0-31|v10336]], [[10.7.0-32|v10352]], [[11.0.0-33|v11264]]&lt;br /&gt;
| Same as CHN&lt;br /&gt;
| Same as CHN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00040130 - System [[Services API|Modules]] ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00001002&lt;br /&gt;
| [[Services|sm]] (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001003&lt;br /&gt;
| SAFE_MODE [[Services|sm]] (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001102&lt;br /&gt;
| [[Filesystem services‎|fs]] (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001103&lt;br /&gt;
| SAFE_MODE [[Filesystem services‎|fs]] (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001202&lt;br /&gt;
| [[Process Manager Services|pm]] (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001203&lt;br /&gt;
| SAFE_MODE [[Process Manager Services|pm]] (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001302&lt;br /&gt;
| [[Loader Services‎|loader]]  (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001303&lt;br /&gt;
| SAFE_MODE [[Loader Services‎|loader]]  (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001402&lt;br /&gt;
| [[PXI Services‎|pxi]]  (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001403&lt;br /&gt;
| SAFE_MODE [[PXI Services‎|pxi]]  (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001502&lt;br /&gt;
| [[Application Manager Services|AM]] ( Application Manager )&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[3.0.0-5|v2053]], [[4.0.0-7|v3072]], [[5.0.0-11|v4098]], [[6.0.0-11|v5120]], [[8.0.0-18|v6148]], [[8.1.0-0_New3DS|v7168]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v8192]], [[10.0.0-27|v9217]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001503&lt;br /&gt;
| SAFE_MODE [[Application Manager Services|AM]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001503&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Application Manager Services|AM]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001602&lt;br /&gt;
| [[Camera Services|Camera]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[3.0.0-5|v2048]], [[4.0.0-7|v3074]], [[5.0.0-11|v4098]], [[6.0.0-11|v5120]], [[7.1.0-14|v6146]], [[8.0.0-18|v7172]], [[9.0.0-20|v9216]], [[9.3.0-21|v10242]], [[10.0.0-27|v11265]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001602&lt;br /&gt;
| [[New_3DS]] [[Camera Services|Camera]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8200]], [[9.0.0-20|v9218]], [[9.3.0-21|v10242]], [[10.0.0-27|v11265]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001702&lt;br /&gt;
| [[Config Services|Config]] (cfg)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1024]], [[3.0.0-5|v2049]], v3072, [[4.0.0-7|v4096]], [[5.0.0-11|v5122]], [[6.0.0-11|v6145]], [[6.1.0-11|v7168]], [[7.0.0-13|v8196]], [[7.2.0-17|v9220]], [[8.0.0-18|v10243]], [[8.1.0-0_New3DS|v11265]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v12290]], [[9.3.0-21|v13315]], [[9.6.0-24|v14342]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001703&lt;br /&gt;
| SAFE_MODE [[Config Services|Config]] (cfg)&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001703&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Config Services|Config]] (cfg)&lt;br /&gt;
| [[8.1.0-0_New3DS|v11265]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001802&lt;br /&gt;
| [[Codec Services|Codec]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[5.0.0-11|v4098]], [[7.0.0-13|v5120]], [[8.0.0-18|v6144]], [[9.0.0-20|v7168]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
| 00001803&lt;br /&gt;
| SAFE_MODE [[Codec Services|Codec]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001803&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Codec Services|Codec]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001902&lt;br /&gt;
| dmnt, debugger sysmodule. This use devunit-only HIO for devunit&amp;lt;&amp;gt;pc comms. This only exists for development units(launched by NS during startup depending on certain [[Configuration_Memory]] fields&#039; values). This is installed at the [[Factory_Setup|factory]], then later deleted at the factory on retail units.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00001A02&lt;br /&gt;
| [[DSP Services|DSP]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[4.0.0-7|v2048]], [[5.0.0-11|v3074]], [[6.0.0-11|v4096]], [[8.0.0-18|v5120]], [[9.7.0-25|v6145]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001A03&lt;br /&gt;
| SAFE_MODE [[DSP Services|DSP]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001A03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[DSP Services|DSP]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v6145]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001B02&lt;br /&gt;
| [[GPIO Services|GPIO]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[5.0.0-11|v1025]], [[8.0.0-18|v2048]], [[9.5.0-22|v3073]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001B03&lt;br /&gt;
| SAFE_MODE [[GPIO Services|GPIO]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001B03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[GPIO Services|GPIO]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v3073]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001C02&lt;br /&gt;
| [[GSP Services|GSP]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1040]], [[2.0.0-2|v2049]], [[3.0.0-5|v3075]], v4098, [[4.0.0-7|v5120]], [[5.0.0-11|v6145]], [[6.0.0-11|v7168]], [[8.0.0-18|v8196]], [[9.0.0-20|v10240]], [[9.3.0-21|v11264]], [[9.6.0-24|v12294]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001C02&lt;br /&gt;
| [[New_3DS]] [[GSP Services|GSP]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v10243]], [[9.3.0-21|v11267]], [[9.6.0-24|v12294]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001C03&lt;br /&gt;
| SAFE_MODE [[GSP Services|GSP]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001C03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[GSP Services|GSP]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v9217]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001D02&lt;br /&gt;
| [[HID Services|HID]] (Human Interface Devices) &lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5121]], [[7.2.0-17|v6148]], [[8.0.0-18|v7168]], [[8.1.0-0_New3DS|v8192]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v9216]], [[9.3.0-21|v10240]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001D03&lt;br /&gt;
| SAFE_MODE [[HID Services|HID]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001D03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[HID Services|HID]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8193]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001E02&lt;br /&gt;
| [[I2C Services|i2c]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[5.0.0-11|v2049]], [[8.0.0-18|v3076]], [[9.3.0-21|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001E02&lt;br /&gt;
| [[New_3DS]] [[I2C Services|i2c]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4096]], [[9.3.0-21|v5121]]&lt;br /&gt;
|- &lt;br /&gt;
| 00001E03&lt;br /&gt;
| SAFE_MODE [[I2C Services|i2c]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|- &lt;br /&gt;
| 20001E03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[I2C Services|i2c]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4097]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001F02&lt;br /&gt;
| [[MCU Services|MCU]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.1.0-3|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4102]], [[5.0.0-11|v5122]], [[6.0.0-11|v6145]], [[7.0.0-13|v7168]], [[8.0.0-18|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001F02&lt;br /&gt;
| [[New_3DS]] [[MCU Services|MCU]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001F03&lt;br /&gt;
| SAFE_MODE [[MCU Services|MCU]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001F03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[MCU Services|MCU]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v9217]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002002&lt;br /&gt;
| [[MIC Services|MIC]] (Microphone)&lt;br /&gt;
| [[1.0.0-0|v0]], [[5.0.0-11|v1025]], [[8.0.0-18|v2048]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002102&lt;br /&gt;
| [[PDN Services|PDN]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[5.0.0-11|v1025]], [[8.0.0-18|v2048]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002103&lt;br /&gt;
| SAFE_MODE [[PDN Services|PDN]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002103&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[PDN Services|PDN]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v3073]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002202&lt;br /&gt;
| [[PTM Services|PTM]] (Play time, pedometer, and battery manager)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3075]], v4096, [[4.0.0-7|v5120]], [[5.0.0-11|v6146]], [[6.0.0-11|v7168]], [[7.0.0-13|v8192]], [[8.0.0-18|v9219]], [[9.6.0-24|v11264]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002202&lt;br /&gt;
| [[New_3DS]] [[PTM Services|PTM]] (Play time, pedometer, and battery manager)&lt;br /&gt;
| [[8.1.0-0_New3DS|v10240]], [[9.6.0-24|v11264]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002203&lt;br /&gt;
| SAFE_MODE [[PTM Services|PTM]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002203&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[PTM Services|PTM]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v10241]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002302&lt;br /&gt;
| [[SPI Services|spi]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[5.0.0-11|v2049]], [[8.0.0-18|v3072]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002302&lt;br /&gt;
| [[New_3DS]] [[SPI Services|spi]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4096]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002303&lt;br /&gt;
| SAFE_MODE [[SPI Services|spi]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002303&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[SPI Services|spi]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4097]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002402&lt;br /&gt;
| [[AC Services|AC]] (Network manager)&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1024]], [[2.0.0-2|v2052]], [[2.1.0-3|v3072]], [[3.0.0-5|v4101]], [[5.0.0-11|v5122]], [[7.0.0-13|v6145]], [[8.0.0-18|v7172]], [[9.0.0-20|v8192]](Also for [[8.1.0-0_New3DS]]), [[9.3.0-21|v9216]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002403&lt;br /&gt;
| SAFE_MODE [[AC Services|AC]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002403&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[AC Services|AC]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8193]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002602&lt;br /&gt;
| [[CECD Services|Cecd]] (StreetPass)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3073]], [[4.0.0-7|v4097]], [[5.0.0-11|v5122]], [[6.0.0-11|v6144]], [[6.2.0-12|v7170]], [[7.0.0-13|v8193]], [[8.0.0-18|v9216]], [[9.0.0-20|v10240]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002702&lt;br /&gt;
| [[CSND Services|CSND]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[4.0.0-7|v2048]], [[5.0.0-11|v3073]], [[8.0.0-18|v4096]], [[9.0.0-20|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002703&lt;br /&gt;
| SAFE_MODE [[CSND Services|CSND]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002703&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[CSND Services|CSND]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v5121]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002802&lt;br /&gt;
| [[DLP Services|DLP]] ([[Download Play]])&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3078]], [[5.0.0-11|v4099]], [[8.0.0-18|v5123]], [[9.0.0-20|v6145]](Also for [[8.1.0-0_New3DS]]), [[9.6.0-24|v7174]], [[10.0.0-27|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002902&lt;br /&gt;
| [[HTTP Services|HTTP]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.1.0-3|v2049]], [[2.2.0-X|v3072]], [[3.0.0-5|v4099]], [[4.0.0-7|v5122]], [[5.0.0-11|v6145]], [[7.0.0-13|v7171]], [[7.1.0-14|v8192]], [[8.0.0-18|v9220]], [[8.1.0-18|v10245]], [[8.1.0-0_New3DS|v11264]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v12288]], [[9.6.0-24|v13318]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002903&lt;br /&gt;
| SAFE_MODE [[HTTP Services|HTTP]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002903&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[HTTP Services|HTTP]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v10241]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002A02&lt;br /&gt;
| [[MP Services|MP]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[5.0.0-11|v1025]], [[8.0.0-18|v2048]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002A03&lt;br /&gt;
| SAFE_MODE [[MP Services|MP]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002B02&lt;br /&gt;
| [[NDM Services|NDM]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[3.0.0-5|v2049]], [[4.0.0-7|v3072]], [[5.0.0-11|v4098]], [[8.0.0-18|v5124]], [[8.1.0-0_New3DS|v6144]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002C02&lt;br /&gt;
| [[NIM Services|NIM]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1028]], [[3.0.0-5|v2055]], [[4.0.0-7|v3074]], [[5.0.0-11|v4100]], [[6.0.0-11|v5120]], [[7.0.0-13|v6148]], [[7.2.0-17|v7174]], [[8.0.0-18|v8195]], [[8.1.0-0_New3DS|v9217]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v10249]], [[9.3.0-21|v11267]], [[9.6.0-24|v12296]], [[10.0.0-27|v13313]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002C03&lt;br /&gt;
| SAFE_MODE [[NIM Services|NIM]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002C03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[NIM Services|NIM]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v9217]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002D02&lt;br /&gt;
| [[NWM Services|NWM]] ( Low-level wifi manager )&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1024]], [[2.0.0-2|v2052]], [[2.2.0-X|v3072]], [[3.0.0-5|v4101]], [[4.0.0-7|v5120]], [[5.0.0-11|v6148]], [[6.0.0-11|v7169]], [[7.2.0-17|v8196]], [[8.0.0-18|v9216]], [[9.0.0-20|v10240]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002D03&lt;br /&gt;
| SAFE_MODE [[NWM Services|NWM]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[6.0.0-11|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002D03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[NWM Services|NWM]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v10241]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002E02&lt;br /&gt;
| [[Socket Services|Sockets]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1024]], [[2.0.0-2|v2053]], [[3.0.0-5|v3075]], [[4.0.0-7|v4096]], [[5.0.0-11|v5121]], [[8.0.0-18|v6144]], [[9.0.0-20|v7168]], [[10.6.0-31|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002E03&lt;br /&gt;
| SAFE_MODE [[Socket Services|Sockets]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002E03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Socket Services|Sockets]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002F02&lt;br /&gt;
| [[SSL Services|SSL]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1024]], [[2.1.0-3|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5122]], [[8.0.0-18|v6144]], [[9.0.0-20|v7168]], [[9.6.0-24|v8198]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002F03&lt;br /&gt;
| SAFE_MODE [[SSL Services|SSL]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002F03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[SSL Services|SSL]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003000&lt;br /&gt;
| [[FIRM|Process9]] (in SAFE_MODE and normal NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00003102&lt;br /&gt;
| [[Process Services‎|PS]] ( Process Manager )&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[5.0.0-11|v2049]], [[6.0.0-11|v3072]], [[8.0.0-18|v4096]], [[9.0.0-20|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003103&lt;br /&gt;
| SAFE_MODE [[Process Services‎|PS]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20003103&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Process Services‎|PS]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v5121]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003202&lt;br /&gt;
| [[Friend Services‎|friends]] (Friends list)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1028]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5122]], [[7.0.0-13|v6145]], [[8.0.0-18|v7172]], [[9.0.0-20|v8192]](Also for [[8.1.0-0_New3DS]]), [[10.5.0-30|v9216]], [[10.7.0-32|v10240]], [[11.0.0-33|v11264]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003203&lt;br /&gt;
| SAFE_MODE [[Friend Services‎|friends]] (Friends list)&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20003203&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Friend Services‎|friends]] (Friends list)&lt;br /&gt;
| [[8.1.0-0_New3DS|v8193]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003302&lt;br /&gt;
| [[IR Services‎|IR]] (Infrared)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5121]], [[8.0.0-18|v6148]], [[8.1.0-0_New3DS|v7170]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v8192]], [[9.3.0-21|v9216]], [[9.6.0-24|v10246]], [[10.0.0-27|v11265]], [[10.6.0-31|v12289]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003303&lt;br /&gt;
| SAFE_MODE [[IR Services‎|IR]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20003303&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[IR Services‎|IR]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|- &lt;br /&gt;
| 00003402&lt;br /&gt;
| [[BOSS Services‎|BOSS]] (SpotPass)&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1024]], [[2.0.0-2|v2053]], [[2.2.0-X|v3073]], [[3.0.0-5|v4101]], [[4.0.0-7|v5122]], [[5.0.0-11|v6146]], [[6.0.0-11|v7169]], [[6.2.0-12|v8193]], [[7.0.0-13|v9222]], [[8.0.0-18|v10240]], [[9.0.0-20|v11266]], [[10.0.0-27|v12289]], [[10.4.0-29|v13314]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003502&lt;br /&gt;
| [[News Services‎|News]] (Notifications)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1028]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[5.0.0-11|v4097]], [[8.0.0-18|v5120]], [[9.0.0-20|v6147]], [[9.7.0-25|v7168]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003602&lt;br /&gt;
| &amp;quot;debugger&amp;quot;. This only exist for development units(launched by NS during startup depending on certain [[Configuration_Memory]] fields&#039; values).&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00003702&lt;br /&gt;
| [[RO_Services|RO]]&lt;br /&gt;
| [[2.0.0-2|v0]], [[4.0.0-7|v1024]], [[5.0.0-11|v2049]], [[7.2.0-17|v3074]], [[8.0.0-18|v4096]], [[9.0.0-20|v5120]](Also for [[8.1.0-0_New3DS]]), [[9.3.0-21|v6148]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003802&lt;br /&gt;
| [[ACT Services‎|act]] (handles Nintendo Network &#039;&#039;&#039;a&#039;&#039;&#039;c&#039;&#039;&#039;c&#039;&#039;&#039;oun&#039;&#039;&#039;t&#039;&#039;&#039;s)&lt;br /&gt;
| [[7.0.0-13|v1029]], [[7.1.0-14|v2050]], [[7.2.0-17|v3077]], [[8.0.0-18|v4099]], [[8.1.0-0_New3DS|v5120]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v6144]], [[9.3.0-21|v7168]], [[9.6.0-24|v8198]]&lt;br /&gt;
|-&lt;br /&gt;
| 00004002&lt;br /&gt;
| Old3DS [[NFC_Services|nfc]]&lt;br /&gt;
| [[9.3.0-21|v2053]], [[9.6.0-24|v4106]], [[9.7.0-25|v5121]], [[10.0.0-27|v6145]], [[10.6.0-31|v7168]], [[10.7.0-32|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 20004002&lt;br /&gt;
| [[New_3DS]] [[NFC_Services|nfc]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.0.0-20|v1024]], [[9.3.0-21|v2053]], [[9.5.0-22|v3073]], [[9.6.0-24|v4102]], [[10.0.0-27|v6145]], [[10.6.0-31|v7168]]&lt;br /&gt;
|-&lt;br /&gt;
| 20004102&lt;br /&gt;
| [[New_3DS]] [[MVD Services|mvd]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.0.0-20|v1024]]&lt;br /&gt;
|-&lt;br /&gt;
| 20004202&lt;br /&gt;
| [[New_3DS]] [[QTM Services|qtm]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8]], [[9.0.0-20|v1024]], [[9.3.0-21|v2052]]&lt;br /&gt;
|-&lt;br /&gt;
| 00008002&lt;br /&gt;
| [[NS]] (Memory-region: &amp;quot;SYSTEM&amp;quot;)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1028]], [[2.2.0-X|v2048]], [[3.0.0-5|v3077]], v4096, [[4.0.0-7|v5121]], [[5.0.0-11|v6148]], [[5.1.0-11|v7168]], [[6.0.0-11|v8193]], [[6.1.0-11|v9216]], [[7.0.0-13|v10248]], [[7.2.0-17|v11268]], [[8.0.0-18|v12291]], [[8.1.0-0_New3DS|v13312]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v14336]], [[9.3.0-21|v15360]], [[9.6.0-24|v16390]], [[9.8.0-25|v17408]], [[10.0.0-27|v18433]], [[10.4.0-29|v19458]]&lt;br /&gt;
|-&lt;br /&gt;
| 00008003&lt;br /&gt;
| SAFE_MODE [[NS]] (Memory-region: &amp;quot;SYSTEM&amp;quot;)&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20008003&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[NS]] (Memory-region: &amp;quot;SYSTEM&amp;quot;)&lt;br /&gt;
| [[8.1.0-0_New3DS|v13313]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Once Home Menu finishes loading, all of the above system modules are running, except for MP, RO, and act which are automatically [[Process_Manager_Services|loaded]] when a process requires them. When [[Process_Manager_Services|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.&lt;br /&gt;
&lt;br /&gt;
All of the above system modules use the &amp;quot;BASE&amp;quot; [[SVC|memory-region]](specified in the exheader), except when listed otherwise for certain modules.&lt;br /&gt;
&lt;br /&gt;
When handling the exheader dependency list starting with [[8.0.0-18]], Old3DS FIRM [[Process_Manager_Services|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. When the New3DS pm-module is launching any title except [[NS]], it first attempts to launch the title with programID-low bitmask 0x20000000 set, then with that bitmask clear if launching fails.&lt;br /&gt;
&lt;br /&gt;
=== 00040138 - [[FIRM|System Firmware]] ===&lt;br /&gt;
NATIVE_FIRM and SAFE_MODE_FIRM for the initial versions are exactly the same, besides [[Configuration_Memory|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_Settings#System_Updater|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/&amp;lt;TID&amp;gt;/data use a custom format, this is handled by AGB_FIRM.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Description&lt;br /&gt;
!  USA/EUR/JPN Versions&lt;br /&gt;
!  CHN Versions&lt;br /&gt;
!  KOR Versions&lt;br /&gt;
!  TWN Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00000001&lt;br /&gt;
| Unknown, very similar to SAFE_MODE_FIRM. Exists only on dev units and seems to only be used by SystemUpdaters.&lt;br /&gt;
| v0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00000002&lt;br /&gt;
| NATIVE_FIRM (Native Firmware)&lt;br /&gt;
| [[1.0.0-0|v432]], [[1.1.0-1|v1472]], [[2.0.0-2|v2516]], [[2.1.0-3|v3553]], [[2.2.0-X|v4595]], [[3.0.0-5|v5647]], [[4.0.0-7|v6677]], [[4.1.0-8|v7712]], [[5.0.0-11|v8758]], [[5.1.0-11|v9792]], [[6.0.0-11|v10833]], [[6.1.0-11|v11872]], [[7.0.0-13|v12916]], [[7.2.0-17|v13956]], v15043, [[8.0.0-18|v15047]], [[9.0.0-20|v17120]], [[9.3.0-21|v18182]], [[9.5.0-22|v19216]], [[9.6.0-24|v20262]], [[10.0.0-27|v21288]], [[10.2.0-28|v22313]], [[10.4.0-29|v23341]], [[11.0.0-33|v24368]]&lt;br /&gt;
| Same as USA/EUR/JPN starting with the USA/EUR/JPN [[4.0.0-7]] title-version&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 20000002&lt;br /&gt;
| [[New_3DS]] NATIVE_FIRM (Native Firmware)&lt;br /&gt;
| [[8.1.0-0_New3DS|v16085]], [[9.0.0-20|v17120]], [[9.3.0-21|v18182]], [[9.5.0-22|v19218]], [[9.6.0-24|v20262]], [[10.0.0-27|v21288]], [[10.2.0-28|v22313]], [[10.4.0-29|v23341]], [[11.0.0-33|v24368]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 00000003&lt;br /&gt;
| SAFE_MODE_FIRM &lt;br /&gt;
| [[1.0.0-0|v432]], [[3.0.0-5|v5632]]&lt;br /&gt;
| Same as USA/EUR/JPN starting with the USA/EUR/JPN [[3.0.0-5]] title-version&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 20000003&lt;br /&gt;
| [[New_3DS]] SAFE_MODE_FIRM &lt;br /&gt;
| [[8.1.0-0_New3DS|v16081]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 00000102 &lt;br /&gt;
| TWL_FIRM ( DSi Firmware )&lt;br /&gt;
| [[1.0.0-0|v432]], [[2.0.0-2|v1489]], [[3.0.0-5|v2565]], v3601, [[4.0.0-7|v4625]], [[4.4.0-10|v5681]], [[4.5.0-10|v6704]], [[6.0.0-11|v7762]], [[6.2.0-12|v8817]]&lt;br /&gt;
| Same as USA/EUR/JPN starting with the USA/EUR/JPN [[4.0.0-7]] title-version&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 20000102 &lt;br /&gt;
| [[New_3DS]] TWL_FIRM ( DSi Firmware )&lt;br /&gt;
| [[8.1.0-0_New3DS|v9936]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|- &lt;br /&gt;
| 00000202&lt;br /&gt;
| AGB_FIRM ( GBA Firmware )&lt;br /&gt;
| [[3.0.0-5|v519]], v1553, [[4.0.0-7|v2576]], [[6.0.0-11|v3665]]&lt;br /&gt;
| [[4.0.0-7|v2576]]&lt;br /&gt;
| [[4.0.0-7|v2576]], [[6.0.0-11|v3665]]&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|- &lt;br /&gt;
| 20000202&lt;br /&gt;
| [[New_3DS]] AGB_FIRM ( GBA Firmware )&lt;br /&gt;
| [[8.1.0-0_New3DS|v4816]]&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Application Titles ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Content Category&lt;br /&gt;
!  Bit Mask(s)&lt;br /&gt;
!  Category Bit Mask&lt;br /&gt;
|-&lt;br /&gt;
|  [[Title list/eShop Titles|Application]] (eShop Title)&lt;br /&gt;
|  Normal&lt;br /&gt;
|  0x0000&lt;br /&gt;
|-&lt;br /&gt;
|  DLP Child&lt;br /&gt;
|  DlpChild&lt;br /&gt;
|  0x0001&lt;br /&gt;
|-&lt;br /&gt;
|  [[EShop Demos|Demo]]&lt;br /&gt;
|  Demo&lt;br /&gt;
|  0x0002&lt;br /&gt;
|-&lt;br /&gt;
|  [[Title list/Patches|Patch]]&lt;br /&gt;
|  CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;Patch&lt;br /&gt;
|  0x000E&lt;br /&gt;
|-&lt;br /&gt;
|  [[Title list/DLC|Add-on Content]] (DLC)&lt;br /&gt;
|  NotRequireRightForMount&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;AddOnContents&lt;br /&gt;
|  0x008C&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00040001 - [[Download Play]] Titles ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TWL (DSi) Titles ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Content Category&lt;br /&gt;
!  Bit Mask(s)&lt;br /&gt;
!  Category Bit Mask&lt;br /&gt;
|-&lt;br /&gt;
|  Application (DSiWare)&lt;br /&gt;
|  TWL&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x4&lt;br /&gt;
|  0x8004&lt;br /&gt;
|-&lt;br /&gt;
|  System Application&lt;br /&gt;
|  TWL&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x1&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x4&lt;br /&gt;
|  0x8005&lt;br /&gt;
|-&lt;br /&gt;
|  System Archive&lt;br /&gt;
|  TWL&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x1&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x2&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x4&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x8&lt;br /&gt;
|  0x800F&lt;br /&gt;
|-&lt;br /&gt;
|  Developer Tool&lt;br /&gt;
|  TWL&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x1&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x4&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x10&lt;br /&gt;
|  0x8015&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Bitmask 0x1 for TWL titles denotes a system title (determining whether the title will be updated during a System Update). It appears to be sufficient, but not necessary, to make the title invisible on the [[Home menu]].&lt;br /&gt;
&lt;br /&gt;
Bitmask 0x2 for TWL titles may indicate no-execute.&lt;br /&gt;
&lt;br /&gt;
Bitmask 0x4 for TWL titles indicates internal storage.&lt;br /&gt;
&lt;br /&gt;
Bitmask 0x10 for TWL titles is found on developer tools.&lt;br /&gt;
&lt;br /&gt;
=== 00048005 - System Applications===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Region&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
!  Information&lt;br /&gt;
|-&lt;br /&gt;
| 42383841(B88A)&lt;br /&gt;
| ALL&lt;br /&gt;
| [[DS Internet]]&lt;br /&gt;
| v0, [[2.1.0-4|v1025]], [[3.0.0-5|v2048]]&lt;br /&gt;
| [[DS Internet]] is the DS-mode application, (also integrated in every online-enabled DS game) and now accessible through [[System Settings]] for configuring network settings for DS software. &lt;br /&gt;
|-&lt;br /&gt;
| 484E4441(HNDA)&lt;br /&gt;
| ALL&lt;br /&gt;
| [[Download Play]]&lt;br /&gt;
| v1024&lt;br /&gt;
| This [[Download Play]] application is the DS-mode Download Play client, launched by the 3DS-mode Download Play application.&lt;br /&gt;
|-&lt;br /&gt;
| 484E4443(HNDC)&lt;br /&gt;
| CHN&lt;br /&gt;
| [[Download Play]]&lt;br /&gt;
| v1024&lt;br /&gt;
| See Above Description.&lt;br /&gt;
|-&lt;br /&gt;
| 484E444B(HNDK)&lt;br /&gt;
| KOR&lt;br /&gt;
| [[Download Play]]&lt;br /&gt;
| v1024&lt;br /&gt;
| See Above Description.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0004800F - System Data Archives===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 484E4841(HNHA)&lt;br /&gt;
| [[Nintendo DS Cart Whitelist]]&lt;br /&gt;
| v0, [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[4.2.0-9|v5120]], [[4.3.0-10|v6145]], [[4.4.0-10|v7168]], [[4.5.0-10|v8192]], [[5.0.0-11|v9216]], [[6.0.0-11|v10240]], [[7.0.0-13|v11264]]&lt;br /&gt;
|-&lt;br /&gt;
| 484E4C41(HNLA)&lt;br /&gt;
| [[Version Data]]&lt;br /&gt;
| v0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 00048004 - DSiWare ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Region&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 4B4B5456(KKTV)&lt;br /&gt;
| EUR&lt;br /&gt;
| Cut the Rope&lt;br /&gt;
| v0, v64&lt;br /&gt;
|-&lt;br /&gt;
| 4B4E5256(KNRV)&lt;br /&gt;
| EUR&lt;br /&gt;
| A Little Bit of... Brain Training™: Maths Edition &lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 4B5A4C56(KZLV)&lt;br /&gt;
| EUR&lt;br /&gt;
| Plants vs. Zombies™&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 4B454256(KEBV)&lt;br /&gt;
| EUR&lt;br /&gt;
| ELECTROPLANKTON (Hanenbow)&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 4B513956(KQ9V)&lt;br /&gt;
| EUR&lt;br /&gt;
| Zelda: Four Swords Anniversary Edition&lt;br /&gt;
| v16&lt;br /&gt;
|-&lt;br /&gt;
| 4B574256(KWBV)&lt;br /&gt;
| EUR&lt;br /&gt;
| Mario Calculator &lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 4B574656(KWFV)&lt;br /&gt;
| EUR&lt;br /&gt;
| Mario Clock &lt;br /&gt;
| v0&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Title_list&amp;diff=17460</id>
		<title>Title list</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Title_list&amp;diff=17460"/>
		<updated>2016-06-02T08:45:22Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* 000400DB - System Data Archives */ add missing versions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NOTE: This Title list is a condensed version, only the System Titles lists are full lists. For a full list of titles on Nintendo&#039;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.&lt;br /&gt;
&lt;br /&gt;
== CTR System Titles ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  System Category&lt;br /&gt;
!  Bit Mask(s)&lt;br /&gt;
!  Category Bit Mask&lt;br /&gt;
|-&lt;br /&gt;
|  Application (SYSTEM_APPLICATION)&lt;br /&gt;
|  Normal&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&lt;br /&gt;
|  0x0010&lt;br /&gt;
|-&lt;br /&gt;
|  System Data Archives (SYSTEM_CONTENT)&lt;br /&gt;
|  Contents&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&lt;br /&gt;
|  0x001B&lt;br /&gt;
|-&lt;br /&gt;
|  Shared Data Archives (SHARED_CONTENT)&lt;br /&gt;
|  Contents&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;NotRequireRightForMount&lt;br /&gt;
|  0x009B&lt;br /&gt;
|-&lt;br /&gt;
|  System Data Archives (AUTO_UPDATE_CONTENT)&lt;br /&gt;
|  Contents&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;NotRequireUserApproval&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;NotRequireRightForMount&lt;br /&gt;
|  0x00DB&lt;br /&gt;
|-&lt;br /&gt;
|  Applet (APPLET)&lt;br /&gt;
|  Normal&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;RequireBatchUpdate&lt;br /&gt;
|  0x0030&lt;br /&gt;
|-&lt;br /&gt;
|  Module (BASE)&lt;br /&gt;
|  Normal&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;RequireBatchUpdate&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CanSkipConvertJumpId&lt;br /&gt;
|  0x0130&lt;br /&gt;
|-&lt;br /&gt;
|  Firmware (FIRMWARE)&lt;br /&gt;
|  Normal&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;RequireBatchUpdate&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CanSkipConvertJumpId&lt;br /&gt;
|  0x0138&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00040010 - System Applications ===&lt;br /&gt;
The versions for CHN, KOR, and TWN are separate from the other regions.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  JPN TIDLow&lt;br /&gt;
!  USA TIDLow&lt;br /&gt;
!  EUR TIDLow&lt;br /&gt;
!  CHN TIDLow&lt;br /&gt;
!  KOR TIDLow&lt;br /&gt;
!  TWN TIDLow&lt;br /&gt;
!  Description&lt;br /&gt;
!  JPN Versions&lt;br /&gt;
!  EUR Versions&lt;br /&gt;
!  USA Versions&lt;br /&gt;
!  CHN Versions&lt;br /&gt;
!  KOR Versions&lt;br /&gt;
!  TWN Versions&lt;br /&gt;
!  Status&lt;br /&gt;
|-&lt;br /&gt;
| 00020000&lt;br /&gt;
| 00021000&lt;br /&gt;
| 00022000&lt;br /&gt;
| 00026000&lt;br /&gt;
| 00027000&lt;br /&gt;
| 00028000&lt;br /&gt;
| [[System Settings]] (mset)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[3.0.0-5|v2060]], [[4.0.0-7|v3074]], [[5.0.0-11|v4097]], [[6.0.0-11|v5127]], [[7.0.0-13|v6157]], [[7.2.0-17|v7173]], [[8.1.0-0_New3DS|v8198]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v9224]], [[9.6.0-24|v10245]], [[10.6.0-31|v10256]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[3.0.0-5|v2061]], [[4.0.0-7|v3075]], [[5.0.0-11|v4097]], [[6.0.0-11|v5127]], [[7.0.0-13|v6157]], [[7.2.0-17|v7174]], [[9.0.0-20|v8202]], [[9.6.0-24|v9220]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[3.0.0-5|v2062]], [[4.0.0-7|v3078]], [[5.0.0-11|v4098]], [[6.0.0-11|v5128]], [[7.0.0-13|v6157]], [[7.2.0-17|v7174]], [[9.0.0-20|v8203]], [[9.6.0-24|v9221]]&lt;br /&gt;
| [[4.0.0-7|v8]], [[4.4.0-10|v1024]](CHN-only sysupdate for just mset), [[5.0.0-11|v2049]], [[7.0.0-13|v3075]]&lt;br /&gt;
| [[4.0.0-7|v1026]], [[5.0.0-11|v2049]], [[7.0.0-13|v4098]]&lt;br /&gt;
| [[4.1.0-8|v8]], [[4.2.0-9|v1024]], [[5.0.0-11|v2050]], [[7.0.0-13|v3074]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020100&lt;br /&gt;
| 00021100&lt;br /&gt;
| 00022100&lt;br /&gt;
| 00026100&lt;br /&gt;
| 00027100&lt;br /&gt;
| 00028100&lt;br /&gt;
| [[Download Play]] (dlplay)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]], [[4.0.0-7|v2051]], [[9.0.0-20|v3072]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]], [[4.0.0-7|v2051]], [[9.0.0-20|v3073]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]], [[4.0.0-7|v2051]], [[9.0.0-20|v3073]]&lt;br /&gt;
| [[4.0.0-7|v4]]&lt;br /&gt;
| [[4.0.0-7|v1027]]&lt;br /&gt;
| [[4.1.0-8|v4]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020200&lt;br /&gt;
| 00021200&lt;br /&gt;
| 00022200&lt;br /&gt;
| 00026200&lt;br /&gt;
| 00027200&lt;br /&gt;
| 00028200&lt;br /&gt;
| [[Activity Log]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[3.0.0-5|v2051]], [[10.6.0-31|v2080]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[3.0.0-5|v2054]], [[7.0.0-13|v2064]]&lt;br /&gt;
| Same as EUR&lt;br /&gt;
| [[4.0.0-7|v3]]&lt;br /&gt;
| [[4.0.0-7|v2]], [[7.0.0-13|v16]]&lt;br /&gt;
| [[4.1.0-8|v2]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020300&lt;br /&gt;
| 00021300&lt;br /&gt;
| 00022300&lt;br /&gt;
| 00026300&lt;br /&gt;
| 00027300&lt;br /&gt;
| 00028300&lt;br /&gt;
| [[Health and Safety Information]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[4.0.0-7|v1024]], [[6.0.0-11|v2050]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[4.0.0-7|v2050]], [[6.0.0-11|v3077]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[4.0.0-7|v1026]], [[6.1.0-12U|v2051]]&lt;br /&gt;
| [[4.0.0-7|v5]]&lt;br /&gt;
| [[4.0.0-7|v2]]&lt;br /&gt;
| [[4.1.0-8|v5]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 20020300&lt;br /&gt;
| 20021300&lt;br /&gt;
| 20022300&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]] [[Health and Safety Information]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v2]], [[9.3.0-21|v17]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v1]]&lt;br /&gt;
| Same as EUR.&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020400&lt;br /&gt;
| 00021400&lt;br /&gt;
| 00022400&lt;br /&gt;
| 00026400&lt;br /&gt;
| 00027400&lt;br /&gt;
| 00028400&lt;br /&gt;
| [[Nintendo 3DS Camera]] (CtrApp)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v16]], [[3.0.0-5|v1038]], [[4.0.0-7|v2048]], [[6.0.0-11|v3073]], [[9.0.0-20|v4097]](Also for [[8.1.0-0_New3DS]]), [[10.6.0-31|v4112]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v16]], [[3.0.0-5|v1039]], [[4.0.0-7|v2048]], [[6.0.0-11|v3073]], [[7.0.0-13|v3088]], [[9.0.0-20|v4097]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v16]], [[3.0.0-5|v1039]], [[4.0.0-7|v2048]], [[6.1.0-12U|v3074]], [[7.0.0-13|v3088]], [[9.0.0-20|v4097]]&lt;br /&gt;
| [[4.0.0-7|v3]]&lt;br /&gt;
| [[4.0.0-7|v2]], [[7.0.0-13|v1040]]&lt;br /&gt;
| [[4.1.0-8|v3]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020500&lt;br /&gt;
| 00021500&lt;br /&gt;
| 00022500&lt;br /&gt;
| 00026500&lt;br /&gt;
| 00027500&lt;br /&gt;
| 00028500&lt;br /&gt;
| [[Nintendo 3DS Sound]] (CtrApp)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1027]], [[3.0.0-5|v2049]], [[4.0.0-7|v3072]], [[7.0.0-13|v3089]], [[10.6.0-31|3104]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1027]], [[3.0.0-5|v2049]], [[4.0.0-7|v3072]], [[7.0.0-13|v3088]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1027]], [[3.0.0-5|v2049]], [[4.0.0-7|v3072]], [[7.0.0-13|v3088]]&lt;br /&gt;
| [[4.0.0-7|v2]]&lt;br /&gt;
| [[4.0.0-7|v2]], [[7.0.0-13|v16]]&lt;br /&gt;
| [[4.1.0-8|v3]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020700&lt;br /&gt;
| 00021700&lt;br /&gt;
| 00022700&lt;br /&gt;
| 00026700&lt;br /&gt;
| 00027700&lt;br /&gt;
| 00028700&lt;br /&gt;
| [[Mii Maker]] (EDIT)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[7.0.0-13|v2055]], [[10.6.0-31|v2064]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| [[4.0.0-7|v1]]&lt;br /&gt;
| [[4.0.0-7|v1]], [[7.0.0-13|v16]]&lt;br /&gt;
| [[4.1.0-8|v2]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020800&lt;br /&gt;
| 00021800&lt;br /&gt;
| 00022800&lt;br /&gt;
| 00026800&lt;br /&gt;
| 00027800&lt;br /&gt;
| 00028800&lt;br /&gt;
| [[StreetPass Mii Plaza]] (MEET)&lt;br /&gt;
| [[1.0.0-0|v0]], v1027, [[2.1.0-4|v2048]], [[3.0.0-5|v3087]], [[3.0.0-6|v4096]], [[6.0.0-11|v5121]]&lt;br /&gt;
| [[1.0.0-0|v0]], v1027, [[2.1.0-4|v2048]], [[3.0.0-5|v3087]], [[3.0.0-6|v4096]], [[6.0.0-11|v5122]]&lt;br /&gt;
| [[1.0.0-0|v0]], v1027, [[2.1.0-4|v2048]], [[3.0.0-5|v3087]], [[3.0.0-6|v4096]], [[6.1.0-12U|v5124]], [[7.0.0-13|v5136]]&lt;br /&gt;
| [[4.0.0-7|v0]], [[4.4.0-10|v4096]]&lt;br /&gt;
| [[4.0.0-7|v1]], [[4.4.0-10|v4096]], [[7.0.0-13|v5120]]&lt;br /&gt;
| [[4.1.0-8|v1]], [[4.4.0-10|v4096]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020900&lt;br /&gt;
| 00021900&lt;br /&gt;
| 00022900&lt;br /&gt;
| N/A&lt;br /&gt;
| 00027900&lt;br /&gt;
| 00028900&lt;br /&gt;
| [[eShop]] (tiger)&lt;br /&gt;
| [[2.0.0-2|v4]], [[2.1.0-3|v1026]], [[3.0.0-5|v2057]], [[4.0.0-7|v3081]], [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7169]], [[7.0.0-13|v8206]], [[7.1.0-14|v9231]], [[7.2.0-17|v10245]], [[8.0.0-18|v11265]], [[8.1.0-19|v12288]], [[9.0.0-20|v13320]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17421]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]], [[10.4.0-29|v20483]], [[10.7.0-32|v21504]]&lt;br /&gt;
| [[2.0.0-2|v4]], [[2.1.0-3|v1026]], [[3.0.0-5|v2058]], [[4.0.0-7|v3081]], [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7171]], [[7.0.0-13|v8206]], [[7.1.0-14|v9231]], [[7.2.0-17|v10245]], [[8.0.0-18|v11265]], [[8.1.0-19|v12288]], [[9.0.0-20|v13320]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17421]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]], [[10.4.0-29|v20482]], [[10.7.0-32|v21505]]&lt;br /&gt;
| [[2.0.0-2|v4]], [[2.1.0-3|v1026]], [[3.0.0-5|v2058]], [[4.0.0-7|v3081]], [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7170]], [[7.0.0-13|v8206]], [[7.1.0-14|v9231]], [[7.2.0-17|v10246]], [[8.0.0-18|v11265]], [[8.1.0-19|v12288]], [[9.0.0-20|v13321]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17422]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]], [[10.4.0-29|v20482]], [[10.7.0-32|v21506]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[4.0.0-7|v3082]], [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7169]], [[7.0.0-13|v8205]], [[7.1.0-14|v9231]], [[8.1.0-19|v12288]], [[9.0.0-20|v13320]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17420]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]], [[10.4.0-29|v20482]]&lt;br /&gt;
| [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7170]], [[7.0.0-13|v8205]], [[7.1.0-14|v9231]], [[8.1.0-19|v12288]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17421]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020A00&lt;br /&gt;
| 00021A00&lt;br /&gt;
| 00022A00&lt;br /&gt;
| N/A&lt;br /&gt;
| 00027A00&lt;br /&gt;
| 00028A00&lt;br /&gt;
| [[System Transfer]] (CARDBOARD)&lt;br /&gt;
| [[2.0.0-2|v4]], [[3.0.0-5|v1035]], [[4.0.0-7|v2050]], [[5.0.0-11|v3074]], [[7.0.0-13|v4109]], [[9.0.0-20|v5130]], [[9.6.0-24|v6154]]&lt;br /&gt;
| [[2.0.0-2|v4]], [[3.0.0-5|v1035]], [[4.0.0-7|v2050]], [[5.0.0-11|v3073]], [[7.0.0-13|v4109]], [[9.0.0-20|v5131]], [[9.6.0-24|v6155]]&lt;br /&gt;
| [[2.0.0-2|v4]], [[3.0.0-5|v1035]], [[4.0.0-7|v2051]], [[5.0.0-11|v3073]], [[7.0.0-13|v4109]], [[9.0.0-20|v5131]], [[9.6.0-24|v6156]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[4.0.0-7|v2]], [[5.0.0-11|v1025]], [[7.0.0-13|v2061]], [[9.0.0-20|v3082]]&lt;br /&gt;
| [[4.1.0-8|v2]], [[5.0.0-11|v1025]], [[7.0.0-13|v2061]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020B00&lt;br /&gt;
| 00021B00&lt;br /&gt;
| 00022B00&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| [[Nintendo Zone]] (&amp;quot;Nintendo&amp;quot;)&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1034]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020D00&lt;br /&gt;
| 00021D00&lt;br /&gt;
| 00022D00&lt;br /&gt;
| 00026D00&lt;br /&gt;
| 00027D00&lt;br /&gt;
| 00028D00&lt;br /&gt;
| [[Face Raiders]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1028]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1028]], [[7.0.0-13|v1040]]&lt;br /&gt;
| Same as EUR&lt;br /&gt;
| [[4.0.0-7|v0]]&lt;br /&gt;
| [[4.0.0-7|v0]]&lt;br /&gt;
| [[4.1.0-8|v2]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 20020D00&lt;br /&gt;
| 20021D00&lt;br /&gt;
| 20022D00&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]] [[Face Raiders]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v2050]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v2049]]&lt;br /&gt;
| Same as EUR.&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020E00&lt;br /&gt;
| 00021E00&lt;br /&gt;
| 00022E00&lt;br /&gt;
| 00026E00&lt;br /&gt;
| 00027E00&lt;br /&gt;
| 00028E00&lt;br /&gt;
| [[AR Games]] (AR_ACT)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]], [[7.0.0-13|v1040]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1027]], [[7.0.0-13|v1040]]&lt;br /&gt;
| [[4.0.0-7|v0]]&lt;br /&gt;
| [[4.0.0-7|v0]], [[7.0.0-13|v16]]&lt;br /&gt;
| [[4.1.0-8|v1]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020F00&lt;br /&gt;
| 00021F00&lt;br /&gt;
| 00022F00&lt;br /&gt;
| 00026F00&lt;br /&gt;
| 00027F00&lt;br /&gt;
| 00028F00&lt;br /&gt;
| SAFE_MODE [[System Settings#System Updater|System Updater]] (mset)&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[6.0.0-11|v2049]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[6.0.0-11|v2050]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| [[4.0.0-7|v1]], [[6.0.0-11|v1026]]&lt;br /&gt;
| [[4.0.0-7|v1]]&lt;br /&gt;
| [[4.1.0-8|v1]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00023000&lt;br /&gt;
| 00024000&lt;br /&gt;
| 00025000&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Promotional video&lt;br /&gt;
| [[1.1.0-1|v2]], [[2.0.0-2|v2048]]&lt;br /&gt;
| [[1.1.0-1|v&amp;lt;unknown&amp;gt;]], [[2.0.0-2|v2048]]&lt;br /&gt;
| [[1.1.0-1|v0]], [[2.0.0-2|v2048]]&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0002BF00&lt;br /&gt;
| 0002C000&lt;br /&gt;
| 0002C100&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Nintendo Network ID Settings (act)&lt;br /&gt;
| [[7.0.0-13|v14]], [[7.2.0-17|v1029]], [[9.0.0-20|v2051]], [[9.3.0-21|v3072]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 20023100&lt;br /&gt;
| 20024100&lt;br /&gt;
| 20025100&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| [[microSD Management]] (&#039;mcopy&#039;) ([[New_3DS]]-only)&lt;br /&gt;
| [[8.1.0-0_New3DS|v8]], [[9.0.0-20|v1024]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v5]]&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Available&lt;br /&gt;
|-&lt;br /&gt;
| 2002C800&lt;br /&gt;
| 2002CF00&lt;br /&gt;
| 2002D000&lt;br /&gt;
| N/A&lt;br /&gt;
| 2002D700&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]]-only, currently stubbed. Placeholder exheader name is &amp;quot;menu&amp;quot;.&lt;br /&gt;
| [[8.1.0-0_New3DS|v2]], [[9.0.0-20|v18]], [[9.3.0-21|v34]], [[9.6.0-24|v50]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v1]], [[9.3.0-21|v17]], [[9.6.0-24|v34]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v1]], [[9.3.0-21|v18]], [[9.6.0-24|v33]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v2]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 2002C900&lt;br /&gt;
| 2002D100&lt;br /&gt;
| 2002D200&lt;br /&gt;
| N/A&lt;br /&gt;
| 2002D800&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]]-only, currently stubbed. Placeholder exheader name is &amp;quot;friend&amp;quot;.&lt;br /&gt;
| [[8.1.0-0_New3DS|v1]]&lt;br /&gt;
| Same as JPN.&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.3.0-21|v16]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v2]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 2002CA00&lt;br /&gt;
| 2002D300&lt;br /&gt;
| 2002D400&lt;br /&gt;
| N/A&lt;br /&gt;
| 2002D900&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]]-only, currently stubbed. Placeholder exheader name is &amp;quot;newslist&amp;quot;.&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], v1([[Home_Menu|JPN-only]] Oct 2, 2014 &amp;quot;sysupdate&amp;quot;, actually uploaded on 09-29-14. Identical to v0, same TMDs besides title-versions)&lt;br /&gt;
| [[8.1.0-0_New3DS|v2]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v2]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 2002CB00&lt;br /&gt;
| 2002D500&lt;br /&gt;
| 2002D600&lt;br /&gt;
| N/A&lt;br /&gt;
| 2002DA00&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]]-only, currently stubbed. Placeholder exheader name is &amp;quot;cherry&amp;quot;.&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.0.0-20|v1]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v2]]&lt;br /&gt;
| Same as EUR.&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v1]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;act&amp;quot; application seems to use a web browser with webkit?&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== 0004001B - [[NCCH#CFA|System Data Archives]] ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00010002&lt;br /&gt;
| [[ClCertA]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 00010702&lt;br /&gt;
| [[NS CFA]]&lt;br /&gt;
| [[3.0.0-5|v0]], [[6.0.0-11|v1028]], [[6.3.0-12|v2048]], [[7.0.0-13|v3073]], [[9.0.0-20|v4096]](also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
| 00010802&lt;br /&gt;
| This CFA only contains a 1-byte &amp;quot;dummy.txt&amp;quot; in the RomFS, which contains &#039;0&#039;.&lt;br /&gt;
| [[6.3.0-12|v0]], [[9.5.0-23|v1024]], [[10.5.0-30|v2048]], [[11.0.0-33|v3072]]&lt;br /&gt;
|-&lt;br /&gt;
| 00018002&lt;br /&gt;
| Same contents as 00010802. Starting with [[7.1.0-15]], the &amp;quot;dummy.txt&amp;quot; file was removed from RomFS: this CFA RomFS now contains web-browser data(similar to 00018102) for NNID / networking, etc.&lt;br /&gt;
| [[7.0.0-13|v14]], [[7.1.0-15|v1025]], [[7.2.0-17|v2055]], [[9.0.0-20|v3078]], [[9.3.0-21|v4096]], [[9.6.0-24|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 00018102&lt;br /&gt;
| This contains local web-browser data(html/js, gfx, etc) for the Miiverse Offline-mode.&lt;br /&gt;
| [[7.0.0-13|v11]], [[9.0.0-20|v1025]](also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
| 00018202&lt;br /&gt;
| This contains the webkit/OSS [[CRO0|CROs]] used with the Miiverse applet and the &amp;quot;act&amp;quot; application.&lt;br /&gt;
| [[7.0.0-13|v7]], [[8.1.0-0_New3DS|v1026]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v2050]]&lt;br /&gt;
|-&lt;br /&gt;
| 00019002&lt;br /&gt;
| [[Fangate_updater]]&lt;br /&gt;
| [[9.3.0-21|v2]], [[9.6.0-24|v1026]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00040030 - Applets===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  JPN TitleIDLow&lt;br /&gt;
!  USA TitleIDLow&lt;br /&gt;
!  EUR TitleIDLow&lt;br /&gt;
!  CHN TitleIDLow&lt;br /&gt;
!  KOR TitleIDLow&lt;br /&gt;
!  TWN TitleIDLow&lt;br /&gt;
!  Description&lt;br /&gt;
!  JPN Versions&lt;br /&gt;
!  USA Versions&lt;br /&gt;
!  EUR Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00008102&lt;br /&gt;
| 00008102&lt;br /&gt;
| 00008102&lt;br /&gt;
| 00008102&lt;br /&gt;
| 00008102&lt;br /&gt;
| 00008102&lt;br /&gt;
| [[NS#Alternate menu|Alternate menu]]&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00008202&lt;br /&gt;
| 00008F02&lt;br /&gt;
| 00009802&lt;br /&gt;
| 0000a102&lt;br /&gt;
| 0000a902&lt;br /&gt;
| 0000b102&lt;br /&gt;
| [[Home Menu|Home Menu]] (menu)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[2.1.0-3|v2049]], [[2.2.0-X|v3075]], [[3.0.0-5|v4111]], [[4.0.0-7|v5131]], [[4.2.0-9|v6146]], [[5.0.0-11|v7172]], [[6.0.0-11|v8198]], [[7.0.0-13|v9230]], [[8.1.0-0_New3DS|v10250]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v13313]], [[9.1.0-20J|v14336]], [[9.2.0-20|v15360]], [[9.3.0-21|v16402]], [[9.4.0-21|v17408]], [[9.5.0-22|v18432]], [[9.6.0-24|v19476]], [[9.7.0-25|v20487]], [[9.8.0-25|v22528]], [[10.1.0-27|v23552]], [[10.2.0-28|v24576]], [[10.3.0-28|v25600]], [[10.4.0-29|v26626]], [[10.6.0-31|v27648]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[2.1.0-3|v2049]], [[2.2.0-X|v3075]], [[3.0.0-5|v4111]], [[4.0.0-7|v5131]], [[4.2.0-9|v6146]], [[5.0.0-11|v7172]], [[6.0.0-11|v8198]], [[7.0.0-13|v9230]], [[8.1.0-0_New3DS|v10250]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v11272]], [[9.2.0-20|v12288]], [[9.3.0-21|v13330]], [[9.4.0-21|v14336]], [[9.5.0-22|v15360]], [[9.6.0-24|v16404]], [[9.7.0-25|v17415]], [[9.8.0-25|v19456]], [[9.9.0-26|v20480]], [[10.1.0-27|v21504]], [[10.2.0-28|v22528]], [[10.3.0-28|v23552]], [[10.4.0-29|v24578]], [[10.6.0-31|v25600]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[2.1.0-3|v2049]], [[2.2.0-X|v3075]], [[3.0.0-5|v4111]], [[4.0.0-7|v5131]], [[4.2.0-9|v6146]], [[5.0.0-11|v7172]], [[6.0.0-11|v8198]], [[7.0.0-13|v9230]], [[8.1.0-0_New3DS|v10250]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v11272]], [[9.2.0-20|v12288]], [[9.3.0-21|v13330]], [[9.4.0-21|v14336]], [[9.5.0-22|v15360]], [[9.6.0-24|v16404]], [[9.7.0-25|v17415]], [[9.8.0-25|v19456]], [[10.1.0-27|v20480]], [[10.2.0-28|v21504]], [[10.3.0-28|v22528]], [[10.4.0-29|v23554]], [[10.6.0-31|v24576]]&lt;br /&gt;
|-&lt;br /&gt;
| 00008402&lt;br /&gt;
| 00009002&lt;br /&gt;
| 00009902&lt;br /&gt;
| 0000A202&lt;br /&gt;
| 0000AA02&lt;br /&gt;
| 0000B202&lt;br /&gt;
| Camera applet used by Home-menu (CtrApp)&lt;br /&gt;
| v0, v1036, [[9.0.0-20|v2049]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008502&lt;br /&gt;
| 00009102&lt;br /&gt;
| 00009A02&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| Not available on CDN&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00008602&lt;br /&gt;
| 00009202&lt;br /&gt;
| 00009B02&lt;br /&gt;
| 0000A402&lt;br /&gt;
| 0000AC02&lt;br /&gt;
| 0000B402&lt;br /&gt;
| Instruction Manual, applet for displaying instruction manuals&lt;br /&gt;
| v0, v1026, v2048, v3072, [[5.0.0-11|v4097]], [[9.0.0-20|v5120]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008702&lt;br /&gt;
| 00009302&lt;br /&gt;
| 00009C02&lt;br /&gt;
| 0000A502&lt;br /&gt;
| 0000AD02&lt;br /&gt;
| 0000B502&lt;br /&gt;
| Game Notes (Cherry)&lt;br /&gt;
| v0, v1026, v2049, [[5.0.0-11|v3073]], [[9.0.0-20|v4096]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008802&lt;br /&gt;
| 00009402&lt;br /&gt;
| 00009D02&lt;br /&gt;
| 0000A602&lt;br /&gt;
| 0000AE02&lt;br /&gt;
| 0000B602&lt;br /&gt;
| [[Internet Browser]] (spider)&lt;br /&gt;
| [[2.0.0-2|v6]], [[2.1.0-4|v1024]], [[4.0.0-7|v2050]], [[5.0.0-11|v3074 (EUR)/v3075(USA,JAP)]], [[7.0.0-13|v3088]], [[7.1.0-16|v4096]], [[9.5.0-23|v5121]], [[9.9.0-26|v6149]], [[10.2.0-28|v7168]], [[10.6.0-31|v8192]], [[10.7.0-32|v9232]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 20008802&lt;br /&gt;
| 20009402&lt;br /&gt;
| 20009D02&lt;br /&gt;
| ?&lt;br /&gt;
| 2000AE02&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]] [[Internet Browser]] (SKATER)&lt;br /&gt;
| [[8.1.0-0_New3DS|v10]], [[9.3.0-21|v1027]], [[9.6.0-24|v2051]], [[9.9.0-26|v3077]], [[10.2.0-28|v4096]], [[10.4.0-29|v5121]], [[10.6.0-31|v6144]], [[10.7.0-32|v7184]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008A02&lt;br /&gt;
| 00008A02&lt;br /&gt;
| 00008A02&lt;br /&gt;
| 00008A02&lt;br /&gt;
| 00008A02&lt;br /&gt;
| 00008A02&lt;br /&gt;
| [[ErrDisp]]&lt;br /&gt;
| v0, v1025, [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5121]], [[8.0.0-18|v6144]], [[9.0.0-20|v7168]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008A03&lt;br /&gt;
| 00008A03&lt;br /&gt;
| 00008A03&lt;br /&gt;
| 00008A03&lt;br /&gt;
| 00008A03&lt;br /&gt;
| 00008A03&lt;br /&gt;
| SAFE_MODE [[ErrDisp]]&lt;br /&gt;
| v0&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 20008A03&lt;br /&gt;
| 20008A03&lt;br /&gt;
| 20008A03&lt;br /&gt;
| ?&lt;br /&gt;
| 20008A03&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[ErrDisp]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008D02&lt;br /&gt;
| 00009602&lt;br /&gt;
| 00009F02&lt;br /&gt;
| 0000A702&lt;br /&gt;
| 0000AE02&lt;br /&gt;
| 0000B702&lt;br /&gt;
| Friend List (friend)&lt;br /&gt;
| v0, v1026, [[2.2.0-X|v2051]], v3082, v4099, [[7.0.0-13|v5120]], [[9.0.0-20|v6144]](Also for [[8.1.0-0_New3DS]]) (EUR v6, v1024, v3082, v4099, [[7.0.0-13|v5120]], [[9.0.0-20|v6144]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008E02&lt;br /&gt;
| 00009702&lt;br /&gt;
| 0000A002&lt;br /&gt;
| 0000A802&lt;br /&gt;
| 0000B002&lt;br /&gt;
| 0000B802&lt;br /&gt;
| Notifications (newslist)&lt;br /&gt;
| v0, v1029, v2054, v3075, [[9.0.0-20|v4097]] (EUR v6, v1024, v2054, v3075, [[9.0.0-20|v4097]]) (JPN: ..., [[8.1.0-0_New3DS|v4096]], [[9.0.0-20|v5121]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C002&lt;br /&gt;
| 0000C802&lt;br /&gt;
| 0000D002&lt;br /&gt;
| 0000D802&lt;br /&gt;
| 0000DE02&lt;br /&gt;
| 0000E402&lt;br /&gt;
| Software Keyboard (swkbd)&lt;br /&gt;
| v0, v1026, v2053, [[7.0.0-13|v3072]], [[9.0.0-20|v4096]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C003&lt;br /&gt;
| 0000C803&lt;br /&gt;
| 0000D003&lt;br /&gt;
| 0000D803&lt;br /&gt;
| 0000DE03&lt;br /&gt;
| 0000E403&lt;br /&gt;
| SAFE_MODE Software Keyboard (swkbd)&lt;br /&gt;
| v0&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 2000C003&lt;br /&gt;
| 2000C803&lt;br /&gt;
| 2000D003&lt;br /&gt;
| ?&lt;br /&gt;
| 2000DE03&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]] SAFE_MODE Software Keyboard (swkbd)&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]](for JPN this is v1024)&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C102&lt;br /&gt;
| 0000C902&lt;br /&gt;
| 0000D102&lt;br /&gt;
| 0000D902&lt;br /&gt;
| 0000DF02&lt;br /&gt;
| 0000E502&lt;br /&gt;
| appletEd (MiiSelector)&lt;br /&gt;
| v0, v1026, [[9.0.0-20|v2048]](Also for [[8.1.0-0_New3DS]]), [[9.3.0-21|v3077]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C302&lt;br /&gt;
| 0000CB02&lt;br /&gt;
| 0000D302&lt;br /&gt;
| 0000DB02&lt;br /&gt;
| 0000E102&lt;br /&gt;
| 0000E702&lt;br /&gt;
| PNOTE_AP (Photo file selector applet, for SD-card/etc?)&lt;br /&gt;
| v0, v1024, [[8.1.0-0_New3DS|v2049]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v3075]], [[9.3.0-21|v4096]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C402&lt;br /&gt;
| 0000CC02&lt;br /&gt;
| 0000D402&lt;br /&gt;
| 0000DC02&lt;br /&gt;
| 0000E202&lt;br /&gt;
| 0000E802&lt;br /&gt;
| SNOTE_AP (Sound file selector applet, for SD-card/etc?)&lt;br /&gt;
| v0, v3, [[8.0.0-18|v1026]], [[9.0.0-20|v2048]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C502&lt;br /&gt;
| 0000C502&lt;br /&gt;
| 0000C502&lt;br /&gt;
| 0000CF02&lt;br /&gt;
| 0000CF02&lt;br /&gt;
| 0000CF02&lt;br /&gt;
| error (This applet displays networking errors, etc)&lt;br /&gt;
| v0, v1026, v2053, v3074, [[8.1.0-0_New3DS|v4096]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v5128]], [[9.6.0-24|v6145]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C503&lt;br /&gt;
| 0000C503&lt;br /&gt;
| 0000C503&lt;br /&gt;
| 0000CF03&lt;br /&gt;
| 0000CF03&lt;br /&gt;
| 0000CF03&lt;br /&gt;
| SAFE_MODE error applet&lt;br /&gt;
| v0&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 2000C503&lt;br /&gt;
| 2000C503&lt;br /&gt;
| 2000C503&lt;br /&gt;
| ?&lt;br /&gt;
| 2000CF03&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]] SAFE_MODE error applet&lt;br /&gt;
| [[8.1.0-0_New3DS|v1024]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000CD02&lt;br /&gt;
| 0000CD02&lt;br /&gt;
| 0000CD02&lt;br /&gt;
| 0000D502&lt;br /&gt;
| 0000D502&lt;br /&gt;
| 0000D502&lt;br /&gt;
| extrapad ([[Circle Pad Pro]] calibration applet)&lt;br /&gt;
| v1, v1026, [[8.1.0-0_New3DS|v2048]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v3073]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C602&lt;br /&gt;
| 0000CE02&lt;br /&gt;
| 0000D602&lt;br /&gt;
| N/A&lt;br /&gt;
| 0000E302&lt;br /&gt;
| 0000E902&lt;br /&gt;
| mint. eShop applet, used by applications for accessing the eShop, for DLC/etc. Also used by the eShop application itself.&lt;br /&gt;
| v5, v1028, [[4.2.0-9|v2050]], [[5.0.0-11|v3072]], [[7.0.0-13|v4109]], [[7.2.0-17|v5125]](v5123 for JPN), [[8.0.0-18|v6145]], [[8.1.0-0_New3DS|v7168]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v8200]], [[9.3.0-21|v9224]], [[9.6.0-24|v10247]], [[9.8.0-25|v11264]], [[10.0.0-27|v12293]], [[10.1.0-27|v13312]], [[10.3.0-28|v14337]], [[10.4.0-29|v15360]], [[10.7.0-32|v16384]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000BC02&lt;br /&gt;
| 0000BD02&lt;br /&gt;
| 0000BE02&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| olv (Miiverse applet)&lt;br /&gt;
| [[7.0.0-13|v14]], [[7.2.0-17|v1024]], [[9.0.0-20|v2048]](Also for [[8.1.0-0_New3DS]]), [[9.3.0-21|v3072]], [[9.6.0-24|v4096]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000F602&lt;br /&gt;
| 0000F602&lt;br /&gt;
| 0000F602&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| memolib (Uses Miiverse, likely the &amp;quot;system library&amp;quot; for Miiverse)&lt;br /&gt;
| [[7.0.0-13|v5]], [[8.1.0-0_New3DS|v1024]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v2050]], [[9.3.0-21|v3072]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008302&lt;br /&gt;
| 00008B02&lt;br /&gt;
| 0000BA02&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| solv3 (Miiverse-posting applet)&lt;br /&gt;
| [[9.0.0-20|v6]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00009502&lt;br /&gt;
| 00009E02&lt;br /&gt;
| 0000B902&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| Cabinet ([[amiibo Settings]])&lt;br /&gt;
| [[9.3.0-21|v7]], [[9.6.0-24|v1031]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Most of these processes are applets, see [[NS_and_APT_Services|here]] for details.&lt;br /&gt;
&lt;br /&gt;
All of the above processes use the &amp;quot;SYSTEM&amp;quot; [[SVC|memory-region]].&lt;br /&gt;
&lt;br /&gt;
The ExeFS for Home Menu is exactly the same for USA/EUR/JPN.&lt;br /&gt;
&lt;br /&gt;
The Miiverse applet seems to use a web browser with webkit.&lt;br /&gt;
&lt;br /&gt;
=== 0004009B - [[NCCH#CFA|System Data Archives]] (Shared Archives) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  JPN TitleIDLow&lt;br /&gt;
!  USA TitleIDLow&lt;br /&gt;
!  EUR TitleIDLow&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00010202&lt;br /&gt;
| 00010202&lt;br /&gt;
| 00010202&lt;br /&gt;
| Probably Mii-related, contains &amp;quot;CFL_Res.dat&amp;quot; in the RomFS.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| Only exists for dev-units.&lt;br /&gt;
| v0, v2052&lt;br /&gt;
|-&lt;br /&gt;
| 00010402&lt;br /&gt;
| 00010402&lt;br /&gt;
| 00010402&lt;br /&gt;
| Mounted as &amp;quot;area:&amp;quot;, contains Country and Region names&lt;br /&gt;
| v0, v1024, v2050, v3072, [[7.0.0-13|v4098]], [[9.6.0-24|v5122]]&lt;br /&gt;
|-&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| Only exists for dev-units.&lt;br /&gt;
| v0, v1024, v2048&lt;br /&gt;
|-&lt;br /&gt;
| 00010602&lt;br /&gt;
| 00010602&lt;br /&gt;
| 00010602&lt;br /&gt;
| Non-Nintendo TLS Root-CA Certificates (RomFS contains files with filename &amp;quot;CACERT_PUBLIC_CA_&amp;lt;val&amp;gt;.der&amp;quot;, where &amp;lt;val&amp;gt; is 5..8)&lt;br /&gt;
| v2, [[10.5.0-30|v1024]]&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011202&lt;br /&gt;
| &amp;quot;NL/NL&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011302&lt;br /&gt;
| &amp;quot;EN/GB&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 00011402&lt;br /&gt;
| &lt;br /&gt;
| &amp;quot;EN/US&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011502&lt;br /&gt;
| &amp;quot;FR/FR/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 00011602&lt;br /&gt;
| &lt;br /&gt;
| &amp;quot;FR/CA/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011702&lt;br /&gt;
| &amp;quot;DE/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011802&lt;br /&gt;
| &amp;quot;IT/IT&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 00011902&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &amp;quot;JA_small/32&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011B02&lt;br /&gt;
| &amp;quot;PT/PT/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011C02&lt;br /&gt;
| &amp;quot;RU/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 00011D02&lt;br /&gt;
| 00011D02&lt;br /&gt;
| &amp;quot;ES/ES&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 00011E02&lt;br /&gt;
| &lt;br /&gt;
| &amp;quot;PT/BR/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 00012202&lt;br /&gt;
| 00012302&lt;br /&gt;
| 00012102&lt;br /&gt;
| ?contains a lists with error strings&lt;br /&gt;
| v1026, v2053, v3073, [[4.2.0-9|v4096]], [[5.0.0-11|v5120]], [[7.0.0-13|v6149]], [[7.2.0-17|v7168]], [[8.0.0-18|v8192]], [[9.0.0-20|v9218]], [[9.3.0-21|v10242]], [[9.6.0-24|v11269]], [[10.0.0-27|v12289]], [[10.4.0-29|v13312]], [[10.7.0-32|v13313]]&lt;br /&gt;
|-&lt;br /&gt;
| 00013202&lt;br /&gt;
| 00013302&lt;br /&gt;
| 00013102&lt;br /&gt;
| Mounted as &amp;quot;eula:&amp;quot;&lt;br /&gt;
| v0, v1024, v2049 USA: v1024, v2051, [[7.0.0-13|v3074]], [[7.2.0-17|v4100]](EUR-only), [[9.0.0-20|v4099]], [[9.9.0-26|v6144]], [[10.4.0-29|v7168]]&lt;br /&gt;
|-&lt;br /&gt;
| 00014002&lt;br /&gt;
| 00014002&lt;br /&gt;
| 00014002&lt;br /&gt;
| JPN/EUR/USA [[System Font]] (&amp;quot;font:&amp;quot;)&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 00014102&lt;br /&gt;
| 00014102&lt;br /&gt;
| 00014102&lt;br /&gt;
| CHN [[System Font]] (&amp;quot;font:&amp;quot;)&lt;br /&gt;
| v0, v1024&lt;br /&gt;
|-&lt;br /&gt;
| 00014202&lt;br /&gt;
| 00014202&lt;br /&gt;
| 00014202&lt;br /&gt;
| KOR [[System Font]] (&amp;quot;font:&amp;quot;)&lt;br /&gt;
| v0, v1024&lt;br /&gt;
|-&lt;br /&gt;
| 00014302&lt;br /&gt;
| 00014302&lt;br /&gt;
| 00014302&lt;br /&gt;
| TWN [[System Font]] (&amp;quot;font:&amp;quot;)&lt;br /&gt;
| v0, v1024&lt;br /&gt;
|-&lt;br /&gt;
| 00015202&lt;br /&gt;
| 00015302&lt;br /&gt;
| 00015102&lt;br /&gt;
| Mounted as &amp;quot;rate:&amp;quot;&lt;br /&gt;
| v0 (EUR: v0, v1024)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 000400DB - [[NCCH#CFA|System Data Archives]] ===&lt;br /&gt;
These [[NVer]] titleIDs can be found @ offset 0x320 in every [[CCI]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  EUR TitleIDLow&lt;br /&gt;
!  JPN TitleIDLow&lt;br /&gt;
!  USA TitleIDLow&lt;br /&gt;
!  CHN TitleIDLow&lt;br /&gt;
!  KOR TitleIDLow&lt;br /&gt;
!  TWN TitleIDLow&lt;br /&gt;
!  Description&lt;br /&gt;
!  USA/EUR/JPN Versions&lt;br /&gt;
!  CHN Versions&lt;br /&gt;
!  TWN Versions&lt;br /&gt;
!  KOR Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| NGWord bad word list&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1024]], [[3.0.0-5|v2052]], [[4.0.0-7|v3072]], [[4.3.0-10|v4096]], [[5.0.0-11|v5120]], [[9.0.0-20|v6144]], [[9.3.0-21|v7168]], [[9.6.0-24|v8192]]&lt;br /&gt;
| Same as USA&lt;br /&gt;
| Same as USA&lt;br /&gt;
| Same as USA&lt;br /&gt;
|-&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| [[Nintendo Zone]] hotspot list&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1024]], [[3.0.0-5|v2048]], [[4.0.0-7|v3073]], [[4.3.0-10|v4096]], [[4.4.0-10|v5120]], [[4.5.0-10|v6144]], [[5.0.0-11|v7169]], [[6.0.0-11|v8192]], [[6.2.0-12|v9216]], [[7.0.0-13|v10242]], [[7.2.0-17|v11267]], [[8.0.0-18|v12288]], [[9.0.0-20|v14336]], [[9.3.0-21|v15360]], [[9.6.0-24|v16386]], [[10.0.0-27|v17409]], [[10.4.0-29|18432]]&lt;br /&gt;
| Same as USA&lt;br /&gt;
| Same as USA&lt;br /&gt;
| Same as USA&lt;br /&gt;
|-&lt;br /&gt;
| 00016102&lt;br /&gt;
| 00016202&lt;br /&gt;
| 00016302&lt;br /&gt;
| 00016402&lt;br /&gt;
| 00016502&lt;br /&gt;
| 00016602&lt;br /&gt;
| [[NVer]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v16]], [[2.0.0-2|v32]], [[2.1.0-3|v48]], [[2.1.0-4|v64]], [[3.0.0-5|v80]], [[3.0.0-6|v96]], [[4.0.0-7|v112]],  [[4.1.0-8|v128]], [[4.2.0-9|v144]], [[4.3.0-10|v160]], [[5.0.0-11|v176]], non-USA=[[6.0.0-11|v192]]/USA=[[6.1.0-12U|v192]], [[7.0.0-13|v208]], [[7.1.0-14|v224]], [[7.1.0-15|v240]], [[7.1.0-16|v256]], [[7.2.0-17|v272]], [[8.0.0-18|v288]], [[8.1.0-19|v304]], [[9.0.0-20|v320]], [[9.3.0-21|v336]], [[9.5.0-22|v352]], [[9.5.0-23|v368]], [[9.6.0-24|v384]], [[9.7.0-25|v400]], [[9.9.0-26|v416]], [[10.0.0-27|v432]], [[10.2.0-28|v448]], [[10.4.0-29|v464]], [[10.5.0-30|v480]], [[10.6.0-31|v496]], [[10.7.0-32|v512]], [[11.0.0-33|v528]]&lt;br /&gt;
| [[4.0.0-7|v113]], [[4.2.0-9|v128]], [[5.0.0-11|v129]], [[7.1.0-16|v130]], [[7.2.0-17|v272]], [[9.5.0-23|v131]], [[9.9.0-26|v132]]&lt;br /&gt;
| [[4.1.0-8|v114]], [[4.2.0-9|v133]], [[4.3.0-10|v134]], [[5.0.0-11|v136]], [[7.0.0-13|v144]], [[7.1.0-14|v160]] [[7.1.0-16|v192]], [[7.2.0-17|v272]], [[8.0.0-18|v208]], [[8.1.0-19|v224]], [[9.0.0-20|v240]], [[9.5.0-22|v272]], [[9.5.0-23|v288]], [[9.6.0-24|v304]], [[9.7.0-25|v320]], [[9.9.0-26|v336]], [[10.0.0-27|v352]], [[10.2.0-28|v368]], [[10.4.0-29|v384]], [[10.5.0-30|v400]], [[10.6.0-31|v416]], [[10.7.0-32|v432]], [[11.0.0-33|v448]]&lt;br /&gt;
| [[4.0.0-7|v113]], [[4.1.0-8|v114]], [[4.2.0-9|v133]], [[4.3.0-10|v134]], [[5.0.0-11|v136]], [[7.0.0-13|v160]], [[7.1.0-14|v176]], [[7.1.0-16|v176]], [[7.2.0-17|v272]], [[8.0.0-18|v224]], [[8.1.0-19|v240]], [[9.0.0-20|v256]], [[9.3.0-21|v272]], [[9.5.0-22|v288]], [[9.5.0-23|v304]], [[9.6.0-24|v320]], [[9.7.0-25|v336]], [[9.9.0-26|v352]], [[10.0.0-27|v368]], [[10.2.0-28|v384]], [[10.4.0-29|v400]], [[10.5.0-30|v416]], [[10.6.0-31|v432]], [[10.7.0-32|v448]], [[11.0.0-33|v464]]&lt;br /&gt;
|-&lt;br /&gt;
| 20016102&lt;br /&gt;
| 20016202&lt;br /&gt;
| 20016302&lt;br /&gt;
| N/A&lt;br /&gt;
| 20016502&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]] [[NVer]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.0.0-20|v320]], [[9.3.0-21|v336]], [[9.5.0-22|v352]], [[9.5.0-22|v352]], [[9.5.0-23|v368]], [[9.6.0-24|v384]], [[9.7.0-25|v400]], [[9.9.0-26|v416]], [[10.0.0-27|v432]], [[10.2.0-28|v448]], [[10.4.0-29|v464]], [[10.5.0-30|v480]], [[10.6.0-31|v496]], [[10.7.0-32|v512]], [[11.0.0-33|v528]]&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v320]], [[9.7.0-25|v336]], [[9.9.0-26|v352]], [[10.0.0-27|v368]], [[10.2.0-28|v384]], [[10.4.0-29|v400]], [[10.5.0-30|v416]], [[10.6.0-31|v432]], [[10.7.0-32|v448]], [[11.0.0-33|v464]]&lt;br /&gt;
|-&lt;br /&gt;
| 00017102&lt;br /&gt;
| 00017202&lt;br /&gt;
| 00017302&lt;br /&gt;
| 00017402&lt;br /&gt;
| 00017502&lt;br /&gt;
| 00017602&lt;br /&gt;
| [[CVer]]&lt;br /&gt;
| [[1.0.0-0|v1024]], [[1.1.0-1|v1045]], [[2.0.0-2|v2049]], [[2.1.0-3|v2069]], [[2.2.0-X|v2088]] [[3.0.0-5|v3088]], [[4.0.0-7|v4098]], [[4.1.0-8|v4113]], [[4.2.0-9|v4130]], [[4.3.0-10|v4145]], [[4.4.0-10|v4163]], [[4.5.0-10|v4176]], [[5.0.0-11|v5120]], [[5.1.0-11|v5136]], [[6.0.0-11|v6146]], [[6.1.0-11|v6160]], [[6.2.0-12|v6178]], [[6.3.0-12|v6192]], [[7.0.0-13|v7175]], [[7.1.0-14|v7187]], [[7.2.0-17|v7203]], [[8.0.0-18|v8196]], [[8.1.0-18|v8208]], [[8.1.0-0_New3DS|v8215]](8.1.0-0_New3DS), [[9.0.0-20|v9218]], [[9.1.0-20J|v9232]](JPN-only), [[9.2.0-20|v9248]], [[9.3.0-21|v9264]], [[9.4.0-21|v9280]], [[9.5.0-22|v9296]], [[9.6.0-24|v9319]], [[9.7.0-25|v9328]], [[9.8.0-25|v9344]], [[9.9.0-26|v9360]], [[10.0.0-27|v10240]], [[10.1.0-27|v10256]], [[10.2.0-28|v10272]], [[10.3.0-28|v10288]], [[10.4.0-29|v10304]], [[10.5.0-30|v10320]], [[10.6.0-31|v10336]], [[10.7.0-32|v10352]], [[11.0.0-33|v11264]]&lt;br /&gt;
| [[1.0.0-0|v1024]], [[1.1.0-1|v1045]], [[2.0.0-2|v2049]], [[2.1.0-3|v2069]], [[2.2.0-X|v2088]] [[3.0.0-5|v3088]], [[4.0.0-7|v4098]], [[4.1.0-8|v4113]], [[4.2.0-9|v4130]], [[4.3.0-10|v4145]], [[4.4.0-10|v4163]], [[4.5.0-10|v4176]], [[5.0.0-11|v5120]], [[5.1.0-11|v5136]], [[6.0.0-11|v6146]], [[6.1.0-11|v6160]], [[6.2.0-12|v6178]], [[6.3.0-12|v6192]], [[7.0.0-13|v7175]], [[7.1.0-14|v7187]], [[7.2.0-17|v7203]], [[8.0.0-18|v8196]], [[8.1.0-18|v8208]], [[9.0.0-20|v9217]], [[9.3.0-21|v9264]], [[9.5.0-22|v9296]], [[9.6.0-24|v9319]], [[9.7.0-25|v9328]], [[9.8.0-25|v9344]], [[9.9.0-26|v9360]], [[10.0.0-27|v10240]], [[10.2.0-28|v10272]], [[10.4.0-29|v10304]], [[10.5.0-30|v10320]], [[10.6.0-31|v10336]], [[10.7.0-32|v10352]], [[11.0.0-33|v11264]]&lt;br /&gt;
| Same as CHN&lt;br /&gt;
| Same as CHN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00040130 - System [[Services API|Modules]] ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00001002&lt;br /&gt;
| [[Services|sm]] (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001003&lt;br /&gt;
| SAFE_MODE [[Services|sm]] (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001102&lt;br /&gt;
| [[Filesystem services‎|fs]] (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001103&lt;br /&gt;
| SAFE_MODE [[Filesystem services‎|fs]] (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001202&lt;br /&gt;
| [[Process Manager Services|pm]] (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001203&lt;br /&gt;
| SAFE_MODE [[Process Manager Services|pm]] (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001302&lt;br /&gt;
| [[Loader Services‎|loader]]  (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001303&lt;br /&gt;
| SAFE_MODE [[Loader Services‎|loader]]  (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001402&lt;br /&gt;
| [[PXI Services‎|pxi]]  (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001403&lt;br /&gt;
| SAFE_MODE [[PXI Services‎|pxi]]  (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001502&lt;br /&gt;
| [[Application Manager Services|AM]] ( Application Manager )&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[3.0.0-5|v2053]], [[4.0.0-7|v3072]], [[5.0.0-11|v4098]], [[6.0.0-11|v5120]], [[8.0.0-18|v6148]], [[8.1.0-0_New3DS|v7168]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v8192]], [[10.0.0-27|v9217]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001503&lt;br /&gt;
| SAFE_MODE [[Application Manager Services|AM]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001503&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Application Manager Services|AM]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001602&lt;br /&gt;
| [[Camera Services|Camera]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[3.0.0-5|v2048]], [[4.0.0-7|v3074]], [[5.0.0-11|v4098]], [[6.0.0-11|v5120]], [[7.1.0-14|v6146]], [[8.0.0-18|v7172]], [[9.0.0-20|v9216]], [[9.3.0-21|v10242]], [[10.0.0-27|v11265]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001602&lt;br /&gt;
| [[New_3DS]] [[Camera Services|Camera]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8200]], [[9.0.0-20|v9218]], [[9.3.0-21|v10242]], [[10.0.0-27|v11265]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001702&lt;br /&gt;
| [[Config Services|Config]] (cfg)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1024]], [[3.0.0-5|v2049]], v3072, [[4.0.0-7|v4096]], [[5.0.0-11|v5122]], [[6.0.0-11|v6145]], [[6.1.0-11|v7168]], [[7.0.0-13|v8196]], [[7.2.0-17|v9220]], [[8.0.0-18|v10243]], [[8.1.0-0_New3DS|v11265]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v12290]], [[9.3.0-21|v13315]], [[9.6.0-24|v14342]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001703&lt;br /&gt;
| SAFE_MODE [[Config Services|Config]] (cfg)&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001703&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Config Services|Config]] (cfg)&lt;br /&gt;
| [[8.1.0-0_New3DS|v11265]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001802&lt;br /&gt;
| [[Codec Services|Codec]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[5.0.0-11|v4098]], [[7.0.0-13|v5120]], [[8.0.0-18|v6144]], [[9.0.0-20|v7168]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
| 00001803&lt;br /&gt;
| SAFE_MODE [[Codec Services|Codec]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001803&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Codec Services|Codec]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001902&lt;br /&gt;
| dmnt, debugger sysmodule. This use devunit-only HIO for devunit&amp;lt;&amp;gt;pc comms. This only exists for development units(launched by NS during startup depending on certain [[Configuration_Memory]] fields&#039; values). This is installed at the [[Factory_Setup|factory]], then later deleted at the factory on retail units.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00001A02&lt;br /&gt;
| [[DSP Services|DSP]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[4.0.0-7|v2048]], [[5.0.0-11|v3074]], [[6.0.0-11|v4096]], [[8.0.0-18|v5120]], [[9.7.0-25|v6145]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001A03&lt;br /&gt;
| SAFE_MODE [[DSP Services|DSP]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001A03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[DSP Services|DSP]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v6145]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001B02&lt;br /&gt;
| [[GPIO Services|GPIO]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[5.0.0-11|v1025]], [[8.0.0-18|v2048]], [[9.5.0-22|v3073]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001B03&lt;br /&gt;
| SAFE_MODE [[GPIO Services|GPIO]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001B03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[GPIO Services|GPIO]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v3073]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001C02&lt;br /&gt;
| [[GSP Services|GSP]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1040]], [[2.0.0-2|v2049]], [[3.0.0-5|v3075]], v4098, [[4.0.0-7|v5120]], [[5.0.0-11|v6145]], [[6.0.0-11|v7168]], [[8.0.0-18|v8196]], [[9.0.0-20|v10240]], [[9.3.0-21|v11264]], [[9.6.0-24|v12294]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001C02&lt;br /&gt;
| [[New_3DS]] [[GSP Services|GSP]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v10243]], [[9.3.0-21|v11267]], [[9.6.0-24|v12294]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001C03&lt;br /&gt;
| SAFE_MODE [[GSP Services|GSP]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001C03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[GSP Services|GSP]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v9217]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001D02&lt;br /&gt;
| [[HID Services|HID]] (Human Interface Devices) &lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5121]], [[7.2.0-17|v6148]], [[8.0.0-18|v7168]], [[8.1.0-0_New3DS|v8192]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v9216]], [[9.3.0-21|v10240]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001D03&lt;br /&gt;
| SAFE_MODE [[HID Services|HID]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001D03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[HID Services|HID]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8193]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001E02&lt;br /&gt;
| [[I2C Services|i2c]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[5.0.0-11|v2049]], [[8.0.0-18|v3076]], [[9.3.0-21|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001E02&lt;br /&gt;
| [[New_3DS]] [[I2C Services|i2c]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4096]], [[9.3.0-21|v5121]]&lt;br /&gt;
|- &lt;br /&gt;
| 00001E03&lt;br /&gt;
| SAFE_MODE [[I2C Services|i2c]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|- &lt;br /&gt;
| 20001E03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[I2C Services|i2c]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4097]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001F02&lt;br /&gt;
| [[MCU Services|MCU]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.1.0-3|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4102]], [[5.0.0-11|v5122]], [[6.0.0-11|v6145]], [[7.0.0-13|v7168]], [[8.0.0-18|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001F02&lt;br /&gt;
| [[New_3DS]] [[MCU Services|MCU]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001F03&lt;br /&gt;
| SAFE_MODE [[MCU Services|MCU]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001F03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[MCU Services|MCU]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v9217]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002002&lt;br /&gt;
| [[MIC Services|MIC]] (Microphone)&lt;br /&gt;
| [[1.0.0-0|v0]], [[5.0.0-11|v1025]], [[8.0.0-18|v2048]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002102&lt;br /&gt;
| [[PDN Services|PDN]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[5.0.0-11|v1025]], [[8.0.0-18|v2048]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002103&lt;br /&gt;
| SAFE_MODE [[PDN Services|PDN]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002103&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[PDN Services|PDN]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v3073]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002202&lt;br /&gt;
| [[PTM Services|PTM]] (Play time, pedometer, and battery manager)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3075]], v4096, [[4.0.0-7|v5120]], [[5.0.0-11|v6146]], [[6.0.0-11|v7168]], [[7.0.0-13|v8192]], [[8.0.0-18|v9219]], [[9.6.0-24|v11264]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002202&lt;br /&gt;
| [[New_3DS]] [[PTM Services|PTM]] (Play time, pedometer, and battery manager)&lt;br /&gt;
| [[8.1.0-0_New3DS|v10240]], [[9.6.0-24|v11264]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002203&lt;br /&gt;
| SAFE_MODE [[PTM Services|PTM]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002203&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[PTM Services|PTM]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v10241]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002302&lt;br /&gt;
| [[SPI Services|spi]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[5.0.0-11|v2049]], [[8.0.0-18|v3072]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002302&lt;br /&gt;
| [[New_3DS]] [[SPI Services|spi]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4096]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002303&lt;br /&gt;
| SAFE_MODE [[SPI Services|spi]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002303&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[SPI Services|spi]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4097]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002402&lt;br /&gt;
| [[AC Services|AC]] (Network manager)&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1024]], [[2.0.0-2|v2052]], [[2.1.0-3|v3072]], [[3.0.0-5|v4101]], [[5.0.0-11|v5122]], [[7.0.0-13|v6145]], [[8.0.0-18|v7172]], [[9.0.0-20|v8192]](Also for [[8.1.0-0_New3DS]]), [[9.3.0-21|v9216]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002403&lt;br /&gt;
| SAFE_MODE [[AC Services|AC]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002403&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[AC Services|AC]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8193]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002602&lt;br /&gt;
| [[CECD Services|Cecd]] (StreetPass)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3073]], [[4.0.0-7|v4097]], [[5.0.0-11|v5122]], [[6.0.0-11|v6144]], [[6.2.0-12|v7170]], [[7.0.0-13|v8193]], [[8.0.0-18|v9216]], [[9.0.0-20|v10240]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002702&lt;br /&gt;
| [[CSND Services|CSND]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[4.0.0-7|v2048]], [[5.0.0-11|v3073]], [[8.0.0-18|v4096]], [[9.0.0-20|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002703&lt;br /&gt;
| SAFE_MODE [[CSND Services|CSND]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002703&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[CSND Services|CSND]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v5121]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002802&lt;br /&gt;
| [[DLP Services|DLP]] ([[Download Play]])&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3078]], [[5.0.0-11|v4099]], [[8.0.0-18|v5123]], [[9.0.0-20|v6145]](Also for [[8.1.0-0_New3DS]]), [[9.6.0-24|v7174]], [[10.0.0-27|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002902&lt;br /&gt;
| [[HTTP Services|HTTP]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.1.0-3|v2049]], [[2.2.0-X|v3072]], [[3.0.0-5|v4099]], [[4.0.0-7|v5122]], [[5.0.0-11|v6145]], [[7.0.0-13|v7171]], [[7.1.0-14|v8192]], [[8.0.0-18|v9220]], [[8.1.0-18|v10245]], [[8.1.0-0_New3DS|v11264]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v12288]], [[9.6.0-24|v13318]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002903&lt;br /&gt;
| SAFE_MODE [[HTTP Services|HTTP]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002903&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[HTTP Services|HTTP]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v10241]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002A02&lt;br /&gt;
| [[MP Services|MP]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[5.0.0-11|v1025]], [[8.0.0-18|v2048]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002A03&lt;br /&gt;
| SAFE_MODE [[MP Services|MP]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002B02&lt;br /&gt;
| [[NDM Services|NDM]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[3.0.0-5|v2049]], [[4.0.0-7|v3072]], [[5.0.0-11|v4098]], [[8.0.0-18|v5124]], [[8.1.0-0_New3DS|v6144]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002C02&lt;br /&gt;
| [[NIM Services|NIM]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1028]], [[3.0.0-5|v2055]], [[4.0.0-7|v3074]], [[5.0.0-11|v4100]], [[6.0.0-11|v5120]], [[7.0.0-13|v6148]], [[7.2.0-17|v7174]], [[8.0.0-18|v8195]], [[8.1.0-0_New3DS|v9217]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v10249]], [[9.3.0-21|v11267]], [[9.6.0-24|v12296]], [[10.0.0-27|v13313]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002C03&lt;br /&gt;
| SAFE_MODE [[NIM Services|NIM]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002C03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[NIM Services|NIM]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v9217]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002D02&lt;br /&gt;
| [[NWM Services|NWM]] ( Low-level wifi manager )&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1024]], [[2.0.0-2|v2052]], [[2.2.0-X|v3072]], [[3.0.0-5|v4101]], [[4.0.0-7|v5120]], [[5.0.0-11|v6148]], [[6.0.0-11|v7169]], [[7.2.0-17|v8196]], [[8.0.0-18|v9216]], [[9.0.0-20|v10240]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002D03&lt;br /&gt;
| SAFE_MODE [[NWM Services|NWM]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[6.0.0-11|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002D03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[NWM Services|NWM]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v10241]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002E02&lt;br /&gt;
| [[Socket Services|Sockets]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1024]], [[2.0.0-2|v2053]], [[3.0.0-5|v3075]], [[4.0.0-7|v4096]], [[5.0.0-11|v5121]], [[8.0.0-18|v6144]], [[9.0.0-20|v7168]], [[10.6.0-31|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002E03&lt;br /&gt;
| SAFE_MODE [[Socket Services|Sockets]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002E03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Socket Services|Sockets]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002F02&lt;br /&gt;
| [[SSL Services|SSL]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1024]], [[2.1.0-3|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5122]], [[8.0.0-18|v6144]], [[9.0.0-20|v7168]], [[9.6.0-24|v8198]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002F03&lt;br /&gt;
| SAFE_MODE [[SSL Services|SSL]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002F03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[SSL Services|SSL]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003000&lt;br /&gt;
| [[FIRM|Process9]] (in SAFE_MODE and normal NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00003102&lt;br /&gt;
| [[Process Services‎|PS]] ( Process Manager )&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[5.0.0-11|v2049]], [[6.0.0-11|v3072]], [[8.0.0-18|v4096]], [[9.0.0-20|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003103&lt;br /&gt;
| SAFE_MODE [[Process Services‎|PS]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20003103&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Process Services‎|PS]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v5121]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003202&lt;br /&gt;
| [[Friend Services‎|friends]] (Friends list)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1028]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5122]], [[7.0.0-13|v6145]], [[8.0.0-18|v7172]], [[9.0.0-20|v8192]](Also for [[8.1.0-0_New3DS]]), [[10.5.0-30|v9216]], [[10.7.0-32|v10240]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003203&lt;br /&gt;
| SAFE_MODE [[Friend Services‎|friends]] (Friends list)&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20003203&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Friend Services‎|friends]] (Friends list)&lt;br /&gt;
| [[8.1.0-0_New3DS|v8193]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003302&lt;br /&gt;
| [[IR Services‎|IR]] (Infrared)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5121]], [[8.0.0-18|v6148]], [[8.1.0-0_New3DS|v7170]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v8192]], [[9.3.0-21|v9216]], [[9.6.0-24|v10246]], [[10.0.0-27|v11265]], [[10.6.0-31|v12289]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003303&lt;br /&gt;
| SAFE_MODE [[IR Services‎|IR]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20003303&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[IR Services‎|IR]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|- &lt;br /&gt;
| 00003402&lt;br /&gt;
| [[BOSS Services‎|BOSS]] (SpotPass)&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1024]], [[2.0.0-2|v2053]], [[2.2.0-X|v3073]], [[3.0.0-5|v4101]], [[4.0.0-7|v5122]], [[5.0.0-11|v6146]], [[6.0.0-11|v7169]], [[6.2.0-12|v8193]], [[7.0.0-13|v9222]], [[8.0.0-18|v10240]], [[9.0.0-20|v11266]], [[10.0.0-27|v12289]], [[10.4.0-29|v13314]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003502&lt;br /&gt;
| [[News Services‎|News]] (Notifications)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1028]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[5.0.0-11|v4097]], [[8.0.0-18|v5120]], [[9.0.0-20|v6147]], [[9.7.0-25|v7168]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003602&lt;br /&gt;
| &amp;quot;debugger&amp;quot;. This only exist for development units(launched by NS during startup depending on certain [[Configuration_Memory]] fields&#039; values).&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00003702&lt;br /&gt;
| [[RO_Services|RO]]&lt;br /&gt;
| [[2.0.0-2|v0]], [[4.0.0-7|v1024]], [[5.0.0-11|v2049]], [[7.2.0-17|v3074]], [[8.0.0-18|v4096]], [[9.0.0-20|v5120]](Also for [[8.1.0-0_New3DS]]), [[9.3.0-21|v6148]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003802&lt;br /&gt;
| [[ACT Services‎|act]] (handles Nintendo Network &#039;&#039;&#039;a&#039;&#039;&#039;c&#039;&#039;&#039;c&#039;&#039;&#039;oun&#039;&#039;&#039;t&#039;&#039;&#039;s)&lt;br /&gt;
| [[7.0.0-13|v1029]], [[7.1.0-14|v2050]], [[7.2.0-17|v3077]], [[8.0.0-18|v4099]], [[8.1.0-0_New3DS|v5120]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v6144]], [[9.3.0-21|v7168]], [[9.6.0-24|v8198]]&lt;br /&gt;
|-&lt;br /&gt;
| 00004002&lt;br /&gt;
| Old3DS [[NFC_Services|nfc]]&lt;br /&gt;
| [[9.3.0-21|v2053]], [[9.6.0-24|v4106]], [[9.7.0-25|v5121]], [[10.0.0-27|v6145]], [[10.6.0-31|v7168]], [[10.7.0-32|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 20004002&lt;br /&gt;
| [[New_3DS]] [[NFC_Services|nfc]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.0.0-20|v1024]], [[9.3.0-21|v2053]], [[9.5.0-22|v3073]], [[9.6.0-24|v4102]], [[10.0.0-27|v6145]], [[10.6.0-31|v7168]]&lt;br /&gt;
|-&lt;br /&gt;
| 20004102&lt;br /&gt;
| [[New_3DS]] [[MVD Services|mvd]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.0.0-20|v1024]]&lt;br /&gt;
|-&lt;br /&gt;
| 20004202&lt;br /&gt;
| [[New_3DS]] [[QTM Services|qtm]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8]], [[9.0.0-20|v1024]], [[9.3.0-21|v2052]]&lt;br /&gt;
|-&lt;br /&gt;
| 00008002&lt;br /&gt;
| [[NS]] (Memory-region: &amp;quot;SYSTEM&amp;quot;)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1028]], [[2.2.0-X|v2048]], [[3.0.0-5|v3077]], v4096, [[4.0.0-7|v5121]], [[5.0.0-11|v6148]], [[5.1.0-11|v7168]], [[6.0.0-11|v8193]], [[6.1.0-11|v9216]], [[7.0.0-13|v10248]], [[7.2.0-17|v11268]], [[8.0.0-18|v12291]], [[8.1.0-0_New3DS|v13312]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v14336]], [[9.3.0-21|v15360]], [[9.6.0-24|v16390]], [[9.8.0-25|v17408]], [[10.0.0-27|v18433]], [[10.4.0-29|v19458]]&lt;br /&gt;
|-&lt;br /&gt;
| 00008003&lt;br /&gt;
| SAFE_MODE [[NS]] (Memory-region: &amp;quot;SYSTEM&amp;quot;)&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20008003&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[NS]] (Memory-region: &amp;quot;SYSTEM&amp;quot;)&lt;br /&gt;
| [[8.1.0-0_New3DS|v13313]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Once Home Menu finishes loading, all of the above system modules are running, except for MP, RO, and act which are automatically [[Process_Manager_Services|loaded]] when a process requires them. When [[Process_Manager_Services|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.&lt;br /&gt;
&lt;br /&gt;
All of the above system modules use the &amp;quot;BASE&amp;quot; [[SVC|memory-region]](specified in the exheader), except when listed otherwise for certain modules.&lt;br /&gt;
&lt;br /&gt;
When handling the exheader dependency list starting with [[8.0.0-18]], Old3DS FIRM [[Process_Manager_Services|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. When the New3DS pm-module is launching any title except [[NS]], it first attempts to launch the title with programID-low bitmask 0x20000000 set, then with that bitmask clear if launching fails.&lt;br /&gt;
&lt;br /&gt;
=== 00040138 - [[FIRM|System Firmware]] ===&lt;br /&gt;
NATIVE_FIRM and SAFE_MODE_FIRM for the initial versions are exactly the same, besides [[Configuration_Memory|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_Settings#System_Updater|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/&amp;lt;TID&amp;gt;/data use a custom format, this is handled by AGB_FIRM.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Description&lt;br /&gt;
!  USA/EUR/JPN Versions&lt;br /&gt;
!  CHN Versions&lt;br /&gt;
!  KOR Versions&lt;br /&gt;
!  TWN Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00000001&lt;br /&gt;
| Unknown, very similar to SAFE_MODE_FIRM. Exists only on dev units and seems to only be used by SystemUpdaters.&lt;br /&gt;
| v0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00000002&lt;br /&gt;
| NATIVE_FIRM (Native Firmware)&lt;br /&gt;
| [[1.0.0-0|v432]], [[1.1.0-1|v1472]], [[2.0.0-2|v2516]], [[2.1.0-3|v3553]], [[2.2.0-X|v4595]], [[3.0.0-5|v5647]], [[4.0.0-7|v6677]], [[4.1.0-8|v7712]], [[5.0.0-11|v8758]], [[5.1.0-11|v9792]], [[6.0.0-11|v10833]], [[6.1.0-11|v11872]], [[7.0.0-13|v12916]], [[7.2.0-17|v13956]], v15043, [[8.0.0-18|v15047]], [[9.0.0-20|v17120]], [[9.3.0-21|v18182]], [[9.5.0-22|v19216]], [[9.6.0-24|v20262]], [[10.0.0-27|v21288]], [[10.2.0-28|v22313]], [[10.4.0-29|v23341]], [[11.0.0-33|v24368]]&lt;br /&gt;
| Same as USA/EUR/JPN starting with the USA/EUR/JPN [[4.0.0-7]] title-version&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 20000002&lt;br /&gt;
| [[New_3DS]] NATIVE_FIRM (Native Firmware)&lt;br /&gt;
| [[8.1.0-0_New3DS|v16085]], [[9.0.0-20|v17120]], [[9.3.0-21|v18182]], [[9.5.0-22|v19218]], [[9.6.0-24|v20262]], [[10.0.0-27|v21288]], [[10.2.0-28|v22313]], [[10.4.0-29|v23341]], [[11.0.0-33|v24368]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 00000003&lt;br /&gt;
| SAFE_MODE_FIRM &lt;br /&gt;
| [[1.0.0-0|v432]], [[3.0.0-5|v5632]]&lt;br /&gt;
| Same as USA/EUR/JPN starting with the USA/EUR/JPN [[3.0.0-5]] title-version&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 20000003&lt;br /&gt;
| [[New_3DS]] SAFE_MODE_FIRM &lt;br /&gt;
| [[8.1.0-0_New3DS|v16081]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 00000102 &lt;br /&gt;
| TWL_FIRM ( DSi Firmware )&lt;br /&gt;
| [[1.0.0-0|v432]], [[2.0.0-2|v1489]], [[3.0.0-5|v2565]], v3601, [[4.0.0-7|v4625]], [[4.4.0-10|v5681]], [[4.5.0-10|v6704]], [[6.0.0-11|v7762]], [[6.2.0-12|v8817]]&lt;br /&gt;
| Same as USA/EUR/JPN starting with the USA/EUR/JPN [[4.0.0-7]] title-version&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 20000102 &lt;br /&gt;
| [[New_3DS]] TWL_FIRM ( DSi Firmware )&lt;br /&gt;
| [[8.1.0-0_New3DS|v9936]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|- &lt;br /&gt;
| 00000202&lt;br /&gt;
| AGB_FIRM ( GBA Firmware )&lt;br /&gt;
| [[3.0.0-5|v519]], v1553, [[4.0.0-7|v2576]], [[6.0.0-11|v3665]]&lt;br /&gt;
| [[4.0.0-7|v2576]]&lt;br /&gt;
| [[4.0.0-7|v2576]], [[6.0.0-11|v3665]]&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|- &lt;br /&gt;
| 20000202&lt;br /&gt;
| [[New_3DS]] AGB_FIRM ( GBA Firmware )&lt;br /&gt;
| [[8.1.0-0_New3DS|v4816]]&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Application Titles ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Content Category&lt;br /&gt;
!  Bit Mask(s)&lt;br /&gt;
!  Category Bit Mask&lt;br /&gt;
|-&lt;br /&gt;
|  [[Title list/eShop Titles|Application]] (eShop Title)&lt;br /&gt;
|  Normal&lt;br /&gt;
|  0x0000&lt;br /&gt;
|-&lt;br /&gt;
|  DLP Child&lt;br /&gt;
|  DlpChild&lt;br /&gt;
|  0x0001&lt;br /&gt;
|-&lt;br /&gt;
|  [[EShop Demos|Demo]]&lt;br /&gt;
|  Demo&lt;br /&gt;
|  0x0002&lt;br /&gt;
|-&lt;br /&gt;
|  [[Title list/Patches|Patch]]&lt;br /&gt;
|  CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;Patch&lt;br /&gt;
|  0x000E&lt;br /&gt;
|-&lt;br /&gt;
|  [[Title list/DLC|Add-on Content]] (DLC)&lt;br /&gt;
|  NotRequireRightForMount&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;AddOnContents&lt;br /&gt;
|  0x008C&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00040001 - [[Download Play]] Titles ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TWL (DSi) Titles ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Content Category&lt;br /&gt;
!  Bit Mask(s)&lt;br /&gt;
!  Category Bit Mask&lt;br /&gt;
|-&lt;br /&gt;
|  Application (DSiWare)&lt;br /&gt;
|  TWL&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x4&lt;br /&gt;
|  0x8004&lt;br /&gt;
|-&lt;br /&gt;
|  System Application&lt;br /&gt;
|  TWL&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x1&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x4&lt;br /&gt;
|  0x8005&lt;br /&gt;
|-&lt;br /&gt;
|  System Archive&lt;br /&gt;
|  TWL&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x1&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x2&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x4&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x8&lt;br /&gt;
|  0x800F&lt;br /&gt;
|-&lt;br /&gt;
|  Developer Tool&lt;br /&gt;
|  TWL&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x1&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x4&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x10&lt;br /&gt;
|  0x8015&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Bitmask 0x1 for TWL titles denotes a system title (determining whether the title will be updated during a System Update). It appears to be sufficient, but not necessary, to make the title invisible on the [[Home menu]].&lt;br /&gt;
&lt;br /&gt;
Bitmask 0x2 for TWL titles may indicate no-execute.&lt;br /&gt;
&lt;br /&gt;
Bitmask 0x4 for TWL titles indicates internal storage.&lt;br /&gt;
&lt;br /&gt;
Bitmask 0x10 for TWL titles is found on developer tools.&lt;br /&gt;
&lt;br /&gt;
=== 00048005 - System Applications===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Region&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
!  Information&lt;br /&gt;
|-&lt;br /&gt;
| 42383841(B88A)&lt;br /&gt;
| ALL&lt;br /&gt;
| [[DS Internet]]&lt;br /&gt;
| v0, [[2.1.0-4|v1025]], [[3.0.0-5|v2048]]&lt;br /&gt;
| [[DS Internet]] is the DS-mode application, (also integrated in every online-enabled DS game) and now accessible through [[System Settings]] for configuring network settings for DS software. &lt;br /&gt;
|-&lt;br /&gt;
| 484E4441(HNDA)&lt;br /&gt;
| ALL&lt;br /&gt;
| [[Download Play]]&lt;br /&gt;
| v1024&lt;br /&gt;
| This [[Download Play]] application is the DS-mode Download Play client, launched by the 3DS-mode Download Play application.&lt;br /&gt;
|-&lt;br /&gt;
| 484E4443(HNDC)&lt;br /&gt;
| CHN&lt;br /&gt;
| [[Download Play]]&lt;br /&gt;
| v1024&lt;br /&gt;
| See Above Description.&lt;br /&gt;
|-&lt;br /&gt;
| 484E444B(HNDK)&lt;br /&gt;
| KOR&lt;br /&gt;
| [[Download Play]]&lt;br /&gt;
| v1024&lt;br /&gt;
| See Above Description.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0004800F - System Data Archives===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 484E4841(HNHA)&lt;br /&gt;
| [[Nintendo DS Cart Whitelist]]&lt;br /&gt;
| v0, [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[4.2.0-9|v5120]], [[4.3.0-10|v6145]], [[4.4.0-10|v7168]], [[4.5.0-10|v8192]], [[5.0.0-11|v9216]], [[6.0.0-11|v10240]], [[7.0.0-13|v11264]]&lt;br /&gt;
|-&lt;br /&gt;
| 484E4C41(HNLA)&lt;br /&gt;
| [[Version Data]]&lt;br /&gt;
| v0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 00048004 - DSiWare ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Region&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 4B4B5456(KKTV)&lt;br /&gt;
| EUR&lt;br /&gt;
| Cut the Rope&lt;br /&gt;
| v0, v64&lt;br /&gt;
|-&lt;br /&gt;
| 4B4E5256(KNRV)&lt;br /&gt;
| EUR&lt;br /&gt;
| A Little Bit of... Brain Training™: Maths Edition &lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 4B5A4C56(KZLV)&lt;br /&gt;
| EUR&lt;br /&gt;
| Plants vs. Zombies™&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 4B454256(KEBV)&lt;br /&gt;
| EUR&lt;br /&gt;
| ELECTROPLANKTON (Hanenbow)&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 4B513956(KQ9V)&lt;br /&gt;
| EUR&lt;br /&gt;
| Zelda: Four Swords Anniversary Edition&lt;br /&gt;
| v16&lt;br /&gt;
|-&lt;br /&gt;
| 4B574256(KWBV)&lt;br /&gt;
| EUR&lt;br /&gt;
| Mario Calculator &lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 4B574656(KWFV)&lt;br /&gt;
| EUR&lt;br /&gt;
| Mario Clock &lt;br /&gt;
| v0&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Title_list&amp;diff=17459</id>
		<title>Title list</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Title_list&amp;diff=17459"/>
		<updated>2016-06-02T08:28:25Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* 0004001B - System Data Archives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NOTE: This Title list is a condensed version, only the System Titles lists are full lists. For a full list of titles on Nintendo&#039;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.&lt;br /&gt;
&lt;br /&gt;
== CTR System Titles ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  System Category&lt;br /&gt;
!  Bit Mask(s)&lt;br /&gt;
!  Category Bit Mask&lt;br /&gt;
|-&lt;br /&gt;
|  Application (SYSTEM_APPLICATION)&lt;br /&gt;
|  Normal&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&lt;br /&gt;
|  0x0010&lt;br /&gt;
|-&lt;br /&gt;
|  System Data Archives (SYSTEM_CONTENT)&lt;br /&gt;
|  Contents&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&lt;br /&gt;
|  0x001B&lt;br /&gt;
|-&lt;br /&gt;
|  Shared Data Archives (SHARED_CONTENT)&lt;br /&gt;
|  Contents&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;NotRequireRightForMount&lt;br /&gt;
|  0x009B&lt;br /&gt;
|-&lt;br /&gt;
|  System Data Archives (AUTO_UPDATE_CONTENT)&lt;br /&gt;
|  Contents&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;NotRequireUserApproval&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;NotRequireRightForMount&lt;br /&gt;
|  0x00DB&lt;br /&gt;
|-&lt;br /&gt;
|  Applet (APPLET)&lt;br /&gt;
|  Normal&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;RequireBatchUpdate&lt;br /&gt;
|  0x0030&lt;br /&gt;
|-&lt;br /&gt;
|  Module (BASE)&lt;br /&gt;
|  Normal&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;RequireBatchUpdate&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CanSkipConvertJumpId&lt;br /&gt;
|  0x0130&lt;br /&gt;
|-&lt;br /&gt;
|  Firmware (FIRMWARE)&lt;br /&gt;
|  Normal&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;System&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;RequireBatchUpdate&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CanSkipConvertJumpId&lt;br /&gt;
|  0x0138&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00040010 - System Applications ===&lt;br /&gt;
The versions for CHN, KOR, and TWN are separate from the other regions.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  JPN TIDLow&lt;br /&gt;
!  USA TIDLow&lt;br /&gt;
!  EUR TIDLow&lt;br /&gt;
!  CHN TIDLow&lt;br /&gt;
!  KOR TIDLow&lt;br /&gt;
!  TWN TIDLow&lt;br /&gt;
!  Description&lt;br /&gt;
!  JPN Versions&lt;br /&gt;
!  EUR Versions&lt;br /&gt;
!  USA Versions&lt;br /&gt;
!  CHN Versions&lt;br /&gt;
!  KOR Versions&lt;br /&gt;
!  TWN Versions&lt;br /&gt;
!  Status&lt;br /&gt;
|-&lt;br /&gt;
| 00020000&lt;br /&gt;
| 00021000&lt;br /&gt;
| 00022000&lt;br /&gt;
| 00026000&lt;br /&gt;
| 00027000&lt;br /&gt;
| 00028000&lt;br /&gt;
| [[System Settings]] (mset)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[3.0.0-5|v2060]], [[4.0.0-7|v3074]], [[5.0.0-11|v4097]], [[6.0.0-11|v5127]], [[7.0.0-13|v6157]], [[7.2.0-17|v7173]], [[8.1.0-0_New3DS|v8198]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v9224]], [[9.6.0-24|v10245]], [[10.6.0-31|v10256]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[3.0.0-5|v2061]], [[4.0.0-7|v3075]], [[5.0.0-11|v4097]], [[6.0.0-11|v5127]], [[7.0.0-13|v6157]], [[7.2.0-17|v7174]], [[9.0.0-20|v8202]], [[9.6.0-24|v9220]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[3.0.0-5|v2062]], [[4.0.0-7|v3078]], [[5.0.0-11|v4098]], [[6.0.0-11|v5128]], [[7.0.0-13|v6157]], [[7.2.0-17|v7174]], [[9.0.0-20|v8203]], [[9.6.0-24|v9221]]&lt;br /&gt;
| [[4.0.0-7|v8]], [[4.4.0-10|v1024]](CHN-only sysupdate for just mset), [[5.0.0-11|v2049]], [[7.0.0-13|v3075]]&lt;br /&gt;
| [[4.0.0-7|v1026]], [[5.0.0-11|v2049]], [[7.0.0-13|v4098]]&lt;br /&gt;
| [[4.1.0-8|v8]], [[4.2.0-9|v1024]], [[5.0.0-11|v2050]], [[7.0.0-13|v3074]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020100&lt;br /&gt;
| 00021100&lt;br /&gt;
| 00022100&lt;br /&gt;
| 00026100&lt;br /&gt;
| 00027100&lt;br /&gt;
| 00028100&lt;br /&gt;
| [[Download Play]] (dlplay)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]], [[4.0.0-7|v2051]], [[9.0.0-20|v3072]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]], [[4.0.0-7|v2051]], [[9.0.0-20|v3073]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]], [[4.0.0-7|v2051]], [[9.0.0-20|v3073]]&lt;br /&gt;
| [[4.0.0-7|v4]]&lt;br /&gt;
| [[4.0.0-7|v1027]]&lt;br /&gt;
| [[4.1.0-8|v4]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020200&lt;br /&gt;
| 00021200&lt;br /&gt;
| 00022200&lt;br /&gt;
| 00026200&lt;br /&gt;
| 00027200&lt;br /&gt;
| 00028200&lt;br /&gt;
| [[Activity Log]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[3.0.0-5|v2051]], [[10.6.0-31|v2080]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[3.0.0-5|v2054]], [[7.0.0-13|v2064]]&lt;br /&gt;
| Same as EUR&lt;br /&gt;
| [[4.0.0-7|v3]]&lt;br /&gt;
| [[4.0.0-7|v2]], [[7.0.0-13|v16]]&lt;br /&gt;
| [[4.1.0-8|v2]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020300&lt;br /&gt;
| 00021300&lt;br /&gt;
| 00022300&lt;br /&gt;
| 00026300&lt;br /&gt;
| 00027300&lt;br /&gt;
| 00028300&lt;br /&gt;
| [[Health and Safety Information]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[4.0.0-7|v1024]], [[6.0.0-11|v2050]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[4.0.0-7|v2050]], [[6.0.0-11|v3077]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[4.0.0-7|v1026]], [[6.1.0-12U|v2051]]&lt;br /&gt;
| [[4.0.0-7|v5]]&lt;br /&gt;
| [[4.0.0-7|v2]]&lt;br /&gt;
| [[4.1.0-8|v5]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 20020300&lt;br /&gt;
| 20021300&lt;br /&gt;
| 20022300&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]] [[Health and Safety Information]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v2]], [[9.3.0-21|v17]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v1]]&lt;br /&gt;
| Same as EUR.&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020400&lt;br /&gt;
| 00021400&lt;br /&gt;
| 00022400&lt;br /&gt;
| 00026400&lt;br /&gt;
| 00027400&lt;br /&gt;
| 00028400&lt;br /&gt;
| [[Nintendo 3DS Camera]] (CtrApp)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v16]], [[3.0.0-5|v1038]], [[4.0.0-7|v2048]], [[6.0.0-11|v3073]], [[9.0.0-20|v4097]](Also for [[8.1.0-0_New3DS]]), [[10.6.0-31|v4112]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v16]], [[3.0.0-5|v1039]], [[4.0.0-7|v2048]], [[6.0.0-11|v3073]], [[7.0.0-13|v3088]], [[9.0.0-20|v4097]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v16]], [[3.0.0-5|v1039]], [[4.0.0-7|v2048]], [[6.1.0-12U|v3074]], [[7.0.0-13|v3088]], [[9.0.0-20|v4097]]&lt;br /&gt;
| [[4.0.0-7|v3]]&lt;br /&gt;
| [[4.0.0-7|v2]], [[7.0.0-13|v1040]]&lt;br /&gt;
| [[4.1.0-8|v3]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020500&lt;br /&gt;
| 00021500&lt;br /&gt;
| 00022500&lt;br /&gt;
| 00026500&lt;br /&gt;
| 00027500&lt;br /&gt;
| 00028500&lt;br /&gt;
| [[Nintendo 3DS Sound]] (CtrApp)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1027]], [[3.0.0-5|v2049]], [[4.0.0-7|v3072]], [[7.0.0-13|v3089]], [[10.6.0-31|3104]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1027]], [[3.0.0-5|v2049]], [[4.0.0-7|v3072]], [[7.0.0-13|v3088]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1027]], [[3.0.0-5|v2049]], [[4.0.0-7|v3072]], [[7.0.0-13|v3088]]&lt;br /&gt;
| [[4.0.0-7|v2]]&lt;br /&gt;
| [[4.0.0-7|v2]], [[7.0.0-13|v16]]&lt;br /&gt;
| [[4.1.0-8|v3]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020700&lt;br /&gt;
| 00021700&lt;br /&gt;
| 00022700&lt;br /&gt;
| 00026700&lt;br /&gt;
| 00027700&lt;br /&gt;
| 00028700&lt;br /&gt;
| [[Mii Maker]] (EDIT)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[7.0.0-13|v2055]], [[10.6.0-31|v2064]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| [[4.0.0-7|v1]]&lt;br /&gt;
| [[4.0.0-7|v1]], [[7.0.0-13|v16]]&lt;br /&gt;
| [[4.1.0-8|v2]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020800&lt;br /&gt;
| 00021800&lt;br /&gt;
| 00022800&lt;br /&gt;
| 00026800&lt;br /&gt;
| 00027800&lt;br /&gt;
| 00028800&lt;br /&gt;
| [[StreetPass Mii Plaza]] (MEET)&lt;br /&gt;
| [[1.0.0-0|v0]], v1027, [[2.1.0-4|v2048]], [[3.0.0-5|v3087]], [[3.0.0-6|v4096]], [[6.0.0-11|v5121]]&lt;br /&gt;
| [[1.0.0-0|v0]], v1027, [[2.1.0-4|v2048]], [[3.0.0-5|v3087]], [[3.0.0-6|v4096]], [[6.0.0-11|v5122]]&lt;br /&gt;
| [[1.0.0-0|v0]], v1027, [[2.1.0-4|v2048]], [[3.0.0-5|v3087]], [[3.0.0-6|v4096]], [[6.1.0-12U|v5124]], [[7.0.0-13|v5136]]&lt;br /&gt;
| [[4.0.0-7|v0]], [[4.4.0-10|v4096]]&lt;br /&gt;
| [[4.0.0-7|v1]], [[4.4.0-10|v4096]], [[7.0.0-13|v5120]]&lt;br /&gt;
| [[4.1.0-8|v1]], [[4.4.0-10|v4096]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020900&lt;br /&gt;
| 00021900&lt;br /&gt;
| 00022900&lt;br /&gt;
| N/A&lt;br /&gt;
| 00027900&lt;br /&gt;
| 00028900&lt;br /&gt;
| [[eShop]] (tiger)&lt;br /&gt;
| [[2.0.0-2|v4]], [[2.1.0-3|v1026]], [[3.0.0-5|v2057]], [[4.0.0-7|v3081]], [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7169]], [[7.0.0-13|v8206]], [[7.1.0-14|v9231]], [[7.2.0-17|v10245]], [[8.0.0-18|v11265]], [[8.1.0-19|v12288]], [[9.0.0-20|v13320]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17421]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]], [[10.4.0-29|v20483]], [[10.7.0-32|v21504]]&lt;br /&gt;
| [[2.0.0-2|v4]], [[2.1.0-3|v1026]], [[3.0.0-5|v2058]], [[4.0.0-7|v3081]], [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7171]], [[7.0.0-13|v8206]], [[7.1.0-14|v9231]], [[7.2.0-17|v10245]], [[8.0.0-18|v11265]], [[8.1.0-19|v12288]], [[9.0.0-20|v13320]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17421]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]], [[10.4.0-29|v20482]], [[10.7.0-32|v21505]]&lt;br /&gt;
| [[2.0.0-2|v4]], [[2.1.0-3|v1026]], [[3.0.0-5|v2058]], [[4.0.0-7|v3081]], [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7170]], [[7.0.0-13|v8206]], [[7.1.0-14|v9231]], [[7.2.0-17|v10246]], [[8.0.0-18|v11265]], [[8.1.0-19|v12288]], [[9.0.0-20|v13321]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17422]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]], [[10.4.0-29|v20482]], [[10.7.0-32|v21506]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[4.0.0-7|v3082]], [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7169]], [[7.0.0-13|v8205]], [[7.1.0-14|v9231]], [[8.1.0-19|v12288]], [[9.0.0-20|v13320]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17420]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]], [[10.4.0-29|v20482]]&lt;br /&gt;
| [[4.1.0-8|v4096]], [[4.2.0-9|v5123]], [[4.3.0-10|v6146]], [[5.0.0-11|v7170]], [[7.0.0-13|v8205]], [[7.1.0-14|v9231]], [[8.1.0-19|v12288]], [[9.3.0-21|v15366]], [[9.5.0-22|v16384]], [[9.6.0-24|v17421]], [[9.7.0-25|v18432]], [[10.0.0-27|v19465]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020A00&lt;br /&gt;
| 00021A00&lt;br /&gt;
| 00022A00&lt;br /&gt;
| N/A&lt;br /&gt;
| 00027A00&lt;br /&gt;
| 00028A00&lt;br /&gt;
| [[System Transfer]] (CARDBOARD)&lt;br /&gt;
| [[2.0.0-2|v4]], [[3.0.0-5|v1035]], [[4.0.0-7|v2050]], [[5.0.0-11|v3074]], [[7.0.0-13|v4109]], [[9.0.0-20|v5130]], [[9.6.0-24|v6154]]&lt;br /&gt;
| [[2.0.0-2|v4]], [[3.0.0-5|v1035]], [[4.0.0-7|v2050]], [[5.0.0-11|v3073]], [[7.0.0-13|v4109]], [[9.0.0-20|v5131]], [[9.6.0-24|v6155]]&lt;br /&gt;
| [[2.0.0-2|v4]], [[3.0.0-5|v1035]], [[4.0.0-7|v2051]], [[5.0.0-11|v3073]], [[7.0.0-13|v4109]], [[9.0.0-20|v5131]], [[9.6.0-24|v6156]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[4.0.0-7|v2]], [[5.0.0-11|v1025]], [[7.0.0-13|v2061]], [[9.0.0-20|v3082]]&lt;br /&gt;
| [[4.1.0-8|v2]], [[5.0.0-11|v1025]], [[7.0.0-13|v2061]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020B00&lt;br /&gt;
| 00021B00&lt;br /&gt;
| 00022B00&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| [[Nintendo Zone]] (&amp;quot;Nintendo&amp;quot;)&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1034]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020D00&lt;br /&gt;
| 00021D00&lt;br /&gt;
| 00022D00&lt;br /&gt;
| 00026D00&lt;br /&gt;
| 00027D00&lt;br /&gt;
| 00028D00&lt;br /&gt;
| [[Face Raiders]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1028]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1028]], [[7.0.0-13|v1040]]&lt;br /&gt;
| Same as EUR&lt;br /&gt;
| [[4.0.0-7|v0]]&lt;br /&gt;
| [[4.0.0-7|v0]]&lt;br /&gt;
| [[4.1.0-8|v2]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 20020D00&lt;br /&gt;
| 20021D00&lt;br /&gt;
| 20022D00&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]] [[Face Raiders]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v2050]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v2049]]&lt;br /&gt;
| Same as EUR.&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020E00&lt;br /&gt;
| 00021E00&lt;br /&gt;
| 00022E00&lt;br /&gt;
| 00026E00&lt;br /&gt;
| 00027E00&lt;br /&gt;
| 00028E00&lt;br /&gt;
| [[AR Games]] (AR_ACT)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1026]], [[7.0.0-13|v1040]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.1.0-4|v1027]], [[7.0.0-13|v1040]]&lt;br /&gt;
| [[4.0.0-7|v0]]&lt;br /&gt;
| [[4.0.0-7|v0]], [[7.0.0-13|v16]]&lt;br /&gt;
| [[4.1.0-8|v1]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00020F00&lt;br /&gt;
| 00021F00&lt;br /&gt;
| 00022F00&lt;br /&gt;
| 00026F00&lt;br /&gt;
| 00027F00&lt;br /&gt;
| 00028F00&lt;br /&gt;
| SAFE_MODE [[System Settings#System Updater|System Updater]] (mset)&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[6.0.0-11|v2049]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[6.0.0-11|v2050]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| [[4.0.0-7|v1]], [[6.0.0-11|v1026]]&lt;br /&gt;
| [[4.0.0-7|v1]]&lt;br /&gt;
| [[4.1.0-8|v1]]&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 00023000&lt;br /&gt;
| 00024000&lt;br /&gt;
| 00025000&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Promotional video&lt;br /&gt;
| [[1.1.0-1|v2]], [[2.0.0-2|v2048]]&lt;br /&gt;
| [[1.1.0-1|v&amp;lt;unknown&amp;gt;]], [[2.0.0-2|v2048]]&lt;br /&gt;
| [[1.1.0-1|v0]], [[2.0.0-2|v2048]]&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0002BF00&lt;br /&gt;
| 0002C000&lt;br /&gt;
| 0002C100&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Nintendo Network ID Settings (act)&lt;br /&gt;
| [[7.0.0-13|v14]], [[7.2.0-17|v1029]], [[9.0.0-20|v2051]], [[9.3.0-21|v3072]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Active&lt;br /&gt;
|-&lt;br /&gt;
| 20023100&lt;br /&gt;
| 20024100&lt;br /&gt;
| 20025100&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| [[microSD Management]] (&#039;mcopy&#039;) ([[New_3DS]]-only)&lt;br /&gt;
| [[8.1.0-0_New3DS|v8]], [[9.0.0-20|v1024]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v5]]&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Available&lt;br /&gt;
|-&lt;br /&gt;
| 2002C800&lt;br /&gt;
| 2002CF00&lt;br /&gt;
| 2002D000&lt;br /&gt;
| N/A&lt;br /&gt;
| 2002D700&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]]-only, currently stubbed. Placeholder exheader name is &amp;quot;menu&amp;quot;.&lt;br /&gt;
| [[8.1.0-0_New3DS|v2]], [[9.0.0-20|v18]], [[9.3.0-21|v34]], [[9.6.0-24|v50]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v1]], [[9.3.0-21|v17]], [[9.6.0-24|v34]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v1]], [[9.3.0-21|v18]], [[9.6.0-24|v33]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v2]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 2002C900&lt;br /&gt;
| 2002D100&lt;br /&gt;
| 2002D200&lt;br /&gt;
| N/A&lt;br /&gt;
| 2002D800&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]]-only, currently stubbed. Placeholder exheader name is &amp;quot;friend&amp;quot;.&lt;br /&gt;
| [[8.1.0-0_New3DS|v1]]&lt;br /&gt;
| Same as JPN.&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.3.0-21|v16]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v2]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 2002CA00&lt;br /&gt;
| 2002D300&lt;br /&gt;
| 2002D400&lt;br /&gt;
| N/A&lt;br /&gt;
| 2002D900&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]]-only, currently stubbed. Placeholder exheader name is &amp;quot;newslist&amp;quot;.&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], v1([[Home_Menu|JPN-only]] Oct 2, 2014 &amp;quot;sysupdate&amp;quot;, actually uploaded on 09-29-14. Identical to v0, same TMDs besides title-versions)&lt;br /&gt;
| [[8.1.0-0_New3DS|v2]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]]&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v2]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 2002CB00&lt;br /&gt;
| 2002D500&lt;br /&gt;
| 2002D600&lt;br /&gt;
| N/A&lt;br /&gt;
| 2002DA00&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]]-only, currently stubbed. Placeholder exheader name is &amp;quot;cherry&amp;quot;.&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.0.0-20|v1]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v2]]&lt;br /&gt;
| Same as EUR.&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v1]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Stubbed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;act&amp;quot; application seems to use a web browser with webkit?&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== 0004001B - [[NCCH#CFA|System Data Archives]] ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00010002&lt;br /&gt;
| [[ClCertA]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 00010702&lt;br /&gt;
| [[NS CFA]]&lt;br /&gt;
| [[3.0.0-5|v0]], [[6.0.0-11|v1028]], [[6.3.0-12|v2048]], [[7.0.0-13|v3073]], [[9.0.0-20|v4096]](also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
| 00010802&lt;br /&gt;
| This CFA only contains a 1-byte &amp;quot;dummy.txt&amp;quot; in the RomFS, which contains &#039;0&#039;.&lt;br /&gt;
| [[6.3.0-12|v0]], [[9.5.0-23|v1024]], [[10.5.0-30|v2048]], [[11.0.0-33|v3072]]&lt;br /&gt;
|-&lt;br /&gt;
| 00018002&lt;br /&gt;
| Same contents as 00010802. Starting with [[7.1.0-15]], the &amp;quot;dummy.txt&amp;quot; file was removed from RomFS: this CFA RomFS now contains web-browser data(similar to 00018102) for NNID / networking, etc.&lt;br /&gt;
| [[7.0.0-13|v14]], [[7.1.0-15|v1025]], [[7.2.0-17|v2055]], [[9.0.0-20|v3078]], [[9.3.0-21|v4096]], [[9.6.0-24|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 00018102&lt;br /&gt;
| This contains local web-browser data(html/js, gfx, etc) for the Miiverse Offline-mode.&lt;br /&gt;
| [[7.0.0-13|v11]], [[9.0.0-20|v1025]](also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
| 00018202&lt;br /&gt;
| This contains the webkit/OSS [[CRO0|CROs]] used with the Miiverse applet and the &amp;quot;act&amp;quot; application.&lt;br /&gt;
| [[7.0.0-13|v7]], [[8.1.0-0_New3DS|v1026]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v2050]]&lt;br /&gt;
|-&lt;br /&gt;
| 00019002&lt;br /&gt;
| [[Fangate_updater]]&lt;br /&gt;
| [[9.3.0-21|v2]], [[9.6.0-24|v1026]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00040030 - Applets===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  JPN TitleIDLow&lt;br /&gt;
!  USA TitleIDLow&lt;br /&gt;
!  EUR TitleIDLow&lt;br /&gt;
!  CHN TitleIDLow&lt;br /&gt;
!  KOR TitleIDLow&lt;br /&gt;
!  TWN TitleIDLow&lt;br /&gt;
!  Description&lt;br /&gt;
!  JPN Versions&lt;br /&gt;
!  USA Versions&lt;br /&gt;
!  EUR Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00008102&lt;br /&gt;
| 00008102&lt;br /&gt;
| 00008102&lt;br /&gt;
| 00008102&lt;br /&gt;
| 00008102&lt;br /&gt;
| 00008102&lt;br /&gt;
| [[NS#Alternate menu|Alternate menu]]&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00008202&lt;br /&gt;
| 00008F02&lt;br /&gt;
| 00009802&lt;br /&gt;
| 0000a102&lt;br /&gt;
| 0000a902&lt;br /&gt;
| 0000b102&lt;br /&gt;
| [[Home Menu|Home Menu]] (menu)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[2.1.0-3|v2049]], [[2.2.0-X|v3075]], [[3.0.0-5|v4111]], [[4.0.0-7|v5131]], [[4.2.0-9|v6146]], [[5.0.0-11|v7172]], [[6.0.0-11|v8198]], [[7.0.0-13|v9230]], [[8.1.0-0_New3DS|v10250]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v13313]], [[9.1.0-20J|v14336]], [[9.2.0-20|v15360]], [[9.3.0-21|v16402]], [[9.4.0-21|v17408]], [[9.5.0-22|v18432]], [[9.6.0-24|v19476]], [[9.7.0-25|v20487]], [[9.8.0-25|v22528]], [[10.1.0-27|v23552]], [[10.2.0-28|v24576]], [[10.3.0-28|v25600]], [[10.4.0-29|v26626]], [[10.6.0-31|v27648]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[2.1.0-3|v2049]], [[2.2.0-X|v3075]], [[3.0.0-5|v4111]], [[4.0.0-7|v5131]], [[4.2.0-9|v6146]], [[5.0.0-11|v7172]], [[6.0.0-11|v8198]], [[7.0.0-13|v9230]], [[8.1.0-0_New3DS|v10250]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v11272]], [[9.2.0-20|v12288]], [[9.3.0-21|v13330]], [[9.4.0-21|v14336]], [[9.5.0-22|v15360]], [[9.6.0-24|v16404]], [[9.7.0-25|v17415]], [[9.8.0-25|v19456]], [[9.9.0-26|v20480]], [[10.1.0-27|v21504]], [[10.2.0-28|v22528]], [[10.3.0-28|v23552]], [[10.4.0-29|v24578]], [[10.6.0-31|v25600]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1027]], [[2.1.0-3|v2049]], [[2.2.0-X|v3075]], [[3.0.0-5|v4111]], [[4.0.0-7|v5131]], [[4.2.0-9|v6146]], [[5.0.0-11|v7172]], [[6.0.0-11|v8198]], [[7.0.0-13|v9230]], [[8.1.0-0_New3DS|v10250]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v11272]], [[9.2.0-20|v12288]], [[9.3.0-21|v13330]], [[9.4.0-21|v14336]], [[9.5.0-22|v15360]], [[9.6.0-24|v16404]], [[9.7.0-25|v17415]], [[9.8.0-25|v19456]], [[10.1.0-27|v20480]], [[10.2.0-28|v21504]], [[10.3.0-28|v22528]], [[10.4.0-29|v23554]], [[10.6.0-31|v24576]]&lt;br /&gt;
|-&lt;br /&gt;
| 00008402&lt;br /&gt;
| 00009002&lt;br /&gt;
| 00009902&lt;br /&gt;
| 0000A202&lt;br /&gt;
| 0000AA02&lt;br /&gt;
| 0000B202&lt;br /&gt;
| Camera applet used by Home-menu (CtrApp)&lt;br /&gt;
| v0, v1036, [[9.0.0-20|v2049]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008502&lt;br /&gt;
| 00009102&lt;br /&gt;
| 00009A02&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| Not available on CDN&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00008602&lt;br /&gt;
| 00009202&lt;br /&gt;
| 00009B02&lt;br /&gt;
| 0000A402&lt;br /&gt;
| 0000AC02&lt;br /&gt;
| 0000B402&lt;br /&gt;
| Instruction Manual, applet for displaying instruction manuals&lt;br /&gt;
| v0, v1026, v2048, v3072, [[5.0.0-11|v4097]], [[9.0.0-20|v5120]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008702&lt;br /&gt;
| 00009302&lt;br /&gt;
| 00009C02&lt;br /&gt;
| 0000A502&lt;br /&gt;
| 0000AD02&lt;br /&gt;
| 0000B502&lt;br /&gt;
| Game Notes (Cherry)&lt;br /&gt;
| v0, v1026, v2049, [[5.0.0-11|v3073]], [[9.0.0-20|v4096]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008802&lt;br /&gt;
| 00009402&lt;br /&gt;
| 00009D02&lt;br /&gt;
| 0000A602&lt;br /&gt;
| 0000AE02&lt;br /&gt;
| 0000B602&lt;br /&gt;
| [[Internet Browser]] (spider)&lt;br /&gt;
| [[2.0.0-2|v6]], [[2.1.0-4|v1024]], [[4.0.0-7|v2050]], [[5.0.0-11|v3074 (EUR)/v3075(USA,JAP)]], [[7.0.0-13|v3088]], [[7.1.0-16|v4096]], [[9.5.0-23|v5121]], [[9.9.0-26|v6149]], [[10.2.0-28|v7168]], [[10.6.0-31|v8192]], [[10.7.0-32|v9232]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 20008802&lt;br /&gt;
| 20009402&lt;br /&gt;
| 20009D02&lt;br /&gt;
| ?&lt;br /&gt;
| 2000AE02&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]] [[Internet Browser]] (SKATER)&lt;br /&gt;
| [[8.1.0-0_New3DS|v10]], [[9.3.0-21|v1027]], [[9.6.0-24|v2051]], [[9.9.0-26|v3077]], [[10.2.0-28|v4096]], [[10.4.0-29|v5121]], [[10.6.0-31|v6144]], [[10.7.0-32|v7184]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008A02&lt;br /&gt;
| 00008A02&lt;br /&gt;
| 00008A02&lt;br /&gt;
| 00008A02&lt;br /&gt;
| 00008A02&lt;br /&gt;
| 00008A02&lt;br /&gt;
| [[ErrDisp]]&lt;br /&gt;
| v0, v1025, [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5121]], [[8.0.0-18|v6144]], [[9.0.0-20|v7168]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008A03&lt;br /&gt;
| 00008A03&lt;br /&gt;
| 00008A03&lt;br /&gt;
| 00008A03&lt;br /&gt;
| 00008A03&lt;br /&gt;
| 00008A03&lt;br /&gt;
| SAFE_MODE [[ErrDisp]]&lt;br /&gt;
| v0&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 20008A03&lt;br /&gt;
| 20008A03&lt;br /&gt;
| 20008A03&lt;br /&gt;
| ?&lt;br /&gt;
| 20008A03&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[ErrDisp]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008D02&lt;br /&gt;
| 00009602&lt;br /&gt;
| 00009F02&lt;br /&gt;
| 0000A702&lt;br /&gt;
| 0000AE02&lt;br /&gt;
| 0000B702&lt;br /&gt;
| Friend List (friend)&lt;br /&gt;
| v0, v1026, [[2.2.0-X|v2051]], v3082, v4099, [[7.0.0-13|v5120]], [[9.0.0-20|v6144]](Also for [[8.1.0-0_New3DS]]) (EUR v6, v1024, v3082, v4099, [[7.0.0-13|v5120]], [[9.0.0-20|v6144]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008E02&lt;br /&gt;
| 00009702&lt;br /&gt;
| 0000A002&lt;br /&gt;
| 0000A802&lt;br /&gt;
| 0000B002&lt;br /&gt;
| 0000B802&lt;br /&gt;
| Notifications (newslist)&lt;br /&gt;
| v0, v1029, v2054, v3075, [[9.0.0-20|v4097]] (EUR v6, v1024, v2054, v3075, [[9.0.0-20|v4097]]) (JPN: ..., [[8.1.0-0_New3DS|v4096]], [[9.0.0-20|v5121]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C002&lt;br /&gt;
| 0000C802&lt;br /&gt;
| 0000D002&lt;br /&gt;
| 0000D802&lt;br /&gt;
| 0000DE02&lt;br /&gt;
| 0000E402&lt;br /&gt;
| Software Keyboard (swkbd)&lt;br /&gt;
| v0, v1026, v2053, [[7.0.0-13|v3072]], [[9.0.0-20|v4096]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C003&lt;br /&gt;
| 0000C803&lt;br /&gt;
| 0000D003&lt;br /&gt;
| 0000D803&lt;br /&gt;
| 0000DE03&lt;br /&gt;
| 0000E403&lt;br /&gt;
| SAFE_MODE Software Keyboard (swkbd)&lt;br /&gt;
| v0&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 2000C003&lt;br /&gt;
| 2000C803&lt;br /&gt;
| 2000D003&lt;br /&gt;
| ?&lt;br /&gt;
| 2000DE03&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]] SAFE_MODE Software Keyboard (swkbd)&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]](for JPN this is v1024)&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C102&lt;br /&gt;
| 0000C902&lt;br /&gt;
| 0000D102&lt;br /&gt;
| 0000D902&lt;br /&gt;
| 0000DF02&lt;br /&gt;
| 0000E502&lt;br /&gt;
| appletEd (MiiSelector)&lt;br /&gt;
| v0, v1026, [[9.0.0-20|v2048]](Also for [[8.1.0-0_New3DS]]), [[9.3.0-21|v3077]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C302&lt;br /&gt;
| 0000CB02&lt;br /&gt;
| 0000D302&lt;br /&gt;
| 0000DB02&lt;br /&gt;
| 0000E102&lt;br /&gt;
| 0000E702&lt;br /&gt;
| PNOTE_AP (Photo file selector applet, for SD-card/etc?)&lt;br /&gt;
| v0, v1024, [[8.1.0-0_New3DS|v2049]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v3075]], [[9.3.0-21|v4096]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C402&lt;br /&gt;
| 0000CC02&lt;br /&gt;
| 0000D402&lt;br /&gt;
| 0000DC02&lt;br /&gt;
| 0000E202&lt;br /&gt;
| 0000E802&lt;br /&gt;
| SNOTE_AP (Sound file selector applet, for SD-card/etc?)&lt;br /&gt;
| v0, v3, [[8.0.0-18|v1026]], [[9.0.0-20|v2048]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C502&lt;br /&gt;
| 0000C502&lt;br /&gt;
| 0000C502&lt;br /&gt;
| 0000CF02&lt;br /&gt;
| 0000CF02&lt;br /&gt;
| 0000CF02&lt;br /&gt;
| error (This applet displays networking errors, etc)&lt;br /&gt;
| v0, v1026, v2053, v3074, [[8.1.0-0_New3DS|v4096]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v5128]], [[9.6.0-24|v6145]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C503&lt;br /&gt;
| 0000C503&lt;br /&gt;
| 0000C503&lt;br /&gt;
| 0000CF03&lt;br /&gt;
| 0000CF03&lt;br /&gt;
| 0000CF03&lt;br /&gt;
| SAFE_MODE error applet&lt;br /&gt;
| v0&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 2000C503&lt;br /&gt;
| 2000C503&lt;br /&gt;
| 2000C503&lt;br /&gt;
| ?&lt;br /&gt;
| 2000CF03&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]] SAFE_MODE error applet&lt;br /&gt;
| [[8.1.0-0_New3DS|v1024]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000CD02&lt;br /&gt;
| 0000CD02&lt;br /&gt;
| 0000CD02&lt;br /&gt;
| 0000D502&lt;br /&gt;
| 0000D502&lt;br /&gt;
| 0000D502&lt;br /&gt;
| extrapad ([[Circle Pad Pro]] calibration applet)&lt;br /&gt;
| v1, v1026, [[8.1.0-0_New3DS|v2048]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v3073]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000C602&lt;br /&gt;
| 0000CE02&lt;br /&gt;
| 0000D602&lt;br /&gt;
| N/A&lt;br /&gt;
| 0000E302&lt;br /&gt;
| 0000E902&lt;br /&gt;
| mint. eShop applet, used by applications for accessing the eShop, for DLC/etc. Also used by the eShop application itself.&lt;br /&gt;
| v5, v1028, [[4.2.0-9|v2050]], [[5.0.0-11|v3072]], [[7.0.0-13|v4109]], [[7.2.0-17|v5125]](v5123 for JPN), [[8.0.0-18|v6145]], [[8.1.0-0_New3DS|v7168]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v8200]], [[9.3.0-21|v9224]], [[9.6.0-24|v10247]], [[9.8.0-25|v11264]], [[10.0.0-27|v12293]], [[10.1.0-27|v13312]], [[10.3.0-28|v14337]], [[10.4.0-29|v15360]], [[10.7.0-32|v16384]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000BC02&lt;br /&gt;
| 0000BD02&lt;br /&gt;
| 0000BE02&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| olv (Miiverse applet)&lt;br /&gt;
| [[7.0.0-13|v14]], [[7.2.0-17|v1024]], [[9.0.0-20|v2048]](Also for [[8.1.0-0_New3DS]]), [[9.3.0-21|v3072]], [[9.6.0-24|v4096]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 0000F602&lt;br /&gt;
| 0000F602&lt;br /&gt;
| 0000F602&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| memolib (Uses Miiverse, likely the &amp;quot;system library&amp;quot; for Miiverse)&lt;br /&gt;
| [[7.0.0-13|v5]], [[8.1.0-0_New3DS|v1024]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v2050]], [[9.3.0-21|v3072]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00008302&lt;br /&gt;
| 00008B02&lt;br /&gt;
| 0000BA02&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| solv3 (Miiverse-posting applet)&lt;br /&gt;
| [[9.0.0-20|v6]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|-&lt;br /&gt;
| 00009502&lt;br /&gt;
| 00009E02&lt;br /&gt;
| 0000B902&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| Cabinet ([[amiibo Settings]])&lt;br /&gt;
| [[9.3.0-21|v7]], [[9.6.0-24|v1031]]&lt;br /&gt;
| Same as JPN&lt;br /&gt;
| Same as JPN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Most of these processes are applets, see [[NS_and_APT_Services|here]] for details.&lt;br /&gt;
&lt;br /&gt;
All of the above processes use the &amp;quot;SYSTEM&amp;quot; [[SVC|memory-region]].&lt;br /&gt;
&lt;br /&gt;
The ExeFS for Home Menu is exactly the same for USA/EUR/JPN.&lt;br /&gt;
&lt;br /&gt;
The Miiverse applet seems to use a web browser with webkit.&lt;br /&gt;
&lt;br /&gt;
=== 0004009B - [[NCCH#CFA|System Data Archives]] (Shared Archives) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  JPN TitleIDLow&lt;br /&gt;
!  USA TitleIDLow&lt;br /&gt;
!  EUR TitleIDLow&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00010202&lt;br /&gt;
| 00010202&lt;br /&gt;
| 00010202&lt;br /&gt;
| Probably Mii-related, contains &amp;quot;CFL_Res.dat&amp;quot; in the RomFS.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| Only exists for dev-units.&lt;br /&gt;
| v0, v2052&lt;br /&gt;
|-&lt;br /&gt;
| 00010402&lt;br /&gt;
| 00010402&lt;br /&gt;
| 00010402&lt;br /&gt;
| Mounted as &amp;quot;area:&amp;quot;, contains Country and Region names&lt;br /&gt;
| v0, v1024, v2050, v3072, [[7.0.0-13|v4098]], [[9.6.0-24|v5122]]&lt;br /&gt;
|-&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| Only exists for dev-units.&lt;br /&gt;
| v0, v1024, v2048&lt;br /&gt;
|-&lt;br /&gt;
| 00010602&lt;br /&gt;
| 00010602&lt;br /&gt;
| 00010602&lt;br /&gt;
| Non-Nintendo TLS Root-CA Certificates (RomFS contains files with filename &amp;quot;CACERT_PUBLIC_CA_&amp;lt;val&amp;gt;.der&amp;quot;, where &amp;lt;val&amp;gt; is 5..8)&lt;br /&gt;
| v2, [[10.5.0-30|v1024]]&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011202&lt;br /&gt;
| &amp;quot;NL/NL&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011302&lt;br /&gt;
| &amp;quot;EN/GB&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 00011402&lt;br /&gt;
| &lt;br /&gt;
| &amp;quot;EN/US&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011502&lt;br /&gt;
| &amp;quot;FR/FR/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 00011602&lt;br /&gt;
| &lt;br /&gt;
| &amp;quot;FR/CA/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011702&lt;br /&gt;
| &amp;quot;DE/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011802&lt;br /&gt;
| &amp;quot;IT/IT&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 00011902&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &amp;quot;JA_small/32&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011B02&lt;br /&gt;
| &amp;quot;PT/PT/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 00011C02&lt;br /&gt;
| &amp;quot;RU/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 00011D02&lt;br /&gt;
| 00011D02&lt;br /&gt;
| &amp;quot;ES/ES&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 00011E02&lt;br /&gt;
| &lt;br /&gt;
| &amp;quot;PT/BR/regular&amp;quot; dictionary.&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 00012202&lt;br /&gt;
| 00012302&lt;br /&gt;
| 00012102&lt;br /&gt;
| ?contains a lists with error strings&lt;br /&gt;
| v1026, v2053, v3073, [[4.2.0-9|v4096]], [[5.0.0-11|v5120]], [[7.0.0-13|v6149]], [[7.2.0-17|v7168]], [[8.0.0-18|v8192]], [[9.0.0-20|v9218]], [[9.3.0-21|v10242]], [[9.6.0-24|v11269]], [[10.0.0-27|v12289]], [[10.4.0-29|v13312]], [[10.7.0-32|v13313]]&lt;br /&gt;
|-&lt;br /&gt;
| 00013202&lt;br /&gt;
| 00013302&lt;br /&gt;
| 00013102&lt;br /&gt;
| Mounted as &amp;quot;eula:&amp;quot;&lt;br /&gt;
| v0, v1024, v2049 USA: v1024, v2051, [[7.0.0-13|v3074]], [[7.2.0-17|v4100]](EUR-only), [[9.0.0-20|v4099]], [[9.9.0-26|v6144]], [[10.4.0-29|v7168]]&lt;br /&gt;
|-&lt;br /&gt;
| 00014002&lt;br /&gt;
| 00014002&lt;br /&gt;
| 00014002&lt;br /&gt;
| JPN/EUR/USA [[System Font]] (&amp;quot;font:&amp;quot;)&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 00014102&lt;br /&gt;
| 00014102&lt;br /&gt;
| 00014102&lt;br /&gt;
| CHN [[System Font]] (&amp;quot;font:&amp;quot;)&lt;br /&gt;
| v0, v1024&lt;br /&gt;
|-&lt;br /&gt;
| 00014202&lt;br /&gt;
| 00014202&lt;br /&gt;
| 00014202&lt;br /&gt;
| KOR [[System Font]] (&amp;quot;font:&amp;quot;)&lt;br /&gt;
| v0, v1024&lt;br /&gt;
|-&lt;br /&gt;
| 00014302&lt;br /&gt;
| 00014302&lt;br /&gt;
| 00014302&lt;br /&gt;
| TWN [[System Font]] (&amp;quot;font:&amp;quot;)&lt;br /&gt;
| v0, v1024&lt;br /&gt;
|-&lt;br /&gt;
| 00015202&lt;br /&gt;
| 00015302&lt;br /&gt;
| 00015102&lt;br /&gt;
| Mounted as &amp;quot;rate:&amp;quot;&lt;br /&gt;
| v0 (EUR: v0, v1024)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 000400DB - [[NCCH#CFA|System Data Archives]] ===&lt;br /&gt;
These [[NVer]] titleIDs can be found @ offset 0x320 in every [[CCI]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  EUR TitleIDLow&lt;br /&gt;
!  JPN TitleIDLow&lt;br /&gt;
!  USA TitleIDLow&lt;br /&gt;
!  CHN TitleIDLow&lt;br /&gt;
!  KOR TitleIDLow&lt;br /&gt;
!  TWN TitleIDLow&lt;br /&gt;
!  Description&lt;br /&gt;
!  USA/EUR/JPN Versions&lt;br /&gt;
!  CHN Versions&lt;br /&gt;
!  TWN Versions&lt;br /&gt;
!  KOR Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| 00010302&lt;br /&gt;
| NGWord bad word list&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1024]], [[3.0.0-5|v2052]], [[4.0.0-7|v3072]], [[4.3.0-10|v4096]], [[5.0.0-11|v5120]], [[9.0.0-20|v6144]], [[9.3.0-21|v7168]], [[9.6.0-24|v8192]]&lt;br /&gt;
| Same as USA&lt;br /&gt;
| Same as USA&lt;br /&gt;
| Same as USA&lt;br /&gt;
|-&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| 00010502&lt;br /&gt;
| [[Nintendo Zone]] hotspot list&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1024]], [[3.0.0-5|v2048]], [[4.0.0-7|v3073]], [[4.3.0-10|v4096]], [[4.4.0-10|v5120]], [[4.5.0-10|v6144]], [[5.0.0-11|v7169]], [[6.0.0-11|v8192]], [[6.2.0-12|v9216]], [[7.0.0-13|v10242]], [[7.2.0-17|v11267]], [[8.0.0-18|v12288]], [[9.0.0-20|v14336]], [[9.3.0-21|v15360]], [[9.6.0-24|v16386]], [[10.0.0-27|v17409]], [[10.4.0-29|18432]]&lt;br /&gt;
| Same as USA&lt;br /&gt;
| Same as USA&lt;br /&gt;
| Same as USA&lt;br /&gt;
|-&lt;br /&gt;
| 00016102&lt;br /&gt;
| 00016202&lt;br /&gt;
| 00016302&lt;br /&gt;
| 00016402&lt;br /&gt;
| 00016502&lt;br /&gt;
| 00016602&lt;br /&gt;
| [[NVer]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v16]], [[2.0.0-2|v32]], [[2.1.0-3|v48]], [[2.1.0-4|v64]], [[3.0.0-5|v80]], [[3.0.0-6|v96]], [[4.0.0-7|v112]],  [[4.1.0-8|v128]], [[4.2.0-9|v144]], [[4.3.0-10|v160]], [[5.0.0-11|v176]], non-USA=[[6.0.0-11|v192]]/USA=[[6.1.0-12U|v192]], [[7.0.0-13|v208]], [[7.1.0-14|v224]], [[7.1.0-15|v240]], [[7.1.0-16|v256]], [[7.2.0-17|v272]], [[8.0.0-18|v288]], [[8.1.0-19|v304]], [[9.0.0-20|v320]], [[9.3.0-21|v336]], [[9.5.0-22|v352]], [[9.5.0-23|v368]], [[9.6.0-24|v384]], [[9.7.0-25|v400]], [[9.9.0-26|v416]], [[10.0.0-27|v432]], [[10.2.0-28|v448]], [[10.4.0-29|v464]], [[10.5.0-30|v480]], [[10.6.0-31|v496]], [[10.7.0-32|v512]]&lt;br /&gt;
| [[4.0.0-7|v113]], [[4.2.0-9|v128]], [[5.0.0-11|v129]], [[7.1.0-16|v130]], [[7.2.0-17|v272]], [[9.5.0-23|v131]], [[9.9.0-26|v132]]&lt;br /&gt;
| [[4.1.0-8|v114]], [[4.2.0-9|v133]], [[4.3.0-10|v134]], [[5.0.0-11|v136]], [[7.0.0-13|v144]], [[7.1.0-14|v160]] [[7.1.0-16|v192]], [[7.2.0-17|v272]], [[8.0.0-18|v208]], [[8.1.0-19|v224]], [[9.0.0-20|v240]], [[9.5.0-22|v272]], [[9.5.0-23|v288]], [[9.6.0-24|v304]], [[9.7.0-25|v320]], [[9.9.0-26|v336]], [[10.0.0-27|v352]], [[10.2.0-28|v368]]&lt;br /&gt;
| [[4.0.0-7|v113]], [[4.1.0-8|v114]], [[4.2.0-9|v133]], [[4.3.0-10|v134]], [[5.0.0-11|v136]], [[7.0.0-13|v160]], [[7.1.0-14|v176]], [[7.1.0-16|v176]], [[7.2.0-17|v272]], [[8.0.0-18|v224]], [[8.1.0-19|v240]], [[9.0.0-20|v256]], [[9.3.0-21|v272]], [[9.5.0-22|v288]], [[9.5.0-23|v304]], [[9.6.0-24|v320]], [[9.7.0-25|v336]], [[9.9.0-26|v352]], [[10.0.0-27|v368]], [[10.2.0-28|v384]]&lt;br /&gt;
|-&lt;br /&gt;
| 20016102&lt;br /&gt;
| 20016202&lt;br /&gt;
| 20016302&lt;br /&gt;
| N/A&lt;br /&gt;
| 20016502&lt;br /&gt;
| N/A&lt;br /&gt;
| [[New_3DS]] [[NVer]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.0.0-20|v320]], [[9.3.0-21|v336]], [[9.5.0-22|v352]], [[9.5.0-22|v352]], [[9.5.0-23|v368]], [[9.6.0-24|v384]], [[9.7.0-25|v400]], [[9.9.0-26|v416]], [[10.0.0-27|v432]], [[10.2.0-28|v448]], [[10.4.0-29|v464]], [[10.5.0-30|v480]], [[10.6.0-31|v496]], [[10.7.0-32|v512]]&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| [[9.6.0-24|v320]], [[9.7.0-25|v336]], [[9.9.0-26|v352]], [[10.0.0-27|v368]], [[10.2.0-28|v384]]&lt;br /&gt;
|-&lt;br /&gt;
| 00017102&lt;br /&gt;
| 00017202&lt;br /&gt;
| 00017302&lt;br /&gt;
| 00017402&lt;br /&gt;
| 00017502&lt;br /&gt;
| 00017602&lt;br /&gt;
| [[CVer]]&lt;br /&gt;
| [[1.0.0-0|v1024]], [[1.1.0-1|v1045]], [[2.0.0-2|v2049]], [[2.1.0-3|v2069]], [[2.2.0-X|v2088]] [[3.0.0-5|v3088]], [[4.0.0-7|v4098]], [[4.1.0-8|v4113]], [[4.2.0-9|v4130]], [[4.3.0-10|v4145]], [[4.4.0-10|v4163]], [[4.5.0-10|v4176]], [[5.0.0-11|v5120]], [[5.1.0-11|v5136]], [[6.0.0-11|v6146]], [[6.1.0-11|v6160]], [[6.2.0-12|v6178]], [[6.3.0-12|v6192]], [[7.0.0-13|v7175]], [[7.1.0-14|v7187]], [[7.2.0-17|v7203]], [[8.0.0-18|v8196]], [[8.1.0-18|v8208]], [[8.1.0-0_New3DS|v8215]](8.1.0-0_New3DS), [[9.0.0-20|v9218]], [[9.1.0-20J|v9232]](JPN-only), [[9.2.0-20|v9248]], [[9.3.0-21|v9264]], [[9.4.0-21|v9280]], [[9.5.0-22|v9296]], [[9.6.0-24|v9319]], [[9.7.0-25|v9328]], [[9.8.0-25|v9344]], [[9.9.0-26|v9360]], [[10.0.0-27|v10240]], [[10.1.0-27|v10256]], [[10.2.0-28|v10272]], [[10.3.0-28|v10288]], [[10.4.0-29|v10304]], [[10.5.0-30|v10320]], [[10.6.0-31|v10336]], [[10.7.0-32|v10352]]&lt;br /&gt;
| [[1.0.0-0|v1024]], [[1.1.0-1|v1045]], [[2.0.0-2|v2049]], [[2.1.0-3|v2069]], [[2.2.0-X|v2088]] [[3.0.0-5|v3088]], [[4.0.0-7|v4098]], [[4.1.0-8|v4113]], [[4.2.0-9|v4130]], [[4.3.0-10|v4145]], [[4.4.0-10|v4163]], [[4.5.0-10|v4176]], [[5.0.0-11|v5120]], [[5.1.0-11|v5136]], [[6.0.0-11|v6146]], [[6.1.0-11|v6160]], [[6.2.0-12|v6178]], [[6.3.0-12|v6192]], [[7.0.0-13|v7175]], [[7.1.0-14|v7187]], [[7.2.0-17|v7203]], [[8.0.0-18|v8196]], [[8.1.0-18|v8208]], [[9.0.0-20|v9217]], [[9.3.0-21|v9264]], [[9.5.0-22|v9296]], [[9.6.0-24|v9319]], [[9.7.0-25|v9328]], [[9.8.0-25|v9344]], [[9.9.0-26|v9360]], [[10.0.0-27|v10240]], [[10.2.0-28|v10272]]&lt;br /&gt;
| Same as CHN&lt;br /&gt;
| Same as CHN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00040130 - System [[Services API|Modules]] ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00001002&lt;br /&gt;
| [[Services|sm]] (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001003&lt;br /&gt;
| SAFE_MODE [[Services|sm]] (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001102&lt;br /&gt;
| [[Filesystem services‎|fs]] (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001103&lt;br /&gt;
| SAFE_MODE [[Filesystem services‎|fs]] (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001202&lt;br /&gt;
| [[Process Manager Services|pm]] (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001203&lt;br /&gt;
| SAFE_MODE [[Process Manager Services|pm]] (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001302&lt;br /&gt;
| [[Loader Services‎|loader]]  (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001303&lt;br /&gt;
| SAFE_MODE [[Loader Services‎|loader]]  (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001402&lt;br /&gt;
| [[PXI Services‎|pxi]]  (Stored in [[FIRM|NATIVE_FIRM]])&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001403&lt;br /&gt;
| SAFE_MODE [[PXI Services‎|pxi]]  (Stored in SAFE_MODE NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00001502&lt;br /&gt;
| [[Application Manager Services|AM]] ( Application Manager )&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[3.0.0-5|v2053]], [[4.0.0-7|v3072]], [[5.0.0-11|v4098]], [[6.0.0-11|v5120]], [[8.0.0-18|v6148]], [[8.1.0-0_New3DS|v7168]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v8192]], [[10.0.0-27|v9217]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001503&lt;br /&gt;
| SAFE_MODE [[Application Manager Services|AM]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001503&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Application Manager Services|AM]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001602&lt;br /&gt;
| [[Camera Services|Camera]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[3.0.0-5|v2048]], [[4.0.0-7|v3074]], [[5.0.0-11|v4098]], [[6.0.0-11|v5120]], [[7.1.0-14|v6146]], [[8.0.0-18|v7172]], [[9.0.0-20|v9216]], [[9.3.0-21|v10242]], [[10.0.0-27|v11265]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001602&lt;br /&gt;
| [[New_3DS]] [[Camera Services|Camera]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8200]], [[9.0.0-20|v9218]], [[9.3.0-21|v10242]], [[10.0.0-27|v11265]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001702&lt;br /&gt;
| [[Config Services|Config]] (cfg)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1024]], [[3.0.0-5|v2049]], v3072, [[4.0.0-7|v4096]], [[5.0.0-11|v5122]], [[6.0.0-11|v6145]], [[6.1.0-11|v7168]], [[7.0.0-13|v8196]], [[7.2.0-17|v9220]], [[8.0.0-18|v10243]], [[8.1.0-0_New3DS|v11265]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v12290]], [[9.3.0-21|v13315]], [[9.6.0-24|v14342]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001703&lt;br /&gt;
| SAFE_MODE [[Config Services|Config]] (cfg)&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001703&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Config Services|Config]] (cfg)&lt;br /&gt;
| [[8.1.0-0_New3DS|v11265]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001802&lt;br /&gt;
| [[Codec Services|Codec]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[5.0.0-11|v4098]], [[7.0.0-13|v5120]], [[8.0.0-18|v6144]], [[9.0.0-20|v7168]](Also for [[8.1.0-0_New3DS]])&lt;br /&gt;
|-&lt;br /&gt;
| 00001803&lt;br /&gt;
| SAFE_MODE [[Codec Services|Codec]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001803&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Codec Services|Codec]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001902&lt;br /&gt;
| dmnt, debugger sysmodule. This use devunit-only HIO for devunit&amp;lt;&amp;gt;pc comms. This only exists for development units(launched by NS during startup depending on certain [[Configuration_Memory]] fields&#039; values). This is installed at the [[Factory_Setup|factory]], then later deleted at the factory on retail units.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00001A02&lt;br /&gt;
| [[DSP Services|DSP]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[4.0.0-7|v2048]], [[5.0.0-11|v3074]], [[6.0.0-11|v4096]], [[8.0.0-18|v5120]], [[9.7.0-25|v6145]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001A03&lt;br /&gt;
| SAFE_MODE [[DSP Services|DSP]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001A03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[DSP Services|DSP]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v6145]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001B02&lt;br /&gt;
| [[GPIO Services|GPIO]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[5.0.0-11|v1025]], [[8.0.0-18|v2048]], [[9.5.0-22|v3073]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001B03&lt;br /&gt;
| SAFE_MODE [[GPIO Services|GPIO]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001B03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[GPIO Services|GPIO]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v3073]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001C02&lt;br /&gt;
| [[GSP Services|GSP]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1040]], [[2.0.0-2|v2049]], [[3.0.0-5|v3075]], v4098, [[4.0.0-7|v5120]], [[5.0.0-11|v6145]], [[6.0.0-11|v7168]], [[8.0.0-18|v8196]], [[9.0.0-20|v10240]], [[9.3.0-21|v11264]], [[9.6.0-24|v12294]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001C02&lt;br /&gt;
| [[New_3DS]] [[GSP Services|GSP]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v10243]], [[9.3.0-21|v11267]], [[9.6.0-24|v12294]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001C03&lt;br /&gt;
| SAFE_MODE [[GSP Services|GSP]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001C03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[GSP Services|GSP]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v9217]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001D02&lt;br /&gt;
| [[HID Services|HID]] (Human Interface Devices) &lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5121]], [[7.2.0-17|v6148]], [[8.0.0-18|v7168]], [[8.1.0-0_New3DS|v8192]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v9216]], [[9.3.0-21|v10240]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001D03&lt;br /&gt;
| SAFE_MODE [[HID Services|HID]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001D03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[HID Services|HID]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8193]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001E02&lt;br /&gt;
| [[I2C Services|i2c]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[3.0.0-5|v1024]], [[5.0.0-11|v2049]], [[8.0.0-18|v3076]], [[9.3.0-21|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001E02&lt;br /&gt;
| [[New_3DS]] [[I2C Services|i2c]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4096]], [[9.3.0-21|v5121]]&lt;br /&gt;
|- &lt;br /&gt;
| 00001E03&lt;br /&gt;
| SAFE_MODE [[I2C Services|i2c]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|- &lt;br /&gt;
| 20001E03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[I2C Services|i2c]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4097]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001F02&lt;br /&gt;
| [[MCU Services|MCU]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.1.0-3|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4102]], [[5.0.0-11|v5122]], [[6.0.0-11|v6145]], [[7.0.0-13|v7168]], [[8.0.0-18|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001F02&lt;br /&gt;
| [[New_3DS]] [[MCU Services|MCU]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 00001F03&lt;br /&gt;
| SAFE_MODE [[MCU Services|MCU]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20001F03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[MCU Services|MCU]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v9217]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002002&lt;br /&gt;
| [[MIC Services|MIC]] (Microphone)&lt;br /&gt;
| [[1.0.0-0|v0]], [[5.0.0-11|v1025]], [[8.0.0-18|v2048]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002102&lt;br /&gt;
| [[PDN Services|PDN]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[5.0.0-11|v1025]], [[8.0.0-18|v2048]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002103&lt;br /&gt;
| SAFE_MODE [[PDN Services|PDN]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002103&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[PDN Services|PDN]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v3073]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002202&lt;br /&gt;
| [[PTM Services|PTM]] (Play time, pedometer, and battery manager)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3075]], v4096, [[4.0.0-7|v5120]], [[5.0.0-11|v6146]], [[6.0.0-11|v7168]], [[7.0.0-13|v8192]], [[8.0.0-18|v9219]], [[9.6.0-24|v11264]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002202&lt;br /&gt;
| [[New_3DS]] [[PTM Services|PTM]] (Play time, pedometer, and battery manager)&lt;br /&gt;
| [[8.1.0-0_New3DS|v10240]], [[9.6.0-24|v11264]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002203&lt;br /&gt;
| SAFE_MODE [[PTM Services|PTM]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002203&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[PTM Services|PTM]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v10241]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002302&lt;br /&gt;
| [[SPI Services|spi]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[5.0.0-11|v2049]], [[8.0.0-18|v3072]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002302&lt;br /&gt;
| [[New_3DS]] [[SPI Services|spi]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4096]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002303&lt;br /&gt;
| SAFE_MODE [[SPI Services|spi]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002303&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[SPI Services|spi]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v4097]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002402&lt;br /&gt;
| [[AC Services|AC]] (Network manager)&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1024]], [[2.0.0-2|v2052]], [[2.1.0-3|v3072]], [[3.0.0-5|v4101]], [[5.0.0-11|v5122]], [[7.0.0-13|v6145]], [[8.0.0-18|v7172]], [[9.0.0-20|v8192]](Also for [[8.1.0-0_New3DS]]), [[9.3.0-21|v9216]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002403&lt;br /&gt;
| SAFE_MODE [[AC Services|AC]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002403&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[AC Services|AC]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8193]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002602&lt;br /&gt;
| [[CECD Services|Cecd]] (StreetPass)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3073]], [[4.0.0-7|v4097]], [[5.0.0-11|v5122]], [[6.0.0-11|v6144]], [[6.2.0-12|v7170]], [[7.0.0-13|v8193]], [[8.0.0-18|v9216]], [[9.0.0-20|v10240]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002702&lt;br /&gt;
| [[CSND Services|CSND]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[4.0.0-7|v2048]], [[5.0.0-11|v3073]], [[8.0.0-18|v4096]], [[9.0.0-20|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002703&lt;br /&gt;
| SAFE_MODE [[CSND Services|CSND]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002703&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[CSND Services|CSND]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v5121]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002802&lt;br /&gt;
| [[DLP Services|DLP]] ([[Download Play]])&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3078]], [[5.0.0-11|v4099]], [[8.0.0-18|v5123]], [[9.0.0-20|v6145]](Also for [[8.1.0-0_New3DS]]), [[9.6.0-24|v7174]], [[10.0.0-27|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002902&lt;br /&gt;
| [[HTTP Services|HTTP]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.1.0-3|v2049]], [[2.2.0-X|v3072]], [[3.0.0-5|v4099]], [[4.0.0-7|v5122]], [[5.0.0-11|v6145]], [[7.0.0-13|v7171]], [[7.1.0-14|v8192]], [[8.0.0-18|v9220]], [[8.1.0-18|v10245]], [[8.1.0-0_New3DS|v11264]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v12288]], [[9.6.0-24|v13318]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002903&lt;br /&gt;
| SAFE_MODE [[HTTP Services|HTTP]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002903&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[HTTP Services|HTTP]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v10241]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002A02&lt;br /&gt;
| [[MP Services|MP]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[5.0.0-11|v1025]], [[8.0.0-18|v2048]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002A03&lt;br /&gt;
| SAFE_MODE [[MP Services|MP]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002B02&lt;br /&gt;
| [[NDM Services|NDM]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[3.0.0-5|v2049]], [[4.0.0-7|v3072]], [[5.0.0-11|v4098]], [[8.0.0-18|v5124]], [[8.1.0-0_New3DS|v6144]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002C02&lt;br /&gt;
| [[NIM Services|NIM]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1028]], [[3.0.0-5|v2055]], [[4.0.0-7|v3074]], [[5.0.0-11|v4100]], [[6.0.0-11|v5120]], [[7.0.0-13|v6148]], [[7.2.0-17|v7174]], [[8.0.0-18|v8195]], [[8.1.0-0_New3DS|v9217]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v10249]], [[9.3.0-21|v11267]], [[9.6.0-24|v12296]], [[10.0.0-27|v13313]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002C03&lt;br /&gt;
| SAFE_MODE [[NIM Services|NIM]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002C03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[NIM Services|NIM]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v9217]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002D02&lt;br /&gt;
| [[NWM Services|NWM]] ( Low-level wifi manager )&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1024]], [[2.0.0-2|v2052]], [[2.2.0-X|v3072]], [[3.0.0-5|v4101]], [[4.0.0-7|v5120]], [[5.0.0-11|v6148]], [[6.0.0-11|v7169]], [[7.2.0-17|v8196]], [[8.0.0-18|v9216]], [[9.0.0-20|v10240]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002D03&lt;br /&gt;
| SAFE_MODE [[NWM Services|NWM]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[6.0.0-11|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002D03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[NWM Services|NWM]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v10241]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002E02&lt;br /&gt;
| [[Socket Services|Sockets]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1024]], [[2.0.0-2|v2053]], [[3.0.0-5|v3075]], [[4.0.0-7|v4096]], [[5.0.0-11|v5121]], [[8.0.0-18|v6144]], [[9.0.0-20|v7168]], [[10.6.0-31|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002E03&lt;br /&gt;
| SAFE_MODE [[Socket Services|Sockets]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002E03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Socket Services|Sockets]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002F02&lt;br /&gt;
| [[SSL Services|SSL]]&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1024]], [[2.1.0-3|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5122]], [[8.0.0-18|v6144]], [[9.0.0-20|v7168]], [[9.6.0-24|v8198]]&lt;br /&gt;
|-&lt;br /&gt;
| 00002F03&lt;br /&gt;
| SAFE_MODE [[SSL Services|SSL]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20002F03&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[SSL Services|SSL]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003000&lt;br /&gt;
| [[FIRM|Process9]] (in SAFE_MODE and normal NATIVE_FIRM)&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| 00003102&lt;br /&gt;
| [[Process Services‎|PS]] ( Process Manager )&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1025]], [[5.0.0-11|v2049]], [[6.0.0-11|v3072]], [[8.0.0-18|v4096]], [[9.0.0-20|v5120]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003103&lt;br /&gt;
| SAFE_MODE [[Process Services‎|PS]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20003103&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Process Services‎|PS]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v5121]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003202&lt;br /&gt;
| [[Friend Services‎|friends]] (Friends list)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1028]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5122]], [[7.0.0-13|v6145]], [[8.0.0-18|v7172]], [[9.0.0-20|v8192]](Also for [[8.1.0-0_New3DS]]), [[10.5.0-30|v9216]], [[10.7.0-32|v10240]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003203&lt;br /&gt;
| SAFE_MODE [[Friend Services‎|friends]] (Friends list)&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20003203&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[Friend Services‎|friends]] (Friends list)&lt;br /&gt;
| [[8.1.0-0_New3DS|v8193]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003302&lt;br /&gt;
| [[IR Services‎|IR]] (Infrared)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[5.0.0-11|v5121]], [[8.0.0-18|v6148]], [[8.1.0-0_New3DS|v7170]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v8192]], [[9.3.0-21|v9216]], [[9.6.0-24|v10246]], [[10.0.0-27|v11265]], [[10.6.0-31|v12289]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003303&lt;br /&gt;
| SAFE_MODE [[IR Services‎|IR]]&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20003303&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[IR Services‎|IR]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v7169]]&lt;br /&gt;
|- &lt;br /&gt;
| 00003402&lt;br /&gt;
| [[BOSS Services‎|BOSS]] (SpotPass)&lt;br /&gt;
| [[1.0.0-0|v0]], [[1.1.0-1|v1024]], [[2.0.0-2|v2053]], [[2.2.0-X|v3073]], [[3.0.0-5|v4101]], [[4.0.0-7|v5122]], [[5.0.0-11|v6146]], [[6.0.0-11|v7169]], [[6.2.0-12|v8193]], [[7.0.0-13|v9222]], [[8.0.0-18|v10240]], [[9.0.0-20|v11266]], [[10.0.0-27|v12289]], [[10.4.0-29|v13314]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003502&lt;br /&gt;
| [[News Services‎|News]] (Notifications)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1028]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[5.0.0-11|v4097]], [[8.0.0-18|v5120]], [[9.0.0-20|v6147]], [[9.7.0-25|v7168]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003602&lt;br /&gt;
| &amp;quot;debugger&amp;quot;. This only exist for development units(launched by NS during startup depending on certain [[Configuration_Memory]] fields&#039; values).&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00003702&lt;br /&gt;
| [[RO_Services|RO]]&lt;br /&gt;
| [[2.0.0-2|v0]], [[4.0.0-7|v1024]], [[5.0.0-11|v2049]], [[7.2.0-17|v3074]], [[8.0.0-18|v4096]], [[9.0.0-20|v5120]](Also for [[8.1.0-0_New3DS]]), [[9.3.0-21|v6148]]&lt;br /&gt;
|-&lt;br /&gt;
| 00003802&lt;br /&gt;
| [[ACT Services‎|act]] (handles Nintendo Network &#039;&#039;&#039;a&#039;&#039;&#039;c&#039;&#039;&#039;c&#039;&#039;&#039;oun&#039;&#039;&#039;t&#039;&#039;&#039;s)&lt;br /&gt;
| [[7.0.0-13|v1029]], [[7.1.0-14|v2050]], [[7.2.0-17|v3077]], [[8.0.0-18|v4099]], [[8.1.0-0_New3DS|v5120]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v6144]], [[9.3.0-21|v7168]], [[9.6.0-24|v8198]]&lt;br /&gt;
|-&lt;br /&gt;
| 00004002&lt;br /&gt;
| Old3DS [[NFC_Services|nfc]]&lt;br /&gt;
| [[9.3.0-21|v2053]], [[9.6.0-24|v4106]], [[9.7.0-25|v5121]], [[10.0.0-27|v6145]], [[10.6.0-31|v7168]], [[10.7.0-32|v8192]]&lt;br /&gt;
|-&lt;br /&gt;
| 20004002&lt;br /&gt;
| [[New_3DS]] [[NFC_Services|nfc]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.0.0-20|v1024]], [[9.3.0-21|v2053]], [[9.5.0-22|v3073]], [[9.6.0-24|v4102]], [[10.0.0-27|v6145]], [[10.6.0-31|v7168]]&lt;br /&gt;
|-&lt;br /&gt;
| 20004102&lt;br /&gt;
| [[New_3DS]] [[MVD Services|mvd]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v0]], [[9.0.0-20|v1024]]&lt;br /&gt;
|-&lt;br /&gt;
| 20004202&lt;br /&gt;
| [[New_3DS]] [[QTM Services|qtm]]&lt;br /&gt;
| [[8.1.0-0_New3DS|v8]], [[9.0.0-20|v1024]], [[9.3.0-21|v2052]]&lt;br /&gt;
|-&lt;br /&gt;
| 00008002&lt;br /&gt;
| [[NS]] (Memory-region: &amp;quot;SYSTEM&amp;quot;)&lt;br /&gt;
| [[1.0.0-0|v0]], [[2.0.0-2|v1028]], [[2.2.0-X|v2048]], [[3.0.0-5|v3077]], v4096, [[4.0.0-7|v5121]], [[5.0.0-11|v6148]], [[5.1.0-11|v7168]], [[6.0.0-11|v8193]], [[6.1.0-11|v9216]], [[7.0.0-13|v10248]], [[7.2.0-17|v11268]], [[8.0.0-18|v12291]], [[8.1.0-0_New3DS|v13312]]([[8.1.0-0_New3DS]]), [[9.0.0-20|v14336]], [[9.3.0-21|v15360]], [[9.6.0-24|v16390]], [[9.8.0-25|v17408]], [[10.0.0-27|v18433]], [[10.4.0-29|v19458]]&lt;br /&gt;
|-&lt;br /&gt;
| 00008003&lt;br /&gt;
| SAFE_MODE [[NS]] (Memory-region: &amp;quot;SYSTEM&amp;quot;)&lt;br /&gt;
| [[1.0.0-0|v0]]&lt;br /&gt;
|-&lt;br /&gt;
| 20008003&lt;br /&gt;
| [[New_3DS]] SAFE_MODE [[NS]] (Memory-region: &amp;quot;SYSTEM&amp;quot;)&lt;br /&gt;
| [[8.1.0-0_New3DS|v13313]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Once Home Menu finishes loading, all of the above system modules are running, except for MP, RO, and act which are automatically [[Process_Manager_Services|loaded]] when a process requires them. When [[Process_Manager_Services|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.&lt;br /&gt;
&lt;br /&gt;
All of the above system modules use the &amp;quot;BASE&amp;quot; [[SVC|memory-region]](specified in the exheader), except when listed otherwise for certain modules.&lt;br /&gt;
&lt;br /&gt;
When handling the exheader dependency list starting with [[8.0.0-18]], Old3DS FIRM [[Process_Manager_Services|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. When the New3DS pm-module is launching any title except [[NS]], it first attempts to launch the title with programID-low bitmask 0x20000000 set, then with that bitmask clear if launching fails.&lt;br /&gt;
&lt;br /&gt;
=== 00040138 - [[FIRM|System Firmware]] ===&lt;br /&gt;
NATIVE_FIRM and SAFE_MODE_FIRM for the initial versions are exactly the same, besides [[Configuration_Memory|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_Settings#System_Updater|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/&amp;lt;TID&amp;gt;/data use a custom format, this is handled by AGB_FIRM.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Description&lt;br /&gt;
!  USA/EUR/JPN Versions&lt;br /&gt;
!  CHN Versions&lt;br /&gt;
!  KOR Versions&lt;br /&gt;
!  TWN Versions&lt;br /&gt;
|-&lt;br /&gt;
| 00000001&lt;br /&gt;
| Unknown, very similar to SAFE_MODE_FIRM. Exists only on dev units and seems to only be used by SystemUpdaters.&lt;br /&gt;
| v0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00000002&lt;br /&gt;
| NATIVE_FIRM (Native Firmware)&lt;br /&gt;
| [[1.0.0-0|v432]], [[1.1.0-1|v1472]], [[2.0.0-2|v2516]], [[2.1.0-3|v3553]], [[2.2.0-X|v4595]], [[3.0.0-5|v5647]], [[4.0.0-7|v6677]], [[4.1.0-8|v7712]], [[5.0.0-11|v8758]], [[5.1.0-11|v9792]], [[6.0.0-11|v10833]], [[6.1.0-11|v11872]], [[7.0.0-13|v12916]], [[7.2.0-17|v13956]], v15043, [[8.0.0-18|v15047]], [[9.0.0-20|v17120]], [[9.3.0-21|v18182]], [[9.5.0-22|v19216]], [[9.6.0-24|v20262]], [[10.0.0-27|v21288]], [[10.2.0-28|v22313]], [[10.4.0-29|v23341]], [[11.0.0-33|v24368]]&lt;br /&gt;
| Same as USA/EUR/JPN starting with the USA/EUR/JPN [[4.0.0-7]] title-version&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 20000002&lt;br /&gt;
| [[New_3DS]] NATIVE_FIRM (Native Firmware)&lt;br /&gt;
| [[8.1.0-0_New3DS|v16085]], [[9.0.0-20|v17120]], [[9.3.0-21|v18182]], [[9.5.0-22|v19218]], [[9.6.0-24|v20262]], [[10.0.0-27|v21288]], [[10.2.0-28|v22313]], [[10.4.0-29|v23341]], [[11.0.0-33|v24368]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 00000003&lt;br /&gt;
| SAFE_MODE_FIRM &lt;br /&gt;
| [[1.0.0-0|v432]], [[3.0.0-5|v5632]]&lt;br /&gt;
| Same as USA/EUR/JPN starting with the USA/EUR/JPN [[3.0.0-5]] title-version&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 20000003&lt;br /&gt;
| [[New_3DS]] SAFE_MODE_FIRM &lt;br /&gt;
| [[8.1.0-0_New3DS|v16081]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 00000102 &lt;br /&gt;
| TWL_FIRM ( DSi Firmware )&lt;br /&gt;
| [[1.0.0-0|v432]], [[2.0.0-2|v1489]], [[3.0.0-5|v2565]], v3601, [[4.0.0-7|v4625]], [[4.4.0-10|v5681]], [[4.5.0-10|v6704]], [[6.0.0-11|v7762]], [[6.2.0-12|v8817]]&lt;br /&gt;
| Same as USA/EUR/JPN starting with the USA/EUR/JPN [[4.0.0-7]] title-version&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|-&lt;br /&gt;
| 20000102 &lt;br /&gt;
| [[New_3DS]] TWL_FIRM ( DSi Firmware )&lt;br /&gt;
| [[8.1.0-0_New3DS|v9936]]&lt;br /&gt;
| N/A&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|- &lt;br /&gt;
| 00000202&lt;br /&gt;
| AGB_FIRM ( GBA Firmware )&lt;br /&gt;
| [[3.0.0-5|v519]], v1553, [[4.0.0-7|v2576]], [[6.0.0-11|v3665]]&lt;br /&gt;
| [[4.0.0-7|v2576]]&lt;br /&gt;
| [[4.0.0-7|v2576]], [[6.0.0-11|v3665]]&lt;br /&gt;
| Same as CHN.&lt;br /&gt;
|- &lt;br /&gt;
| 20000202&lt;br /&gt;
| [[New_3DS]] AGB_FIRM ( GBA Firmware )&lt;br /&gt;
| [[8.1.0-0_New3DS|v4816]]&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Application Titles ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Content Category&lt;br /&gt;
!  Bit Mask(s)&lt;br /&gt;
!  Category Bit Mask&lt;br /&gt;
|-&lt;br /&gt;
|  [[Title list/eShop Titles|Application]] (eShop Title)&lt;br /&gt;
|  Normal&lt;br /&gt;
|  0x0000&lt;br /&gt;
|-&lt;br /&gt;
|  DLP Child&lt;br /&gt;
|  DlpChild&lt;br /&gt;
|  0x0001&lt;br /&gt;
|-&lt;br /&gt;
|  [[EShop Demos|Demo]]&lt;br /&gt;
|  Demo&lt;br /&gt;
|  0x0002&lt;br /&gt;
|-&lt;br /&gt;
|  [[Title list/Patches|Patch]]&lt;br /&gt;
|  CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;Patch&lt;br /&gt;
|  0x000E&lt;br /&gt;
|-&lt;br /&gt;
|  [[Title list/DLC|Add-on Content]] (DLC)&lt;br /&gt;
|  NotRequireRightForMount&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CannotExecution&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;AddOnContents&lt;br /&gt;
|  0x008C&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00040001 - [[Download Play]] Titles ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TWL (DSi) Titles ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Content Category&lt;br /&gt;
!  Bit Mask(s)&lt;br /&gt;
!  Category Bit Mask&lt;br /&gt;
|-&lt;br /&gt;
|  Application (DSiWare)&lt;br /&gt;
|  TWL&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x4&lt;br /&gt;
|  0x8004&lt;br /&gt;
|-&lt;br /&gt;
|  System Application&lt;br /&gt;
|  TWL&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x1&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x4&lt;br /&gt;
|  0x8005&lt;br /&gt;
|-&lt;br /&gt;
|  System Archive&lt;br /&gt;
|  TWL&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x1&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x2&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x4&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x8&lt;br /&gt;
|  0x800F&lt;br /&gt;
|-&lt;br /&gt;
|  Developer Tool&lt;br /&gt;
|  TWL&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x1&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x4&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;0x10&lt;br /&gt;
|  0x8015&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Bitmask 0x1 for TWL titles denotes a system title (determining whether the title will be updated during a System Update). It appears to be sufficient, but not necessary, to make the title invisible on the [[Home menu]].&lt;br /&gt;
&lt;br /&gt;
Bitmask 0x2 for TWL titles may indicate no-execute.&lt;br /&gt;
&lt;br /&gt;
Bitmask 0x4 for TWL titles indicates internal storage.&lt;br /&gt;
&lt;br /&gt;
Bitmask 0x10 for TWL titles is found on developer tools.&lt;br /&gt;
&lt;br /&gt;
=== 00048005 - System Applications===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Region&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
!  Information&lt;br /&gt;
|-&lt;br /&gt;
| 42383841(B88A)&lt;br /&gt;
| ALL&lt;br /&gt;
| [[DS Internet]]&lt;br /&gt;
| v0, [[2.1.0-4|v1025]], [[3.0.0-5|v2048]]&lt;br /&gt;
| [[DS Internet]] is the DS-mode application, (also integrated in every online-enabled DS game) and now accessible through [[System Settings]] for configuring network settings for DS software. &lt;br /&gt;
|-&lt;br /&gt;
| 484E4441(HNDA)&lt;br /&gt;
| ALL&lt;br /&gt;
| [[Download Play]]&lt;br /&gt;
| v1024&lt;br /&gt;
| This [[Download Play]] application is the DS-mode Download Play client, launched by the 3DS-mode Download Play application.&lt;br /&gt;
|-&lt;br /&gt;
| 484E4443(HNDC)&lt;br /&gt;
| CHN&lt;br /&gt;
| [[Download Play]]&lt;br /&gt;
| v1024&lt;br /&gt;
| See Above Description.&lt;br /&gt;
|-&lt;br /&gt;
| 484E444B(HNDK)&lt;br /&gt;
| KOR&lt;br /&gt;
| [[Download Play]]&lt;br /&gt;
| v1024&lt;br /&gt;
| See Above Description.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0004800F - System Data Archives===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 484E4841(HNHA)&lt;br /&gt;
| [[Nintendo DS Cart Whitelist]]&lt;br /&gt;
| v0, [[2.0.0-2|v1026]], [[2.2.0-X|v2048]], [[3.0.0-5|v3072]], [[4.0.0-7|v4096]], [[4.2.0-9|v5120]], [[4.3.0-10|v6145]], [[4.4.0-10|v7168]], [[4.5.0-10|v8192]], [[5.0.0-11|v9216]], [[6.0.0-11|v10240]], [[7.0.0-13|v11264]]&lt;br /&gt;
|-&lt;br /&gt;
| 484E4C41(HNLA)&lt;br /&gt;
| [[Version Data]]&lt;br /&gt;
| v0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 00048004 - DSiWare ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  TitleID Low&lt;br /&gt;
!  Region&lt;br /&gt;
!  Description&lt;br /&gt;
!  Versions&lt;br /&gt;
|-&lt;br /&gt;
| 4B4B5456(KKTV)&lt;br /&gt;
| EUR&lt;br /&gt;
| Cut the Rope&lt;br /&gt;
| v0, v64&lt;br /&gt;
|-&lt;br /&gt;
| 4B4E5256(KNRV)&lt;br /&gt;
| EUR&lt;br /&gt;
| A Little Bit of... Brain Training™: Maths Edition &lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 4B5A4C56(KZLV)&lt;br /&gt;
| EUR&lt;br /&gt;
| Plants vs. Zombies™&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 4B454256(KEBV)&lt;br /&gt;
| EUR&lt;br /&gt;
| ELECTROPLANKTON (Hanenbow)&lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 4B513956(KQ9V)&lt;br /&gt;
| EUR&lt;br /&gt;
| Zelda: Four Swords Anniversary Edition&lt;br /&gt;
| v16&lt;br /&gt;
|-&lt;br /&gt;
| 4B574256(KWBV)&lt;br /&gt;
| EUR&lt;br /&gt;
| Mario Calculator &lt;br /&gt;
| v0&lt;br /&gt;
|-&lt;br /&gt;
| 4B574656(KWFV)&lt;br /&gt;
| EUR&lt;br /&gt;
| Mario Clock &lt;br /&gt;
| v0&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Nandrw/sys/SecureInfo_A&amp;diff=17457</id>
		<title>Nandrw/sys/SecureInfo A</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Nandrw/sys/SecureInfo_A&amp;diff=17457"/>
		<updated>2016-06-02T08:08:23Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: add displaytitle so it looks like &amp;quot;SecureInfo_A&amp;quot; instead of &amp;quot;SecureInfo A&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Nandrw/sys/SecureInfo_A}}&lt;br /&gt;
=SecureInfo format=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&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 over the following 0x11-bytes.&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 0x1&lt;br /&gt;
| Region&lt;br /&gt;
|-&lt;br /&gt;
| 0x101&lt;br /&gt;
| 0x1&lt;br /&gt;
| Normally zero&lt;br /&gt;
|-&lt;br /&gt;
| 0x102&lt;br /&gt;
| 0xF&lt;br /&gt;
| ASCII serial number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=SecureInfo Region Values=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!  Value&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| JPN&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| USA&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| EUR&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| AUS(for system-update SOAP at least), unused. The [[NS]] programIDs for the applet AppIDs for this are the same as JPN?&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| CHN&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| KOR&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| TWN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
NIM module uses &amp;quot;AUS&amp;quot; for value3 for SOAP requests, however the server doesn&#039;t return a titlelist for that. On AUS 3DS systems this region field is set to EUR instead.&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
* [[Config Services]]&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=FirmwareNews&amp;diff=17277</id>
		<title>FirmwareNews</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=FirmwareNews&amp;diff=17277"/>
		<updated>2016-05-09T22:38:27Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: 11.0.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As of this writing, the latest firmware is &#039;&#039;&#039; 11.0.0-33&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
There are ways to run homebrew on this version, see [[Homebrew Exploits]].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Full system control exploits are only public for system versions up to and including &#039;&#039;&#039;9.2.0-X&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=FIRM&amp;diff=17276</id>
		<title>FIRM</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=FIRM&amp;diff=17276"/>
		<updated>2016-05-09T22:37:33Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: /* NATIVE_FIRM */ 11.0.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the file format for the [[Title list#00040138 - System Firmware|3DS&#039; Firmware]], it contains up to four &#039;sections&#039; of data comprising the ARM9 and ARM11 kernels, and some fundamental processes. The firmware sections are not encrypted. In a nutshell, a FIRM contains all the data required to set up the ARM9 and ARM11 kernels, and basic operating functionality.&lt;br /&gt;
&lt;br /&gt;
The ARM9 section contains the ARM9 kernel (and loader) and the Process9 NCCH (which is the only process run in user mode on the ARM9). The ARM11 sections contain the ARM11 kernel (and loader), and various ARM11 process NCCHs. For NATIVE_FIRM/SAFE_MODE_FIRM these ARM11 processes are sm, fs, pm, loader, and pxi. Normally the 4th section is not used. The code loaded from FIRM is constantly running on the system until another FIRM is launched. The ARM11 kernel is hard-coded to always decompress the ExeFS .code of embedded ARM11 NCCHs without checking the exheader compression bit.&lt;br /&gt;
&lt;br /&gt;
== FIRM 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;
|  0x000&lt;br /&gt;
|  4&lt;br /&gt;
|  Magic &#039;FIRM&#039;&lt;br /&gt;
|-&lt;br /&gt;
|  0x004&lt;br /&gt;
|  4&lt;br /&gt;
|  Reserved1&lt;br /&gt;
|-&lt;br /&gt;
|  0x008&lt;br /&gt;
|  4&lt;br /&gt;
|  ARM11 Entrypoint&lt;br /&gt;
|-&lt;br /&gt;
|  0x00C&lt;br /&gt;
|  4&lt;br /&gt;
|  ARM9 Entrypoint&lt;br /&gt;
|-&lt;br /&gt;
|  0x010&lt;br /&gt;
|  0x030&lt;br /&gt;
|  Reserved2&lt;br /&gt;
|-&lt;br /&gt;
|  0x040&lt;br /&gt;
|  0x0C0 (0x030*4)&lt;br /&gt;
|  Firmware Section Headers&lt;br /&gt;
|-&lt;br /&gt;
|  0x100&lt;br /&gt;
|  0x100&lt;br /&gt;
|  RSA-2048 signature of the FIRM header&#039;s SHA-256 hash. The signature is checked when bootrom/Process9 are doing FIRM-launch (with the public key being hardcoded in each). The signature is not checked when installing FIRM to the NAND firm0/firm1 partitions.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firmware Section Headers ==&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;
|  0x000&lt;br /&gt;
|  4&lt;br /&gt;
|  Byte offset&lt;br /&gt;
|-&lt;br /&gt;
|  0x004&lt;br /&gt;
|  4&lt;br /&gt;
|  Physical address where the section is loaded to.&lt;br /&gt;
|-&lt;br /&gt;
|  0x008&lt;br /&gt;
|  4&lt;br /&gt;
|  Byte-size.  While loading FIRM this is the field used to determine whether the section exists or not, by checking for value 0x0.&lt;br /&gt;
|-&lt;br /&gt;
|  0x00C&lt;br /&gt;
|  4&lt;br /&gt;
|  Firmware Type (&#039;0&#039;=ARM9/&#039;1&#039;=ARM11) Process9 doesn&#039;t use this field at all.&lt;br /&gt;
|-&lt;br /&gt;
|  0x010&lt;br /&gt;
|  0x020&lt;br /&gt;
|  SHA-256 Hash of Firmware Section&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== [[New_3DS]] FIRM ==&lt;br /&gt;
For New3DS firmwares (NATIVE_FIRM, TWL_FIRM, ..), the ARM9 FIRM binary has an additional layer of crypto. At the end of each ARM9 binary, there&#039;s a plaintext loader. The format of the FIRM header is identical to regular 3DS FIRM(the RSA modulo is the same as regular 3DS too).&lt;br /&gt;
&lt;br /&gt;
Before checking [[CONFIG_Registers|CFG_SYSPROT9]] the loader main() does the following:&lt;br /&gt;
* On [[9.5.0-22|9.5.0-X]]: executes a nop instruction with r0=0 and r1=&amp;lt;address of arm9binhdr+0x50&amp;gt;.&lt;br /&gt;
* Clears bit6 in [[AES_Registers|REG_AESKEYCNT]].&lt;br /&gt;
&lt;br /&gt;
If [[CONFIG_Registers#CFG_SYSPROT9|CFG_SYSPROT9]] bit 1 is clear (which means the OTP area is unlocked and so it knows that this is a hard reboot), it does the following things:&lt;br /&gt;
* Clears 0x200-bytes on the stack, then reads [[Flash_Filesystem|NAND]] sector 0x96(NAND image offset 0x12C00), with size 0x200-bytes into that stack buffer.&lt;br /&gt;
* Checks [[CONFIG_Registers#CFG_SYSPROT9|CFG_SYSPROT9]] bit 1 again, if it&#039;s set then it executes a panic function(set r0-r2=0, execute nop instruction, then execute instruction &amp;quot;bkpt 0x99&amp;quot;).&lt;br /&gt;
* Hashes data from the OTP region [[IO_Registers|0x10012000-0x10012090]] using SHA256 via the [[SHA_Registers|SHA]] hardware.&lt;br /&gt;
* Clears bit6 in [[AES_Registers|REG_AESKEYCNT]]. Initializes AES keyslot 0x11 keyX, keyY to the lower and higher portion of the above hash, respectively. Due to the above hashed data, the keyX+keyY here are console-unique.&lt;br /&gt;
* Decrypts the first 0x10-byte block in the above read NAND sector with keyslot 0x11 using AES-ECB. [[9.6.0-24|9.6.0-X]]: Then it decrypts the 0x10-bytes at offset 0x10 in the sector with keyslot 0x11.&lt;br /&gt;
* Then the normalkey, keyX, and keyY, for keyslot 0x11 are cleared to zero. Runs the TWL key-init/etc code which was originally in the ARM9-kernel, then writes 0x2 to [[CONFIG_Registers|CFG_SYSPROT9]] to disable the OTP area.&lt;br /&gt;
* Then it uses the above decrypted block from sector+0 to set the normalkey for keyslot 0x11. Decrypts arm9_bin_buf+0 using keyslot 0x11 with AES-ECB, and initialises keyX for keyslot 0x15 with it.&lt;br /&gt;
* [[9.6.0-24|9.6.0-X]]: Then it uses the above decrypted block from sector+0 to set the normalkey for keyslot 0x11. Decrypts a 0x10-byte block from arm9loader .(ro)data using keyslot 0x11 with AES-ECB, and initializes keyX for keyslot 0x18 with it(same block as previous versions).&lt;br /&gt;
* [[9.6.0-24|9.6.0-X]]: Starting with this version keyslot 0x16 keyX init was moved here, see below for details on this. The code for this is same as  [[9.5.0-22|9.5.0-X]], except the decrypted normalkey from sector+0x10 is used for keyslot 0x11 instead.&lt;br /&gt;
* Initialises KeyX for keyslots 0x18..0x1F(0x19..0x1F with [[9.6.0-24|9.6.0-X]]) with the output of decrypting a 0x10-byte block with AES-ECB using keyslot 0x11. This block was changed to a new one separate from keyslot 0x18, starting with [[9.6.0-24|9.6.0-X]]. The last byte in this 0x10-byte input block is increased by 0x01 after initializing each keyslot. Before doing the crypto each time, the loader sets the normal-key for keyslot 0x11 to the plaintext normalkey from sector+0(+0x10 with [[9.6.0-24|9.6.0-X]]). These are New3DS-specific keys.&lt;br /&gt;
* [[9.5.0-22|9.5.0-X]](moved to above with [[9.6.0-24|9.6.0-X]]): Sets the normal-key for keyslot 0x11 to the same one already decrypted on the stack. Decrypts the 0x10-byte block at arm9binhdr+0x60 with AES-ECB using keyslot 0x11, then sets the keyX for keyslot 0x16 to the output data.&lt;br /&gt;
* [[9.5.0-22|9.5.0-X]]: The normalkey, keyX, and keyY, for keyslot 0x11 are then cleared to zero.&lt;br /&gt;
&lt;br /&gt;
When [[CONFIG_Registers#CFG_SYSPROT9|CFG_SYSPROT9]] bit 1 is set(which means this happens only when this loader runs again for firm-launch), the normalkey, keyX, and keyY, for keyslot 0x11 are cleared to zero.&lt;br /&gt;
&lt;br /&gt;
It sets KeyY for keyslot 0x15(0x16 with [[9.5.0-22|9.5.0-X]]) to arm9_bin_buf+16, the CTR to arm9_bin_buf+32 (both are unique for every version). It then proceeds to decrypt the binary with AES-CTR. When done, it sets the normal-key for the keyslot used for binary decryption to zeros. It then decrypts arm9_bin_buf+64 using an hardcoded keyY for keyslot 0x15([[9.5.0-22|9.5.0-X]]/[[9.6.0-24|9.6.0-X]] also uses keyslot 0x15), sets the normal-key for this keyslot to zeros again, then makes sure the output block is all zeroes. If it is, it does some cleanup then it jumps to the entrypoint for the decrypted binary. Otherwise it will clear the keyX, keyY, and normal-key for each of the keyslots initialized by this loader (on [[9.6.0-24|9.6.0-X]]+, on older versions this was bugged and cleared keys 0x00..0x07 instead of 0x18..0x1F), do cleanup(same cleanup as when the decrypted block is all-zero) then just loop forever.&lt;br /&gt;
&lt;br /&gt;
Thus, the ARM9 binary has the following 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;
|  0x000&lt;br /&gt;
|  16&lt;br /&gt;
|  Encrypted KeyX (same for all FIRM&#039;s)&lt;br /&gt;
|-&lt;br /&gt;
|  0x010&lt;br /&gt;
|  16&lt;br /&gt;
|  KeyY&lt;br /&gt;
|-&lt;br /&gt;
|  0x020&lt;br /&gt;
|  16&lt;br /&gt;
|  CTR&lt;br /&gt;
|-&lt;br /&gt;
|  0x030&lt;br /&gt;
|  8&lt;br /&gt;
|  Size of encrypted binary, as ASCII text?&lt;br /&gt;
|-&lt;br /&gt;
|  0x038&lt;br /&gt;
|  8&lt;br /&gt;
|  ?&lt;br /&gt;
|-&lt;br /&gt;
|  0x040&lt;br /&gt;
|  16&lt;br /&gt;
|  Control block&lt;br /&gt;
|-&lt;br /&gt;
|  0x050&lt;br /&gt;
|  16&lt;br /&gt;
|  Added with [[9.5.0-22|9.5.0-X]]. Only used for hardware debugging: a nop instruction is executed with r0=0 and r1=&amp;lt;address of this data&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|  0x060&lt;br /&gt;
|  16&lt;br /&gt;
|  Added with [[9.5.0-22|9.5.0-X]]. Encrypted keyX for keyslot 0x16.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Originally the padding after the header before offset 0x800(start of actual ARM9-binary) was 0xFF bytes, with [[9.5.0-22|9.5.0-X]] this was changed to 0x0.&lt;br /&gt;
&lt;br /&gt;
For the New3DS NATIVE_FIRM arm9-section header, the only difference between the [[8.1.0-0_New3DS]] version and the [[9.0.0-20]] version is that the keyY, CTR, and the block at 0x30 in the header were updated.&lt;br /&gt;
&lt;br /&gt;
===New3DS ARM9 binary loader versions===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  FIRM system version(s)&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| [[8.1.0-0_New3DS]] - [[9.3.0-21|9.3.0-X]]&lt;br /&gt;
| Initial version.&lt;br /&gt;
|-&lt;br /&gt;
| [[9.5.0-22|9.5.0-X]]&lt;br /&gt;
| Added keyX initialization for keyslot 0x16(see above), and added code for clearing keyslot 0x11 immediately after the code finishes using keyslot 0x11. The keyslot used for arm9bin decryption was changed from 0x15 to 0x16. Added code for clearing keyslot 0x16 when control-block decryption fails. Added code for using arm9bin_hdr+0x50 with a nop instruction, at the very beginning of the main arm9-loader function. Added two new 0x10-blocks to the arm9bin-hdr.&lt;br /&gt;
|-&lt;br /&gt;
| [[9.6.0-24|9.6.0-X]] - [[10.4.0-29|10.4.0-X]]&lt;br /&gt;
| See above and [[9.6.0-24|here]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===New3DS ARM9 kernel===&lt;br /&gt;
The only actual code-difference for the Old3DS/New3DS ARM9-kernels&#039; crt0, besides TWL AES / [[IO_Registers|0x10012000]] related code, is that the New3DS ARM9-kernel writes 0x1 to [[CONFIG_Registers|REG_EXTMEMCNT9]] in the crt0.&lt;br /&gt;
&lt;br /&gt;
===New3DS Process9===&lt;br /&gt;
The following is all of the differences for Old3DS/New3DS Process9 with [[9.3.0-21|9.3.0-X]]:&lt;br /&gt;
* The FIRM-launch code called at the end of the New3DS proc9 main() has different mem-range checks.&lt;br /&gt;
* In the New3DS proc9, the v6.0/v7.0 keyinit function at the very beginning(before the original code) had additional code added for setting [[Flash_Filesystem|CTRNAND]] [[AES_Registers|keyslot]] 0x5, with keydata from .data. After setting the keyY, the keyY in .data is cleared.&lt;br /&gt;
* In New3DS proc9, the functions for getting the gamecard crypto keyslots / NCCH keyslot can return New3DS keyslots when New3DS flags(NCSD/NCCH) are set.&lt;br /&gt;
* The code/data for the binary near the end of arm9mem is slightly different, because of memory-region sizes.&lt;br /&gt;
* The only difference in .data(besides the above code binary) is that the New3DS proc9 has an additional 0x10-byte block for the keyslot 0x5 keyY, see above.&lt;br /&gt;
&lt;br /&gt;
== Variations ==&lt;br /&gt;
There exists different official firmwares for the 3DS: The default one (NATIVE_FIRM) is used to run all 3DS content and boots by default, while backwards compatibility is handled by TWL_FIRM and AGB_FIRM. There furthermore is a rescue mode provided by SAFE_MODE_FIRM.&lt;br /&gt;
&lt;br /&gt;
=== NATIVE_FIRM ===&lt;br /&gt;
NATIVE_FIRM is the FIRM which is installed to the [[Flash_Filesystem|NAND]] firm partitions, which is loaded by bootrom.&lt;br /&gt;
&lt;br /&gt;
Version history:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!  System version&lt;br /&gt;
!  old 3DS title version&lt;br /&gt;
!  old 3DS hex title contentID&lt;br /&gt;
!  Kernel/FIRM version (old 3DS/new 3DS)&lt;br /&gt;
|-&lt;br /&gt;
| [[Factory_Setup|Factory]] FIRM (titleID 00040001-00000002)&lt;br /&gt;
| v0&lt;br /&gt;
| 00&lt;br /&gt;
| 2.3-0&lt;br /&gt;
|-&lt;br /&gt;
| [[1.0.0-0|1.0.0]]&lt;br /&gt;
| v432&lt;br /&gt;
| 00&lt;br /&gt;
| 2.27-0&lt;br /&gt;
|-&lt;br /&gt;
| [[1.1.0-1|1.1.0]]&lt;br /&gt;
| v1472&lt;br /&gt;
| 02&lt;br /&gt;
| 2.28-0&lt;br /&gt;
|-&lt;br /&gt;
| [[2.0.0-2|2.0.0]]&lt;br /&gt;
| v2516&lt;br /&gt;
| 09&lt;br /&gt;
| 2.29-7&lt;br /&gt;
|-&lt;br /&gt;
| [[2.1.0-3|2.1.0]]&lt;br /&gt;
| v3553&lt;br /&gt;
| 0B&lt;br /&gt;
| 2.30-18&lt;br /&gt;
|-&lt;br /&gt;
| [[2.2.0-X|2.2.0]]&lt;br /&gt;
| v4595&lt;br /&gt;
| 0F&lt;br /&gt;
| 2.31-40&lt;br /&gt;
|-&lt;br /&gt;
| [[3.0.0-5|3.0.0]]&lt;br /&gt;
| v5647&lt;br /&gt;
| 18&lt;br /&gt;
| 2.32-15&lt;br /&gt;
|-&lt;br /&gt;
| [[4.0.0-7|4.0.0]]&lt;br /&gt;
| v6677&lt;br /&gt;
| 1D&lt;br /&gt;
| 2.33-4&lt;br /&gt;
|-&lt;br /&gt;
| [[4.1.0-8|4.1.0]]&lt;br /&gt;
| v7712&lt;br /&gt;
| 1F&lt;br /&gt;
| 2.34-0&lt;br /&gt;
|-&lt;br /&gt;
| [[5.0.0-11|5.0.0]]&lt;br /&gt;
| v8758&lt;br /&gt;
| 25&lt;br /&gt;
| 2.35-6&lt;br /&gt;
|-&lt;br /&gt;
| [[5.1.0-11|5.1.0]]&lt;br /&gt;
| v9792&lt;br /&gt;
| 26&lt;br /&gt;
| 2.36-0&lt;br /&gt;
|-&lt;br /&gt;
| [[6.0.0-11|6.0.0]]&lt;br /&gt;
| v10833&lt;br /&gt;
| 29&lt;br /&gt;
| 2.37-0&lt;br /&gt;
|-&lt;br /&gt;
| [[6.1.0-11|6.1.0]]&lt;br /&gt;
| v11872&lt;br /&gt;
| 2A&lt;br /&gt;
| 2.38-0&lt;br /&gt;
|-&lt;br /&gt;
| [[7.0.0-13|7.0.0]]&lt;br /&gt;
| v12916&lt;br /&gt;
| 2E&lt;br /&gt;
| 2.39-4&lt;br /&gt;
|-&lt;br /&gt;
| [[7.2.0-17|7.2.0]]&lt;br /&gt;
| v13956&lt;br /&gt;
| 30&lt;br /&gt;
| 2.40-0&lt;br /&gt;
|-&lt;br /&gt;
| [[8.0.0-18|8.0.0]]&lt;br /&gt;
| v15047&lt;br /&gt;
| 37&lt;br /&gt;
| 2.44-6&lt;br /&gt;
|-&lt;br /&gt;
| [[8.1.0-0_New3DS]]&lt;br /&gt;
|N/A&lt;br /&gt;
|N/A&lt;br /&gt;
| 2.45-5&lt;br /&gt;
|-&lt;br /&gt;
| [[9.0.0-20|9.0.0]]&lt;br /&gt;
| v17120&lt;br /&gt;
| 38&lt;br /&gt;
| 2.46-0&lt;br /&gt;
|-&lt;br /&gt;
| [[9.3.0-21|9.3.0]]&lt;br /&gt;
| v18182&lt;br /&gt;
| 3F&lt;br /&gt;
| 2.48-3&lt;br /&gt;
|-&lt;br /&gt;
| [[9.5.0-22|9.5.0]]&lt;br /&gt;
| v19216&lt;br /&gt;
| 40&lt;br /&gt;
| 2.49-0&lt;br /&gt;
|-&lt;br /&gt;
| [[9.6.0-24|9.6.0]]&lt;br /&gt;
| v20262&lt;br /&gt;
| 49&lt;br /&gt;
| 2.50-1&lt;br /&gt;
|-&lt;br /&gt;
| [[10.0.0-27|10.0.0]]&lt;br /&gt;
| v21288&lt;br /&gt;
| 4B&lt;br /&gt;
| 2.50-7&lt;br /&gt;
|-&lt;br /&gt;
| [[10.2.0-28|10.2.0]]&lt;br /&gt;
| v22313&lt;br /&gt;
| 4C&lt;br /&gt;
| 2.50-9&lt;br /&gt;
|-&lt;br /&gt;
| [[10.4.0-29|10.4.0]]&lt;br /&gt;
| v23341&lt;br /&gt;
| 50&lt;br /&gt;
| 2.50-11&lt;br /&gt;
|-&lt;br /&gt;
| [[11.0.0-33|11.0.0]]&lt;br /&gt;
| v24368&lt;br /&gt;
| 52&lt;br /&gt;
| 2.51-0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The above kernel/FIRM versions are in the format: &amp;lt;KERNEL_VERSIONMAJOR&amp;gt;.&amp;lt;KERNEL_VERSIONMINOR&amp;gt;-&amp;lt;KERNEL_VERSIONREVISION&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SAFE_MODE_FIRM ===&lt;br /&gt;
SAFE_MODE is used for running the [[System_Settings#System_Updater|System Updater]]. SAFE_MODE_FIRM and NATIVE_FIRM for the initial versions are exactly the same, except for the system core version fields.&lt;br /&gt;
&lt;br /&gt;
=== TWL_FIRM ===&lt;br /&gt;
TWL_FIRM handles DS(i) backwards compatibility.&lt;br /&gt;
&lt;br /&gt;
The 3DS-mode ARM9 core seems to switch into DSi-mode(for running DSi-mode ARM9 code) by writing to a [[PDN]] register(this changes the memory layout to DSi-mode / etc, therefore this register poke *must* be executed from ITCM). This is the final 3DS-mode register poke before the ARM9 switches into DSi-mode. DS(i)-mode ARM7 code is run on the internal [[ARM7]] core, which is started up during TWL_FIRM boot. Trying to read from the exception-vector region(address 0x0) under this DSi-mode ARM7 seems to only return 0x00/0xFF data. Also note that this DSi-mode ARM7 runs code(stored in TWL_FIRM) which pokes some DSi-mode registers that on the DSi were used for disabling access to the DSi bootROMs, however these registers do not affect the 3DS DSi-mode ARM9/ARM7 &amp;quot;bootrom&amp;quot; region(exceptionvector region + 0x8000) at all.&lt;br /&gt;
&lt;br /&gt;
For shutting down the system, TWL_FIRM writes u8 value 8 to [[I2C]] MCU register 0x20. For returning to 3DS-mode, TWL_FIRM writes value 4 to that MCU register to trigger a hardware system reboot.&lt;br /&gt;
&lt;br /&gt;
The TWL_FIRM ARM11-process includes a TWL bootloader, see [http://dsibrew.org/wiki/Bootloader here] and [[Memory_layout#Detailed_TWL_FIRM_ARM11_Memory|here]] for details.&lt;br /&gt;
&lt;br /&gt;
TWL_FIRM verifies all TWL RSA padding with the following. This is different from the DSi &amp;quot;BIOS&amp;quot; code.&lt;br /&gt;
* The first byte must be 0x0.&lt;br /&gt;
* The second byte must be 0x1 or 0x2.&lt;br /&gt;
* Executes a while(&amp;lt;value of byte at current pos in RSA message&amp;gt;). When the second_byte in the message is 0x1, the byte at curpos must be 0xFF(otherwise the non-zero value of the byte at curpos doesn&#039;t matter). This loop must find a zero byte before offset 0x7F in the message otherwise an error is returned.&lt;br /&gt;
* Returns an address for msg_curpos+1.&lt;br /&gt;
totalhashdatasize = rsasig_bytesize - above position in the message for the hashdata. The actual &amp;quot;totalhashdatasize&amp;quot; in the RSA message must be &amp;lt;= &amp;lt;expected hashdata_size&amp;gt;(0x74 for bootloader). The TWL_FIRM code copies the RSA &amp;quot;hashdata&amp;quot; to the output buffer, using the actual size of the RSA &amp;quot;hashdata&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== AGB_FIRM ===&lt;br /&gt;
AGB_FIRM handles running GBA VC titles. The ARM9 FIRM section for TWL_FIRM and AGB_FIRM are exactly the same (for TWL_FIRM and AGB_FIRM versions which were updated with the same system-update).&lt;br /&gt;
&lt;br /&gt;
== FIRM Launch Parameters ==&lt;br /&gt;
The FIRM-launch parameters structure is located at FCRAM+0, size 0x1000-bytes. The ARM11-kernel copies this structure elsewhere, then clears the 0x1000-bytes at FCRAM+0. It will not handle an existing structure at FCRAM+0 if [[CONFIG Registers#CFG_BOOTENV|CFG_BOOTENV]] is zero. The ARM9 kernel [[Configuration_Memory#0x1FF80016|writes some values]] about the boot environment to AXI WRAM during init to enable this.&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;
| 0x300&lt;br /&gt;
| 0x100&lt;br /&gt;
| &#039;TLNC&#039; block created by TWL applications, handled by NS for backwards-compatibility purposes. See [[NS#Auto-boot|here]] for more info.&lt;br /&gt;
|-&lt;br /&gt;
| 0x400&lt;br /&gt;
| 0x4&lt;br /&gt;
| Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x410&lt;br /&gt;
| 0xC&lt;br /&gt;
| This is used for overriding the FIRM_* fields in [[Configuration_Memory]], when the flag listed below is set, in the following order(basically just data-copy from here to 0x1FF80060): &amp;quot;FIRM_?&amp;quot;, FIRM_VERSIONREVISION, FIRM_VERSIONMINOR, FIRM_VERSIONMAJOR, FIRM_SYSCOREVER, and FIRM_CTRSDKVERSION.&lt;br /&gt;
|-&lt;br /&gt;
| 0x438&lt;br /&gt;
| 0x4&lt;br /&gt;
| The kernel checks this field for value 0xFFFF, if it matches the kernel uses the rest of these parameter fields, otherwise FIRM-launch parameters fields are ignored by the kernel.&lt;br /&gt;
|-&lt;br /&gt;
| 0x43C&lt;br /&gt;
| 0x4&lt;br /&gt;
| CRC32, this is calculated starting at FIRM-params offset 0x400, with size 0x140(with this field cleared to zero during calculation). When invalid the kernel clears the entire buffer used for storing the FIRM-params, therefore no actual FIRM-params are handled after that.&lt;br /&gt;
|-&lt;br /&gt;
| 0x440&lt;br /&gt;
| 0x10&lt;br /&gt;
| Titleinfo [[Filesystem_services#ProgramInfo|Program Info]], used by NS during NS startup, to launch the specified title when the below flag is set.&lt;br /&gt;
|-&lt;br /&gt;
| 0x450&lt;br /&gt;
| 0x10&lt;br /&gt;
| Titleinfo [[Filesystem_services#ProgramInfo|Program Info]]. This might be used for returning to the specified title, once the above launched title terminates?&lt;br /&gt;
|-&lt;br /&gt;
| 0x460&lt;br /&gt;
| 0x4&lt;br /&gt;
| Bit0: 0 = titleinfo structure isn&#039;t set, 1 = titleinfo structure is set.&lt;br /&gt;
|-&lt;br /&gt;
| 0x480&lt;br /&gt;
| 0x20&lt;br /&gt;
| This can be set via buf1 for [[APT:SendDeliverArg]]/[[APT:StartApplication]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A0&lt;br /&gt;
| 0x10&lt;br /&gt;
| This can be set by [[NSS:SetWirelessRebootInfo]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B0&lt;br /&gt;
| 0x14&lt;br /&gt;
| SHA1-HMAC of the banner for TWL/NTR titles. This can be set by [[NSS:SetTWLBannerHMAC]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x500&lt;br /&gt;
| 0x40&lt;br /&gt;
| This is used by [[APT:LoadSysMenuArg]] and [[APT:StoreSysMenuArg]].&lt;br /&gt;
|-&lt;br /&gt;
| 0xD70&lt;br /&gt;
| 0x290&lt;br /&gt;
| [[Config Savegame|Config]] data struct for LGY FIRM.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Flags from offset 0x400:&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;
| This can be used for overriding the default FCRAM [[Memory_layout|memory-regions]] allocation sizes(APPLICATION, SYSTEM, and BASE). The values for this is the same as [[Configuration_Memory#APPMEMTYPE|Configmem-APPMEMTYPE]]. Values 0-1 are handled the same way by the kernel. However for NS, 0=titleinfo structure for launching a title isn&#039;t set, while non-zero=titleinfo structure is set.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x3&lt;br /&gt;
| Setting bit0 here enables overriding the FIRM_* fields in [[Configuration_Memory]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Config Savegame|Config]] struct for booting LGY FIRMs from offset 0xD70:&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;
| Config block 0x30000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x1&lt;br /&gt;
| Config block 0x70001.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x1&lt;br /&gt;
| System language (Config block 0xA0002).&lt;br /&gt;
|-&lt;br /&gt;
| 0x3&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[Cfg:SecureInfoGetRegion|Region from SecureInfo]] (&amp;quot;pseudo-block&amp;quot; 0x140000 in LGY FIRM).&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0xF&lt;br /&gt;
| [[CfgS:SecureInfoGetSerialNo|Serial number from SecureInfo]] (&amp;quot;pseudo-block&amp;quot; 0x140001 in LGY FIRM).&lt;br /&gt;
|-&lt;br /&gt;
| 0x13&lt;br /&gt;
| 0x1&lt;br /&gt;
| Config block 0x100002.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x10&lt;br /&gt;
| Config block 0x100003.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x2&lt;br /&gt;
| Config block 0x100000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x1&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x27&lt;br /&gt;
| 0x1&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x94&lt;br /&gt;
| Config block 0x100001.&lt;br /&gt;
|-&lt;br /&gt;
| 0xBC&lt;br /&gt;
| 0x2&lt;br /&gt;
| Config block 0x50000.&lt;br /&gt;
|-&lt;br /&gt;
| 0xBE&lt;br /&gt;
| 0x2&lt;br /&gt;
| Config block 0x50001.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0&lt;br /&gt;
| 0x38&lt;br /&gt;
| Config block 0x50002.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF8&lt;br /&gt;
| 0x20&lt;br /&gt;
| Config block 0x50004.&lt;br /&gt;
|-&lt;br /&gt;
| 0x118&lt;br /&gt;
| 0x134&lt;br /&gt;
| Config block 0x20000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24C&lt;br /&gt;
| 0x10&lt;br /&gt;
| Config block 0x40000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25C&lt;br /&gt;
| 0x1C&lt;br /&gt;
| Config block 0x40001.&lt;br /&gt;
|-&lt;br /&gt;
| 0x278&lt;br /&gt;
| 0x4&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x27C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Cleared to zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x280&lt;br /&gt;
| 0x8&lt;br /&gt;
| Config block 0x30001.&lt;br /&gt;
|-&lt;br /&gt;
| 0x288&lt;br /&gt;
| 0x2&lt;br /&gt;
| CRC16 over the above fields from offset 0x0, size 0x288. If not valid, LGY FIRM uses dummy data from .(ro)data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28A&lt;br /&gt;
| 0x2&lt;br /&gt;
| If non-zero, the size (below) is hardcoded (currently) to value 0x288, otherwise the size field below is used.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Value 0x288 (size used for verifying the CRC16).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Cleared to zero&amp;quot; fields above are not read at all by LGY FIRM.&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Ninjhax&amp;diff=13251</id>
		<title>Ninjhax</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Ninjhax&amp;diff=13251"/>
		<updated>2015-09-10T06:10:44Z</updated>

		<summary type="html">&lt;p&gt;Ihaveamac: fix version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ninjhax is an exploit by smea for the game Cubic Ninja. It was released on November 20th, 2014. It can be used on all 3DS firmware versions from 4.0 up to and including 9.2.0-20. It was partially patched in [[9.3.0-21|9.3.0-X]] (only system flaws used by ninjhax were fixed, the game haxx itself was not affected).&lt;br /&gt;
&lt;br /&gt;
ninjhax 2 was released on 18 July 2015, and works on any system version from 9.0.0-X up to 10.0.0-27.&lt;br /&gt;
&lt;br /&gt;
When triggered, it will boot a [[3DSX_Format | 3dsx-file]] from the sdcard root called &amp;quot;boot.3dsx&amp;quot;. This file is usually the [[Homebrew Launcher]], which in turn can be used to launch other games/apps from the (micro)SD card. The launched application will run with user privileges on the ARM11 CPU. On system versions up to 9.2.0-20, one of the publicly known [[3DS System Flaws]] can be chained to gain ARM11 kernel privileges or to take control over the ARM9 CPU. More recent system versions are limited to ARM11 userland homebrew until new exploits are disclosed.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
Visit [http://smealum.net/ninjhax/ here] for instructions on how to install Ninjhax, and [http://smealum.github.io/ninjhax2/ here] for instructions on how to install Ninjhax 2!&lt;br /&gt;
&lt;br /&gt;
==Service access==&lt;br /&gt;
&lt;br /&gt;
ninjhax gives developers access to a number of services. These include :&lt;br /&gt;
&lt;br /&gt;
* ac:u&lt;br /&gt;
* APT:U&lt;br /&gt;
* boss:U&lt;br /&gt;
* cam:u&lt;br /&gt;
* cecd:u&lt;br /&gt;
* cfg:u&lt;br /&gt;
* dlp:FKCL&lt;br /&gt;
* dlp:SRVR&lt;br /&gt;
* dsp::DSP&lt;br /&gt;
* frd:u&lt;br /&gt;
* fs:USER&lt;br /&gt;
* gsp::Gpu&lt;br /&gt;
* hid:USER&lt;br /&gt;
* http:C&lt;br /&gt;
* ir:u&lt;br /&gt;
* mic:u&lt;br /&gt;
* ndm:u&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;news:u&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* nwm::UDS&lt;br /&gt;
* ptm:u&lt;br /&gt;
* pxi:dev&lt;br /&gt;
* soc:U&lt;br /&gt;
* ssl:C&lt;br /&gt;
* y2r:u&lt;br /&gt;
&lt;br /&gt;
Additionally, Old 3DS models (3DS, 3DS XL and 2DS) are given access to the following :&lt;br /&gt;
&lt;br /&gt;
* csnd:SND&lt;br /&gt;
&lt;br /&gt;
In contrast, New 3DS models (New 3DS, New 3DS XL) get access to :&lt;br /&gt;
&lt;br /&gt;
* am:app&lt;br /&gt;
* ir:rst&lt;br /&gt;
* l2b2:u&lt;br /&gt;
* l2b:u&lt;br /&gt;
* mvd:STD&lt;br /&gt;
* nim:aoc&lt;br /&gt;
* y2r2:u&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The normal service used for accessing [[Circle Pad Pro]] is not accessible: [[IR_Services|ir:USER]].&lt;br /&gt;
&lt;br /&gt;
==System Call Access==&lt;br /&gt;
&lt;br /&gt;
The following [[SVC|system calls]] are usable by homebrew running using ninjhax:&lt;br /&gt;
&lt;br /&gt;
 Allowed systemcalls:    0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08&lt;br /&gt;
                         0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10&lt;br /&gt;
                         0x11, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19&lt;br /&gt;
                         0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21&lt;br /&gt;
                         0x22, 0x23, 0x24, 0x25, 0x27, 0x28, 0x29, 0x2A&lt;br /&gt;
                         0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32&lt;br /&gt;
                         0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C&lt;br /&gt;
                         0x3D&lt;br /&gt;
&lt;br /&gt;
==Limitations==&lt;br /&gt;
&lt;br /&gt;
At the moment, ninjhax only allows users to access 64MB of RAM, including on the New 3DS. This may change in the future.&lt;br /&gt;
&lt;br /&gt;
While sound works on the New 3DS for homebrew running via ninjhax 2.0, at the time of the exploit&#039;s original release, there was no good way to use the DSP from homebrew, so sound output is not possible on the New 3DS using the old version. At the moment, there is also no known way of running code on the New 3DS&#039;s extra CPU cores under ninjhax, though it is possible to use 80% of the system core&#039;s time using [[APT:SetApplicationCpuTimeLimit]] rather than 30% as was the case on the Old 3DS.&lt;br /&gt;
&lt;br /&gt;
==Capabilities==&lt;br /&gt;
* All SD and NAND [[extdata]] is accessible via the main extdata [[FS:OpenArchive|archive]](R/W). Note that the [[FS:OpenArchive|ExtSaveData-for-BOSS]] archive is not accessible.&lt;/div&gt;</summary>
		<author><name>Ihaveamac</name></author>
	</entry>
</feed>