Changes

Jump to navigation Jump to search
6,801 bytes added ,  13:20, 18 September 2017
no edit summary
Line 1: Line 1:  
[[Category:Services]]
 
[[Category:Services]]
The NS ('''N'''intendo User Interface '''S'''hell) system module is the first module launched from a CTR-NAND title after the [[FIRM]] processes are loaded. 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'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.
+
The NS ('''N'''intendo User Interface '''S'''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'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.
    
NS will not trigger the [[ErrDisp|fatal-error]] screen when launching the regular/alternate menu fails.
 
NS will not trigger the [[ErrDisp|fatal-error]] screen when launching the regular/alternate menu fails.
Line 36: Line 36:  
| [[NSS:LaunchTitle|LaunchTitle]]
 
| [[NSS:LaunchTitle|LaunchTitle]]
 
|-
 
|-
| 0x0003....
+
| 0x00030000
 
| [[1.0.0-0]] - [[2.0.0-2]]
 
| [[1.0.0-0]] - [[2.0.0-2]]
| Wrapper for [[Process_Manager_Services|PMApp]] command 0x00030080.
+
| [[NSS:TerminateApplication|TerminateApplication]]
 
|-
 
|-
| 0x0004....
+
| 0x00040040
 
| [[1.0.0-0]] - [[2.0.0-2]]
 
| [[1.0.0-0]] - [[2.0.0-2]]
| Wrapper for [[Process_Manager_Services|PMApp]] command 0x000500C0.
+
| [[NSS:TerminateProcess|TerminateProcess]]
 
|-
 
|-
 
| 0x000500C0
 
| 0x000500C0
Line 50: Line 50:  
| 0x00060042
 
| 0x00060042
 
| [[1.0.0-0]] - [[2.0.0-2]]
 
| [[1.0.0-0]] - [[2.0.0-2]]
| [[NSS:SetFIRMParams4A0|SetFIRMParams4A0]]
+
| [[NSS:SetWirelessRebootInfo|SetWirelessRebootInfo]]
 
|-
 
|-
 
| 0x00070042
 
| 0x00070042
Line 58: Line 58:  
| 0x00080000
 
| 0x00080000
 
| [[1.0.0-0]] - [[2.0.0-2]]
 
| [[1.0.0-0]] - [[2.0.0-2]]
| This shuts down the gamecard system update interface: the shared memory is unmapped, the CFA archive is closed, state is cleared, etc.
+
| [[NSS:CardUpdateShutdown|CardUpdateShutdown]]
 
|-
 
|-
| 0x0009....
+
| 0x00090000
 
| [[1.0.0-0]] - [[2.0.0-2]]
 
| [[1.0.0-0]] - [[2.0.0-2]]
 
| Gamecard system update related.
 
| Gamecard system update related.
 
|-
 
|-
| 0x000A....
+
| 0x000A0000
 
| [[1.0.0-0]] - [[2.0.0-2]]
 
| [[1.0.0-0]] - [[2.0.0-2]]
 
| Gamecard system update related.
 
| Gamecard system update related.
 
|-
 
|-
| 0x000B....
+
| 0x000B0000
 
| [[1.0.0-0]] - [[2.0.0-2]]
 
| [[1.0.0-0]] - [[2.0.0-2]]
 
| Gamecard system update related.
 
| Gamecard system update related.
 
|-
 
|-
| 0x000C....
+
| 0x000C0000
 
| [[1.0.0-0]] - [[2.0.0-2]]
 
| [[1.0.0-0]] - [[2.0.0-2]]
 
| Gamecard system update related.
 
| Gamecard system update related.
Line 78: Line 78:  
| 0x000D0140
 
| 0x000D0140
 
| [[1.0.0-0]] - [[2.0.0-2]]
 
| [[1.0.0-0]] - [[2.0.0-2]]
| [[NSS:SetFIRMParams4B0|SetFIRMParams4B0]]
+
| [[NSS:SetTWLBannerHMAC|SetTWLBannerHMAC]]
 
|-
 
|-
| 0x000E....
+
| 0x000E0000
 
| [[1.0.0-0]] - [[2.0.0-2]]
 
| [[1.0.0-0]] - [[2.0.0-2]]
| Wrapper for "ptm:sysm" service command 0x040700C0.
+
| [[NSS:ShutdownAsync|ShutdownAsync]]
 
|-
 
|-
 
| 0x000F0000
 
| 0x000F0000
Line 92: Line 92:  
| [[NSS:RebootSystem|RebootSystem]]
 
| [[NSS:RebootSystem|RebootSystem]]
 
|-
 
|-
| 0x0011....
+
| 0x00110100
 
| [[1.0.0-0]] - [[2.0.0-2]]
 
| [[1.0.0-0]] - [[2.0.0-2]]
| [[NSS:TerminateProcessTID|TerminateProcessTID]]
+
| [[NSS:TerminateTitle|TerminateTitle]]
 
|-
 
|-
| 0x0012....
+
| 0x001200C0
 
| ?
 
| ?
| Uses pm:app cmdA&B
+
| [[NSS:SetApplicationCpuTimeLimit|SetApplicationCpuTimeLimit]]
 
|-
 
|-
| 0x0013....
+
| 0x00130000
 
| ?
 
| ?
 
| ?
 
| ?
 
|-
 
|-
| 0x0014....
+
| 0x00140042
 
| ?
 
| ?
 
| ?
 
| ?
 
|-
 
|-
| 0x0015....
+
| 0x00150140
| ?
   
| ?
 
| ?
 +
| [[NSS:LaunchApplication|LaunchApplication]]
 
|-
 
|-
 
| 0x00160000
 
| 0x00160000
 
| [[8.0.0-18]]
 
| [[8.0.0-18]]
| This triggers a hw-reboot.
+
| [[NSS:RebootSystemClean|RebootSystemClean]]
 
|}
 
