Line 1: |
Line 1: |
| [[Category:Services]] | | [[Category:Services]] |
− | = NIM user service "nim:u" = | + | = NIM updater service "nim:u" = |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 7: |
Line 7: |
| |- | | |- |
| | 0x00010000 | | | 0x00010000 |
− | | Related to starting a sysupdate? | + | | [[NIMU:StartNetworkUpdate|StartNetworkUpdate]] |
| |- | | |- |
| | 0x00020000 | | | 0x00020000 |
− | | [[NIMU:GetUpdateDownloadProgress|GetUpdateDownloadProgress]] | + | | [[NIMU:GetProgress|GetProgress]] |
| |- | | |- |
− | | 0x0003.... | + | | 0x00030000 |
− | | ? | + | | [[NIMU:Cancel|Cancel]] |
| |- | | |- |
| | 0x00040000 | | | 0x00040000 |
− | | [[NIMU:FinishTitlesInstall|FinishTitlesInstall]] | + | | [[NIMU:CommitSystemTitles|CommitSystemTitles]] |
| |- | | |- |
| | 0x00050000 | | | 0x00050000 |
− | | This obtains an event handle. Home Menu will check whether a system update is available when this event is triggered. | + | | [[NIMU:GetBackgroundEventForMenu|GetBackgroundEventForMenu]] |
| |- | | |- |
− | | 0x0006.... | + | | 0x00060000 |
− | | ? | + | | [[NIMU:GetBackgroundEventForNews|GetBackgroundEventForNews]] |
| |- | | |- |
− | | 0x0007.... | + | | 0x00070000 |
− | | ? | + | | [[NIMU:FormatSaveData|FormatSaveData]] |
| |- | | |- |
− | | 0x0008.... | + | | 0x00080000 |
− | | ? | + | | [[NIMU:GetCustomerSupportCode|GetCustomerSupportCode]] |
| |- | | |- |
| | 0x00090000 | | | 0x00090000 |
− | | [[NIMU:CheckSysupdateAvailable|CheckSysupdateAvailable]] | + | | [[NIMU:IsCommittableAllSystemTitles|IsCommittableAllSystemTitles]] |
| |- | | |- |
| | 0x000A0000 | | | 0x000A0000 |
− | | GetState | + | | [[NIMU:GetBackgroundProgress|GetBackgroundProgress]] |
| |- | | |- |
| | 0x000B0000 | | | 0x000B0000 |
− | | [[NIMU:GetSystemTitleHash|GetSystemTitleHash]] | + | | [[NIMU:GetSavedHash|GetSavedHash]] |
| + | |- |
| + | | 0x000C0082 |
| + | | [[NIMU:UnregisterTask|UnregisterTask]] |
| + | |- |
| + | | 0x000D0080 |
| + | | [[NIMU:IsRegistered|IsRegistered]] |
| + | |- |
| + | | 0x000E0080 |
| + | | [[NIMU:FindTaskInfo|FindTaskInfo]] |
| + | |- |
| + | | 0x000F0042 |
| + | | [[NIMU:GetTaskInfos|GetTaskInfos]] |
| + | |- |
| + | | 0x00100000 |
| + | | [[NIMU:DeleteUnmanagedContexts|DeleteUnmanagedContexts]] |
| + | |- |
| + | | 0x00110000 |
| + | | [[NIMU:UpdateAutoTitleDownloadTasksAsync|UpdateAutoTitleDownloadTasksAsync]] |
| + | |- |
| + | | 0x00120000 |
| + | | [[NIMU:StartPendingAutoTitleDownloadTasksAsync|StartPendingAutoTitleDownloadTasksAsync]] |
| + | |- |
| + | | 0x00130000 |
| + | | [[NIMU:GetAsyncResult|GetAsyncResult]] |
| + | |- |
| + | | 0x00140000 |
| + | | [[NIMU:CancelAsyncCall|CancelAsyncCall]] |
| + | |- |
| + | | 0x00150000 |
| + | | [[NIMU:IsPendingAutoTitleDownloadTasks|IsPendingAutoTitleDownloadTasks]] |
| + | |- |
| + | | 0x00160000 |
| + | | [[NIMU:GetNumAutoTitleDownloadTasks|GetNumAutoTitleDownloadTasks]] |
| + | |- |
| + | | 0x00170042 |
| + | | [[NIMU:GetAutoTitleDownloadTaskInfos|GetAutoTitleDownloadTaskInfos]] |
| + | |- |
| + | | 0x00180080 |
| + | | [[NIMU:CancelAutoTitleDownloadTask|CancelAutoTitleDownloadTask]] |
| + | |- |
| + | | 0x00190002 |
| + | | [[NIMU:SetAutoDbgDat|SetAutoDbgDat]] |
| + | |- |
| + | | 0x001A0002 |
| + | | [[NIMU:GetAutoDbgDat|GetAutoDbgDat]] |
| + | |- |
| + | | 0x001B0042 |
| + | | [[NIMU:SetDbgTasks|SetDbgTasks]] |
| + | |- |
| + | | 0x001C0042 |
| + | | [[NIMU:GetDbgTasks|GetDbgTasks]] |
| + | |- |
| + | | 0x001D0000 |
| + | | [[NIMU:DeleteDbgData|DeleteDbgData]] |
| + | |- |
| + | | 0x001E0042 |
| + | | [[NIMU:SetTslXml|SetTslXml]] |
| + | |- |
| + | | 0x001F0000 |
| + | | [[NIMU:GetTslXmlSize|GetTslXmlSize]] |
| + | |- |
| + | | 0x00200042 |
| + | | [[NIMU:GetTslXml|GetTslXml]] |
| + | |- |
| + | | 0x00210000 |
| + | | [[NIMU:DeleteTslXml|DeleteTslXml]] |
| + | |- |
| + | | 0x00220042 |
| + | | [[NIMU:SetDtlXml|SetDtlXml]] |
| + | |- |
| + | | 0x00230000 |
| + | | [[NIMU:GetDtlXmlSize|GetDtlXmlSize]] |
| + | |- |
| + | | 0x00240042 |
| + | | [[NIMU:GetDtlXml|GetDtlXml]] |
| + | |- |
| + | | 0x00250000 |
| + | | [[NIMU:UpdateAccountStatus|UpdateAccountStatus]] |
| + | |- |
| + | | 0x00260180 |
| + | | [[NIMU:StartTitleDownload|StartTitleDownload]] |
| + | |- |
| + | | 0x00270000 |
| + | | [[NIMU:StopTitleDownload|StopTitleDownload]] |
| + | |- |
| + | | 0x00280000 |
| + | | [[NIMU:GetTitleDownloadProgress|GetTitleDownloadProgress]] |
| + | |- |
| + | | 0x00290246 |
| + | | [[NIMU:RegisterTask|RegisterTask]] |
| + | |- |
| + | | 0x002A0000 |
| + | | [[NIMU:IsSystemUpdateAvailable|IsSystemUpdateAvailable]] |
| + | |- |
| + | | 0x002B0000 |
| + | | ? (Response: 0 = 0x002B0040, 1 = Result Code) |
| + | |- |
| + | | 0x002C0000 |
| + | | [[NIMU:UpdateTickets|UpdateTickets]] |
| + | |- |
| + | | 0x002D00C0 |
| + | | [[NIMU:DownloadTitleSeedAsync|DownloadTitleSeedAsync]] |
| + | |- |
| + | | 0x002E0000 |
| + | | [[NIMU:DownloadMissingTitleSeedsAsync|DownloadMissingTitleSeedsAsync]] |
| + | |- |
| |} | | |} |
| | | |
− | = NIM server service "nim:s" = | + | = NIM shop service "nim:s" = |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
| ! Command Header | | ! Command Header |
| ! Description | | ! Description |
| + | |- |
| + | | 0x00010200 |
| + | | [[NIMS:StartDownloadSimple|StartDownloadSimple]] |
| + | |- |
| + | | 0x00020000 |
| + | | [[NIMS:CancelDownload|CancelDownload]] |
| + | |- |
| + | | 0x00030000 |
| + | | [[NIMS:GetProgress|GetProgress]] |
| + | |- |
| + | | 0x00050082 |
| + | | [[NIMS:UnregisterTask|UnregisterTask]] |
| |- | | |- |
| | 0x00060080 | | | 0x00060080 |
− | | The input at cmdreq[1-2] is an u64 titleID. This writes an u8 to cmdreply[2]. It's unknown what exactly the [[eShop]] application uses this for, it only uses this command for apps which are installed(checked via [[Application_Manager_Services|AM]] probably). In those cases, it seems the outval for this command(with result-code=0) is normally 0? | + | | [[NIMS:IsTaskRegistered|IsTaskRegistered]] |
| + | |- |
| + | | 0x00070080 |
| + | | GetTaskInfoFromTitleId |
| + | |- |
| + | | 0x00080042 |
| + | | GetTaskList |
| + | |- |
| + | | 0x0009xxxx |
| + | | Returns 0xE0C0D3F4, not implemented. |
| |- | | |- |
| | 0x000A0000 | | | 0x000A0000 |
| | [[NIMS:CheckSysupdateAvailableSOAP|CheckSysupdateAvailableSOAP]] | | | [[NIMS:CheckSysupdateAvailableSOAP|CheckSysupdateAvailableSOAP]] |
| + | |- |
| + | | 0x000B0084 |
| + | | [[NIMS:SetAttribute|SetAttribute]] |
| + | |- |
| + | | 0x000C0082 |
| + | | SetAttributeInt32 |
| + | |- |
| + | | 0x000D0082 |
| + | | Connect |
| + | |- |
| + | | 0x000E0000 |
| + | | UnregisterSOAP, aka soap account delete |
| + | |- |
| + | | 0x000F0042 |
| + | | SetCountrySOAP, change effective country registry |
| + | |- |
| + | | 0x00100080 |
| + | | Returns 0xE0C0D3F4, not implemented, reads for an int64 in IPC. |
| + | |- |
| + | | 0x001100C4 |
| + | | Returns 0xE0C0D3F4, not implemented, reads for IPC parameters. |
| + | |- |
| + | | 0x00120084 |
| + | | SetExternalAccountSOAP |
| + | |- |
| + | | 0x00130042 |
| + | | DeleteExternalAccountSOAP |
| + | |- |
| + | | 0x00140000 |
| + | | DeleteSavedCardSOAP |
| + | |- |
| + | | 0x00150082 |
| + | | ListCashReplenishAmountsSOAP |
| |- | | |- |
| | 0x0016020A | | | 0x0016020A |
| | [[NIMS:ListTitles|ListTitles]] | | | [[NIMS:ListTitles|ListTitles]] |
| + | |- |
| + | | 0x0017020A |
| + | | ListContentSetsExSOAP |
| + | |- |
| + | | 0x0018020A |
| + | | ListItemsSOAP |
| + | |- |
| + | | 0x0019028C |
| + | | ListContentSetGroupsSOAP |
| + | |- |
| + | | 0x001E0104 |
| + | | GetTaxesSOAP |
| + | |- |
| + | | 0x001F0106 |
| + | | GetTaxLocationSOAP |
| + | |- |
| + | | 0x00220080 |
| + | | AccountDeleteTitleETicketsSOAP. The SOAP request is sent only after the ticket for the specified titleID has been successfully deleted. |
| + | |- |
| + | | 0x00290000 |
| + | | [[NIMS:AccountCheckBalanceSOAP|AccountCheckBalanceSOAP]] |
| |- | | |- |
| | 0x002D0042 | | | 0x002D0042 |
| | [[NIMS:DownloadTickets|DownloadTickets]] | | | [[NIMS:DownloadTickets|DownloadTickets]] |
| + | |- |
| + | | 0x0036xxxx |
| + | | Returns 0xE0C0D3F4, not implemented. |
| + | |- |
| + | | 0x003C0002 |
| + | | [[NIMS:RegisterSelf|RegisterSelf]] |
| + | |- |
| + | | 0x003F0000 |
| + | | GetInitializeResult. Checks whether nim is properly initialized or not. If it is not, the result code returned is non-zero. |
| |- | | |- |
| | 0x00420240 | | | 0x00420240 |
| | [[NIMS:StartDownload|StartDownload]] | | | [[NIMS:StartDownload|StartDownload]] |
| + | |- |
| + | | 0x00550246 |
| + | | [[NIMS:RegisterTask|RegisterTask]] |
| + | |- |
| + | | 0x00570082 |
| + | | [[NIMS:ConnectNoTicketDownload|ConnectNoTicketDownload]] |
| + | |- |
| + | | 0x005B0000 |
| + | | DeleteInitAccSavedData |
| + | |- |
| + | | 0x005C0000 |
| + | | DeleteAccountSavedData |
| + | |- |
| + | | 0x005F00C0 |
| + | | DownloadTitleSeed |
| |} | | |} |
| | | |
Line 94: |
Line 299: |
| | | |
| = NIM service "nim:ndm" = | | = NIM service "nim:ndm" = |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Command Header |
| + | ! Description |
| + | |- |
| + | | 0x00010000 |
| + | | GetDaemonEventHandle |
| + | |- |
| + | | 0x00020000 |
| + | | Does nothing, always returns 0 |
| + | |- |
| + | | 0x00030000 |
| + | | SetDaemonToWorkingState |
| + | |- |
| + | | 0x00040040 |
| + | | SetDaemonToSuspendedState |
| + | |- |
| + | | 0x00050000 |
| + | | GetDaemonState |
| + | |- |
| + | |} |
| | | |
| = kagiya server = | | = kagiya server = |
Line 121: |
Line 347: |
| ====GetSystemCommonETicket==== | | ====GetSystemCommonETicket==== |
| Returns the Base64-encoded cetk for each specified TitleId entry. | | Returns the Base64-encoded cetk for each specified TitleId entry. |
| + | |
| + | This is only used when installing new titles. This means with CDN system-updates, tickets are never installed except when a title is being installed for the first time. For example, a system on the latest system-version that was only ever updated via CDN has the same NATIVE_FIRM ticket installed from the factory. |
| | | |
| =Sysupdate checking process= | | =Sysupdate checking process= |
Line 129: |
Line 357: |
| The GetSystemUpdate SOAP request contains a titlelist of all NAND system-titles. For GetSystemUpdate response parsing, it compares each SOAP title_entry with the NAND system titlelist. If a SOAP titleID isn't found in the NAND titlelist, this means NAND is missing a new title and hence a sysupdate is required for installing that title. If a NAND title_entry-version is less than the SOAP title_entry-version, this means the title needs updated and hence a sysupdate is required. | | The GetSystemUpdate SOAP request contains a titlelist of all NAND system-titles. For GetSystemUpdate response parsing, it compares each SOAP title_entry with the NAND system titlelist. If a SOAP titleID isn't found in the NAND titlelist, this means NAND is missing a new title and hence a sysupdate is required for installing that title. If a NAND title_entry-version is less than the SOAP title_entry-version, this means the title needs updated and hence a sysupdate is required. |
| | | |
− | An empty title-list in the GetSystemUpdate response would result in it returning that no sysupdate is required.
| + | At least one <TitleVersion> entry with valid data in the GetSystemUpdate response is required. |
| | | |
| The titleIDs sent in the GetSystemUpdate SOAP request are decimal, while the titleIDs in the response are hex. | | The titleIDs sent in the GetSystemUpdate SOAP request are decimal, while the titleIDs in the response are hex. |
Line 148: |
Line 376: |
| | 0x21 | | | 0x21 |
| | ASCII hex SystemTitleHash, including NUL-terminator. This is the latest SystemTitleHash which NIM module received from SOAP. | | | ASCII hex SystemTitleHash, including NUL-terminator. This is the latest SystemTitleHash which NIM module received from SOAP. |
| + | |} |
| + | |
| + | =Types= |
| + | |
| + | ==SystemUpdateProgress== |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Length |
| + | ! Description |
| + | |- |
| + | | 0x00 |
| + | | 0x01 |
| + | | [[#SystemUpdateState|System Update State]] |
| + | |- |
| + | | 0x01 |
| + | | 0x03 |
| + | | Padding |
| + | |- |
| + | | 0x04 |
| + | | 0x04 |
| + | | Last Operation Result Code |
| + | |- |
| + | | 0x08 |
| + | | 0x08 |
| + | | Current Title Downloaded Bytes |
| + | |- |
| + | | 0x10 |
| + | | 0x08 |
| + | | Current Title Total Bytes |
| + | |- |
| + | | 0x18 |
| + | | 0x08 |
| + | | Titles Downloaded |
| + | |- |
| + | | 0x20 |
| + | | 0x08 |
| + | | Titles Total |
| + | |} |
| + | |
| + | ==SystemUpdateState== |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 |
| + | | Not Initialized |
| + | |- |
| + | | 1 |
| + | | Starting System Update |
| + | |- |
| + | | 2 |
| + | | Fetching System Hash and Account Status |
| + | |- |
| + | | 3 |
| + | | Installing New Tickets |
| + | |- |
| + | | 4 |
| + | | Installing Titles |
| + | |- |
| + | | 5 |
| + | | Update Complete |
| + | |- |
| + | | 6 |
| + | | Failed - System Updates Disabled (Dev Units Only) |
| + | |- |
| + | | 7 |
| + | | ? (Only for background updates) |
| + | |- |
| + | | 8 |
| + | | ? (Only for background updates) |
| + | |} |
| + | |
| + | ==TitleDownloadProgress== |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Length |
| + | ! Description |
| + | |- |
| + | | 0x00 |
| + | | 0x01 |
| + | | [[#TitleDownloadState|Title Download State]] |
| + | |- |
| + | | 0x01 |
| + | | 0x03 |
| + | | Padding |
| + | |- |
| + | | 0x04 |
| + | | 0x04 |
| + | | Last Operation Result Code |
| + | |- |
| + | | 0x08 |
| + | | 0x08 |
| + | | Downloaded Bytes |
| + | |- |
| + | | 0x10 |
| + | | 0x08 |
| + | | Total Bytes |
| + | |} |
| + | |
| + | ==TitleDownloadState== |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 |
| + | | Not Initialized |
| + | |- |
| + | | 1 |
| + | | Starting Title Download |
| + | |- |
| + | | 2 |
| + | | Downloading and Installing TMD |
| + | |- |
| + | | 3 |
| + | | Committing TMD |
| + | |- |
| + | | 4 |
| + | | Downloading and Installing Contents |
| + | |- |
| + | | 5 |
| + | | Contents Installed |
| + | |- |
| + | | 6 |
| + | | [[AM:CommitImportPrograms|Committing Titles]] |
| + | |- |
| + | | 7 |
| + | | Finished |
| + | |- |
| + | | 8 |
| + | | ? (Unknown error regarding title version?) |
| + | |- |
| + | | 9 |
| + | | ? (Creating the .ctx file (or error doing so)?) |
| + | |- |
| + | | 10 |
| + | | Background Download Failed |
| + | |} |
| + | |
| + | ==TitleDownloadConfig== |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Length |
| + | ! Description |
| + | |- |
| + | | 0x00 |
| + | | 0x08 |
| + | | Title ID |
| + | |- |
| + | | 0x08 |
| + | | 0x04 |
| + | | Title version |
| + | |- |
| + | | 0x0C |
| + | | 0x04 |
| + | | Unknown (always 0?) |
| + | |- |
| + | | 0x10 |
| + | | 0x01 |
| + | | Age Rating (for HOME Menu parental controls) |
| + | |- |
| + | | 0x11 |
| + | | 0x01 |
| + | | [[Filesystem_services#MediaType|Media Type]] |
| + | |- |
| + | | 0x12 |
| + | | 0x02 |
| + | | Padding |
| + | |- |
| + | | 0x14 |
| + | | 0x04 |
| + | | Unknown (always 0?) |
| + | |} |
| + | |
| + | ==BackgroundTitleDownloadConfig== |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Length |
| + | ! Description |
| + | |- |
| + | | 0x000 |
| + | | 0x018 |
| + | | [[#TitleDownloadConfig|Title Download Config]] |
| + | |- |
| + | | 0x018 |
| + | | 0x001 |
| + | | Unknown |
| + | |- |
| + | | 0x019 |
| + | | 0x001 |
| + | | Unknown |
| + | |- |
| + | | 0x01A |
| + | | 0x006 |
| + | | Padding |
| + | |- |
| + | | 0x020 |
| + | | 0x008 |
| + | | Requester Title ID |
| + | |- |
| + | | 0x028 |
| + | | 0x090 |
| + | | Title Name (UTF-16) |
| + | |- |
| + | | 0x0B8 |
| + | | 0x002 |
| + | | Title Name Forced NUL Terminator (always 0) |
| + | |- |
| + | | 0x0BA |
| + | | 0x048 |
| + | | Developer Name (UTF-16) |
| + | |- |
| + | | 0x102 |
| + | | 0x002 |
| + | | Developer Name Forced NUL Terminator (always 0) |
| + | |} |
| + | |
| + | ==BackgroundTitleDownloadTaskInfo== |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Length |
| + | ! Description |
| + | |- |
| + | | 0x000 |
| + | | 0x104 |
| + | | [[#BackgroundTitleDownloadConfig|Background Title Download Config]] |
| + | |- |
| + | | 0x104 |
| + | | 0x004 |
| + | | Padding |
| + | |- |
| + | | 0x108 |
| + | | 0x018 |
| + | | [[#TitleDownloadProgress|Title Download Progress]] |
| + | |} |
| + | |
| + | ==AutoTitleDownloadTaskInfo== |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Length |
| + | ! Description |
| + | |- |
| + | | 0x000 |
| + | | 0x008 |
| + | | Task ID |
| + | |- |
| + | | 0x008 |
| + | | 0x008 |
| + | | Title ID |
| + | |- |
| + | | 0x010 |
| + | | 0x004 |
| + | | Title Version |
| + | |- |
| + | | 0x014 |
| + | | 0x014 |
| + | | Unknown |
| + | |- |
| + | | 0x028 |
| + | | 0x008 |
| + | | Required Storage Space |
| + | |- |
| + | | 0x030 |
| + | | 0x004 |
| + | | Last Operation Result code |
| + | |- |
| + | | 0x034 |
| + | | 0x004 |
| + | | Last Operation Customer Support Code |
| + | |- |
| + | | 0x038 |
| + | | 0x090 |
| + | | Title Name (UTF-16) |
| + | |- |
| + | | 0x0C8 |
| + | | 0x002 |
| + | | Title Name Forced NUL Terminator (always 0) |
| + | |- |
| + | | 0x0CA |
| + | | 0x048 |
| + | | Developer Name (UTF-16) |
| + | |- |
| + | | 0x112 |
| + | | 0x002 |
| + | | Developer Name Forced NUL Terminator (always 0) |
| + | |- |
| + | | 0x114 |
| + | | 0x024 |
| + | | Unknown |
| + | |} |
| + | |
| + | ==InstallationMode== |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 |
| + | | Initial Installation |
| + | |- |
| + | | 1 |
| + | | Unknown |
| + | |- |
| + | | 2 |
| + | | Unknown |
| + | |- |
| + | | 3 |
| + | | Re-installation |
| + | |} |
| + | |
| + | ==Autodbg== |
| + | |
| + | Despite this being for debug purposes, it's used in retail if present. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Length |
| + | ! Description |
| + | |- |
| + | | 0x000 |
| + | | 0x004 |
| + | | Debug flags |
| + | |- |
| + | | 0x004 |
| + | | 0x004 |
| + | | Number of debug tasks in dbgtasks.dat |
| + | |- |
| + | | 0x008 |
| + | | 0x100 |
| + | | Debug URL dst.xml override |
| + | |} |
| + | |
| + | ===Autodbg flag bits=== |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Bit |
| + | ! Description |
| + | |- |
| + | | 0 |
| + | | Use the tasks stored in dbgtasks.dat |
| + | |- |
| + | | 1 |
| + | | Use provided debug dtl.xml URL override |
| + | |- |
| + | | 2 |
| + | | Disable the download of dtl.xml |
| + | |- |
| + | | 3 |
| + | | Skip connecting to SOAP EC and download ETickets with a false success result during TSL processing |
| + | |- |
| + | | 4 |
| + | | Fake assume always ticket is present during TSL task condition processing |
| + | |- |
| + | | 5 |
| + | | Skip NPNS notification fetch for auto title downloads with a false success result |
| + | |} |
| + | |
| + | =Error Results= |
| + | |
| + | ==NIM Results== |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Result |
| + | ! Description |
| + | |- |
| + | | 0xE0E0D001 |
| + | | Non-null terminated string on IPC parameter for given length. |
| + | |- |
| + | | 0xD960D003 |
| + | | SOAP EC/NUP manager internal error number translation of unhandled values or -4199. |
| + | |- |
| + | | 0xD960D004 |
| + | | Unexpected/invalid state enums. (generic) |
| + | |- |
| + | | 0xC820D005 |
| + | | Invalid state under one title install manager. |
| + | |- |
| + | | 0xD8A0D006 |
| + | | Error state enum value. (generic) |
| + | |- |
| + | | 0xC920D008 |
| + | | When content downloading, HTTP Status was not 200 or 206 when connecting, and when status is 206, the Content-Range values failed sanity check. |
| + | |- |
| + | | 0xC920D009 |
| + | | Mismatch system title hash with server system title hash. |
| + | |- |
| + | | 0xC960D00C |
| + | | Failed to convert country enum value in CFG save block 0xB0000 to country ISO 3166-1 Alpha-2 code. |
| + | |- |
| + | | 0xC960D00D |
| + | | CFG didn't reply any serial number or dummy serial number "000000000000000" was given. |
| + | |- |
| + | | 0xC860D00E |
| + | | Max total size exceeded for system update pending titles. (128 MiB) |
| + | |- |
| + | | 0xC880D00F |
| + | | *to be filled* |
| + | |- |
| + | | 0xC8E0D011 |
| + | | Bad condition, title id for purpose or size under one title install manager. |
| + | |- |
| + | | 0xC960D012 |
| + | | Invalid .dat or less than expected size of buffer length read from .dat save files during raw data load. |
| + | |- |
| + | | 0xC960D013 |
| + | | Daemon service is suspended. |
| + | |- |
| + | | 0xC8A0D014 |
| + | | *to be filled* |
| + | |- |
| + | | 0xC960D015 |
| + | | Version mismatch for reinstall condition. |
| + | |- |
| + | | 0xC960D016 |
| + | | Used in a few contexts where length does not match expected or the limit. Example, seed data size from HTTP is not 16 bytes. |
| + | |- |
| + | | 0xC920D017 |
| + | | SetIVSData will not perform, conditions are not adequate to set IVS. In Service Standby mode or not registered successfully in IAS. |
| + | |- |
| + | | 0xC920D019 |
| + | | Certain EC connect flows disallowed to continue while IVS is waiting to be synced from servers. System Transfer has previously occurred and IVS is pending. |
| + | |- |
| + | | 0xC920D01A |
| + | | For nim:s IPC cmd id 0x40, IVS not flagged for synchronization on target console on EC connect after system transfer. |
| + | |- |
| + | | 0xC960D01B |
| + | | Failed to convert language enum value in CFG save block 0xA0002 to language ISO 639-1 code. |
| + | |- |
| + | | 0xE0E0D01C |
| + | | Invalid installation mode for some IPC contexts. |
| + | |- |
| + | | 0xE0C0D01E |
| + | | May be either: |
| + | * Trying to set autodbg or dbgtasks with too many tasks on nim:u IPC cmd ids 0x19 and 0x1B, respectively. |
| + | * Non debug ENVINFO when calling debug version of get balance nim:s IPC cmd id 0x56. |
| + | * A boolean parameter for nim:s IPC cmd id 0x58 was set false. |
| + | |- |
| + | | 0xD860D020 |
| + | | May be either: |
| + | * Result translation of 0xC860D06E if returned by the early attributes filter handler. |
| + | * If the internal Work-only heap fails to initialize with buffer length lesser than 32 bytes. This buffer is given over IPC. |
| + | |- |
| + | | 0xC860D021 |
| + | | Task manager has run out of task slots. |
| + | |- |
| + | | 0xC920D022 |
| + | | Buffer size too small for ticket length on nim:aoc IPC cmd id 0x1B. |
| + | |- |
| + | | 0xD880D023 |
| + | | When Account Id missing for nim:aoc IPC cmd id 0x1B and 0x20 or when Account Id or Token are missing for nim:s IPC cmd id 0x53. |
| + | |- |
| + | | 0xD860D024 |
| + | | Failed to initialize Data Heap using buffer given over IPC. |
| + | |- |
| + | | 0xD920D025 |
| + | | SOAP reply implied that Service Standby mode is enabled. Certain EC flows cancelled. |
| + | |- |
| + | | 0xC8A0D026 |
| + | | May be either: |
| + | * Result translation, NIM ran into NPNS result 0xD8A15C06 or NIM result 0xD960D02B. |
| + | * System updates pending while trying to SOAP EC connect with ETicket download while processing auto downloads. |
| + | |- |
| + | | 0xC8A0D027 |
| + | | This occurs under certain code paths. |
| + | <ol> |
| + | <li>Result translation of result error from:</li> |
| + | <ul><li>HTTP module</li></ul> |
| + | <ul><li>SSL module</li></ul> |
| + | <ul><li>NIM module if description is between 100 to 299 (inclusive), 200 descriptions to fit the reserved range of the SOAP manager internal error range of -4000 to -4199 </li></ul> |
| + | <li>Unexpected HTTP status, followed up also by generating error integer with 54400 + http status, result value used as a 005-xxxx error</li> |
| + | </ol> |
| + | |- |
| + | | 0xD960D028 |
| + | | Generic XML parsing error. Not related to SOAP XML. |
| + | |- |
| + | | 0xD960D029 |
| + | | XML processor stub function called. Not related to SOAP XML. |
| + | |- |
| + | | 0xD960D02A |
| + | | Generic XML data processing error: bad length or insufficient memory. Not related to SOAP XML. |
| + | |- |
| + | | 0xD960D02B |
| + | | Result translation of 0xD960D028. |
| + | |- |
| + | | 0xD960D02C |
| + | | Auto download programmed max task count exceeded trying to add more to list. (64) |
| + | |- |
| + | | 0xD960D02D |
| + | | tsl.xml or tsl.xml.tmp couldn't be opened. FS result translation of description between 100 and 179, inclusive. |
| + | |- |
| + | | 0xD960D02E |
| + | | During tsl.xml task condition check. Still unclear, type of task check |
| + | |- |
| + | | 0xD960D030 |
| + | | During tsl.xml task condition check. Ticket missing for title when expected. Will not occur with autodbg flag bit 4 set. |
| + | |- |
| + | | 0xD960D031 |
| + | | During tsl.xml task condition check. Title already installed when not overwrite mode. |
| + | |- |
| + | | 0xD960D032 |
| + | | During tsl.xml task condition check. Task for title already exists with same or higher version in task.dat. |
| + | |- |
| + | | 0xD960D033 |
| + | | During tsl.xml task condition check. Task for title already exists in task.dat. |
| + | |- |
| + | | 0xD8E0D034 |
| + | | During tsl.xml task condition check. Unexpected task title type. |
| + | |- |
| + | | 0xD960D035 |
| + | | During tsl.xml task condition check. Tsl.xml task will not be processed while max programmed maximum for tasks pending in task.dat is equal or exceeded. (10) |
| + | |- |
| + | | 0xD960D037 |
| + | | Failed to load saved dtl.xml with result error of FS with description between 100 and 179, inclusive. |
| + | |- |
| + | | 0xD960D038 |
| + | | During tsl.xml task condition check. Not enough space for target SDMC user title. |
| + | |- |
| + | | 0xD8A0D03A |
| + | | No valid NPNS X-Device-Token was available while trying to fetch it from CFG save block 0xF0006. |
| + | |- |
| + | | 0xD940D03B |
| + | | Selected tsl.xml task was cancelled with nim:u IPC cmd id 0x18. |
| + | |- |
| + | | 0xD960D03C |
| + | | Result translation for 0xD960D028 while trying to read XML. Not related to SOAP XML. |
| + | |- |
| + | | 0xD8A0D03D |
| + | | During tsl.xml task condition check. SDMC not inserted or non-writable for SDMC title. (bad media status) |
| + | |- |
| + | | 0xD960D03E |
| + | | During tsl.xml task condition check. Not enough space for target TWL user title. |
| + | |- |
| + | | 0xD940D03F |
| + | | NPNS notification url is not HTTPS. |
| + | |- |
| + | | 0xD940D040 |
| + | | NIM ran into NPNS result 0xD8A15C07. Result translation. |
| + | |- |
| + | | 0xD860D041 |
| + | | During tsl.xml task condition check. Pending task count of task.dat and installed SDMC user title count exceed programmed max. (300) |
| + | |- |
| + | | 0xD860D042 |
| + | | During tsl.xml task condition check. Pending task count of task.dat and installed TWL user title count exceed programmed max. (40) |
| + | |- |
| + | | 0xD880D043 |
| + | | HTTP 404 while fetching title crypto seed from kagiya. |
| + | |- |
| + | | 0xD880D044 |
| + | | HTTP 503 while fetching title crypto seed from kagiya. |
| + | |- |
| + | | 0xC960D065 |
| + | | SOAP EC/NUP manager internal error number translation of value -4001 |
| + | |- |
| + | | 0xE0C0D066 |
| + | | SOAP EC/NUP manager internal error number translation of value -4002 |
| + | |- |
| + | | 0xE0E0D068 |
| + | | SOAP EC/NUP manager internal error number translation of value -4004 |
| + | |- |
| + | | 0xC860D069 |
| + | | SOAP EC/NUP manager internal error number translation of value -4005 |
| + | |- |
| + | | 0xC880D06A |
| + | | SOAP EC/NUP manager internal error number translation of value -4006 |
| + | |- |
| + | | 0xC8A0D06B |
| + | | SOAP EC/NUP manager internal error number translation of value -4007 |
| + | |- |
| + | | 0xC8A0D06C |
| + | | SOAP EC/NUP manager internal error number translation of value -4008 |
| + | |- |
| + | | 0xC860D06E |
| + | | SOAP EC/NUP manager internal error number translation of value -4010 |
| + | |- |
| + | | 0xC920D073 |
| + | | SOAP EC/NUP manager internal error number translation of value -4015 |
| + | |- |
| + | | 0xC900D075 |
| + | | SOAP EC/NUP manager internal error number translation of value -4017 |
| + | |- |
| + | | 0xC860D076 |
| + | | SOAP EC/NUP manager internal error number translation of value -4018 |
| + | |- |
| + | | 0xC920D077 |
| + | | SOAP EC/NUP manager internal error number translation of value -4019 |
| + | |- |
| + | | 0xC900D084 |
| + | | SOAP EC/NUP manager internal error number translation of value -4032 |
| + | |- |
| + | | 0xC900D085 |
| + | | SOAP EC/NUP manager internal error number translation of value -4033 |
| + | |- |
| + | | 0xC920D086 |
| + | | SOAP EC/NUP manager internal error number translation of value -4034 |
| + | |- |
| + | | 0xC920D08A |
| + | | SOAP EC/NUP manager internal error number translation of value -4038 |
| + | |- |
| + | | 0xC900D08B |
| + | | SOAP EC/NUP manager internal error number translation of value -4039 |
| + | |- |
| + | | 0xC920D08C |
| + | | SOAP EC/NUP manager internal error number translation of value -4040 |
| + | |- |
| + | | 0xE0A0D08D |
| + | | SOAP EC/NUP manager internal error number translation of value -4041 |
| + | |- |
| + | | 0xC920D08F |
| + | | SOAP EC/NUP manager internal error number translation of value -4043 |
| + | |- |
| + | | 0xC920D095 |
| + | | SOAP EC/NUP manager internal error number translation of value -4049 |
| + | |- |
| + | | 0xE0E0D099 |
| + | | SOAP EC/NUP manager internal error number translation of value -4053 |
| + | |- |
| + | | 0xC900D09F |
| + | | SOAP EC/NUP manager internal error number translation of value -4059 |
| + | |- |
| + | | 0xE100D0A0 |
| + | | SOAP EC/NUP manager internal error number translation of value -4060 |
| + | |- |
| + | | 0xE100D0A1 |
| + | | SOAP EC/NUP manager internal error number translation of value -4061 |
| + | |- |
| + | | 0xC920D0A4 |
| + | | SOAP EC/NUP manager internal error number translation of value -4064 |
| + | |- |
| + | | 0xC920D0A7 |
| + | | SOAP EC/NUP manager internal error number translation of value -4067 |
| + | |- |
| + | | 0xC920D0A8 |
| + | | SOAP EC/NUP manager internal error number translation of value -4068 |
| + | |- |
| + | | 0xE0A0D0A9 |
| + | | SOAP EC/NUP manager internal error number translation of value -4069 |
| + | |- |
| + | | 0xC920D0AD |
| + | | SOAP EC/NUP manager internal error number translation of value -4073 |
| + | |- |
| + | | 0xC920D0B1 |
| + | | SOAP EC/NUP manager internal error number translation of value -4077 |
| + | |- |
| + | | 0xC920D0B3 |
| + | | SOAP EC/NUP manager internal error number translation of value -4079 |
| + | |- |
| + | | 0xC920D0B5 |
| + | | SOAP EC/NUP manager internal error number translation of value -4081 |
| + | |} |
| + | |
| + | ==NPNS Results== |
| + | |
| + | NPNS has a module number for results, but no module exists, but can be at least in part found inside NIM. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Result |
| + | ! Description |
| + | |- |
| + | | 0xC9215C00 |
| + | | Result translation, HTTP result 0xD8A0A018. |
| + | |- |
| + | | 0xD8615C01 |
| + | | Allocation error, insufficient memory. |
| + | |- |
| + | | 0xD8A15C02 |
| + | | HTTP non 2xx, json message processing, default error code switch result error. |
| + | |- |
| + | | 0xD8A15C03 |
| + | | JSON processing errors. |
| + | |- |
| + | | 0xD8A15C04 |
| + | | Notifications array bigger than expected. |
| + | |- |
| + | | 0xD8A15C05 |
| + | | HTTP Empty body response. |
| + | |- |
| + | | 0xD8A15C06 |
| + | | HTTP non 2xx, json message processing, error code 1003 given in json body. |
| + | |- |
| + | | 0xD8A15C07 |
| + | | HTTP non 2xx, json message processing, error code 1000 given in json body. |
| + | |- |
| + | | 0xD8A15C08 |
| + | | HTTP non 2xx, json message processing, error code 1004 given in json body. |
| + | |} |
| + | |
| + | ==Other Results== |
| + | |
| + | Any other result that is not given by other modules as a response, but found internally in NIM. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Result |
| + | ! Module value |
| + | ! Description |
| + | |- |
| + | | 0xD8600801 |
| + | | Util (2) |
| + | | Encoding errors. In NIM, if error while encoding base64 for X-Authentication-Key or X-Authentication-Data HTTP parameters. |
| |} | | |} |