NS services: Difference between revisions

No edit summary
No edit summary
 
(5 intermediate revisions by 2 users not shown)
Line 359: Line 359:


== GetApplicationContentPath ==
== GetApplicationContentPath ==
Takes a 0x16-type output buffer, an u8 [[NCM_services#ContentMetaType|ContentMetaType]], and an [[NCM_services#ApplicationId|ApplicationId]].
Takes a 0x16-type output buffer, an u8 [[NCM_services#ContentType|ContentType]], and an [[NCM_services#ApplicationId|ApplicationId]].


The input [[NCM_services#ApplicationId|ApplicationId]] is used with the application-title table like various other cmds, anything not in that table can't be used with this.
The input [[NCM_services#ApplicationId|ApplicationId]] is used with the application-title table like various other cmds, anything not in that table can't be used with this.
Line 1,593: Line 1,593:


This is essentially an async wrapper for [[#GetApplicationControlData]], with support for multiple ApplicationIds.
This is essentially an async wrapper for [[#GetApplicationControlData]], with support for multiple ApplicationIds.
==== Cmd421 ====
Takes an input TransferMemory handle, a type-0x5 input buffer containing an array of u64 [[NCM_services#ApplicationId|ApplicationIds]], an u8 [[#ApplicationControlSource]], an u64 size, returns an output Event handle and an [[#IAsyncValue]].
This is essentially the same as [[#ListApplicationTitle|ListApplicationTitle]] except the ApplicationControlSource is used here (ListApplicationTitle ignores it and uses 0xF0 instead).
The TransferMemory size must be at least: count*sizeof(u64) + count*[[NACP#ApplicationTitle|0x300]] + [[#GetApplicationControlData|0x1d000]].
The async task impl code eventually compares ApplicationControlSource with 0xF0, with a separate code-path being used when it doesn't match (which also handles [[NACP|compression]] when needed).


==== RequestCheckGameCardRegistration ====
==== RequestCheckGameCardRegistration ====
Line 2,447: Line 2,456:
| 4 || [9.0.0+] SelectApplicationDesiredLanguage ||
| 4 || [9.0.0+] SelectApplicationDesiredLanguage ||
|-
|-
| 5 || [19.0.0+] ||
| 5 || [19.0.0+] || Same as [[#IApplicationManagerInterface]] cmd 411
|-
|-
| 6 || [19.0.0+] ||
| 6 || [19.0.0+] || Same as [[#IApplicationManagerInterface]] cmd 416
|-
|-
| 7 || [20.0.0+] ||
| 7 || [20.0.0+] || Same as [[#IApplicationManagerInterface]] cmd 921
|-
|-
| 8 || [20.0.0+] ||
| 8 || [20.0.0+] || Same as [[#IApplicationManagerInterface]] cmd 922
|-
|-
| 9 || [20.0.0+] ||
| 9 || [20.0.0+] || Same as [[#IApplicationManagerInterface]] cmd 923
|-
|-
| 10 || [20.0.0+] ||
| 10 || [20.0.0+] || Same as [[#IApplicationManagerInterface]] cmd 421
|-
|-
| 11 || [20.0.0+] ||
| 11 || [20.0.0+] || Same as [[#IApplicationManagerInterface]] cmd 422
|-
|-
| 12 || [20.0.0+] ||
| 12 || [20.0.0+] || Same as [[#IApplicationManagerInterface]] cmd 423
|-
|-
| 13 || [20.0.0+] ||
| 13 || [20.0.0+] || Same as [[#IApplicationManagerInterface]] cmd 407
|-
|-
| 14 || [20.0.0+] ||
| 14 || [20.0.0+] || Same as [[#IApplicationManagerInterface]] cmd 408
|-
|-
| 15 || [20.0.0+] ||
| 15 || [20.0.0+] || Same as [[#IApplicationManagerInterface]] cmd 415
|-
|-
| 16 || [20.0.0+] ||
| 16 || [20.0.0+] ||
|-
|-
| 17 || [20.1.0+] ||
| 17 || [20.1.0+] || Same as [[#IApplicationManagerInterface]] cmd 933
|-
|-
| 18 || [21.0.0+] ||
| 18 || [21.0.0+] ||
Line 4,855: Line 4,864:
| 0x21 || 0x1 || [20.0.0+] ProperProgramExists. Set to whether the bit for ProperProgramExists is set from [[NCM_services|ncm]] IContentMetaDatabase GetAttributes.
| 0x21 || 0x1 || [20.0.0+] ProperProgramExists. Set to whether the bit for ProperProgramExists is set from [[NCM_services|ncm]] IContentMetaDatabase GetAttributes.
|-
|-
| 0x22 || 0xBE || Reserved
| 0x22 || 0x1 || [S2]
|-
| 0x23 || 0xBD || Reserved
|-
|-
| 0xE0 || 0x20 || HMAC-SHA256 over the previous 0xE0-bytes. Uses a different key than [[#SystemDeliveryInfo]].
| 0xE0 || 0x20 || HMAC-SHA256 over the previous 0xE0-bytes. Uses a different key than [[#SystemDeliveryInfo]].