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]] |
| |- | | |- |
| | 0x000E0000 | | | 0x000E0000 |
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 |
| | ? | | | ? |
| | ? | | | ? |
Line 110: |
Line 110: |
| | 0x00150140 | | | 0x00150140 |
| | ? | | | ? |
− | | [[NSS:LaunchApplication|LaunchApplication]] : unlike LaunchTitle, this will do a "proper" app launch, using the update title if present. It seems to set proper internal states, like [[APT:PrepareToStartApplication]] and [[APT:StartApplication]] would. | + | | [[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 This is stubbed: this just returns 0. | + | | [[APT:PrepareToLeaveResidentApplet|PrepareToLeaveResidentApplet]] |
| |- | | |- |
| | 0x00300044 | | | 0x00300044 |
| | | | | |
| | Yes | | | Yes |
− | | LeaveResidentApplet This is stubbed: this just returns 0 after verifying the cmd/translate headers. | + | | [[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 This is stubbed: this just returns 0. | + | | [[APT:PreloadResidentApplet|PreloadResidentApplet]] |
| |- | | |- |
| | 0x00390040 | | | 0x00390040 |
| | | | | |
| | Yes | | | Yes |
− | | PrepareToStartResidentApplet This is stubbed: this just returns 0. | + | | [[APT:PrepareToStartResidentApplet|PrepareToStartResidentApplet]] |
| |- | | |- |
| | 0x003A0044 | | | 0x003A0044 |
| | | | | |
| | Yes | | | Yes |
− | | StartResidentApplet This is stubbed: this just returns 0 after verifying the cmd/translate headers. | + | | [[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 535: |
Line 559: |
| | 0x00510080 | | | 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 | | | Yes |
− | | [[APT:GetProgramID]] | + | | [[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= |
Line 625: |
Line 1,001: |
| |- | | |- |
| | 0x101 | | | 0x101 |
− | | Home Menu (menu) | + | | [[Home Menu]] (menu) |
| |- | | |- |
| | 0x103 | | | 0x103 |
Line 631: |
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 646: |
Line 1,022: |
| |- | | |- |
| | 0x116 | | | 0x116 |
− | | Notifications applet (newslist) | + | | [[Notifications]] applet (newslist) |
| |- | | |- |
| | 0x117 | | | 0x117 |
Line 652: |
Line 1,028: |
| |- | | |- |
| | 0x118 | | | 0x118 |
− | | Miiverse posting applet (solv3) | + | | [[Miiverse]] posting applet (solv3) |
| |- | | |- |
| | 0x119 | | | 0x119 |
Line 661: |
Line 1,037: |
| |- | | |- |
| | 0x202 | | | 0x202 |
− | | Mii Selector (appletEd) (?) | + | | [[Mii Selector]] (appletEd) (?) |
| |- | | |- |
| | 0x204 | | | 0x204 |
Line 670: |
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 |