|}
    
The maximum sessions that can be used with this service is two, therefore only two processes can use this service at the same time.
 
The maximum sessions that can be used with this service is two, therefore only two processes can use this service at the same time.
   −
=NS Service "ns:p"=
+
=NS Power Service "ns:p"=
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Command Header
 +
!  Description
 +
|-
 +
| 0x00010040
 +
| [[NSP:RebootSystem|RebootSystem]]
 +
|-
 +
| 0x00020000
 +
| [[NSS:ShutdownAsync|ShutdownAsync]]
 +
|}
 +
 
 
This was added with [[3.0.0-5]]. The PTM sysmodule connects to this service, and syncs whenever [[PTM|ptm:s GetShellState()]] changes.
 
This was added with [[3.0.0-5]]. The PTM sysmodule connects to this service, and syncs whenever [[PTM|ptm:s GetShellState()]] changes.
    
=NS Service "ns:c"=
 
=NS Service "ns:c"=
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Command Header
 +
!  Description
 +
|-
 +
| 0x00010100
 +
| ?
 +
|-
 +
| 0x00020100
 +
| ?
 +
|}
 +
 
This was added with [[5.0.0-11]], it's unknown what this is used for.
 
This was added with [[5.0.0-11]], it's unknown what this is used for.
   Line 136: Line 160:  
|  
 
|  
 
| Yes
 
| Yes
| GetLockHandle
+
| [[APT:GetLockHandle|GetLockHandle]]
 
|-
 
|-
 
| 0x00020080
 
| 0x00020080
 
|  
 
|  
| See [[APTU:Initialize|here]].
+
| See [[APT:Initialize|here]].
| [[APTU:Initialize|Initialize]]
+
| [[APT:Initialize|Initialize]]
 
|-
 
|-
 
| 0x00030040
 
| 0x00030040
 
|  
 
|  
 
| Yes
 
| Yes
| Enable
+
| [[APT:Enable|Enable]]
 
|-
 
|-
 
| 0x00040040
 
| 0x00040040
 
|  
 
|  
 
| Yes
 
| Yes
| Finalize
+
| [[APT:Finalize|Finalize]]
 
|-
 
|-
 
| 0x00050040
 
| 0x00050040
Line 160: Line 184:  
| 0x00060040
 
| 0x00060040
 
|  
 
|  
| Yes
+
| Yes, for AppID != 0x300
 
| [[APT:GetAppletInfo|GetAppletInfo]]
 
| [[APT:GetAppletInfo|GetAppletInfo]]
 
|-
 
|-
Line 166: Line 190:  
|  
 
|  
 
| Yes
 
| Yes
| GetLastSignaledAppletId
+
| [[APT:GetLastSignaledAppletId|GetLastSignaledAppletId]]
 
|-
 
|-
 
| 0x00080000
 
| 0x00080000
 
|  
 
|  
 
| Yes
 
| Yes
| CountRegisteredApplet
+
| [[APT:CountRegisteredApplet|CountRegisteredApplet]]
 
|-
 
|-
 
| 0x00090040
 
| 0x00090040
Line 181: Line 205:  
|  
 
|  
 
| Yes
 
| Yes
| GetAttribute
+
| [[APT:GetAttribute|GetAttribute]]
 
|-
 
|-
 
| 0x000B0040
 
| 0x000B0040
 
|  
 
|  
 
| Yes
 
| Yes
| [[APTU:GetSignalType|InquireNotification]]
+
| [[APT:InquireNotification|InquireNotification]]
 
|-
 
