NIM services
nim
This is "nn::nim::detail::INetworkInstallManager".
Cmd | Name |
---|---|
0 | #CreateSystemUpdateTask |
1 | #DestroySystemUpdateTask |
2 | #ListSystemUpdateTask |
3 | RequestSystemUpdateTaskRun |
4 | #GetSystemUpdateTaskInfo |
5 | #CommitSystemUpdateTask |
6 | CreateNetworkInstallTask |
7 | DestroyNetworkInstallTask |
8 | ListNetworkInstallTask |
9 | RequestNetworkInstallTaskRun |
10 | #GetNetworkInstallTaskInfo |
11 | CommitNetworkInstallTask |
12 | RequestLatestSystemUpdateMeta |
14 | ListApplicationNetworkInstallTask |
15 | ListNetworkInstallTaskContentMeta |
16 | RequestLatestVersion |
17 | SetNetworkInstallTaskAttribute |
18 | AddNetworkInstallTaskContentMeta |
19 | #GetDownloadedSystemDataPath |
20 | CalculateNetworkInstallTaskRequiredSize |
21 | #IsExFatDriverIncluded |
22 | GetBackgroundDownloadStressTaskInfo |
23 | [2.0.0+] RequestDeviceAuthenticationToken |
24 | [2.0.0+] RequestGameCardRegistrationStatus |
25 | [2.0.0+] RequestRegisterGameCard |
26 | [2.0.0+] RequestRegisterNotificationToken |
27 | [2.0.0+] RequestDownloadTaskList |
28 | [2.0.0+] RequestApplicationControl |
29 | [2.0.0+] RequestLatestApplicationControl |
30 | [2.0.0+] RequestVersionList |
31 | [2.0.0+] CreateApplyDeltaTask |
32 | [2.0.0+] DestroyApplyDeltaTask |
33 | [2.0.0+] ListApplicationApplyDeltaTask |
34 | [2.0.0+] RequestApplyDeltaTaskRun |
35 | [2.0.0+] #GetApplyDeltaTaskInfo |
36 | [2.0.0+] ListApplyDeltaTask |
37 | [2.0.0+] CommitApplyDeltaTask |
38 | [2.0.0+] CalculateApplyDeltaTaskRequiredSize |
39 | [2.0.0+] PrepareShutdown |
40 | [2.0.0+] ListApplyDeltaTask2 |
41 | [2.0.0+] ClearNotEnoughSpaceStateOfApplyDeltaTask |
42 | [3.0.0+] |
43 | [3.0.0+] |
44 | [3.0.0+] |
45 | [3.0.0+] |
46 | [3.0.0+] |
47 | [4.0.0+] |
48 | [4.0.0+] |
49 | [4.0.0+] |
50 | [4.0.0+] |
51 | [4.0.0+] |
52 | [4.0.0+] |
53 | [4.0.0+] |
54 | [4.0.0+] |
55 | [4.0.0+] |
56 | [4.0.0+] |
57 | [4.0.0+] |
58 | [4.0.0+] |
59 | [4.0.0+] |
60 | [4.0.0+] |
61 | [4.0.0+] |
62 | [4.0.0+] |
63 | [4.0.0+] |
64 | [4.0.0+] |
65 | [4.0.0+] |
66 | [4.0.0+] |
67 | [4.0.0+] |
68 | [4.0.0+] |
69 | [4.0.0+] |
70 | [4.0.0+] |
71 | [4.0.0+] |
72 | [4.0.0+] |
73 | [4.0.0+] |
74 | [4.0.0+] |
75 | [4.0.0+] |
76 | [4.0.0+] |
77 | [4.0.0+] |
78 | [4.0.0+] |
79 | [4.0.0+] |
80 | [4.0.0+] |
81 | [4.0.0+] |
82 | [4.0.0+] |
83 | [4.0.0+] |
84 | [5.0.0+] |
85 | [5.0.0+] |
86 | [5.0.0+] |
87 | [6.0.0+] |
88 | [6.0.0+] |
89 | [6.0.0+] |
90 | [6.0.0+] |
91 | [6.0.0+] |
92 | [6.0.0+] |
93 | [6.0.0+] |
94 | [6.0.0+] |
95 | [6.0.0+] |
96 | [6.0.0+] |
97 | [6.0.0+] |
98 | [6.0.0+] |
99 | [7.0.0+] |
100 | [9.0.0+] |
101 | [9.0.0+] |
102 | [9.0.0+] |
103 | [9.0.0+] |
104 | [9.0.0+] |
105 | [9.0.0+] |
106 | [9.0.0+] |
[5.0.0+] RequestGameCardRegistrationStatus/RequestRegisterGameCard removed 8-bytes of input, and now takes an additional type-0x5 input buffer.
[8.0.0+] Cmd76 now takes an additional 0x8-bytes of input.
CreateSystemUpdateTask
Takes an input u32 firmware_variation, an u32 unk, an input 0x10-byte struct, returns an output #SystemUpdateTask.
Official sw sets unk to: unk = inflag & 1 ? 0xC : 0x4
.
Structure of the input struct:
Offset | Size | Description |
---|---|---|
0x0 | 0x8 | Unknown |
0x8 | 0x4 | Unknown |
0xC | 0x1 | Unknown |
0xD | 0x1 | Unknown |
0xE | 0x2 | Padding? |
DestroySystemUpdateTask
Takes an input #SystemUpdateTask, no output.
ListSystemUpdateTask
Takes a type-0x6 output buffer, for an array of #SystemUpdateTask. Returns an u32 for total output entries.
GetSystemUpdateTaskInfo
Takes an input #SystemUpdateTask, returns an output #SystemUpdateTaskInfo.
CommitSystemUpdateTask
Takes an input #SystemUpdateTask, no output.
GetNetworkInstallTaskInfo
Takes an input #NetworkInstallTask, returns an output #NetworkInstallTaskInfo.
GetDownloadedSystemDataPath
Takes an input u64 titleID, a #SystemUpdateTask, and an type-0x16 output buffer containing the ContentPath.
Gets the FS ContentPath for the specified task and title.
IsExFatDriverIncluded
Takes an input #SystemUpdateTask, returns an output u8 bool flag.
GetApplyDeltaTaskInfo
Takes an input #ApplyDeltaTask, returns an output #ApplyDeltaTaskInfo.
SystemUpdateTask
This is a 0x10-byte struct.
SystemUpdateTaskInfo
Offset | Size | Description |
---|---|---|
0x0 | 0x1 | Status |
0x1 | 0x7 | ? |
0x8 | 0x8 | Unknown |
0x10 | 0x8 | DownloadSize |
0x18 | 0x8 | ContentMetaId |
0x20 | 0x4 | Version |
0x24 | 0x4 | ? |
0x28 | 0x8 | Unknown |
0x30 | 0x8 | Unknown |
0x38 | 0x8 | ? |
This is a 0x28-byte struct. [3.0.0+] This is a 0x38-byte struct. [5.0.0+] This is a 0x40-byte struct.
The 0x10-bytes at +0x8 are returned by NS_Services#GetDownloadProgress.
The two u64s at +0x28/+0x30 are used by NS to calculate "ThroughputKBps" for a SystemPlayReport.
NetworkInstallTask
This is a 0x10-byte struct.
NetworkInstallTaskInfo
This is a 0x28-byte struct. [3.0.0+] This is a 0x40-byte struct.
ApplyDeltaTask
This is a 0x10-byte struct.
ApplyDeltaTaskInfo
This is a 0x20-byte struct. [3.0.0+] This is a 0x30-byte struct.
nim:shp
This is "nn::nim::detail::IShopServiceManager".
Cmd | Name |
---|---|
0 | RequestDeviceAuthenticationToken |
1 | [3.0.0+] RequestCachedDeviceAuthenticationToken |
100 | RequestRegisterDeviceAccount |
101 | RequestUnregisterDeviceAccount |
102 | RequestDeviceAccountStatus |
103 | GetDeviceAccountInfo |
104 | RequestDeviceRegistrationInfo |
105 | RequestTransferDeviceAccount |
106 | [3.0.0+] RequestSyncRegistration |
107 | [3.0.0+] IsOwnDeviceId |
200 | RequestRegisterNotificationToken |
300 | RequestUnlinkDevice |
301 | RequestUnlinkDeviceIntegrated |
302 | RequestLinkDevice |
303 | HasDeviceLink |
304 | [4.0.0+] RequestUnlinkDeviceAll |
305 | [4.0.0+] RequestCreateVirtualAccount |
306 | [4.0.0+] RequestDeviceLinkStatus |
400 | GetAccountByVirtualAccount |
401 | [6.0.0+] GetVirtualAccount |
500 | RequestSyncTicketLegacy ([1.0.0-8.1.0] RequestSyncTicket) |
501 | RequestDownloadTicket |
502 | [4.0.0+] #RequestDownloadTicketForPrepurchasedContents |
503 | [9.0.0+] RequestSyncTicket |
504 | [9.0.0+] RequestDownloadTicketForPrepurchasedContents2 |
RequestDownloadTicketForPrepurchasedContents
[6.0.0+] Now takes an additional 4-bytes of input.
nim:eca
This is "nn::nim::detail::IShopServiceAccessServerInterface".
This was added with [5.0.0+].
Cmd | Name |
---|---|
0 | CreateServerInterface |
1 | [6.0.0+] RefreshDebugAvailability |
2 | [6.0.0+] ClearDebugResponse |
3 | [6.0.0+] RegisterDebugResponse |
IShopServiceAccessServer
This is "nn::nim::detail::IShopServiceAccessServer".
This was added with [5.0.0+].
Cmd | Name |
---|---|
0 | CreateAccessorInterface |
IShopServiceAccessor
This is "nn::nim::detail::IShopServiceAccessor".
This was added with [5.0.0+].
Cmd | Name |
---|---|
0 | CreateAsyncInterface |
IShopServiceAsync
This is "nn::nim::detail::IShopServiceAsync".
This was added with [5.0.0+].
Cmd | Name |
---|---|
0 | Cancel |
1 | GetSize |
2 | Read |
3 | GetErrorCode |
4 | Request |
5 | Prepare |
nim:ecas
This is "nn::nim::detail::IShopServiceAccessSystemInterface".
This was added with [7.0.0+].
Cmd | Name |
---|---|
0 | RegisterSpecialClient |
1 | UnregisterSpecialClient |
ntc
This is "nn::ntc::detail::service::IStaticService".
Cmd | Name |
---|---|
0 | OpenEnsureNetworkClockAvailabilityService |
100 | [3.0.0+] SuspendAutonomicTimeCorrection |
101 | [3.0.0+] ResumeAutonomicTimeCorrection |
Network-time-sync uses the "<...>/time" HTTPS URL listed in the below Network section. This just returns an UTC Unix time string.
IEnsureNetworkClockAvailabilityService
This is "nn::ntc::detail::service::IEnsureNetworkClockAvailabilityService".
Cmd | Name |
---|---|
0 | StartTask |
1 | GetFinishNotificationEvent |
2 | GetResult |
3 | Cancel |
4 | IsProcessing |
5 | [3.0.0+] GetServerTime |
IAsyncValue
This is "nn::nim::detail::IAsyncValue".
Cmd | Name |
---|---|
0 | GetSize |
1 | Get |
2 | Cancel |
3 | [4.0.0+] GetErrorContext |
IAsyncResult
This is "nn::nim::detail::IAsyncResult".
Cmd | Name |
---|---|
0 | Get |
1 | Cancel |
2 | [4.0.0+] GetErrorContext |
IAsyncProgressResult
This is "nn::nim::detail::IAsyncProgressResult".
Cmd | Name |
---|---|
0 | Get |
1 | Cancel |
2 | GetProgress |
3 | [4.0.0+] GetErrorContext |
IAsyncData
This is "nn::nim::detail::IAsyncData".
Cmd | Name |
---|---|
0 | |
1 | |
2 | |
3 | |
4 | |
5 | [4.0.0+] |