Line 6: |
Line 6: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || CreateSystemUpdateTask | + | | 0 || [[#CreateSystemUpdateTask]] |
| |- | | |- |
| | 1 || [[#DestroySystemUpdateTask]] | | | 1 || [[#DestroySystemUpdateTask]] |
Line 222: |
Line 222: |
| | | |
| [8.0.0+] Cmd76 now takes an additional 0x8-bytes of input. | | [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: <code>unk = inflag & 1 ? 0xC : 0x4</code>. |
| + | |
| + | 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 253: |
Line 276: |
| | | |
| == SystemUpdateTaskInfo == | | == SystemUpdateTaskInfo == |
| + | {| 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. | | 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 == | | == NetworkInstallTask == |