|-
 
| 0x000C0104
 
| 0x000C0104
Line 211: Line 235:  
|  
 
|  
 
| Yes
 
| Yes
| DebugFunc
+
| [[APT:DebugFunc|DebugFunc]]
 
|-
 
|-
 
| 0x001100C0
 
| 0x001100C0
Line 221: Line 245:  
|  
 
|  
 
| Yes
 
| Yes
| SetHomeMenuAppletIdForDebug
+
| [[APT:SetHomeMenuAppletIdForDebug|SetHomeMenuAppletIdForDebug]]
 
|-
 
|-
 
| 0x00130000
 
| 0x00130000
 
|  
 
|  
 
| Yes
 
| Yes
| GetPreparationState
+
| [[APT:GetPreparationState|GetPreparationState]]
 
|-
 
|-
 
| 0x00140040
 
| 0x00140040
 
|  
 
|  
 
| Yes
 
| Yes
| SetPreparationState
+
| [[APT:SetPreparationState|SetPreparationState]]
 
|-
 
|-
 
| 0x00150140
 
| 0x00150140
Line 241: Line 265:  
|  
 
|  
 
| Yes
 
| Yes
| PreloadLibraryApplet
+
| [[APT:PreloadLibraryApplet|PreloadLibraryApplet]]
 
|-
 
|-
 
| 0x00170040
 
| 0x00170040
 
|  
 
|  
 
| Yes
 
| Yes
| FinishPreloadingLibraryApplet
+
| [[APT:FinishPreloadingLibraryApplet|FinishPreloadingLibraryApplet]]
 
|-
 
|-
 
| 0x00180040
 
| 0x00180040
 
|  
 
|  
 
| Yes
 
| Yes
| PrepareToStartLibraryApplet
+
| [[APT:PrepareToStartLibraryApplet|PrepareToStartLibraryApplet]]
 
|-
 
|-
 
| 0x00190040
 
| 0x00190040
Line 261: Line 285:  
|  
 
|  
 
| Yes
 
| Yes
| PrepareToStartNewestHomeMenu
+
| [[APT:PrepareToStartNewestHomeMenu|PrepareToStartNewestHomeMenu]]
 
|-
 
|-
 
| 0x001B00C4
 
| 0x001B00C4
Line 271: Line 295:  
|  
 
|  
 
| Yes
 
| Yes
| WakeupApplication
+
| [[APT:WakeupApplication|WakeupApplication]]
 
|-
 
|-
 
| 0x001D0000
 
| 0x001D0000
 
|  
 
|  
 
| Yes
 
| Yes
| CancelApplication
+
| [[APT:CancelApplication|CancelApplication]]
 
|-
 
|-
 
| 0x001E0084
 
| 0x001E0084
 
|  
 
|  
 
| Yes
 
| Yes
| StartLibraryApplet
+
| [[APT:StartLibraryApplet|StartLibraryApplet]]
 
|-
 
|-
 
| 0x001F0084
 
| 0x001F0084
Line 296: Line 320:  
|  
 
|  
 
| No
 
| No
| OrderToCloseApplication
+
| [[APT:OrderToCloseApplication|OrderToCloseApplication]]
 
|-
 
|-
 
| 0x00220040
 
| 0x00220040
 
|  
 
|  
 
| Yes
 
| Yes
| PrepareToCloseApplication(bool isJumpToHome)
+
| [[APT:PrepareToCloseApplication|PrepareToCloseApplication]]
 
|-
 
|-
 
| 0x00230040
 
| 0x00230040
 
|  
 
|  
 
| Yes
 
| Yes
| PrepareToJumpToApplication
+
| [[APT:PrepareToJumpToApplication|PrepareToJumpToApplication]]
 
|-
 
|-
 
| 0x00240044
 
| 0x00240044
 
|  
 
|  
 
| Yes
 
| Yes
| JumpToApplication
+
| [[APT:JumpToApplication|JumpToApplication]]
 
|-
 
|-
 
| 0x002500C0
 
| 0x002500C0
 
|  
 
|  
 
| Yes
 
| Yes
| PrepareToCloseLibraryApplet
+
| [[APT:PrepareToCloseLibraryApplet|PrepareToCloseLibraryApplet]]
 
|-
 
|-
 
| 0x00260000
 
| 0x00260000
 
|  
 
|  
 
| Yes
 
| Yes
| PrepareToCloseSystemApplet
+
| [[APT:PrepareToCloseSystemApplet|PrepareToCloseSystemApplet]]
 
|-
 
|-
 
| 0x00270044
 
| 0x00270044
 
|  
 
|  
 
| Yes
 
| Yes
| CloseApplication
+
| [[APT:CloseApplication|CloseApplication]]
 
