NS and APT Services
The NS system module is the first module launched from a NAND title after the core processes sm, fs, pm, loader, and pxi are loaded. This module is launched by the pm process, with the titleID loaded from NSTID. NS first launches ErrDisp, then the menu. On retail the menu TID is loaded from MENUTID, while on dev/debug the menu TID is loaded from config. The TID of the launched menu is then written to ACTIVEMENUTID. NS uses pm:app to launch titles.
Like home menu NS is constantly running while the system is in 3DS-mode.
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 normally doesn't exist on retail.
NS Service "ns:s"
Command Header | Description |
---|---|
0x000200C0 | LaunchTitle |
NS Service "APT:U"
Command Header | Description |
---|---|
0x000B0040 | GetSignalType |
APT Service
Command Header | Description |
---|---|
0x00010040 | GetLockHandle |
0x00020080 | Initialize |
0x00030040 | Enable |
0x00040040 | Finalize |
0x00050040 | GetAppletManInfo |
0x00060040 | GetAppletInfo |
0x00070000 | GetLastSignaledAppletId |
0x00080000 | CountRegisteredApplet |
0x00090040 | IsRegistered |
0x000A0040 | GetAttribute |
0x000B0040 | InquireNotification |
0x000C0104 | SendParameter |
0x000D0080 | ReceiveParameter |
0x000E0080 | GlanceParameter |
0x000F0100 | CancelParameter |
0x001000c2 | DebugFunc |
0x001100C0 | MapProgramIdForDebug |
0x00120040 | SetHomeMenuAppletIdForDebug |
0x00130000 | GetPreparationState |
0x00140040 | SetPreparationState |
0x00150140 | PrepareToStartApplication |
0x00160040 | PreloadLibraryApplet |
0x00170040 | FinishPreloadingLibraryApplet |
0x00180040 | PrepareToStartLibraryApplet |
0x00190040 | PrepareToStartSystemApplet |
0x001A0000 | PrepareToStartNewestHomeMenu |
0x001B00C4 | StartApplication |
0x001C0000 | WakeupApplication |
0x001D0000 | CancelApplication |
0x001E0084 | StartLibraryApplet |
0x001F0084 | StartSystemApplet |
0x00200044 | StartNewestHomeMenu |
0x00210000 | OrderToCloseApplication |
0x00220040 | PrepareToCloseApplication |
0x00230040 | PrepareToJumpToApplication |
0x00240044 | JumpToApplication |
0x002500C0 | PrepareToCloseLibraryApplet |
0x00260000 | PrepareToCloseSystemApplet |
0x00270044 | CloseApplication |
0x00280044 | CloseLibraryApplet |
0x00290044 | CloseSystemApplet |
0x002A0000 | OrderToCloseSystemApplet |
0x002B0000 | PrepareToJumpToHomeMenu |
0x002C0044 | JumpToHomeMenu |
0x002D0000 | PrepareToLeaveHomeMenu |
0x002E0044 | LeaveHomeMenu |
0x002F0040 | PrepareToLeaveResidentApplet |
0x00300044 | LeaveResidentApplet |
0x00310100 | PrepareToDoApplicationJump |
0x00320084 | DoApplicationJump |
0x00330000 | GetProgramIdOnApplicationJump |
0x00340084 | SendDeliverArg |
0x00350080 | ReceiveDeliverArg |
0x00360040 | LoadSysMenuArg |
0x00370042 | StoreSysMenuArg |
0x00380040 | PreloadResidentApplet |
0x00390040 | PrepareToStartResidentApplet |
0x003A0044 | StartResidentApplet |
0x003B0040 | CancelLibraryApplet |
0x003C0042 | SendDspSleep |
0x003D0042 | SendDspWakeUp |
0x003E0080 | ReplySleepQuery |
0x003F0040 | ReplySleepNotificationComplete |
0x00400042 | SendCaptureBufferInfo |
0x00410040 | ReceiveCaptureBufferInfo |
0x00420080 | SleepSystem |
0x00430040 | NotifyToWait |
0x00440000 | GetSharedFont |
0x00450040 | GetWirelessRebootInfo |
0x00460104 | Wrap |
0x00470104 | Unwrap |
0x00480100 | GetProgramInfo |
0x00490180 | Reboot |
0x004A0040 | GetCaptureInfo |
0x004B00C2 | AppletUtility |
0x004C0000 | SetFatalErrDispMode |
0x004D0080 | GetAppletProgramInfo |
0x004E0000 | HardwareResetAsync |
These applet services can handle launching "applets", APT:U handles signaling for home/power button as well.