<?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=Phijor</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=Phijor"/>
	<link rel="alternate" type="text/html" href="https://www.3dbrew.org/wiki/Special:Contributions/Phijor"/>
	<updated>2026-04-10T06:23:22Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Kernel_ABI&amp;diff=20673</id>
		<title>Kernel ABI</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Kernel_ABI&amp;diff=20673"/>
		<updated>2018-04-15T07:30:19Z</updated>

		<summary type="html">&lt;p&gt;Phijor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Inputs are read from registers starting from r0 and outputs are written back to the same registers (also starting with r0).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  ID&lt;br /&gt;
!  Name&lt;br /&gt;
!  Inputs&lt;br /&gt;
!  Outputs&lt;br /&gt;
|-&lt;br /&gt;
| 0x01&lt;br /&gt;
| ControlMemory&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;r0&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;[[Memory Management#enum_MemoryOperation|MemoryOperation]] operation&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;r1&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;u32 addr0&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;r2&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;u32 addr1&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;r3&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;u32 size&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;r4&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;[[Memory Management#enum_MemoryPermission|MemoryPermission]] permissions&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;r0&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;Result&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;r1&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;u32 addr_out&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x02&lt;br /&gt;
| QueryMemory&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;r2&amp;lt;/code&amp;gt;?: &amp;lt;code&amp;gt;u32 addr&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;r0&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;Result&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;r1&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;u32 base_process_virtual_address&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;r2&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;u32 size&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;r3&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;[[Memory Management#enum_MemoryPermission|MemoryPermission]] permission&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;r4&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;[[Memory_Management#enum_MemoryState|MemoryState]] state&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;r5&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;[[Memory_Management#enum_PageFlags|PageFlags]] page_flags&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x03&lt;br /&gt;
| ExitProcess&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| GetProcessAffinityMask&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;r0&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;[out] u8* affinitymask&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;r1&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;Handle process&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;r2&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;s32 processorcount&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;r0&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;Result&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| SetProcessAffinityMask&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;r0&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;Handle process&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;r1&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;[in] u8* affinitymask&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;r2&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;s32 processorcount&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;r0&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;Result&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x05&lt;br /&gt;
| GetProcessIdealProcessor&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;r1&amp;lt;/code&amp;gt;?: &amp;lt;code&amp;gt;Handle process&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;r0&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;Result&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;r1&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;s32 processorid&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| WaitSynchronization1&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;r0&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;Handle handle&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;r2-r3&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;s64 timeout&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;r0&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;Result&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B&lt;br /&gt;
| SetTimer&lt;br /&gt;
| Timer handle, initial_low, interval_low, initial_high, interval_high&lt;br /&gt;
| Result&lt;br /&gt;
|-&lt;br /&gt;
| 0x2D&lt;br /&gt;
| ConnectToPort&lt;br /&gt;
| ??, pointer to port name&lt;br /&gt;
| Result, handle to [[KClientSession]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x32&lt;br /&gt;
| SendSyncRequest&lt;br /&gt;
| handle to [[KClientSession]]&lt;br /&gt;
| Result&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Phijor</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=FS:FormatSaveData&amp;diff=20666</id>
		<title>FS:FormatSaveData</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=FS:FormatSaveData&amp;diff=20666"/>
		<updated>2018-03-25T15:03:53Z</updated>

		<summary type="html">&lt;p&gt;Phijor: Fix link to bucket count calculation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code [0x084C0242]&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| [[Filesystem_services#ArchiveId|Archive ID]]. This must be either 0x4 (SaveData) or 0x567890B2, otherwise error 0xE0E046BE is returned.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| [[Filesystem_services#PathType|Path Type]]&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Path Size&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Size in Blocks (1 block = 512 bytes). The value of this word is hard-coded to 0x200 in official titles it appears, regardless of savedata-size.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Number of Directories&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Max number of Files&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Directory Bucket Count&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| File Bucket Count&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| u8, 0 = don&#039;t duplicate data, 1 = duplicate data&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| (PathSize &amp;lt;&amp;lt; 14) &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 2&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Path Data Pointer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Result code&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
This clears the SaveData archive for the specified game, if the LowPath.Type is Empty then this will clear the SaveData for the current game. The target SaveData to format is determined by a Binary path, a game needs an exheader permission set in order to format the SaveData of another program.&lt;br /&gt;
&lt;br /&gt;
See [[RomFS#Hash_Table_Structure|here]] for an example of how bucket counts should be calculated.&lt;/div&gt;</summary>
		<author><name>Phijor</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Mii_Selector&amp;diff=20208</id>
		<title>Mii Selector</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Mii_Selector&amp;diff=20208"/>
		<updated>2017-08-03T17:16:11Z</updated>

		<summary type="html">&lt;p&gt;Phijor: Fix copy/paste typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the library applet used to select a [[Mii]]. Internally it is called&lt;br /&gt;
&#039;&#039;appletEd&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Launching the applet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;appletEd&#039;&#039; can be launched by calling [[APT:StartLibraryApplet]] with&lt;br /&gt;
[[NS_and_APT_Services#AppIDs|AppID]] 0x402.  It expects a pointer to a&lt;br /&gt;
[[#Parameter Buffer|buffer]] of 0x104 bytes to be passed as parameter. It does&lt;br /&gt;
not use other ressources, so an invalid [[SVC#typedef_Handle|handle]] of value 0&lt;br /&gt;
is expected.&lt;br /&gt;
&lt;br /&gt;
After returning from the applet, [[#Return Buffer|part of the parameter buffer]]&lt;br /&gt;
is filled with the data of any selected Mii and some other related values.&lt;br /&gt;
&lt;br /&gt;
=Parameter Buffer=&lt;br /&gt;
&lt;br /&gt;
The applet can be configured to work in a flexible way by setting values in a&lt;br /&gt;
0x104 byte long buffer that is passed when launching it.&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 Byte&lt;br /&gt;
! Size&lt;br /&gt;
! Type&lt;br /&gt;
! Name&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x000&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;code&amp;gt;1*u8&amp;lt;/code&amp;gt;&lt;br /&gt;
| Cancel button flag&lt;br /&gt;
| If set to a nonzero value, a Button labeled &#039;&#039;(B) Cancel&#039;&#039; is displayed at the bottom of the applet.&lt;br /&gt;
This allows to cancel the selection of a Mii.&lt;br /&gt;
|-&lt;br /&gt;
| 0x001&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;code&amp;gt;1*u8&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enable Guest Mii selection flag&lt;br /&gt;
| If set to a nonzero value, 6 predefined &#039;&#039;Guest Miis&#039;&#039; can be selected on their own page.&lt;br /&gt;
|-&lt;br /&gt;
| 0x002&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;code&amp;gt;1*u8&amp;lt;/code&amp;gt;&lt;br /&gt;
| Show on top screen flag&lt;br /&gt;
| If set to a nonzero value, the applet is displayed at the top screen instead of the touchscreen.&lt;br /&gt;
|-&lt;br /&gt;
| 0x003&lt;br /&gt;
| 5&lt;br /&gt;
| &amp;lt;code&amp;gt;5*u8&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
| May be padding to align the following data to a 8-byte boundary.&lt;br /&gt;
|-&lt;br /&gt;
| 0x008&lt;br /&gt;
| 128 (0x80)&lt;br /&gt;
| &amp;lt;code&amp;gt;64*u16&amp;lt;/code&amp;gt;&lt;br /&gt;
| Title&lt;br /&gt;
| This is a UTF16-LE[https://en.wikipedia.org/wiki/UTF-16]-encoded, zero-terminated string that is displayed at the top of the applet.&lt;br /&gt;
If the first character is set to &amp;lt;code&amp;gt;&#039;\x0000&#039;&amp;lt;/code&amp;gt; (null-terminator), a default title is displayed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x088&lt;br /&gt;
| 4&lt;br /&gt;
| &amp;lt;code&amp;gt;4*u8&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
| May be padding.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08C&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;code&amp;gt;1*u8&amp;lt;/code&amp;gt;&lt;br /&gt;
| Show Guest Miis flag&lt;br /&gt;
| If set to a nonzero value, the applet initially shows the page where the Guest Miis are located.&lt;br /&gt;
Otherwise, it displays the user-created/-imported Miis after launch.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08D&lt;br /&gt;
| 3&lt;br /&gt;
| &amp;lt;code&amp;gt;3*u8&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
| May be padding to align the following data to a 8-byte boundary.&lt;br /&gt;
|-&lt;br /&gt;
| 0x090&lt;br /&gt;
| 4&lt;br /&gt;
| &amp;lt;code&amp;gt;1*u32&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initially selected Mii index&lt;br /&gt;
| If set to a value &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;, the cursor is initially placed on the &amp;lt;code&amp;gt;i+1&amp;lt;/code&amp;gt;st Mii in the [[Mii#Mii_Database|Mii database]].&lt;br /&gt;
If &#039;&#039;Show Guest Miis&#039;&#039; is set and &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; is in [0,...,5], the cursor is placed on the &amp;lt;code&amp;gt;i+1&amp;lt;/code&amp;gt;st Guest Mii.  In any other case a user&#039;s personal Mii is selected.&lt;br /&gt;
|-&lt;br /&gt;
| 0x094&lt;br /&gt;
| 6&lt;br /&gt;
| &amp;lt;code&amp;gt;6*u8&amp;lt;/code&amp;gt;&lt;br /&gt;
| Guest Mii whitelist&lt;br /&gt;
| For each nonzero byte in this array, the corresponding Guest Mii is made selectable.&lt;br /&gt;
Otherwise they are greyed out and can&#039;t be selected.&lt;br /&gt;
|-&lt;br /&gt;
| 0x09A&lt;br /&gt;
| 100 (0x64)&lt;br /&gt;
| &amp;lt;code&amp;gt;100*u8&amp;lt;/code&amp;gt;&lt;br /&gt;
| User Mii whitelist&lt;br /&gt;
| Like the above, only for the Miis found in the system&#039;s database.&lt;br /&gt;
A Mii&#039;s index in this array corresponds to its index in the system database.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0FE&lt;br /&gt;
| 2&lt;br /&gt;
| &amp;lt;code&amp;gt;1*u16&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
| May be padding to align the following data to a 8-byte boundary.&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 4&lt;br /&gt;
| &amp;lt;code&amp;gt;1*u32&amp;lt;/code&amp;gt;&lt;br /&gt;
| Magic value &amp;lt;code&amp;gt;0x13DE28CF&amp;lt;/code&amp;gt; (little Endian)&lt;br /&gt;
| Without this value, the applet refuses to display any Miis.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Return Buffer=&lt;br /&gt;
&lt;br /&gt;
After selecting a Mii or canceling the operation, &#039;&#039;appletEd&#039;&#039; writes 0x84 byte&lt;br /&gt;
to the parameter buffer it was passed, starting at offset 0.&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 Byte&lt;br /&gt;
! Size&lt;br /&gt;
! Type&lt;br /&gt;
! Name&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| &amp;lt;code&amp;gt;1*u32&amp;lt;/code&amp;gt;&lt;br /&gt;
| Return code&lt;br /&gt;
| Set to 1 if the action was canceled, 0 if a Mii was selected.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| &amp;lt;code&amp;gt;1*u32&amp;lt;/code&amp;gt;&lt;br /&gt;
| Guest Mii selected flag&lt;br /&gt;
| Set to 1 if a Guest Mii was selected, 0 if it was a user Mii.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 4&lt;br /&gt;
| &amp;lt;code&amp;gt;1*u32&amp;lt;/code&amp;gt;&lt;br /&gt;
| Selected Guest Mii index&lt;br /&gt;
| If a Guest Mii was selected, this is set to the value corresponding to its index (i.e. 3 for Guest D).&lt;br /&gt;
Set to 0xFFFFFFFF (-1) if a user Mii was selected.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 92 (0x5c)&lt;br /&gt;
| &amp;lt;code&amp;gt;1*struct mii&amp;lt;/code&amp;gt;&lt;br /&gt;
| Selected Mii data&lt;br /&gt;
| If a Mii was selected, its data is copied here.&lt;br /&gt;
The same [[Mii#Mii format|format]] as in the system&#039;s Mii database is used.&lt;br /&gt;
|-&lt;br /&gt;
| 0x68&lt;br /&gt;
| 2&lt;br /&gt;
| &amp;lt;code&amp;gt;2*u8&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
| 0x6a&lt;br /&gt;
| 2&lt;br /&gt;
| &amp;lt;code&amp;gt;1*u16&amp;lt;/code&amp;gt;&lt;br /&gt;
| Mii data checksum (?)&lt;br /&gt;
| This may be a [[Mii#Checksum|checksum]] of the returned Mii data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6c&lt;br /&gt;
| 24&lt;br /&gt;
| &amp;lt;code&amp;gt;12*u16&amp;lt;/code&amp;gt;&lt;br /&gt;
| Guest Mii name&lt;br /&gt;
| The localized name as a UTF16-LE string of a Guest Mii if one was selected, zeroed otherwise.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Phijor</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=NS_and_APT_Services&amp;diff=20207</id>
		<title>NS and APT Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=NS_and_APT_Services&amp;diff=20207"/>
		<updated>2017-08-03T17:13:34Z</updated>

		<summary type="html">&lt;p&gt;Phijor: Add link to Mii Selector (appletEd) library applet&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
The NS (&#039;&#039;&#039;N&#039;&#039;&#039;intendo User Interface &#039;&#039;&#039;S&#039;&#039;&#039;hell) system module is the first module launched from a CTR-NAND title after the [[FIRM]] processes are loaded (also see [[Bootloader]]). This module is launched by the pm process, with the titleID loaded from NS state(hard-coded TID initialized during applet TID-array initialization). NS first launches [[ErrDisp]], then the menu. On retail the menu TID is loaded from NS state, while on dev/debug the menu TID is loaded from [[Config_Savegame|config]]. On dev-units if the menu TID block doesn&#039;t exist in [[Config_Savegame|config]], NS will attempt to launch the alternate menu instead. The TID of the launched menu is then written to [[Configuration Memory|ACTIVEMENUTID]]. NS uses [[PMApp:LaunchTitle|pm:app]] to launch titles.&lt;br /&gt;
&lt;br /&gt;
NS will not trigger the [[ErrDisp|fatal-error]] screen when launching the regular/alternate menu fails.&lt;br /&gt;
&lt;br /&gt;
Like home menu NS is constantly running while the system is in 3DS-mode. When attempting to return to home-menu when the home-menu process isn&#039;t running(like when the process terminated/crashed), NS will trigger a [[ErrDisp|fatal]] error.&lt;br /&gt;
&lt;br /&gt;
= Alternate menu =&lt;br /&gt;
When launching the regular menu fails, NS will then attempt to launch the alternate menu. This title could be used as a recovery process, however it&#039;s normally not used after the factory.&lt;br /&gt;
&lt;br /&gt;
At the factory for all 3DS systems, [[3DS Development Unit GUI#Test Menu|Test Menu]] is installed with this TID. On retail this title is eventually deleted during [[Factory Setup]].&lt;br /&gt;
&lt;br /&gt;
= Auto-boot =&lt;br /&gt;
After [[PMApp:GetFIRMLaunchParams|loading]] [[FIRM]] params and prior to launching [[ErrDisp]]/Home Menu, NS handles auto-booting titles. The same code called by [[APT:Reboot]] is used for launching FIRM here. When the [[Configuration_Memory|UPDATEFLAG]] is set, NS will launch SAFE_MODE_FIRM with the application titleID set to the [[System_Settings#System_Updater|System Updater]] titleID for this region. When the UPDATEFLAG is not set, NS can auto-boot the following titles as well if [[Configuration_Memory|0x1FF80016]] bit0 is set.&lt;br /&gt;
&lt;br /&gt;
When bit1 and bit2 are value zero in [[Configuration_Memory|0x1FF80016]], NS will [[NSS:LaunchFIRM|launch]] the title specified by the [[FIRM]] parameters if the title-info is set. This FIRM launch is done after launching [[ErrDisp]] and Home Menu. Otherwise when [[Configuration_Memory|0x1FF80016]] is value 2 and the output u8 from [[PTM|PTMSYSM]] command 0x08140000 is value 0, NS will boot the title specified from the TWL TLNC block from FIRMparams+0x300. This is the same TLNC block which DSi titles wrote to RAM+0x300 for launching other titles via the launcher title. When handling the TLNC block, NS will boot the 3DS System Settings title when the TLNC titleID is the DSi System Settings titleID(the region field in the TLNC TID is not checked/used). When the TLNC titleID is not System Settings, NS will convert the input DSi titleID-high to the 3DS TWL titleID-high(tidhigh = (TLNCtidhigh &amp;amp; 0x7FFF) | 0x48000), then launch TWL_FIRM to run the title. NS does not support launching from gamecard via TLNC.&lt;br /&gt;
&lt;br /&gt;
= NS Workaround =&lt;br /&gt;
A &amp;quot;ns_workaround&amp;quot; was [[5.1.0-11|added]] in NS to workaround the flaw added with [[5.0.0-11]]. When NS is loading before launching any ARM11 processes and certain [[Configuration Memory]] fields are set, NS will launch [[Application_Manager_Services|AM]] then use command [[AM:InstallNATIVEFIRM]]. NS will then execute the code called by [[APT:StartNewestHomeMenu]], the code related to APT:PrepareToStartNewestHomeMenu is not executed here.&lt;br /&gt;
&lt;br /&gt;
NS will only execute this code-path when [[Configuration Memory|0x1FF80016]] is value zero, when KERNEL_VERSIONMAJOR is value 2, and when KERNEL_VERSIONMINOR is less than 35. Therefore, this code-path is only executed when the running NATIVE_FIRM version is prior to [[5.0.0-11]].&lt;br /&gt;
&lt;br /&gt;
= NS Service &amp;quot;ns:s&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;
!  Available since system version&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x000100C0&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:LaunchFIRM|LaunchFIRM]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000200C0&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:LaunchTitle|LaunchTitle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030000&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:TerminateApplication|TerminateApplication]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040040&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:TerminateProcess|TerminateProcess]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000500C0&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:LaunchApplicationFIRM|LaunchApplicationFIRM]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00060042&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:SetWirelessRebootInfo|SetWirelessRebootInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070042&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:CardUpdateInitialize|CardUpdateInitialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:CardUpdateShutdown|CardUpdateShutdown]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090000&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| Gamecard system update related.&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0000&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| Gamecard system update related.&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0000&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| Gamecard system update related.&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0000&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| Gamecard system update related.&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0140&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:SetTWLBannerHMAC|SetTWLBannerHMAC]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0000&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:ShutdownAsync|ShutdownAsync]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0000&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| This calls [[APT:AppletUtility]] with fixed input params.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00100180&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:RebootSystem|RebootSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00110100&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:TerminateTitle|TerminateTitle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001200C0&lt;br /&gt;
| ?&lt;br /&gt;
| [[NSS:SetApplicationCpuTimeLimit|SetApplicationCpuTimeLimit]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130000&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00140042&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150140&lt;br /&gt;
| ?&lt;br /&gt;
| [[NSS:LaunchApplication|LaunchApplication]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160000&lt;br /&gt;
| [[8.0.0-18]]&lt;br /&gt;
| [[NSS:RebootSystemClean|RebootSystemClean]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The maximum sessions that can be used with this service is two, therefore only two processes can use this service at the same time.&lt;br /&gt;
&lt;br /&gt;
=NS Power Service &amp;quot;ns:p&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;
| [[NSP:RebootSystem|RebootSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020000&lt;br /&gt;
| [[NSS:ShutdownAsync|ShutdownAsync]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[3.0.0-5]]. The PTM sysmodule connects to this service, and syncs whenever [[PTM|ptm:s GetShellState()]] changes.&lt;br /&gt;
&lt;br /&gt;
=NS Service &amp;quot;ns:c&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;
| 0x00010100&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020100&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0-11]], it&#039;s unknown what this is used for.&lt;br /&gt;
&lt;br /&gt;
=APT Services=&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;
!  Available since system version&lt;br /&gt;
!  Accessible with APT:U&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetLockHandle|GetLockHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020080&lt;br /&gt;
| &lt;br /&gt;
| See [[APT:Initialize|here]].&lt;br /&gt;
| [[APT:Initialize|Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:Enable|Enable]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:Finalize|Finalize]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetAppletManInfo|GetAppletManInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00060040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetAppletInfo|GetAppletInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetLastSignaledAppletId|GetLastSignaledAppletId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:CountRegisteredApplet|CountRegisteredApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:IsRegistered|IsRegistered]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetAttribute|GetAttribute]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:InquireNotification|InquireNotification]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0104&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:SendParameter|SendParameter]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0080&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:ReceiveParameter|ReceiveParameter]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0080&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GlanceParameter|GlanceParameter]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0100&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:CancelParameter|CancelParameter]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001000C2&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:DebugFunc|DebugFunc]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001100C0&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:MapProgramIdForDebug|MapProgramIdForDebug]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:SetHomeMenuAppletIdForDebug|SetHomeMenuAppletIdForDebug]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetPreparationState|GetPreparationState]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00140040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:SetPreparationState|SetPreparationState]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150140&lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| [[APT:PrepareToStartApplication|PrepareToStartApplication]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PreloadLibraryApplet|PreloadLibraryApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:FinishPreloadingLibraryApplet|FinishPreloadingLibraryApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToStartLibraryApplet|PrepareToStartLibraryApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToStartSystemApplet|PrepareToStartSystemApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A0000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToStartNewestHomeMenu|PrepareToStartNewestHomeMenu]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B00C4&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:StartApplication|StartApplication]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:WakeupApplication|WakeupApplication]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D0000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:CancelApplication|CancelApplication]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E0084&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:StartLibraryApplet|StartLibraryApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0084&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:StartSystemApplet|StartSystemApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00200044&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:StartNewestHomeMenu|StartNewestHomeMenu]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210000&lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| [[APT:OrderToCloseApplication|OrderToCloseApplication]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00220040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToCloseApplication|PrepareToCloseApplication]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00230040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToJumpToApplication|PrepareToJumpToApplication]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00240044&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:JumpToApplication|JumpToApplication]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002500C0&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToCloseLibraryApplet|PrepareToCloseLibraryApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00260000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToCloseSystemApplet|PrepareToCloseSystemApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00270044&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:CloseApplication|CloseApplication]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00280044&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:CloseLibraryApplet|CloseLibraryApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00290044&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:CloseSystemApplet|CloseSystemApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002A0000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:OrderToCloseSystemApplet|OrderToCloseSystemApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002B0000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToJumpToHomeMenu|PrepareToJumpToHomeMenu]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002C0044&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:JumpToHomeMenu|JumpToHomeMenu]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002D0000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToLeaveHomeMenu|PrepareToLeaveHomeMenu]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002E0044&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:LeaveHomeMenu|LeaveHomeMenu]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002F0040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToLeaveResidentApplet|PrepareToLeaveResidentApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00300044&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:LeaveResidentApplet|LeaveResidentApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00310100&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToDoApplicationJump|PrepareToDoApplicationJump]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00320084&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:DoApplicationJump|DoApplicationJump]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00330000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetProgramIdOnApplicationJump|GetProgramIdOnApplicationJump]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00340084&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:SendDeliverArg|SendDeliverArg]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00350080&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:ReceiveDeliverArg|ReceiveDeliverArg]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00360040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:LoadSysMenuArg|LoadSysMenuArg]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00370042&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:StoreSysMenuArg|StoreSysMenuArg]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00380040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PreloadResidentApplet|PreloadResidentApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00390040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToStartResidentApplet|PrepareToStartResidentApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003A0044&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:StartResidentApplet|StartResidentApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003B0040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:CancelLibraryApplet|CancelLibraryApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003C0042&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:SendDspSleep|SendDspSleep]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003D0042&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:SendDspWakeUp|SendDspWakeUp]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003E0080&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:ReplySleepQuery|ReplySleepQuery]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003F0040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:ReplySleepNotificationComplete|ReplySleepNotificationComplete]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00400042&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:SendCaptureBufferInfo|SendCaptureBufferInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00410040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:ReceiveCaptureBufferInfo|ReceiveCaptureBufferInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00420080&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:SleepSystem|SleepSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00430040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:NotifyToWait|NotifyToWait]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00440000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetSharedFont|GetSharedFont]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00450040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetWirelessRebootInfo|GetWirelessRebootInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00460104&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:Wrap|Wrap]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00470104&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:Unwrap|Unwrap]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00480100&lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| [[APT:GetProgramInfo|GetProgramInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00490180&lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| [[APT:Reboot|Reboot]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x004A0040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetCaptureInfo|GetCaptureInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x004B00C2&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:AppletUtility|AppletUtility]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x004C0000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:SetFatalErrDispMode|SetFatalErrDispMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x004D0080&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetAppletProgramInfo|GetAppletProgramInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x004E0000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:HardwareResetAsync|HardwareResetAsync]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x004F0080&lt;br /&gt;
| [[2.2.0-X]]&lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:SetApplicationCpuTimeLimit|SetApplicationCpuTimeLimit]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00500040&lt;br /&gt;
| [[2.2.0-X]]&lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetApplicationCpuTimeLimit|GetApplicationCpuTimeLimit]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00510080&lt;br /&gt;
| [[3.0.0-5]]&lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetStartupArgument|GetStartupArgument]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00520104&lt;br /&gt;
| [[4.0.0-7]]&lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:Wrap1|Wrap1]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00530104&lt;br /&gt;
| [[4.0.0-7]]&lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:Unwrap1|Unwrap1]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00540040&lt;br /&gt;
| [[5.0.0-11]]&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00550040&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:SetScreencapPostPermission|SetScreencapPostPermission]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00560000&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetScreencapPostPermission|GetScreencapPostPermission]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00570044&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| ?&lt;br /&gt;
| [[APT:WakeupApplication2|WakeupApplication2]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00580002&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetProgramID|GetProgramID]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x01010000&lt;br /&gt;
| [[8.0.0-18]]&lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:CheckNew3DSApp|CheckNew3DSApp]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x01020000&lt;br /&gt;
| [[8.0.0-18]]&lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:CheckNew3DS|CheckNew3DS]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x01030000&lt;br /&gt;
| [[8.0.0-18]]&lt;br /&gt;
| Yes&lt;br /&gt;
| This writes an output u8 to cmdreply[2], the value is determined by checking various NS internal state + whether this is a New3DS.&lt;br /&gt;
The normal output seems to be value 0x2. Forcing this value to 0x1 causes New3DS HID usage(via ir:USER) in Smash Bros to be disabled.&lt;br /&gt;
|-&lt;br /&gt;
| 0x01040000&lt;br /&gt;
| [[8.0.0-18]]&lt;br /&gt;
| ?&lt;br /&gt;
| [[APT:IsStandardMemoryLayout|IsStandardMemoryLayout]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x01050100&lt;br /&gt;
| [[10.4.0-29]]&lt;br /&gt;
| ?&lt;br /&gt;
| [[APT:IsTitleAllowed|IsTitleAllowed]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These &amp;quot;APT:U&amp;quot; and &amp;quot;APT:S&amp;quot; NS services can handle launching titles/&amp;quot;applets&amp;quot;, these services handle signaling for home/power button as well. Only one session for either APT service can be open at a time, normally processes close the service handle immediately once finished using the service. The commands for APT:U and APT:S are exactly the same, however certain commands are only accessible with APT:S(NS module will call [[SVC|svcBreak]] when the command isn&#039;t accessible).&lt;br /&gt;
&lt;br /&gt;
Applets returning to home-menu first use commands APT:PrepareToJumpToHomeMenu and APT:JumpToHomeMenu, followed by these commands to launch home-menu: [[APT:PrepareToStartSystemApplet]] and [[APT:StartSystemApplet]]. [[APT:PrepareToStartSystemApplet]] and [[APT:StartSystemApplet]] are also used for launching the [[Internet Browser]], the camera applet, etc.&lt;br /&gt;
&lt;br /&gt;
Processes launch applications via home-menu, not directly with [[APT:PrepareToStartApplication]] and [[APT:StartApplication]]. Regular applications can&#039;t directly launch applications since [[APT:StartApplication]] launches the process without terminating the currently running application.&lt;br /&gt;
&lt;br /&gt;
APT:PrepareToDoApplicationJump and APT:DoApplicationJump are used by applications, for launching native/&amp;lt;non-NATIVE_FIRM&amp;gt; applications. These commands notify Home Menu that title launching needs done, Home Menu does the actual title launching via NS commands.&lt;br /&gt;
&lt;br /&gt;
== AppletAttr ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Bits&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-2&lt;br /&gt;
| [[NS_and_APT_Services#AppletPos|AppletPos]]&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Manually Acquire/Release GPU Rights&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Manually Acquire/Release DSP Rights&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== DisplayBufferMode ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Value&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| FORMAT_R8G8B8A8&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| FORMAT_R8G8B8&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| FORMAT_R5G6B5&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| FORMAT_R5G5B5A1&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| FORMAT_R4G4B4A4&lt;br /&gt;
|-&lt;br /&gt;
| 0xFFFFFFFF&lt;br /&gt;
| FORMAT_UNIMPORTABLE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the same mapping as used for the [[GPU/External_Registers#Framebuffer_color_formats|GPU framebuffer color formats]].&lt;br /&gt;
&lt;br /&gt;
== AppletPos ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Value&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| -1&lt;br /&gt;
| POS_NONE&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| POS_APP&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| POS_APPLIB&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| POS_SYS&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| POS_SYSLIB&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| POS_RESIDENT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== QueryReply ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Value&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| REPLY_REJECT&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| REPLY_ACCEPT&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| REPLY_LATER&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notification ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Value&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| NOTIFICATION_NONE&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| NOTIFICATION_HOME_BUTTON_1&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| NOTIFICATION_HOME_BUTTON_2&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| NOTIFICATION_SLEEP_QUERY&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| NOTIFICATION_SLEEP_CANCELED_BY_OPEN&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| NOTIFICATION_SLEEP_ACCEPTED&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| NOTIFICATION_SLEEP_AWAKE&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| NOTIFICATION_SHUTDOWN&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| NOTIFICATION_POWER_BUTTON_CLICK&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| NOTIFICATION_POWER_BUTTON_CLEAR&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| NOTIFICATION_TRY_SLEEP&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| NOTIFICATION_ORDER_TO_CLOSE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Command ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Value&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| COMMAND_NONE&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| COMMAND_WAKEUP&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| COMMAND_REQUEST&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| COMMAND_RESPONSE&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| COMMAND_EXIT&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| COMMAND_MESSAGE&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| COMMAND_HOME_BUTTON_SINGLE&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| COMMAND_HOME_BUTTON_DOUBLE&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| COMMAND_DSP_SLEEP&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| COMMAND_DSP_WAKEUP&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| COMMAND_WAKEUP_BY_EXIT&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| COMMAND_WAKEUP_BY_PAUSE&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| COMMAND_WAKEUP_BY_CANCEL&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| COMMAND_WAKEUP_BY_CANCELALL&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| COMMAND_WAKEUP_BY_POWER_BUTTON_CLICK&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| COMMAND_WAKEUP_TO_JUMP_HOME&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| COMMAND_REQUEST_FOR_SYS_APPLET&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| COMMAND_WAKEUP_TO_LAUNCH_APPLICATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x41&lt;br /&gt;
| Unknown. [[APT:ReceiveParameter|Received]] by Home Menu during boot when the Home Menu process doesn&#039;t terminate properly(svcExitProcess/crash).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== AppletPreparationState ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Value&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| NO_PREPARATION&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| PREPARED_TO_LAUNCH_APP&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| PREPARED_TO_CLOSE_APP&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| PREPARED_TO_FORCE_TO_CLOSE_APP&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| PREPARED_TO_PRELOAD_APPLIB&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| PREPARED_TO_LAUNCH_APPLIB&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| PREPARED_TO_CLOSE_APPLIB&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| PREPARED_TO_LAUNCH_SYS&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| PREPARED_TO_CLOSE_SYS&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| PREPARED_TO_PRELOAD_SYSLIB&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| PREPARED_TO_LAUNCH_SYSLIB&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| PREPARED_TO_CLOSE_SYSLIB&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| PREPARED_TO_LAUNCH_RESIDENT&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| PREPARED_TO_LEAVE_RESIDENT&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| PREPARED_TO_DO_HOMEMENU&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| PREPARED_TO_LEAVE_HOMEMENU&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| PREPARED_TO_START_RESIDENT&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| PREPARED_TO_DO_APP_JUMP&lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| PREPARED_TO_FORCE_TO_CLOSE_SYS&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| PREPARED_TO_LAUNCH_OTHER_SYS&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| PREPARED_TO_JUMP_TO_APP&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== StartupArgumentType ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Value&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| STARTUP_ARGUMENT_TYPE_OTHER_APP&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| STARTUP_ARGUMENT_TYPE_RESTART&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| STARTUP_ARGUMENT_TYPE_OTHER_MEDIA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== CaptureBufferInfo ==&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, Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x1&lt;br /&gt;
| u8, 3D (0 = not 3D, 1 = 3D)&lt;br /&gt;
|-&lt;br /&gt;
| 0x5&lt;br /&gt;
| 0x3&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Main Screen Left Offset&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Main Screen Right Offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Main Screen [[NS_and_APT_Services#DisplayBufferMode|DisplayBufferMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Sub Screen Left Offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x4&lt;br /&gt;
| Sub Screen Right Offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Sub Screen [[NS_and_APT_Services#DisplayBufferMode|DisplayBufferMode]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==WirelessRebootInfo==&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;
| 0x6&lt;br /&gt;
| Host MAC address.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6&lt;br /&gt;
| 0x9&lt;br /&gt;
| WirelessRebootPassphrase&lt;br /&gt;
|-&lt;br /&gt;
| 0xF&lt;br /&gt;
| 0x1&lt;br /&gt;
| Uninitialized&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is [[NSS:SetWirelessRebootInfo|setup]] by the dlplay system-application, before launching the DLP-child which can then use [[APT:GetWirelessRebootInfo]]. The MAC address and passphrase is used for connecting to the host by the DLP-child. See also [[DLP_Services|here]].&lt;br /&gt;
&lt;br /&gt;
=&amp;quot;APT:A&amp;quot; Service=&lt;br /&gt;
This was added with [[7.0.0-13|7.0.0-X]]. Official apps built with the CTRSDK for system-version &amp;gt;=[[7.0.0-13|7.0.0-X]] normally use the &amp;quot;APT:A&amp;quot; service instead of &amp;quot;APT:U&amp;quot;. Those processes also have &amp;quot;APT:A&amp;quot; instead of &amp;quot;APT:U&amp;quot; in the service-access-control. It&#039;s unknown whether there&#039;s anything which is only accessible via &amp;quot;APT:A&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=Applets=&lt;br /&gt;
NS module does not verify that the input appID for the APT service cmds are correct for that type of command. For example, a process-launch of a SystemApplet via LibraryApplet commands works fine(minus the launched-process side of APT probably).&lt;br /&gt;
&lt;br /&gt;
==System Applets==&lt;br /&gt;
On Old3DS there could only be one applet here(Home Menu, Internet Browser, Friend-List, etc) with programID-high 00040030 running at a time. On Old3DS when directly launching one of these 00040030 applets with Home Menu, the Home Menu process will terminate once the process is launched. On Old3DS when returning to Home Menu from that launched process, the Home Menu process is launched again.&lt;br /&gt;
&lt;br /&gt;
On New3DS the Home Menu process is still running/in-memory, while another system-applet is running. On New3DS it appears that the Home Menu process is terminated+relaunched, when another system-applet terminated without exiting with APT properly.&lt;br /&gt;
&lt;br /&gt;
==Library Applets==&lt;br /&gt;
Library applets can be launched by applications and regular applets. These library applets render to the screen(s) when running, etc. For example, this includes swkbd for text input. See the below appIDs in the 0x2XX range, the actual appID used is 0x4XX however.&lt;br /&gt;
&lt;br /&gt;
Input data can be sent to the library applet via the NS [[APT:SendParameter|parameter]] buffer, and/or with shared-memory with a shared-mem handle sent to the library applet. Output data from the library applet can be received by [[APT:ReceiveParameter]], the library applet can also use the specified shared-mem for output too.&lt;br /&gt;
&lt;br /&gt;
=AppIDs=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  AppID&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x101&lt;br /&gt;
| [[Home Menu]] (menu)&lt;br /&gt;
|-&lt;br /&gt;
| 0x103&lt;br /&gt;
| Alternate Menu&lt;br /&gt;
|-&lt;br /&gt;
| 0x110&lt;br /&gt;
| Camera applet ([[Camera Applet|CtrApp]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x112&lt;br /&gt;
| Friends List applet ([[Friend List|friend]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x113&lt;br /&gt;
| Game Notes applet (Cherry)&lt;br /&gt;
|-&lt;br /&gt;
| 0x114&lt;br /&gt;
| [[Internet Browser]] (spider/SKATER)&lt;br /&gt;
|-&lt;br /&gt;
| 0x115&lt;br /&gt;
| Instruction Manual applet&lt;br /&gt;
|-&lt;br /&gt;
| 0x116&lt;br /&gt;
| [[Notifications]] applet (newslist)&lt;br /&gt;
|-&lt;br /&gt;
| 0x117&lt;br /&gt;
| Miiverse applet (olv)&lt;br /&gt;
|-&lt;br /&gt;
| 0x118&lt;br /&gt;
| [[Miiverse]] posting applet (solv3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x119&lt;br /&gt;
| Amiibo settings (cabinet)&lt;br /&gt;
|-&lt;br /&gt;
| 0x201&lt;br /&gt;
| Software Keyboard (swkbd) (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x202&lt;br /&gt;
| [[Mii Selector]] (appletEd) (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x204&lt;br /&gt;
| Photo Selector (PNOTE_AP) (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x205&lt;br /&gt;
| Sound Selector (SNOTE_AP) (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x206&lt;br /&gt;
| Error Display ([[ErrDisp|error]]) (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x207&lt;br /&gt;
| eShop applet ([[EShop#NS_eShop_application_parameters|mint]]) (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x208&lt;br /&gt;
| Circle Pad Pro Calibrator ([[Extrapad_Applet|extrapad]]) (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x209&lt;br /&gt;
| Notepad (memolib) (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x300&lt;br /&gt;
| Application&lt;br /&gt;
|-&lt;br /&gt;
| 0x301&lt;br /&gt;
| eShop (tiger)&lt;br /&gt;
|-&lt;br /&gt;
| 0x401&lt;br /&gt;
| Software Keyboard (swkbd)&lt;br /&gt;
|-&lt;br /&gt;
| 0x402&lt;br /&gt;
| Mii Selector (appletEd)&lt;br /&gt;
|-&lt;br /&gt;
| 0x404&lt;br /&gt;
| Photo Selector (PNOTE_AP)&lt;br /&gt;
|-&lt;br /&gt;
| 0x405&lt;br /&gt;
| Sound Selector (SNOTE_AP)&lt;br /&gt;
|-&lt;br /&gt;
| 0x406&lt;br /&gt;
| Error Display (error)&lt;br /&gt;
|-&lt;br /&gt;
| 0x407&lt;br /&gt;
| eShop applet (mint)&lt;br /&gt;
|-&lt;br /&gt;
| 0x408&lt;br /&gt;
| Circle Pad Pro Calibrator ([[Extrapad_Applet|extrapad]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x409&lt;br /&gt;
| Notepad (memolib)&lt;br /&gt;
|-&lt;br /&gt;
| 0xF10&lt;br /&gt;
| ProgramID: 0004003000008900.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF11&lt;br /&gt;
| ProgramID: 000400000FFFFD00.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF12&lt;br /&gt;
| ProgramID: 000400000FFFFC00.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF13&lt;br /&gt;
| ProgramID: 000400000FFFFB00.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF14&lt;br /&gt;
| ProgramID: 000400000FFFF900.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF15&lt;br /&gt;
| ProgramID: 000400000FFFF800.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF16&lt;br /&gt;
| ProgramID: 000400000FFFF700.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF17&lt;br /&gt;
| ProgramID: 000400000FFFF600.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF18&lt;br /&gt;
| ProgramID: 000400000FFFF500.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These AppIDs are all for NAND titles, except for 0x300. AppIDs in the 0x1XX range are applets(programID-high 00040030), and the AppIDs in the 0x2XX range are &amp;quot;system libraries&amp;quot;(programID-high 00040030). The 0xFXX AppID range is for development NAND applications, these are not available for retail.&lt;br /&gt;
&lt;br /&gt;
Note that at some point the total AppID entry count was changed from 28 to 27.&lt;/div&gt;</summary>
		<author><name>Phijor</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=NS_and_APT_Services&amp;diff=20206</id>
		<title>NS and APT Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=NS_and_APT_Services&amp;diff=20206"/>
		<updated>2017-08-03T17:12:25Z</updated>

		<summary type="html">&lt;p&gt;Phijor: Add links to system and libray applets&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
The NS (&#039;&#039;&#039;N&#039;&#039;&#039;intendo User Interface &#039;&#039;&#039;S&#039;&#039;&#039;hell) system module is the first module launched from a CTR-NAND title after the [[FIRM]] processes are loaded (also see [[Bootloader]]). This module is launched by the pm process, with the titleID loaded from NS state(hard-coded TID initialized during applet TID-array initialization). NS first launches [[ErrDisp]], then the menu. On retail the menu TID is loaded from NS state, while on dev/debug the menu TID is loaded from [[Config_Savegame|config]]. On dev-units if the menu TID block doesn&#039;t exist in [[Config_Savegame|config]], NS will attempt to launch the alternate menu instead. The TID of the launched menu is then written to [[Configuration Memory|ACTIVEMENUTID]]. NS uses [[PMApp:LaunchTitle|pm:app]] to launch titles.&lt;br /&gt;
&lt;br /&gt;
NS will not trigger the [[ErrDisp|fatal-error]] screen when launching the regular/alternate menu fails.&lt;br /&gt;
&lt;br /&gt;
Like home menu NS is constantly running while the system is in 3DS-mode. When attempting to return to home-menu when the home-menu process isn&#039;t running(like when the process terminated/crashed), NS will trigger a [[ErrDisp|fatal]] error.&lt;br /&gt;
&lt;br /&gt;
= Alternate menu =&lt;br /&gt;
When launching the regular menu fails, NS will then attempt to launch the alternate menu. This title could be used as a recovery process, however it&#039;s normally not used after the factory.&lt;br /&gt;
&lt;br /&gt;
At the factory for all 3DS systems, [[3DS Development Unit GUI#Test Menu|Test Menu]] is installed with this TID. On retail this title is eventually deleted during [[Factory Setup]].&lt;br /&gt;
&lt;br /&gt;
= Auto-boot =&lt;br /&gt;
After [[PMApp:GetFIRMLaunchParams|loading]] [[FIRM]] params and prior to launching [[ErrDisp]]/Home Menu, NS handles auto-booting titles. The same code called by [[APT:Reboot]] is used for launching FIRM here. When the [[Configuration_Memory|UPDATEFLAG]] is set, NS will launch SAFE_MODE_FIRM with the application titleID set to the [[System_Settings#System_Updater|System Updater]] titleID for this region. When the UPDATEFLAG is not set, NS can auto-boot the following titles as well if [[Configuration_Memory|0x1FF80016]] bit0 is set.&lt;br /&gt;
&lt;br /&gt;
When bit1 and bit2 are value zero in [[Configuration_Memory|0x1FF80016]], NS will [[NSS:LaunchFIRM|launch]] the title specified by the [[FIRM]] parameters if the title-info is set. This FIRM launch is done after launching [[ErrDisp]] and Home Menu. Otherwise when [[Configuration_Memory|0x1FF80016]] is value 2 and the output u8 from [[PTM|PTMSYSM]] command 0x08140000 is value 0, NS will boot the title specified from the TWL TLNC block from FIRMparams+0x300. This is the same TLNC block which DSi titles wrote to RAM+0x300 for launching other titles via the launcher title. When handling the TLNC block, NS will boot the 3DS System Settings title when the TLNC titleID is the DSi System Settings titleID(the region field in the TLNC TID is not checked/used). When the TLNC titleID is not System Settings, NS will convert the input DSi titleID-high to the 3DS TWL titleID-high(tidhigh = (TLNCtidhigh &amp;amp; 0x7FFF) | 0x48000), then launch TWL_FIRM to run the title. NS does not support launching from gamecard via TLNC.&lt;br /&gt;
&lt;br /&gt;
= NS Workaround =&lt;br /&gt;
A &amp;quot;ns_workaround&amp;quot; was [[5.1.0-11|added]] in NS to workaround the flaw added with [[5.0.0-11]]. When NS is loading before launching any ARM11 processes and certain [[Configuration Memory]] fields are set, NS will launch [[Application_Manager_Services|AM]] then use command [[AM:InstallNATIVEFIRM]]. NS will then execute the code called by [[APT:StartNewestHomeMenu]], the code related to APT:PrepareToStartNewestHomeMenu is not executed here.&lt;br /&gt;
&lt;br /&gt;
NS will only execute this code-path when [[Configuration Memory|0x1FF80016]] is value zero, when KERNEL_VERSIONMAJOR is value 2, and when KERNEL_VERSIONMINOR is less than 35. Therefore, this code-path is only executed when the running NATIVE_FIRM version is prior to [[5.0.0-11]].&lt;br /&gt;
&lt;br /&gt;
= NS Service &amp;quot;ns:s&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;
!  Available since system version&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x000100C0&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:LaunchFIRM|LaunchFIRM]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000200C0&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:LaunchTitle|LaunchTitle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030000&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:TerminateApplication|TerminateApplication]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040040&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:TerminateProcess|TerminateProcess]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000500C0&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:LaunchApplicationFIRM|LaunchApplicationFIRM]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00060042&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:SetWirelessRebootInfo|SetWirelessRebootInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070042&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:CardUpdateInitialize|CardUpdateInitialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:CardUpdateShutdown|CardUpdateShutdown]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090000&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| Gamecard system update related.&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0000&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| Gamecard system update related.&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0000&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| Gamecard system update related.&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0000&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| Gamecard system update related.&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0140&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:SetTWLBannerHMAC|SetTWLBannerHMAC]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0000&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:ShutdownAsync|ShutdownAsync]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0000&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| This calls [[APT:AppletUtility]] with fixed input params.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00100180&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:RebootSystem|RebootSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00110100&lt;br /&gt;
| [[1.0.0-0]] - [[2.0.0-2]]&lt;br /&gt;
| [[NSS:TerminateTitle|TerminateTitle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001200C0&lt;br /&gt;
| ?&lt;br /&gt;
| [[NSS:SetApplicationCpuTimeLimit|SetApplicationCpuTimeLimit]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130000&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00140042&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150140&lt;br /&gt;
| ?&lt;br /&gt;
| [[NSS:LaunchApplication|LaunchApplication]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160000&lt;br /&gt;
| [[8.0.0-18]]&lt;br /&gt;
| [[NSS:RebootSystemClean|RebootSystemClean]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The maximum sessions that can be used with this service is two, therefore only two processes can use this service at the same time.&lt;br /&gt;
&lt;br /&gt;
=NS Power Service &amp;quot;ns:p&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;
| [[NSP:RebootSystem|RebootSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020000&lt;br /&gt;
| [[NSS:ShutdownAsync|ShutdownAsync]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[3.0.0-5]]. The PTM sysmodule connects to this service, and syncs whenever [[PTM|ptm:s GetShellState()]] changes.&lt;br /&gt;
&lt;br /&gt;
=NS Service &amp;quot;ns:c&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;
| 0x00010100&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020100&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0-11]], it&#039;s unknown what this is used for.&lt;br /&gt;
&lt;br /&gt;
=APT Services=&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;
!  Available since system version&lt;br /&gt;
!  Accessible with APT:U&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetLockHandle|GetLockHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020080&lt;br /&gt;
| &lt;br /&gt;
| See [[APT:Initialize|here]].&lt;br /&gt;
| [[APT:Initialize|Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:Enable|Enable]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:Finalize|Finalize]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetAppletManInfo|GetAppletManInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00060040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetAppletInfo|GetAppletInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetLastSignaledAppletId|GetLastSignaledAppletId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:CountRegisteredApplet|CountRegisteredApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:IsRegistered|IsRegistered]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetAttribute|GetAttribute]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B0040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:InquireNotification|InquireNotification]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0104&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:SendParameter|SendParameter]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0080&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:ReceiveParameter|ReceiveParameter]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0080&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GlanceParameter|GlanceParameter]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0100&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:CancelParameter|CancelParameter]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001000C2&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:DebugFunc|DebugFunc]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001100C0&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:MapProgramIdForDebug|MapProgramIdForDebug]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:SetHomeMenuAppletIdForDebug|SetHomeMenuAppletIdForDebug]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetPreparationState|GetPreparationState]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00140040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:SetPreparationState|SetPreparationState]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150140&lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| [[APT:PrepareToStartApplication|PrepareToStartApplication]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PreloadLibraryApplet|PreloadLibraryApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:FinishPreloadingLibraryApplet|FinishPreloadingLibraryApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToStartLibraryApplet|PrepareToStartLibraryApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToStartSystemApplet|PrepareToStartSystemApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A0000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToStartNewestHomeMenu|PrepareToStartNewestHomeMenu]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B00C4&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:StartApplication|StartApplication]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:WakeupApplication|WakeupApplication]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D0000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:CancelApplication|CancelApplication]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E0084&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:StartLibraryApplet|StartLibraryApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0084&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:StartSystemApplet|StartSystemApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00200044&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:StartNewestHomeMenu|StartNewestHomeMenu]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210000&lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| [[APT:OrderToCloseApplication|OrderToCloseApplication]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00220040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToCloseApplication|PrepareToCloseApplication]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00230040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToJumpToApplication|PrepareToJumpToApplication]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00240044&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:JumpToApplication|JumpToApplication]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002500C0&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToCloseLibraryApplet|PrepareToCloseLibraryApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00260000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToCloseSystemApplet|PrepareToCloseSystemApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00270044&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:CloseApplication|CloseApplication]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00280044&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:CloseLibraryApplet|CloseLibraryApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00290044&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:CloseSystemApplet|CloseSystemApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002A0000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:OrderToCloseSystemApplet|OrderToCloseSystemApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002B0000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToJumpToHomeMenu|PrepareToJumpToHomeMenu]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002C0044&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:JumpToHomeMenu|JumpToHomeMenu]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002D0000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToLeaveHomeMenu|PrepareToLeaveHomeMenu]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002E0044&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:LeaveHomeMenu|LeaveHomeMenu]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002F0040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToLeaveResidentApplet|PrepareToLeaveResidentApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00300044&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:LeaveResidentApplet|LeaveResidentApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00310100&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToDoApplicationJump|PrepareToDoApplicationJump]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00320084&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:DoApplicationJump|DoApplicationJump]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00330000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetProgramIdOnApplicationJump|GetProgramIdOnApplicationJump]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00340084&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:SendDeliverArg|SendDeliverArg]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00350080&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:ReceiveDeliverArg|ReceiveDeliverArg]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00360040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:LoadSysMenuArg|LoadSysMenuArg]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00370042&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:StoreSysMenuArg|StoreSysMenuArg]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00380040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PreloadResidentApplet|PreloadResidentApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00390040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:PrepareToStartResidentApplet|PrepareToStartResidentApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003A0044&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:StartResidentApplet|StartResidentApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003B0040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:CancelLibraryApplet|CancelLibraryApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003C0042&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:SendDspSleep|SendDspSleep]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003D0042&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:SendDspWakeUp|SendDspWakeUp]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003E0080&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:ReplySleepQuery|ReplySleepQuery]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003F0040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:ReplySleepNotificationComplete|ReplySleepNotificationComplete]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00400042&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:SendCaptureBufferInfo|SendCaptureBufferInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00410040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:ReceiveCaptureBufferInfo|ReceiveCaptureBufferInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00420080&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:SleepSystem|SleepSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00430040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:NotifyToWait|NotifyToWait]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00440000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetSharedFont|GetSharedFont]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00450040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetWirelessRebootInfo|GetWirelessRebootInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00460104&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:Wrap|Wrap]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00470104&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:Unwrap|Unwrap]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00480100&lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| [[APT:GetProgramInfo|GetProgramInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00490180&lt;br /&gt;
| &lt;br /&gt;
| No&lt;br /&gt;
| [[APT:Reboot|Reboot]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x004A0040&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetCaptureInfo|GetCaptureInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x004B00C2&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:AppletUtility|AppletUtility]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x004C0000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:SetFatalErrDispMode|SetFatalErrDispMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x004D0080&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetAppletProgramInfo|GetAppletProgramInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x004E0000&lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:HardwareResetAsync|HardwareResetAsync]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x004F0080&lt;br /&gt;
| [[2.2.0-X]]&lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:SetApplicationCpuTimeLimit|SetApplicationCpuTimeLimit]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00500040&lt;br /&gt;
| [[2.2.0-X]]&lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetApplicationCpuTimeLimit|GetApplicationCpuTimeLimit]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00510080&lt;br /&gt;
| [[3.0.0-5]]&lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetStartupArgument|GetStartupArgument]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00520104&lt;br /&gt;
| [[4.0.0-7]]&lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:Wrap1|Wrap1]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00530104&lt;br /&gt;
| [[4.0.0-7]]&lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:Unwrap1|Unwrap1]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00540040&lt;br /&gt;
| [[5.0.0-11]]&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00550040&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:SetScreencapPostPermission|SetScreencapPostPermission]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00560000&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetScreencapPostPermission|GetScreencapPostPermission]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00570044&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| ?&lt;br /&gt;
| [[APT:WakeupApplication2|WakeupApplication2]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00580002&lt;br /&gt;
| [[7.0.0-13]]&lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:GetProgramID|GetProgramID]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x01010000&lt;br /&gt;
| [[8.0.0-18]]&lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:CheckNew3DSApp|CheckNew3DSApp]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x01020000&lt;br /&gt;
| [[8.0.0-18]]&lt;br /&gt;
| Yes&lt;br /&gt;
| [[APT:CheckNew3DS|CheckNew3DS]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x01030000&lt;br /&gt;
| [[8.0.0-18]]&lt;br /&gt;
| Yes&lt;br /&gt;
| This writes an output u8 to cmdreply[2], the value is determined by checking various NS internal state + whether this is a New3DS.&lt;br /&gt;
The normal output seems to be value 0x2. Forcing this value to 0x1 causes New3DS HID usage(via ir:USER) in Smash Bros to be disabled.&lt;br /&gt;
|-&lt;br /&gt;
| 0x01040000&lt;br /&gt;
| [[8.0.0-18]]&lt;br /&gt;
| ?&lt;br /&gt;
| [[APT:IsStandardMemoryLayout|IsStandardMemoryLayout]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x01050100&lt;br /&gt;
| [[10.4.0-29]]&lt;br /&gt;
| ?&lt;br /&gt;
| [[APT:IsTitleAllowed|IsTitleAllowed]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These &amp;quot;APT:U&amp;quot; and &amp;quot;APT:S&amp;quot; NS services can handle launching titles/&amp;quot;applets&amp;quot;, these services handle signaling for home/power button as well. Only one session for either APT service can be open at a time, normally processes close the service handle immediately once finished using the service. The commands for APT:U and APT:S are exactly the same, however certain commands are only accessible with APT:S(NS module will call [[SVC|svcBreak]] when the command isn&#039;t accessible).&lt;br /&gt;
&lt;br /&gt;
Applets returning to home-menu first use commands APT:PrepareToJumpToHomeMenu and APT:JumpToHomeMenu, followed by these commands to launch home-menu: [[APT:PrepareToStartSystemApplet]] and [[APT:StartSystemApplet]]. [[APT:PrepareToStartSystemApplet]] and [[APT:StartSystemApplet]] are also used for launching the [[Internet Browser]], the camera applet, etc.&lt;br /&gt;
&lt;br /&gt;
Processes launch applications via home-menu, not directly with [[APT:PrepareToStartApplication]] and [[APT:StartApplication]]. Regular applications can&#039;t directly launch applications since [[APT:StartApplication]] launches the process without terminating the currently running application.&lt;br /&gt;
&lt;br /&gt;
APT:PrepareToDoApplicationJump and APT:DoApplicationJump are used by applications, for launching native/&amp;lt;non-NATIVE_FIRM&amp;gt; applications. These commands notify Home Menu that title launching needs done, Home Menu does the actual title launching via NS commands.&lt;br /&gt;
&lt;br /&gt;
== AppletAttr ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Bits&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-2&lt;br /&gt;
| [[NS_and_APT_Services#AppletPos|AppletPos]]&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Manually Acquire/Release GPU Rights&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Manually Acquire/Release DSP Rights&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== DisplayBufferMode ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Value&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| FORMAT_R8G8B8A8&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| FORMAT_R8G8B8&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| FORMAT_R5G6B5&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| FORMAT_R5G5B5A1&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| FORMAT_R4G4B4A4&lt;br /&gt;
|-&lt;br /&gt;
| 0xFFFFFFFF&lt;br /&gt;
| FORMAT_UNIMPORTABLE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the same mapping as used for the [[GPU/External_Registers#Framebuffer_color_formats|GPU framebuffer color formats]].&lt;br /&gt;
&lt;br /&gt;
== AppletPos ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Value&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| -1&lt;br /&gt;
| POS_NONE&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| POS_APP&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| POS_APPLIB&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| POS_SYS&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| POS_SYSLIB&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| POS_RESIDENT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== QueryReply ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Value&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| REPLY_REJECT&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| REPLY_ACCEPT&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| REPLY_LATER&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notification ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Value&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| NOTIFICATION_NONE&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| NOTIFICATION_HOME_BUTTON_1&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| NOTIFICATION_HOME_BUTTON_2&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| NOTIFICATION_SLEEP_QUERY&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| NOTIFICATION_SLEEP_CANCELED_BY_OPEN&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| NOTIFICATION_SLEEP_ACCEPTED&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| NOTIFICATION_SLEEP_AWAKE&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| NOTIFICATION_SHUTDOWN&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| NOTIFICATION_POWER_BUTTON_CLICK&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| NOTIFICATION_POWER_BUTTON_CLEAR&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| NOTIFICATION_TRY_SLEEP&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| NOTIFICATION_ORDER_TO_CLOSE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Command ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Value&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| COMMAND_NONE&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| COMMAND_WAKEUP&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| COMMAND_REQUEST&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| COMMAND_RESPONSE&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| COMMAND_EXIT&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| COMMAND_MESSAGE&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| COMMAND_HOME_BUTTON_SINGLE&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| COMMAND_HOME_BUTTON_DOUBLE&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| COMMAND_DSP_SLEEP&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| COMMAND_DSP_WAKEUP&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| COMMAND_WAKEUP_BY_EXIT&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| COMMAND_WAKEUP_BY_PAUSE&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| COMMAND_WAKEUP_BY_CANCEL&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| COMMAND_WAKEUP_BY_CANCELALL&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| COMMAND_WAKEUP_BY_POWER_BUTTON_CLICK&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| COMMAND_WAKEUP_TO_JUMP_HOME&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| COMMAND_REQUEST_FOR_SYS_APPLET&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| COMMAND_WAKEUP_TO_LAUNCH_APPLICATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x41&lt;br /&gt;
| Unknown. [[APT:ReceiveParameter|Received]] by Home Menu during boot when the Home Menu process doesn&#039;t terminate properly(svcExitProcess/crash).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== AppletPreparationState ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Value&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| NO_PREPARATION&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| PREPARED_TO_LAUNCH_APP&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| PREPARED_TO_CLOSE_APP&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| PREPARED_TO_FORCE_TO_CLOSE_APP&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| PREPARED_TO_PRELOAD_APPLIB&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| PREPARED_TO_LAUNCH_APPLIB&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| PREPARED_TO_CLOSE_APPLIB&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| PREPARED_TO_LAUNCH_SYS&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| PREPARED_TO_CLOSE_SYS&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| PREPARED_TO_PRELOAD_SYSLIB&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| PREPARED_TO_LAUNCH_SYSLIB&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| PREPARED_TO_CLOSE_SYSLIB&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| PREPARED_TO_LAUNCH_RESIDENT&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| PREPARED_TO_LEAVE_RESIDENT&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| PREPARED_TO_DO_HOMEMENU&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| PREPARED_TO_LEAVE_HOMEMENU&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| PREPARED_TO_START_RESIDENT&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| PREPARED_TO_DO_APP_JUMP&lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| PREPARED_TO_FORCE_TO_CLOSE_SYS&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| PREPARED_TO_LAUNCH_OTHER_SYS&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| PREPARED_TO_JUMP_TO_APP&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== StartupArgumentType ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Value&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| STARTUP_ARGUMENT_TYPE_OTHER_APP&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| STARTUP_ARGUMENT_TYPE_RESTART&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| STARTUP_ARGUMENT_TYPE_OTHER_MEDIA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== CaptureBufferInfo ==&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, Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x1&lt;br /&gt;
| u8, 3D (0 = not 3D, 1 = 3D)&lt;br /&gt;
|-&lt;br /&gt;
| 0x5&lt;br /&gt;
| 0x3&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Main Screen Left Offset&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Main Screen Right Offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Main Screen [[NS_and_APT_Services#DisplayBufferMode|DisplayBufferMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Sub Screen Left Offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x4&lt;br /&gt;
| Sub Screen Right Offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Sub Screen [[NS_and_APT_Services#DisplayBufferMode|DisplayBufferMode]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==WirelessRebootInfo==&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;
| 0x6&lt;br /&gt;
| Host MAC address.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6&lt;br /&gt;
| 0x9&lt;br /&gt;
| WirelessRebootPassphrase&lt;br /&gt;
|-&lt;br /&gt;
| 0xF&lt;br /&gt;
| 0x1&lt;br /&gt;
| Uninitialized&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is [[NSS:SetWirelessRebootInfo|setup]] by the dlplay system-application, before launching the DLP-child which can then use [[APT:GetWirelessRebootInfo]]. The MAC address and passphrase is used for connecting to the host by the DLP-child. See also [[DLP_Services|here]].&lt;br /&gt;
&lt;br /&gt;
=&amp;quot;APT:A&amp;quot; Service=&lt;br /&gt;
This was added with [[7.0.0-13|7.0.0-X]]. Official apps built with the CTRSDK for system-version &amp;gt;=[[7.0.0-13|7.0.0-X]] normally use the &amp;quot;APT:A&amp;quot; service instead of &amp;quot;APT:U&amp;quot;. Those processes also have &amp;quot;APT:A&amp;quot; instead of &amp;quot;APT:U&amp;quot; in the service-access-control. It&#039;s unknown whether there&#039;s anything which is only accessible via &amp;quot;APT:A&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=Applets=&lt;br /&gt;
NS module does not verify that the input appID for the APT service cmds are correct for that type of command. For example, a process-launch of a SystemApplet via LibraryApplet commands works fine(minus the launched-process side of APT probably).&lt;br /&gt;
&lt;br /&gt;
==System Applets==&lt;br /&gt;
On Old3DS there could only be one applet here(Home Menu, Internet Browser, Friend-List, etc) with programID-high 00040030 running at a time. On Old3DS when directly launching one of these 00040030 applets with Home Menu, the Home Menu process will terminate once the process is launched. On Old3DS when returning to Home Menu from that launched process, the Home Menu process is launched again.&lt;br /&gt;
&lt;br /&gt;
On New3DS the Home Menu process is still running/in-memory, while another system-applet is running. On New3DS it appears that the Home Menu process is terminated+relaunched, when another system-applet terminated without exiting with APT properly.&lt;br /&gt;
&lt;br /&gt;
==Library Applets==&lt;br /&gt;
Library applets can be launched by applications and regular applets. These library applets render to the screen(s) when running, etc. For example, this includes swkbd for text input. See the below appIDs in the 0x2XX range, the actual appID used is 0x4XX however.&lt;br /&gt;
&lt;br /&gt;
Input data can be sent to the library applet via the NS [[APT:SendParameter|parameter]] buffer, and/or with shared-memory with a shared-mem handle sent to the library applet. Output data from the library applet can be received by [[APT:ReceiveParameter]], the library applet can also use the specified shared-mem for output too.&lt;br /&gt;
&lt;br /&gt;
=AppIDs=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  AppID&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x101&lt;br /&gt;
| [[Home Menu]] (menu)&lt;br /&gt;
|-&lt;br /&gt;
| 0x103&lt;br /&gt;
| Alternate Menu&lt;br /&gt;
|-&lt;br /&gt;
| 0x110&lt;br /&gt;
| Camera applet ([[Camera Applet|CtrApp]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x112&lt;br /&gt;
| Friends List applet ([[Friend List|friend]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x113&lt;br /&gt;
| Game Notes applet (Cherry)&lt;br /&gt;
|-&lt;br /&gt;
| 0x114&lt;br /&gt;
| [[Internet Browser]] (spider/SKATER)&lt;br /&gt;
|-&lt;br /&gt;
| 0x115&lt;br /&gt;
| Instruction Manual applet&lt;br /&gt;
|-&lt;br /&gt;
| 0x116&lt;br /&gt;
| [[Notifications]] applet (newslist)&lt;br /&gt;
|-&lt;br /&gt;
| 0x117&lt;br /&gt;
| Miiverse applet (olv)&lt;br /&gt;
|-&lt;br /&gt;
| 0x118&lt;br /&gt;
| [[Miiverse]] posting applet (solv3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x119&lt;br /&gt;
| Amiibo settings (cabinet)&lt;br /&gt;
|-&lt;br /&gt;
| 0x201&lt;br /&gt;
| Software Keyboard (swkbd) (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x202&lt;br /&gt;
| Mii Selector (appletEd) (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x204&lt;br /&gt;
| Photo Selector (PNOTE_AP) (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x205&lt;br /&gt;
| Sound Selector (SNOTE_AP) (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x206&lt;br /&gt;
| Error Display ([[ErrDisp|error]]) (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x207&lt;br /&gt;
| eShop applet ([[EShop#NS_eShop_application_parameters|mint]]) (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x208&lt;br /&gt;
| Circle Pad Pro Calibrator ([[Extrapad_Applet|extrapad]]) (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x209&lt;br /&gt;
| Notepad (memolib) (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x300&lt;br /&gt;
| Application&lt;br /&gt;
|-&lt;br /&gt;
| 0x301&lt;br /&gt;
| eShop (tiger)&lt;br /&gt;
|-&lt;br /&gt;
| 0x401&lt;br /&gt;
| Software Keyboard (swkbd)&lt;br /&gt;
|-&lt;br /&gt;
| 0x402&lt;br /&gt;
| Mii Selector (appletEd)&lt;br /&gt;
|-&lt;br /&gt;
| 0x404&lt;br /&gt;
| Photo Selector (PNOTE_AP)&lt;br /&gt;
|-&lt;br /&gt;
| 0x405&lt;br /&gt;
| Sound Selector (SNOTE_AP)&lt;br /&gt;
|-&lt;br /&gt;
| 0x406&lt;br /&gt;
| Error Display (error)&lt;br /&gt;
|-&lt;br /&gt;
| 0x407&lt;br /&gt;
| eShop applet (mint)&lt;br /&gt;
|-&lt;br /&gt;
| 0x408&lt;br /&gt;
| Circle Pad Pro Calibrator ([[Extrapad_Applet|extrapad]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x409&lt;br /&gt;
| Notepad (memolib)&lt;br /&gt;
|-&lt;br /&gt;
| 0xF10&lt;br /&gt;
| ProgramID: 0004003000008900.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF11&lt;br /&gt;
| ProgramID: 000400000FFFFD00.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF12&lt;br /&gt;
| ProgramID: 000400000FFFFC00.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF13&lt;br /&gt;
| ProgramID: 000400000FFFFB00.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF14&lt;br /&gt;
| ProgramID: 000400000FFFF900.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF15&lt;br /&gt;
| ProgramID: 000400000FFFF800.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF16&lt;br /&gt;
| ProgramID: 000400000FFFF700.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF17&lt;br /&gt;
| ProgramID: 000400000FFFF600.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF18&lt;br /&gt;
| ProgramID: 000400000FFFF500.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These AppIDs are all for NAND titles, except for 0x300. AppIDs in the 0x1XX range are applets(programID-high 00040030), and the AppIDs in the 0x2XX range are &amp;quot;system libraries&amp;quot;(programID-high 00040030). The 0xFXX AppID range is for development NAND applications, these are not available for retail.&lt;br /&gt;
&lt;br /&gt;
Note that at some point the total AppID entry count was changed from 28 to 27.&lt;/div&gt;</summary>
		<author><name>Phijor</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Mii_Selector&amp;diff=20205</id>
		<title>Mii Selector</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Mii_Selector&amp;diff=20205"/>
		<updated>2017-08-03T16:56:03Z</updated>

		<summary type="html">&lt;p&gt;Phijor: Created page with &amp;quot;with is the library applet used to select a Mii. Internally it is called &amp;#039;&amp;#039;appletEd&amp;#039;&amp;#039;.  =Launching the applet=  &amp;#039;&amp;#039;appletEd&amp;#039;&amp;#039; can be launched by calling APT:StartLibraryA...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;with is the library applet used to select a [[Mii]]. Internally it is called&lt;br /&gt;
&#039;&#039;appletEd&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Launching the applet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;appletEd&#039;&#039; can be launched by calling [[APT:StartLibraryApplet]] with&lt;br /&gt;
[[NS_and_APT_Services#AppIDs|AppID]] 0x402.  It expects a pointer to a&lt;br /&gt;
[[#Parameter Buffer|buffer]] of 0x104 bytes to be passed as parameter. It does&lt;br /&gt;
not use other ressources, so an invalid [[SVC#typedef_Handle|handle]] of value 0&lt;br /&gt;
is expected.&lt;br /&gt;
&lt;br /&gt;
After returning from the applet, [[#Return Buffer|part of the parameter buffer]]&lt;br /&gt;
is filled with the data of any selected Mii and some other related values.&lt;br /&gt;
&lt;br /&gt;
=Parameter Buffer=&lt;br /&gt;
&lt;br /&gt;
The applet can be configured to work in a flexible way by setting values in a&lt;br /&gt;
0x104 byte long buffer that is passed when launching it.&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 Byte&lt;br /&gt;
! Size&lt;br /&gt;
! Type&lt;br /&gt;
! Name&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x000&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;code&amp;gt;1*u8&amp;lt;/code&amp;gt;&lt;br /&gt;
| Cancel button flag&lt;br /&gt;
| If set to a nonzero value, a Button labeled &#039;&#039;(B) Cancel&#039;&#039; is displayed at the bottom of the applet.&lt;br /&gt;
This allows to cancel the selection of a Mii.&lt;br /&gt;
|-&lt;br /&gt;
| 0x001&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;code&amp;gt;1*u8&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enable Guest Mii selection flag&lt;br /&gt;
| If set to a nonzero value, 6 predefined &#039;&#039;Guest Miis&#039;&#039; can be selected on their own page.&lt;br /&gt;
|-&lt;br /&gt;
| 0x002&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;code&amp;gt;1*u8&amp;lt;/code&amp;gt;&lt;br /&gt;
| Show on top screen flag&lt;br /&gt;
| If set to a nonzero value, the applet is displayed at the top screen instead of the touchscreen.&lt;br /&gt;
|-&lt;br /&gt;
| 0x003&lt;br /&gt;
| 5&lt;br /&gt;
| &amp;lt;code&amp;gt;5*u8&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
| May be padding to align the following data to a 8-byte boundary.&lt;br /&gt;
|-&lt;br /&gt;
| 0x008&lt;br /&gt;
| 128 (0x80)&lt;br /&gt;
| &amp;lt;code&amp;gt;64*u16&amp;lt;/code&amp;gt;&lt;br /&gt;
| Title&lt;br /&gt;
| This is a UTF16-LE[https://en.wikipedia.org/wiki/UTF-16]-encoded, zero-terminated string that is displayed at the top of the applet.&lt;br /&gt;
If the first character is set to &amp;lt;code&amp;gt;&#039;\x0000&#039;&amp;lt;/code&amp;gt; (null-terminator), a default title is displayed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x088&lt;br /&gt;
| 4&lt;br /&gt;
| &amp;lt;code&amp;gt;4*u8&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
| May be padding.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08C&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;code&amp;gt;1*u8&amp;lt;/code&amp;gt;&lt;br /&gt;
| Show Guest Miis flag&lt;br /&gt;
| If set to a nonzero value, the applet initially shows the page where the Guest Miis are located.&lt;br /&gt;
Otherwise, it displays the user-created/-imported Miis after launch.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08D&lt;br /&gt;
| 3&lt;br /&gt;
| &amp;lt;code&amp;gt;3*u8&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
| May be padding to align the following data to a 8-byte boundary.&lt;br /&gt;
|-&lt;br /&gt;
| 0x090&lt;br /&gt;
| 4&lt;br /&gt;
| &amp;lt;code&amp;gt;1*u32&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initially selected Mii index&lt;br /&gt;
| If set to a value &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;, the cursor is initially placed on the &amp;lt;code&amp;gt;i+1&amp;lt;/code&amp;gt;st Mii in the [[Mii#Mii_Database|Mii database]].&lt;br /&gt;
If &#039;&#039;Show Guest Miis&#039;&#039; is set and &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; is in [0,...,5], the cursor is placed on the &amp;lt;code&amp;gt;i+1&amp;lt;/code&amp;gt;st Guest Mii.  In any other case a user&#039;s personal Mii is selected.&lt;br /&gt;
|-&lt;br /&gt;
| 0x094&lt;br /&gt;
| 6&lt;br /&gt;
| &amp;lt;code&amp;gt;6*u8&amp;lt;/code&amp;gt;&lt;br /&gt;
| Guest Mii whitelist&lt;br /&gt;
| For each nonzero byte in this array, the corresponding Guest Mii is made selectable.&lt;br /&gt;
Otherwise they are greyed out and can&#039;t be selected.&lt;br /&gt;
|-&lt;br /&gt;
| 0x09A&lt;br /&gt;
| 100 (0x64)&lt;br /&gt;
| &amp;lt;code&amp;gt;100*u8&amp;lt;/code&amp;gt;&lt;br /&gt;
| User Mii whitelist&lt;br /&gt;
| Like the above, only for the Miis found in the system&#039;s database.&lt;br /&gt;
A Mii&#039;s index in this array corresponds to its index in the system database.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0FE&lt;br /&gt;
| 2&lt;br /&gt;
| &amp;lt;code&amp;gt;1*u16&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
| May be padding to align the following data to a 8-byte boundary.&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 4&lt;br /&gt;
| &amp;lt;code&amp;gt;1*u32&amp;lt;/code&amp;gt;&lt;br /&gt;
| Magic value &amp;lt;code&amp;gt;0x13DE28CF&amp;lt;/code&amp;gt; (little Endian)&lt;br /&gt;
| Without this value, the applet refuses to display any Miis.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Return Buffer=&lt;br /&gt;
&lt;br /&gt;
After selecting a Mii or canceling the operation, &#039;&#039;appletEd&#039;&#039; writes 0x84 byte&lt;br /&gt;
to the parameter buffer it was passed, starting at offset 0.&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 Byte&lt;br /&gt;
! Size&lt;br /&gt;
! Type&lt;br /&gt;
! Name&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| &amp;lt;code&amp;gt;1*u32&amp;lt;/code&amp;gt;&lt;br /&gt;
| Return code&lt;br /&gt;
| Set to 1 if the action was canceled, 0 if a Mii was selected.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| &amp;lt;code&amp;gt;1*u32&amp;lt;/code&amp;gt;&lt;br /&gt;
| Guest Mii selected flag&lt;br /&gt;
| Set to 1 if a Guest Mii was selected, 0 if it was a user Mii.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 4&lt;br /&gt;
| &amp;lt;code&amp;gt;1*u32&amp;lt;/code&amp;gt;&lt;br /&gt;
| Selected Guest Mii index&lt;br /&gt;
| If a Guest Mii was selected, this is set to the value corresponding to its index (i.e. 3 for Guest D).&lt;br /&gt;
Set to 0xFFFFFFFF (-1) if a user Mii was selected.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 92 (0x5c)&lt;br /&gt;
| &amp;lt;code&amp;gt;1*struct mii&amp;lt;/code&amp;gt;&lt;br /&gt;
| Selected Mii data&lt;br /&gt;
| If a Mii was selected, its data is copied here.&lt;br /&gt;
The same [[Mii#Mii format|format]] as in the system&#039;s Mii database is used.&lt;br /&gt;
|-&lt;br /&gt;
| 0x68&lt;br /&gt;
| 2&lt;br /&gt;
| &amp;lt;code&amp;gt;2*u8&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
| 0x6a&lt;br /&gt;
| 2&lt;br /&gt;
| &amp;lt;code&amp;gt;1*u16&amp;lt;/code&amp;gt;&lt;br /&gt;
| Mii data checksum (?)&lt;br /&gt;
| This may be a [[Mii#Checksum|checksum]] of the returned Mii data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6c&lt;br /&gt;
| 24&lt;br /&gt;
| &amp;lt;code&amp;gt;12*u16&amp;lt;/code&amp;gt;&lt;br /&gt;
| Guest Mii name&lt;br /&gt;
| The localized name as a UTF16-LE string of a Guest Mii if one was selected, zeroed otherwise.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Phijor</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=ERR:Throw&amp;diff=20200</id>
		<title>ERR:Throw</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=ERR:Throw&amp;diff=20200"/>
		<updated>2017-08-01T18:48:31Z</updated>

		<summary type="html">&lt;p&gt;Phijor: Add observed value for FatalErrInfo::Revision Low&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code [0x00010800]&lt;br /&gt;
|-&lt;br /&gt;
| 1-32&lt;br /&gt;
| [[#FatalErrInfo|FatalErrInfo]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Index Word&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Header code&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Result code&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=FatalErrInfo=&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;
| [[#FatalErrType|FatalErrType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x1&lt;br /&gt;
| Revision High (0x0 observed)&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x2&lt;br /&gt;
| Revision Low (0x8436 and 0xCACA observed)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Result Code&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| PC Address&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Process ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8&lt;br /&gt;
| Title ID [[FS:GetProgramLaunchInfo|placeholder]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| Applet Title ID [[APT:GetAppletInfo|placeholder]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x60&lt;br /&gt;
| Data (type 3 = [[#Exception|Exception]], type 4 = [[#Failure|Failure]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FatalErrType==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Value&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Generic&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Corrupted&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Card removed&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Exception&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Result Failure&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Logged&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Exception==&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;
| [[#ExceptionInfo|ExceptionInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x44&lt;br /&gt;
| CpuRegisters (r0-r12, sp, lr, pc, cpsr)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===ExceptionType===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Value&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Prefetch Abort&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Data Abort&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Undefined Exception&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| VFP Exception&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===ExceptionInfo===&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;
| [[#ExceptionType|ExceptionType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x3&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| IFSR (Prefetch Abort)/DFSR (Data Abort)&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| r15 (Prefetch Abort)/DFAR (Data Abort)&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| FPEXC (VFP Exception)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| FPINST (VFP Exception)&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| FPINST2 (VFP Exception)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Failure==&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;
| 0x60&lt;br /&gt;
| char*, Message&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Output=&lt;br /&gt;
==Generic==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Entry&lt;br /&gt;
! Format string&lt;br /&gt;
! Format args&lt;br /&gt;
|-&lt;br /&gt;
| PID&lt;br /&gt;
| 0x%08X_0x%08X &lt;br /&gt;
| [[#FatalErrInfo|FatalErrInfo]] Title ID&lt;br /&gt;
|-&lt;br /&gt;
| REV&lt;br /&gt;
| %d&lt;br /&gt;
| [[#FatalErrInfo|FatalErrInfo]] Revision Low &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; ([[#FatalErrInfo|FatalErrInfo]] Revision High &amp;lt;&amp;lt; 16)&lt;br /&gt;
|-&lt;br /&gt;
| AID&lt;br /&gt;
| 0x%08X_0x%08X &lt;br /&gt;
| [[#FatalErrInfo|FatalErrInfo]] Application Title ID&lt;br /&gt;
|-&lt;br /&gt;
| ADR&lt;br /&gt;
| 0x%08X&lt;br /&gt;
| [[#FatalErrInfo|FatalErrInfo]] PC Address&lt;br /&gt;
|-&lt;br /&gt;
| RSL&lt;br /&gt;
| 0x%08X &lt;br /&gt;
| [[#FatalErrInfo|FatalErrInfo]] Result Code&lt;br /&gt;
|-&lt;br /&gt;
| Level&lt;br /&gt;
| %d&lt;br /&gt;
| [[#FatalErrInfo|FatalErrInfo]] Result Code &amp;amp; 0x80000000 ? ([[#FatalErrInfo|FatalErrInfo]] Result Code &amp;gt;&amp;gt; 27) - 0x20 :  [[#FatalErrInfo|FatalErrInfo]] Result Code &amp;gt;&amp;gt; 27&lt;br /&gt;
|-&lt;br /&gt;
| Summary&lt;br /&gt;
| %d&lt;br /&gt;
| ([[#FatalErrInfo|FatalErrInfo]] Result Code &amp;amp; 0x7E00000) &amp;gt;&amp;gt; 21&lt;br /&gt;
|-&lt;br /&gt;
| Module&lt;br /&gt;
| %d&lt;br /&gt;
| ([[#FatalErrInfo|FatalErrInfo]] Result Code &amp;amp; 0x3FC00) &amp;gt;&amp;gt; 10&lt;br /&gt;
|-&lt;br /&gt;
| Desc&lt;br /&gt;
| %d&lt;br /&gt;
| [[#FatalErrInfo|FatalErrInfo]] Result Code &amp;amp; 0x3FF&lt;br /&gt;
|-&lt;br /&gt;
| Datetime&lt;br /&gt;
| %04d/%02d/%02d %02d:%02d:%02d&lt;br /&gt;
| Current Time&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Corrupted==&lt;br /&gt;
&lt;br /&gt;
Follows the same general output format as Generic, but the bottom screen instead displays the following:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;The System Memory has been damaged.&lt;br /&gt;
For help, please contact your local customer support centre. For contact details, check the Operations Manual or visit support.nintendo.com.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Result Failure==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Entry&lt;br /&gt;
! Format string&lt;br /&gt;
! Format args&lt;br /&gt;
|-&lt;br /&gt;
| PID&lt;br /&gt;
| 0x%08X_0x%08X &lt;br /&gt;
| [[#FatalErrInfo|FatalErrInfo]] Title ID&lt;br /&gt;
|-&lt;br /&gt;
| REV&lt;br /&gt;
| %d&lt;br /&gt;
| [[#FatalErrInfo|FatalErrInfo]] Revision Low &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; ([[#FatalErrInfo|FatalErrInfo]] Revision High &amp;lt;&amp;lt; 16)&lt;br /&gt;
|-&lt;br /&gt;
| AID&lt;br /&gt;
| 0x%08X_0x%08X &lt;br /&gt;
| [[#FatalErrInfo|FatalErrInfo]] Application Title ID&lt;br /&gt;
|-&lt;br /&gt;
| RSL&lt;br /&gt;
| 0x%08X &lt;br /&gt;
| [[#FatalErrInfo|FatalErrInfo]] Result Code&lt;br /&gt;
|-&lt;br /&gt;
| Level&lt;br /&gt;
| %d&lt;br /&gt;
| [[#FatalErrInfo|FatalErrInfo]] Result Code &amp;amp; 0x80000000 ? ([[#FatalErrInfo|FatalErrInfo]] Result Code &amp;gt;&amp;gt; 27) - 0x20 :  [[#FatalErrInfo|FatalErrInfo]] Result Code &amp;gt;&amp;gt; 27&lt;br /&gt;
|-&lt;br /&gt;
| Summary&lt;br /&gt;
| %d&lt;br /&gt;
| ([[#FatalErrInfo|FatalErrInfo]] Result Code &amp;amp; 0x7E00000) &amp;gt;&amp;gt; 21&lt;br /&gt;
|-&lt;br /&gt;
| Module&lt;br /&gt;
| %d&lt;br /&gt;
| ([[#FatalErrInfo|FatalErrInfo]] Result Code &amp;amp; 0x3FC00) &amp;gt;&amp;gt; 10&lt;br /&gt;
|-&lt;br /&gt;
| Desc&lt;br /&gt;
| %d&lt;br /&gt;
| [[#FatalErrInfo|FatalErrInfo]] Result Code &amp;amp; 0x3FF&lt;br /&gt;
|-&lt;br /&gt;
| ?&lt;br /&gt;
| %.*s&lt;br /&gt;
| [[#FatalErrInfo|FatalErrInfo]] Data [[#Failure|Failure]] Message&lt;br /&gt;
|-&lt;br /&gt;
| Datetime&lt;br /&gt;
| %04d/%02d/%02d %02d:%02d:%02d&lt;br /&gt;
| Current Time&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cart Removed ==&lt;br /&gt;
&lt;br /&gt;
No actual error information. Shows the error screen normally shown when pulling a game cart while in DS mode.&lt;/div&gt;</summary>
		<author><name>Phijor</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Mii&amp;diff=18414</id>
		<title>Mii</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Mii&amp;diff=18414"/>
		<updated>2016-10-11T18:39:04Z</updated>

		<summary type="html">&lt;p&gt;Phijor: Identify specialness-bit and date of creation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originally [http://wiibrew.org/wiki/Mii_Data created for the Nintendo Wii] (and backported to a selection of DS/i games), the &#039;&#039;&#039;Mii&#039;&#039;&#039; format was expanded with a larger selection of facial features and a new &amp;quot;copying&amp;quot; permission for the 3DS family, and later implemented as-is on Wii U.&lt;br /&gt;
&lt;br /&gt;
See [[Mii Maker]] for the application chiefly designed to create, edit, delete, and trade Miis or convert them from and to a QR code.&lt;br /&gt;
&lt;br /&gt;
==Mii Database==&lt;br /&gt;
Format of the Mii main database &#039;&#039;&#039;CFL_DB.dat&#039;&#039;&#039;, found in [[Extdata#NAND_Shared_Extdata|shared extdata]] archive f0000000b.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Header &amp;quot;CFOG&amp;quot; (Mii Maker section)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Header 0x00010000&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x23F7&lt;br /&gt;
| Array of owned (saved in Mii Maker) Miis. Order in file is unrelated to canonical order in-app.&lt;br /&gt;
|-&lt;br /&gt;
| 0x23FC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Header &amp;quot;CFHE&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x23F8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Header 0xFFFFFFFF&lt;br /&gt;
|-&lt;br /&gt;
| 0x2400&lt;br /&gt;
| 0xA41E&lt;br /&gt;
| Array of objects? See chapter&lt;br /&gt;
|-&lt;br /&gt;
| 0xC81E&lt;br /&gt;
| 0x2&lt;br /&gt;
| Checksum of all of the above (the first 0xC81E byte). See section [[#Checksum|below]].&lt;br /&gt;
|-&lt;br /&gt;
| 0xC820&lt;br /&gt;
| 0x4&lt;br /&gt;
| Header &amp;quot;CFRA&amp;quot; (Invitations section)&lt;br /&gt;
|-&lt;br /&gt;
| 0xC824&lt;br /&gt;
| 0x4&lt;br /&gt;
| Header? 0x39000000&lt;br /&gt;
|-&lt;br /&gt;
| 0xC861&lt;br /&gt;
| 0x2B&lt;br /&gt;
| Weird padding? 0x00&lt;br /&gt;
|-&lt;br /&gt;
| 0xC88C&lt;br /&gt;
| 0x1C20 (?)&lt;br /&gt;
| Array of Miis contributed from games, used for Mii Plaza &amp;quot;invitations&amp;quot; feature.&amp;lt;br/&amp;gt;The format isn&#039;t that of a full Mii.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE4AC&lt;br /&gt;
| 0x14&lt;br /&gt;
| 01 00 [..] 00 D2 74&lt;br /&gt;
|-&lt;br /&gt;
| 0xE4C0&lt;br /&gt;
| 0x3D860&lt;br /&gt;
| Empty (00)&lt;br /&gt;
|}&lt;br /&gt;
When encrypted in QR codes, 4 additional bytes are added. Two null bytes and a CRC-16. It&#039;s the exact same CRC-16 as for the Wii blocks on the 0x5e first bytes. It seems that the CRC is ignored, the Mii Maker expecting the result of APT:Unwrap to detect integrity loss.&lt;br /&gt;
&lt;br /&gt;
==CFHE object==&lt;br /&gt;
&lt;br /&gt;
A 0xE-byte long item.&lt;br /&gt;
&lt;br /&gt;
On my database, they&#039;re all 0000 0000 0000 0000 0000 FF7F FF7F.&lt;br /&gt;
&lt;br /&gt;
Wild speculation: blacklist of already scanned celebrity (gold) Mii QRs?&lt;br /&gt;
&lt;br /&gt;
Alternative interpretation: FFFF FFFF 0000 0000 0000 0000 0000 is the 1st item;  FF7F FF7F 0000 [...] the 2nd, etc;&lt;br /&gt;
&lt;br /&gt;
==Checksum==&lt;br /&gt;
&lt;br /&gt;
The algorithm used to verify the integrity of the database is based on [http://srecord.sourceforge.net/crc16-ccitt.html CRC16-CCITT], though it&#039;s an incorrect implementation. It is the same algorithm used to verify [http://wiibrew.org/wiki/Mii_Data#Block_format Mii Data on the Wii].&lt;br /&gt;
&lt;br /&gt;
To obtain the correct value for the checksum, apply the algorithm to the first 0xC81E bytes of the database. This can be done using [https://www.dropbox.com/s/863idp5wmh50c1v/Gold_Mii_Tools.zip?dl=0 FixCRC for Windows]; alternativly a pseudocode implementation of the checksum algorithm is given below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def crc16_CCITTWii(u8[]: data) -&amp;gt; u16:&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Calculate a checksum of data using the CRC16-CCITT implementation of the Wii&lt;br /&gt;
&lt;br /&gt;
    This implementation uses 0x0000 as the starting value, which is different&lt;br /&gt;
    from what CRC16-CCITT specifies.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # note: a correct implementation of CRC16-CCITT&lt;br /&gt;
    #       would initialize this to 0xffff&lt;br /&gt;
    u32 crc := 0x0&lt;br /&gt;
&lt;br /&gt;
    for byte in data:&lt;br /&gt;
        # Iterate over every of the 8 bits in byte.&lt;br /&gt;
        # Begin with the most significant bit. (7, 6, ... , 1, 0)&lt;br /&gt;
        for bit in 7..0:&lt;br /&gt;
            # &amp;amp; - binary `and&#039;; &amp;lt;&amp;lt;/&amp;gt;&amp;gt; - bitshift left/right; ^ - binary `xor&#039;&lt;br /&gt;
            crc := (&lt;br /&gt;
                     (crc &amp;lt;&amp;lt; 1) | ((byte &amp;gt;&amp;gt; bit) &amp;amp; 0x1)&lt;br /&gt;
                     ^ (0x1021 if crc &amp;amp; 0x8000 else 0)&lt;br /&gt;
                   )&lt;br /&gt;
&lt;br /&gt;
    for _ in 0..15:&lt;br /&gt;
        crc := (crc &amp;lt;&amp;lt; 1) ^ (0x1021 if crc &amp;amp; 0x8000 else 0)&lt;br /&gt;
&lt;br /&gt;
    # only return the lowest 16 bit of crc&lt;br /&gt;
    return (u16) (crc &amp;amp; 0xffff)&lt;br /&gt;
&lt;br /&gt;
checksum := crc16_CCITTWii(miidb[0:0xc81e]) # checksum over the first 0xc81e bytes&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mii format==&lt;br /&gt;
&lt;br /&gt;
Note: 0x18-3B have been copied as-is from [https://www.3dbrew.org/w/index.php?title=Mii_Maker&amp;amp;oldid=11464 the QR code specification], so they&#039;re unverified.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Mii ID (see chapter)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x8&lt;br /&gt;
| System ID (identifies owner, for purpose of enforcing editing restrictions and blue pants).&amp;lt;br/&amp;gt;Is not tied to the MAC address anymore.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Specialness and date of creation (big-endian 32bit unsigned integer):&amp;lt;br/&amp;gt;Bit 0..27: (bit[0..27] * 2) = date of creation (seconds since 01/01/2010 00:00:00)&amp;lt;br/&amp;gt;Bit 31: not set iff Mii is special&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x6&lt;br /&gt;
| Creator&#039;s full MAC&lt;br /&gt;
|-&lt;br /&gt;
| 0x16&lt;br /&gt;
| 0x2&lt;br /&gt;
| Padding (0000)&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x2&lt;br /&gt;
| Bit-mapped: Birthday (4bit-day,5bit-month), Sex, Shirt color, Favorite (0x40 bit at 0x19)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A&lt;br /&gt;
| 0x14&lt;br /&gt;
| UTF-16 Mii Name (10 chars max, 0000 terminated)&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E&lt;br /&gt;
| 0x2&lt;br /&gt;
| width &amp;amp; height&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x1&lt;br /&gt;
| bit 0: disable sharing&amp;lt;br/&amp;gt;bit 1-4: face shape&amp;lt;br/&amp;gt;bit 5-7: skin color&lt;br /&gt;
|-&lt;br /&gt;
| 0x31&lt;br /&gt;
| 0x1&lt;br /&gt;
| bit 0-3: wrinkles&amp;lt;br/&amp;gt;bit 4-7: makeup&lt;br /&gt;
|-&lt;br /&gt;
| 0x32&lt;br /&gt;
| 0x1&lt;br /&gt;
| hair style&lt;br /&gt;
|-&lt;br /&gt;
| 0x33&lt;br /&gt;
| 0x1&lt;br /&gt;
| bit 0-2: hair color&amp;lt;br/&amp;gt;bit 3: flip hair&lt;br /&gt;
|-&lt;br /&gt;
| 0x34&lt;br /&gt;
| 0x4&lt;br /&gt;
| unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x1&lt;br /&gt;
| bit 0-4: eyebrow style&amp;lt;br/&amp;gt;bit 5-7: eyebrow color&lt;br /&gt;
|-&lt;br /&gt;
| 0x39&lt;br /&gt;
| 0x1&lt;br /&gt;
| bit 0-3: eyebrow scale&amp;lt;br/&amp;gt;bit 4-6: eyebrow yscale&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A&lt;br /&gt;
| 0x2&lt;br /&gt;
| note that the bytes are swapped over (little-endian layout)&amp;lt;br/&amp;gt;bit 0-3: eyebrow rotation&amp;lt;br/&amp;gt;bit 5-8: eyebrow x spacing&amp;lt;br/&amp;gt;bit 9-13: eyebrow y position&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C&lt;br /&gt;
| 0x4&lt;br /&gt;
| unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 0x1&lt;br /&gt;
| Allow Copying (?) (0D on 0E off 8D on)&lt;br /&gt;
|-&lt;br /&gt;
| 0x41&lt;br /&gt;
| 0x7&lt;br /&gt;
| unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x48&lt;br /&gt;
| 0x14&lt;br /&gt;
| UTF-16 Author Name (10 chars max, 0000 terminated)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Mii ID==&lt;br /&gt;
* Byte 0: generally equals 3 (category?)&lt;br /&gt;
* Byte 1: 0/1 = copying off/on&lt;br /&gt;
* Byte 2, most significant hex digit: position on page (0-9)&lt;br /&gt;
* Byte 2, least significant hex digit: page (0-9)&lt;br /&gt;
* Byte 3: generally 0x30 (always for user-created ones?)&lt;br /&gt;
&lt;br /&gt;
===Mii categories (pants colors)===&lt;br /&gt;
&lt;br /&gt;
====Special (gold) Miis====&lt;br /&gt;
Specialness will override any other color and make the Mii non-editable.&lt;br /&gt;
&lt;br /&gt;
Copying is rumored to have to be disabled.&lt;br /&gt;
&lt;br /&gt;
Zeroed system-id and timestamp?&lt;br /&gt;
&lt;br /&gt;
====Imported (blue) Miis====&lt;br /&gt;
Any (non-gold) Mii with a different System ID will appear as a foreign one.&lt;br /&gt;
&lt;br /&gt;
There is also a range of Mii IDs that are always foreign and uneditable, regardless of the System ID:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Regular (black/red) Miis====&lt;br /&gt;
Always editable, since they can only appear as such on the console that created them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Personal (red) Mii====&lt;br /&gt;
A red Mii that happens to be the first in the file!&lt;br /&gt;
&lt;br /&gt;
==Mii values==&lt;br /&gt;
Each of the following values were found with NTR Debugger:&lt;br /&gt;
If you want to access the value, grab the given &amp;quot;NTR address&amp;quot; and add 0x08815000.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Data&lt;br /&gt;
! NTR address&lt;br /&gt;
! Variation (hex)&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Face style&lt;br /&gt;
| 0x894&lt;br /&gt;
| 00-0B&lt;br /&gt;
| Not ordered as in editor, read below&lt;br /&gt;
|-&lt;br /&gt;
| Face color&lt;br /&gt;
| 0x898&lt;br /&gt;
| 00-05&lt;br /&gt;
| From top to bottom&lt;br /&gt;
|-&lt;br /&gt;
| Wrinkles&lt;br /&gt;
| 0x89C&lt;br /&gt;
| 00-0B&lt;br /&gt;
| Same order as displayed in editor&lt;br /&gt;
|-&lt;br /&gt;
| Makeup&lt;br /&gt;
| 0x8A0&lt;br /&gt;
| 00-0B&lt;br /&gt;
| Same order as displayed in editor&lt;br /&gt;
|-&lt;br /&gt;
| Hair style&lt;br /&gt;
| 0x8A4&lt;br /&gt;
| 00-84&lt;br /&gt;
| Not ordered as in editor, read below&lt;br /&gt;
|-&lt;br /&gt;
| Hair color&lt;br /&gt;
| 0x8A8&lt;br /&gt;
| 00-07&lt;br /&gt;
| From top to bottom&lt;br /&gt;
|-&lt;br /&gt;
| Hair flipped&lt;br /&gt;
| 0x8AC&lt;br /&gt;
| 1 if true&lt;br /&gt;
| From top to bottom&lt;br /&gt;
|-&lt;br /&gt;
| Eye style&lt;br /&gt;
| 0x8B0&lt;br /&gt;
| 00-3C&lt;br /&gt;
| Not ordered as in editor, read below&lt;br /&gt;
|-&lt;br /&gt;
| Eyes color&lt;br /&gt;
| 0x8B4&lt;br /&gt;
| 00-05&lt;br /&gt;
| From top to bottom&lt;br /&gt;
|-&lt;br /&gt;
| Eyes size&lt;br /&gt;
| 0x8B8&lt;br /&gt;
| 07-00&lt;br /&gt;
| Left button increases value.&lt;br /&gt;
|-&lt;br /&gt;
| Eyes thickness&lt;br /&gt;
| 0x8BC&lt;br /&gt;
| 06-00&lt;br /&gt;
| Left button increases value.&lt;br /&gt;
|-&lt;br /&gt;
| Eyes rotation&lt;br /&gt;
| 0x8C0&lt;br /&gt;
| 00-07&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Eyes spacing&lt;br /&gt;
| 0x8C4&lt;br /&gt;
| 00-0C&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Eyes height&lt;br /&gt;
| 0x8C8&lt;br /&gt;
| 00-12&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Eyebrows style&lt;br /&gt;
| 0x8CC&lt;br /&gt;
| 00-18&lt;br /&gt;
| Not ordered as in editor, read below&lt;br /&gt;
|-&lt;br /&gt;
| Eyebrows color&lt;br /&gt;
| 0x8D0&lt;br /&gt;
| 00-07&lt;br /&gt;
| From top to bottom&lt;br /&gt;
|-&lt;br /&gt;
| Eyebrows size&lt;br /&gt;
| 0x8D4&lt;br /&gt;
| 08-00&lt;br /&gt;
| Left button increases value.&lt;br /&gt;
|-&lt;br /&gt;
| Eyebrows thickness&lt;br /&gt;
| 0x8D8&lt;br /&gt;
| 06-00&lt;br /&gt;
| Left button increases value.&lt;br /&gt;
|-&lt;br /&gt;
| Eyebrows rotation&lt;br /&gt;
| 0x8DC&lt;br /&gt;
| 00-0B&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Eyebrows spacing&lt;br /&gt;
| 0x8E0&lt;br /&gt;
| 00-0C&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Eyebrows height&lt;br /&gt;
| 0x8E4&lt;br /&gt;
| 03-12&lt;br /&gt;
| Yup, minimum is 0x03&lt;br /&gt;
|-&lt;br /&gt;
| Nose style&lt;br /&gt;
| 0x8E8&lt;br /&gt;
| 00-11&lt;br /&gt;
| Not ordered as in editor, read below&lt;br /&gt;
|-&lt;br /&gt;
| Nose size&lt;br /&gt;
| 0x8EC&lt;br /&gt;
| 08-00&lt;br /&gt;
| Left button increases value.&lt;br /&gt;
|-&lt;br /&gt;
| Nose height&lt;br /&gt;
| 0x8F0&lt;br /&gt;
| 00-12&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Mouth style&lt;br /&gt;
| 0x8F4&lt;br /&gt;
| 00-23&lt;br /&gt;
| Not ordered as in editor, read below&lt;br /&gt;
|-&lt;br /&gt;
| Mouth color&lt;br /&gt;
| 0x8F8&lt;br /&gt;
| 00-04&lt;br /&gt;
| From top to bottom.&lt;br /&gt;
|-&lt;br /&gt;
| Mouth size&lt;br /&gt;
| 0x8FC&lt;br /&gt;
| 08-00&lt;br /&gt;
| Left button increases value.&lt;br /&gt;
|-&lt;br /&gt;
| Mouth thickness&lt;br /&gt;
| 0x900&lt;br /&gt;
| 06-00&lt;br /&gt;
| Left button increases value.&lt;br /&gt;
|-&lt;br /&gt;
| Mouth height&lt;br /&gt;
| 0x904&lt;br /&gt;
| 00-12&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Mustache style&lt;br /&gt;
| 0x908&lt;br /&gt;
| 00-05&lt;br /&gt;
| Order like in editor.&lt;br /&gt;
|-&lt;br /&gt;
| Beard style&lt;br /&gt;
| 0x90C&lt;br /&gt;
| 00-05&lt;br /&gt;
| Order like in editor.&lt;br /&gt;
|-&lt;br /&gt;
| Mustache/Beard color&lt;br /&gt;
| 0x910&lt;br /&gt;
| 00-07&lt;br /&gt;
| From top to button.&lt;br /&gt;
|-&lt;br /&gt;
| Mustache size&lt;br /&gt;
| 0x914&lt;br /&gt;
| 08-00&lt;br /&gt;
| Left button increases value.&lt;br /&gt;
|-&lt;br /&gt;
| Mustache height&lt;br /&gt;
| 0x918&lt;br /&gt;
| 00-10&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Glasses style&lt;br /&gt;
| 0x91C&lt;br /&gt;
| 00-08&lt;br /&gt;
| Order like in editor.&lt;br /&gt;
|-&lt;br /&gt;
| Glasses color&lt;br /&gt;
| 0x920&lt;br /&gt;
| 00-05&lt;br /&gt;
| From top to bottom&lt;br /&gt;
|-&lt;br /&gt;
| Glasses size&lt;br /&gt;
| 0x924&lt;br /&gt;
| 07-00&lt;br /&gt;
| Left button increases value.&lt;br /&gt;
|-&lt;br /&gt;
| Glasses height&lt;br /&gt;
| 0x928&lt;br /&gt;
| 00-14&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Mole enable&lt;br /&gt;
| 0x92C&lt;br /&gt;
| 1 if enabled, 0 else.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Mole size&lt;br /&gt;
| 0x930&lt;br /&gt;
| 08-00&lt;br /&gt;
| Left button increases value.&lt;br /&gt;
|-&lt;br /&gt;
| Mole horiz pos&lt;br /&gt;
| 0x934&lt;br /&gt;
| 00-10&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Mole vert pos&lt;br /&gt;
| 0x938&lt;br /&gt;
| 00-1E&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Mii height&lt;br /&gt;
| 0x93C&lt;br /&gt;
| 00-7F&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Mii weight&lt;br /&gt;
| 0x940&lt;br /&gt;
| 00-7F&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Mii name&lt;br /&gt;
| 0x944-0x959&lt;br /&gt;
| UTF-16&lt;br /&gt;
| Terminated with 0x0000. Not updated immediatly?&lt;br /&gt;
|-&lt;br /&gt;
| Creator&#039;s name&lt;br /&gt;
| 0x95A-96F&lt;br /&gt;
| UTF-16&lt;br /&gt;
| Terminated with 0x0000. Not updated immediatly?&lt;br /&gt;
|-&lt;br /&gt;
| Mii gender&lt;br /&gt;
| 0x970&lt;br /&gt;
| 0: Male, 1: Female&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Birthdate month&lt;br /&gt;
| 0x974&lt;br /&gt;
| 01-0C&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Birthdate day&lt;br /&gt;
| 0x978&lt;br /&gt;
| 01-1F&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Mii shirt color&lt;br /&gt;
| 0x97C&lt;br /&gt;
| 00-0B&lt;br /&gt;
| Ordered like in editor.&lt;br /&gt;
|-&lt;br /&gt;
| Favorite&lt;br /&gt;
| 0x980&lt;br /&gt;
| 0: false, 1: true&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Allow copy&lt;br /&gt;
| 0x981&lt;br /&gt;
| 0: false, 1: true&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Unused byte?&lt;br /&gt;
| 0x982&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Allow sharing&lt;br /&gt;
| 0x983&lt;br /&gt;
| 0: true, 1: false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ???&lt;br /&gt;
| 0x984-0x98F&lt;br /&gt;
| All zero?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ???&lt;br /&gt;
| 0x990-0x997&lt;br /&gt;
| 4?&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
0x08815998: Same 4 bytes as encrypted Mii: first 4 bits for Mii type, 4 next for number of seconds since 01/01/2010 00:00:00 UTC+3 (should be verified by other country and region 3DS) divided by 2.&lt;br /&gt;
0x0881599C: 6 bytes of MAC address of the 3DS that created the Mii.&lt;br /&gt;
0x088159A2: 6 unknow uses bytes&lt;br /&gt;
0x088159A8: Same 8 bytes as decrypted Mii at 0x04 through 0x0B. Seems NAND specific, kept the same on Miis created on same NAND but different 3DS via System Transfer. Might be a coincidence but the two first bytes are in ID0 folder name in the Nintendo 3DS folder.&lt;br /&gt;
&lt;br /&gt;
===Mapped Editor &amp;lt;-&amp;gt; Hex values===&lt;br /&gt;
&lt;br /&gt;
Most of the values are ordered (left button decreases, right increases, color choices are top to bottom...) but for most &amp;quot;main&amp;quot; part of the UI, where you choose the style of the part being edited, hex values has no correlation with displayed order.&lt;br /&gt;
Here is a JSON that can go from a Part, a Page and Position to the right hex value. This is 0 indexed (eg: datas[&amp;quot;face&amp;quot;][0][11]).&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{&lt;br /&gt;
face: [&lt;br /&gt;
    0x00,0x01,0x08,&lt;br /&gt;
    0x02,0x03,0x09,&lt;br /&gt;
    0x04,0x05,0x0a,&lt;br /&gt;
    0x06,0x07,0x0b&lt;br /&gt;
],&lt;br /&gt;
hairs: [&lt;br /&gt;
    [0x21,0x2f,0x28,&lt;br /&gt;
    0x25,0x20,0x6b,&lt;br /&gt;
    0x30,0x33,0x37,&lt;br /&gt;
    0x46,0x2c,0x42],&lt;br /&gt;
    [0x34,0x32,0x26,&lt;br /&gt;
    0x31,0x2b,0x1f,&lt;br /&gt;
    0x38,0x44,0x3e,&lt;br /&gt;
    0x73,0x4c,0x77],&lt;br /&gt;
    [0x40,0x51,0x74,&lt;br /&gt;
    0x79,0x16,0x3a,&lt;br /&gt;
    0x3c,0x57,0x7d,&lt;br /&gt;
    0x75,0x49,0x4b],&lt;br /&gt;
    [0x2a,0x59,0x39,&lt;br /&gt;
    0x36,0x50,0x22,&lt;br /&gt;
    0x17,0x56,0x58,&lt;br /&gt;
    0x76,0x27,0x24],&lt;br /&gt;
    [0x2d,0x43,0x3b,&lt;br /&gt;
    0x41,0x29,0x1e,&lt;br /&gt;
    0x0c,0x10,0x0a,&lt;br /&gt;
    0x52,0x80,0x81],&lt;br /&gt;
    [0x0e,0x5f,0x69,&lt;br /&gt;
    0x64,0x06,0x14,&lt;br /&gt;
    0x5d,0x66,0x1b,&lt;br /&gt;
    0x04,0x11,0x6e]&lt;br /&gt;
    [0x7b,0x08,0x6a,&lt;br /&gt;
    0x48,0x03,0x15,&lt;br /&gt;
    0x00,0x62,0x3f,&lt;br /&gt;
    0x5a,0x0b,0x78],&lt;br /&gt;
    [0x05,0x4a,0x6c,&lt;br /&gt;
    0x5e,0x7c,0x19,&lt;br /&gt;
    0x63,0x45,0x23,&lt;br /&gt;
    0x0d,0x7a,0x71],&lt;br /&gt;
    [0x35,0x18,0x55,&lt;br /&gt;
    0x53,0x47,0x83,&lt;br /&gt;
    0x60,0x65,0x1d,&lt;br /&gt;
    0x07,0x0f,0x70],&lt;br /&gt;
    [0x4f,0x01,0x6d,&lt;br /&gt;
    0x7f,0x5b,0x1a,&lt;br /&gt;
    0x3d,0x67,0x02,&lt;br /&gt;
    0x4d,0x12,0x5c],&lt;br /&gt;
    [0x54,0x09,0x13,&lt;br /&gt;
    0x82,0x61,0x68,&lt;br /&gt;
    0x2e,0x4e,0x1c,&lt;br /&gt;
    0x72,0x7e,0x6f]&lt;br /&gt;
],&lt;br /&gt;
eyebrows: [&lt;br /&gt;
    [0x06,0x00,0x0c,&lt;br /&gt;
    0x01,0x09,0x13,&lt;br /&gt;
    0x07,0x15,0x08,&lt;br /&gt;
    0x11,0x05,0x04],&lt;br /&gt;
    [0x0b,0x0a,0x02,&lt;br /&gt;
    0x03,0x0e,0x14,&lt;br /&gt;
    0x0f,0x0d,0x16,&lt;br /&gt;
    0x12,0x10,0x17]&lt;br /&gt;
],&lt;br /&gt;
nose: [&lt;br /&gt;
    [0x01,0x0a,0x02,&lt;br /&gt;
    0x03,0x06,0x00,&lt;br /&gt;
    0x05,0x04,0x08,&lt;br /&gt;
    0x09,0x07,0x0B],&lt;br /&gt;
    [0x0d,0x0e,0x0c,&lt;br /&gt;
    0x11,0x10,0x0f]&lt;br /&gt;
],&lt;br /&gt;
mouth: [&lt;br /&gt;
    [0x17,0x01,0x13,&lt;br /&gt;
    0x15,0x16,0x05,&lt;br /&gt;
    0x00,0x08,0x0a,&lt;br /&gt;
    0x10,0x06,0x0d],&lt;br /&gt;
    [0x07,0x09,0x02,&lt;br /&gt;
    0x11,0x03,0x04,&lt;br /&gt;
    0x0f,0x0b,0x14,&lt;br /&gt;
    0x12,0x0e,0x0c],&lt;br /&gt;
    [0x1b,0x1e,0x18,&lt;br /&gt;
    0x19,0x1d,0x1c,&lt;br /&gt;
    0x1a,0x23,0x1f,&lt;br /&gt;
    0x22,0x21,0x20]&lt;br /&gt;
]&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phijor</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Mii&amp;diff=18321</id>
		<title>Mii</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Mii&amp;diff=18321"/>
		<updated>2016-09-29T15:59:20Z</updated>

		<summary type="html">&lt;p&gt;Phijor: Add checksum section: explain the checksum algorithm using pseudo code.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originally [http://wiibrew.org/wiki/Mii_Data created for the Nintendo Wii] (and backported to a selection of DS/i games), the &#039;&#039;&#039;Mii&#039;&#039;&#039; format was expanded with a larger selection of facial features and a new &amp;quot;copying&amp;quot; permission for the 3DS family, and later implemented as-is on Wii U.&lt;br /&gt;
&lt;br /&gt;
See [[Mii Maker]] for the application chiefly designed to create, edit, delete, and trade Miis or convert them from and to a QR code.&lt;br /&gt;
&lt;br /&gt;
==Mii Database==&lt;br /&gt;
Format of the Mii main database &#039;&#039;&#039;CFL_DB.dat&#039;&#039;&#039;, found in [[Extdata#NAND_Shared_Extdata|shared extdata]] archive f0000000b.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Header &amp;quot;CFOG&amp;quot; (Mii Maker section)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Header 0x00010000&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x23F7&lt;br /&gt;
| Array of owned (saved in Mii Maker) Miis. Order in file is unrelated to canonical order in-app.&lt;br /&gt;
|-&lt;br /&gt;
| 0x23FC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Header &amp;quot;CFHE&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x23F8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Header 0xFFFFFFFF&lt;br /&gt;
|-&lt;br /&gt;
| 0x2400&lt;br /&gt;
| 0xA41E&lt;br /&gt;
| Array of objects? See chapter&lt;br /&gt;
|-&lt;br /&gt;
| 0xC81E&lt;br /&gt;
| 0x2&lt;br /&gt;
| Checksum of all of the above (the first 0xC81E byte). See section [[#Checksum|below]].&lt;br /&gt;
|-&lt;br /&gt;
| 0xC820&lt;br /&gt;
| 0x4&lt;br /&gt;
| Header &amp;quot;CFRA&amp;quot; (Invitations section)&lt;br /&gt;
|-&lt;br /&gt;
| 0xC824&lt;br /&gt;
| 0x4&lt;br /&gt;
| Header? 0x39000000&lt;br /&gt;
|-&lt;br /&gt;
| 0xC861&lt;br /&gt;
| 0x2B&lt;br /&gt;
| Weird padding? 0x00&lt;br /&gt;
|-&lt;br /&gt;
| 0xC88C&lt;br /&gt;
| 0x1C20 (?)&lt;br /&gt;
| Array of Miis contributed from games, used for Mii Plaza &amp;quot;invitations&amp;quot; feature.&amp;lt;br/&amp;gt;The format isn&#039;t that of a full Mii.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE4AC&lt;br /&gt;
| 0x14&lt;br /&gt;
| 01 00 [..] 00 D2 74&lt;br /&gt;
|-&lt;br /&gt;
| 0xE4C0&lt;br /&gt;
| 0x3D860&lt;br /&gt;
| Empty (00)&lt;br /&gt;
|}&lt;br /&gt;
When encrypted in QR codes, 4 additional bytes are added. Two null bytes and a CRC-16. It&#039;s the exact same CRC-16 as for the Wii blocks on the 0x5e first bytes. It seems that the CRC is ignored, the Mii Maker expecting the result of APT:Unwrap to detect integrity loss.&lt;br /&gt;
&lt;br /&gt;
==CFHE object==&lt;br /&gt;
&lt;br /&gt;
A 0xE-byte long item.&lt;br /&gt;
&lt;br /&gt;
On my database, they&#039;re all 0000 0000 0000 0000 0000 FF7F FF7F.&lt;br /&gt;
&lt;br /&gt;
Wild speculation: blacklist of already scanned celebrity (gold) Mii QRs?&lt;br /&gt;
&lt;br /&gt;
Alternative interpretation: FFFF FFFF 0000 0000 0000 0000 0000 is the 1st item;  FF7F FF7F 0000 [...] the 2nd, etc;&lt;br /&gt;
&lt;br /&gt;
==Checksum==&lt;br /&gt;
&lt;br /&gt;
The algorithm used to verify the integrity of the database is based on [http://srecord.sourceforge.net/crc16-ccitt.html CRC16-CCITT], though it&#039;s an incorrect implementation. It is the same algorithm used to verify [http://wiibrew.org/wiki/Mii_Data#Block_format Mii Data on the Wii].&lt;br /&gt;
&lt;br /&gt;
To obtain the correct value for the checksum, apply the algorithm to the first 0xC81E bytes of the database. This can be done using [https://www.dropbox.com/s/863idp5wmh50c1v/Gold_Mii_Tools.zip?dl=0 FixCRC for Windows]; alternativly a pseudocode implementation of the checksum algorithm is given below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def crc16_CCITTWii(u8[]: data) -&amp;gt; u16:&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Calculate a checksum of data using the CRC16-CCITT implementation of the Wii&lt;br /&gt;
&lt;br /&gt;
    This implementation uses 0x0000 as the starting value, which is different&lt;br /&gt;
    from what CRC16-CCITT specifies.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # note: a correct implementation of CRC16-CCITT&lt;br /&gt;
    #       would initialize this to 0xffff&lt;br /&gt;
    u32 crc := 0x0&lt;br /&gt;
&lt;br /&gt;
    for byte in data:&lt;br /&gt;
        # Iterate over every of the 8 bits in byte.&lt;br /&gt;
        # Begin with the most significant bit. (7, 6, ... , 1, 0)&lt;br /&gt;
        for bit in 7..0:&lt;br /&gt;
            # &amp;amp; - binary `and&#039;; &amp;lt;&amp;lt;/&amp;gt;&amp;gt; - bitshift left/right; ^ - binary `xor&#039;&lt;br /&gt;
            crc := (&lt;br /&gt;
                     (crc &amp;lt;&amp;lt; 1) | ((byte &amp;gt;&amp;gt; bit) &amp;amp; 0x1)&lt;br /&gt;
                     ^ (0x1021 if crc &amp;amp; 0x8000 else 0)&lt;br /&gt;
                   )&lt;br /&gt;
&lt;br /&gt;
    for _ in 0..15:&lt;br /&gt;
        crc := (crc &amp;lt;&amp;lt; 1) ^ (0x1021 if crc &amp;amp; 0x8000 else 0)&lt;br /&gt;
&lt;br /&gt;
    # only return the lowest 16 bit of crc&lt;br /&gt;
    return (u16) (crc &amp;amp; 0xffff)&lt;br /&gt;
&lt;br /&gt;
checksum := crc16_CCITTWii(miidb[0:0xc81e]) # checksum over the first 0xc81e bytes&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mii format==&lt;br /&gt;
&lt;br /&gt;
Note: 0x18-3B have been copied as-is from [https://www.3dbrew.org/w/index.php?title=Mii_Maker&amp;amp;oldid=11464 the QR code specification], so they&#039;re unverified.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Mii ID (see chapter)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x8&lt;br /&gt;
| System ID (identifies owner, for purpose of enforcing editing restrictions and blue pants).&amp;lt;br/&amp;gt;Is not tied to the MAC address anymore.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x2&lt;br /&gt;
| Unknown (related to user-controllable variables)&lt;br /&gt;
|-&lt;br /&gt;
| 0xD&lt;br /&gt;
| 0x2&lt;br /&gt;
| unknown; variable (range A-F may alternatively be a timestamp?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x6&lt;br /&gt;
| Creator&#039;s full MAC&lt;br /&gt;
|-&lt;br /&gt;
| 0x16&lt;br /&gt;
| 0x2&lt;br /&gt;
| Padding (0000)&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x2&lt;br /&gt;
| Bit-mapped: Birthday (4bit-day,5bit-month), Sex, Shirt color, Favorite (0x40 bit at 0x19)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A&lt;br /&gt;
| 0x14&lt;br /&gt;
| UTF-16 Mii Name (10 chars max, 0000 terminated)&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E&lt;br /&gt;
| 0x2&lt;br /&gt;
| width &amp;amp; height&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x1&lt;br /&gt;
| bit 0: disable sharing&amp;lt;br/&amp;gt;bit 1-4: face shape&amp;lt;br/&amp;gt;bit 5-7: skin color&lt;br /&gt;
|-&lt;br /&gt;
| 0x31&lt;br /&gt;
| 0x1&lt;br /&gt;
| bit 0-3: wrinkles&amp;lt;br/&amp;gt;bit 4-7: makeup&lt;br /&gt;
|-&lt;br /&gt;
| 0x32&lt;br /&gt;
| 0x1&lt;br /&gt;
| hair style&lt;br /&gt;
|-&lt;br /&gt;
| 0x33&lt;br /&gt;
| 0x1&lt;br /&gt;
| bit 0-2: hair color&amp;lt;br/&amp;gt;bit 3: flip hair&lt;br /&gt;
|-&lt;br /&gt;
| 0x34&lt;br /&gt;
| 0x4&lt;br /&gt;
| unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x1&lt;br /&gt;
| bit 0-4: eyebrow style&amp;lt;br/&amp;gt;bit 5-7: eyebrow color&lt;br /&gt;
|-&lt;br /&gt;
| 0x39&lt;br /&gt;
| 0x1&lt;br /&gt;
| bit 0-3: eyebrow scale&amp;lt;br/&amp;gt;bit 4-6: eyebrow yscale&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A&lt;br /&gt;
| 0x2&lt;br /&gt;
| note that the bytes are swapped over (little-endian layout)&amp;lt;br/&amp;gt;bit 0-3: eyebrow rotation&amp;lt;br/&amp;gt;bit 5-8: eyebrow x spacing&amp;lt;br/&amp;gt;bit 9-13: eyebrow y position&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C&lt;br /&gt;
| 0x4&lt;br /&gt;
| unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 0x1&lt;br /&gt;
| Allow Copying (?) (0D on 0E off 8D on)&lt;br /&gt;
|-&lt;br /&gt;
| 0x41&lt;br /&gt;
| 0x7&lt;br /&gt;
| unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x48&lt;br /&gt;
| 0x14&lt;br /&gt;
| UTF-16 Author Name (10 chars max, 0000 terminated)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Mii ID==&lt;br /&gt;
* Byte 0: generally equals 3 (category?)&lt;br /&gt;
* Byte 1: 0/1 = copying off/on&lt;br /&gt;
* Byte 2, most significant hex digit: position on page (0-9)&lt;br /&gt;
* Byte 2, least significant hex digit: page (0-9)&lt;br /&gt;
* Byte 3: generally 0x30 (always for user-created ones?)&lt;br /&gt;
&lt;br /&gt;
===Mii categories (pants colors)===&lt;br /&gt;
&lt;br /&gt;
====Special (gold) Miis====&lt;br /&gt;
Specialness will override any other color and make the Mii non-editable.&lt;br /&gt;
&lt;br /&gt;
Copying is rumored to have to be disabled.&lt;br /&gt;
&lt;br /&gt;
Zeroed system-id and timestamp?&lt;br /&gt;
&lt;br /&gt;
====Imported (blue) Miis====&lt;br /&gt;
Any (non-gold) Mii with a different System ID will appear as a foreign one.&lt;br /&gt;
&lt;br /&gt;
There is also a range of Mii IDs that are always foreign and uneditable, regardless of the System ID:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Regular (black/red) Miis====&lt;br /&gt;
Always editable, since they can only appear as such on the console that created them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Personal (red) Mii====&lt;br /&gt;
A red Mii that happens to be the first in the file!&lt;br /&gt;
&lt;br /&gt;
==Mii values==&lt;br /&gt;
Each of the following values were found with NTR Debugger:&lt;br /&gt;
If you want to access the value, grab the given &amp;quot;NTR address&amp;quot; and add 0x08815000.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Data&lt;br /&gt;
! NTR address&lt;br /&gt;
! Variation (hex)&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Face style&lt;br /&gt;
| 0x894&lt;br /&gt;
| 00-0B&lt;br /&gt;
| Not ordered as in editor, read below&lt;br /&gt;
|-&lt;br /&gt;
| Face color&lt;br /&gt;
| 0x898&lt;br /&gt;
| 00-05&lt;br /&gt;
| From top to bottom&lt;br /&gt;
|-&lt;br /&gt;
| Wrinkles&lt;br /&gt;
| 0x89C&lt;br /&gt;
| 00-0B&lt;br /&gt;
| Same order as displayed in editor&lt;br /&gt;
|-&lt;br /&gt;
| Makeup&lt;br /&gt;
| 0x8A0&lt;br /&gt;
| 00-0B&lt;br /&gt;
| Same order as displayed in editor&lt;br /&gt;
|-&lt;br /&gt;
| Hair style&lt;br /&gt;
| 0x8A4&lt;br /&gt;
| 00-84&lt;br /&gt;
| Not ordered as in editor, read below&lt;br /&gt;
|-&lt;br /&gt;
| Hair color&lt;br /&gt;
| 0x8A8&lt;br /&gt;
| 00-07&lt;br /&gt;
| From top to bottom&lt;br /&gt;
|-&lt;br /&gt;
| Hair flipped&lt;br /&gt;
| 0x8AC&lt;br /&gt;
| 1 if true&lt;br /&gt;
| From top to bottom&lt;br /&gt;
|-&lt;br /&gt;
| Eye style&lt;br /&gt;
| 0x8B0&lt;br /&gt;
| 00-3C&lt;br /&gt;
| Not ordered as in editor, read below&lt;br /&gt;
|-&lt;br /&gt;
| Eyes color&lt;br /&gt;
| 0x8B4&lt;br /&gt;
| 00-05&lt;br /&gt;
| From top to bottom&lt;br /&gt;
|-&lt;br /&gt;
| Eyes size&lt;br /&gt;
| 0x8B8&lt;br /&gt;
| 07-00&lt;br /&gt;
| Left button increases value.&lt;br /&gt;
|-&lt;br /&gt;
| Eyes thickness&lt;br /&gt;
| 0x8BC&lt;br /&gt;
| 06-00&lt;br /&gt;
| Left button increases value.&lt;br /&gt;
|-&lt;br /&gt;
| Eyes rotation&lt;br /&gt;
| 0x8C0&lt;br /&gt;
| 00-07&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Eyes spacing&lt;br /&gt;
| 0x8C4&lt;br /&gt;
| 00-0C&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Eyes height&lt;br /&gt;
| 0x8C8&lt;br /&gt;
| 00-12&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Eyebrows style&lt;br /&gt;
| 0x8CC&lt;br /&gt;
| 00-18&lt;br /&gt;
| Not ordered as in editor, read below&lt;br /&gt;
|-&lt;br /&gt;
| Eyebrows color&lt;br /&gt;
| 0x8D0&lt;br /&gt;
| 00-07&lt;br /&gt;
| From top to bottom&lt;br /&gt;
|-&lt;br /&gt;
| Eyebrows size&lt;br /&gt;
| 0x8D4&lt;br /&gt;
| 08-00&lt;br /&gt;
| Left button increases value.&lt;br /&gt;
|-&lt;br /&gt;
| Eyebrows thickness&lt;br /&gt;
| 0x8D8&lt;br /&gt;
| 06-00&lt;br /&gt;
| Left button increases value.&lt;br /&gt;
|-&lt;br /&gt;
| Eyebrows rotation&lt;br /&gt;
| 0x8DC&lt;br /&gt;
| 00-0B&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Eyebrows spacing&lt;br /&gt;
| 0x8E0&lt;br /&gt;
| 00-0C&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Eyebrows height&lt;br /&gt;
| 0x8E4&lt;br /&gt;
| 03-12&lt;br /&gt;
| Yup, minimum is 0x03&lt;br /&gt;
|-&lt;br /&gt;
| Nose style&lt;br /&gt;
| 0x8E8&lt;br /&gt;
| 00-11&lt;br /&gt;
| Not ordered as in editor, read below&lt;br /&gt;
|-&lt;br /&gt;
| Nose size&lt;br /&gt;
| 0x8EC&lt;br /&gt;
| 08-00&lt;br /&gt;
| Left button increases value.&lt;br /&gt;
|-&lt;br /&gt;
| Nose height&lt;br /&gt;
| 0x8F0&lt;br /&gt;
| 00-12&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Mouth style&lt;br /&gt;
| 0x8F4&lt;br /&gt;
| 00-23&lt;br /&gt;
| Not ordered as in editor, read below&lt;br /&gt;
|-&lt;br /&gt;
| Mouth color&lt;br /&gt;
| 0x8F8&lt;br /&gt;
| 00-04&lt;br /&gt;
| From top to bottom.&lt;br /&gt;
|-&lt;br /&gt;
| Mouth size&lt;br /&gt;
| 0x8FC&lt;br /&gt;
| 08-00&lt;br /&gt;
| Left button increases value.&lt;br /&gt;
|-&lt;br /&gt;
| Mouth thickness&lt;br /&gt;
| 0x900&lt;br /&gt;
| 06-00&lt;br /&gt;
| Left button increases value.&lt;br /&gt;
|-&lt;br /&gt;
| Mouth height&lt;br /&gt;
| 0x904&lt;br /&gt;
| 00-12&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Mustache style&lt;br /&gt;
| 0x908&lt;br /&gt;
| 00-05&lt;br /&gt;
| Order like in editor.&lt;br /&gt;
|-&lt;br /&gt;
| Beard style&lt;br /&gt;
| 0x90C&lt;br /&gt;
| 00-05&lt;br /&gt;
| Order like in editor.&lt;br /&gt;
|-&lt;br /&gt;
| Mustache/Beard color&lt;br /&gt;
| 0x910&lt;br /&gt;
| 00-07&lt;br /&gt;
| From top to button.&lt;br /&gt;
|-&lt;br /&gt;
| Mustache size&lt;br /&gt;
| 0x914&lt;br /&gt;
| 08-00&lt;br /&gt;
| Left button increases value.&lt;br /&gt;
|-&lt;br /&gt;
| Mustache height&lt;br /&gt;
| 0x918&lt;br /&gt;
| 00-10&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Glasses style&lt;br /&gt;
| 0x91C&lt;br /&gt;
| 00-08&lt;br /&gt;
| Order like in editor.&lt;br /&gt;
|-&lt;br /&gt;
| Glasses color&lt;br /&gt;
| 0x920&lt;br /&gt;
| 00-05&lt;br /&gt;
| From top to bottom&lt;br /&gt;
|-&lt;br /&gt;
| Glasses size&lt;br /&gt;
| 0x924&lt;br /&gt;
| 07-00&lt;br /&gt;
| Left button increases value.&lt;br /&gt;
|-&lt;br /&gt;
| Glasses height&lt;br /&gt;
| 0x928&lt;br /&gt;
| 00-14&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Mole enable&lt;br /&gt;
| 0x92C&lt;br /&gt;
| 1 if enabled, 0 else.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Mole size&lt;br /&gt;
| 0x930&lt;br /&gt;
| 08-00&lt;br /&gt;
| Left button increases value.&lt;br /&gt;
|-&lt;br /&gt;
| Mole horiz pos&lt;br /&gt;
| 0x934&lt;br /&gt;
| 00-10&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Mole vert pos&lt;br /&gt;
| 0x938&lt;br /&gt;
| 00-1E&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Mii height&lt;br /&gt;
| 0x93C&lt;br /&gt;
| 00-7F&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Mii weight&lt;br /&gt;
| 0x940&lt;br /&gt;
| 00-7F&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Mii name&lt;br /&gt;
| 0x944-0x959&lt;br /&gt;
| UTF-16&lt;br /&gt;
| Terminated with 0x0000. Not updated immediatly?&lt;br /&gt;
|-&lt;br /&gt;
| Creator&#039;s name&lt;br /&gt;
| 0x95A-96F&lt;br /&gt;
| UTF-16&lt;br /&gt;
| Terminated with 0x0000. Not updated immediatly?&lt;br /&gt;
|-&lt;br /&gt;
| Mii gender&lt;br /&gt;
| 0x970&lt;br /&gt;
| 0: Male, 1: Female&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Birthdate month&lt;br /&gt;
| 0x974&lt;br /&gt;
| 01-0C&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Birthdate day&lt;br /&gt;
| 0x978&lt;br /&gt;
| 01-1F&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Mii shirt color&lt;br /&gt;
| 0x97C&lt;br /&gt;
| 00-0B&lt;br /&gt;
| Ordered like in editor.&lt;br /&gt;
|-&lt;br /&gt;
| Favorite&lt;br /&gt;
| 0x980&lt;br /&gt;
| 0: false, 1: true&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Allow copy&lt;br /&gt;
| 0x981&lt;br /&gt;
| 0: false, 1: true&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Unused byte?&lt;br /&gt;
| 0x982&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Allow sharing&lt;br /&gt;
| 0x983&lt;br /&gt;
| 0: true, 1: false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ???&lt;br /&gt;
| 0x984-0x98F&lt;br /&gt;
| All zero?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ???&lt;br /&gt;
| 0x990-0x997&lt;br /&gt;
| 4?&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
0x08815998: Same 4 bytes as encrypted Mii: first 4 bits for Mii type, 4 next for number of seconds since 01/01/2010 00:00:00 UTC+3 (should be verified by other country and region 3DS) divided by 2.&lt;br /&gt;
0x0881599C: 6 bytes of MAC address of the 3DS that created the Mii.&lt;br /&gt;
0x088159A2: 6 unknow uses bytes&lt;br /&gt;
0x088159A8: Same 8 bytes as decrypted Mii at 0x04 through 0x0B. Seems NAND specific, kept the same on Miis created on same NAND but different 3DS via System Transfer. Might be a coincidence but the two first bytes are in ID0 folder name in the Nintendo 3DS folder.&lt;br /&gt;
&lt;br /&gt;
===Mapped Editor &amp;lt;-&amp;gt; Hex values===&lt;br /&gt;
&lt;br /&gt;
Most of the values are ordered (left button decreases, right increases, color choices are top to bottom...) but for most &amp;quot;main&amp;quot; part of the UI, where you choose the style of the part being edited, hex values has no correlation with displayed order.&lt;br /&gt;
Here is a JSON that can go from a Part, a Page and Position to the right hex value. This is 0 indexed (eg: datas[&amp;quot;face&amp;quot;][0][11]).&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{&lt;br /&gt;
face: [&lt;br /&gt;
    0x00,0x01,0x08,&lt;br /&gt;
    0x02,0x03,0x09,&lt;br /&gt;
    0x04,0x05,0x0a,&lt;br /&gt;
    0x06,0x07,0x0b&lt;br /&gt;
],&lt;br /&gt;
hairs: [&lt;br /&gt;
    [0x21,0x2f,0x28,&lt;br /&gt;
    0x25,0x20,0x6b,&lt;br /&gt;
    0x30,0x33,0x37,&lt;br /&gt;
    0x46,0x2c,0x42],&lt;br /&gt;
    [0x34,0x32,0x26,&lt;br /&gt;
    0x31,0x2b,0x1f,&lt;br /&gt;
    0x38,0x44,0x3e,&lt;br /&gt;
    0x73,0x4c,0x77],&lt;br /&gt;
    [0x40,0x51,0x74,&lt;br /&gt;
    0x79,0x16,0x3a,&lt;br /&gt;
    0x3c,0x57,0x7d,&lt;br /&gt;
    0x75,0x49,0x4b],&lt;br /&gt;
    [0x2a,0x59,0x39,&lt;br /&gt;
    0x36,0x50,0x22,&lt;br /&gt;
    0x17,0x56,0x58,&lt;br /&gt;
    0x76,0x27,0x24],&lt;br /&gt;
    [0x2d,0x43,0x3b,&lt;br /&gt;
    0x41,0x29,0x1e,&lt;br /&gt;
    0x0c,0x10,0x0a,&lt;br /&gt;
    0x52,0x80,0x81],&lt;br /&gt;
    [0x0e,0x5f,0x69,&lt;br /&gt;
    0x64,0x06,0x14,&lt;br /&gt;
    0x5d,0x66,0x1b,&lt;br /&gt;
    0x04,0x11,0x6e]&lt;br /&gt;
    [0x7b,0x08,0x6a,&lt;br /&gt;
    0x48,0x03,0x15,&lt;br /&gt;
    0x00,0x62,0x3f,&lt;br /&gt;
    0x5a,0x0b,0x78],&lt;br /&gt;
    [0x05,0x4a,0x6c,&lt;br /&gt;
    0x5e,0x7c,0x19,&lt;br /&gt;
    0x63,0x45,0x23,&lt;br /&gt;
    0x0d,0x7a,0x71],&lt;br /&gt;
    [0x35,0x18,0x55,&lt;br /&gt;
    0x53,0x47,0x83,&lt;br /&gt;
    0x60,0x65,0x1d,&lt;br /&gt;
    0x07,0x0f,0x70],&lt;br /&gt;
    [0x4f,0x01,0x6d,&lt;br /&gt;
    0x7f,0x5b,0x1a,&lt;br /&gt;
    0x3d,0x67,0x02,&lt;br /&gt;
    0x4d,0x12,0x5c],&lt;br /&gt;
    [0x54,0x09,0x13,&lt;br /&gt;
    0x82,0x61,0x68,&lt;br /&gt;
    0x2e,0x4e,0x1c,&lt;br /&gt;
    0x72,0x7e,0x6f]&lt;br /&gt;
],&lt;br /&gt;
eyebrows: [&lt;br /&gt;
    [0x06,0x00,0x0c,&lt;br /&gt;
    0x01,0x09,0x13,&lt;br /&gt;
    0x07,0x15,0x08,&lt;br /&gt;
    0x11,0x05,0x04],&lt;br /&gt;
    [0x0b,0x0a,0x02,&lt;br /&gt;
    0x03,0x0e,0x14,&lt;br /&gt;
    0x0f,0x0d,0x16,&lt;br /&gt;
    0x12,0x10,0x17]&lt;br /&gt;
],&lt;br /&gt;
nose: [&lt;br /&gt;
    [0x01,0x0a,0x02,&lt;br /&gt;
    0x03,0x06,0x00,&lt;br /&gt;
    0x05,0x04,0x08,&lt;br /&gt;
    0x09,0x07,0x0B],&lt;br /&gt;
    [0x0d,0x0e,0x0c,&lt;br /&gt;
    0x11,0x10,0x0f]&lt;br /&gt;
],&lt;br /&gt;
mouth: [&lt;br /&gt;
    [0x17,0x01,0x13,&lt;br /&gt;
    0x15,0x16,0x05,&lt;br /&gt;
    0x00,0x08,0x0a,&lt;br /&gt;
    0x10,0x06,0x0d],&lt;br /&gt;
    [0x07,0x09,0x02,&lt;br /&gt;
    0x11,0x03,0x04,&lt;br /&gt;
    0x0f,0x0b,0x14,&lt;br /&gt;
    0x12,0x0e,0x0c],&lt;br /&gt;
    [0x1b,0x1e,0x18,&lt;br /&gt;
    0x19,0x1d,0x1c,&lt;br /&gt;
    0x1a,0x23,0x1f,&lt;br /&gt;
    0x22,0x21,0x20]&lt;br /&gt;
]&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phijor</name></author>
	</entry>
</feed>