|-
 
|-
 
| 0x00280044
 
| 0x00280044
 
|  
 
|  
 
| Yes
 
| Yes
| CloseLibraryApplet
+
| [[APT:CloseLibraryApplet|CloseLibraryApplet]]
 
|-
 
|-
 
| 0x00290044
 
| 0x00290044
 
|  
 
|  
 
| Yes
 
| Yes
| CloseSystemApplet
+
| [[APT:CloseSystemApplet|CloseSystemApplet]]
 
|-
 
|-
 
| 0x002A0000
 
| 0x002A0000
 
|  
 
|  
 
| Yes
 
| Yes
| OrderToCloseSystemApplet
+
| [[APT:OrderToCloseSystemApplet|OrderToCloseSystemApplet]]
 
|-
 
|-
 
| 0x002B0000
 
| 0x002B0000
 
|  
 
|  
 
| Yes
 
| Yes
| PrepareToJumpToHomeMenu
+
| [[APT:PrepareToJumpToHomeMenu|PrepareToJumpToHomeMenu]]
 
|-
 
|-
 
| 0x002C0044
 
| 0x002C0044
 
|  
 
|  
 
| Yes
 
| Yes
| JumpToHomeMenu
+
| [[APT:JumpToHomeMenu|JumpToHomeMenu]]
 
|-
 
|-
 
| 0x002D0000
 
| 0x002D0000
 
|  
 
|  
 
| Yes
 
| Yes
| PrepareToLeaveHomeMenu
+
| [[APT:PrepareToLeaveHomeMenu|PrepareToLeaveHomeMenu]]
 
|-
 
|-
 
| 0x002E0044
 
| 0x002E0044
 
|  
 
|  
 
| Yes
 
| Yes
| LeaveHomeMenu
+
| [[APT:LeaveHomeMenu|LeaveHomeMenu]]
 
|-
 
|-
 
| 0x002F0040
 
| 0x002F0040
 
|  
 
|  
 
| Yes
 
| Yes
| PrepareToLeaveResidentApplet
+
| [[APT:PrepareToLeaveResidentApplet|PrepareToLeaveResidentApplet]]
 
|-
 
|-
 
| 0x00300044
 
| 0x00300044
 
|  
 
|  
 
| Yes
 
| Yes
| LeaveResidentApplet
+
| [[APT:LeaveResidentApplet|LeaveResidentApplet]]
 
|-
 
|-
 
| 0x00310100
 
| 0x00310100
Line 386: Line 410:  
|  
 
|  
 
| Yes
 
| Yes
| GetProgramIdOnApplicationJump
+
| [[APT:GetProgramIdOnApplicationJump|GetProgramIdOnApplicationJump]]
 
|-
 
|-
 
| 0x00340084
 
| 0x00340084
Line 396: Line 420:  
|  
 
|  
 
| Yes
 
| Yes
| ReceiveDeliverArg
+
| [[APT:ReceiveDeliverArg|ReceiveDeliverArg]]
 
|-
 
|-
 
| 0x00360040
 
| 0x00360040
Line 411: Line 435:  
|  
 
|  
 
| Yes
 
| Yes
| PreloadResidentApplet
+
| [[APT:PreloadResidentApplet|PreloadResidentApplet]]
 
|-
 
|-
 
| 0x00390040
 
| 0x00390040
 
|  
 
|  
 
| Yes
 
| Yes
| PrepareToStartResidentApplet
+
| [[APT:PrepareToStartResidentApplet|PrepareToStartResidentApplet]]
 
|-
 
|-
 
| 0x003A0044
 
| 0x003A0044
 
|  
 
|  
 
| Yes
 
| Yes
| StartResidentApplet
+
| [[APT:StartResidentApplet|StartResidentApplet]]
 
|-
 
|-
 
| 0x003B0040
 
| 0x003B0040
 
|  
 
|  
 
| Yes
 
| Yes
| CancelLibraryApplet
+
| [[APT:CancelLibraryApplet|CancelLibraryApplet]]
 
|-
 
|-
 
| 0x003C0042
 
| 0x003C0042
 
|  
 
|  
 
| Yes
 
| Yes
| SendDspSleep
+
| [[APT:SendDspSleep|SendDspSleep]]
 
|-
 
|-
 
| 0x003D0042
 
| 0x003D0042
 
|  
 
|  
 
| Yes
 
| Yes
| SendDspWakeUp
+
| [[APT:SendDspWakeUp|SendDspWakeUp]]
 
|-
 
|-
 
| 0x003E0080
 
| 0x003E0080
 
|  
 
|  
 
| Yes
 
| Yes
| ReplySleepQuery
+
| [[APT:ReplySleepQuery|ReplySleepQuery]]
 
