Line 6: |
Line 6: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || CreateSystemUpdateTask | + | | 0 || [[#CreateSystemUpdateTask]] |
| |- | | |- |
| | 1 || [[#DestroySystemUpdateTask]] | | | 1 || [[#DestroySystemUpdateTask]] |
Line 26: |
Line 26: |
| | 9 || RequestNetworkInstallTaskRun | | | 9 || RequestNetworkInstallTaskRun |
| |- | | |- |
− | | 10 || GetNetworkInstallTaskInfo | + | | 10 || [[#GetNetworkInstallTaskInfo]] |
| |- | | |- |
| | 11 || CommitNetworkInstallTask | | | 11 || CommitNetworkInstallTask |
Line 74: |
Line 74: |
| | 34 || [2.0.0+] RequestApplyDeltaTaskRun | | | 34 || [2.0.0+] RequestApplyDeltaTaskRun |
| |- | | |- |
− | | 35 || [2.0.0+] GetApplyDeltaTaskInfo | + | | 35 || [2.0.0+] [[#GetApplyDeltaTaskInfo]] |
| |- | | |- |
| | 36 || [2.0.0+] ListApplyDeltaTask | | | 36 || [2.0.0+] ListApplyDeltaTask |
Line 203: |
Line 203: |
| |- | | |- |
| | 99 || [7.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+] |
| |} | | |} |
| | | |
− | [3.0.0+] GetSystemUpdateTaskInfo now returns an additional 0x10-bytes of output. GetNetworkInstallTaskInfo now returns an additional 0x18-bytes of output. GetApplyDeltaTaskInfo now returns an additional 0x10-bytes of output. | + | [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]]. |
| | | |
− | [5.0.0+] GetSystemUpdateTaskInfo now returns an additional 8-bytes of output. RequestGameCardRegistrationStatus/RequestRegisterGameCard removed 8-bytes of input, and now takes an additional type-0x5 input buffer.
| + | Official sw sets '''unk''' to: <code>unk = inflag & 1 ? 0xC : 0x4</code>. |
| | | |
− | [8.0.0+] Cmd76 now takes an additional 0x8-bytes of input.
| + | Structure of the input struct: |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 || 0x8 || Unknown |
| + | |- |
| + | | 0x8 || 0x4 || Unknown |
| + | |- |
| + | | 0x9 || 0x1 || Unknown |
| + | |- |
| + | | 0xA || 0x1 || Unknown |
| + | |- |
| + | | 0xB || 0x5 || Padding? |
| + | |} |
| | | |
| == DestroySystemUpdateTask == | | == DestroySystemUpdateTask == |
Line 222: |
Line 257: |
| == CommitSystemUpdateTask == | | == CommitSystemUpdateTask == |
| Takes an input [[#SystemUpdateTask]], no output. | | Takes an input [[#SystemUpdateTask]], no output. |
| + | |
| + | == GetNetworkInstallTaskInfo == |
| + | Takes an input [[#NetworkInstallTask]], returns an output [[#NetworkInstallTaskInfo]]. |
| | | |
| == GetDownloadedSystemDataPath == | | == GetDownloadedSystemDataPath == |
Line 230: |
Line 268: |
| == IsExFatDriverIncluded == | | == IsExFatDriverIncluded == |
| Takes an input [[#SystemUpdateTask]], returns an output u8 bool flag. | | Takes an input [[#SystemUpdateTask]], returns an output u8 bool flag. |
| + | |
| + | == GetApplyDeltaTaskInfo == |
| + | Takes an input [[#ApplyDeltaTask]], returns an output [[#ApplyDeltaTaskInfo]]. |
| | | |
| == SystemUpdateTask == | | == SystemUpdateTask == |
Line 235: |
Line 276: |
| | | |
| == SystemUpdateTaskInfo == | | == SystemUpdateTaskInfo == |
− | This is a 0x28-byte struct. | + | {| class="wikitable" border="1" |
| + | |- |
| + | ! 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_Services|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 = | | = nim:shp = |
Line 282: |
Line 366: |
| | 400 || GetAccountByVirtualAccount | | | 400 || GetAccountByVirtualAccount |
| |- | | |- |
− | | 401 || [6.0.0+] | + | | 401 || [6.0.0+] GetVirtualAccount |
| |- | | |- |
− | | 500 || RequestSyncTicket | + | | 500 || RequestSyncTicketLegacy ([1.0.0-8.1.0] RequestSyncTicket) |
| |- | | |- |
| | 501 || RequestDownloadTicket | | | 501 || RequestDownloadTicket |
| |- | | |- |
− | | 502 || [4.0.0+] RequestDownloadTicketForPrepurchasedContents. [6.0.0+]: Now takes an additional 4-bytes of input. | + | | 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 = | | = nim:eca = |
Line 412: |
Line 503: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || | + | | 0 || GetSize |
| |- | | |- |
− | | 1 || | + | | 1 || Get |
| |- | | |- |
− | | 2 || | + | | 2 || Cancel |
| |- | | |- |
− | | 3 || [4.0.0+] | + | | 3 || [4.0.0+] GetErrorContext |
| |} | | |} |
| | | |
Line 428: |
Line 519: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || | + | | 0 || Get |
| |- | | |- |
− | | 1 || | + | | 1 || Cancel |
| |- | | |- |
− | | 2 || [4.0.0+] | + | | 2 || [4.0.0+] GetErrorContext |
| |} | | |} |
| | | |
Line 442: |
Line 533: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || | + | | 0 || Get |
| |- | | |- |
− | | 1 || | + | | 1 || Cancel |
| |- | | |- |
− | | 2 || | + | | 2 || GetProgress |
| |- | | |- |
− | | 3 || [4.0.0+] | + | | 3 || [4.0.0+] GetErrorContext |
| |} | | |} |
| | | |