NIM Services: Difference between revisions
m Add anchors |
|||
(26 intermediate revisions by 10 users not shown) | |||
Line 1: | Line 1: | ||
__TOC__ | |||
= NIM | {{Anchor|NIMU}}{{Anchor|nim:u}} | ||
= NIM updater service "nim:u" = | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 7: | Line 8: | ||
|- | |- | ||
| 0x00010000 | | 0x00010000 | ||
| | | [[NIMU:StartNetworkUpdate|StartNetworkUpdate]] | ||
|- | |- | ||
| 0x00020000 | | 0x00020000 | ||
| [[NIMU: | | [[NIMU:GetProgress|GetProgress]] | ||
|- | |- | ||
| | | 0x00030000 | ||
| | | [[NIMU:Cancel|Cancel]] | ||
|- | |- | ||
| 0x00040000 | | 0x00040000 | ||
| [[NIMU: | | [[NIMU:CommitSystemTitles|CommitSystemTitles]] | ||
|- | |- | ||
| 0x00050000 | | 0x00050000 | ||
| | | [[NIMU:GetBackgroundEventForMenu|GetBackgroundEventForMenu]] | ||
|- | |- | ||
| | | 0x00060000 | ||
| | | [[NIMU:GetBackgroundEventForNews|GetBackgroundEventForNews]] | ||
|- | |- | ||
| | | 0x00070000 | ||
| | | [[NIMU:FormatSaveData|FormatSaveData]] | ||
|- | |- | ||
| | | 0x00080000 | ||
| | | [[NIMU:GetCustomerSupportCode|GetCustomerSupportCode]] | ||
|- | |- | ||
| 0x00090000 | | 0x00090000 | ||
| [[NIMU: | | [[NIMU:IsCommittableAllSystemTitles|IsCommittableAllSystemTitles]] | ||
|- | |- | ||
| 0x000A0000 | | 0x000A0000 | ||
| | | [[NIMU:GetBackgroundProgress|GetBackgroundProgress]] | ||
|- | |- | ||
| 0x000B0000 | | 0x000B0000 | ||
| [[NIMU: | | [[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 | {{Anchor|NIMS}}{{Anchor|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 | ||
| | | [[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 | |||
|} | |} | ||
{{Anchor|NIMAOC}}{{Anchor|nim:aoc}} | |||
= NIM server service "nim:aoc" = | = NIM server service "nim:aoc" = | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 93: | Line 301: | ||
|} | |} | ||
{{Anchor|NIMNDM}}{{Anchor|nim:ndm}} | |||
= 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 105: | Line 335: | ||
==Trusted RootCAs== | ==Trusted RootCAs== | ||
During startup NIM-module creates two RootCertChains with [[HTTP_Services|HTTPC]]. Both of these only contain the same [[HTTPC:RootCertChainAddDefaultCert|default]] cert with ID 0x3. The first RootCertChain is used with NetUpdateSOAP. Requests such as the "notifications.json" page don't use these RootCertChains(in this case just [[HTTPC:AddDefaultCert|default]] certID 0xB is used). | During startup NIM-module creates two RootCertChains with [[HTTP_Services|HTTPC]]. Both of these only contain the same [[HTTPC:RootCertChainAddDefaultCert|default]] cert with ID 0x3. The first RootCertChain is used with NetUpdateSOAP. Requests such as the "notifications.json" page don't use these RootCertChains(in this case just [[HTTPC:AddDefaultCert|default]] certID 0xB is used). | ||
==SOAP== | |||
===NetUpdateSOAP=== | |||
There are exactly 3 types of network SOAP requests used with [https://nus.c.shop.nintendowifi.net/nus/services/NetUpdateSOAP NetUpdateSOAP] by NIM module, described below. This URL contained in NIM module itself is only used with GetSystemTitleHash. The other requests use an identical URL loaded from an ECommerceSOAP response instead. | |||
See also [https://github.com/yellows8/ninupdates here]. | |||
====GetSystemUpdate==== | |||
Returns the current sysupdate title-listing. This also contains the SystemTitleHash returned by GetSystemTitleHash. | |||
====GetSystemTitleHash==== | |||
Returns the current SystemTitleHash for the current sysupdate title-listing. | |||
====GetSystemCommonETicket==== | |||
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 113: | Line 361: | ||
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. | ||
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 133: | Line 381: | ||
| 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. | |||
|} | |||
[[Category:Services]] |