|-
 
|-
 
| 0x003F0040
 
| 0x003F0040
 
|  
 
|  
 
| Yes
 
| Yes
| ReplySleepNotificationComplete
+
| [[APT:ReplySleepNotificationComplete|ReplySleepNotificationComplete]]
 
|-
 
|-
 
| 0x00400042
 
| 0x00400042
Line 461: Line 485:  
|  
 
|  
 
| Yes
 
| Yes
| SleepSystem
+
| [[APT:SleepSystem|SleepSystem]]
 
|-
 
|-
 
| 0x00430040
 
| 0x00430040
 
|  
 
|  
 
| Yes
 
| Yes
| NotifyToWait
+
| [[APT:NotifyToWait|NotifyToWait]]
 
|-
 
|-
 
| 0x00440000
 
| 0x00440000
 
|  
 
|  
 
| Yes
 
| Yes
| GetSharedFont
+
| [[APT:GetSharedFont|GetSharedFont]]
 
|-
 
|-
 
| 0x00450040
 
| 0x00450040
 
|  
 
|  
 
| Yes
 
| Yes
| GetWirelessRebootInfo
+
| [[APT:GetWirelessRebootInfo|GetWirelessRebootInfo]]
 
|-
 
|-
 
| 0x00460104
 
| 0x00460104
Line 511: Line 535:  
|  
 
|  
 
| Yes
 
| Yes
| SetFatalErrDispMode
+
| [[APT:SetFatalErrDispMode|SetFatalErrDispMode]]
 
|-
 
|-
 
| 0x004D0080
 
| 0x004D0080
Line 521: Line 545:  
|  
 
|  
 
| Yes
 
| Yes
| HardwareResetAsync
+
| [[APT:HardwareResetAsync|HardwareResetAsync]]
 
|-
 
|-
 
| 0x004F0080
 
| 0x004F0080
Line 533: Line 557:  
| [[APT:GetApplicationCpuTimeLimit|GetApplicationCpuTimeLimit]]
 
| [[APT:GetApplicationCpuTimeLimit|GetApplicationCpuTimeLimit]]
 
|-
 
|-
| 0x0051....
+
| 0x00510080
 
| [[3.0.0-5]]
 
| [[3.0.0-5]]
| ?
+
| Yes
| Uses pm:app cmdB
+
| [[APT:GetStartupArgument|GetStartupArgument]]
 
|-
 
|-
 
| 0x00520104
 
| 0x00520104
 
| [[4.0.0-7]]
 
| [[4.0.0-7]]
| ?
+
| Yes
| Wrap1
+
| [[APT:Wrap1|Wrap1]]
 
|-
 
|-
 
| 0x00530104
 
| 0x00530104
 
| [[4.0.0-7]]
 
| [[4.0.0-7]]
| ?
+
| Yes
| Unwrap1
+
| [[APT:Unwrap1|Unwrap1]]
 
|-
 
|-
 
| 0x00540040
 
| 0x00540040
Line 556: Line 580:  
| [[7.0.0-13]]
 
| [[7.0.0-13]]
 
| Yes
 
| Yes
| This writes the input u8 to a NS state field.
+
| [[APT:SetScreencapPostPermission|SetScreencapPostPermission]]
 
|-
 
|-
 
| 0x00560000
 
| 0x00560000
 
| [[7.0.0-13]]
 
| [[7.0.0-13]]
 
| Yes
 
| Yes
| This returns an u8 NS state field(which can be set by cmd 0x00550040), at cmdreply+8.
+
| [[APT:GetScreencapPostPermission|GetScreencapPostPermission]]
 
|-
 
|-
 
| 0x00570044
 
| 0x00570044
 
| [[7.0.0-13]]
 
| [[7.0.0-13]]
 
| ?
 
| ?
| WakeupApplication2?
+
| [[APT:WakeupApplication2|WakeupApplication2]]
 
|-
 
|-
 
| 0x00580002
 
| 0x00580002
 
| [[7.0.0-13]]
 
| [[7.0.0-13]]
| ?
+
| Yes
| ?
+
| [[APT:GetProgramID|GetProgramID]]
 
|-
 
|-
 
| 0x01010000
 
| 0x01010000
 
| [[8.0.0-18]]
 
| [[8.0.0-18]]
 
| Yes
 
| Yes
| This writes an output u8 to cmdreply indexword[2]. This uses [[PTMSYSM:CheckNew3DS]]. When a certain NS state field is non-zero, the output value is zero, otherwise the output is from [[PTMSYSM:CheckNew3DS]]. Normally this NS state field is zero, however this state field is set to 1 when [[APT:PrepareToStartApplication]] is used with flags bit8 is set.
+
| [[APT:CheckNew3DSApp|CheckNew3DSApp]]
 
