BOSS Services: Difference between revisions
DaniElectra (talk | contribs) Make links of all named BOSS commands |
|||
(14 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
==BOSS Service "boss:U"== | ==BOSS User Service "boss:U"== | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 9: | Line 9: | ||
|- | |- | ||
| 0x00020100 | | 0x00020100 | ||
| [[ | | [[BOSSU:SetStorageInfo|SetStorageInfo]] | ||
|- | |- | ||
| 0x00030000 | | 0x00030000 | ||
| [[ | | [[BOSSU:UnregisterStorage|UnregisterStorage]] | ||
|- | |- | ||
| 0x00040000 | | 0x00040000 | ||
| | | [[BOSSU:GetStorageInfo|GetStorageInfo]] | ||
|- | |- | ||
| 0x00050042 | | 0x00050042 | ||
| | | [[BOSSU:RegisterPrivateRootCa|RegisterPrivateRootCa]] | ||
|- | |- | ||
| 0x00060084 | | 0x00060084 | ||
| <nowiki>(u32 Size0, u32 Size1, ((Size0<<4) | 10), Buf0, ((Size1<<4) | 10), Buf1)</nowiki> This writes the content of the input buffers into files "bossdb:/%s_CL" and "bossdb:/%s_CLK", where "%s" is generated from the programID. | | [[BOSSU:RegisterPrivateClientCert|RegisterPrivateClientCert]] <nowiki>(u32 Size0, u32 Size1, ((Size0<<4) | 10), Buf0, ((Size1<<4) | 10), Buf1)</nowiki> This writes the content of the input buffers into files "bossdb:/%s_CL" and "bossdb:/%s_CLK", where "%s" is generated from the programID. | ||
|- | |- | ||
| 0x00070000 | | 0x00070000 | ||
| | | [[BOSSU:GetNewArrivalFlag|GetNewArrivalFlag]] | ||
|- | |- | ||
| 0x00080002 | | 0x00080002 | ||
| Used for sending a handle. This is used with a table of programIDs etc with a maximum of 5 entries. | | [[BOSSU:RegisterNewArrivalEvent|RegisterNewArrivalEvent]]: Used for sending a handle. This is used with a table of programIDs etc with a maximum of 5 entries. | ||
|- | |- | ||
| 0x00090040 | | 0x00090040 | ||
| [[ | | [[BOSSU:SetOptoutFlag|SetOptoutFlag]] | ||
|- | |- | ||
| 0x000A0000 | | 0x000A0000 | ||
| [[ | | [[BOSSU:GetOptoutFlag|GetOptoutFlag]] | ||
|- | |- | ||
| 0x000B00C2 | | 0x000B00C2 | ||
Line 48: | Line 48: | ||
|- | |- | ||
| 0x000F0042 | | 0x000F0042 | ||
| | | [[BOSSU:GetStepIdList|GetStepIdList]] | ||
|- | |- | ||
| 0x00100102 | | 0x00100102 | ||
Line 54: | Line 54: | ||
|- | |- | ||
| 0x00110102 | | 0x00110102 | ||
| | | [[BOSSU:GetNsDataIdList1|GetNsDataIdList1]] | ||
|- | |- | ||
| 0x00120102 | | 0x00120102 | ||
| | | [[BOSSU:GetNsDataIdList2|GetNsDataIdList2]] | ||
|- | |- | ||
| 0x00130102 | | 0x00130102 | ||
| | | [[BOSSU:GetNsDataIdList3|GetNsDataIdList3]] | ||
|- | |- | ||
| 0x00140082 | | 0x00140082 | ||
Line 72: | Line 72: | ||
|- | |- | ||
| 0x00170082 | | 0x00170082 | ||
| | | [[BOSSU:UpdateTaskInterval|UpdateTaskInterval]] | ||
|- | |- | ||
| 0x00180082 | | 0x00180082 | ||
| UpdateTaskCount | | [[BOSSU:UpdateTaskCount|UpdateTaskCount]] | ||
|- | |- | ||
| 0x00190042 | | 0x00190042 | ||
| | | [[BOSSU:GetTaskInterval|GetTaskInterval]] | ||
|- | |- | ||
| 0x001A0042 | | 0x001A0042 | ||
| GetTaskCount | | [[BOSSU:GetTaskCount|GetTaskCount]] | ||
|- | |- | ||
| 0x001B0042 | | 0x001B0042 | ||
| GetTaskServiceStatus | | [[BOSSU:GetTaskServiceStatus|GetTaskServiceStatus]] | ||
|- | |- | ||
| 0x001C0042 | | 0x001C0042 | ||
Line 96: | Line 96: | ||
|- | |- | ||
| 0x001F0000 | | 0x001F0000 | ||
| [[ | | [[BOSSU:GetTaskFinishHandle|GetTaskFinishHandle]] | ||
|- | |- | ||
| 0x00200082 | | 0x00200082 | ||
Line 102: | Line 102: | ||
|- | |- | ||
| 0x00210042 | | 0x00210042 | ||
| GetTaskResult | | [[BOSSU:GetTaskResult|GetTaskResult]] | ||
|- | |- | ||
| 0x00220042 | | 0x00220042 | ||
| | | [[BOSSU:GetTaskCommErrorCode|GetTaskCommErrorCode]] | ||
|- | |- | ||
| 0x002300C2 | | 0x002300C2 | ||
| GetTaskStatus | | [[BOSSU:GetTaskStatus|GetTaskStatus]] | ||
|- | |- | ||
| 0x00240082 | | 0x00240082 | ||
| | | [[BOSSU:GetTaskError|GetTaskError]] | ||
|- | |- | ||
| 0x00250082 | | 0x00250082 | ||
| | | [[BOSSU:GetTaskInfo|GetTaskInfo]] | ||
|- | |- | ||
| 0x00260040 | | 0x00260040 | ||
| [[ | | [[BOSSU:DeleteNsData|DeleteNsData]] | ||
|- | |- | ||
| 0x002700C2 | | 0x002700C2 | ||
Line 126: | Line 126: | ||
|- | |- | ||
| 0x00290080 | | 0x00290080 | ||
| | | [[BOSSU:SetNsDataAdditionalInfo|SetNsDataAdditionalInfo]] | ||
|- | |- | ||
| 0x002A0040 | | 0x002A0040 | ||
| | | [[BOSSU:GetNsDataAdditionalInfo|GetNsDataAdditionalInfo]]. Writes an output u32 to cmdreply[2]. | ||
|- | |- | ||
| 0x002B0080 | | 0x002B0080 | ||
| SetNsDataNewFlag | | [[BOSSU:SetNsDataNewFlag|SetNsDataNewFlag]] | ||
|- | |- | ||
| 0x002C0040 | | 0x002C0040 | ||
| GetNsDataNewFlag | | [[BOSSU:GetNsDataNewFlag|GetNsDataNewFlag]] | ||
|- | |- | ||
| 0x002D0040 | | 0x002D0040 | ||
| (u32 NsDataId) Writes an output u64 to cmdreply[2-3], from the content file in extdata. | | [[BOSSU:GetNsDataLastUpdate|GetNsDataLastUpdate]] (u32 NsDataId) Writes an output u64 to cmdreply[2-3], from the content file in extdata. | ||
|- | |- | ||
| 0x002E0040 | | 0x002E0040 | ||
| [[ | | [[BOSSU:GetErrorCode|GetErrorCode]] | ||
|- | |- | ||
| 0x002F0140 | | 0x002F0140 | ||
| RegisterStorageEntry | | [[BOSSU:RegisterStorageEntry|RegisterStorageEntry]] | ||
|- | |- | ||
| 0x00300000 | | 0x00300000 | ||
| | | [[BOSSU:GetStorageEntryInfo|GetStorageEntryInfo]] | ||
|- | |- | ||
| 0x00310100 | | 0x00310100 | ||
| | | [[BOSSU:SetStorageOption|SetStorageOption]] | ||
|- | |- | ||
| 0x00320000 | | 0x00320000 | ||
| | | [[BOSSU:GetStorageOption|GetStorageOption]] | ||
|- | |- | ||
| 0x00330042 | | 0x00330042 | ||
| [[ | | [[BOSSU:StartBgImmediate|StartBgImmediate]] | ||
|- | |- | ||
| 0x00340042 | | 0x00340042 | ||
| [[ | | [[BOSSU:GetTaskPriority|GetTaskPriority]] | ||
|- | |- | ||
| 0x003500C2 | | 0x003500C2 | ||
| RegisterImmediateTask | | [[BOSSU:RegisterImmediateTask|RegisterImmediateTask]] | ||
|- | |- | ||
| 0x00360084 | | 0x00360084 | ||
| <nowiki>(u32 TaskID_Size, u32 BufSize, ((TaskID_Size<<4) | 10), TaskID_buf, ((BufSize<<4) | 10), Buf)</nowiki> BufSize must match 0x60. | | [[BOSSU:SetTaskQuery|SetTaskQuery]] <nowiki>(u32 TaskID_Size, u32 BufSize, ((TaskID_Size<<4) | 10), TaskID_buf, ((BufSize<<4) | 10), Buf)</nowiki> BufSize must match 0x60. | ||
|- | |- | ||
| 0x00370084 | | 0x00370084 | ||
| <nowiki>(u32 TaskID_Size, u32 BufSize, ((TaskID_Size<<4) | 10), TaskID_buf, ((BufSize<<4) | 10), Buf)</nowiki> BufSize must match 0x60. | | [[BOSSU:GetTaskQuery|GetTaskQuery]] <nowiki>(u32 TaskID_Size, u32 BufSize, ((TaskID_Size<<4) | 10), TaskID_buf, ((BufSize<<4) | 10), Buf)</nowiki> BufSize must match 0x60. | ||
|} | |} | ||
==Privileged | ==BOSS Privileged Service "boss:P"== | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 179: | Line 179: | ||
| 0x04010082 | | 0x04010082 | ||
| [[BOSSP:InitializeSessionPrivileged|InitializeSessionPrivileged]] | | [[BOSSP:InitializeSessionPrivileged|InitializeSessionPrivileged]] | ||
|- | |||
| 0x04020000 | |||
| ? | |||
|- | |||
| 0x04030000 | |||
| ? | |||
|- | |- | ||
| 0x04040080 | | 0x04040080 | ||
Line 184: | Line 190: | ||
|- | |- | ||
| 0x040500C0 | | 0x040500C0 | ||
| | | [[BOSSP:SetAppNewFlag|SetAppNewFlag]] | ||
|- | |- | ||
| 0x040600C0 | | 0x040600C0 | ||
| | | [[BOSSP:SetOptoutFlagPrivileged|SetOptoutFlagPrivileged]] | ||
|- | |- | ||
| 0x04070080 | | 0x04070080 | ||
| | | [[BOSSP:GetOptoutFlagPrivileged|GetOptoutFlagPrivileged]] | ||
|- | |||
| 0x04080040 | |||
| (u8 optout) Sets the optout flag to all apps? | |||
|- | |- | ||
| 0x04090102 | | 0x04090102 | ||
| | | [[BOSSP:UnregisterTaskPrivileged|UnregisterTaskPrivileged]] | ||
|- | |||
| 0x040A0000 | |||
| [[BOSSP:GetAppIdList|GetAppIdList]] | |||
|- | |- | ||
| 0x040B0080 | | 0x040B0080 | ||
| | | [[BOSSP:GetTaskIdListPrivileged|GetTaskIdListPrivileged]] | ||
|- | |||
| 0x040C00C2 | |||
| [[BOSSP:GetStepIdListPrivileged|GetStepIdListPrivileged]] | |||
|- | |- | ||
| 0x040D0182 | | 0x040D0182 | ||
| | | [[BOSSP:GetNsDataIdListPrivileged|GetNsDataIdListPrivileged]] | ||
|- | |||
| 0x040E0182 | |||
| [[BOSSP:GetNsDataIdListPrivileged1|GetNsDataIdListPrivileged1]] | |||
|- | |||
| 0x040F0102 | |||
| [[BOSSP:GetTaskInfoPrivileged|GetTaskInfoPrivileged]] | |||
|- | |||
| 0x04100102 | |||
| [[BOSSP:GetTaskStatusPrivileged1|GetTaskStatusPrivileged1]] Same as GetTaskStatusPrivileged, but the input bool is set to false | |||
|- | |||
| 0x04110102 | |||
| [[BOSSP:GetTaskErrorPrivileged|GetTaskErrorPrivileged]] | |||
|- | |||
| 0x04120000 | |||
| Related to the sysmodule savedata? | |||
|- | |- | ||
| 0x04130082 | | 0x04130082 | ||
| [[BOSSP:SendPropertyPrivileged|SendPropertyPrivileged]] | | [[BOSSP:SendPropertyPrivileged|SendPropertyPrivileged]] | ||
|- | |||
| 0x04140082 | |||
| [[BOSSP:ReceivePropertyPrivileged|ReceivePropertyPrivileged]] | |||
|- | |- | ||
| 0x041500C0 | | 0x041500C0 | ||
| DeleteNsDataPrivileged | | [[BOSSP:DeleteNsDataPrivileged|DeleteNsDataPrivileged]] | ||
|- | |- | ||
| 0x04160142 | | 0x04160142 | ||
Line 212: | Line 245: | ||
| 0x04170182 | | 0x04170182 | ||
| [[BOSSP:ReadNsDataPrivileged|ReadNsDataPrivileged]] | | [[BOSSP:ReadNsDataPrivileged|ReadNsDataPrivileged]] | ||
|- | |||
| 0x04180100 | |||
| [[BOSSP:SetNsDataAdditionalInfoPrivileged|SetNsDataAdditionalInfoPrivileged]] | |||
|- | |||
| 0x041900C0 | |||
| [[BOSSP:GetNsDataAdditionalInfoPrivileged|GetNsDataAdditionalInfoPrivileged]] | |||
|- | |- | ||
| 0x041A0100 | | 0x041A0100 | ||
| SetNsDataNewFlagPrivileged | | [[BOSSP:SetNsDataNewFlagPrivileged|SetNsDataNewFlagPrivileged]] | ||
|- | |- | ||
| 0x041B00C0 | | 0x041B00C0 | ||
| GetNsDataNewFlagPrivileged | | [[BOSSP:GetNsDataNewFlagPrivileged|GetNsDataNewFlagPrivileged]] | ||
|- | |- | ||
| 0x041C00C0 | | 0x041C00C0 | ||
| | | [[BOSSP:GetNsDataLastUpdatePrivileged|GetNsDataLastUpdatePrivileged]] | ||
|- | |||
| 0x041D0040 | |||
| (bool unk_flag1) | |||
|- | |||
| 0x041E0000 | |||
| Returns: bool unk_flag1 | |||
|- | |||
| 0x041F0040 | |||
| [[BOSSP:SetTestModeAvailability|SetTestModeAvailability]] (bool test_mode_flag) | |||
|- | |||
| 0x04200000 | |||
| [[BOSSP:GetTestModeAvailability|GetTestModeAvailability]]. Returns: bool test_mode_flag | |||
|- | |||
| 0x04210000? | |||
| Stubbed | |||
|- | |||
| 0x04220000 | |||
| ? | |||
|- | |||
| 0x04230000? | |||
| Stubbed | |||
|- | |||
| 0x04240000 | |||
| ? | |||
|- | |||
| 0x04250042 | |||
| [[BOSSP:SetPolicyListEnvId|SetPolicyListEnvId]]. Sets the policylist env ID (default env ID is "p01"): strncpy("p01", in, 8) | |||
|- | |||
| 0x04260042 | |||
| [[BOSSP:GetPolicyListEnvId|GetPolicyListEnvId]]. Gets the policylist env ID (default env ID is "p01"): strcpy(out, "p01") | |||
|- | |||
| 0x04270042 | |||
| [[BOSSP:SetPolicyListUrl|SetPolicyListUrl]]. Sets a custom policylist URL. Max of 0x200 chars | |||
|- | |||
| 0x04280042 | |||
| [[BOSSP:GetPolicyListUrl|GetPolicyListUrl]]. Gets the custom policylist URL | |||
|- | |||
| 0x04290002 | |||
| (Handle unk) | |||
|- | |||
| 0x042A0000 | |||
| Closes the previous handle | |||
|- | |||
| 0x042B0000 | |||
| Returns: u8 unk | |||
|- | |||
| 0x042C0042 | |||
| <nowiki>(u32 Size, ((Size<<4)|0xC), Buf)</nowiki> | |||
|- | |||
| 0x042D0000 | |||
| Returns: u32 unk | |||
|- | |- | ||
| 0x042E00C2 | | 0x042E00C2 | ||
| | | [[BOSSP:StartTaskPrivileged|StartTaskPrivileged]] | ||
|- | |- | ||
| 0x042F00C2 | | 0x042F00C2 | ||
| | | [[BOSSP:StartTaskImmediatePrivileged|StartTaskImmediatePrivileged]] | ||
|- | |- | ||
| 0x043000C2 | | 0x043000C2 | ||
| | | [[BOSSP:CancelTaskPrivileged|CancelTaskPrivileged]] | ||
|- | |||
| 0x04310040 | |||
| (u32 unk_4) The input is stored in a variable whose default value is 0x70 | |||
|- | |||
| 0x04320040 | |||
| Returns: u32 unk_4 | |||
|- | |||
| 0x04330080 | |||
| [[BOSSP:GetStorageOptionPrivileged|GetStorageOptionPrivileged]] | |||
|- | |||
| 0x043400C2 | |||
| [[BOSSP:StartBgImmediatePrivileged|StartBgImmediatePrivileged]] | |||
|- | |||
| 0x04350042 | |||
| <nowiki>(u32 Size, ((Size<<4)|0xA), Buf)</nowiki>. Stubbed | |||
|- | |||
| 0x04360042 | |||
| <nowiki>(u32 Size, ((Size<<4)|0xC), Buf)</nowiki>. Stubbed | |||
|- | |||
| 0x043700C2 | |||
| [[BOSSP:GetTaskPriorityPrivileged|GetTaskPriorityPrivileged]] | |||
|- | |||
| 0x04380000 | |||
| ? | |||
|- | |||
| 0x04390104 | |||
| [[BOSSP:GetTaskQueryPrivileged|GetTaskQueryPrivileged]] | |||
|- | |||
| 0x043A0042 | |||
| <nowiki>(u32 Size, ((Size<<4)|0xA), Buf)</nowiki>. Stubbed | |||
|- | |||
| 0x043B0042 | |||
| <nowiki>(u32 Size, ((Size<<4)|0xC), Buf)</nowiki>. Stubbed | |||
|- | |||
| 0x043C0080 | |||
| (u64 title_id) | |||
|- | |||
| 0x043D0080 | |||
| (u64 title_id) | |||
|- | |||
| 0x043E0042 | |||
| [[BOSSP:SetSprelayUrl|SetSprelayUrl]] <nowiki>(u32 Size, ((Size<<4)|0xA), Buf)</nowiki>. Sets the sprelay URL | |||
|- | |||
| 0x043F0042 | |||
| [[BOSSP:GetSprelayUrl|GetSprelayUrl]] <nowiki>(u32 Size, ((Size<<4)|0xC), Buf)</nowiki>. Gets the sprelay URL | |||
|- | |||
| 0x04400080 | |||
| [[BOSSP:SetSprelayInterval|SetSprelayInterval]] (u32 interval, u32 unk). Sets the sprelay interval, and other things | |||
|- | |||
| 0x04410000 | |||
| [[BOSSP:GetSprelayInterval|GetSprelayInterval]] Returns: u32 interval, u32 unk. Gets the sprelay interval, and other things | |||
|- | |||
| 0x04420000 | |||
| ? | |||
|- | |||
| 0x04430042 | |||
| <nowiki>(u32 Size, ((Size<<4)|0xC), Buf)</nowiki>. Size must be at least 0x208 | |||
|- | |||
| 0x04440042 | |||
| <nowiki>(u32 Size, ((Size<<4)|0xC), Buf)</nowiki>. Size must be at least 0x130 | |||
|- | |||
| 0x04450040 | |||
| (u8 unk_5) | |||
|- | |||
| 0x04460000 | |||
| Returns: u8 unk_5 | |||
|- | |||
| 0x04470002 | |||
| [[BOSSP:RegisterNewArrivalEventPrivileged|RegisterNewArrivalEventPrivileged]] | |||
|- | |||
| 0x04480000? | |||
| Stubbed | |||
|- | |- | ||
| 0x04490142 | | 0x04490142 | ||
| | | [[BOSSP:RegisterTaskPrivileged|RegisterTaskPrivileged]] | ||
|- | |- | ||
| 0x044A0180 | | 0x044A0180 | ||
| | | [[BOSSP:SetStorageInfoPrivileged|SetStorageInfoPrivileged]] | ||
|- | |||
| 0x044B01C0 | |||
| [[BOSSP:RegisterStorageEntryPrivileged|RegisterStorageEntryPrivileged]] | |||
|- | |||
| 0x044C0080 | |||
| [[BOSSP:UnregisterStoragePrivileged|UnregisterStoragePrivileged]] | |||
|- | |- | ||
| 0x044D0080 | | 0x044D0080 | ||
| | | [[BOSSP:GetStorageInfoPrivileged|GetStorageInfoPrivileged]] | ||
|- | |||
| 0x044E0080 | |||
| [[BOSSP:GetStorageEntryInfoPrivileged|GetStorageEntryInfoPrivileged]] | |||
|- | |||
| 0x044F0102 | |||
| [[BOSSP:UpdateTaskIntervalPrivileged|UpdateTaskIntervalPrivileged]] | |||
|- | |- | ||
| 0x04500102 | | 0x04500102 | ||
| | | [[BOSSP:UpdateTaskCountPrivileged|UpdateTaskCountPrivileged]] | ||
|- | |||
| 0x045100C2 | |||
| [[BOSSP:GetTaskIntervalPrivileged|GetTaskIntervalPrivileged]] | |||
|- | |||
| 0x045200C2 | |||
| [[BOSSP:GetTaskCountPrivileged|GetTaskCountPrivileged]] | |||
|- | |||
| 0x045300C2 | |||
| [[BOSSP:GetTaskServiceStatusPrivileged|GetTaskServiceStatusPrivileged]] | |||
|- | |- | ||
| 0x04540102 | | 0x04540102 | ||
| | | [[BOSSP:GetTaskStatePrivileged|GetTaskStatePrivileged]] | ||
|- | |- | ||
| 0x045500C2 | | 0x045500C2 | ||
| | | [[BOSSP:GetTaskResultPrivileged|GetTaskResultPrivileged]] | ||
|- | |||
| 0x045600C2 | |||
| [[BOSSP:GetTaskCommErrorCodePrivileged|GetTaskCommErrorCodePrivileged]] | |||
|- | |||
| 0x04570142 | |||
| [[BOSSP:GetTaskStatusPrivileged|GetTaskStatusPrivileged]] | |||
|- | |- | ||
| 0x04580104 | | 0x04580104 | ||
| | | [[BOSSP:SetTaskQueryPrivileged|SetTaskQueryPrivileged]] | ||
|} | |} | ||
Line 258: | Line 447: | ||
==BOSS Service "boss:M"== | ==BOSS Service "boss:M"== | ||
{| class="wikitable" border="1" | |||
|- | |||
! Command Header | |||
! Description | |||
|- | |||
| 0x00010002 | |||
| ? | |||
|- | |||
| 0x00020000 | |||
| ? | |||
|- | |||
| 0x00030040 | |||
| ? | |||
|- | |||
| 0x00040000 | |||
| ? | |||
|- | |||
| 0x00050000 | |||
| ? | |||
|- | |||
| 0x00060000 | |||
| ? | |||
|- | |||
| 0x00070000 | |||
| ? | |||
|} | |||
==programIDs== | |||
BOSS uses programIDs raw without any handling for the New3DS programID-low bitmask. For example, attempting a NsDataId listing with the New3DS bitmask set will fail, if BOSS is only setup for that programID with the New3DS bitmask clear. | |||
When [[BOSSU:InitializeSession|initializing]] BOSS with the default programID, the New3DS programID-low bitmask is always clear for New3DS titles since that's how it was originally registered with [[Filesystem_services|FS]]. Hence, the programID in the [[SpotPass|BOSS-container]] must always have the New3DS bitmask clear. This also means everything using the BOSSP commands with the raw programIDs loaded from AM title-listing are broken with New3DS titles, for example [[Extended_Banner]]. | |||
==Content Data Storage== | ==Content Data Storage== | ||
Line 263: | Line 484: | ||
All of these commands using [[FS:CheckAuthorityToAccessExtSaveData]] are: [[BOSS:SetStorageInfo]] and RegisterStorageEntry, for both BOSSU and BOSSP. | All of these commands using [[FS:CheckAuthorityToAccessExtSaveData]] are: [[BOSS:SetStorageInfo]] and RegisterStorageEntry, for both BOSSU and BOSSP. | ||
BOSS-container content is stored in the extdata registered for the programID specified in the BOSS-container, what task it's associated with / what title registered it is irrelevant with BOSS-container data storage. | |||
==Custom SpotPass content== | ==Custom SpotPass content== | ||
Line 332: | Line 555: | ||
| 0x0 | | 0x0 | ||
| 0x4 | | 0x4 | ||
| | | Content data-type, originally from the [[SpotPass|BOSS-container]]. | ||
|} | |} | ||
Line 581: | Line 804: | ||
| 0xC8A0F833 | | 0xC8A0F833 | ||
| taskID not found. | | taskID not found. | ||
|- | |||
| 0xC8A0F836 | |||
| taskID already exists, for task creation. | |||
|- | |||
| 0xC8A0F842 | |||
| The specified programID is not setup for BOSS. | |||
|- | |||
| 0xC8A0F843 | |||
| The specified NsDataId was not found. | |||
|} | |} | ||
[[Category:Services]] |