Changes

1,451 bytes added ,  00:43, 22 August 2023
Line 2: Line 2:     
= bcat:a, bcat:m, bcat:u, bcat:s =
 
= bcat:a, bcat:m, bcat:u, bcat:s =
These are "nn::bcat::detail::ipc::IServiceCreator".
+
These are "nn::bcat::ipc::IServiceCreator".
    
These were added with [2.0.0+].
 
These were added with [2.0.0+].
Line 8: Line 8:  
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Cmd || Name || Notes
+
! Cmd || Name
 
|-
 
|-
| 0 || CreateBcatService || Takes an input u64 ProcessId, returns an [[#IBcatService]]
+
| 0 || [[#CreateBcatService]]
 
|-
 
|-
| 1 || CreateDeliveryCacheStorageService || Takes an input u64 ProcessId, returns an [[#IDeliveryCacheStorageService]]
+
| 1 || [[#CreateDeliveryCacheStorageService]]
 
|-
 
|-
| 2 || CreateDeliveryCacheStorageServiceWithApplicationId || Takes an input u64 TitleId, returns an [[#IDeliveryCacheStorageService]]
+
| 2 || [[#CreateDeliveryCacheStorageServiceWithApplicationId]]
 
|-
 
|-
| 3 || [2.0.0-2.3.0] CreateDeliveryCacheProgressService || Takes an input u64 ProcessId, returns an [[#IDeliveryCacheProgressService]]
+
| 3 || [2.0.0-2.3.0] [[#CreateDeliveryCacheProgressService]]
 
|-
 
|-
| 4 || [2.0.0-2.3.0] CreateDeliveryCacheProgressServiceWithApplicationId || Takes an input u64 TitleId, returns an [[#IDeliveryCacheProgressService]]
+
| 4 || [2.0.0-2.3.0] [[#CreateDeliveryCacheProgressServiceWithApplicationId]]
 
|}
 
|}
    
Equivalent to 3DS BOSS(SpotPass). See [[BCAT_Content_Container|here]] for BCAT-content-container.
 
Equivalent to 3DS BOSS(SpotPass). See [[BCAT_Content_Container|here]] for BCAT-content-container.
 +
 +
== CreateBcatService ==
 +
Takes an input u64 ProcessId. Returns an [[#IBcatService]].
 +
 +
== CreateDeliveryCacheStorageService ==
 +
Takes an input u64 ProcessId. Returns an [[#IDeliveryCacheStorageService]].
 +
 +
== CreateDeliveryCacheStorageServiceWithApplicationId  ==
 +
Takes an input u64 <code>nn::ApplicationId</code>. Returns an [[#IDeliveryCacheStorageService]].
 +
 +
== CreateDeliveryCacheProgressService  ==
 +
Takes an input u64 ProcessId. Returns an [[#IDeliveryCacheProgressService]].
 +
 +
== CreateDeliveryCacheProgressServiceWithApplicationId  ==
 +
Takes an input u64 <code>nn::ApplicationId</code>. returns an [[#IDeliveryCacheProgressService]].
    
== IBcatService ==
 
== IBcatService ==
This is "nn::bcat::detail::ipc::IBcatService".
+
This is "nn::bcat::ipc::IBcatService".
    
This was added with [2.0.0+].
 
This was added with [2.0.0+].
Line 52: Line 67:  
| 20410 || [9.1.0+] SetSystemApplicationDeliveryTaskTimer
 
| 20410 || [9.1.0+] SetSystemApplicationDeliveryTaskTimer
 
|-
 
|-
| 30100 || SetPassphrase
+
| 30100 || [[#SetPassphrase]]
 
|-
 
|-
 
| 30101 || [2.0.0-2.3.0]  
 
| 30101 || [2.0.0-2.3.0]  
Line 71: Line 86:  
|-
 
|-
 
| 90100 || GetDeliveryTaskList
 
| 90100 || GetDeliveryTaskList
 +
|-
 +
| 90101 || [11.0.0+] GetDeliveryTaskListForSystem
 
|-
 
|-
 
| 90200 || [[#GetDeliveryList]]
 
| 90200 || [[#GetDeliveryList]]
Line 80: Line 97:  
| 90300 || [3.0.0+] GetPushNotificationLog
 
| 90300 || [3.0.0+] GetPushNotificationLog
 
|-
 
|-
| 90101 || [11.0.0+]
+
| 90301 || [11.0.0+] GetDeliveryCacheStorageUsage
|-
  −
| 90301 || [11.0.0+]
   
|}
 
|}
   Line 91: Line 106:     
=== RequestSyncDeliveryCacheWithApplicationId ===
 
=== RequestSyncDeliveryCacheWithApplicationId ===
Takes an input u64 <code>nn::ApplicationId</code>, no output.
+
Takes an input u64 <code>nn::ApplicationId</code>. No output.
    
[3.0.0+] Now takes an additional 8-bytes of input, and returns an [[#IDeliveryCacheProgressService]].
 
[3.0.0+] Now takes an additional 8-bytes of input, and returns an [[#IDeliveryCacheProgressService]].
    
=== GetDeliveryCacheStorageUpdateNotifier ===
 
=== GetDeliveryCacheStorageUpdateNotifier ===
Takes an input u64 <code>nn::ApplicationId</code>, returns an [[#INotifierService]].
+
Takes an input u64 <code>nn::ApplicationId</code>. Returns an [[#INotifierService]].
    
=== RequestSuspendDeliveryTask ===
 
=== RequestSuspendDeliveryTask ===
Takes an input u64 <code>nn::ApplicationId</code>, returns an [[#IDeliveryTaskSuspensionService]].
+
Takes an input u64 <code>nn::ApplicationId</code>. Returns an [[#IDeliveryTaskSuspensionService]].
    
=== RegisterSystemApplicationDeliveryTask ===
 
=== RegisterSystemApplicationDeliveryTask ===
Takes an input u64 <code>nn::ApplicationId</code>, no output.
+
Takes an input u64 <code>nn::ApplicationId</code>. No output.
    
=== UnregisterSystemApplicationDeliveryTask ===
 
=== UnregisterSystemApplicationDeliveryTask ===
Takes an input u64 <code>nn::ApplicationId</code>, no output.
+
Takes an input u64 <code>nn::ApplicationId</code>. No output.
 +
 
 +
=== SetPassphrase ===
 +
Takes an input u64 <code>nn::ApplicationId</code> and a type-0x9 input buffer. No output.
    
=== GetDeliveryList ===
 
=== GetDeliveryList ===
Takes a type-0x6 output buffer, returns a total of 4-bytes of output.
+
Takes a type-0x6 output buffer. Returns a total of 4-bytes of output.
    
[3.0.0+] Now takes a total of 8-bytes of input, and returns an additional 4-bytes of output.
 
[3.0.0+] Now takes a total of 8-bytes of input, and returns an additional 4-bytes of output.
    
=== IDeliveryCacheProgressService ===
 
=== IDeliveryCacheProgressService ===
This is "nn::bcat::detail::ipc::IDeliveryCacheProgressService".
+
This is "nn::bcat::ipc::IDeliveryCacheProgressService".
    
This was added with [2.0.0+].
 
This was added with [2.0.0+].
Line 127: Line 145:     
== IDeliveryCacheStorageService ==
 
== IDeliveryCacheStorageService ==
This is "nn::bcat::detail::ipc::IDeliveryCacheStorageService".
+
This is "nn::bcat::ipc::IDeliveryCacheStorageService".
    
This was added with [2.0.0+].
 
This was added with [2.0.0+].
Line 143: Line 161:     
=== IDeliveryCacheFileService ===
 
=== IDeliveryCacheFileService ===
This is "nn::bcat::detail::ipc::IDeliveryCacheFileService".
+
This is "nn::bcat::ipc::IDeliveryCacheFileService".
    
This was added with [2.0.0+].
 
This was added with [2.0.0+].
Line 161: Line 179:     
=== IDeliveryCacheDirectoryService ===
 
=== IDeliveryCacheDirectoryService ===
This is "nn::bcat::detail::ipc::IDeliveryCacheDirectoryService".
+
This is "nn::bcat::ipc::IDeliveryCacheDirectoryService".
    
This was added with [2.0.0+].
 
This was added with [2.0.0+].
Line 177: Line 195:     
=== INotifierService ===
 
=== INotifierService ===
This is "nn::bcat::detail::ipc::INotifierService".
+
This is "nn::bcat::ipc::INotifierService".
    
Added with [8.0.0+].
 
Added with [8.0.0+].
Line 189: Line 207:     
=== IDeliveryTaskSuspensionService ===
 
=== IDeliveryTaskSuspensionService ===
This is "nn::bcat::detail::ipc::IDeliveryTaskSuspensionService".
+
This is "nn::bcat::ipc::IDeliveryTaskSuspensionService".
    
Added with [8.0.0+].
 
Added with [8.0.0+].
Line 195: Line 213:  
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Cmd || Name || Notes
+
! Cmd || Name
 
|-
 
|-
| 0 || GetEvent ||
+
| 0 || GetEvent
 
|}
 
|}
   Line 211: Line 229:  
All sessions have 32 sessions.
 
All sessions have 32 sessions.
 
Permission masks are:
 
Permission masks are:
   
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 259: Line 276:  
| 30101 || [3.0.0+] GetTopicList || 2
 
| 30101 || [3.0.0+] GetTopicList || 2
 
|-
 
|-
| [[#30110]] || [6.0.0+] || 2
+
| 30110 || [6.0.0+] || 2
 
|-
 
|-
 
| 30200 || [[#IsSystemUpdateRequired]] || 2
 
| 30200 || [[#IsSystemUpdateRequired]] || 2
Line 265: Line 282:  
| 30201 || [8.0.0+] || 2
 
| 30201 || [8.0.0+] || 2
 
|-
 
|-
| [[#30210]] || [10.0.0+] || 2
+
| 30210 || [10.0.0+] || 2
 
|-
 
|-
 
| 30300 || RequestImmediateReception || 2
 
| 30300 || RequestImmediateReception || 2
Line 271: Line 288:  
| 30400 || [3.0.0+] DecodeArchiveFile || 2
 
| 30400 || [3.0.0+] DecodeArchiveFile || 2
 
|-
 
|-
| [[#30500]] || [8.0.0+] ? || 2
+
| 30500 || [8.0.0+] ? || 2
 
|-
 
|-
 
| 30900 || [1.0.0] (No input, returns an [[#INewlyArrivedEventHolder]]) || 2
 
| 30900 || [1.0.0] (No input, returns an [[#INewlyArrivedEventHolder]]) || 2
Line 303: Line 320:     
=== 30500 ===
 
=== 30500 ===
Takes a type-0x9 input buffer URL, the size of the transfer memory and a handle for the latter, returns an [[#IUnknown2]].
+
Takes a type-0x9 input buffer URL, the size of the transfer memory and a handle for the latter, returns an [[#IDownloadContext]].
 
Downloaded files need to be encrypted [https://switchbrew.org/wiki/BCAT_Content_Container BCAT Content Container] (Crypto type 1-3).
 
Downloaded files need to be encrypted [https://switchbrew.org/wiki/BCAT_Content_Container BCAT Content Container] (Crypto type 1-3).
 
Files will be decrypted before being stored in the transfer memory.
 
Files will be decrypted before being stored in the transfer memory.
Line 393: Line 410:  
Event is signaled on fetch from CDN if the file already exists.
 
Event is signaled on fetch from CDN if the file already exists.
   −
== IUnknown2 ==
+
== IDownloadContext ==
 +
This is <nowiki>"nn::news::detail::ipc::IDownloadContext"</nowiki>.
 +
 
 
This was added with [8.0.0+].
 
This was added with [8.0.0+].
 +
 
On creation this object is enqueued and an event is signaled prompting a download from another thread (nn.news.Downloader).
 
On creation this object is enqueued and an event is signaled prompting a download from another thread (nn.news.Downloader).
  −
(Made up names)
      
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 413: Line 431:     
=== Get ===
 
=== Get ===
 +
Unofficial name.
 +
 
Return event handle. Signaled on download finish.
 
Return event handle. Signaled on download finish.
    
=== Cancel ===
 
=== Cancel ===
 +
Unofficial name.
 +
 
Cancels Download.
 
Cancels Download.
    
=== GetResult ===
 
=== GetResult ===
 +
Unofficial name.
 +
 
Returns last result.
 
Returns last result.
    
=== GetSize ===
 
=== GetSize ===
 +
Unofficial name.
 +
 
Returns final decoded size. 0 if the result of [[#GetResult]] is not 0 or Download isn't finished/was canceled.
 
Returns final decoded size. 0 if the result of [[#GetResult]] is not 0 or Download isn't finished/was canceled.
    
== NewsDatabase ==
 
== NewsDatabase ==
   
Internal SQLite database. Has a second version since 6.0.0.
 
Internal SQLite database. Has a second version since 6.0.0.
   Line 485: Line 510:     
== NewsRecordV1 ==
 
== NewsRecordV1 ==
   
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 509: Line 533:     
== NewsRecord ==
 
== NewsRecord ==
   
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 568: Line 591:  
|-
 
|-
 
| 10400 || [9.0.0+] GetSystemSessionId
 
| 10400 || [9.0.0+] GetSystemSessionId
 +
|-
 +
| 10500 || [15.0.0+] SendReportWithUser
 
|-
 
|-
 
| 20100 || SaveSystemReport
 
| 20100 || SaveSystemReport
Line 610: Line 635:  
= mnpp:app =
 
= mnpp:app =
 
This is "nn::mnpp::detail::ipc::IServiceForApplication".
 
This is "nn::mnpp::detail::ipc::IServiceForApplication".
 +
 +
This was added with [13.0.0+].
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 615: Line 642:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 ||  
+
| 0 || [[#Initialize]]
 
|-
 
|-
| 1 ||  
+
| 1 || [[#SubmitEvent]]
 
|}
 
|}
 +
 +
== Initialize ==
 +
Unofficial name.
 +
 +
Takes a PID-descriptor and a reserved input u64. No output.
 +
 +
Uses [[Glue_services#arp:r|arp:r]] commands [[Glue_services#GetApplicationInstanceId|GetApplicationInstanceId]] and [[Glue_services#GetApplicationLaunchProperty|GetApplicationLaunchProperty]] to get and store the application's [[NCM_services#ProgramId|ProgramId]].
 +
 +
== SubmitEvent ==
 +
Unofficial name.
 +
 +
Takes an input [[Account_services#Uid|Uid]] and a type-0x5 input buffer. No output.
 +
 +
Uses the input buffer's contents to create a "mission event" which is later uploaded to "fw-api.%.nso.nintendo.net/v1/events".
    
= mnpp:sys =
 
= mnpp:sys =
 
This is "nn::mnpp::detail::ipc::IServiceForSystem".
 
This is "nn::mnpp::detail::ipc::IServiceForSystem".
 +
 +
This was added with [13.0.0+].
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 630: Line 673:  
|-
 
|-
 
| 100 ||  
 
| 100 ||  
 +
|-
 +
| 200 || [13.1.0-13.2.1]
 +
|-
 +
| 300 || [13.1.0-14.1.2]
 +
|-
 +
| 400 || [14.0.0-14.1.2]
 
|}
 
|}
    
= mnpp:web =
 
= mnpp:web =
 
This is "nn::mnpp::detail::ipc::IServiceForWebBrowser".
 
This is "nn::mnpp::detail::ipc::IServiceForWebBrowser".
 +
 +
This was added with [13.0.0+].
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 640: Line 691:  
|-
 
|-
 
| 0 ||  
 
| 0 ||  
 +
|-
 +
| 1 || [14.0.0+]
 +
|-
 +
| 10 || [14.0.0+]
 +
|-
 +
| 20 || [14.0.0+]
 +
|-
 +
| 100 || [16.1.0+]
 
|}
 
|}