|-
 
|-
 
| 0x01020000
 
| 0x01020000
 
| [[8.0.0-18]]
 
| [[8.0.0-18]]
 
| Yes
 
| Yes
| Wrapper for [[PTMSYSM:CheckNew3DS]].
+
| [[APT:CheckNew3DS|CheckNew3DS]]
 
|-
 
|-
 
| 0x01030000
 
| 0x01030000
 
| [[8.0.0-18]]
 
| [[8.0.0-18]]
 
| Yes
 
| Yes
| ?
+
| This writes an output u8 to cmdreply[2], the value is determined by checking various NS internal state + whether this is a New3DS.
 +
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.
 
|-
 
|-
 
| 0x01040000
 
| 0x01040000
 
| [[8.0.0-18]]
 
| [[8.0.0-18]]
 
| ?
 
| ?
 +
| [[APT:IsStandardMemoryLayout|IsStandardMemoryLayout]]
 +
|-
 +
| 0x01050100
 +
| [[10.4.0-29]]
 
| ?
 
| ?
 +
| [[APT:IsTitleAllowed|IsTitleAllowed]]
 
|}
 
|}
   Line 601: Line 631:     
APT:PrepareToDoApplicationJump and APT:DoApplicationJump are used by applications, for launching native/<non-NATIVE_FIRM> applications. These commands notify Home Menu that title launching needs done, Home Menu does the actual title launching via NS commands.
 
APT:PrepareToDoApplicationJump and APT:DoApplicationJump are used by applications, for launching native/<non-NATIVE_FIRM> applications. These commands notify Home Menu that title launching needs done, Home Menu does the actual title launching via NS commands.
 +
 +
== AppletAttr ==
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Bits
 +
!  Description
 +
|-
 +
| 0-2
 +
| [[NS_and_APT_Services#AppletPos|AppletPos]]
 +
|-
 +
| 3
 +
| Manually Acquire/Release GPU Rights
 +
|-
 +
| 4
 +
| Manually Acquire/Release DSP Rights
 +
|-
 +
| 5
 +
| ?
 +
|}
 +
 +
== DisplayBufferMode ==
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Value
 +
!  Description
 +
|-
 +
| 0
 +
| FORMAT_R8G8B8A8
 +
|-
 +
| 1
 +
| FORMAT_R8G8B8
 +
|-
 +
| 2
 +
| FORMAT_R5G6B5
 +
|-
 +
| 3
 +
| FORMAT_R5G5B5A1
 +
|-
 +
| 4
 +
| FORMAT_R4G4B4A4
 +
|-
 +
| 0xFFFFFFFF
 +
| FORMAT_UNIMPORTABLE
 +
|}
 +
 +
This is the same mapping as used for the [[GPU/External_Registers#Framebuffer_color_formats|GPU framebuffer color formats]].
 +
 +
== AppletPos ==
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Value
 +
!  Description
 +
|-
 +
| -1
 +
| POS_NONE
 +
|-
 +
| 0
 +
| POS_APP
 +
|-
 +
| 1
 +
| POS_APPLIB
 +
|-
 +
| 2
 +
| POS_SYS
 +
|-
 +
| 3
 +
| POS_SYSLIB
 +
|-
 +
| 4
 +
| POS_RESIDENT
 +
|}
 +
 +
== QueryReply ==
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Value
 +
!  Description
 +
|-
 +
| 0
 +
| REPLY_REJECT
 +
|-
 +
| 1
 +
| REPLY_ACCEPT
 +
|-
 +
| 2
 +
| REPLY_LATER
 +
|}
 +
 +
== Notification ==
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Value
 +
!  Description
 +
|-
 +
| 0
 +
| NOTIFICATION_NONE
 +
|-
 +
| 1
 +
| NOTIFICATION_HOME_BUTTON_1
 +
|-
 +
| 2
 +
| NOTIFICATION_HOME_BUTTON_2
 +
|-
 +
| 3
 +
| NOTIFICATION_SLEEP_QUERY
 +
|-
 +
| 4
 +
| NOTIFICATION_SLEEP_CANCELED_BY_OPEN
 +
|-
 +
| 5
 +
| NOTIFICATION_SLEEP_ACCEPTED
 +
|-
 +
| 6
 +
| NOTIFICATION_SLEEP_AWAKE
 +
|-
 +
| 7
 +
| NOTIFICATION_SHUTDOWN
 +
|-
 +
| 8
 +
| NOTIFICATION_POWER_BUTTON_CLICK
 +
|-
 +
| 9
 +
| NOTIFICATION_POWER_BUTTON_CLEAR
 +
|-
 +
