NCM services: Difference between revisions

Paeton (talk | contribs)
No edit summary
Line 93: Line 93:
==== RedirectApplicationControlPath ====
==== RedirectApplicationControlPath ====
Takes an u64 '''TitleID''' and a X descriptor with a [[Filesystem_services#ContentPath|ContentPath]]. Used for [[NCA_Content_FS#NCA-type3|NCA-type3]].
Takes an u64 '''TitleID''' and a X descriptor with a [[Filesystem_services#ContentPath|ContentPath]]. Used for [[NCA_Content_FS#NCA-type3|NCA-type3]].
[9.0.0+] Now takes an additional 8-bytes of input.


Inserts a new [[#Location_List_Entry|entry]] with '''flag''' set to 1.
Inserts a new [[#Location_List_Entry|entry]] with '''flag''' set to 1.
Line 98: Line 100:
==== RedirectApplicationHtmlDocumentPath ====
==== RedirectApplicationHtmlDocumentPath ====
Takes an u64 '''TitleID''' and a X descriptor with a [[Filesystem_services#ContentPath|ContentPath]]. Used for [[NCA_Content_FS#NCA-type4|NCA-type4]].
Takes an u64 '''TitleID''' and a X descriptor with a [[Filesystem_services#ContentPath|ContentPath]]. Used for [[NCA_Content_FS#NCA-type4|NCA-type4]].
[9.0.0+] Now takes an additional 8-bytes of input.


Inserts a new [[#Location_List_Entry|entry]] with '''flag''' set to 1.
Inserts a new [[#Location_List_Entry|entry]] with '''flag''' set to 1.
Line 106: Line 110:
==== RedirectApplicationLegalInformationPath ====
==== RedirectApplicationLegalInformationPath ====
Takes an u64 '''TitleID''' and a X descriptor with a [[Filesystem_services#ContentPath|ContentPath]]. Used for [[NCA_Content_FS#NCA-type5|NCA-type5]].
Takes an u64 '''TitleID''' and a X descriptor with a [[Filesystem_services#ContentPath|ContentPath]]. Used for [[NCA_Content_FS#NCA-type5|NCA-type5]].
[9.0.0+] Now takes an additional 8-bytes of input.


Inserts a new [[#Location_List_Entry|entry]] with '''flag''' set to 1.
Inserts a new [[#Location_List_Entry|entry]] with '''flag''' set to 1.
Line 114: Line 120:
==== RedirectApplicationProgramPath ====
==== RedirectApplicationProgramPath ====
Same as [[#RedirectProgramPath|RedirectProgramPath]], but inserts a new [[#Location_List_Entry|entry]] with '''flag''' set to 1.
Same as [[#RedirectProgramPath|RedirectProgramPath]], but inserts a new [[#Location_List_Entry|entry]] with '''flag''' set to 1.
[9.0.0+] Now takes an additional 8-bytes of input.


==== ClearApplicationRedirection ====
==== ClearApplicationRedirection ====
Takes no input. Frees all linked-lists' entries that have '''flag''' set to 1.
Takes no input. Frees all linked-lists' entries that have '''flag''' set to 1.
[9.0.0+] Now takes a type-0x5 input buffer, no output.


==== EraseProgramRedirection ====
==== EraseProgramRedirection ====
Line 150: Line 160:
==== RedirectApplicationProgramPathForDebug ====
==== RedirectApplicationProgramPathForDebug ====
Same as [[#RedirectApplicationProgramPath |RedirectApplicationProgramPath ]], but uses a redirection shim on top of the real program path.
Same as [[#RedirectApplicationProgramPath |RedirectApplicationProgramPath ]], but uses a redirection shim on top of the real program path.
[9.0.0+] Like [[#RedirectApplicationProgramPath]] this now takes an additional 8-bytes of input.


[[NS_Services|NS]] uses this command if [[System_Settings#ns.application|ns.application!redirected_rom_storage_id_for_debug]] is different than 0x00.
[[NS_Services|NS]] uses this command if [[System_Settings#ns.application|ns.application!redirected_rom_storage_id_for_debug]] is different than 0x00.
Line 169: Line 181:
| 0 || ResolveProgramPath || u64 TitleID + C descriptor || Used for [[NCA_Content_FS#NCA-type1|NCA-type1]].
| 0 || ResolveProgramPath || u64 TitleID + C descriptor || Used for [[NCA_Content_FS#NCA-type1|NCA-type1]].
|-
|-
| 1 || RegisterProgramPath || u64 TitleID + X descriptor [[Filesystem_services#ContentPath|ContentPath]] || Sets the Type 0 fallback TID and path to the provided arguments.
| 1 || RegisterProgramPath || u64 TitleID + X descriptor [[Filesystem_services#ContentPath|ContentPath]] [9.0.0+] Now takes an additional 8-bytes of input. || Sets the Type 0 fallback TID and path to the provided arguments.
|-
|-
| 2 || UnregisterProgramPath || u64 TitleID || If the Type 0 fallback TID is == argument TID, unregisters the fallback path. Otherwise, noop.
| 2 || UnregisterProgramPath || u64 TitleID || If the Type 0 fallback TID is == argument TID, unregisters the fallback path. Otherwise, noop.
|-
|-
| 3 || RedirectProgramPath || u64 TitleID + X descriptor [[Filesystem_services#ContentPath|ContentPath]] ||
| 3 || RedirectProgramPath || u64 TitleID + X descriptor [[Filesystem_services#ContentPath|ContentPath]] [9.0.0+] Now takes an additional 8-bytes of input. ||
|-
|-
| 4 || [2.0.0+] ResolveHtmlDocumentPath || u64 TitleID + C descriptor ||
| 4 || [2.0.0+] ResolveHtmlDocumentPath || u64 TitleID + C descriptor ||
|-
|-
| 5 || [2.0.0+] RegisterHtmlDocumentPath || u64 TitleID + X descriptor [[Filesystem_services#ContentPath|ContentPath]] || Sets the Type 1 fallback TID and path to the provided arguments.
| 5 || [2.0.0+] RegisterHtmlDocumentPath || u64 TitleID + X descriptor [[Filesystem_services#ContentPath|ContentPath]] [9.0.0+] Now takes an additional 8-bytes of input. || Sets the Type 1 fallback TID and path to the provided arguments.
|-
|-
| 6 || [2.0.0+] UnregisterHtmlDocumentPath || u64 TitleID || If the Type 1 fallback TID is == argument TID, unregisters the fallback path. Otherwise, noop.
| 6 || [2.0.0+] UnregisterHtmlDocumentPath || u64 TitleID || If the Type 1 fallback TID is == argument TID, unregisters the fallback path. Otherwise, noop.
|-
|-
| 7 || [2.0.0+] RedirectHtmlDocumentPath || u64 TitleID + X descriptor [[Filesystem_services#ContentPath|ContentPath]] ||
| 7 || [2.0.0+] RedirectHtmlDocumentPath || u64 TitleID + X descriptor [[Filesystem_services#ContentPath|ContentPath]] [9.0.0+] Now takes an additional 8-bytes of input. ||
|-
|-
| 8 || [7.0.0+] Refresh || No input/output. ||  
| 8 || [7.0.0+] Refresh || No input/output. ||  
Line 197: Line 209:
| 0 || ResolveAddOnContentPath || u64 TitleID + C descriptor ||  
| 0 || ResolveAddOnContentPath || u64 TitleID + C descriptor ||  
|-
|-
| 1 || RegisterAddOnContentStorage || [[Filesystem_services#StorageId|StorageID]] + u64 TitleID ||  
| 1 || RegisterAddOnContentStorage || [[Filesystem_services#StorageId|StorageID]] + u64 TitleID [9.0.0+] Now takes an additional 8-bytes of input. ||  
|-
|-
| 2 || UnregisterAllAddOnContentPath || None || Clears all registered titles here.
| 2 || UnregisterAllAddOnContentPath || None || Clears all registered titles here.