| 10
 +
| NOTIFICATION_TRY_SLEEP
 +
|-
 +
| 11
 +
| NOTIFICATION_ORDER_TO_CLOSE
 +
|}
 +
 +
== Command ==
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Value
 +
!  Description
 +
|-
 +
| 0
 +
| COMMAND_NONE
 +
|-
 +
| 1
 +
| COMMAND_WAKEUP
 +
|-
 +
| 2
 +
| COMMAND_REQUEST
 +
|-
 +
| 3
 +
| COMMAND_RESPONSE
 +
|-
 +
| 4
 +
| COMMAND_EXIT
 +
|-
 +
| 5
 +
| COMMAND_MESSAGE
 +
|-
 +
| 6
 +
| COMMAND_HOME_BUTTON_SINGLE
 +
|-
 +
| 7
 +
| COMMAND_HOME_BUTTON_DOUBLE
 +
|-
 +
| 8
 +
| COMMAND_DSP_SLEEP
 +
|-
 +
| 9
 +
| COMMAND_DSP_WAKEUP
 +
|-
 +
| 10
 +
| COMMAND_WAKEUP_BY_EXIT
 +
|-
 +
| 11
 +
| COMMAND_WAKEUP_BY_PAUSE
 +
|-
 +
| 12
 +
| COMMAND_WAKEUP_BY_CANCEL
 +
|-
 +
| 13
 +
| COMMAND_WAKEUP_BY_CANCELALL
 +
|-
 +
| 14
 +
| COMMAND_WAKEUP_BY_POWER_BUTTON_CLICK
 +
|-
 +
| 15
 +
| COMMAND_WAKEUP_TO_JUMP_HOME
 +
|-
 +
| 16
 +
| COMMAND_REQUEST_FOR_SYS_APPLET
 +
|-
 +
| 17
 +
| COMMAND_WAKEUP_TO_LAUNCH_APPLICATION
 +
|-
 +
| 0x41
 +
| Unknown. [[APT:ReceiveParameter|Received]] by Home Menu during boot when the Home Menu process doesn't terminate properly(svcExitProcess/crash).
 +
|}
 +
 +
== AppletPreparationState ==
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Value
 +
!  Description
 +
|-
 +
| 0
 +
| NO_PREPARATION
 +
|-
 +
| 1
 +
| PREPARED_TO_LAUNCH_APP
 +
|-
 +
| 2
 +
| PREPARED_TO_CLOSE_APP
 +
|-
 +
| 3
 +
| PREPARED_TO_FORCE_TO_CLOSE_APP
 +
|-
 +
| 4
 +
| PREPARED_TO_PRELOAD_APPLIB
 +
|-
 +
| 5
 +
| PREPARED_TO_LAUNCH_APPLIB
 +
|-
 +
| 6
 +
| PREPARED_TO_CLOSE_APPLIB
 +
|-
 +
| 7
 +
| PREPARED_TO_LAUNCH_SYS
 +
|-
 +
| 8
 +
| PREPARED_TO_CLOSE_SYS
 +
|-
 +
| 9
 +
| PREPARED_TO_PRELOAD_SYSLIB
 +
|-
 +
| 10
 +
| PREPARED_TO_LAUNCH_SYSLIB
 +
|-
 +
| 11
 +
| PREPARED_TO_CLOSE_SYSLIB
 +
|-
 +
| 12
 +
| PREPARED_TO_LAUNCH_RESIDENT
 +
|-
 +
| 13
 +
| PREPARED_TO_LEAVE_RESIDENT
 +
|-
 +
| 14
 +
| PREPARED_TO_DO_HOMEMENU
 +
|-
 +
| 15
 +
| PREPARED_TO_LEAVE_HOMEMENU
 +
|-
 +
| 16
 +
| PREPARED_TO_START_RESIDENT
 +
|-
 +
| 17
 +
| PREPARED_TO_DO_APP_JUMP
 +
|-
 +
| 18
 +
| PREPARED_TO_FORCE_TO_CLOSE_SYS
 +
|-
 +
| 19
 +
| PREPARED_TO_LAUNCH_OTHER_SYS
 +
|-
 +
| 20
 +
| PREPARED_TO_JUMP_TO_APP
 +
|}
 +
 +
== StartupArgumentType ==
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Value
 +
!  Description
 +
|-
 +
| 0
 +
| STARTUP_ARGUMENT_TYPE_OTHER_APP
 +
|-
 +
| 1
 +
| STARTUP_ARGUMENT_TYPE_RESTART
 +
|-
 +
| 2
 +
| STARTUP_ARGUMENT_TYPE_OTHER_MEDIA
 +
|}
 +
 +
== CaptureBufferInfo ==
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Offset
 +
!  Size
 +
!  Description
 +
|-
 +
| 0x0
 +
| 0x4
 +
| u32, Size
 +
|-
 +
| 0x4
 +
| 0x1
 +
| u8, 3D (0 = not 3D, 1 = 3D)
 +
|-
 +
| 0x5
 +
| 0x3
 +
| Reserved
 +
|-
 +
| 0x8
 +
| 0x4
 +
| Main Screen Left Offset
 +
|-
 +
| 0xC
 +
| 0x4
 +
| Main Screen Right Offset
 +
|-
 +
| 0x10
 +
| 0x4
 +
| Main Screen [[NS_and_APT_Services#DisplayBufferMode|DisplayBufferMode]]
 +
|-
 +
| 0x14
 +
| 0x4
 +
| Sub Screen Left Offset
 +
|-
 +
| 0x18
 +
| 0x4
 +
| Sub Screen Right Offset
 +
|-
 +
| 0x1C
 +
| 0x4
 +
| Sub Screen [[NS_and_APT_Services#DisplayBufferMode|DisplayBufferMode]]
 +
|}
 +
 +
==WirelessRebootInfo==
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Offset
 +
!  Size
 +
!  Description
 +
|-
 +
| 0x0
 +
| 0x6
 +
| Host MAC address.
 +
|-
 +
| 0x6
 +
| 0x9
 +
| WirelessRebootPassphrase
 +
|-
 +
| 0xF
 +
| 0x1
 +
| Uninitialized
 +
|}
 +
 +
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]].
    
="APT:A" Service=
 
="APT:A" Service=
 
This was added with [[7.0.0-13|7.0.0-X]]. Official apps built with the CTRSDK for system-version >=[[7.0.0-13|7.0.0-X]] normally use the "APT:A" service instead of "APT:U". Those processes also have "APT:A" instead of "APT:U" in the service-access-control. It's unknown whether there's anything which is only accessible via "APT:A".
 
This was added with [[7.0.0-13|7.0.0-X]]. Official apps built with the CTRSDK for system-version >=[[7.0.0-13|7.0.0-X]] normally use the "APT:A" service instead of "APT:U". Those processes also have "APT:A" instead of "APT:U" in the service-access-control. It's unknown whether there's anything which is only accessible via "APT:A".
   −
=System Applets=
+
=Applets=
Originally there could only be one applet here(Home Menu, Internet Browser, Friend-List, etc) with programID-high 00040030 running at a time. Originally when directly launching one of these 00040030 applets with Home Menu, the Home Menu process will terminate once the process is launched. Originally when returning to Home Menu from that launched process, the Home Menu process is launched again.
+
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).
 +
 
 +
==System Applets==
 +
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.
 +
 
 +
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.
   −
=Library Applets=
+
==Library Applets==
 
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.
 
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.
   Line 620: Line 1,001:  
|-
 
|-
 
| 0x101
 
| 0x101
| Home Menu (menu)
+
| [[Home Menu]] (menu)
 
|-
 
|-
 
| 0x103
 
| 0x103
Line 626: Line 1,007:  
|-
 
|-
 
| 0x110
 
| 0x110
| Camera applet (CtrApp)
+
| Camera applet ([[Camera Applet|CtrApp]])
 
|-
 
|-
 
| 0x112
 
| 0x112
| Friends List applet (friend)
+
| Friends List applet ([[Friend List|friend]])
 
|-
 
|-
 
| 0x113
 
| 0x113
Line 641: Line 1,022:  
|-
 
|-
 
| 0x116
 
| 0x116
| Notifications applet (newslist)
+
| [[Notifications]] applet (newslist)
 
|-
 
|-
 
| 0x117
 
| 0x117
Line 647: Line 1,028:  
|-
 
|-
 
| 0x118
 
| 0x118
| Miiverse posting applet (solv3)
+
| [[Miiverse]] posting applet (solv3)
 
|-
 
|-
 
| 0x119
 
| 0x119
Line 656: Line 1,037:  
|-
 
|-
 
| 0x202
 
| 0x202
| Mii Selector (appletEd) (?)
+
| [[Mii Selector]] (appletEd) (?)
 
|-
 
|-
 
| 0x204
 
| 0x204
Line 665: Line 1,046:  
|-
 
|-
 
| 0x206
 
| 0x206
| Error Display (error) (?)
+
| Error Display ([[ErrDisp|error]]) (?)
 
|-
 
|-
 
| 0x207
 
| 0x207
| eShop applet (mint) (?)
+
| eShop applet ([[EShop#NS_eShop_application_parameters|mint]]) (?)
 
|-
 
|-
 
| 0x208
 
| 0x208
39

edits

Navigation menu