<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://switchbrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Moosehunter</id>
	<title>Nintendo Switch Brew - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://switchbrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Moosehunter"/>
	<link rel="alternate" type="text/html" href="https://switchbrew.org/wiki/Special:Contributions/Moosehunter"/>
	<updated>2026-04-14T22:32:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=12.0.3&amp;diff=11022</id>
		<title>12.0.3</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=12.0.3&amp;diff=11022"/>
		<updated>2021-07-05T23:51:47Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* FS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Switch 12.0.3 system update was released on June 8, 2021 (UTC). This Switch update was released for the following regions: ALL, and CHN.&lt;br /&gt;
&lt;br /&gt;
Security flaws fixed: &amp;lt;fill this in manually later, see the updatedetails page from the ninupdates-report page(s) once available for now&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This sysupdate was temporarily not available via [[Network|sun]], which was later restored.&lt;br /&gt;
&lt;br /&gt;
==Change-log==&lt;br /&gt;
[https://en-americas-support.nintendo.com/app/answers/detail/a_id/22525/kw/nintendo%20switch%20system%20update Official] ALL change-log:&lt;br /&gt;
*   General system stability improvements to enhance the user&#039;s experience.&lt;br /&gt;
&lt;br /&gt;
==System Titles==&lt;br /&gt;
The following was updated: [[System_Version_Title|SystemVersion]]/RebootlessSystemUpdateVersion, NgWord/NgWord2, [[SSL_services|ssl]], BootImagePackages.&lt;br /&gt;
&lt;br /&gt;
===BootImagePackage===&lt;br /&gt;
Only package2 was updated.&lt;br /&gt;
&lt;br /&gt;
Kernel was not updated. The only updated sysmodule (besides buildid) was [[Filesystem_services|FS]].&lt;br /&gt;
&lt;br /&gt;
=====[[Filesystem services|FS]]=====&lt;br /&gt;
FS was recompiled against SDK 12.3.1 which now catches invalid characters directly after &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/.&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/..&amp;lt;/code&amp;gt; when checking if a path is normalized.&lt;br /&gt;
&lt;br /&gt;
===[[SSL_services|ssl]]===&lt;br /&gt;
Only 1 func was updated, this func is eventually called from [[SSL_services#SetSocketDescriptor|SetSocketDescriptor]]. This handles [[SSL_services#SslVersion|SslVersion]] etc. The code which allowed using TLS 1.3 was removed, the enum bit for V13 is now handled the same as V12.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
System update report(s):&lt;br /&gt;
* [https://yls8.mtheall.com/ninupdates/reports.php?date=2021-06-08_00-05-05&amp;amp;sys=hac]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{NavboxVersions}}&lt;br /&gt;
&lt;br /&gt;
[[Category:System versions]]&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=12.0.3&amp;diff=11011</id>
		<title>12.0.3</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=12.0.3&amp;diff=11011"/>
		<updated>2021-07-05T04:20:13Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* FS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Switch 12.0.3 system update was released on June 8, 2021 (UTC). This Switch update was released for the following regions: ALL, and CHN.&lt;br /&gt;
&lt;br /&gt;
Security flaws fixed: &amp;lt;fill this in manually later, see the updatedetails page from the ninupdates-report page(s) once available for now&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This sysupdate was temporarily not available via [[Network|sun]], which was later restored.&lt;br /&gt;
&lt;br /&gt;
==Change-log==&lt;br /&gt;
[https://en-americas-support.nintendo.com/app/answers/detail/a_id/22525/kw/nintendo%20switch%20system%20update Official] ALL change-log:&lt;br /&gt;
*   General system stability improvements to enhance the user&#039;s experience.&lt;br /&gt;
&lt;br /&gt;
==System Titles==&lt;br /&gt;
The following was updated: [[System_Version_Title|SystemVersion]]/RebootlessSystemUpdateVersion, NgWord/NgWord2, [[SSL_services|ssl]], BootImagePackages.&lt;br /&gt;
&lt;br /&gt;
===BootImagePackage===&lt;br /&gt;
Only package2 was updated.&lt;br /&gt;
&lt;br /&gt;
Kernel was not updated. The only updated sysmodule (besides buildid) was [[Filesystem_services|FS]].&lt;br /&gt;
&lt;br /&gt;
=====[[Filesystem services|FS]]=====&lt;br /&gt;
FS was recompiled against SDK 12.3.1 which now catches invalid characters directly after &amp;quot;/&amp;quot;, &amp;quot;/.&amp;quot; or &amp;quot;/..&amp;quot; when checking if a path is normalized.&lt;br /&gt;
&lt;br /&gt;
===[[SSL_services|ssl]]===&lt;br /&gt;
Only 1 func was updated, this func is eventually called from [[SSL_services#SetSocketDescriptor|SetSocketDescriptor]]. This handles [[SSL_services#SslVersion|SslVersion]] etc. The code which allowed using TLS 1.3 was removed, the enum bit for V13 is now handled the same as V12.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
System update report(s):&lt;br /&gt;
* [https://yls8.mtheall.com/ninupdates/reports.php?date=2021-06-08_00-05-05&amp;amp;sys=hac]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{NavboxVersions}}&lt;br /&gt;
&lt;br /&gt;
[[Category:System versions]]&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=12.0.3&amp;diff=10985</id>
		<title>12.0.3</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=12.0.3&amp;diff=10985"/>
		<updated>2021-06-08T18:06:06Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* BootImagePackage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Switch 12.0.3 system update was released on June 8, 2021 (UTC). This Switch update was released for the following regions: ALL, and CHN.&lt;br /&gt;
&lt;br /&gt;
Security flaws fixed: &amp;lt;fill this in manually later, see the updatedetails page from the ninupdates-report page(s) once available for now&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This sysupdate is temporarily not available via [[Network|sun]], however the content is still available on CDN. See [https://www.nintendo.co.jp/support/switch/system_update/index.html here] or [https://www.nintendo.co.uk/Support/Nintendo-Switch/System-Updates/Nintendo-Switch-System-Updates-and-Change-History-1445507.html here].&lt;br /&gt;
&lt;br /&gt;
==Change-log==&lt;br /&gt;
[https://en-americas-support.nintendo.com/app/answers/detail/a_id/22525/kw/nintendo%20switch%20system%20update Official] ALL change-log:&lt;br /&gt;
*   General system stability improvements to enhance the user&#039;s experience.&lt;br /&gt;
&lt;br /&gt;
==System Titles==&lt;br /&gt;
The following was updated: [[System_Version_Title|SystemVersion]]/RebootlessSystemUpdateVersion, NgWord/NgWord2, [[SSL_services|ssl]], BootImagePackages.&lt;br /&gt;
&lt;br /&gt;
===BootImagePackage===&lt;br /&gt;
Only package2 was updated.&lt;br /&gt;
&lt;br /&gt;
Kernel was not updated. The only updated sysmodule (besides buildid) was [[Filesystem_services|FS]].&lt;br /&gt;
&lt;br /&gt;
=====[[Filesystem services|FS]]=====&lt;br /&gt;
FS was recompiled against SDK 12.3.1 which now looks for invalid characters when checking if a path is normalized.&lt;br /&gt;
&lt;br /&gt;
===[[SSL_services|ssl]]===&lt;br /&gt;
Only 1 func was updated, this func is eventually called from [[SSL_services#SetSocketDescriptor|SetSocketDescriptor]]. This handles [[SSL_services#SslVersion|SslVersion]] etc. The code which allowed using TLS 1.3 was removed, the enum bit for V13 is now handled the same as V12.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
System update report(s):&lt;br /&gt;
* [https://yls8.mtheall.com/ninupdates/reports.php?date=2021-06-08_00-05-05&amp;amp;sys=hac]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{NavboxVersions}}&lt;br /&gt;
&lt;br /&gt;
[[Category:System versions]]&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Glue_services&amp;diff=9383</id>
		<title>Glue services</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Glue_services&amp;diff=9383"/>
		<updated>2020-04-23T15:53:18Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* GetApplicationControlProperty */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= arp:r =&lt;br /&gt;
This is &amp;quot;nn::arp::detail::IReader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetApplicationLaunchProperty]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [10.0.0+] [[#GetApplicationControlProperty]] ([1.0.0-9.2.0] [[#GetApplicationLaunchPropertyWithApplicationId]])&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [10.0.0+] GetApplicationProcessProperty ([1.0.0-9.2.0] [[#GetApplicationControlProperty)]]&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [10.0.0+] GetApplicationInstanceId ([1.0.0-9.2.0] [[#GetApplicationControlPropertyWithApplicationId]])&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [10.0.0+] [[#GetApplicationInstanceUnregistrationNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [10.0.0+] ListApplicationInstanceId&lt;br /&gt;
|-&lt;br /&gt;
| 6 || [10.0.0+] GetMicroApplicationInstanceId&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [10.0.0+] GetApplicationCertificate&lt;br /&gt;
|-&lt;br /&gt;
| 9998 || [9.0.0-9.2.0] GetPreomiaApplicationLaunchProperty&lt;br /&gt;
|-&lt;br /&gt;
| 9999 || [9.0.0-9.2.0] GetPreomiaApplicationControlProperty&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetApplicationLaunchProperty ==&lt;br /&gt;
Takes an input u64 ProcessId (1.0.0-9.2.0) or u64 ApplicationInstanceId (10.0.0+), returns an [[#ApplicationLaunchProperty]].&lt;br /&gt;
&lt;br /&gt;
== GetApplicationLaunchPropertyWithApplicationId ==&lt;br /&gt;
Takes an input u64 ApplicationId, returns an [[#ApplicationLaunchProperty]].&lt;br /&gt;
&lt;br /&gt;
== GetApplicationControlProperty ==&lt;br /&gt;
Takes an input u64 ProcessId (1.0.0-9.2.0) or u64 ApplicationInstanceId (10.0.0+), returns a type-0x16 buffer filled with the contents of [[NACP_Format|control.nacp]]&lt;br /&gt;
&lt;br /&gt;
== GetApplicationControlPropertyWithApplicationId ==&lt;br /&gt;
Takes an input u64 ApplicationId, returns a type-0x16 buffer filled with the contents of [[NACP_Format|control.nacp]]&lt;br /&gt;
&lt;br /&gt;
== GetApplicationInstanceUnregistrationNotifier ==&lt;br /&gt;
Returns an [[#IUnregistrationNotifier]].&lt;br /&gt;
&lt;br /&gt;
== IUnregistrationNotifier ==&lt;br /&gt;
This is &amp;quot;nn::arp::detail::IUnregistrationNotifier&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || GetReadableHandle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= arp:w =&lt;br /&gt;
This is &amp;quot;nn::arp::detail::IWriter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#AcquireRegistrar]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [10.0.0+] UnregisterApplicationInstance ([1.0.0-9.2.0] DeleteProperties)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [10.0.0+] [[#AcquireUpdater]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== AcquireRegistrar ==&lt;br /&gt;
Returns an [[#IRegistrar]].&lt;br /&gt;
&lt;br /&gt;
== AcquireUpdater ==&lt;br /&gt;
Returns an [[#IUpdater]].&lt;br /&gt;
&lt;br /&gt;
== IRegistrar ==&lt;br /&gt;
This is &amp;quot;nn::arp::detail::IRegistrar&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Issue]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#SetApplicationLaunchProperty]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [[#SetApplicationControlProperty]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Issue ===&lt;br /&gt;
Takes an input u64.&lt;br /&gt;
&lt;br /&gt;
=== SetApplicationLaunchProperty ===&lt;br /&gt;
Takes an input [[#ApplicationLaunchProperty]].&lt;br /&gt;
&lt;br /&gt;
=== SetApplicationControlProperty ===&lt;br /&gt;
Takes an input type-0x15 buffer filled with the contents of [[NACP_Format|control.nacp]].&lt;br /&gt;
&lt;br /&gt;
== IUpdater ==&lt;br /&gt;
This is &amp;quot;nn::arp::detail::IUpdater&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Issue&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SetApplicationProcessProperty&lt;br /&gt;
|-&lt;br /&gt;
| 2 || DeleteApplicationProcessProperty&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetApplicationCertificate&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= bgtc:t =&lt;br /&gt;
This is &amp;quot;nn::bgtc::ITaskService&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || NotifyTaskStarting&lt;br /&gt;
|-&lt;br /&gt;
| 2 || NotifyTaskFinished&lt;br /&gt;
|-&lt;br /&gt;
| 3 || GetTriggerEvent&lt;br /&gt;
|-&lt;br /&gt;
| 4 || IsInHalfAwake&lt;br /&gt;
|-&lt;br /&gt;
| 5 || NotifyClientName&lt;br /&gt;
|-&lt;br /&gt;
| 6 || [3.0.0+] IsInFullAwake&lt;br /&gt;
|-&lt;br /&gt;
| 11 || ScheduleTask&lt;br /&gt;
|-&lt;br /&gt;
| 12 || GetScheduledTaskInterval&lt;br /&gt;
|-&lt;br /&gt;
| 13 || UnscheduleTask&lt;br /&gt;
|-&lt;br /&gt;
| 14 || GetScheduleEvent&lt;br /&gt;
|-&lt;br /&gt;
| 15 || SchedulePeriodicTask&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [9.0.0+]&lt;br /&gt;
|-&lt;br /&gt;
| 101 || [3.0.0+] GetOperationMode&lt;br /&gt;
|-&lt;br /&gt;
| 102 || [3.0.0+] WillDisconnectNetworkWhenEnteringSleep&lt;br /&gt;
|-&lt;br /&gt;
| 103 || [3.0.0+] WillStayHalfAwakeInsteadSleep&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= bgtc:sc =&lt;br /&gt;
This is &amp;quot;nn::bgtc::IStateControlService&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GetState&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GetStateChangedEvent&lt;br /&gt;
|-&lt;br /&gt;
| 3 || NotifyEnteringHalfAwake&lt;br /&gt;
|-&lt;br /&gt;
| 4 || NotifyLeavingHalfAwake&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [3.0.0+] SetIsUsingSleepUnsupportedDevices&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[10.0.0+] NotifyEnteringHalfAwake now takes 1-byte of input.&lt;br /&gt;
&lt;br /&gt;
= time:a, time:r, time:u =&lt;br /&gt;
These are &amp;quot;nn::timesrv::detail::service::IStaticService&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
These were added with [9.0.0+].&lt;br /&gt;
&lt;br /&gt;
The time:u service has max_sessions 17, time:a has max_sessions 4, and time:r has max_sessions 2.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || GetStandardUserSystemClock || Returns an [[#ISystemClock]].&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GetStandardNetworkSystemClock || Returns an [[#ISystemClock]].&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GetStandardSteadyClock || Returns an [[#ISteadyClock]].&lt;br /&gt;
|-&lt;br /&gt;
| 3 || GetTimeZoneService || Returns an [[#ITimeZoneService]].&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetStandardLocalSystemClock || Returns an [[#ISystemClock]].&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] GetEphemeralNetworkSystemClock || Returns an [[#ISystemClock]].&lt;br /&gt;
|-&lt;br /&gt;
| 20 || [6.0.0+] GetSharedMemoryNativeHandle || &lt;br /&gt;
|-&lt;br /&gt;
| 30 || [6.0.0-8.1.0] GetStandardNetworkClockOperationEventReadableHandle || &lt;br /&gt;
|-&lt;br /&gt;
| 31 || [6.0.0-8.1.0] GetEphemeralNetworkClockOperationEventReadableHandle || &lt;br /&gt;
|-&lt;br /&gt;
| 50 || [4.0.0+] SetStandardSteadyClockInternalOffset || &lt;br /&gt;
|-&lt;br /&gt;
| 51 || [9.0.0+] GetStandardSteadyClockRtcValue || &lt;br /&gt;
|-&lt;br /&gt;
| 100 || IsStandardUserSystemClockAutomaticCorrectionEnabled || &lt;br /&gt;
|-&lt;br /&gt;
| 101 || SetStandardUserSystemClockAutomaticCorrectionEnabled || &lt;br /&gt;
|-&lt;br /&gt;
| 102 || [5.0.0+] GetStandardUserSystemClockInitialYear || &lt;br /&gt;
|-&lt;br /&gt;
| 200 || [3.0.0+] IsStandardNetworkSystemClockAccuracySufficient || &lt;br /&gt;
|-&lt;br /&gt;
| 201 || [6.0.0+] GetStandardUserSystemClockAutomaticCorrectionUpdatedTime || &lt;br /&gt;
|-&lt;br /&gt;
| 300 || [4.0.0+] CalculateMonotonicSystemClockBaseTimePoint || &lt;br /&gt;
|-&lt;br /&gt;
| 400 || [4.0.0+] GetClockSnapshot || &lt;br /&gt;
|-&lt;br /&gt;
| 401 || [4.0.0+] GetClockSnapshotFromSystemClockContext || &lt;br /&gt;
|-&lt;br /&gt;
| 500 || [4.0.0+] CalculateStandardUserSystemClockDifferenceByUser || &lt;br /&gt;
|-&lt;br /&gt;
| 501 || [4.0.0+] CalculateSpanBetween || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ISteadyClock ==&lt;br /&gt;
This is &amp;quot;nn::timesrv::detail::service::ISteadyClock&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || GetCurrentTimePoint || No input, returns an output [[#SteadyClockTimePoint]].&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GetTestOffset || No input, returns an output [[#TimeSpanType]].&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetTestOffset || Takes an input [[#TimeSpanType]], no output.&lt;br /&gt;
|-&lt;br /&gt;
| 100 || [2.0.0+] GetRtcValue || No input, returns an output s64.&lt;br /&gt;
|-&lt;br /&gt;
| 101 || [2.0.0+] IsRtcResetDetected || No input, returns an output u8 bool.&lt;br /&gt;
|-&lt;br /&gt;
| 102 || [2.0.0+] GetSetupResultValue || No input, returns an output u32.&lt;br /&gt;
|-&lt;br /&gt;
| 200 || [3.0.0+] GetInternalOffset || No input, returns an output [[#TimeSpanType]].&lt;br /&gt;
|-&lt;br /&gt;
| 201 || [3.0.0-3.0.2] SetInternalOffset || Takes an input [[#TimeSpanType]], no output.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== SteadyClockTimePoint ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8|| A u64 representing a point in time.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x10 || An ID representing the clock source.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a 0x18-byte struct.&lt;br /&gt;
&lt;br /&gt;
=== TimeSpanType ===&lt;br /&gt;
This is an u64.&lt;br /&gt;
&lt;br /&gt;
== ISystemClock ==&lt;br /&gt;
This is &amp;quot;nn::timesrv::detail::service::ISystemClock&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || GetCurrentTime || Returns an output [[#PosixTime]].&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SetCurrentTime || Takes an input [[#PosixTime]].&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GetSystemClockContext || Returns an output [[#SystemClockContext]].&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSystemClockContext || Takes an input [[#SystemClockContext]].&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [9.0.0+] GetOperationEventReadableHandle ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PosixTime ===&lt;br /&gt;
This is an s64 for UTC POSIX time.&lt;br /&gt;
&lt;br /&gt;
=== SystemClockContext ===&lt;br /&gt;
This is an 0x20-byte struct.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8|| a [[#PosixTime]] representing the system clock epoch.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x18 || a [[#SteadyClockTimePoint]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ITimeZoneService ==&lt;br /&gt;
This is &amp;quot;nn::timesrv::detail::service::ITimeZoneService&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || GetDeviceLocationName || No input, returns an output [[#LocationName]].&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SetDeviceLocationName || Takes an input [[#LocationName]], no output.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GetTotalLocationNameCount || No input, returns an output s32.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || LoadLocationNameList || &lt;br /&gt;
|-&lt;br /&gt;
| 4 || LoadTimeZoneRule || Takes an input [[#LocationName]] and a type-0x16 output buffer for [[#TimeZoneRule]], no output.&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [2.0.0+] GetTimeZoneRuleVersion ||  No input, returns an output [[#TimeZoneRuleVersion]].&lt;br /&gt;
|-&lt;br /&gt;
| 6 || [5.0.0+] GetDeviceLocationNameAndUpdatedTime || &lt;br /&gt;
|-&lt;br /&gt;
| 7 || [9.0.0+] SetDeviceLocationNameWithTimeZoneRule || &lt;br /&gt;
|-&lt;br /&gt;
| 8 || [9.0.0+] ParseTimeZoneBinary || Stubbed, return 0x7BC74. &lt;br /&gt;
|-&lt;br /&gt;
| 20 || [9.0.0+] GetDeviceLocationNameOperationEventReadableHandle || &lt;br /&gt;
|-&lt;br /&gt;
| 100 || ToCalendarTime || Takes an input [[#PosixTime]] and a type-0x15 input buffer for [[#TimeZoneRule]], returns an output [[#CalendarTime]] and [[#CalendarAdditionalInfo]].&lt;br /&gt;
|-&lt;br /&gt;
| 101 || ToCalendarTimeWithMyRule || Takes an input [[#PosixTime]], returns an output [[#CalendarTime]] and [[#CalendarAdditionalInfo]].&lt;br /&gt;
|-&lt;br /&gt;
| 201 || ToPosixTime || Takes an input [[#CalendarTime]], a type-0x15 input buffer for [[#TimeZoneRule]], an type-0xA output buffer for [[#PosixTime]] array, and returns an output s32.&lt;br /&gt;
|-&lt;br /&gt;
| 202 || ToPosixTimeWithMyRule || Takes an input [[#CalendarTime]], an type-0xA output buffer for [[#PosixTime]] array, and returns an output s32.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== LoadLocationNameList ===&lt;br /&gt;
Takes an input s32 LocationName_index and a type-0x6 output buffer for [[#LocationName]], returns an output s32 for total output entries.&lt;br /&gt;
&lt;br /&gt;
=== LocationName ===&lt;br /&gt;
This contains a TimeZone location string with a max size of 0x24 bytes.&lt;br /&gt;
&lt;br /&gt;
=== TimeZoneRule ===&lt;br /&gt;
This is an 0x4000-byte struct. Official sw uses fixed-size 0x4000 for the buffer size with the above commands.&lt;br /&gt;
&lt;br /&gt;
This is loaded from the [[Title_list|TimeZoneBinary]] title with the specified LocationName under the zoneinfo/ directory, the content is then converted into this TimeZoneRule structure.&lt;br /&gt;
&lt;br /&gt;
The files contained under zoneinfo/ directory are Tzif2 files without Tzif1 header and data at the begining of them (see [https://tools.ietf.org/html/rfc8536 RFC8536] for more information).&lt;br /&gt;
&lt;br /&gt;
The conversion of a Tzif2 file to a TimeZoneRule structure is based on [https://github.com/eggert/tz/blob/master/localtime.c tz database code] with some custom modifications (Leap seconds aren&#039;t handled, no usage of &amp;quot;posixrules&amp;quot; and Tzif1 support stripped out).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x4 || timecnt&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x4 || typecnt&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x4 || charcnt&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x1 || goback&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x1 || goahead&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x2 || Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8 * 1000 || ats&lt;br /&gt;
|-&lt;br /&gt;
| 0x1f50 || 0x1 * 1000 || types&lt;br /&gt;
|-&lt;br /&gt;
| 0x2338 || 0x10 * 128 || ttis (time type information), struct ttinfo[1000]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2b38 || 0x1 * 512 || chars&lt;br /&gt;
|-&lt;br /&gt;
| 0x2d38 || 0x4 || defaulttype&lt;br /&gt;
|-&lt;br /&gt;
| 0x2d3c || 0x12c4 || Reserved / Unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ttinfo ===&lt;br /&gt;
This is an 0x10-byte struct.&lt;br /&gt;
Represent a Time Type Information used in [[#TimeZoneRule]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x4 || tt_gmtoff&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x1 || tt_isdst&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x3 || Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x4 || tt_abbrind&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x1 || tt_ttisstd&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x1 || tt_ttisgmt&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x2 || Padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TimeZoneRuleVersion ===&lt;br /&gt;
This is an u128.&lt;br /&gt;
&lt;br /&gt;
=== CalendarTime ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x2 || Year&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x1 || Month&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x1 || Day&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x1 || Hour&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x1 || Minute&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x1 || Second&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x1 || Padding / unknown?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is an 0x8-byte struct.&lt;br /&gt;
&lt;br /&gt;
=== CalendarAdditionalInfo ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x4 || 0-based day-of-week.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x4 || 0-based day-of-year.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8 || Timezone name string.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x4 || 0 = no DST, 1 = DST.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x4 || s32 seconds relative to UTC for this timezone.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is an 0x18-byte struct. This stores timezone info.&lt;br /&gt;
&lt;br /&gt;
= notif:a =&lt;br /&gt;
This is &amp;quot;nn::notification::server::INotificationServicesForApplication&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [9.0.0+].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [[#RegisterAlarmSetting]]&lt;br /&gt;
|-&lt;br /&gt;
| 510 || [[#UpdateAlarmSetting]]&lt;br /&gt;
|-&lt;br /&gt;
| 520 || [[#ListAlarmSettings]]&lt;br /&gt;
|-&lt;br /&gt;
| 530 || [[#LoadApplicationParameter]]&lt;br /&gt;
|-&lt;br /&gt;
| 540 || [[#DeleteAlarmSetting]]&lt;br /&gt;
|-&lt;br /&gt;
| 1000 || [[#Initialize]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== RegisterAlarmSetting ==&lt;br /&gt;
Takes a type-0x15 input buffer [[#AlarmSetting]] and a type-0x5 input buffer. Returns an [[#AlarmSettingId]].&lt;br /&gt;
&lt;br /&gt;
The second buffer can be empty (addr=0/size=0). Size must be &amp;lt;=0x400. This is the ApplicationParameter.&lt;br /&gt;
&lt;br /&gt;
A maximum of 8 Alarms can be registered by an Application at the same time.&lt;br /&gt;
&lt;br /&gt;
Before using the cmd, sdknso uses [[HID_services|hid]] IsFirmwareUpdateNeededForNotification then if needed launches the controller-applet for firmware-update.&lt;br /&gt;
&lt;br /&gt;
After using the cmd when it failed, [[Error_Applet|ShowError]] will be used when the Result is in a certain range, otherwise this will assert.&lt;br /&gt;
&lt;br /&gt;
== UpdateAlarmSetting ==&lt;br /&gt;
Takes a type-0x15 input buffer [[#AlarmSetting]] and a type-0x5 input buffer. No output.&lt;br /&gt;
&lt;br /&gt;
The second buffer can be empty (addr=0/size=0). Size must be &amp;lt;=0x400. This is the ApplicationParameter.&lt;br /&gt;
&lt;br /&gt;
== ListAlarmSettings ==&lt;br /&gt;
Takes a type-0x6 output buffer to receive an array of [[#AlarmSetting]]. Returns a s32 &#039;&#039;&#039;AlarmSettingsCount&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== LoadApplicationParameter ==&lt;br /&gt;
Takes an input [[#AlarmSettingId]] and a type-0x6 output buffer containing the ApplicationParameter. Returns an u32 actual_size.&lt;br /&gt;
&lt;br /&gt;
== DeleteAlarmSetting ==&lt;br /&gt;
Takes an input [[#AlarmSettingId]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
Takes a PID-descriptor and an input u64 pid_reserved.&lt;br /&gt;
&lt;br /&gt;
= notif:s =&lt;br /&gt;
This is &amp;quot;nn::notification::server::INotificationServicesForSystem&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [9.0.0+].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [[#RegisterAlarmSetting]]&lt;br /&gt;
|-&lt;br /&gt;
| 510 || [[#UpdateAlarmSetting]]&lt;br /&gt;
|-&lt;br /&gt;
| 520 || [[#ListAlarmSettings]]&lt;br /&gt;
|-&lt;br /&gt;
| 530 || [[#LoadApplicationParameter]]&lt;br /&gt;
|-&lt;br /&gt;
| 540 || [[#DeleteAlarmSetting]]&lt;br /&gt;
|-&lt;br /&gt;
| 1000 || &lt;br /&gt;
|-&lt;br /&gt;
| 1010 || [[#ListNotifications]]&lt;br /&gt;
|-&lt;br /&gt;
| 1020 || [[#DeleteNotification]]&lt;br /&gt;
|-&lt;br /&gt;
| 1030 || [[#ClearNotifications]]&lt;br /&gt;
|-&lt;br /&gt;
| 1040 || [[#OpenNotificationSystemEventAccessor]]&lt;br /&gt;
|-&lt;br /&gt;
| 1500 || [[#SetPresentationSetting]]&lt;br /&gt;
|-&lt;br /&gt;
| 1510 || [[#GetPresentationSetting]]&lt;br /&gt;
|-&lt;br /&gt;
| 2000 || [[#GetAlarmSetting]]&lt;br /&gt;
|-&lt;br /&gt;
| 2001 ||&lt;br /&gt;
|-&lt;br /&gt;
| 2010 || [[#MuteAlarmSetting]]&lt;br /&gt;
|-&lt;br /&gt;
| 2020 || [[#IsAlarmSettingReady]]&lt;br /&gt;
|-&lt;br /&gt;
| 8000 ||&lt;br /&gt;
|-&lt;br /&gt;
| 8010 ||&lt;br /&gt;
|-&lt;br /&gt;
| 8999 || [10.0.0+]&lt;br /&gt;
|-&lt;br /&gt;
| 9000 || [[#GetNextAlarm]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cmd1000 ==&lt;br /&gt;
No input, returns a total of 4-bytes of output.&lt;br /&gt;
&lt;br /&gt;
== ListNotifications ==&lt;br /&gt;
Unofficial name.&lt;br /&gt;
&lt;br /&gt;
== DeleteNotification ==&lt;br /&gt;
Unofficial name.&lt;br /&gt;
&lt;br /&gt;
== ClearNotifications ==&lt;br /&gt;
Unofficial name.&lt;br /&gt;
&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
== OpenNotificationSystemEventAccessor ==&lt;br /&gt;
Unofficial name.&lt;br /&gt;
&lt;br /&gt;
No input, returns an output [[#INotificationSystemEventAccessor]].&lt;br /&gt;
&lt;br /&gt;
== INotificationSystemEventAccessor ==&lt;br /&gt;
This is &amp;quot;nn::notification::server::INotificationSystemEventAccessor&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [9.0.0+].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cmd0: no input, returns an output handle.&lt;br /&gt;
&lt;br /&gt;
== SetPresentationSetting ==&lt;br /&gt;
Unofficial name.&lt;br /&gt;
&lt;br /&gt;
== GetPresentationSetting ==&lt;br /&gt;
Unofficial name.&lt;br /&gt;
&lt;br /&gt;
== GetAlarmSetting ==&lt;br /&gt;
Unofficial name.&lt;br /&gt;
&lt;br /&gt;
Takes an input [[#AlarmSettingId]]. Returns an [[#AlarmSetting]].&lt;br /&gt;
&lt;br /&gt;
== MuteAlarmSetting ==&lt;br /&gt;
Unofficial name.&lt;br /&gt;
&lt;br /&gt;
Takes an input [[#AlarmSettingId]] and a bool.&lt;br /&gt;
&lt;br /&gt;
== IsAlarmSettingReady ==&lt;br /&gt;
Unofficial name.&lt;br /&gt;
&lt;br /&gt;
Takes an input [[#AlarmSettingId]]. Returns a bool.&lt;br /&gt;
&lt;br /&gt;
== GetNextAlarm ==&lt;br /&gt;
Unofficial name.&lt;br /&gt;
&lt;br /&gt;
Takes an input [[#AlarmSettingId]]. Returns an u8 &#039;&#039;&#039;IsAlarmScheduled&#039;&#039;&#039; and a [[Glue_services#PosixTime|PosixTime]] for the next scheduled alarm.&lt;br /&gt;
&lt;br /&gt;
= ApplicationLaunchProperty =&lt;br /&gt;
Total size is 0x10 bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x08&lt;br /&gt;
| Title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 0x04&lt;br /&gt;
| Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 0x01&lt;br /&gt;
| Base Game [[Filesystem_services#StorageId|Storage Id]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D&lt;br /&gt;
| 0x01&lt;br /&gt;
| Update [[Filesystem_services#StorageId|Storage Id]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E&lt;br /&gt;
| 0x02&lt;br /&gt;
| Padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= AlarmSettingId =&lt;br /&gt;
This is &amp;quot;nn::notification::AlarmSettingId&amp;quot;. This is an u16.&lt;br /&gt;
&lt;br /&gt;
= AlarmSetting =&lt;br /&gt;
This is &amp;quot;nn::notification::AlarmSetting&amp;quot;. Total size is 0x40 bytes. When initializing this to the defaults, the entire struct is cleared then the last 0xE-bytes are set to 0xFF.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x02&lt;br /&gt;
| [[#AlarmSettingId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x02&lt;br /&gt;
| 0x01&lt;br /&gt;
| Kind (0 = WeeklySchedule)&lt;br /&gt;
|-&lt;br /&gt;
| 0x03&lt;br /&gt;
| 0x01&lt;br /&gt;
| u8 bool Muted (non-zero/true = AlarmSetting turned off, zero/false = on).&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 0x04&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 0x10&lt;br /&gt;
| UID. User account associated with this AlarmSetting. Used for the PreselectedUser when launching the Application when the system was previously in sleep-mode, instead of launching the applet for selecting the user.&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x08&lt;br /&gt;
| ApplicationId&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x08&lt;br /&gt;
| Not set by sdksno, besides clearing it during initialization.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x18&lt;br /&gt;
| Alarm schedule (WeeklyScheduleAlarmSetting)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schedule:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x0A || Not set by sdksno, besides clearing it during initialization.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || 0xE(7*2) || Array of 7 entries where each entry is 2-bytes. Index is &amp;lt;code&amp;gt;nn::time::DayOfWeek&amp;lt;/code&amp;gt;, Sun-Sat.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Array entries:&lt;br /&gt;
&lt;br /&gt;
Each byte is set using an input s32. An entry with value 0xFFFF (the default) indicates that it&#039;s disabled. The high byte is the hour, the low byte is the minute. This uses local-time.&lt;br /&gt;
&lt;br /&gt;
sdknso checks whether an entry is enabled with: &amp;lt;code&amp;gt;return ({last 5-bits of the entry} &amp;lt; 3) &amp;amp;&amp;amp; ((entry &amp;amp; 0xfc) &amp;lt; 60);&amp;lt;/code&amp;gt;. The first check is equivalent to comparing the second entry byte with value 24.&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Glue_services&amp;diff=9382</id>
		<title>Glue services</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Glue_services&amp;diff=9382"/>
		<updated>2020-04-23T15:52:56Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* GetApplicationLaunchProperty */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= arp:r =&lt;br /&gt;
This is &amp;quot;nn::arp::detail::IReader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetApplicationLaunchProperty]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [10.0.0+] [[#GetApplicationControlProperty]] ([1.0.0-9.2.0] [[#GetApplicationLaunchPropertyWithApplicationId]])&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [10.0.0+] GetApplicationProcessProperty ([1.0.0-9.2.0] [[#GetApplicationControlProperty)]]&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [10.0.0+] GetApplicationInstanceId ([1.0.0-9.2.0] [[#GetApplicationControlPropertyWithApplicationId]])&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [10.0.0+] [[#GetApplicationInstanceUnregistrationNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [10.0.0+] ListApplicationInstanceId&lt;br /&gt;
|-&lt;br /&gt;
| 6 || [10.0.0+] GetMicroApplicationInstanceId&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [10.0.0+] GetApplicationCertificate&lt;br /&gt;
|-&lt;br /&gt;
| 9998 || [9.0.0-9.2.0] GetPreomiaApplicationLaunchProperty&lt;br /&gt;
|-&lt;br /&gt;
| 9999 || [9.0.0-9.2.0] GetPreomiaApplicationControlProperty&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetApplicationLaunchProperty ==&lt;br /&gt;
Takes an input u64 ProcessId (1.0.0-9.2.0) or u64 ApplicationInstanceId (10.0.0+), returns an [[#ApplicationLaunchProperty]].&lt;br /&gt;
&lt;br /&gt;
== GetApplicationLaunchPropertyWithApplicationId ==&lt;br /&gt;
Takes an input u64 ApplicationId, returns an [[#ApplicationLaunchProperty]].&lt;br /&gt;
&lt;br /&gt;
== GetApplicationControlProperty ==&lt;br /&gt;
Takes an input u64 ProcessId, returns a type-0x16 buffer filled with the contents of [[NACP_Format|control.nacp]]&lt;br /&gt;
&lt;br /&gt;
== GetApplicationControlPropertyWithApplicationId ==&lt;br /&gt;
Takes an input u64 ApplicationId, returns a type-0x16 buffer filled with the contents of [[NACP_Format|control.nacp]]&lt;br /&gt;
&lt;br /&gt;
== GetApplicationInstanceUnregistrationNotifier ==&lt;br /&gt;
Returns an [[#IUnregistrationNotifier]].&lt;br /&gt;
&lt;br /&gt;
== IUnregistrationNotifier ==&lt;br /&gt;
This is &amp;quot;nn::arp::detail::IUnregistrationNotifier&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || GetReadableHandle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= arp:w =&lt;br /&gt;
This is &amp;quot;nn::arp::detail::IWriter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#AcquireRegistrar]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [10.0.0+] UnregisterApplicationInstance ([1.0.0-9.2.0] DeleteProperties)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [10.0.0+] [[#AcquireUpdater]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== AcquireRegistrar ==&lt;br /&gt;
Returns an [[#IRegistrar]].&lt;br /&gt;
&lt;br /&gt;
== AcquireUpdater ==&lt;br /&gt;
Returns an [[#IUpdater]].&lt;br /&gt;
&lt;br /&gt;
== IRegistrar ==&lt;br /&gt;
This is &amp;quot;nn::arp::detail::IRegistrar&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Issue]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#SetApplicationLaunchProperty]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [[#SetApplicationControlProperty]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Issue ===&lt;br /&gt;
Takes an input u64.&lt;br /&gt;
&lt;br /&gt;
=== SetApplicationLaunchProperty ===&lt;br /&gt;
Takes an input [[#ApplicationLaunchProperty]].&lt;br /&gt;
&lt;br /&gt;
=== SetApplicationControlProperty ===&lt;br /&gt;
Takes an input type-0x15 buffer filled with the contents of [[NACP_Format|control.nacp]].&lt;br /&gt;
&lt;br /&gt;
== IUpdater ==&lt;br /&gt;
This is &amp;quot;nn::arp::detail::IUpdater&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Issue&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SetApplicationProcessProperty&lt;br /&gt;
|-&lt;br /&gt;
| 2 || DeleteApplicationProcessProperty&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetApplicationCertificate&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= bgtc:t =&lt;br /&gt;
This is &amp;quot;nn::bgtc::ITaskService&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || NotifyTaskStarting&lt;br /&gt;
|-&lt;br /&gt;
| 2 || NotifyTaskFinished&lt;br /&gt;
|-&lt;br /&gt;
| 3 || GetTriggerEvent&lt;br /&gt;
|-&lt;br /&gt;
| 4 || IsInHalfAwake&lt;br /&gt;
|-&lt;br /&gt;
| 5 || NotifyClientName&lt;br /&gt;
|-&lt;br /&gt;
| 6 || [3.0.0+] IsInFullAwake&lt;br /&gt;
|-&lt;br /&gt;
| 11 || ScheduleTask&lt;br /&gt;
|-&lt;br /&gt;
| 12 || GetScheduledTaskInterval&lt;br /&gt;
|-&lt;br /&gt;
| 13 || UnscheduleTask&lt;br /&gt;
|-&lt;br /&gt;
| 14 || GetScheduleEvent&lt;br /&gt;
|-&lt;br /&gt;
| 15 || SchedulePeriodicTask&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [9.0.0+]&lt;br /&gt;
|-&lt;br /&gt;
| 101 || [3.0.0+] GetOperationMode&lt;br /&gt;
|-&lt;br /&gt;
| 102 || [3.0.0+] WillDisconnectNetworkWhenEnteringSleep&lt;br /&gt;
|-&lt;br /&gt;
| 103 || [3.0.0+] WillStayHalfAwakeInsteadSleep&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= bgtc:sc =&lt;br /&gt;
This is &amp;quot;nn::bgtc::IStateControlService&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GetState&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GetStateChangedEvent&lt;br /&gt;
|-&lt;br /&gt;
| 3 || NotifyEnteringHalfAwake&lt;br /&gt;
|-&lt;br /&gt;
| 4 || NotifyLeavingHalfAwake&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [3.0.0+] SetIsUsingSleepUnsupportedDevices&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[10.0.0+] NotifyEnteringHalfAwake now takes 1-byte of input.&lt;br /&gt;
&lt;br /&gt;
= time:a, time:r, time:u =&lt;br /&gt;
These are &amp;quot;nn::timesrv::detail::service::IStaticService&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
These were added with [9.0.0+].&lt;br /&gt;
&lt;br /&gt;
The time:u service has max_sessions 17, time:a has max_sessions 4, and time:r has max_sessions 2.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || GetStandardUserSystemClock || Returns an [[#ISystemClock]].&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GetStandardNetworkSystemClock || Returns an [[#ISystemClock]].&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GetStandardSteadyClock || Returns an [[#ISteadyClock]].&lt;br /&gt;
|-&lt;br /&gt;
| 3 || GetTimeZoneService || Returns an [[#ITimeZoneService]].&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetStandardLocalSystemClock || Returns an [[#ISystemClock]].&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] GetEphemeralNetworkSystemClock || Returns an [[#ISystemClock]].&lt;br /&gt;
|-&lt;br /&gt;
| 20 || [6.0.0+] GetSharedMemoryNativeHandle || &lt;br /&gt;
|-&lt;br /&gt;
| 30 || [6.0.0-8.1.0] GetStandardNetworkClockOperationEventReadableHandle || &lt;br /&gt;
|-&lt;br /&gt;
| 31 || [6.0.0-8.1.0] GetEphemeralNetworkClockOperationEventReadableHandle || &lt;br /&gt;
|-&lt;br /&gt;
| 50 || [4.0.0+] SetStandardSteadyClockInternalOffset || &lt;br /&gt;
|-&lt;br /&gt;
| 51 || [9.0.0+] GetStandardSteadyClockRtcValue || &lt;br /&gt;
|-&lt;br /&gt;
| 100 || IsStandardUserSystemClockAutomaticCorrectionEnabled || &lt;br /&gt;
|-&lt;br /&gt;
| 101 || SetStandardUserSystemClockAutomaticCorrectionEnabled || &lt;br /&gt;
|-&lt;br /&gt;
| 102 || [5.0.0+] GetStandardUserSystemClockInitialYear || &lt;br /&gt;
|-&lt;br /&gt;
| 200 || [3.0.0+] IsStandardNetworkSystemClockAccuracySufficient || &lt;br /&gt;
|-&lt;br /&gt;
| 201 || [6.0.0+] GetStandardUserSystemClockAutomaticCorrectionUpdatedTime || &lt;br /&gt;
|-&lt;br /&gt;
| 300 || [4.0.0+] CalculateMonotonicSystemClockBaseTimePoint || &lt;br /&gt;
|-&lt;br /&gt;
| 400 || [4.0.0+] GetClockSnapshot || &lt;br /&gt;
|-&lt;br /&gt;
| 401 || [4.0.0+] GetClockSnapshotFromSystemClockContext || &lt;br /&gt;
|-&lt;br /&gt;
| 500 || [4.0.0+] CalculateStandardUserSystemClockDifferenceByUser || &lt;br /&gt;
|-&lt;br /&gt;
| 501 || [4.0.0+] CalculateSpanBetween || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ISteadyClock ==&lt;br /&gt;
This is &amp;quot;nn::timesrv::detail::service::ISteadyClock&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || GetCurrentTimePoint || No input, returns an output [[#SteadyClockTimePoint]].&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GetTestOffset || No input, returns an output [[#TimeSpanType]].&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetTestOffset || Takes an input [[#TimeSpanType]], no output.&lt;br /&gt;
|-&lt;br /&gt;
| 100 || [2.0.0+] GetRtcValue || No input, returns an output s64.&lt;br /&gt;
|-&lt;br /&gt;
| 101 || [2.0.0+] IsRtcResetDetected || No input, returns an output u8 bool.&lt;br /&gt;
|-&lt;br /&gt;
| 102 || [2.0.0+] GetSetupResultValue || No input, returns an output u32.&lt;br /&gt;
|-&lt;br /&gt;
| 200 || [3.0.0+] GetInternalOffset || No input, returns an output [[#TimeSpanType]].&lt;br /&gt;
|-&lt;br /&gt;
| 201 || [3.0.0-3.0.2] SetInternalOffset || Takes an input [[#TimeSpanType]], no output.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== SteadyClockTimePoint ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8|| A u64 representing a point in time.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x10 || An ID representing the clock source.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a 0x18-byte struct.&lt;br /&gt;
&lt;br /&gt;
=== TimeSpanType ===&lt;br /&gt;
This is an u64.&lt;br /&gt;
&lt;br /&gt;
== ISystemClock ==&lt;br /&gt;
This is &amp;quot;nn::timesrv::detail::service::ISystemClock&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || GetCurrentTime || Returns an output [[#PosixTime]].&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SetCurrentTime || Takes an input [[#PosixTime]].&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GetSystemClockContext || Returns an output [[#SystemClockContext]].&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSystemClockContext || Takes an input [[#SystemClockContext]].&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [9.0.0+] GetOperationEventReadableHandle ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PosixTime ===&lt;br /&gt;
This is an s64 for UTC POSIX time.&lt;br /&gt;
&lt;br /&gt;
=== SystemClockContext ===&lt;br /&gt;
This is an 0x20-byte struct.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8|| a [[#PosixTime]] representing the system clock epoch.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x18 || a [[#SteadyClockTimePoint]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ITimeZoneService ==&lt;br /&gt;
This is &amp;quot;nn::timesrv::detail::service::ITimeZoneService&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || GetDeviceLocationName || No input, returns an output [[#LocationName]].&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SetDeviceLocationName || Takes an input [[#LocationName]], no output.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GetTotalLocationNameCount || No input, returns an output s32.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || LoadLocationNameList || &lt;br /&gt;
|-&lt;br /&gt;
| 4 || LoadTimeZoneRule || Takes an input [[#LocationName]] and a type-0x16 output buffer for [[#TimeZoneRule]], no output.&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [2.0.0+] GetTimeZoneRuleVersion ||  No input, returns an output [[#TimeZoneRuleVersion]].&lt;br /&gt;
|-&lt;br /&gt;
| 6 || [5.0.0+] GetDeviceLocationNameAndUpdatedTime || &lt;br /&gt;
|-&lt;br /&gt;
| 7 || [9.0.0+] SetDeviceLocationNameWithTimeZoneRule || &lt;br /&gt;
|-&lt;br /&gt;
| 8 || [9.0.0+] ParseTimeZoneBinary || Stubbed, return 0x7BC74. &lt;br /&gt;
|-&lt;br /&gt;
| 20 || [9.0.0+] GetDeviceLocationNameOperationEventReadableHandle || &lt;br /&gt;
|-&lt;br /&gt;
| 100 || ToCalendarTime || Takes an input [[#PosixTime]] and a type-0x15 input buffer for [[#TimeZoneRule]], returns an output [[#CalendarTime]] and [[#CalendarAdditionalInfo]].&lt;br /&gt;
|-&lt;br /&gt;
| 101 || ToCalendarTimeWithMyRule || Takes an input [[#PosixTime]], returns an output [[#CalendarTime]] and [[#CalendarAdditionalInfo]].&lt;br /&gt;
|-&lt;br /&gt;
| 201 || ToPosixTime || Takes an input [[#CalendarTime]], a type-0x15 input buffer for [[#TimeZoneRule]], an type-0xA output buffer for [[#PosixTime]] array, and returns an output s32.&lt;br /&gt;
|-&lt;br /&gt;
| 202 || ToPosixTimeWithMyRule || Takes an input [[#CalendarTime]], an type-0xA output buffer for [[#PosixTime]] array, and returns an output s32.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== LoadLocationNameList ===&lt;br /&gt;
Takes an input s32 LocationName_index and a type-0x6 output buffer for [[#LocationName]], returns an output s32 for total output entries.&lt;br /&gt;
&lt;br /&gt;
=== LocationName ===&lt;br /&gt;
This contains a TimeZone location string with a max size of 0x24 bytes.&lt;br /&gt;
&lt;br /&gt;
=== TimeZoneRule ===&lt;br /&gt;
This is an 0x4000-byte struct. Official sw uses fixed-size 0x4000 for the buffer size with the above commands.&lt;br /&gt;
&lt;br /&gt;
This is loaded from the [[Title_list|TimeZoneBinary]] title with the specified LocationName under the zoneinfo/ directory, the content is then converted into this TimeZoneRule structure.&lt;br /&gt;
&lt;br /&gt;
The files contained under zoneinfo/ directory are Tzif2 files without Tzif1 header and data at the begining of them (see [https://tools.ietf.org/html/rfc8536 RFC8536] for more information).&lt;br /&gt;
&lt;br /&gt;
The conversion of a Tzif2 file to a TimeZoneRule structure is based on [https://github.com/eggert/tz/blob/master/localtime.c tz database code] with some custom modifications (Leap seconds aren&#039;t handled, no usage of &amp;quot;posixrules&amp;quot; and Tzif1 support stripped out).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x4 || timecnt&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x4 || typecnt&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x4 || charcnt&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x1 || goback&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x1 || goahead&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x2 || Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8 * 1000 || ats&lt;br /&gt;
|-&lt;br /&gt;
| 0x1f50 || 0x1 * 1000 || types&lt;br /&gt;
|-&lt;br /&gt;
| 0x2338 || 0x10 * 128 || ttis (time type information), struct ttinfo[1000]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2b38 || 0x1 * 512 || chars&lt;br /&gt;
|-&lt;br /&gt;
| 0x2d38 || 0x4 || defaulttype&lt;br /&gt;
|-&lt;br /&gt;
| 0x2d3c || 0x12c4 || Reserved / Unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ttinfo ===&lt;br /&gt;
This is an 0x10-byte struct.&lt;br /&gt;
Represent a Time Type Information used in [[#TimeZoneRule]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x4 || tt_gmtoff&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x1 || tt_isdst&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x3 || Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x4 || tt_abbrind&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x1 || tt_ttisstd&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x1 || tt_ttisgmt&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x2 || Padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TimeZoneRuleVersion ===&lt;br /&gt;
This is an u128.&lt;br /&gt;
&lt;br /&gt;
=== CalendarTime ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x2 || Year&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x1 || Month&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x1 || Day&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x1 || Hour&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x1 || Minute&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x1 || Second&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x1 || Padding / unknown?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is an 0x8-byte struct.&lt;br /&gt;
&lt;br /&gt;
=== CalendarAdditionalInfo ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x4 || 0-based day-of-week.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x4 || 0-based day-of-year.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8 || Timezone name string.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x4 || 0 = no DST, 1 = DST.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x4 || s32 seconds relative to UTC for this timezone.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is an 0x18-byte struct. This stores timezone info.&lt;br /&gt;
&lt;br /&gt;
= notif:a =&lt;br /&gt;
This is &amp;quot;nn::notification::server::INotificationServicesForApplication&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [9.0.0+].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [[#RegisterAlarmSetting]]&lt;br /&gt;
|-&lt;br /&gt;
| 510 || [[#UpdateAlarmSetting]]&lt;br /&gt;
|-&lt;br /&gt;
| 520 || [[#ListAlarmSettings]]&lt;br /&gt;
|-&lt;br /&gt;
| 530 || [[#LoadApplicationParameter]]&lt;br /&gt;
|-&lt;br /&gt;
| 540 || [[#DeleteAlarmSetting]]&lt;br /&gt;
|-&lt;br /&gt;
| 1000 || [[#Initialize]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== RegisterAlarmSetting ==&lt;br /&gt;
Takes a type-0x15 input buffer [[#AlarmSetting]] and a type-0x5 input buffer. Returns an [[#AlarmSettingId]].&lt;br /&gt;
&lt;br /&gt;
The second buffer can be empty (addr=0/size=0). Size must be &amp;lt;=0x400. This is the ApplicationParameter.&lt;br /&gt;
&lt;br /&gt;
A maximum of 8 Alarms can be registered by an Application at the same time.&lt;br /&gt;
&lt;br /&gt;
Before using the cmd, sdknso uses [[HID_services|hid]] IsFirmwareUpdateNeededForNotification then if needed launches the controller-applet for firmware-update.&lt;br /&gt;
&lt;br /&gt;
After using the cmd when it failed, [[Error_Applet|ShowError]] will be used when the Result is in a certain range, otherwise this will assert.&lt;br /&gt;
&lt;br /&gt;
== UpdateAlarmSetting ==&lt;br /&gt;
Takes a type-0x15 input buffer [[#AlarmSetting]] and a type-0x5 input buffer. No output.&lt;br /&gt;
&lt;br /&gt;
The second buffer can be empty (addr=0/size=0). Size must be &amp;lt;=0x400. This is the ApplicationParameter.&lt;br /&gt;
&lt;br /&gt;
== ListAlarmSettings ==&lt;br /&gt;
Takes a type-0x6 output buffer to receive an array of [[#AlarmSetting]]. Returns a s32 &#039;&#039;&#039;AlarmSettingsCount&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== LoadApplicationParameter ==&lt;br /&gt;
Takes an input [[#AlarmSettingId]] and a type-0x6 output buffer containing the ApplicationParameter. Returns an u32 actual_size.&lt;br /&gt;
&lt;br /&gt;
== DeleteAlarmSetting ==&lt;br /&gt;
Takes an input [[#AlarmSettingId]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
Takes a PID-descriptor and an input u64 pid_reserved.&lt;br /&gt;
&lt;br /&gt;
= notif:s =&lt;br /&gt;
This is &amp;quot;nn::notification::server::INotificationServicesForSystem&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [9.0.0+].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [[#RegisterAlarmSetting]]&lt;br /&gt;
|-&lt;br /&gt;
| 510 || [[#UpdateAlarmSetting]]&lt;br /&gt;
|-&lt;br /&gt;
| 520 || [[#ListAlarmSettings]]&lt;br /&gt;
|-&lt;br /&gt;
| 530 || [[#LoadApplicationParameter]]&lt;br /&gt;
|-&lt;br /&gt;
| 540 || [[#DeleteAlarmSetting]]&lt;br /&gt;
|-&lt;br /&gt;
| 1000 || &lt;br /&gt;
|-&lt;br /&gt;
| 1010 || [[#ListNotifications]]&lt;br /&gt;
|-&lt;br /&gt;
| 1020 || [[#DeleteNotification]]&lt;br /&gt;
|-&lt;br /&gt;
| 1030 || [[#ClearNotifications]]&lt;br /&gt;
|-&lt;br /&gt;
| 1040 || [[#OpenNotificationSystemEventAccessor]]&lt;br /&gt;
|-&lt;br /&gt;
| 1500 || [[#SetPresentationSetting]]&lt;br /&gt;
|-&lt;br /&gt;
| 1510 || [[#GetPresentationSetting]]&lt;br /&gt;
|-&lt;br /&gt;
| 2000 || [[#GetAlarmSetting]]&lt;br /&gt;
|-&lt;br /&gt;
| 2001 ||&lt;br /&gt;
|-&lt;br /&gt;
| 2010 || [[#MuteAlarmSetting]]&lt;br /&gt;
|-&lt;br /&gt;
| 2020 || [[#IsAlarmSettingReady]]&lt;br /&gt;
|-&lt;br /&gt;
| 8000 ||&lt;br /&gt;
|-&lt;br /&gt;
| 8010 ||&lt;br /&gt;
|-&lt;br /&gt;
| 8999 || [10.0.0+]&lt;br /&gt;
|-&lt;br /&gt;
| 9000 || [[#GetNextAlarm]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cmd1000 ==&lt;br /&gt;
No input, returns a total of 4-bytes of output.&lt;br /&gt;
&lt;br /&gt;
== ListNotifications ==&lt;br /&gt;
Unofficial name.&lt;br /&gt;
&lt;br /&gt;
== DeleteNotification ==&lt;br /&gt;
Unofficial name.&lt;br /&gt;
&lt;br /&gt;
== ClearNotifications ==&lt;br /&gt;
Unofficial name.&lt;br /&gt;
&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
== OpenNotificationSystemEventAccessor ==&lt;br /&gt;
Unofficial name.&lt;br /&gt;
&lt;br /&gt;
No input, returns an output [[#INotificationSystemEventAccessor]].&lt;br /&gt;
&lt;br /&gt;
== INotificationSystemEventAccessor ==&lt;br /&gt;
This is &amp;quot;nn::notification::server::INotificationSystemEventAccessor&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [9.0.0+].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cmd0: no input, returns an output handle.&lt;br /&gt;
&lt;br /&gt;
== SetPresentationSetting ==&lt;br /&gt;
Unofficial name.&lt;br /&gt;
&lt;br /&gt;
== GetPresentationSetting ==&lt;br /&gt;
Unofficial name.&lt;br /&gt;
&lt;br /&gt;
== GetAlarmSetting ==&lt;br /&gt;
Unofficial name.&lt;br /&gt;
&lt;br /&gt;
Takes an input [[#AlarmSettingId]]. Returns an [[#AlarmSetting]].&lt;br /&gt;
&lt;br /&gt;
== MuteAlarmSetting ==&lt;br /&gt;
Unofficial name.&lt;br /&gt;
&lt;br /&gt;
Takes an input [[#AlarmSettingId]] and a bool.&lt;br /&gt;
&lt;br /&gt;
== IsAlarmSettingReady ==&lt;br /&gt;
Unofficial name.&lt;br /&gt;
&lt;br /&gt;
Takes an input [[#AlarmSettingId]]. Returns a bool.&lt;br /&gt;
&lt;br /&gt;
== GetNextAlarm ==&lt;br /&gt;
Unofficial name.&lt;br /&gt;
&lt;br /&gt;
Takes an input [[#AlarmSettingId]]. Returns an u8 &#039;&#039;&#039;IsAlarmScheduled&#039;&#039;&#039; and a [[Glue_services#PosixTime|PosixTime]] for the next scheduled alarm.&lt;br /&gt;
&lt;br /&gt;
= ApplicationLaunchProperty =&lt;br /&gt;
Total size is 0x10 bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x08&lt;br /&gt;
| Title ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 0x04&lt;br /&gt;
| Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 0x01&lt;br /&gt;
| Base Game [[Filesystem_services#StorageId|Storage Id]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D&lt;br /&gt;
| 0x01&lt;br /&gt;
| Update [[Filesystem_services#StorageId|Storage Id]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E&lt;br /&gt;
| 0x02&lt;br /&gt;
| Padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= AlarmSettingId =&lt;br /&gt;
This is &amp;quot;nn::notification::AlarmSettingId&amp;quot;. This is an u16.&lt;br /&gt;
&lt;br /&gt;
= AlarmSetting =&lt;br /&gt;
This is &amp;quot;nn::notification::AlarmSetting&amp;quot;. Total size is 0x40 bytes. When initializing this to the defaults, the entire struct is cleared then the last 0xE-bytes are set to 0xFF.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x02&lt;br /&gt;
| [[#AlarmSettingId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x02&lt;br /&gt;
| 0x01&lt;br /&gt;
| Kind (0 = WeeklySchedule)&lt;br /&gt;
|-&lt;br /&gt;
| 0x03&lt;br /&gt;
| 0x01&lt;br /&gt;
| u8 bool Muted (non-zero/true = AlarmSetting turned off, zero/false = on).&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 0x04&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 0x10&lt;br /&gt;
| UID. User account associated with this AlarmSetting. Used for the PreselectedUser when launching the Application when the system was previously in sleep-mode, instead of launching the applet for selecting the user.&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x08&lt;br /&gt;
| ApplicationId&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x08&lt;br /&gt;
| Not set by sdksno, besides clearing it during initialization.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x18&lt;br /&gt;
| Alarm schedule (WeeklyScheduleAlarmSetting)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schedule:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x0A || Not set by sdksno, besides clearing it during initialization.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || 0xE(7*2) || Array of 7 entries where each entry is 2-bytes. Index is &amp;lt;code&amp;gt;nn::time::DayOfWeek&amp;lt;/code&amp;gt;, Sun-Sat.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Array entries:&lt;br /&gt;
&lt;br /&gt;
Each byte is set using an input s32. An entry with value 0xFFFF (the default) indicates that it&#039;s disabled. The high byte is the hour, the low byte is the minute. This uses local-time.&lt;br /&gt;
&lt;br /&gt;
sdknso checks whether an entry is enabled with: &amp;lt;code&amp;gt;return ({last 5-bits of the entry} &amp;lt; 3) &amp;amp;&amp;amp; ((entry &amp;amp; 0xfc) &amp;lt; 60);&amp;lt;/code&amp;gt;. The first check is equivalent to comparing the second entry byte with value 24.&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Flash_Filesystem&amp;diff=9039</id>
		<title>Flash Filesystem</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Flash_Filesystem&amp;diff=9039"/>
		<updated>2020-04-08T06:28:26Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* System Savegames */ 8000000000010002 and 8000000000010003&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= NAND structure =&lt;br /&gt;
The Switch&#039;s eMMC storage features a large user area, two smaller boot partitions and a replay-protected memory block which is unused (no authentication key is programmed).&lt;br /&gt;
&lt;br /&gt;
All official partition names come from [[SystemInitializer]].&lt;br /&gt;
&lt;br /&gt;
== Boot Partitions ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Boot Partition 0 (0 of 1)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The official name for this partition is &amp;quot;BootPartition1Root&amp;quot; and it has [[Filesystem_services|Bis]] Partition ID == 0.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
|  0x000000&lt;br /&gt;
|  0x4000&lt;br /&gt;
|  Normal Firmware [[BCT|BCT]] from [[Title_list#System_Data_Archives|Title 0100000000000819]]&lt;br /&gt;
|-&lt;br /&gt;
|  0x004000&lt;br /&gt;
|  0x4000&lt;br /&gt;
|  SafeMode Firmware [[BCT|BCT]] from [[Title_list#System_Data_Archives|Title 010000000000081A]]&lt;br /&gt;
|-&lt;br /&gt;
|  0x008000&lt;br /&gt;
|  0x4000&lt;br /&gt;
|  Normal Firmware [[BCT|BCT]] from [[Title_list#System_Data_Archives|Title 0100000000000819]] (backup)&lt;br /&gt;
|-&lt;br /&gt;
|  0x00C000&lt;br /&gt;
|  0x4000&lt;br /&gt;
|  SafeMode Firmware [[BCT|BCT]] from [[Title_list#System_Data_Archives|Title 010000000000081A]] (backup)&lt;br /&gt;
|-&lt;br /&gt;
|  0x010000&lt;br /&gt;
|  0xEC000&lt;br /&gt;
|  59 additional BCTs, normally unused/empty on retail systems.&lt;br /&gt;
|-&lt;br /&gt;
|  0x0FC000&lt;br /&gt;
|  0x4000&lt;br /&gt;
|  [[#System Update Control|System Update Control area]]&lt;br /&gt;
|-&lt;br /&gt;
|  0x100000&lt;br /&gt;
|  0x40000&lt;br /&gt;
|  Normal Firmware [[Package1|package1]] from [[Title_list#System_Data_Archives|Title 0100000000000819]]&lt;br /&gt;
|-&lt;br /&gt;
|  0x140000&lt;br /&gt;
|  0x40000&lt;br /&gt;
|  Normal Firmware [[Package1|package1]] from [[Title_list#System_Data_Archives|Title 0100000000000819]] (backup)&lt;br /&gt;
|-&lt;br /&gt;
|  0x180000&lt;br /&gt;
|  0x4000&lt;br /&gt;
|  [[#Keyblob|Keyblob area]]&lt;br /&gt;
|-&lt;br /&gt;
|  0x184000&lt;br /&gt;
|  0x200&lt;br /&gt;
|  [2.0.0+] [[#NAND Patrol|NAND Patrol area]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Boot Partition 1 (1 of 1)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The official name for this partition is &amp;quot;BootPartition2Root&amp;quot; and it has [[Filesystem_services|Bis]] Partition ID == 10.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
|  0x000000&lt;br /&gt;
|  0x40000&lt;br /&gt;
|  SafeMode Firmware [[Package1|package1]] from [[Title_list#System_Data_Archives|Title 010000000000081A]]&lt;br /&gt;
|-&lt;br /&gt;
|  0x040000&lt;br /&gt;
|  0x40000&lt;br /&gt;
|  SafeMode Firmware [[Package1|package1]] from [[Title_list#System_Data_Archives|Title 010000000000081A]] (backup)&lt;br /&gt;
|-&lt;br /&gt;
|  0x080000&lt;br /&gt;
|  0x40000&lt;br /&gt;
|  Reserved&lt;br /&gt;
|-&lt;br /&gt;
|  0x0C0000&lt;br /&gt;
|  0x40000&lt;br /&gt;
|  Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== System Update Control ===&lt;br /&gt;
The 0x4000 bytes at offset 0xFC000 are used by [[NS_Services|NS]] and [[Boot|boot]] for keeping track of the status of a system update. This area is used by the [[NS_Services#ns:su|ISystemUpdateControl]] commands &amp;quot;ApplyDownloadedUpdate&amp;quot;, &amp;quot;ApplyCardUpdate&amp;quot; and &amp;quot;ApplyReceivedUpdate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x1&lt;br /&gt;
| BootImages status. Set to 1 by [[NS_Services|NS]] during a system update and cleared by [[Boot|boot]] after restarting.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x1&lt;br /&gt;
| BootImagesSafe status. Set to 1 by [[NS_Services|NS]] during a system update and cleared by [[Boot|boot]] after restarting.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Keyblob ===&lt;br /&gt;
Starting at offset 0x180000 is an array of 0x200-byte entries, for a total of 32 keyblobs. Each one is unique compared to the others and they are all console unique. This is officially known as the &amp;quot;EKS&amp;quot; (encryption key source) area.&lt;br /&gt;
&lt;br /&gt;
From each 0x200-byte entry only the first 0xB0 bytes effectively form the keyblob as below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x10&lt;br /&gt;
| Keyblob AES-CMAC over the next 0xA0 bytes (safe against timing attacks)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| Keyblob AES CTR&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x90&lt;br /&gt;
| Keyblob encrypted payload&lt;br /&gt;
|-&lt;br /&gt;
| 0xB0&lt;br /&gt;
| 0x150&lt;br /&gt;
| Unused, all-zero.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The active bootloader&#039;s version (offset 0x2330 in the BCT) acts as an index to control which keyblob should be installed into the system.&lt;br /&gt;
[[NS_Services|NS]] uses this during system updates to install the keyblob into the [[BCT#customer_data|customer data]] section in BCTs (offset 0x450).&lt;br /&gt;
&lt;br /&gt;
[[Boot]] also uses this index for repairing corrupt sectors.&lt;br /&gt;
&lt;br /&gt;
The currently active keyblob is officially known as &amp;quot;SecureInfo&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== NAND Patrol ===&lt;br /&gt;
The 0x200 bytes at offset 0x184000 are used by [[Filesystem_services|FS]] for keeping track of NAND patrolling.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x20&lt;br /&gt;
| HMAC-SHA-256 over the next 0x1E0 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4&lt;br /&gt;
| Last patrolled NAND block&#039;s offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x4&lt;br /&gt;
| NAND patrol count&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x1D8&lt;br /&gt;
| Unused, all-zero.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== User Partitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Partition name&lt;br /&gt;
!  Partition type GUID&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  [[Filesystem_services|Bis]] Partition ID&lt;br /&gt;
!  Encrypted&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
|  N/A&lt;br /&gt;
| &lt;br /&gt;
|  0x0&lt;br /&gt;
| &lt;br /&gt;
|  20&lt;br /&gt;
|  No&lt;br /&gt;
|  GPT header, Bis-storage also allows raw access to the entire NAND eMMC sectors starting at sector0. The official name for this partition is &amp;quot;UserDataRoot&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  [[Calibration|PRODINFO]]&lt;br /&gt;
|  {98109E25-64E2-4C95-8A77-414916F5BCEB}&lt;br /&gt;
|  0x00004400&lt;br /&gt;
|  0x003FBC00&lt;br /&gt;
|  27&lt;br /&gt;
|  Yes (Bis key 0)&lt;br /&gt;
|  &amp;quot;CAL0&amp;quot; raw partition containing set:cal data. The official name for this partition is &amp;quot;CalibrationBinary&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  [[Calibration|PRODINFOF]]&lt;br /&gt;
|  {F3056AEC-5449-494C-9F2C-5FDCB75B6E6E}&lt;br /&gt;
|  0x00400000&lt;br /&gt;
|  0x00400000&lt;br /&gt;
|  28&lt;br /&gt;
|  Yes (Bis key 0)&lt;br /&gt;
|  FAT12 filesystem, additional calibration. The official name for this partition is &amp;quot;CalibrationFile&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  BCPKG2-1-Normal-Main&lt;br /&gt;
|  {5365DE36-911B-4BB4-8FF9-AA1EBCD73990}&lt;br /&gt;
|  0x00800000&lt;br /&gt;
|  0x00800000&lt;br /&gt;
|  21&lt;br /&gt;
|  No&lt;br /&gt;
|  Raw partition where the first 0x4000 bytes (usually empty) contain the [[BootConfig]] and the remaining space contains the [[Package2|package2]] image from [[Title_list#System_Data_Archives|Title 0100000000000819]] by default. With the exFAT update installed, the [[Package2|package2]] image is switched to the one from [[Title_list#System_Data_Archives|Title 010000000000081B]]. The official name for this partition is &amp;quot;BootConfigAndPackage2Part1&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  BCPKG2-2-Normal-Sub&lt;br /&gt;
|  {8455717B-BD2B-4162-8454-91695218FC38}&lt;br /&gt;
|  0x01000000&lt;br /&gt;
|  0x00800000&lt;br /&gt;
|  22&lt;br /&gt;
|  No&lt;br /&gt;
|  Backup partition for BCPKG2-1-Normal-Main. The official name for this partition is &amp;quot;BootConfigAndPackage2Part2&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  BCPKG2-3-SafeMode-Main&lt;br /&gt;
|  {8ED6C9A6-9C48-490B-BBEB-001D17A4C0F7}&lt;br /&gt;
|  0x01800000&lt;br /&gt;
|  0x00800000&lt;br /&gt;
|  23&lt;br /&gt;
|  No&lt;br /&gt;
|  Raw partition where the first 0x4000 bytes (usually empty) contain the [[BootConfig]] and the remaining space contains the [[Package2|package2]] image from [[Title_list#System_Data_Archives|Title 010000000000081A]] by default. On [4.0.0+] and with the exFAT update installed, the [[Package2|package2]] image is switched to the one from [[Title_list#System_Data_Archives|Title 010000000000081C]]. The official name for this partition is &amp;quot;BootConfigAndPackage2Part3&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  BCPKG2-4-SafeMode-Sub&lt;br /&gt;
|  {5E99751C-56C9-47CC-AA30-B65039888917}&lt;br /&gt;
|  0x02000000&lt;br /&gt;
|  0x00800000&lt;br /&gt;
|  24&lt;br /&gt;
|  No&lt;br /&gt;
|  Backup partition for BCPKG2-3-SafeMode-Main. The official name for this partition is &amp;quot;BootConfigAndPackage2Part4&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  BCPKG2-5-Repair-Main&lt;br /&gt;
|  {C447D9A2-24B7-468A-98C8-595CD077165A}&lt;br /&gt;
|  0x02800000&lt;br /&gt;
|  0x00800000&lt;br /&gt;
|  25&lt;br /&gt;
|  No&lt;br /&gt;
|  Installed at the factory, never written afterwards on retail. In one case this is identical to normal [[1.0.0]] [[Package2|package2]], except this has encrypted data at the end padded for 0x1000-byte alignment. The official name for this partition is &amp;quot;BootConfigAndPackage2Part5&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  BCPKG2-6-Repair-Sub&lt;br /&gt;
|  {9586E1A1-3AA2-4C90-91B3-2F4A5195B4D2}&lt;br /&gt;
|  0x03000000&lt;br /&gt;
|  0x00800000&lt;br /&gt;
|  26&lt;br /&gt;
|  No&lt;br /&gt;
|  Backup partition for BCPKG2-5-Repair-Main. The official name for this partition is &amp;quot;BootConfigAndPackage2Part6&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  SAFE&lt;br /&gt;
|  {A44F9F6B-4ED3-441F-A34A-56AAA136BC6A}&lt;br /&gt;
|  0x03800000&lt;br /&gt;
|  0x04000000&lt;br /&gt;
|  29&lt;br /&gt;
|  Yes (Bis key 1)&lt;br /&gt;
|  FAT32 filesystem. The official name for this partition is &amp;quot;SafeMode&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  SYSTEM&lt;br /&gt;
|  {ACB0CDF0-4F72-432D-AA0D-5388C733B224}&lt;br /&gt;
|  0x07800000 &lt;br /&gt;
|  0xA0000000&lt;br /&gt;
|  31, 32 and 33&lt;br /&gt;
|  Yes (Bis key 2)&lt;br /&gt;
|  FAT32 filesystem. The official names for these partitions are &amp;quot;System&amp;quot;, &amp;quot;SystemProperEncryption&amp;quot; and &amp;quot;SystemProperPartition&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  USER&lt;br /&gt;
|  {2B777F63-E842-47AF-94C4-25A7F18B2280}&lt;br /&gt;
|  0xA7800000&lt;br /&gt;
|  0x680000000&lt;br /&gt;
|  30&lt;br /&gt;
|  Yes (Bis key 3)&lt;br /&gt;
|  FAT32 filesystem.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 0x747BFFE00&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
|  No&lt;br /&gt;
|  This is the backup GPT header specified by the main GPT header. This is also the last sector readable with Bis-storage paritionID 20.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the client process lacks the relevant permission for any of the above partition IDs, error 0x2EE202 is returned.&lt;br /&gt;
&lt;br /&gt;
[[NCA]]s stored in NAND are raw, identical to the data readable with [[NCM_services#ReadContentIdFile]].&lt;br /&gt;
&lt;br /&gt;
The filenames for saveimages is just &amp;quot;&amp;lt;lower-case hex u64 saveID&amp;gt;&amp;quot;. SYSTEM-partition saveIDs are specified by [[Filesystem_services|FS]] commands, while USER-partition saveIDs are determined by FS-module internally. The high u32 of the saveID is normally either 0x00000000 or 0x80000000.&lt;br /&gt;
&lt;br /&gt;
Encrypted partitions use AES-XTS using the same non-standard tweak (tweak[0] = sectorIdx[MSB] .. tweak[15] = sectorIdx[LSB], if using 32bit sectorIdx that means tweak[0]..tweak[11] are 0, with tweak[12]..tweak[15] containing big-endian sectorIdx) as other Nintendo AES-XTS code, initial_sector = 0, and sector size 0x4000. All encrypted partitions use console unique keydata.&lt;br /&gt;
&lt;br /&gt;
=== PRODINFOF ===&lt;br /&gt;
 PRODINFOF&lt;br /&gt;
 ├── Certifications&lt;br /&gt;
 │   └── WirelessCertification.png&lt;br /&gt;
 └── ptd&lt;br /&gt;
     ├── DeviceIdWithEmsBit.dat&lt;br /&gt;
     ├── Ecid.dat&lt;br /&gt;
     ├── prodCode.dat&lt;br /&gt;
     └── log&lt;br /&gt;
         ├── Process_asm1.log&lt;br /&gt;
         ├── Process_board1.log&lt;br /&gt;
         ├── TestFlagLine.log&lt;br /&gt;
         ├── TestFlagQc.log&lt;br /&gt;
         ├── AGING&lt;br /&gt;
         │   └── Sequence.log&lt;br /&gt;
         ├── BOARD_TEST&lt;br /&gt;
         │   └── Sequence.log&lt;br /&gt;
         ├── BOARD_WIRELESS&lt;br /&gt;
         │   └── Sequence.log&lt;br /&gt;
         ├── FINAL_CHECK&lt;br /&gt;
         │   └── Sequence.log&lt;br /&gt;
         ├── LCD_AND_KEY&lt;br /&gt;
         │   └── Sequence.log&lt;br /&gt;
         └── USB_AND_HP&lt;br /&gt;
             └── Sequence.log&lt;br /&gt;
&lt;br /&gt;
==== DeviceIdWithEmsBit.dat ====&lt;br /&gt;
Contains a 0x10-byte uppercase hex string, identical to the DeviceId in the [[Settings_services|DeviceCert]].&lt;br /&gt;
&lt;br /&gt;
=== SYSTEM ===&lt;br /&gt;
 SYSTEM&lt;br /&gt;
 ├── PRF2SAFE.RCV&lt;br /&gt;
 ├── Contents&lt;br /&gt;
 │   ├── registered&lt;br /&gt;
 │   │   └── ... [[NCA]]&lt;br /&gt;
 │   └── placehld&lt;br /&gt;
 │       └── ... [[NCA]]&lt;br /&gt;
 ├── [[Savegames|save]]&lt;br /&gt;
 │   └── ...&lt;br /&gt;
 └── saveMeta&lt;br /&gt;
     └── ... (empty?)&lt;br /&gt;
&lt;br /&gt;
The saves stored under this partition are only for system-titles / etc.&lt;br /&gt;
&lt;br /&gt;
=== USER ===&lt;br /&gt;
 USER&lt;br /&gt;
 ├── PRF2SAFE.RCV&lt;br /&gt;
 ├── Album (Same layout as [[SD_Filesystem|SD]])&lt;br /&gt;
 ├── Contents&lt;br /&gt;
 │   ├── registered&lt;br /&gt;
 │   │   └── ... [[NCA]]&lt;br /&gt;
 │   └── placehld&lt;br /&gt;
 │       └── ... [[NCA]]&lt;br /&gt;
 ├── [[Savegames|save]]&lt;br /&gt;
 │   └── ...&lt;br /&gt;
 ├── saveMeta&lt;br /&gt;
 │   └── ... &lt;br /&gt;
 └── temp &lt;br /&gt;
&lt;br /&gt;
The saves for all non-system applications, regardless of where the application is located(storageID), is stored here. Each user account which has savedata has a separate saveimage. Save-common for an application is presumably a separate saveimage too. Every saveimage here is &#039;&#039;only&#039;&#039; for applications.&lt;br /&gt;
&lt;br /&gt;
=== SAFE ===&lt;br /&gt;
 SAFE&lt;br /&gt;
 ├── PRF2SAFE.RCV&lt;br /&gt;
 ├── Contents&lt;br /&gt;
 │   ├── registered&lt;br /&gt;
 │   │   └── ... [[NCA]] (nothing installed?)&lt;br /&gt;
 │   └── placehld&lt;br /&gt;
 │       └── ... [[NCA]]&lt;br /&gt;
 └── [[Savegames|save]]&lt;br /&gt;
     ├── 8000000000000000&lt;br /&gt;
     └── 8000000000000120&lt;br /&gt;
&lt;br /&gt;
On a v2.1 system with MountBis, the only thing under here is &amp;quot;PRF2SAFE.RCV&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= System Savegames =&lt;br /&gt;
&lt;br /&gt;
This is a listing of known System Savedata and what titles they correspond to.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! SaveID || Owner || Mount || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000000 || fs || &amp;lt;nowiki&amp;gt;saveDataIxrDb:/&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;saveDataIxrDbSf:/&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;saveDataIxrDbPr:/&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;saveDataIxrDbSd:/&amp;lt;/nowiki&amp;gt; || Contains [[IMKV|imkvdb.arc]] and &amp;quot;lastPublishedId&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000010 || account || &amp;lt;nowiki&amp;gt;account:/&amp;lt;/nowiki&amp;gt; || Account database.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000011 || account || &amp;lt;nowiki&amp;gt;idgen:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000020 || nfc || &amp;lt;nowiki&amp;gt;data:/&amp;lt;/nowiki&amp;gt; || NFC data and backups.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000030 || ns || &amp;lt;nowiki&amp;gt;mii:/&amp;lt;/nowiki&amp;gt; || Mii database.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000031 || ns || &amp;lt;nowiki&amp;gt;mii:/&amp;lt;/nowiki&amp;gt; || Mii test mode database.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000040 || ns || &amp;lt;nowiki&amp;gt;apprecdb:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000041 || ns || &amp;lt;nowiki&amp;gt;nsaccache:/&amp;lt;/nowiki&amp;gt; || Home menu icondata/lru list for recently played games.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000043 || ns || &amp;lt;nowiki&amp;gt;ns_appman:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000044 || ns || &amp;lt;nowiki&amp;gt;ns_sysup:/&amp;lt;/nowiki&amp;gt; || Content update context.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000045 || ns || &amp;lt;nowiki&amp;gt;vmdb:/&amp;lt;/nowiki&amp;gt; || Required Version List storage. Also contained Version List storage before 7.0.0.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000046 || ns || &amp;lt;nowiki&amp;gt;dtlman:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000047 || ns || &amp;lt;nowiki&amp;gt;ns_exfat:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000048 || ns || &amp;lt;nowiki&amp;gt;ns_systemseed:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000049 || ns || &amp;lt;nowiki&amp;gt;ns_ssversion:/&amp;lt;/nowiki&amp;gt; || Safe System version.&lt;br /&gt;
|-&lt;br /&gt;
| 0x800000000000004A || ns || &amp;lt;nowiki&amp;gt;ns_rightsid:/&amp;lt;/nowiki&amp;gt; || List of RightsIDs with NCA IDs for corresponding Program title.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000050 || settings || &amp;lt;nowiki&amp;gt;SystemSettings:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000051 || settings || &amp;lt;nowiki&amp;gt;FwdbgSettingsS:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000052 || settings || &amp;lt;nowiki&amp;gt;PrivateSettings:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000053 || settings || &amp;lt;nowiki&amp;gt;DeviceSettings:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000054 || settings || &amp;lt;nowiki&amp;gt;ApplnSettings:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000060 || ssl || &amp;lt;nowiki&amp;gt;SslSave:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000070 || nim || &amp;lt;nowiki&amp;gt;nim_sys:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000071 || nim || &amp;lt;nowiki&amp;gt;nim_net:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000072 || nim || &amp;lt;nowiki&amp;gt;nim_tmp:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000073 || nim || &amp;lt;nowiki&amp;gt;nim_dac:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000074 || nim || &amp;lt;nowiki&amp;gt;nim_delta:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000075 || nim || &amp;lt;nowiki&amp;gt;nim_vac:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000076 || nim || &amp;lt;nowiki&amp;gt;nim_local:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000077 || nim || &amp;lt;nowiki&amp;gt;nim_lsys:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000078 || nim || &amp;lt;nowiki&amp;gt;nim_eca_dbg:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000080 || friends || &amp;lt;nowiki&amp;gt;friends:/&amp;lt;/nowiki&amp;gt; || Per-user savedata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000081 || friends || &amp;lt;nowiki&amp;gt;friends-sys:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000082 || friends || &amp;lt;nowiki&amp;gt;friends-image:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000090 || bcat || &amp;lt;nowiki&amp;gt;news:/&amp;lt;/nowiki&amp;gt; || Actual news msgpack archives.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000091 || bcat || &amp;lt;nowiki&amp;gt;news-sys:/&amp;lt;/nowiki&amp;gt; || News metadata, tasklist, history, database, required system version, etc.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000092 || bcat || &amp;lt;nowiki&amp;gt;news-dl:/&amp;lt;/nowiki&amp;gt; || Storage for newly(?) downloaded news list/data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000A0 || bcat || &amp;lt;nowiki&amp;gt;prepo-sys:/&amp;lt;/nowiki&amp;gt; || Play Report system information.&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000A1 || bcat || &amp;lt;nowiki&amp;gt;prepo:/&amp;lt;/nowiki&amp;gt; || Play Report msgpack archives.&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000A2 || bcat || &amp;lt;nowiki&amp;gt;prepo-ap:/&amp;lt;/nowiki&amp;gt; || Play Report msgpack archives of EventId &amp;quot;application_execution_history&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000B0 || bsdsockets || &amp;lt;nowiki&amp;gt;nsdsave:/&amp;lt;/nowiki&amp;gt; || Socket configuration saved data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000C1 || bcat || &amp;lt;nowiki&amp;gt;bcat-sys:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000C2 || bcat || &amp;lt;nowiki&amp;gt;bcat-dl:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000D1 || erpt || &amp;lt;nowiki&amp;gt;save:/&amp;lt;/nowiki&amp;gt; || Contains &amp;quot;/journal&amp;quot; report listing + actual crash reports (&amp;quot;/%08x-%04x-%04x-%02x%02x-%04x%08x&amp;quot;), which are serialized via [http://msgpack.org/ MsgPack].&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000E0 || es || &amp;lt;nowiki&amp;gt;escertificate:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000E1 || es || &amp;lt;nowiki&amp;gt;escommon:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000E2 || es || &amp;lt;nowiki&amp;gt;espersonalized:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000E3 || es || &amp;lt;nowiki&amp;gt;esmetarecord:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000E4 || es || &amp;lt;nowiki&amp;gt;eselicense:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000F0 || ns || &amp;lt;nowiki&amp;gt;pdm:/&amp;lt;/nowiki&amp;gt; || Play Data log. Per-user savedata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000100 || pctl || &amp;lt;nowiki&amp;gt;pctlss:/&amp;lt;/nowiki&amp;gt; || Parental Control settings.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000110 || npns || &amp;lt;nowiki&amp;gt;npns_save:/&amp;lt;/nowiki&amp;gt; || Push notifications persistent storage.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000120 || ncm || ? || meta/[[IMKV|imkvdb.arc]] for system partition. Cache of data extracted from the [[CNMT]] for installed firmware titles (including 816).&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000121 || ncm || ? || meta/[[IMKV|imkvdb.arc]] for user partition. Cache of data extracted from the [[CNMT]] for installed game, update, and DLC titles.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000122 || || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000130 || migration || &amp;lt;nowiki&amp;gt;state:/&amp;lt;/nowiki&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000131 || migration || &amp;lt;nowiki&amp;gt;context:/&amp;lt;/nowiki&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000140 || capsrv || &amp;lt;nowiki&amp;gt;TM:/&amp;lt;/nowiki&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000150 || olsc || ? || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000153 || olsc || ? || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000180 || sdb || ? || Version list was moved here in 7.0.0 or 7.0.1&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000190 || glue || ? || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001010 || qlaunch || || Contains &amp;quot;savedata.dat&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001020 || swkbd || || Per-user savedata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001040 || miiEdit || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001050 || miiEdit || || Contains &amp;quot;database.dat&amp;quot;. Possibly Mii data and Mii texture data?&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001060 || shop || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001061 || shop || || Per-user savedata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001070 || web || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001071 || web || || Per-user savedata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001091 || loginShare || || Per-user savedata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000010B0 || playerSelect || || Contains &amp;quot;savedata.dat&amp;quot;. Per-user savedata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000010C0 || myPage || || Per-user savedata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000010002 || bcat || || Delivery cache storage for application 010099F00D810000&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000010003 || bcat || || Delivery cache storage for application 0100000000001033&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000010004 || bcat || || &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Title_list&amp;diff=9038</id>
		<title>Title list</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Title_list&amp;diff=9038"/>
		<updated>2020-04-08T05:48:50Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== System Modules ==&lt;br /&gt;
Note: Unlike 3DS, Switch doesn&#039;t have a dedicated HTTP-sysmodule. Instead, processes using HTTP(S) just use libcurl + socket/ssl services.&lt;br /&gt;
&lt;br /&gt;
As of [[2.0.0]], the only sysmodule with a RomFS is [[HID_services|hid-sysmodule]].&lt;br /&gt;
&lt;br /&gt;
Decimal versions use the format:&lt;br /&gt;
* Bit31-Bit26: Major&lt;br /&gt;
* Bit25-Bit20: Minor&lt;br /&gt;
* Bit19-Bit16: Micro&lt;br /&gt;
* Bit15-Bit0: Bugfix&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Title-id || Versions || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000000 || [bundled with kernel] || [[Filesystem_services|fs]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000001 || [bundled with kernel] || [[Loader_services|ldr (Loader)]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000002 || [bundled with kernel] || [[NCM_services|ncm]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000003 || [bundled with kernel] || [[Process_Manager_services|pm (ProcessMana)]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000004 || [bundled with kernel] || [[Services_API|sm]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000005 || [bundled with kernel] || [[boot]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000006 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[USB_services|usb]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000007 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[TMA_services|tma]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000008 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[Boot2|boot2]] (debug)&amp;lt;br/&amp;gt;[[Boot2|boot2.prodBoot]] (retail)&amp;lt;br/&amp;gt;[[Boot2|boot2.manuBoot]] (factory)&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000009 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[8.1.1|v537919608]] (8.1.0.122)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[Settings_services|settings]] &amp;lt;br/&amp;gt; [[Settings_services|settings_hoag]] ([[8.1.1]])&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000000A || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[8.1.1|v537919608]] (8.1.0.122)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[Bus_services|Bus]] &amp;lt;br/&amp;gt; [[Bus_services|Bus_hoag]] ([[8.1.1]])&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000000B || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[Bluetooth_Driver_services|bluetooth]]&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000000C || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[3.0.2|v201457684]] (3.0.2.20)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[7.0.1|v469827614]] (7.0.1.30)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[BCAT_services|bcat]]&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000000D || || dmnt (currently not present on retail devices)&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000000E || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[Friend_services|friends]]&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000000F || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131082]] (0.0.2.10)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[Network_Interface_services|nifm]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000010 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131132]] (0.0.2.60)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.0.2|v335675432]] (5.0.2.40)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.1|v536936550]] (8.0.1.102)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[PTM_services|ptm]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000011 || || shell (currently not present on retail devices)&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000012 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.3.0|v131092]] (0.0.2.20)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[3.0.2|v201457684]] (3.0.2.20)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.0.2|v335675432]] (5.0.2.40)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.0.1|v536936528]] (8.0.1.80)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[Sockets_services|bsdsockets]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000013 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131132]] (0.0.2.60)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[4.1.0|v269484082]] (4.1.0.50)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.0.2|v335675432]] (5.0.2.40)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.0.1|v402718730]] (6.0.1.10)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.0.1|v536936528]] (8.0.1.80)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[8.1.1|v537919608]] (8.1.0.122)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[HID_services|hid]]&amp;lt;br/&amp;gt;[[HID_services|hid_EdevLogEnab]] (factory) &amp;lt;br/&amp;gt; [[HID_services|hid_hoag]] ([[8.1.1]])&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000014 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.0.1|v402718730]] (6.0.1.10)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.1|v537919608]] (8.1.0.122)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[Audio_services|audio]] &amp;lt;br/&amp;gt; [[Audio_services|audio_hoag]] ([[8.1.1]])&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000015 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[Log_services|LogManager]] (debug)&amp;lt;br/&amp;gt;[[Log_services|LogManager.Prod]] (retail)&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000016 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131082]] (0.0.2.10)&amp;lt;br/&amp;gt; [[2.2.0|v196608]] (0.0.3.0)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[3.0.2|v201457684]] (3.0.2.20)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[8.1.1|v537985046]] (8.1.1.22)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[WLAN_services|wlan]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000017 || || cs (currently not present on retail devices)&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000018 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[LDN_services|ldn]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000019 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131082]] (0.0.2.10)&amp;lt;br/&amp;gt; [[2.3.0|v196628]] (0.0.3.20)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[3.0.2|v201457684]] (3.0.2.20)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[4.0.1|v268501002]] (4.0.1.10)&amp;lt;br/&amp;gt; [[4.1.0|v269484082]] (4.1.0.50)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[NV_services|nvservices]]&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000001A || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[PCV_services|pcv]]&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000001B || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.0.2|v335675432]] (5.0.2.40)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[PPC_services|ppc]]&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000001C || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131082]] (0.0.2.10)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[4.1.0|v269484082]] (4.1.0.50)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[Nvnflinger_services|nvnflinger]]&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000001D || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[PCIe_services|pcie]] (debug)&amp;lt;br/&amp;gt;[[PCIe_services|pcie.withoutHb]] (retail)&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000001E || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[3.0.2|v201457684]] (3.0.2.20)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[7.0.1|v469827614]] (7.0.1.30)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.0.1|v536936528]] (8.0.1.80)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[Account_services|account]]&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000001F || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131132]] (0.0.2.60)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[7.0.1|v469827614]] (7.0.1.30)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[NS_Services|ns]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000020 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.2.0|v131072]] (0.0.2.0)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.1|v536871444]] (8.0.0.532)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[NFC_services|nfc]] &amp;lt;br/&amp;gt; [[NFC_services|nfc_Hoag]] ([[8.1.1]])&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000021 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[PSC_services|psc]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000022 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[Capture_services|capsrv]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000023 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131132]] (0.0.2.60)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[AM_services|am]]&amp;lt;br/&amp;gt;[[AM_services|am.withoutPscWa]] (factory)&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000024 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[SSL_services|ssl]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000025 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131082]] (0.0.2.10)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[4.1.0|v269484082]] (4.1.0.50)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.0.1|v536936528]] (8.0.1.80)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[NIM_services|nim]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000026 || || cec (currently not present on retail devices)&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000027 || || tspm (currently not present on retail devices)&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000028 || [bundled with kernel] || [[SPL_services|spl]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000029 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[Backlight_services|lbl]]&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000002A || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[7.0.1|v469827614]] (7.0.1.30)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[BTM_services|btm]]&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000002B || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131132]] (0.0.2.60)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[Error_Report_services|erpt]]&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000002C || || time (currently not present on retail devices)&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000002D || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[Display_services|vi]]&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000002E || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131082]] (0.0.2.10)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[Parental_Control_services|pctl]]&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000002F || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.0.1|v536936528]] (8.0.1.80)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[NPNS_services|npns]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000030 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131132]] (0.0.2.60)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[Error_Upload_services|eupld]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000031 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [1.0.0] arp&amp;lt;br/&amp;gt;[2.0.0+] [[Glue_services|glue]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000032 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || eclct&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000033 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[7.0.1|v469827614]] (7.0.1.30)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[ETicket_services|es]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000034 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131132]] (0.0.2.60)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[4.1.0|v269484082]] (4.1.0.50)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[Fatal_services|fatal]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000035 || [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [4.0.0+] [[GRC_services|grc]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000036 || [[2.0.0|v260]] (0.0.0.260)&amp;lt;br/&amp;gt; [[2.1.0|v65596]] (0.0.1.60)&amp;lt;br/&amp;gt; [[2.3.0|v131092]] (0.0.2.20)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[3.0.2|v201457684]] (3.0.2.20)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[creport]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000037 || [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [3.0.0+] [[Loader_services#ldr:ro|ro]]&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000038 || || [[Profiler services|profiler]] (currently not present on retail devices)&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000039 || [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [3.0.0+] [[Shared_Database_services|sdb]]&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000003A || [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [4.0.0+] [[Migration_services|migration]]&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000003B || || [[JIT_services|jit]] (currently not present on retail devices)&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000003C || [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [4.0.0+] [[Jpegdec_services|jpegdec]]&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000003D || [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [4.0.0+] [[safemode]]&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000003E || [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [6.0.0+] [[OLSC_services|olsc]]&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000003F || || dt (currently not present on retail devices)&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000040 || || nd (currently not present on retail devices)&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000041 || [[9.0.0|v603980216]] (9.0.0.440) || [9.0.0+] [[NGCT_services|ngct]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== System Data Archives ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Title-id || Versions || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000800 || [[1.0.0|v260]] (0.0.0.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[SSL_services#CertStore|CertStore]] || SSL trusted certificates.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000801 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.2.0|v196628]] (0.0.3.20)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.2|v201457684]] (3.0.2.20)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[8.1.1|v537919608]] (8.1.0.122)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || ErrorMessage || Stores the message strings for Support Error Codes. There&#039;s &amp;quot;/DatabaseInfo&amp;quot; at FS root, then the rest is stored at &amp;quot;/{first 4 error digits}/{last 4 error digits}/&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000802 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || MiiModel ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000803 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v196628]] (0.0.3.20)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || BrowserDll || Mounted as &amp;quot;shareddata:/&amp;quot;. Contains various browser data: emojis, OSS NROs, &amp;quot;buildinfo/buildinfo.dat&amp;quot;, ...&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000804 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.1|v536871444]] (8.0.0.532)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || Help || HTML resources: Open-source licenses (&amp;quot;Intellectual Property Notices&amp;quot;) and seizure warnings(&amp;quot;Health &amp;amp; Safety Information&amp;quot;). The former is stored at FS &amp;quot;/legallines.htdocs/&amp;quot;&amp;lt;br/&amp;gt; while the latter is at &amp;quot;/safe.htdocs/&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000805 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || SharedFont || Chinese and Korean dictionaries.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000806 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.2|v201457684]] (3.0.2.20)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || NgWord || Bad words.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000807 || [[1.0.0|v260]] (0.0.0.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || SsidList || [[Hotspot List]].&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000808 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40) || Dictionary || European, English, and Japanese dictionaries.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000809 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v196628]] (0.0.3.20)&amp;lt;br/&amp;gt; [[2.2.0|v196628]] (0.0.3.20)&amp;lt;br/&amp;gt; [[2.3.0|v262164]] (0.0.4.20)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[3.0.2|v201457684]] (3.0.2.20)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[4.0.1|v268501002]] (4.0.1.10)&amp;lt;br/&amp;gt; [[4.1.0|v269484082]] (4.1.0.50)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.0.1|v335609886]] (5.0.1.30)&amp;lt;br/&amp;gt; [[5.0.2|v335675432]] (5.0.2.40)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.0.1|v402718730]] (6.0.1.10)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[7.0.1|v469827614]] (7.0.1.30)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.0.1|v536936528]] (8.0.1.80)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[8.1.1|v537985054]] (8.1.1.30)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || SystemVersion || [[System Version Title]].&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000080A || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.1|v536871444]] (8.0.0.532)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || AvatarImage || Background and Character images for user avatars (RGBA format &amp;amp; Yaz0 compression).&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000080B || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.1|v536871444]] (8.0.0.532)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || LocalNews || Tutorial images and strings. Used for the offline news by the News applet.&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000080C || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.1|v536871444]] (8.0.0.532)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || Eula (Eura) || Accessed by [[NS_Services|NS]].&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000080D || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40) || UrlBlackList ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000080E || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || TimeZoneBinary ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000080F || || CertStoreCruiser (BrowserCertStore) || Currently not present on retail devices.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000810 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || FontNintendoExtension ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000811 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || FontStandard ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000812 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || FontKorean ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000813 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || FontChineseTraditional ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000814 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || FontChineseSimple ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000815 || || FontBfcpx || Currently not present on retail devices.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000816 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt;  [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131162]] (0.0.2.90)&amp;lt;br/&amp;gt; [[2.2.0|v196628]] (0.0.3.20)&amp;lt;br/&amp;gt; [[2.3.0|v262164]] (0.0.4.20)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[3.0.2|v201457684]] (3.0.2.20)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[4.0.1|v268501002]] (4.0.1.10)&amp;lt;br/&amp;gt; [[4.1.0|v269484082]] (4.1.0.50)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.0.1|v335609886]] (5.0.1.30)&amp;lt;br/&amp;gt; [[5.0.2|v335675432]] (5.0.2.40)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.0.1|v402718730]] (6.0.1.10)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[7.0.1|v469827614]] (7.0.1.30)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.0.1|v536936528]] (8.0.1.80)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[8.1.1|v537985054]] (8.1.1.30)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || SystemUpdate || Contains the title-listing for the associated sysupdate in the [[NCA]]-type0 .cnmt.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000818 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.3.0|v131082]] (0.0.2.10)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[4.1.0|v269484082]] (4.1.0.50)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.0.1|v335609886]] (5.0.1.30)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || FirmwareDebugSettings || [[System Settings|System config]].&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000819 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131082]] (0.0.2.10)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[3.0.2|v201457684]] (3.0.2.20)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[4.1.0|v269484082]] (4.1.0.50)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[7.0.1|v469827614]] (7.0.1.30)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[8.1.1|v537919608]] (8.1.0.122)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || BootImagePackage || Firmware Package A: Normal Firmware.&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000081A || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131082]] (0.0.2.10)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[3.0.2|v201457684]] (3.0.2.20)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[4.1.0|v269484082]] (4.1.0.50)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[7.0.1|v469827614]] (7.0.1.30)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[8.1.1|v537919608]] (8.1.0.122)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || BootImagePackageSafe || Firmware Package B: SafeMode Firmware. See [[Boot_Modes#Safe_Mode|Safe Mode]].&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000081B || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131082]] (0.0.2.10)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[3.0.2|v201457684]] (3.0.2.20)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[4.1.0|v269484082]] (4.1.0.50)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[7.0.1|v469827614]] (7.0.1.30)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[8.1.1|v537919608]] (8.1.0.122)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || BootImagePackageExFat || Firmware Package C: Normal Firmware (exFAT variant). Identical to 0100000000000819 with different FS sysmodule. Requires a device ID to download from CDN.&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000081C || [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[4.1.0|v269484082]] (4.1.0.50)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[7.0.1|v469827614]] (7.0.1.30)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[8.1.1|v537919608]] (8.1.0.122)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || BootImagePackageExFatSafe || Firmware Package D: SafeMode Firmware (exFAT variant). Identical to 010000000000081A with different FS sysmodule. Requires a device ID to download from CDN.&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000081D || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || FatalMessage || Errdisp strings.&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000081E || [[2.0.0|v260]] (0.0.0.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.1|v536871444]] (8.0.0.532)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || ControllerIcon || Controller gfx/icon data + dummy file.&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000081F || [[2.0.0|v260]] (0.0.0.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || PlatformConfigIcosa || Icosa system config.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000820 || [[2.0.0|v260]] (0.0.0.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || PlatformConfigCopper || Copper system config.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000821 || [[2.0.0|v260]] (0.0.0.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[8.1.1|v536871444]] (8.0.0.532)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || PlatformConfigHoag || Hoag system config.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000822 || [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.2|v201457684]] (3.0.2.20)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.1|v536871444]] (8.0.0.532)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || ControllerFirmware || Firmware binaries for peripherals (hardware within Joy-Cons/etc).&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000823 || [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || NgWord2 || Contains version.dat and ac_*_nx files. All of the *_nx files stored under here are compressed with gzip.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000824 || [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || PlatformConfigIcosaMariko || IcosaMariko system config.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000825 || [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || ApplicationBlackList || Used by [[NS_Services|NS]] for restricting application installation and updates.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000826 || [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || RebootlessSystemUpdateVersion || Rebootless system update version file.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000827 || [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || ContentActionTable || Used by [[AM_services|AM]].&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000828 || [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || FunctionBlackList || Used for restricting specific features in applications.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000829 || || PlatformConfigCalcio || Currently not present on retail devices.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000000830 || [[9.0.0|v603980216]] (9.0.0.440) || NgWordT || Bad words for China region (Tencent).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== System Applets ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Title-id || Versions || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001000 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131162]] (0.0.2.90)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.0.1|v335609886]] (5.0.1.30)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.0.1|v402718730]] (6.0.1.10)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.0.1|v536936528]] (8.0.1.80)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt;[[8.1.1|v537919570]] (8.1.0.82)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || qlaunch (SystemAppletMenu) || [[qlaunch]] system applet, launched by NS with TID loaded from system-config-title.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001001 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.1|v536871444]] (8.0.0.532)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[Auth_Applet|auth]] (LibraryAppletAuth)|| &lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001002 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.1|v536871444]] (8.0.0.532)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || cabinet (LibraryAppletCabinet) ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001003 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.1|v536871464]] (8.0.0.552)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[Controller_Applet|controller]] (LibraryAppletController) || &lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001004 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.1|v536871444]] (8.0.0.532)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || dataErase (LibraryAppletDataErase) ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001005 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.1|v536871444]] (8.0.0.532)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || error (LibraryAppletError) ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001006 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.1|v536871444]] (8.0.0.532)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || netConnect (LibraryAppletNetConnect) || &lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001007 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.1|v536871444]] (8.0.0.532)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[Profile Selector|playerSelect (LibraryAppletPlayerSelect)]] || &lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001008 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131132]] (0.0.2.60)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.1|v536871444]] (8.0.0.532)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[Software Keyboard|swkbd (LibraryAppletSwkbd)]] || &lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001009 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.1.1|v536871444]] (8.0.0.532)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || miiEdit (LibraryAppletMiiEdit) || &lt;br /&gt;
|-&lt;br /&gt;
| 010000000000100A || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131162]] (0.0.2.90)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || web (LibraryAppletWeb) || [[Internet_Browser|WebApplet]].&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000100B || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131162]] (0.0.2.90)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || shop (LibraryAppletShop) || [[Internet_Browser|ShopN]] applet.&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000100C || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.1|v536871444]] (8.0.0.532)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || overlayDisp (OverlayApplet) || TID is loaded by NS from system-config-title.&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000100D || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.1|v536871444]] (8.0.0.532)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[Album_Applet|photoViewer (LibraryAppletPhotoViewer)]]&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000100E || || set (LibraryAppletSet) || Currently not present on retail devices.&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000100F || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131162]] (0.0.2.90)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || offlineWeb (LibraryAppletOfflineWeb) || [[Internet_Browser|Offline]] web-applet.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001010 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131162]] (0.0.2.90)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || loginShare (LibraryAppletLoginShare) || [[Internet_Browser|Whitelisted]] applet. (LoginApplet+ShareApplet+LobbyApplet)&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001011 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[2.1.0|v131162]] (0.0.2.90)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[3.0.1|v201392178]] (3.0.1.50)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.1.0|v403701850]] (6.1.0.90)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.0|v537919608]] (8.1.0.120)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || wifiWebAuth (LibraryAppletWifiWebAuth) || [[Internet_Browser|WifiWebAuth]] applet.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001012 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.1|v536871444]] (8.0.0.532)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || starter (DummyStarter) ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001013 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[5.0.1|v335609886]] (5.0.1.30)&amp;lt;br/&amp;gt; [[5.0.2|v335675432]] (5.0.2.40)&amp;lt;br/&amp;gt; [[5.1.0|v336592976]] (5.1.0.80)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.1|v536871444]] (8.0.0.532)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || [[MyPage_Applet|myPage (LibraryAppletMyPage)]] ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001014 || || PlayReport || Currently not present on retail devices.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001015 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[2.0.0|v65796]] (0.0.1.260)&amp;lt;br/&amp;gt; [[3.0.0|v201327002]] (3.0.0.410)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[5.0.0|v335544750]] (5.0.0.430)&amp;lt;br/&amp;gt; [[6.0.0|v402653544]] (6.0.0.360)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40)&amp;lt;br/&amp;gt; [[7.0.0|v469762248]] (7.0.0.200)&amp;lt;br/&amp;gt; [[8.0.0|v536871442]] (8.0.0.530)&amp;lt;br/&amp;gt; [[8.1.1|v536871444]] (8.0.0.532)&amp;lt;br/&amp;gt; [[9.0.0|v603980216]] (9.0.0.440) || MaintenanceMenu || Initial applet displayed when booting into [[Recovery_Mode]]. This title is launched by [[NS_Services|NS]] when a state flag is val1 indicating that this title should be launched instead of the above &amp;quot;SystemAppletMenu&amp;quot; title.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001016 || || || TitleID used by [[NS_Services|NS]] when a certain flag is non-zero, in multiple places including around code using string &amp;quot;application_install&amp;quot;. This title doesn&#039;t seem to exist for retail.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001018 || || || On newer system-versions, [[NS_Services|NS]] can save a SystemPlayReport with EventId &amp;quot;systemupdate_dl_throughput&amp;quot; where the ApplicationId is this titleID.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001019 || || || On newer system-versions, [[NS_Services|NS]] can save a SystemPlayReport with EventId &amp;quot;volume_update&amp;quot; or &amp;quot;output_target_update&amp;quot; where the ApplicationId is this titleID.&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000101A || || gift (LibraryAppletGift) || Currently not present on retail devices.&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000101B || || DummyECApplet (LibraryAppletDummyShop) || Currently not present on retail devices.&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000101C || || userMigration (LibraryAppletUserMigration) || Currently not present on retail devices.&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000101D || || EncounterSys (LibraryAppletPreomiaSys) || Currently not present on retail devices.&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000101E || || || This title is referenced by [5.0.0+] [[NIM_services|NIM]] when it accesses the [[Network#pearljam|pearljam]] server, but does not exist on retail systems currently.&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000101F || || || This title is referenced by [6.0.0+] [[NIM_services|NIM]], but does not exist on retail systems currently.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001020 || || story (LibraryAppletStory) || Currently not present on retail devices.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001021 || || || On newer system-versions, [[NS_Services|NS]] can save a SystemPlayReport with EventId &amp;quot;systemupdate_pass&amp;quot; where the ApplicationId is this titleID.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001023 || || statistics || This title is referenced by [[BCAT_services|BCAT]], but does not exist on retail systems currently.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001025 || || || This title is referenced by [6.0.0+] [[Applet_Manager_services|AM]], but does not exist on retail systems currently.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001028 || || || This title is referenced by [8.0.0+] [[NS_Services|NS]], but does not exist on retail systems currently.&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000102A || || || This title is referenced by [6.0.0+] [[Applet_Manager_services|AM]], but does not exist on retail systems currently.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001031 || || || This title is referenced by [8.0.0+] [[NS_Services|NS]], but does not exist on retail systems currently.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001033 || || promotion || This title is referenced by [8.0.0+] [[NS_Services|NS]] and [8.0.0+] [[BCAT_services|BCAT]], but does not exist on retail systems currently.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001034 || || || This title is referenced by [9.0.0+] [[NGCT_services|NGCT]], but does not exist on retail systems currently.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001038 || || sample (LibraryAppletSample) || Currently not present on retail devices.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000001FFF || || EndOceanProgramId || Placeholder for the last valid applet ID.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== System Debug Applets ==&lt;br /&gt;
Note: No 01000000000020XX titles exist on retail systems.&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Title-id || Versions || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002000 || || A2BoardFunction ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002001 || || A3Wireless ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002002 || || C1LcdAndKey (LcdAndKey) || LCD/Keyboard testing.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002003 || || C2UsbHpmic (UsbAndHPMicTest) || USB and audio testing.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002004 || || C3Aging (Aging) || Graphics/Framerate testing.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002005 || || C4SixAxis (6axisTest) || Sixaxis (controller peripheral) testing.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002006 || || C5Wireless (AssembledWireless) || Wireless testing.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002007 || || C7FinalCheck (FinalCheck) ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000203F || || AutoCapture ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002040 || || DevMenuCommandSystem ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002041 || || recovery ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002042 || || DevMenuSystem ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002044 || || HB-TBIntegrationTest ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000204D || || BackupSaveData ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000204E || || A4BoardCalWriti (BoardCalWriting) || Writes calibration data to NAND.&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002054 || || RepairSslCertificate ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002055 || || GameCardWriter ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002056 || || UsbPdTestTool ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002057 || || RepairDeletePctl ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002058 || || RepairBackup ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002059 || || RepairRestore ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000205A || || RepairAccountTransfer ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000205B || || RepairAutoNetworkUpdater ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000205C || || RefurbishReset ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000205D || || RepairAssistCup ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000205E || || RepairPairingCutter ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002064 || || DevMenu ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002065 || || DevMenuApp ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002066 || || GetGameCardAsicInfo ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002068 || || NfpDebugToolSystem ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002069 || || AlbumSynchronizer ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002071 || || SnapShotDumper || Used by [[NS_Services|NS]].&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002073 || || DevMenuSystemApp ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002099 || || DevOverlayDisp ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000209A || || NandVerifier ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000209B || || GpuCoreDumper || Used by [[AM_services|AM]].&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000209C || || TestApplication (TestApplicationLauncher) || Factory qlaunch replacement, used to launch other tests.&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000209E || || HelloWorld ||&lt;br /&gt;
|-&lt;br /&gt;
| 01000000000020A0 || || XcieWriter ||&lt;br /&gt;
|-&lt;br /&gt;
| 01000000000020A1 || || GpuOverrunNotifier ||&lt;br /&gt;
|-&lt;br /&gt;
| 01000000000020C8 || || NfpDebugTool ||&lt;br /&gt;
|-&lt;br /&gt;
| 01000000000020CA || || NoftWriter ||&lt;br /&gt;
|-&lt;br /&gt;
| 01000000000020D0 || || BcatSystemDebugTool ||&lt;br /&gt;
|-&lt;br /&gt;
| 01000000000020D1 || || DevSafeModeUpdater ||&lt;br /&gt;
|-&lt;br /&gt;
| 01000000000020D3 || || ControllerConnectionAnalyzer ||&lt;br /&gt;
|-&lt;br /&gt;
| 01000000000020D4 || || DevKitUpdater ||&lt;br /&gt;
|-&lt;br /&gt;
| 01000000000020D6 || || RepairTimeReviser ||&lt;br /&gt;
|-&lt;br /&gt;
| 01000000000020D7 || || RepairReinitializeFuelGauge ||&lt;br /&gt;
|-&lt;br /&gt;
| 01000000000020DA || || RepairAbortMigration ||&lt;br /&gt;
|-&lt;br /&gt;
| 01000000000020DC || || RepairShowDeviceId ||&lt;br /&gt;
|-&lt;br /&gt;
| 01000000000020DD || || RepairSetCycleCountReliability ||&lt;br /&gt;
|-&lt;br /&gt;
| 01000000000020E0 || || Interface ||&lt;br /&gt;
|-&lt;br /&gt;
| 01000000000020E1 || || AlbumDownloader ||&lt;br /&gt;
|-&lt;br /&gt;
| 01000000000020E3 || || FuelGaugeDumper ||&lt;br /&gt;
|-&lt;br /&gt;
| 01000000000020E4 || || UnsafeExtract ||&lt;br /&gt;
|-&lt;br /&gt;
| 01000000000020E5 || || UnsafeEngrave ||&lt;br /&gt;
|-&lt;br /&gt;
| 01000000000020EE || || BluetoothSettingTool ||&lt;br /&gt;
|-&lt;br /&gt;
| 01000000000020F0 || || ApplicationInstallerRomfs (devmenuapp_installer) || Launched by [[Boot2|boot2]].&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002100 || || DevMenuLotcheckDownloader ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002101 || || DevMenuCommand ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002102 || || ExportPartition ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002103 || || [[Factory Setup|SystemInitializer]] (SystemInitializ) ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002104 || || SystemUpdaterHostFs ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002105 || || WriteToStorage ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002106 || || [[Factory Setup|CalWriter]] (CalWriterManu) ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002107 || || SettingsManager ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002109 || || testBuildSystemIris ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000210A || || SystemUpdater ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000210B || || nvnflinger_util ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000210C || || ControllerFirmwareUpdater ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000210D || || testBuildSystemNintendoWare (Test) ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002110 || || TestSaveDataCreator ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002111 || || C9LcdSpker ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002114 || || RankTurn ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002116 || || BleTestTool ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000211A || || PreinstallAppWriter ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000211C || || ControllerSerialFlashTool ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000211D || || ControllerFlashWriter ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002120 || || ControllerTestApp ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002121 || || HidInspectionTool ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002124 || || BatteryCyclesEditor ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002125 || || UsbFirmwareUpdater ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002126 || || PalmaSerialCodeTool ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002127 || || renderdoccmd ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002128 || || HidInspectionToolProd ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000212C || || ExhibitionMenu ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000212F || || ExhibitionSaveData ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002130 || || LuciaConverter ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002133 || || CalDumper ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000002134 || || AnalogStickEvaluationTool ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== System Debug Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Title-id || Versions || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000003002 || || DummyProcess ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000003003 || || DebugMonitor0 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100000000003004 || || SystemHelloWorld ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Target Tools ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Title-id || Versions || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1000000000000001 || || [[Factory Setup|SystemInitializer]] (SystemInitializ)  ||&lt;br /&gt;
|-&lt;br /&gt;
| 1000000000000004 || || [[Factory Setup|CalWriter]] (CalWriterManu) ||&lt;br /&gt;
|-&lt;br /&gt;
| 1000000000000005 || || DevMenuCommand ||&lt;br /&gt;
|-&lt;br /&gt;
| 1000000000000006 || || SettingsManager ||&lt;br /&gt;
|-&lt;br /&gt;
| 1000000000000007 || || ApplicationLauncer ||&lt;br /&gt;
|-&lt;br /&gt;
| 100000000000000B || || SnapShotDumper ||&lt;br /&gt;
|-&lt;br /&gt;
| 100000000000000C || || SystemUpdater ||&lt;br /&gt;
|-&lt;br /&gt;
| 100000000000000E || || ControllerFirmwareUpdater ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Factory System Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Title-id || Versions || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000B120 || || nvdbgsvc || Launched by maintenance mode [[Boot2|boot2.manuBoot]], but not present in retail or [[Factory Setup|factory firmware]].&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000B14A || || [[Manu Services|manu]] || Installed in [[Factory Setup|factory firmware]].&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000B14B || || ManuUsbLoopBack ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000B1B8 || || DevFwdbgHbPackage ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000B1B9 || || DevFwdbgUsbPackage ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000B1BA || || ProdFwdbgPackage ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000B22A || || scs ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000B22B || || ControllerFirmwareDebug ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000B240 || || htc ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000C600 || || BdkSample01 ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000C601 || || BdkSample02 ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000C602 || || BdkSample03 ||&lt;br /&gt;
|-&lt;br /&gt;
| 010000000000C603 || || BdkSample04 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== System Applications ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Title-id || Versions || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 01008BB00013C000 || [[1.0.0|v450]] (0.0.0.450)&amp;lt;br/&amp;gt; [[4.0.0|v268435656]] (4.0.0.200)&amp;lt;br/&amp;gt; [[6.2.0|v404750376]] (6.2.0.40) || [[flog]] || NES emulator.&lt;br /&gt;
|-&lt;br /&gt;
| 0100069000078000 || v0 || RetailInteractiveDisplayMenu (DevQuestMenu) || This title can be launched by [[qlaunch]], but is not normally installed on retail systems.&lt;br /&gt;
|-&lt;br /&gt;
| 010000B003486000 || || AudioUsbMicDebugTool ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100458001E04000 || || BcatTestApp01 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100F910020F8000 || || BcatTestApp02 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100B7D0020FC000 || || BcatTestApp03 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100132002100000 || || BcatTestApp04 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100935002116000 || || BcatTestApp05 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100DA4002130000 || || BcatTestApp06 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100B0F002104000 || || BcatTestApp07 ||&lt;br /&gt;
|-&lt;br /&gt;
| 010051E002132000 || || BcatTestApp08 ||&lt;br /&gt;
|-&lt;br /&gt;
| 01004CB0015C8000 || || BcatTestApp09 ||&lt;br /&gt;
|-&lt;br /&gt;
| 01009720015CA000 || || BcatTestApp10 ||&lt;br /&gt;
|-&lt;br /&gt;
| 01002F20015C6000 || || BcatTestApp11 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100204001F90000 || || BcatTestApp12 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100060001F92000 || || BcatTestApp13 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100C26001F94000 || || BcatTestApp14 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100462001F96000 || || BcatTestApp15 ||&lt;br /&gt;
|-&lt;br /&gt;
| 01005C6001F98000 || || BcatTestApp16 ||&lt;br /&gt;
|-&lt;br /&gt;
| 010070000E3C0000 || || EncounterUsr (LibraryAppletPreomiaUsr) ||&lt;br /&gt;
|-&lt;br /&gt;
| 010086000E49C000 || || EncounterUsrDummy (LibraryAppletPreomiaUsrDummy) ||&lt;br /&gt;
|-&lt;br /&gt;
| 0100810002D5A000 || || ShopMonitaringTool ||&lt;br /&gt;
|-&lt;br /&gt;
| 010023D002B98000 || || DeltaStress ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== eShop Games / Applications ==&lt;br /&gt;
Note: Nintendo Switch game and application titles follow a higher entropy TitleID scheme than previous generation consoles. &amp;lt;br/&amp;gt; Refer to the [[Title_list/Games|Games List]] for more information.&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=NCA&amp;diff=8893</id>
		<title>NCA</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=NCA&amp;diff=8893"/>
		<updated>2020-03-10T08:03:06Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* FsHeader */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The entire raw NCAs are encrypted.&lt;br /&gt;
&lt;br /&gt;
The only known area which is not encrypted in the raw NCA is the logo section, when the NCA includes that section. Everything else documented on this page is for the plaintext version of that data.&lt;br /&gt;
&lt;br /&gt;
= Encryption =&lt;br /&gt;
The first 0xC00 bytes are encrypted with AES-XTS with sector size 0x200 with a non-standard &amp;quot;tweak&amp;quot; (endianness is reversed, see [https://gist.github.com/SciresM/fe8a631d13c069bd66e9c656ab5b3f7f here]), this encrypted data is an 0x400 NCA header + an 0x200 header for each section in the section table.&lt;br /&gt;
&lt;br /&gt;
For pre-1.0.0 &amp;quot;NCA2&amp;quot; NCAs, the first 0x400 byte are encrypted the same way as in NCA3. However, each section header is individually encrypted as though it were sector 0, instead of the appropriate sector as in NCA3.&lt;br /&gt;
&lt;br /&gt;
= Header =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x100&lt;br /&gt;
| RSA-2048 signature over the header (data from 0x200 to 0x400) using a fixed key&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 0x100&lt;br /&gt;
| RSA-2048 signature over the header (data from 0x200 to 0x400) using a key from [[NPDM]] (or zeroes if not a program)&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| 0x4&lt;br /&gt;
| Magicnum &amp;quot;NCA3&amp;quot; (&amp;quot;NCA2&amp;quot;, &amp;quot;NCA1&amp;quot; or &amp;quot;NCA0&amp;quot; for pre-1.0.0 NCAs)&lt;br /&gt;
|-&lt;br /&gt;
| 0x204&lt;br /&gt;
| 0x1&lt;br /&gt;
| DistributionType (0x00 = System NCA, 0x01 = Gamecard NCA)&lt;br /&gt;
|-&lt;br /&gt;
| 0x205&lt;br /&gt;
| 0x1&lt;br /&gt;
| ContentType (0x00 = Program, 0x01 = Meta, 0x02 = Control, 0x03 = Manual, 0x04 = Data, 0x05 = PublicData)&lt;br /&gt;
|-&lt;br /&gt;
| 0x206&lt;br /&gt;
| 0x1&lt;br /&gt;
| KeyGenerationOld (0x00 = [[1.0.0]], 0x01 = Unused, 0x02 = [[3.0.0]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x207&lt;br /&gt;
| 0x1&lt;br /&gt;
| KeyAreaEncryptionKeyIndex (0x00 = Application, 0x01 = Ocean, 0x02 = System)&lt;br /&gt;
|-&lt;br /&gt;
| 0x208&lt;br /&gt;
| 0x8&lt;br /&gt;
| ContentSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x210&lt;br /&gt;
| 0x8&lt;br /&gt;
| ProgramId&lt;br /&gt;
|-&lt;br /&gt;
| 0x218&lt;br /&gt;
| 0x4&lt;br /&gt;
| ContentIndex&lt;br /&gt;
|-&lt;br /&gt;
| 0x21C&lt;br /&gt;
| 0x4&lt;br /&gt;
| SdkAddonVersion (used in &amp;quot;FS_ACCESS: { sdk_version: {byte3}.{byte2}.{byte1}, ...&amp;quot; with byte0 set to 0 and compared with a required minimum value: 0x000B0000)&lt;br /&gt;
|-&lt;br /&gt;
| 0x220&lt;br /&gt;
| 0x1&lt;br /&gt;
| KeyGeneration (0x03 = [[3.0.1]], 0x04 = [[4.0.0]], 0x05 = [[5.0.0]], 0x06 = [[6.0.0]], 0x07 = [[6.2.0]], 0x08 = [[7.0.0]], 0x09 = [[8.1.0]], 0x0A = [[9.0.0]], 0x0B = [[9.1.0]], 0xFF = Invalid)&lt;br /&gt;
|-&lt;br /&gt;
| 0x221&lt;br /&gt;
| 0x1&lt;br /&gt;
| [9.0.0+] Header1SignatureKeyGeneration (0 or 1)&lt;br /&gt;
|-&lt;br /&gt;
| 0x230&lt;br /&gt;
| 0x10&lt;br /&gt;
| RightsId&lt;br /&gt;
|-&lt;br /&gt;
| 0x240&lt;br /&gt;
| 0x10 * 4&lt;br /&gt;
| Array of [[#FsEntry|FsEntry]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x280&lt;br /&gt;
| 0x20 * 4&lt;br /&gt;
| Array of SHA256 hashes (over each [[#FsHeader|FsHeader]])&lt;br /&gt;
|-&lt;br /&gt;
| 0x300&lt;br /&gt;
| 0x10 * 4&lt;br /&gt;
| EncryptedKeyArea&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When the above &#039;&#039;&#039;KeyGenerationOld&#039;&#039;&#039; field is 0x2 on &amp;gt;= v3.0, different {crypto/keydata} is used for the sections&#039; data. With system content, this is used with every ncatype except ncatype0. The only other exception is {data-content} for the firm titles: this is required in order for older-system-versions to install it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KeyGeneration&#039;&#039;&#039; 0x3 (with &#039;&#039;&#039;KeyGenerationOld&#039;&#039;&#039; set to 0x2) is used for all [[3.0.1]] sysmodules and the [[System_Version_Title]]. With [[3.0.2]], all updated titles use the crypto from [[3.0.1]] for non-ncatype0, except for firm {data-content}. In some cases various game content uses the above newer crypto as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KeyGeneration&#039;&#039;&#039; is always &#039;&#039;&#039;MasterKeyVersion&#039;&#039;&#039; + 1, except for generations 0 and 1 which are both version 0.&lt;br /&gt;
&lt;br /&gt;
The keyindex passed to &amp;lt;key-generation-related code&amp;gt; is determined as follows:&lt;br /&gt;
* Pre-[[3.0.0]]: The &#039;&#039;&#039;KeyAreaEncryptionKeyIndex&#039;&#039;&#039; field (0x207) is passed directly.&lt;br /&gt;
* [[3.0.0]]+: It&#039;s determined using the &#039;&#039;&#039;KeyAreaEncryptionKeyIndex&#039;&#039;&#039; field (0x207) and the &#039;&#039;&#039;KeyGenerationOld&#039;&#039;&#039; field (0x206). The latter field must be 0, 1 or 2. In each ncahdr_keyindex block, it executes &amp;quot;if(ncahdr_x206&amp;gt;=3)&amp;lt;panic&amp;gt;&amp;quot;, but that won&#039;t trigger due to the earlier check. The end result is basically the same as pre-[[3.0.0]], except when ncahdr_x206 == 0x2, final_index is new_base_index+ncahdr_keyindex. Actual implementation loads index from u32_array[ncahdr_crypto_type], where the address of u32_array is different for each ncahdr_keyindex.&lt;br /&gt;
* [[3.0.1]]+: The dedicated range check for the &#039;&#039;&#039;KeyGenerationOld&#039;&#039;&#039; field (0x206) was removed, since the updated code no longer needs it. The output from a function masked with 0xFF is now used instead of ncahdr_x206. The range check for that field was changed from {ncahdr_x206 check with panic described above}, to &amp;quot;if(index&amp;gt;=4)final_index=10;&amp;quot;(skips accessing the array and uses 10 directly). The arrays were updated with an additional entry: final_index=v301_base_index+ncahdr_keyindex.&lt;br /&gt;
** The keydata for the above index10 is not(?) known to be initialized.&lt;br /&gt;
** The new function called by the code described above does:&lt;br /&gt;
** &amp;lt;code&amp;gt;if(ncahdr_x206 &amp;lt; ncahdr_x220){ret = ncahdr_x220; } else { ret = ncahdr_x206; } return ret;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FsEntry ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| StartOffset (in Media Units which are 0x200 bytes) &lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| EndOffset (in Media Units which are 0x200 bytes) &lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= FsHeader =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x2&lt;br /&gt;
| Version (always 2)&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| 0x1&lt;br /&gt;
| FsType (0 = RomFs, 1 = PartitionFs)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3&lt;br /&gt;
| 0x1&lt;br /&gt;
| HashType (0 = Auto, 2 = HierarchicalSha256, 3 = HierarchicalIntegrity)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x1&lt;br /&gt;
| EncryptionType (0 = Auto, 1 = None, 2 = AesCtrOld, 3 = AesCtr, 4 = AesCtrEx)&lt;br /&gt;
|-&lt;br /&gt;
| 0x5&lt;br /&gt;
| 0x1&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0xF8&lt;br /&gt;
| [[#HashInfo|HashInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 0x40&lt;br /&gt;
| [[#PatchInfo|PatchInfo]] (only used with game updates RomFs)&lt;br /&gt;
|-&lt;br /&gt;
| 0x140&lt;br /&gt;
| 0x4&lt;br /&gt;
| Generation&lt;br /&gt;
|-&lt;br /&gt;
| 0x144&lt;br /&gt;
| 0x4&lt;br /&gt;
| SecureValue&lt;br /&gt;
|-&lt;br /&gt;
| 0x148&lt;br /&gt;
| 0x30&lt;br /&gt;
| SparseInfo (only used in sections with sparse storage)&lt;br /&gt;
|-&lt;br /&gt;
| 0x178&lt;br /&gt;
| 0x88&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The FsHeader for each section is at absoluteoffset+0x400+(sectionid*0x200), where sectionid corresponds to the index used with the entry/hash tables.&lt;br /&gt;
&lt;br /&gt;
== HashInfo ==&lt;br /&gt;
This contains information specific to the hash type in use.&lt;br /&gt;
&lt;br /&gt;
=== HierarchicalSha256 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x20&lt;br /&gt;
| SHA256 hash over the hash-table at section-start+0 with the below hash-table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4&lt;br /&gt;
| Block size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x4&lt;br /&gt;
| Must be 0x2&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| Offset of hash-table (normally zero)&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| Size of hash-table&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x8&lt;br /&gt;
| Offset relative to section-start where the PFS0 header is located&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 0x8&lt;br /&gt;
| Actual byte-size of the PFS0 filesystem relative to the PFS0 header&lt;br /&gt;
|-&lt;br /&gt;
| 0x48&lt;br /&gt;
| 0xB0&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== HierarchicalIntegrity ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Magicnum &amp;quot;IVFC&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Magic Number (0x20000)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Master hash size?&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Usually 7? Unknown, could be related to total number of levels maybe?&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| Level 1 offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x8&lt;br /&gt;
| Level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x4&lt;br /&gt;
| Level 1 block size (in log2)&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| Level 2 offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x8&lt;br /&gt;
| Level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 0x4&lt;br /&gt;
| Level 2 block size (in log2)&lt;br /&gt;
|-&lt;br /&gt;
| 0x44&lt;br /&gt;
| 0x4&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x48&lt;br /&gt;
| 0x8&lt;br /&gt;
| Level 3 offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x50&lt;br /&gt;
| 0x8&lt;br /&gt;
| Level 3 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x58&lt;br /&gt;
| 0x4&lt;br /&gt;
| Level 3 block size (in log2)&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x60&lt;br /&gt;
| 0x8&lt;br /&gt;
| Level 4 offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x68&lt;br /&gt;
| 0x8&lt;br /&gt;
| Level 4 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x70&lt;br /&gt;
| 0x4&lt;br /&gt;
| Level 4 block size (in log2)&lt;br /&gt;
|-&lt;br /&gt;
| 0x74&lt;br /&gt;
| 0x4&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x78&lt;br /&gt;
| 0x8&lt;br /&gt;
| Level 5 offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x80&lt;br /&gt;
| 0x8&lt;br /&gt;
| Level 5 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x88&lt;br /&gt;
| 0x4&lt;br /&gt;
| Level 5 block size (in log2)&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C&lt;br /&gt;
| 0x4&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x90&lt;br /&gt;
| 0x8&lt;br /&gt;
| Level 6 offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x98&lt;br /&gt;
| 0x8&lt;br /&gt;
| Level 6 size&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Level 6 block size (in log2)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0xA8&lt;br /&gt;
| 0x20&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8&lt;br /&gt;
| 0x20&lt;br /&gt;
| Hash&lt;br /&gt;
|-&lt;br /&gt;
| 0xE8&lt;br /&gt;
| 0x10&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== PatchInfo ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Magicnum &amp;quot;BKTR&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32, must be &amp;lt;=1.&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x4&lt;br /&gt;
| s32, must be &amp;gt;=1.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x4&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x20&lt;br /&gt;
| Same as the above 0x20-bytes except with different data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The above byte-offsets are relative to the start of the section-data.&lt;br /&gt;
&lt;br /&gt;
The two sections specified by the two BKTR entries are usually(?) at the very end of the section data(section_endoffset-{size of BKTR sections}).&lt;br /&gt;
&lt;br /&gt;
=== RomFs Patching ===&lt;br /&gt;
The [[#PatchInfo|PatchInfo]] section enables combining data from an update NCA with the RomFs from a base NCA to create a single patched RomFS image. &lt;br /&gt;
&lt;br /&gt;
The first BKTR entry describes how to map regions of the two RomFs images to create the patched RomFs. It has the following format:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Padding/Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Number of Buckets&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Total Size of the Virtual RomFS Image&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x3FF0&lt;br /&gt;
| Base Virtual Offset for each Bucket (u64s, padded with 0s until end)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4000&lt;br /&gt;
| 0x4000*X&lt;br /&gt;
| Relocation Buckets&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Where relocation buckets are as follows:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Padding/Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Number of Entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| End offset for this Bucket&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x3FF0&lt;br /&gt;
| Relocation Entries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Where relocation entries are as follows:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Address in Patched RomFs&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Address in Source RomFs&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| 1=Is from Patch RomFS, 0=Is from Base RomFS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The second BKTR entry describes the subsections within the Patch RomFs. It has the following format:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Padding/Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Number of Buckets&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Total Size of the Physical Patch Image&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x3FF0&lt;br /&gt;
| Base Physical Offset for each Bucket (u64s, padded with 0s until end)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4000&lt;br /&gt;
| 0x4000*X&lt;br /&gt;
| Subsection Buckets&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Where subsection buckets are as follows:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Padding/Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Number of Entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| End offset for this Bucket&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x3FF0&lt;br /&gt;
| Subsection Entries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Where subsection entries are as follows:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Address in Patch RomFs&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Padding/Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Value for subsection AES-CTR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Official code assumes the relocation entries are sorted, and performs a binary search when determining where to read from. Each subsection in the Patch RomFs has its CTR calculated separately from the others based on the value in its entry (the BKTR entries use normal crypto). Thus decrypting a Patch RomFS requires decrypting and parsing the BKTR entries before anything else.&lt;br /&gt;
&lt;br /&gt;
= Logo Section =&lt;br /&gt;
This is a PFS0.&lt;br /&gt;
&lt;br /&gt;
See [[NCA_Content_FS|here]] for the mounted-FS logo contents.&lt;br /&gt;
&lt;br /&gt;
= ExeFS Section =&lt;br /&gt;
This is a PFS0.&lt;br /&gt;
&lt;br /&gt;
See [[ExeFS|here]] for mounted-FS ExeFS contents.&lt;br /&gt;
&lt;br /&gt;
= Game Updates =&lt;br /&gt;
The section-data for ncatype1 RomFS section(section1) uses section-crypto-type 0x4.&lt;br /&gt;
&lt;br /&gt;
Game updates also contain multiple ncatype6 content, which contain &amp;quot;section0_pfs0/fragment&amp;quot;. Some of these are just NCAs, unknown for the rest(presumably NCAs with additional crypto?). The first ncatype6 content fragment file has a NDV0 header, with the NCA starting at offset 0x44.&lt;br /&gt;
&lt;br /&gt;
= PFS0 =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| {Hash-table offset from superblock}&lt;br /&gt;
| {Hash-table size from superblock}&lt;br /&gt;
| Table of SHA256 hashes.&lt;br /&gt;
|-&lt;br /&gt;
| {Hash-table &amp;lt;offset+size&amp;gt; from superblock}&lt;br /&gt;
| &lt;br /&gt;
| Zeros for alignment to {alignment size}.&lt;br /&gt;
|-&lt;br /&gt;
| {PFS0 offset from superblock}&lt;br /&gt;
| {PFS0 size from superblock}&lt;br /&gt;
| The actual PFS0.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the FS which has magicnum &amp;quot;PFS0&amp;quot; at header+0. This is very similar to [[Gamecard_Format|HFS0]]. A tool for extracting this FS is available [https://gist.github.com/yellows8/1a96c2b846f4ebc4bb45d7f7fa1eb7db here].&lt;br /&gt;
&lt;br /&gt;
The hash table is hashes for every {Block size from superblock} starting at the PFS0 header. The size used for the last hash is {PFS0 filesystem size from superblock} - offset_relativeto_header.&lt;br /&gt;
&lt;br /&gt;
See also the PFS0 superblock above.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Magicnum &amp;quot;PFS0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Number of files&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Size of the string table&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Zero/Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| X&lt;br /&gt;
| File Entry Table&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 + X&lt;br /&gt;
| Y&lt;br /&gt;
| String Table&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 + X + Y&lt;br /&gt;
| Z&lt;br /&gt;
| Raw File Data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Where File Entry Table consists of Number of Files FileEntries:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Offset of file in Data&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Size of file in Data&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Offset of filename in String Table&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Normally zero?&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=NPDM&amp;diff=8761</id>
		<title>NPDM</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=NPDM&amp;diff=8761"/>
		<updated>2020-02-21T05:10:48Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* META */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the Switch equivalent of 3DS [https://www.3dbrew.org/wiki/NCCH/Extended_Header exheader]. This is the file with extension &amp;quot;.npdm&amp;quot; in {Switch ExeFS}. The size of this file varies.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x80&lt;br /&gt;
| [[#META|META]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x80&lt;br /&gt;
| &amp;lt;Varies&amp;gt;&lt;br /&gt;
| [[#ACID|ACID]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;See META&amp;gt;&lt;br /&gt;
| &amp;lt;See META&amp;gt;&lt;br /&gt;
| [[#ACI0|ACI0]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= META =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Magicnum &amp;quot;META&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| [9.0.0+] ACID signing key selector (0 and 1 are valid)&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#Flags|Flags]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD&lt;br /&gt;
| 0x1&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0xE&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#MainThreadPriority|MainThreadPriority]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF&lt;br /&gt;
| 0x1&lt;br /&gt;
| MainThreadCoreNumber&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| [3.0.0+] [[#SystemResourceSize|SystemResourceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#Version|Version]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#MainThreadStackSize|MainThreadStackSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x10&lt;br /&gt;
| Name (usually/always &amp;quot;Application&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x10&lt;br /&gt;
| ProductCode (usually/always all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 0x30&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x70&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#ACI0|AciOffset]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x74&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#ACI0|AciSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x78&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#ACID|AcidOffset]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x7C&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#ACID|AcidSize]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flags ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Is64BitInstruction&lt;br /&gt;
|-&lt;br /&gt;
| 1-3&lt;br /&gt;
| ProcessAddressSpace (0x00 = AddressSpace32Bit, 0x01 = AddressSpace64BitOld, 0x02 = AddressSpace32BitNoReserved, 0x03 = AddressSpace64Bit)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| OptimizeMemoryAllocation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MainThreadPriority ==&lt;br /&gt;
Ranges from 0 to 0x3F.&lt;br /&gt;
&lt;br /&gt;
== SystemResourceSize ==&lt;br /&gt;
This is the size of PersonalMmHeap. Maximum size as of 5.0.0 is 0x1FE00000.&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
0 for all titles.&lt;br /&gt;
&lt;br /&gt;
[8.1.0+] Now set to 1 for certain titles.&lt;br /&gt;
&lt;br /&gt;
== MainThreadStackSize ==&lt;br /&gt;
Must be aligned to 0x1000.&lt;br /&gt;
&lt;br /&gt;
In non-nspwn scenarios, values of 0 can also rarely break in Horizon. This might be something auto-adapting or a security feature of some sort?&lt;br /&gt;
&lt;br /&gt;
= ACID =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x100&lt;br /&gt;
| RSA-2048 signature over the data starting at 0x100 with the size field from 0x204&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 0x100&lt;br /&gt;
| RSA-2048 public key for the second [[NCA_Format|NCA]] signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| 0x4&lt;br /&gt;
| Magicnum &amp;quot;ACID&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x204&lt;br /&gt;
| 0x4&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x208&lt;br /&gt;
| 0x4&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x20C&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#Flags_2|Flags]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x210&lt;br /&gt;
| 0x8&lt;br /&gt;
| ProgramIdMin&lt;br /&gt;
|-&lt;br /&gt;
| 0x218&lt;br /&gt;
| 0x8&lt;br /&gt;
| ProgramIdMax&lt;br /&gt;
|-&lt;br /&gt;
| 0x220&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#FsAccessControl|FsAccessControlOffset]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x224&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#FsAccessControl|FsAccessControlSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x228&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#SrvAccessControl|SrvAccessControlOffset]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x22C&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#SrvAccessControl|SrvAccessControlSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x230&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#KernelCapability|KernelCapabilityOffset]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x234&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#KernelCapability|KernelCapabilitySize]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x238&lt;br /&gt;
| 0x8&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flags ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| ProductionFlag&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| UnqualifiedApproval&lt;br /&gt;
|-&lt;br /&gt;
| 2-3&lt;br /&gt;
| [5.0.0+ ] MemoryRegion (0 = Application, 1 = Applet, 2 = SecureSystem, 3 = NonSecureSystem)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
MemoryRegion is set to Application for &amp;quot;starter&amp;quot; and NonSecureSystem for &amp;quot;nvservices&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= ACI0 =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Magicnum &amp;quot;ACI0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0xC&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8&lt;br /&gt;
| ProgramId&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#FsAccessControl|FsAccessControlOffset]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#FsAccessControl|FsAccessControlSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#SrvAccessControl|SrvAccessControlOffset]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#SrvAccessControl|SrvAccessControlSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#KernelCapability|KernelCapabilityOffset]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x34&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#KernelCapability|KernelCapabilitySize]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x8&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= FsAccessControl =&lt;br /&gt;
For [[#ACID|ACID]] this is a simple descriptor as follows:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x1&lt;br /&gt;
| Version (always 1, must be non-zero)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x3&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x8&lt;br /&gt;
| [[#FsAccessFlag|FsAccessFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x20&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For [[#ACI0|ACI0]] this embeds data as follows:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x1&lt;br /&gt;
| Version (always 1, must be non-zero)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x3&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x8&lt;br /&gt;
| [[#FsAccessFlag|FsAccessFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| ContentOwnerInfoOffset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| ContentOwnerInfoSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| SaveDataOwnerInfoOffset&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x4&lt;br /&gt;
| SaveDataOwnerInfoSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x4&lt;br /&gt;
| (Optional) Amount of content owner id&#039;s&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x8 * Content Owner ID&#039;s&lt;br /&gt;
| Content owner ID&#039;s as uint64&#039;s.&lt;br /&gt;
|-&lt;br /&gt;
| Variable&lt;br /&gt;
| 0x4&lt;br /&gt;
| Amount of save owner id&#039;s&lt;br /&gt;
|-&lt;br /&gt;
| Variable&lt;br /&gt;
| 0x1 * Save data owner accessibilities (?)&lt;br /&gt;
| Sets flags for what save data owners can do with other applications save data (?)&lt;br /&gt;
|-&lt;br /&gt;
| Variable (padded to nearest 4 bytes)&lt;br /&gt;
| 0x8 * Amount of save owner ID&#039;s&lt;br /&gt;
| Save data owner ID&#039;s&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FsAccessFlag ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bits&lt;br /&gt;
! Name&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| ApplicationInfo&lt;br /&gt;
| MountContent* is accessible when set.&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| BootModeControl&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Calibration&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| SystemSaveData&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| GameCard&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| SaveDataBackUp&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| SaveDataManagement&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| BisAllRaw&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| GameCardRaw&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| GameCardPrivate&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| SetTime&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| ContentManager&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| ImageManager&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| CreateSaveData&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| SystemSaveDataManagement&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| BisFileSystem&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| SystemUpdate&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| SaveDataMeta&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| DeviceSaveData&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| SettingsControl&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| SystemData&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| SdCard&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| Host&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| FillBis&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| CorruptSaveData&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| SaveDataForDebug&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| FormatSdCard&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| GetRightsId&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| RegisterExternalKey&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| RegisterUpdatePartition&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| SaveDataTransfer&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| DeviceDetection&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| AccessFailureResolution&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| SaveDataTransferVersion2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 34&lt;br /&gt;
| RegisterProgramIndexMapInfo&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 35&lt;br /&gt;
| CreateOwnSaveData&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 36-61&lt;br /&gt;
| Reserved&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 62&lt;br /&gt;
| Debug&lt;br /&gt;
| See [[SPL_services#GetConfig|here]].&lt;br /&gt;
|-&lt;br /&gt;
| 63&lt;br /&gt;
| FullPermission&lt;br /&gt;
| Enables access to everything: all [[Filesystem_services#Permissions|permission types]] which check a bitmask have this bit set.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Controls the [[Filesystem_services#Permissions|filesystem permissions]].&lt;br /&gt;
&lt;br /&gt;
Web-applets permissions:&lt;br /&gt;
* &amp;quot;LibAppletWeb&amp;quot; and &amp;quot;LibAppletOff&amp;quot; have same access control: bit0 and bit3 set, and bit62 set.&lt;br /&gt;
* Rest of the web-applets: Same as above except bit0 isn&#039;t set.&lt;br /&gt;
&lt;br /&gt;
= Service Access Control =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0-2&lt;br /&gt;
| Size (length of the service-name without null-terminator minus 1)&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| IsServer (service is allowed to be registered)&lt;br /&gt;
|-&lt;br /&gt;
| Variable&lt;br /&gt;
| Name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a list of [[Services_API|service]]-name strings which the title has access to.&lt;br /&gt;
&lt;br /&gt;
The service name string starts after the first byte and supports the wildcard &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; character.&lt;br /&gt;
&lt;br /&gt;
= KernelCapability =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Pattern of lower bits&lt;br /&gt;
! Lowest clear bitmask/bit&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0bxxxxxxxxxxxx0111&amp;lt;/code&amp;gt;&lt;br /&gt;
| Bit3&lt;br /&gt;
| [[#ThreadInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0bxxxxxxxxxxx01111&amp;lt;/code&amp;gt;&lt;br /&gt;
| Bit4&lt;br /&gt;
| [[#EnableSystemCalls]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0bxxxxxxxxx0111111&amp;lt;/code&amp;gt;&lt;br /&gt;
| Bit6&lt;br /&gt;
| [[#MemoryMap]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0bxxxxxxxx01111111&amp;lt;/code&amp;gt;&lt;br /&gt;
| Bit7&lt;br /&gt;
| [[#IoMemoryMap]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0bxxxxx01111111111&amp;lt;/code&amp;gt;&lt;br /&gt;
| Bit10&lt;br /&gt;
| [8.0.0+] [[#MemoryRegionMap]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0bxxxx011111111111&amp;lt;/code&amp;gt;&lt;br /&gt;
| Bit11&lt;br /&gt;
| [[#EnableInterrupts]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0bxx01111111111111&amp;lt;/code&amp;gt;&lt;br /&gt;
| Bit13&lt;br /&gt;
| [[#MiscParams]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0bx011111111111111&amp;lt;/code&amp;gt;&lt;br /&gt;
| Bit14&lt;br /&gt;
| [[#KernelVersion]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0b0111111111111111&amp;lt;/code&amp;gt;&lt;br /&gt;
| Bit15&lt;br /&gt;
| [[#HandleTableSize]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0b1111111111111111&amp;lt;/code&amp;gt;&lt;br /&gt;
| Bit16&lt;br /&gt;
| [[#MiscFlags]]&lt;br /&gt;
|-&lt;br /&gt;
| All ones&lt;br /&gt;
| &lt;br /&gt;
| Ignored&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These descriptors are identified by pattern 01..11 in low bits.&lt;br /&gt;
&lt;br /&gt;
== ThreadInfo ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 4-9&lt;br /&gt;
| LowestPriority&lt;br /&gt;
|-&lt;br /&gt;
| 10-15&lt;br /&gt;
| HighestPriority&lt;br /&gt;
|-&lt;br /&gt;
| 16-23&lt;br /&gt;
| MinCoreNumber&lt;br /&gt;
|-&lt;br /&gt;
| 24-31&lt;br /&gt;
| MaxCoreNumber&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== EnableSystemCalls ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 5-28&lt;br /&gt;
| SystemCallId&lt;br /&gt;
|-&lt;br /&gt;
| 29-31&lt;br /&gt;
| Index&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MemoryMap ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 7-30&lt;br /&gt;
| BeginAddress or Size&lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| IsRw or IsIo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
MemoryMap entries are stored alternating between BeginAddress + IsRw and Size + IsIo.&lt;br /&gt;
&lt;br /&gt;
=== Restrictions ===&lt;br /&gt;
The physaddr range 0x80060000-0x2000000000 is not allowed to be mapped as IO.&lt;br /&gt;
The physaddr range 0x80000000-0x2000000000 is not allowed to be mapped as Normal.&lt;br /&gt;
&lt;br /&gt;
[2.0.0-4.1.0] The range for IO was changed into 0x80060000-0x81D3FFFF.&lt;br /&gt;
&lt;br /&gt;
[2.0.0-4.1.0] A blacklist was added for IO and Normal mappings:&lt;br /&gt;
* 0x50040000-0x50060000 (ARM, Interrupt Controller)&lt;br /&gt;
* 0x6000F000 (Exception Vectors)&lt;br /&gt;
* 0x6001DC00-0x6001E000 (IPATCH)&lt;br /&gt;
* 0x7000E000 (RTC/PMC)&lt;br /&gt;
* 0x70019000 (MC)&lt;br /&gt;
* 0x7001C000 (MC0)&lt;br /&gt;
* 0x7001D000 (MC1)&lt;br /&gt;
&lt;br /&gt;
[5.0.0+] For IO, this blacklist was abandoned and instead two range checks were added. For Normal mappings it is still applied&lt;br /&gt;
&lt;br /&gt;
== IoMemoryMap ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 8-31&lt;br /&gt;
| BeginAddress&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MemoryRegionMap ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 11-16&lt;br /&gt;
| RegionType0 (0 = NoMapping, 1 = KernelTraceBuffer, 2 = OnMemoryBootImage, 3 = DTB)&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| RegionIsReadOnly0&lt;br /&gt;
|-&lt;br /&gt;
| 18-23&lt;br /&gt;
| RegionType1 (0 = NoMapping, 1 = KernelTraceBuffer, 2 = OnMemoryBootImage, 3 = DTB)&lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| RegionIsReadOnly1&lt;br /&gt;
|-&lt;br /&gt;
| 25-30&lt;br /&gt;
| RegionType2 (0 = NoMapping, 1 = KernelTraceBuffer, 2 = OnMemoryBootImage, 3 = DTB)&lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| RegionIsReadOnly2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
MemoryRegionMap is supported by the kernel but not by [[Loader_services|Loader]]. Thus, only initial processes may possess this capability.&lt;br /&gt;
&lt;br /&gt;
== EnableInterrupts ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 12-21&lt;br /&gt;
| InterruptNumber0&lt;br /&gt;
|-&lt;br /&gt;
| 22-31&lt;br /&gt;
| InterruptNumber1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
0x3FF means empty.&lt;br /&gt;
&lt;br /&gt;
== MiscParams ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 14-16&lt;br /&gt;
| ProgramType (0 = System, 1 = Application, 2 = Applet)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
ProgramType is parsed by [[Process Manager services]]. Defaults to 0 if descriptor doesn&#039;t exist. Can only run 1 application at a time.&lt;br /&gt;
&lt;br /&gt;
== KernelVersion ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 15-18&lt;br /&gt;
| MinorVersion&lt;br /&gt;
|-&lt;br /&gt;
| 19-31&lt;br /&gt;
| MajorVersion&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is compared with 0x80000, when less than an error is returned. This is equivalent to comparing the bits starting at bit15 with 0x10. This enforces a minimum required version, not a maximum.&lt;br /&gt;
&lt;br /&gt;
=== Versions ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Firmware || Kernel Version || Minimum Allowed&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0 || 5.0.0 || 3.0.0&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.0 || 6.1.0 || 3.0.0&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.0 || 7.4.0 || 3.0.0&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.2 || 7.4.0 || 3.0.0&lt;br /&gt;
|-&lt;br /&gt;
| 5.0.0 || 9.3.0 || 3.0.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== HandleTableSize ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 16-25&lt;br /&gt;
| HandleTableSize&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MiscFlags ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bits&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| EnableDebug&lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| ForceDebug&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Flash_Filesystem&amp;diff=8658</id>
		<title>Flash Filesystem</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Flash_Filesystem&amp;diff=8658"/>
		<updated>2020-01-11T20:37:04Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: Add partition GUIDs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= NAND structure =&lt;br /&gt;
The Switch&#039;s eMMC storage features a large user area, two smaller boot partitions and a replay-protected memory block which is unused (no authentication key is programmed).&lt;br /&gt;
&lt;br /&gt;
All official partition names come from [[SystemInitializer]].&lt;br /&gt;
&lt;br /&gt;
== Boot Partitions ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Boot Partition 0 (0 of 1)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The official name for this partition is &amp;quot;BootPartition1Root&amp;quot; and it has [[Filesystem_services|Bis]] Partition ID == 0.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
|  0x000000&lt;br /&gt;
|  0x4000&lt;br /&gt;
|  Normal Firmware [[BCT|BCT]] from [[Title_list#System_Data_Archives|Title 0100000000000819]]&lt;br /&gt;
|-&lt;br /&gt;
|  0x004000&lt;br /&gt;
|  0x4000&lt;br /&gt;
|  SafeMode Firmware [[BCT|BCT]] from [[Title_list#System_Data_Archives|Title 010000000000081A]]&lt;br /&gt;
|-&lt;br /&gt;
|  0x008000&lt;br /&gt;
|  0x4000&lt;br /&gt;
|  Normal Firmware [[BCT|BCT]] from [[Title_list#System_Data_Archives|Title 0100000000000819]] (backup)&lt;br /&gt;
|-&lt;br /&gt;
|  0x00C000&lt;br /&gt;
|  0x4000&lt;br /&gt;
|  SafeMode Firmware [[BCT|BCT]] from [[Title_list#System_Data_Archives|Title 010000000000081A]] (backup)&lt;br /&gt;
|-&lt;br /&gt;
|  0x010000&lt;br /&gt;
|  0xEC000&lt;br /&gt;
|  59 additional BCTs, normally unused/empty on retail systems.&lt;br /&gt;
|-&lt;br /&gt;
|  0x0FC000&lt;br /&gt;
|  0x4000&lt;br /&gt;
|  [[#System Update Control|System Update Control area]]&lt;br /&gt;
|-&lt;br /&gt;
|  0x100000&lt;br /&gt;
|  0x40000&lt;br /&gt;
|  Normal Firmware [[Package1|package1]] from [[Title_list#System_Data_Archives|Title 0100000000000819]]&lt;br /&gt;
|-&lt;br /&gt;
|  0x140000&lt;br /&gt;
|  0x40000&lt;br /&gt;
|  Normal Firmware [[Package1|package1]] from [[Title_list#System_Data_Archives|Title 0100000000000819]] (backup)&lt;br /&gt;
|-&lt;br /&gt;
|  0x180000&lt;br /&gt;
|  0x4000&lt;br /&gt;
|  [[#Keyblob|Keyblob area]]&lt;br /&gt;
|-&lt;br /&gt;
|  0x184000&lt;br /&gt;
|  0x200&lt;br /&gt;
|  [2.0.0+] [[#NAND Patrol|NAND Patrol area]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Boot Partition 1 (1 of 1)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The official name for this partition is &amp;quot;BootPartition2Root&amp;quot; and it has [[Filesystem_services|Bis]] Partition ID == 10.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
|  0x000000&lt;br /&gt;
|  0x40000&lt;br /&gt;
|  SafeMode Firmware [[Package1|package1]] from [[Title_list#System_Data_Archives|Title 010000000000081A]]&lt;br /&gt;
|-&lt;br /&gt;
|  0x040000&lt;br /&gt;
|  0x40000&lt;br /&gt;
|  SafeMode Firmware [[Package1|package1]] from [[Title_list#System_Data_Archives|Title 010000000000081A]] (backup)&lt;br /&gt;
|-&lt;br /&gt;
|  0x080000&lt;br /&gt;
|  0x40000&lt;br /&gt;
|  Reserved&lt;br /&gt;
|-&lt;br /&gt;
|  0x0C0000&lt;br /&gt;
|  0x40000&lt;br /&gt;
|  Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== System Update Control ===&lt;br /&gt;
The 0x4000 bytes at offset 0xFC000 are used by [[NS_Services|NS]] and [[Boot|boot]] for keeping track of the status of a system update. This area is used by the [[NS_Services#ns:su|ISystemUpdateControl]] commands &amp;quot;ApplyDownloadedUpdate&amp;quot;, &amp;quot;ApplyCardUpdate&amp;quot; and &amp;quot;ApplyReceivedUpdate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x1&lt;br /&gt;
| BootImages status. Set to 1 by [[NS_Services|NS]] during a system update and cleared by [[Boot|boot]] after restarting.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x1&lt;br /&gt;
| BootImagesSafe status. Set to 1 by [[NS_Services|NS]] during a system update and cleared by [[Boot|boot]] after restarting.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Keyblob ===&lt;br /&gt;
Starting at offset 0x180000 is an array of 0x200-byte entries, for a total of 32 keyblobs. Each one is unique compared to the others and they are all console unique. This is officially known as the &amp;quot;EKS&amp;quot; (encryption key source) area.&lt;br /&gt;
&lt;br /&gt;
From each 0x200-byte entry only the first 0xB0 bytes effectively form the keyblob as below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x10&lt;br /&gt;
| Keyblob AES-CMAC over the next 0xA0 bytes (safe against timing attacks)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| Keyblob AES CTR&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x90&lt;br /&gt;
| Keyblob encrypted payload&lt;br /&gt;
|-&lt;br /&gt;
| 0xB0&lt;br /&gt;
| 0x150&lt;br /&gt;
| Unused, all-zero.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The active bootloader&#039;s version (offset 0x2330 in the BCT) acts as an index to control which keyblob should be installed into the system.&lt;br /&gt;
[[NS_Services|NS]] uses this during system updates to install the keyblob into the [[BCT#customer_data|customer data]] section in BCTs (offset 0x450).&lt;br /&gt;
&lt;br /&gt;
[[Boot]] also uses this index for repairing corrupt sectors.&lt;br /&gt;
&lt;br /&gt;
The currently active keyblob is officially known as &amp;quot;SecureInfo&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== NAND Patrol ===&lt;br /&gt;
The 0x200 bytes at offset 0x184000 are used by [[Filesystem_services|FS]] for keeping track of NAND patrolling.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x20&lt;br /&gt;
| HMAC-SHA-256 over the next 0x1E0 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4&lt;br /&gt;
| Last patrolled NAND block&#039;s offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x4&lt;br /&gt;
| NAND patrol count&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x1D8&lt;br /&gt;
| Unused, all-zero.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== User Partitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Partition name&lt;br /&gt;
!  Partition type GUID&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  [[Filesystem_services|Bis]] Partition ID&lt;br /&gt;
!  Encrypted&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
|  N/A&lt;br /&gt;
| &lt;br /&gt;
|  0x0&lt;br /&gt;
| &lt;br /&gt;
|  20&lt;br /&gt;
|  No&lt;br /&gt;
|  GPT header, Bis-storage also allows raw access to the entire NAND eMMC sectors starting at sector0. The official name for this partition is &amp;quot;UserDataRoot&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  [[Calibration|PRODINFO]]&lt;br /&gt;
|  {98109E25-64E2-4C95-8A77-414916F5BCEB}&lt;br /&gt;
|  0x00004400&lt;br /&gt;
|  0x003FBC00&lt;br /&gt;
|  27&lt;br /&gt;
|  Yes (Bis key 0)&lt;br /&gt;
|  &amp;quot;CAL0&amp;quot; raw partition containing set:cal data. The official name for this partition is &amp;quot;CalibrationBinary&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  [[Calibration|PRODINFOF]]&lt;br /&gt;
|  {F3056AEC-5449-494C-9F2C-5FDCB75B6E6E}&lt;br /&gt;
|  0x00400000&lt;br /&gt;
|  0x00400000&lt;br /&gt;
|  28&lt;br /&gt;
|  Yes (Bis key 0)&lt;br /&gt;
|  FAT12 filesystem, additional calibration. The official name for this partition is &amp;quot;CalibrationFile&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  BCPKG2-1-Normal-Main&lt;br /&gt;
|  {5365DE36-911B-4BB4-8FF9-AA1EBCD73990}&lt;br /&gt;
|  0x00800000&lt;br /&gt;
|  0x00800000&lt;br /&gt;
|  21&lt;br /&gt;
|  No&lt;br /&gt;
|  Raw partition where the first 0x4000 bytes (usually empty) contain the [[BootConfig]] and the remaining space contains the [[Package2|package2]] image from [[Title_list#System_Data_Archives|Title 0100000000000819]] by default. With the exFAT update installed, the [[Package2|package2]] image is switched to the one from [[Title_list#System_Data_Archives|Title 010000000000081B]]. The official name for this partition is &amp;quot;BootConfigAndPackage2Part1&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  BCPKG2-2-Normal-Sub&lt;br /&gt;
|  {8455717B-BD2B-4162-8454-91695218FC38}&lt;br /&gt;
|  0x01000000&lt;br /&gt;
|  0x00800000&lt;br /&gt;
|  22&lt;br /&gt;
|  No&lt;br /&gt;
|  Backup partition for BCPKG2-1-Normal-Main. The official name for this partition is &amp;quot;BootConfigAndPackage2Part2&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  BCPKG2-3-SafeMode-Main&lt;br /&gt;
|  {8ED6C9A6-9C48-490B-BBEB-001D17A4C0F7}&lt;br /&gt;
|  0x01800000&lt;br /&gt;
|  0x00800000&lt;br /&gt;
|  23&lt;br /&gt;
|  No&lt;br /&gt;
|  Raw partition where the first 0x4000 bytes (usually empty) contain the [[BootConfig]] and the remaining space contains the [[Package2|package2]] image from [[Title_list#System_Data_Archives|Title 010000000000081A]] by default. On [4.0.0+] and with the exFAT update installed, the [[Package2|package2]] image is switched to the one from [[Title_list#System_Data_Archives|Title 010000000000081C]]. The official name for this partition is &amp;quot;BootConfigAndPackage2Part3&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  BCPKG2-4-SafeMode-Sub&lt;br /&gt;
|  {5E99751C-56C9-47CC-AA30-B65039888917}&lt;br /&gt;
|  0x02000000&lt;br /&gt;
|  0x00800000&lt;br /&gt;
|  24&lt;br /&gt;
|  No&lt;br /&gt;
|  Backup partition for BCPKG2-3-SafeMode-Main. The official name for this partition is &amp;quot;BootConfigAndPackage2Part4&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  BCPKG2-5-Repair-Main&lt;br /&gt;
|  {C447D9A2-24B7-468A-98C8-595CD077165A}&lt;br /&gt;
|  0x02800000&lt;br /&gt;
|  0x00800000&lt;br /&gt;
|  25&lt;br /&gt;
|  No&lt;br /&gt;
|  Installed at the factory, never written afterwards on retail. In one case this is identical to normal [[1.0.0]] [[Package2|package2]], except this has encrypted data at the end padded for 0x1000-byte alignment. The official name for this partition is &amp;quot;BootConfigAndPackage2Part5&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  BCPKG2-6-Repair-Sub&lt;br /&gt;
|  {9586E1A1-3AA2-4C90-91B3-2F4A5195B4D2}&lt;br /&gt;
|  0x03000000&lt;br /&gt;
|  0x00800000&lt;br /&gt;
|  26&lt;br /&gt;
|  No&lt;br /&gt;
|  Backup partition for BCPKG2-5-Repair-Main. The official name for this partition is &amp;quot;BootConfigAndPackage2Part6&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  SAFE&lt;br /&gt;
|  {A44F9F6B-4ED3-441F-A34A-56AAA136BC6A}&lt;br /&gt;
|  0x03800000&lt;br /&gt;
|  0x04000000&lt;br /&gt;
|  29&lt;br /&gt;
|  Yes (Bis key 1)&lt;br /&gt;
|  FAT32 filesystem. The official name for this partition is &amp;quot;SafeMode&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  SYSTEM&lt;br /&gt;
|  {ACB0CDF0-4F72-432D-AA0D-5388C733B224}&lt;br /&gt;
|  0x07800000 &lt;br /&gt;
|  0xA0000000&lt;br /&gt;
|  31, 32 and 33&lt;br /&gt;
|  Yes (Bis key 2)&lt;br /&gt;
|  FAT32 filesystem. The official names for these partitions are &amp;quot;System&amp;quot;, &amp;quot;SystemProperEncryption&amp;quot; and &amp;quot;SystemProperPartition&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  USER&lt;br /&gt;
|  {2B777F63-E842-47AF-94C4-25A7F18B2280}&lt;br /&gt;
|  0xA7800000&lt;br /&gt;
|  0x680000000&lt;br /&gt;
|  30&lt;br /&gt;
|  Yes (Bis key 3)&lt;br /&gt;
|  FAT32 filesystem.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 0x747BFFE00&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
|  No&lt;br /&gt;
|  This is the backup GPT header specified by the main GPT header. This is also the last sector readable with Bis-storage paritionID 20.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the client process lacks the relevant permission for any of the above partition IDs, error 0x2EE202 is returned.&lt;br /&gt;
&lt;br /&gt;
[[NCA]]s stored in NAND are raw, identical to the data readable with [[NCM_services#ReadContentIdFile]].&lt;br /&gt;
&lt;br /&gt;
The filenames for saveimages is just &amp;quot;&amp;lt;lower-case hex u64 saveID&amp;gt;&amp;quot;. SYSTEM-partition saveIDs are specified by [[Filesystem_services|FS]] commands, while USER-partition saveIDs are determined by FS-module internally. The high u32 of the saveID is normally either 0x00000000 or 0x80000000.&lt;br /&gt;
&lt;br /&gt;
Encrypted partitions use AES-XTS using the same non-standard tweak (tweak[0] = sectorIdx[MSB] .. tweak[15] = sectorIdx[LSB], if using 32bit sectorIdx that means tweak[0]..tweak[11] are 0, with tweak[12]..tweak[15] containing big-endian sectorIdx) as other Nintendo AES-XTS code, initial_sector = 0, and sector size 0x4000. All encrypted partitions use console unique keydata.&lt;br /&gt;
&lt;br /&gt;
=== PRODINFOF ===&lt;br /&gt;
 PRODINFOF&lt;br /&gt;
 ├── Certifications&lt;br /&gt;
 │   └── WirelessCertification.png&lt;br /&gt;
 └── ptd&lt;br /&gt;
     ├── DeviceIdWithEmsBit.dat&lt;br /&gt;
     ├── Ecid.dat&lt;br /&gt;
     ├── prodCode.dat&lt;br /&gt;
     └── log&lt;br /&gt;
         ├── Process_asm1.log&lt;br /&gt;
         ├── Process_board1.log&lt;br /&gt;
         ├── TestFlagLine.log&lt;br /&gt;
         ├── TestFlagQc.log&lt;br /&gt;
         ├── AGING&lt;br /&gt;
         │   └── Sequence.log&lt;br /&gt;
         ├── BOARD_TEST&lt;br /&gt;
         │   └── Sequence.log&lt;br /&gt;
         ├── BOARD_WIRELESS&lt;br /&gt;
         │   └── Sequence.log&lt;br /&gt;
         ├── FINAL_CHECK&lt;br /&gt;
         │   └── Sequence.log&lt;br /&gt;
         ├── LCD_AND_KEY&lt;br /&gt;
         │   └── Sequence.log&lt;br /&gt;
         └── USB_AND_HP&lt;br /&gt;
             └── Sequence.log&lt;br /&gt;
&lt;br /&gt;
==== DeviceIdWithEmsBit.dat ====&lt;br /&gt;
Contains a 0x10-byte uppercase hex string, identical to the DeviceId in the [[Settings_services|DeviceCert]].&lt;br /&gt;
&lt;br /&gt;
=== SYSTEM ===&lt;br /&gt;
 SYSTEM&lt;br /&gt;
 ├── PRF2SAFE.RCV&lt;br /&gt;
 ├── Contents&lt;br /&gt;
 │   ├── registered&lt;br /&gt;
 │   │   └── ... [[NCA]]&lt;br /&gt;
 │   └── placehld&lt;br /&gt;
 │       └── ... [[NCA]]&lt;br /&gt;
 ├── [[Savegames|save]]&lt;br /&gt;
 │   └── ...&lt;br /&gt;
 └── saveMeta&lt;br /&gt;
     └── ... (empty?)&lt;br /&gt;
&lt;br /&gt;
The saves stored under this partition are only for system-titles / etc.&lt;br /&gt;
&lt;br /&gt;
=== USER ===&lt;br /&gt;
 USER&lt;br /&gt;
 ├── PRF2SAFE.RCV&lt;br /&gt;
 ├── Album (Same layout as [[SD_Filesystem|SD]])&lt;br /&gt;
 ├── Contents&lt;br /&gt;
 │   ├── registered&lt;br /&gt;
 │   │   └── ... [[NCA]]&lt;br /&gt;
 │   └── placehld&lt;br /&gt;
 │       └── ... [[NCA]]&lt;br /&gt;
 ├── [[Savegames|save]]&lt;br /&gt;
 │   └── ...&lt;br /&gt;
 ├── saveMeta&lt;br /&gt;
 │   └── ... &lt;br /&gt;
 └── temp &lt;br /&gt;
&lt;br /&gt;
The saves for all non-system applications, regardless of where the application is located(storageID), is stored here. Each user account which has savedata has a separate saveimage. Save-common for an application is presumably a separate saveimage too. Every saveimage here is &#039;&#039;only&#039;&#039; for applications.&lt;br /&gt;
&lt;br /&gt;
=== SAFE ===&lt;br /&gt;
 SAFE&lt;br /&gt;
 ├── PRF2SAFE.RCV&lt;br /&gt;
 ├── Contents&lt;br /&gt;
 │   ├── registered&lt;br /&gt;
 │   │   └── ... [[NCA]] (nothing installed?)&lt;br /&gt;
 │   └── placehld&lt;br /&gt;
 │       └── ... [[NCA]]&lt;br /&gt;
 └── [[Savegames|save]]&lt;br /&gt;
     ├── 8000000000000000&lt;br /&gt;
     └── 8000000000000120&lt;br /&gt;
&lt;br /&gt;
On a v2.1 system with MountBis, the only thing under here is &amp;quot;PRF2SAFE.RCV&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= System Savegames =&lt;br /&gt;
&lt;br /&gt;
This is a listing of known System Savedata and what titles they correspond to.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! SaveID || Owner || Mount || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000000 || fs || &amp;lt;nowiki&amp;gt;saveDataIxrDb:/&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;saveDataIxrDbSf:/&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;saveDataIxrDbPr:/&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;saveDataIxrDbSd:/&amp;lt;/nowiki&amp;gt; || Contains [[IMKV|imkvdb.arc]] and &amp;quot;lastPublishedId&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000010 || account || &amp;lt;nowiki&amp;gt;account:/&amp;lt;/nowiki&amp;gt; || Account database.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000011 || account || &amp;lt;nowiki&amp;gt;idgen:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000020 || nfc || &amp;lt;nowiki&amp;gt;data:/&amp;lt;/nowiki&amp;gt; || NFC data and backups.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000030 || ns || &amp;lt;nowiki&amp;gt;mii:/&amp;lt;/nowiki&amp;gt; || Mii database.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000031 || ns || &amp;lt;nowiki&amp;gt;mii:/&amp;lt;/nowiki&amp;gt; || Mii test mode database.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000040 || ns || &amp;lt;nowiki&amp;gt;apprecdb:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000041 || ns || &amp;lt;nowiki&amp;gt;nsaccache:/&amp;lt;/nowiki&amp;gt; || Home menu icondata/lru list for recently played games.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000043 || ns || &amp;lt;nowiki&amp;gt;ns_appman:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000044 || ns || &amp;lt;nowiki&amp;gt;ns_sysup:/&amp;lt;/nowiki&amp;gt; || Content update context.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000045 || ns || &amp;lt;nowiki&amp;gt;vmdb:/&amp;lt;/nowiki&amp;gt; || Required Version List storage. Also contained Version List storage before 7.0.0.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000046 || ns || &amp;lt;nowiki&amp;gt;dtlman:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000047 || ns || &amp;lt;nowiki&amp;gt;ns_exfat:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000048 || ns || &amp;lt;nowiki&amp;gt;ns_systemseed:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000049 || ns || &amp;lt;nowiki&amp;gt;ns_ssversion:/&amp;lt;/nowiki&amp;gt; || Safe System version.&lt;br /&gt;
|-&lt;br /&gt;
| 0x800000000000004A || ns || &amp;lt;nowiki&amp;gt;ns_rightsid:/&amp;lt;/nowiki&amp;gt; || List of RightsIDs with NCA IDs for corresponding Program title.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000050 || settings || &amp;lt;nowiki&amp;gt;SystemSettings:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000051 || settings || &amp;lt;nowiki&amp;gt;FwdbgSettingsS:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000052 || settings || &amp;lt;nowiki&amp;gt;PrivateSettings:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000053 || settings || &amp;lt;nowiki&amp;gt;DeviceSettings:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000054 || settings || &amp;lt;nowiki&amp;gt;ApplnSettings:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000060 || ssl || &amp;lt;nowiki&amp;gt;SslSave:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000070 || nim || &amp;lt;nowiki&amp;gt;nim_sys:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000071 || nim || &amp;lt;nowiki&amp;gt;nim_net:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000072 || nim || &amp;lt;nowiki&amp;gt;nim_tmp:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000073 || nim || &amp;lt;nowiki&amp;gt;nim_dac:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000074 || nim || &amp;lt;nowiki&amp;gt;nim_delta:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000075 || nim || &amp;lt;nowiki&amp;gt;nim_vac:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000076 || nim || &amp;lt;nowiki&amp;gt;nim_local:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000077 || nim || &amp;lt;nowiki&amp;gt;nim_lsys:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000078 || nim || &amp;lt;nowiki&amp;gt;nim_eca_dbg:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000080 || friends || &amp;lt;nowiki&amp;gt;friends:/&amp;lt;/nowiki&amp;gt; || Per-user savedata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000081 || friends || &amp;lt;nowiki&amp;gt;friends-sys:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000082 || friends || &amp;lt;nowiki&amp;gt;friends-image:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000090 || bcat || &amp;lt;nowiki&amp;gt;news:/&amp;lt;/nowiki&amp;gt; || Actual news msgpack archives.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000091 || bcat || &amp;lt;nowiki&amp;gt;news-sys:/&amp;lt;/nowiki&amp;gt; || News metadata, tasklist, history, database, required system version, etc.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000092 || bcat || &amp;lt;nowiki&amp;gt;news-dl:/&amp;lt;/nowiki&amp;gt; || Storage for newly(?) downloaded news list/data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000A0 || bcat || &amp;lt;nowiki&amp;gt;prepo-sys:/&amp;lt;/nowiki&amp;gt; || Play Report system information.&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000A1 || bcat || &amp;lt;nowiki&amp;gt;prepo:/&amp;lt;/nowiki&amp;gt; || Play Report msgpack archives.&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000A2 || bcat || &amp;lt;nowiki&amp;gt;prepo-ap:/&amp;lt;/nowiki&amp;gt; || Play Report msgpack archives of EventId &amp;quot;application_execution_history&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000B0 || bsdsockets || &amp;lt;nowiki&amp;gt;nsdsave:/&amp;lt;/nowiki&amp;gt; || Socket configuration saved data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000C1 || bcat || &amp;lt;nowiki&amp;gt;bcat-sys:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000C2 || bcat || &amp;lt;nowiki&amp;gt;bcat-dl:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000D1 || erpt || &amp;lt;nowiki&amp;gt;save:/&amp;lt;/nowiki&amp;gt; || Contains &amp;quot;/journal&amp;quot; report listing + actual crash reports (&amp;quot;/%08x-%04x-%04x-%02x%02x-%04x%08x&amp;quot;), which are serialized via [http://msgpack.org/ MsgPack].&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000E0 || es || &amp;lt;nowiki&amp;gt;escertificate:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000E1 || es || &amp;lt;nowiki&amp;gt;escommon:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000E2 || es || &amp;lt;nowiki&amp;gt;espersonalized:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000E3 || es || &amp;lt;nowiki&amp;gt;esmetarecord:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000E4 || es || &amp;lt;nowiki&amp;gt;eselicense:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000F0 || ns || &amp;lt;nowiki&amp;gt;pdm:/&amp;lt;/nowiki&amp;gt; || Play Data log. Per-user savedata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000100 || pctl || &amp;lt;nowiki&amp;gt;pctlss:/&amp;lt;/nowiki&amp;gt; || Parental Control settings.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000110 || npns || &amp;lt;nowiki&amp;gt;npns_save:/&amp;lt;/nowiki&amp;gt; || Push notifications persistent storage.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000120 || ncm || ? || meta/[[IMKV|imkvdb.arc]] for system partition. Cache of data extracted from the [[CNMT]] for installed firmware titles (including 816).&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000121 || ncm || ? || meta/[[IMKV|imkvdb.arc]] for user partition. Cache of data extracted from the [[CNMT]] for installed game, update, and DLC titles.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000122 || || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000130 || migration || &amp;lt;nowiki&amp;gt;state:/&amp;lt;/nowiki&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000131 || migration || &amp;lt;nowiki&amp;gt;context:/&amp;lt;/nowiki&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000140 || capsrv || &amp;lt;nowiki&amp;gt;TM:/&amp;lt;/nowiki&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000150 || olsc || ? || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000153 || olsc || ? || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000180 || sdb || ? || Version list was moved here in 7.0.0 or 7.0.1&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000190 || glue || ? || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001010 || qlaunch || || Contains &amp;quot;savedata.dat&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001020 || swkbd || || Per-user savedata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001040 || miiEdit || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001050 || miiEdit || || Contains &amp;quot;database.dat&amp;quot;. Possibly Mii data and Mii texture data?&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001060 || shop || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001061 || shop || || Per-user savedata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001070 || web || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001071 || web || || Per-user savedata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001091 || loginShare || || Per-user savedata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000010B0 || playerSelect || || Contains &amp;quot;savedata.dat&amp;quot;. Per-user savedata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000010C0 || myPage || || Per-user savedata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000010003 || bcat || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000010004 || bcat || || &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=8524</id>
		<title>Error codes</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=8524"/>
		<updated>2019-12-05T20:05:59Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* Modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Structure =&lt;br /&gt;
These have been redesigned from the 3DS so that they fit within a Aarch64 MOV instruction immediate most of the time (without requiring the additional MOVK).&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Bits || Field&lt;br /&gt;
|-&lt;br /&gt;
| 8-0 || Module&lt;br /&gt;
|-&lt;br /&gt;
| 21-9 || Description&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When a fatal-error is received the error code is outputted using the following formatter:&lt;br /&gt;
  %04d-%04d&lt;br /&gt;
&lt;br /&gt;
.. where the first code is &amp;lt;code&amp;gt;2000 + Module&amp;lt;/code&amp;gt;, and the other being &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;. Bits &amp;gt;=22 from the error-code are unused when displaying fatal-errors, since the Description ends with bit21.&lt;br /&gt;
&lt;br /&gt;
= Result Errors =&lt;br /&gt;
General errors used by system modules and applications.&lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Kernel&lt;br /&gt;
|-&lt;br /&gt;
| 2 || FS&lt;br /&gt;
|-&lt;br /&gt;
| 3 || OS (Memory, Thread, Mutex, NVIDIA)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || HTCS&lt;br /&gt;
|-&lt;br /&gt;
| 5 || NCM&lt;br /&gt;
|-&lt;br /&gt;
| 6 || DD&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Debug Monitor&lt;br /&gt;
|-&lt;br /&gt;
| 8 || LR&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Loader&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CMIF (IPC command interface)&lt;br /&gt;
|-&lt;br /&gt;
| 11 || HIPC (IPC)&lt;br /&gt;
|-&lt;br /&gt;
| 15 || PM&lt;br /&gt;
|-&lt;br /&gt;
| 16 || NS&lt;br /&gt;
|-&lt;br /&gt;
| 17 || Sockets&lt;br /&gt;
|-&lt;br /&gt;
| 18 || HTC&lt;br /&gt;
|-&lt;br /&gt;
| 19 || TSC&lt;br /&gt;
|-&lt;br /&gt;
| 20 || NCM (content)&lt;br /&gt;
|-&lt;br /&gt;
| 21 || SM&lt;br /&gt;
|-&lt;br /&gt;
| 22 || RO (userland)&lt;br /&gt;
|-&lt;br /&gt;
| 23 || GC&lt;br /&gt;
|-&lt;br /&gt;
| 24 || SDMMC&lt;br /&gt;
|-&lt;br /&gt;
| 25 || OVLN&lt;br /&gt;
|-&lt;br /&gt;
| 26 || SPL&lt;br /&gt;
|-&lt;br /&gt;
| 30 || Bus&lt;br /&gt;
|-&lt;br /&gt;
| 100 || ETHC&lt;br /&gt;
|-&lt;br /&gt;
| 101 || I2C&lt;br /&gt;
|-&lt;br /&gt;
| 102 || GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 103 || UART&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Settings&lt;br /&gt;
|-&lt;br /&gt;
| 107 || WLAN&lt;br /&gt;
|-&lt;br /&gt;
| 108 || XCD&lt;br /&gt;
|-&lt;br /&gt;
| 110 || NIFM&lt;br /&gt;
|-&lt;br /&gt;
| 111 || Hwopus&lt;br /&gt;
|-&lt;br /&gt;
| 112 || Sasbus&lt;br /&gt;
|-&lt;br /&gt;
| 113 || Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
| 114 || VI&lt;br /&gt;
|-&lt;br /&gt;
| 115 || NFP&lt;br /&gt;
|-&lt;br /&gt;
| 116 || Time&lt;br /&gt;
|-&lt;br /&gt;
| 117 || FGM&lt;br /&gt;
|-&lt;br /&gt;
| 118 || OE&lt;br /&gt;
|-&lt;br /&gt;
| 120 || PCIe&lt;br /&gt;
|-&lt;br /&gt;
| 121 || Friends&lt;br /&gt;
|-&lt;br /&gt;
| 122 || BCAT&lt;br /&gt;
|-&lt;br /&gt;
| 123 || SSL&lt;br /&gt;
|-&lt;br /&gt;
| 124 || Account&lt;br /&gt;
|-&lt;br /&gt;
| 125 || News&lt;br /&gt;
|-&lt;br /&gt;
| 126 || Mii&lt;br /&gt;
|-&lt;br /&gt;
| 127 || NFC&lt;br /&gt;
|-&lt;br /&gt;
| 128 || AM&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Play Report&lt;br /&gt;
|-&lt;br /&gt;
| 130 || AHID&lt;br /&gt;
|-&lt;br /&gt;
| 132 || Home Menu (Qlaunch)&lt;br /&gt;
|-&lt;br /&gt;
| 133 || PCV&lt;br /&gt;
|-&lt;br /&gt;
| 134 || OMM&lt;br /&gt;
|-&lt;br /&gt;
| 135 || BPC&lt;br /&gt;
|-&lt;br /&gt;
| 136 || PSM&lt;br /&gt;
|-&lt;br /&gt;
| 137 || NIM&lt;br /&gt;
|-&lt;br /&gt;
| 138 || PSC&lt;br /&gt;
|-&lt;br /&gt;
| 139 || TC&lt;br /&gt;
|-&lt;br /&gt;
| 140 || USB&lt;br /&gt;
|-&lt;br /&gt;
| 141 || NSD&lt;br /&gt;
|-&lt;br /&gt;
| 142 || PCTL&lt;br /&gt;
|-&lt;br /&gt;
| 143 || BTM&lt;br /&gt;
|-&lt;br /&gt;
| 144 || LA (Library Applet)&lt;br /&gt;
|-&lt;br /&gt;
| 145 || ETicket&lt;br /&gt;
|-&lt;br /&gt;
| 146 || NGC (Bad Words)&lt;br /&gt;
|-&lt;br /&gt;
| 147 || Error Report&lt;br /&gt;
|-&lt;br /&gt;
| 148 || APM&lt;br /&gt;
|-&lt;br /&gt;
| 149 || CEC&lt;br /&gt;
|-&lt;br /&gt;
| 150 || Profiler&lt;br /&gt;
|-&lt;br /&gt;
| 151 || Error Upload&lt;br /&gt;
|-&lt;br /&gt;
| 153 || Audio&lt;br /&gt;
|-&lt;br /&gt;
| 154 || NPNS&lt;br /&gt;
|-&lt;br /&gt;
| 155 || NPNS XMPP Stream&lt;br /&gt;
|-&lt;br /&gt;
| 157 || ARP&lt;br /&gt;
|-&lt;br /&gt;
| 158 || Updater&lt;br /&gt;
|-&lt;br /&gt;
| 159 || SWKBD&lt;br /&gt;
|-&lt;br /&gt;
| 161 || Mifare&lt;br /&gt;
|-&lt;br /&gt;
| 162 || Userland (assert)&lt;br /&gt;
|-&lt;br /&gt;
| 163 || Fatal&lt;br /&gt;
|-&lt;br /&gt;
| 164 || Shop&lt;br /&gt;
|-&lt;br /&gt;
| 165 || SPSM&lt;br /&gt;
|-&lt;br /&gt;
| 167 || BGTC&lt;br /&gt;
|-&lt;br /&gt;
| 168 || Userland (crash)&lt;br /&gt;
|-&lt;br /&gt;
| 169 || Sasbus Periodic Receive Mode&lt;br /&gt;
|-&lt;br /&gt;
| 178 || PDM&lt;br /&gt;
|-&lt;br /&gt;
| 179 || OLSC&lt;br /&gt;
|-&lt;br /&gt;
| 180 || SREPO&lt;br /&gt;
|-&lt;br /&gt;
| 181 || Dauth&lt;br /&gt;
|-&lt;br /&gt;
| 187 || Sasbus&lt;br /&gt;
|-&lt;br /&gt;
| 191 || RTC&lt;br /&gt;
|-&lt;br /&gt;
| 192 || Regulator&lt;br /&gt;
|-&lt;br /&gt;
| 193 || Led&lt;br /&gt;
|-&lt;br /&gt;
| 197 || Clkrst&lt;br /&gt;
|-&lt;br /&gt;
| 202 || HID&lt;br /&gt;
|-&lt;br /&gt;
| 203 || LDN&lt;br /&gt;
|-&lt;br /&gt;
| 205 || Irsensor&lt;br /&gt;
|-&lt;br /&gt;
| 206 || Capture&lt;br /&gt;
|-&lt;br /&gt;
| 208 || Manu&lt;br /&gt;
|-&lt;br /&gt;
| 209 || ATK&lt;br /&gt;
|-&lt;br /&gt;
| 210 || Web&lt;br /&gt;
|-&lt;br /&gt;
| 211 || LCS (Local Content Sharing)&lt;br /&gt;
|-&lt;br /&gt;
| 212 || GRC&lt;br /&gt;
|-&lt;br /&gt;
| 216 || Migration&lt;br /&gt;
|-&lt;br /&gt;
| 217 || Migration Idc Server&lt;br /&gt;
|-&lt;br /&gt;
| 229 || Notification&lt;br /&gt;
|-&lt;br /&gt;
| 230 || Ins&lt;br /&gt;
|-&lt;br /&gt;
| 231 || Lp2p&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Error codes ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E01 || 1 || 7 || Session count exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C01 || 1 || 14 || Invalid kernel capability descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x4201 || 1 || 33 || Not Implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x7601 || 1 || 59 || Thread terminated/termination requested&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C01 || 1 || 70 || No more debug events&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA01 || 1 || 101 || Invalid size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC01 || 1 || 102 || Invalid address&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE01 || 1 || 103 || Resource exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD001 || 1 || 104 || Memory exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD201 || 1 || 105 || Handle-table exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 1 || 106 || Invalid memory state / invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD801 || 1 || 108 || Invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC01 || 1 || 110 || Invalid memory range&lt;br /&gt;
|-&lt;br /&gt;
| 0xE001 || 1 || 112 || Invalid thread priority.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE201 || 1 || 113 || Invalid processor id.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE401 || 1 || 114 || Invalid handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE601 || 1 || 115 || Invalid pointer/Syscall copy from user failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE801 || 1 || 116 || Invalid combination&lt;br /&gt;
|-&lt;br /&gt;
| 0xEA01 || 1 || 117 || Time out. Also when you give 0 handles to svcWaitSynchronizationN.&lt;br /&gt;
|-&lt;br /&gt;
| 0xEC01 || 1 || 118 || Operation canceled&lt;br /&gt;
|-&lt;br /&gt;
| 0xEE01 || 1 || 119 || Out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0xF001 || 1 || 120 || Invalid enum&lt;br /&gt;
|-&lt;br /&gt;
| 0xF201 || 1 || 121 || No such entry&lt;br /&gt;
|-&lt;br /&gt;
| 0xF401 || 1 || 122 || Irq/DeviceAddressSpace/{...} already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xF601 || 1 || 123 || Port remote dead&lt;br /&gt;
|-&lt;br /&gt;
| 0xF801 || 1 || 124 || [Usermode] Unhandled interrupt/exception&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA01 || 1 || 125 || Invalid state&lt;br /&gt;
|-&lt;br /&gt;
| 0xFC01 || 1 || 126 || Reserved value&lt;br /&gt;
|-&lt;br /&gt;
| 0xFE01 || 1 || 127 || Invalid hardware breakpoint&lt;br /&gt;
|-&lt;br /&gt;
| 0x10001 || 1 || 128 || [Usermode] Fatal exception&lt;br /&gt;
|-&lt;br /&gt;
| 0x10201 || 1 || 129 || Last thread didn&#039;t belong to your process&lt;br /&gt;
|-&lt;br /&gt;
| 0x10601 || 1 || 131 || Port closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x10801 || 1 || 132 || Resource limit exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x20801 || 1 || 260 || Command buffer too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x40A01 || 1 || 517 || Invalid process ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40C01 || 1 || 518 || Invalid thread ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40E01 || 1 || 519 || Invalid thread ID (used in svcGetDebugThreadParam).&lt;br /&gt;
|-&lt;br /&gt;
| 0x41001 || 1 || 520 || Process not being debugged&lt;br /&gt;
|-&lt;br /&gt;
| 0x202 || 2 || 1 || Path does not exist.&lt;br /&gt;
|-&lt;br /&gt;
| 0x402 || 2 || 2 || Path already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE02 || 2 || 7 || Resource already in use (file already opened, savedata filesystem already mounted).&lt;br /&gt;
|-&lt;br /&gt;
| 0x4602 || 2 || 35 || Not enough free space for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4802 || 2 || 36 || Not enough free space for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A02 || 2 || 37 || Not enough free space for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C02 || 2 || 38 || Not enough free space for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4E02 || 2 || 39 || Not enough free space on SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6402 || 2 || 50 || NCA is older than version 3, or NCA SDK version is older than 0.11.0.0&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 2 || 60 || Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 2 || 1001 || Process does not have RomFs &lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 2 || 1002 || Title-id not found / savedata not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA202 || 2 || 2001 || SD card not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13B002 || 2 || 2520 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13B402 || 2 || 2522 || Attempted process an AsicHandler command in initial mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x13D802 || 2 || 2540 || Attempted to read from the secure gamecard partition in normal mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x13DA02 || 2 || 2541 || Attempted to read from the normal gamecard partition in secure mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x13DC02 || 2 || 2542 || Attempted a read that spanned both the normal and secure gamecard partitions&lt;br /&gt;
|-&lt;br /&gt;
| 0x13E002 || 2 || 2544 || Gamecard initial data hash doesn&#039;t match the initial data hash in the card header&lt;br /&gt;
|-&lt;br /&gt;
| 0x13E202 || 2 || 2545 || Gamecard initial data reserved area is not all zeros&lt;br /&gt;
|-&lt;br /&gt;
| 0x13E402 || 2 || 2546 || Gamecard certificate kek index doesn&#039;t match card header kek index&lt;br /&gt;
|-&lt;br /&gt;
| 0x13EE02 || 2 || 2551 || Unable to read card header on gamecard init&lt;br /&gt;
|-&lt;br /&gt;
| 0x140A02 || 2 || 2565 || Encountered SDMMC error in write operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x145002 || 2 || 2600 || Attempted to switch lotus state machine to secure mode from a mode other than normal&lt;br /&gt;
|-&lt;br /&gt;
| 0x145202 || 2 || 2601 || Attempted to switch lotus state machine to normal mode from a mode other than initial&lt;br /&gt;
|-&lt;br /&gt;
| 0x145402 || 2 || 2602 || Attempted to switch lotus state machine to write mode from a mode other than normal&lt;br /&gt;
|-&lt;br /&gt;
| 0x149402 || 2 || 2634 || Error processing lotus command SetUserAsicFirmware&lt;br /&gt;
|-&lt;br /&gt;
| 0x149A02 || 2 || 2637 || Error processing lotus command GetAsicCert&lt;br /&gt;
|-&lt;br /&gt;
| 0x14A002 || 2 || 2640 || Error processing lotus command SetEmmcEmbeddedSocCertificate&lt;br /&gt;
|-&lt;br /&gt;
| 0x14AA02 || 2 || 2645 || Error processing lotus command GetAsicEncryptedMessage&lt;br /&gt;
|-&lt;br /&gt;
| 0x14AC02 || 2 || 2646 || Error processing lotus command SetLibraryEncryptedMessage&lt;br /&gt;
|-&lt;br /&gt;
| 0x14B602 || 2 || 2651 || Error processing lotus command GetAsicAuthenticationData&lt;br /&gt;
|-&lt;br /&gt;
| 0x14B802 || 2 || 2652 || Error processing lotus command SetAsicAuthenticationDataHash&lt;br /&gt;
|-&lt;br /&gt;
| 0x14BA02 || 2 || 2653 || Error processing lotus command SetLibraryAuthenticationData&lt;br /&gt;
|-&lt;br /&gt;
| 0x14BC02 || 2 || 2654 || Error processing lotus command GetLibraryAuthenticationDataHash&lt;br /&gt;
|-&lt;br /&gt;
| 0x14C202 || 2 || 2657 || Error processing lotus command ExchangeRandomValuesInSecureMode&lt;br /&gt;
|-&lt;br /&gt;
| 0x14D802 || 2 || 2668 || Error calling nn::gc::detail::GcCrypto::GenerateRandomBytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x14DE02 || 2 || 2671 || Error processing lotus command ReadAsicRegister&lt;br /&gt;
|-&lt;br /&gt;
| 0x14E002 || 2 || 2672 || Error processing lotus command GetGameCardIdSet&lt;br /&gt;
|-&lt;br /&gt;
| 0x14E402 || 2 || 2674 || Error processing lotus command GetCardHeader&lt;br /&gt;
|-&lt;br /&gt;
| 0x14E802 || 2 || 2676 || Error processing lotus command GetCardKeyArea&lt;br /&gt;
|-&lt;br /&gt;
| 0x14EA02 || 2 || 2677 || Error processing lotus command ChangeDebugMode&lt;br /&gt;
|-&lt;br /&gt;
| 0x14EC02 || 2 || 2678 || Error processing lotus command GetRmaInformation&lt;br /&gt;
|-&lt;br /&gt;
| 0x150802 || 2 || 2692 || Tried sending lotus card command Refresh when not in secure mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x150A02 || 2 || 2693 || Tried sending lotus card command when not in correct mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x155602 || 2 || 2731 || Error processing lotus card command ReadId1&lt;br /&gt;
|-&lt;br /&gt;
| 0x155802 || 2 || 2732 || Error processing lotus card command ReadId2&lt;br /&gt;
|-&lt;br /&gt;
| 0x155A02 || 2 || 2733 || Error processing lotus card command ReadId3&lt;br /&gt;
|-&lt;br /&gt;
| 0x155E02 || 2 || 2735 || Error processing lotus card command ReadPage&lt;br /&gt;
|-&lt;br /&gt;
| 0x156202 || 2 || 2737 || Error processing lotus card command WritePage&lt;br /&gt;
|-&lt;br /&gt;
| 0x156402 || 2 || 2738 || Error processing lotus card command Refresh&lt;br /&gt;
|-&lt;br /&gt;
| 0x156C02 || 2 || 2742 || Error processing lotus card command ReadCrc&lt;br /&gt;
|-&lt;br /&gt;
| 0x156E02 || 2 || 2743 || Error processing lotus card command Erase or UnlockForceErase&lt;br /&gt;
|-&lt;br /&gt;
| 0x157002 || 2 || 2744 || Error processing lotus card command ReadDevParam&lt;br /&gt;
|-&lt;br /&gt;
| 0x157202 || 2 || 2745 || Error processing lotus card command WriteDevParam&lt;br /&gt;
|-&lt;br /&gt;
| 0x16B002 || 2 || 2904 || Id2Normal did not match the value in the buffer returned by ChangeDebugMode&lt;br /&gt;
|-&lt;br /&gt;
| 0x16B202 || 2 || 2905 || Id1Normal did not match Id1Writer when switching gamecard to write mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x16B402 || 2 || 2906 || Id2Normal did not match Id2Writer when switching gamecard to write mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x171402 || 2 || 2954 || Invalid gamecard handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0x172002 || 2 || 2960 || Invalid gamecard handle when opening normal gamecard partition&lt;br /&gt;
|-&lt;br /&gt;
| 0x172202 || 2 || 2961 || Invalid gamecard handle when opening secure gamecard partition&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 2 || 3001 || Unimplemented behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x177602 || 2 || 3003 || File/Directory already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x190202 || 2 || 3201 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190602 || 2 || 3203 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190802 || 2 || 3204 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190A02 || 2 || 3205 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190C02 || 2 || 3206 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x191002 || 2 || 3208 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x195802 || 2 || 3244 || Allocation failure related to SD cards&lt;br /&gt;
|-&lt;br /&gt;
| 0x196002 || 2 || 3248 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x196202 || 2 || 3249 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A3E02 || 2 || 3359 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4002 || 2 || 3360 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4A02 || 2 || 3365 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x21BC02 || 2 || 4318 || Invalid save data filesystem magic (valid magic is SAVE in ASCII)&lt;br /&gt;
|-&lt;br /&gt;
| 0x234202 || 2 || 4513 || Error reading ACID section in NPDM&lt;br /&gt;
|-&lt;br /&gt;
| 0x234402 || 2 || 4514 || Invalid NPDM ACID section size&lt;br /&gt;
|-&lt;br /&gt;
| 0x234602 || 2 || 4515 || Last byte of the ACID modulus is zero&lt;br /&gt;
|-&lt;br /&gt;
| 0x234802 || 2 || 4516 || Invalid ACID fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234A02 || 2 || 4517 || Invalid NCA magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x234C02 || 2 || 4518 || Invalid NCA header fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234E02 || 2 || 4519 || Invalid NCA header ACID signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x235002 || 2 || 4520 || Invalid NCA header section hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x235202 || 2 || 4521 || Invalid NCA Key index&lt;br /&gt;
|-&lt;br /&gt;
| 0x235602 || 2 || 4523 || Invalid encryption type&lt;br /&gt;
|-&lt;br /&gt;
| 0x235802 || 2 || 4524 || Redirection BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235A02 || 2 || 4525 || Encryption BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235C02 || 2 || 4526 || Redirection BKTR table end offset is past the Encryption BKTR table start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x235E02 || 2 || 4527 || NCA-path used with the wrong titleID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x236002 || 2 || 4528 || NCA header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236202 || 2 || 4529 || NCA FS header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236802 || 2 || 4532 || PartitionFS hash block size is not a power of 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236A02 || 2 || 4533 || PartitionFS hash &amp;quot;always_2&amp;quot; field is not 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236C02 || 2 || 4534 || PartitionFS hash table is too small for main data&lt;br /&gt;
|-&lt;br /&gt;
| 0x236E02 || 2 || 4535 || Invalid PartitionFS block hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244402 || 2 || 4642 || Invalid Partition file hashed region bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x244602 || 2 || 4643 || Invalid Partition FS hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244802 || 2 || 4644 || Invalid PFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244A02 || 2 || 4645 || Invalid HFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244C02 || 2 || 4646 || Invalid name offset for Partition FS file entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x244E02 || 2 || 4647 || Calculated Partition FS header size changed between 2 consecutive reads&lt;br /&gt;
|-&lt;br /&gt;
| 0x249802 || 2 || 4684 || Invalid FAT file number.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249C02 || 2 || 4686 || Invalid FAT format for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249E02 || 2 || 4687 || Invalid FAT format for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A002 || 2 || 4688 || Invalid FAT format for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A202 || 2 || 4689 || Invalid FAT format for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x250E02 || 2 || 4743 || [[NAX0|Corrupted]] NAX0 header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x251002 || 2 || 4744 || Invalid [[NAX0]] magicnum.&lt;br /&gt;
|-&lt;br /&gt;
| 0x280202 || 2 || 5121 || Invalid FAT size&lt;br /&gt;
|-&lt;br /&gt;
| 0x280402 || 2 || 5122 || Invalid FAT BPB (BIOS Parameter Block)&lt;br /&gt;
|-&lt;br /&gt;
| 0x280602 || 2 || 5123 || Invalid FAT parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x280802 || 2 || 5124 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280A02 || 2 || 5125 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280C02 || 2 || 5126 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280E02 || 2 || 5127 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x296A02 || 2 || 5301 || Mountpoint not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 || 2 || 6001 || Invalid input&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE602 || 2 || 6003 || Path too long&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE802 || 2 || 6004 || Invalid character.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEA02 || 2 || 6005 || Invalid directory path.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEC02 || 2 || 6006 || Unable to retrieve directory from path&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 2 || 6061 || Offset outside storage&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 || 2 || 6300 || Operation not supported&lt;br /&gt;
|-&lt;br /&gt;
| 0x313A02 || 2 || 6301 || A specified filesystem has no MultiCommitTarget when doing a multi-filesystem commit&lt;br /&gt;
|-&lt;br /&gt;
| 0x313C02 || 2 || 6302 || Attempted to resize a nn::fs::SubStorage or BufferedStorage that is marked as non-resizable&lt;br /&gt;
|-&lt;br /&gt;
| 0x313E02 || 2 || 6303 || Attempted to resize a nn::fs::SubStorage or BufferedStorage when the SubStorage ends before the base storage&lt;br /&gt;
|-&lt;br /&gt;
| 0x314002 || 2 || 6304 || Attempted to call nn::fs::MemoryStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x314202 || 2 || 6305 || Invalid Operation ID in nn::fs::MemoryStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x314402 || 2 || 6306 || Invalid Operation ID in nn::fs::FileStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x314602 || 2 || 6307 || Invalid Operation ID in nn::fs::FileHandleStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x314802 || 2 || 6308 || Invalid Operation ID in nn::fssystem::SwitchStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x314A02 || 2 || 6309 || Invalid Operation ID in nn::fs::detail::StorageServiceObjectAdapter::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x314C02 || 2 || 6310 || Attempted to call nn::fssystem::AesCtrCounterExtendedStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x314E02 || 2 || 6311 || Attempted to call nn::fssystem::AesCtrCounterExtendedStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315002 || 2 || 6312 || Invalid Operation ID in nn::fssystem::AesCtrCounterExtendedStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x315202 || 2 || 6313 || Attempted to call nn::fssystem::AesCtrStorageExternal::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x315402 || 2 || 6314 || Attempted to call nn::fssystem::AesCtrStorageExternal::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315602 || 2 || 6315 || Attempted to call nn::fssystem::AesCtrStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315802 || 2 || 6316 || Attempted to call nn::fssystem::save::HierarchicalIntegrityVerificationStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315A02 || 2 || 6317 || Attempted to call nn::fssystem::save::HierarchicalIntegrityVerificationStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x315C02 || 2 || 6318 || Attempted to call nn::fssystem::save::IntegrityVerificationStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315E02 || 2 || 6319 || Attempted to invalidate the cache of a RomFs IVFC storage in nn::fssystem::save::IntegrityVerificationStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x316002 || 2 || 6320 || Invalid Operation ID in nn::fssystem::save::IntegrityVerificationStorage::OperateRange &lt;br /&gt;
|-&lt;br /&gt;
| 0x316202 || 2 || 6321 || Attempted to call nn::fssystem::save::BlockCacheBufferedStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x316402 || 2 || 6322 || Attempted to invalidate the cache of something other than a savedata IVFC storage in nn::fssystem::save::BlockCacheBufferedStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x316602 || 2 || 6323 || Invalid Operation ID in nn::fssystem::save::BlockCacheBufferedStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x316802 || 2 || 6324 || Attempted to call nn::fssystem::IndirectStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x316A02 || 2 || 6325 || Attempted to call nn::fssystem::IndirectStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x316C02 || 2 || 6326 || Invalid Operation ID in nn::fssystem::IndirectStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x316E02 || 2 || 6327 || Attempted to call nn::fssystem::SparseStorage::ZeroStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x317002 || 2 || 6328 || Attempted to call nn::fssystem::SparseStorage::ZeroStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317202 || 2 || 6329 || Attempted to call nn::fssystem::HierarchicalSha256Storage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317402 || 2 || 6330 || Attempted to call nn::fssystem::ReadOnlyBlockCacheStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x317602 || 2 || 6331 || Attempted to call nn::fssystem::ReadOnlyBlockCacheStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317802 || 2 || 6332 || Attempted to call nn::fssystem::IntegrityRomFsStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317A02 || 2 || 6333 || Attempted to call nn::fssystem::save::DuplexStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317C02 || 2 || 6334 || Invalid Operation ID in nn::fssystem::save::DuplexStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x317E02 || 2 || 6335 || Attempted to call nn::fssystem::save::HierarchicalDuplexStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318002 || 2 || 6336 || Attempted to call nn::fssystem::save::RemapStorage::GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318202 || 2 || 6337 || Attempted to call nn::fssystem::save::RemapStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318402 || 2 || 6338 || Invalid Operation ID in nn::fssystem::save::RemapStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x318602 || 2 || 6339 || Attempted to call nn::fssystem::save::IntegritySaveDataStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318802 || 2 || 6340 || Invalid Operation ID in nn::fssystem::save::IntegritySaveDataStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x318A02 || 2 || 6341 || Attempted to call nn::fssystem::save::JournalIntegritySaveDataStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318C02 || 2 || 6342 || Invalid Operation ID in nn::fssystem::save::JournalIntegritySaveDataStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x318E02 || 2 || 6343 || Attempted to call nn::fssystem::save::JournalStorage::GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x319002 || 2 || 6344 || Attempted to call nn::fssystem::save::JournalStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x319202 || 2 || 6345 || Invalid Operation ID in nn::fssystem::save::JournalStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x319402 || 2 || 6346 || Attempted to call nn::fssystem::save::UnionStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x319602 || 2 || 6347 || Attempted to call nn::fssystem::dbm::AllocationTableStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x319802 || 2 || 6348 || Attempted to call nn::fssrv::fscreator::WriteOnlyGameCardStorage::Read&lt;br /&gt;
|-&lt;br /&gt;
| 0x319A02 || 2 || 6349 || Attempted to call nn::fssrv::fscreator::WriteOnlyGameCardStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x319C02 || 2 || 6350 || Attempted to call nn::fssrv::fscreator::ReadOnlyGameCardStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x319E02 || 2 || 6351 || Attempted to call nn::fssrv::fscreator::ReadOnlyGameCardStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x31A002 || 2 || 6352 || Invalid Operation ID in nn::fssrv::fscreator::ReadOnlyGameCardStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31A202 || 2 || 6353 || Attempted to call SdStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x31A402 || 2 || 6354 || Invalid Operation ID in SdStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31A602 || 2 || 6355 || Invalid Operation ID in nn::fat::FatFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31A802 || 2 || 6356 || Invalid Operation ID in nn::fssystem::StorageFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31AA02 || 2 || 6357 || Attempted to call nn::fssystem::ConcatenationFile::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x31AC02 || 2 || 6358 || Attempted to call nn::fssystem::ConcatenationFile::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31AE02 || 2 || 6359 || Invalid Query ID in nn::fssystem::ConcatenationFileSystem::DoQueryEntry&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B002 || 2 || 6360 || Invalid Operation ID in nn::fssystem::ConcatenationFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B202 || 2 || 6361 || Attempted to call nn::fssystem::ZeroBitmapFile::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B402 || 2 || 6362 || Invalid Operation ID in nn::fs::detail::FileServiceObjectAdapter::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B602 || 2 || 6363 || Invalid Operation ID in nn::fssystem::AesXtsFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B802 || 2 || 6364 || Attempted to modify a nn::fs::RomFsFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0x31BA02 || 2 || 6365 || Attempted to call nn::fs::RomFsFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31BC02 || 2 || 6366 || Attempted to query the space in a nn::fs::RomFsFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0x31BE02 || 2 || 6367 || Attempted to modify a nn::fssystem::RomFsFile&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C002 || 2 || 6368 || Invalid Operation ID in nn::fssystem::RomFsFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C202 || 2 || 6369 || Attempted to modify a nn::fs::ReadOnlyFileSystemTemplate&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C402 || 2 || 6370 || Attempted to call nn::fs::ReadOnlyFileSystemTemplate::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C602 || 2 || 6371 || Attempted to query the space in a nn::fs::ReadOnlyFileSystemTemplate&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C802 || 2 || 6372 || Attempted to modify a nn::fs::ReadOnlyFileSystemFile&lt;br /&gt;
|-&lt;br /&gt;
| 0x31CA02 || 2 || 6373 || Invalid Operation ID in nn::fs::ReadOnlyFileSystemFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31CC02 || 2 || 6374 || Attempted to modify a nn::fssystem::PartitionFileSystemCore&lt;br /&gt;
|-&lt;br /&gt;
| 0x31CE02 || 2 || 6375 || Attempted to call nn::fssystem::PartitionFileSystemCore::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31D002 || 2 || 6376 || Attempted to call nn::fssystem::PartitionFileSystemCore::PartitionFile::DoSetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x31D202 || 2 || 6377 || Invalid Operation ID in nn::fssystem::PartitionFileSystemCore::PartitionFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31D402 || 2 || 6378 || Invalid Operation ID in nn::fssystem::TmFileSystemFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31D602 || 2 || 6379 || Attempted to call unsupported functions in nn::fssrv::fscreator::SaveDataInternalStorageFileSystem, nn::fssrv::detail::SaveDataInternalStorageAccessor::PaddingFile or nn::fssystem::save::detail::SaveDataExtraDataInternalStorageFile&lt;br /&gt;
|-&lt;br /&gt;
| 0x31DC02 || 2 || 6382 || Attempted to call nn::fssystem::ApplicationTemporaryFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31DE02 || 2 || 6383 || Attempted to call nn::fssystem::SaveDataFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31E002 || 2 || 6384 || Attempted to call nn::fssystem::DirectorySaveDataFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31E202 || 2 || 6385 || Attempted to call nn::fssystem::ZeroBitmapHashStorageFile::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x31E402 || 2 || 6386 || Attempted to call nn::fssystem::ZeroBitmapHashStorageFile::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 || 2 || 6400 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x326602 || 2 || 6451 || Missing titlekey(?) required to mount content&lt;br /&gt;
|-&lt;br /&gt;
| 0x326E02 || 2 || 6455 || File not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327002 || 2 || 6456 || Directory not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327202 || 2 || 6457 || Writable file not closed when committing&lt;br /&gt;
|-&lt;br /&gt;
| 0x327402 || 2 || 6458 || FS allocators already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x327602 || 2 || 6459 || FS allocators already used&lt;br /&gt;
|-&lt;br /&gt;
| 0x327A02 || 2 || 6461 || FS allocator alignment violation&lt;br /&gt;
|-&lt;br /&gt;
| 0x339402 || 2 || 6602 || File not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x339602 || 2 || 6603 || Directory not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346C02 || 2 || 6710 || Multi-commit limit reached&lt;br /&gt;
|-&lt;br /&gt;
| 0x35F202 || 2 || 6905 || Mount name not found in table.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBC02 || 2 || 7902 || RomFs table: Entry not found in dictionary&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBE02 || 2 || 7903 || RomFs table: File not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC002 || 2 || 7904 || RomFs table: Directory not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC402 || 2 || 7906 || RomFs table: Entry already exists when trying to add a new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC602 || 2 || 7907 || RomFs table: Insufficient space to add new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC802 || 2 || 7908 || RomFs table: Unable to add new directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCA02 || 2 || 7909 || RomFs table: Unable to add new file&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCC02 || 2 || 7910 || RomFs directory has no more child directories/files when iterating&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DD402 || 2 || 7914 || RomFs table: Path is file, not directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x803 || 3 || 4 || OS busy&lt;br /&gt;
|-&lt;br /&gt;
| 0xE03 || 3 || 7 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x1003 || 3 || 8 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1203 || 3 || 9 || Out of resources&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EA03 || 3 || 501 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE03 || 3 || 503 || Invalid memory mirror&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FE03 || 3 || 1023 || TLS slot is not allocated&lt;br /&gt;
|-&lt;br /&gt;
| 0xA05 || 5 || 5 || [[Content_Manager_services|NcaID]] not found. Returned when attempting to mount titles which exist that aren&#039;t *8XX titles, the same way *8XX titles are mounted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE05 || 5 || 7 || TitleId not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1805 || 5 || 12 || Invalid StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC05 || 5 || 110 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x17C05 || 5 || 190 || Gamecard not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F405 || 5 || 250 || Sdcard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x20805 || 5 || 260 || Storage not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0x806 || 6 || 4 || Converted from error 0xD401&lt;br /&gt;
|-&lt;br /&gt;
| 0x1006 || 6 || 8 || Converted from error 0xE401&lt;br /&gt;
|-&lt;br /&gt;
| 0x408 || 8 || 2 || Program location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x608 || 8 || 3 || Invalid context for control location&lt;br /&gt;
|-&lt;br /&gt;
| 0x808 || 8 || 4 || Storage not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA08 || 8 || 5 || Access denied&lt;br /&gt;
|-&lt;br /&gt;
| 0xC08 || 8 || 6 || Offline manual HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xE08 || 8 || 7 || Title is not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1008 || 8 || 8 || Control location entry for host not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1208 || 8 || 9 || Legal info HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1408 || 8 || 10 || Program location for debug entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x209 || 9 || 1 || Args too long.&lt;br /&gt;
|-&lt;br /&gt;
| 0x409 || 9 || 2 || Maximum processes loaded.&lt;br /&gt;
|-&lt;br /&gt;
| 0x609 || 9 || 3 || NPDM too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x809 || 9 || 4 || Invalid NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0xA09 || 9 || 5 || Invalid NSO.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC09 || 9 || 6 || Invalid Path.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE09 || 9 || 7 || Already registered.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1009 || 9 || 8 || Title not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1209 || 9 || 9 || Title-id in ACI0 doesn&#039;t match range in ACID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1409 || 9 || 10 || Invalid version in NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6609 || 9 || 51 || Insufficient address space.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6809 || 9 || 52 || Insufficient NRO.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A09 || 9 || 53 || Invalid NRR&lt;br /&gt;
|-&lt;br /&gt;
| 0x6C09 || 9 || 54 || Invalid signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x6E09 || 9 || 55 || Insufficient NRO registrations.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7009 || 9 || 56 || Insufficient NRR registrations.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7209 || 9 || 57 || NRO Already loaded.&lt;br /&gt;
|-&lt;br /&gt;
| 0xA209 || 9 || 81 || Unaligned NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xA409 || 9 || 82 || Bad NRR size&lt;br /&gt;
|-&lt;br /&gt;
| 0xA809 || 9 || 84 || NRR Not Loaded.&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA09 || 9 || 85 || Bad NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xAE09 || 9 || 87 || Bad initialization&lt;br /&gt;
|-&lt;br /&gt;
| 0xC809 || 9 || 100 || Unknown ACI0 descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE09 || 9 || 103 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD009 || 9 || 104 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;SyscallMask&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD409 || 9 || 106 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapIoOrNormalRange&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD609 || 9 || 107 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapNormalPage&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xDE09 || 9 || 111 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;InterruptPair&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE209 || 9 || 113 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;ApplicationType&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE409 || 9 || 114 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelReleaseVersion&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE609 || 9 || 115 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;HandleTableSize&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE809 || 9 || 116 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;DebugFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x1940A || 10 || 202 || Invalid CMIF header size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A60A || 10 || 211 || Invalid CMIF input header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A80A || 10 || 212 || Invalid CMIF output header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA0A || 10 || 221 || Invalid method dispatch ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D60A || 10 || 235 || Invalid in object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D80A || 10 || 236 || Invalid out object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0A || 10 || 301 || Out of domain entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20B || 11 || 1 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC0B || 11 || 102 || Out of server session memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x11A0B || 11 || 141 || Went past maximum during marshalling.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1900B || 11 || 200 || Session doesn&#039;t support domains.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0B || 11 || 301 || Remote process is dead.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3260B || 11 || 403 || Unknown request type&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D60B || 11 || 491 || IPC Query 1 failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20F || 15 || 1 || Pid not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x60F || 15 || 3 || Process has no pending events&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0F || 15 || 5 || Application already running&lt;br /&gt;
|-&lt;br /&gt;
| 0x410 || 16 || 2 || Title-id not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xF010 || 16 || 120 || Sysupdate not required&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F610 || 16 || 251 || Unexpected StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0x64210 || 16 || 801 || [[NS_Services#SystemDeliveryInfo|SystemDeliveryInfo]] system_delivery_protocol_version is less than the system-setting.&lt;br /&gt;
|-&lt;br /&gt;
| 0x64410 || 16 || 802 || [[NS_Services#SystemDeliveryInfo|SystemDeliveryInfo]] system_delivery_protocol_version is larger than the system-setting.&lt;br /&gt;
|-&lt;br /&gt;
| 0x74610 || 16 || 931 || Invalid [[NS_Services#SystemDeliveryInfo|SystemDeliveryInfo]] HMAC / invalid Meta Id.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6F810 || 16 || 892 || Unknown state ref-count is zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x215 || 21 || 1 || Out of processes&lt;br /&gt;
|-&lt;br /&gt;
| 0x415 || 21 || 2 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x615 || 21 || 3 || Max sessions&lt;br /&gt;
|-&lt;br /&gt;
| 0x815 || 21 || 4 || Service already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xA15 || 21 || 5 || Out of services&lt;br /&gt;
|-&lt;br /&gt;
| 0xC15 || 21 || 6 || Invalid name (all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0xE15 || 21 || 7 || Service not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1015 || 21 || 8 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x1215 || 21 || 9 || Service Access Control too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x416 || 22 || 2 || Address space is full&lt;br /&gt;
|-&lt;br /&gt;
| 0x616 || 22 || 3 || NRO already loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x816 || 22 || 4 || Invalid NRO header values&lt;br /&gt;
|-&lt;br /&gt;
| 0xC16 || 22 || 6 || Bad NRR magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x1016 || 22 || 8 || Reached max NRR count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1216 || 22 || 9 || Unable to verify NRO hash or NRR signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x80216 || 22 || 1025 || Address not page-aligned&lt;br /&gt;
|-&lt;br /&gt;
| 0x80416 || 22 || 1026 || Incorrect NRO size&lt;br /&gt;
|-&lt;br /&gt;
| 0x80816 || 22 || 1028 || NRO not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80A16 || 22 || 1029 || NRR not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80C16 || 22 || 1030 || Already initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E16 || 22 || 1031 || Not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x21A || 26 || 1 || SMC is not implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x41A || 26 || 2 || SMC argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A || 26 || 3 || SMC is currently in progress/secmon is busy&lt;br /&gt;
|-&lt;br /&gt;
| 0x81A || 26 || 4 || Secmon not currently performing async operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xA1A || 26 || 5 || Invalid SMC async callback key&lt;br /&gt;
|-&lt;br /&gt;
| 0xC1A || 26 || 6 || SMC is blacklisted during current boot&lt;br /&gt;
|-&lt;br /&gt;
| 0xC81A || 26 || 100 || Invalid (buffer) size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Unknown SMC error&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Decryption failure&lt;br /&gt;
|-&lt;br /&gt;
| 0xD01A || 26 || 104 || No AES keyslots available&lt;br /&gt;
|-&lt;br /&gt;
| 0xD21A || 26 || 105 || Invalid AES keyslot&lt;br /&gt;
|-&lt;br /&gt;
| 0xD41A || 26 || 106 || BootReason already set&lt;br /&gt;
|-&lt;br /&gt;
| 0xD61A || 26 || 107 || BootReason not set&lt;br /&gt;
|-&lt;br /&gt;
| 0xD81A || 26 || 108 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x35B || 347 || 1 || Failed to init SM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x55B || 347 || 2 || Failed to init FS.&lt;br /&gt;
|-&lt;br /&gt;
| 0x75B || 347 || 3 || Failed to open NRO file. May also happen when SD card isn&#039;t inserted / SD mounting failed earlier.&lt;br /&gt;
|-&lt;br /&gt;
| 0x95B || 347 || 4 || Failed to read NRO header.&lt;br /&gt;
|-&lt;br /&gt;
| 0xB5B || 347 || 5 || Invalid NRO magic.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD5B || 347 || 6 || Invalid NRO segments.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF5B || 347 || 7 || Failed to read NRO.&lt;br /&gt;
|-&lt;br /&gt;
| 0x135B || 347 || 9 || Failed to allocate heap.&lt;br /&gt;
|-&lt;br /&gt;
| 0x255B || 347 || 18 || Failed to map code-binary memory.&lt;br /&gt;
|-&lt;br /&gt;
| 0x275B || 347 || 19 || Failed to map code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x295B || 347 || 20 || Failed to map code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B5B || 347 || 21 || Failed to map code memory (.data+.bss).&lt;br /&gt;
|-&lt;br /&gt;
| 0x315B || 347 || 24 || Failed to unmap code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x335B || 347 || 25 || Failed to unmap code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x355B || 347 || 26 || Failed to unmap code memory (.data+.bss).&lt;br /&gt;
|-&lt;br /&gt;
| 0x19269 || 105 || 201 || Null settings name&lt;br /&gt;
|-&lt;br /&gt;
| 0x19469 || 105 || 202 || Null settings key&lt;br /&gt;
|-&lt;br /&gt;
| 0x19669 || 105 || 203 || Null settings value&lt;br /&gt;
|-&lt;br /&gt;
| 0x19A69 || 105 || 205 || Null settings value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A069 || 105 || 208 || Null setting value size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A269 || 105 || 209 || Null debug mode flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA69 || 105 || 221 || Setting group name has zero length&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BC69 || 105 || 222 || Empty settings item key&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E269 || 105 || 241 || Setting group name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E469 || 105 || 242 || Setting name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x20A69 || 105 || 261 || Setting group name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x20C69 || 105 || 262 || Setting name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x4DA69 || 105 || 621 || Null language code buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4EE69 || 105 || 631 || Null network settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4F069 || 105 || 632 || Null network settings output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x50269 || 105 || 641 || Null backlight settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51669 || 105 || 651 || Null Bluetooth device setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51869 || 105 || 652 || Null Bluetooth device setting output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51A69 || 105 || 653 || Null Bluetooth enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51C69 || 105 || 654 || Null Bluetooth AFH enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51E69 || 105 || 655 || Null Bluetooth boost enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52069 || 105 || 656 || Null BLE pairing settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52269 || 105 || 657 || Null BLE pairing settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52A69 || 105 || 661 || Null external steady clock source ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52C69 || 105 || 662 || Null user system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52E69 || 105 || 663 || Null network system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53069 || 105 || 664 || Null user system clock automatic correction enabled flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53269 || 105 || 665 || Null shutdown RTC value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53469 || 105 || 666 || Null external steady clock internal offset buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53E69 || 105 || 671 || Null account settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55269 || 105 || 681 || Null audio volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55669 || 105 || 683 || Null ForceMuteOnHeadphoneRemoved buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55869 || 105 || 684 || Null headphone volume warning count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55E69 || 105 || 687 || Invalid audio output mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x56069 || 105 || 688 || Null headphone volume update flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x56669 || 105 || 691 || Null console information upload flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57A69 || 105 || 701 || Null automatic application download flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57C69 || 105 || 702 || Null notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57E69 || 105 || 703 || Null account notification settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58069 || 105 || 704 || Null account notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58E69 || 105 || 711 || Null vibration master volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59069 || 105 || 712 || Null NX controller settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59269 || 105 || 713 || Null NX controller settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59469 || 105 || 714 || Null USB full key enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A269 || 105 || 721 || Null TV settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A469 || 105 || 722 || Null EDID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5B669 || 105 || 731 || Null data deletion settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CA69 || 105 || 741 || Null initial system applet program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CC69 || 105 || 742 || Null overlay disp program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CE69 || 105 || 743 || Null IsInRepairProcess buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5D069 || 105 || 744 || Null RequiresRunRepairTimeReviser buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5DE69 || 105 || 751 || Null device timezone location name buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5F269 || 105 || 761 || Null primary album storage buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60669 || 105 || 771 || Null USB 3.0 enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60869 || 105 || 772 || Null USB Type-C power source circuit version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A69 || 105 || 781 || Null battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x62E69 || 105 || 791 || Null serial number buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64269 || 105 || 801 || Null lock screen flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64669 || 105 || 803 || Null color set ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64869 || 105 || 804 || Null quest flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64A69 || 105 || 805 || Null wireless certification file size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64C69 || 105 || 806 || Null wireless certification file buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64E69 || 105 || 807 || Null initial launch settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65069 || 105 || 808 || Null device nickname buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65269 || 105 || 809 || Null battery percentage flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65469 || 105 || 810 || Null applet launch flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7E869 || 105 || 1012 || Null wireless LAN enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FA69 || 105 || 1021 || Null product model buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E69 || 105 || 1031 || Null NFC enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82269 || 105 || 1041 || Null ECI device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82469 || 105 || 1042 || Null E-Ticket device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x83669 || 105 || 1051 || Null sleep settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84A69 || 105 || 1061 || Null EULA version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84C69 || 105 || 1062 || Null EULA version entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x85E69 || 105 || 1071 || Null LDN channel buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87269 || 105 || 1081 || Null SSL key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87469 || 105 || 1082 || Null SSL certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x88669 || 105 || 1091 || Null telemetry flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89A69 || 105 || 1101 || Null Gamecard key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89C69 || 105 || 1102 || Null Gamecard certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8AE69 || 105 || 1111 || Null PTM battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B069 || 105 || 1112 || Null PTM fuel gauge parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C269 || 105 || 1121 || Null ECI device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C469 || 105 || 1122 || Null E-Ticket device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D669 || 105 || 1131 || Null speaker parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EA69 || 105 || 1141 || Null firmware version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EC69 || 105 || 1142 || Null firmware version digest buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EE69 || 105 || 1143 || Null rebootless system update version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8FE69 || 105 || 1151 || Null Mii author ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x91269 || 105 || 1161 || Null fatal flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x92669 || 105 || 1171 || Null auto update enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x93A69 || 105 || 1181 || Null external RTC reset flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x94E69 || 105 || 1191 || Null push notification activity mode buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x96269 || 105 || 1201 || Null service discovery control setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x97669 || 105 || 1211 || Null error report share permission buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x98A69 || 105 || 1221 || Null LCD vendor ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x99E69 || 105 || 1231 || Null console SixAxis sensor acceleration bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A069 || 105 || 1232 || Null console SixAxis sensor angular velocity bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A269 || 105 || 1233 || Null console SixAxis sensor acceleration gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A469 || 105 || 1234 || Null console SixAxis sensor angular velocity gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A669 || 105 || 1235 || Null console SixAxis sensor angular velocity time bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A869 || 105 || 1236 || Null console SixAxis sensor angular acceleration buffer &lt;br /&gt;
|-&lt;br /&gt;
| 0x9B269 || 105 || 1241 || Null keyboard layout buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9BA69 || 105 || 1245 || Invalid keyboard layout&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C669 || 105 || 1251 || Null web inspector flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C869 || 105 || 1252 || Null allowed SSL hosts buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CA69 || 105 || 1253 || Null allowed SSL hosts entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CC69 || 105 || 1254 || Null host FS mount point buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9EE69 || 105 || 1271 || Null Amiibo key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F069 || 105 || 1272 || Null Amiibo ECQV certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F269 || 105 || 1273 || Null Amiibo ECDSA certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F469 || 105 || 1274 || Null Amiibo ECQV BLS key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F669 || 105 || 1275 || Null Amiibo ECQV BLS certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F869 || 105 || 1276 || Null Amiibo ECQV BLS root certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x272 || 114 || 1 || Generic error&lt;br /&gt;
|-&lt;br /&gt;
| 0xC72 || 114 || 6 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || 116 || 0 || Time service not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x274 || 116 || 1 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC74 || 116 || 102 || Time not set / Clock Source Id mismatch&lt;br /&gt;
|-&lt;br /&gt;
| 0x19074 || 116 || 200 || Invalid time comparison&lt;br /&gt;
|-&lt;br /&gt;
| 0x19274 || 116 || 201 || Signed overflow/underflow&lt;br /&gt;
|-&lt;br /&gt;
| 0x64274 || 116 || 801 || Memory allocation failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x70A74 || 116 || 901 || Null pointer&lt;br /&gt;
|-&lt;br /&gt;
| 0x70C74 || 116 || 902 || Value out of valid range&lt;br /&gt;
|-&lt;br /&gt;
| 0x70E74 || 116 || 903 || TimeZoneRule conversion failed&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BA74 || 116 || 989 || TimeZone location name not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BC74 || 116 || 990 || Unimplemented functionality&lt;br /&gt;
|-&lt;br /&gt;
| 0x27A || 122 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x47A || 122 || 2 || Object not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x67A || 122 || 3 || Object locked/in used&lt;br /&gt;
|-&lt;br /&gt;
| 0x87A || 122 || 4 || Target already mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0xA7A || 122 || 5 || Target not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0xC7A || 122 || 6 || Object already opened&lt;br /&gt;
|-&lt;br /&gt;
| 0xE7A || 122 || 7 || Object not opened&lt;br /&gt;
|-&lt;br /&gt;
| 0xA07A || 122 || 80 || Passphrase not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA27A || 122 || 81 || Data verification failed&lt;br /&gt;
|-&lt;br /&gt;
| 0xB47A || 122 || 90 || Invalid API call&lt;br /&gt;
|-&lt;br /&gt;
| 0xC47A || 122 || 98 || Invalid operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x287C || 124 || 20 || Argument is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C7C || 124 || 22 || Argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C7C || 124 || 30 || Bad input buffer size&lt;br /&gt;
|-&lt;br /&gt;
| 0x407C || 124 || 32 || Invalid input buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x27E || 126 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x87E || 126 || 4 || Entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE7E || 126 || 67 || Invalid database signature value (should be &amp;quot;NFDB&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0xD27E || 126 || 69 || Invalid database entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1987E || 126 || 204 || Development/debug-only behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x480 || 128 || 2 || IStorage not available.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4680 || 128 || 35 || Error while launching applet.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A80 || 128 || 37 || Title-ID not found. Caused by code 0x410 when applet launch fails&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E880 || 128 || 500 || Invalid input&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EC80 || 128 || 502 || IStorage has already been opened by another accessor&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE80 || 128 || 503 || IStorage Read/Write out-of-bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x3FE80 || 128 || 511 || IStorage opened as wrong type (data opened as transfermem, transfermem opened as data)&lt;br /&gt;
|-&lt;br /&gt;
| 0x40080 || 128 || 512 || Unbalanced fatal section leave (returned when executing LeaveFatalSection without a preceding EnterFatalSection call)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B080 || 128 || 600 || Failed to allocate memory for IStorage&lt;br /&gt;
|-&lt;br /&gt;
| 0x59080 || 128 || 712 || Thread stack pool exhausted (out of memory)&lt;br /&gt;
|-&lt;br /&gt;
| 0x79C80 || 128 || 974 || DebugMode not enabled&lt;br /&gt;
|-&lt;br /&gt;
| 0x7A880 || 128 || 980 || &amp;lt;code&amp;gt;am.debug!dev_function&amp;lt;/code&amp;gt; setting needs to be set / DebugMode not enabled&lt;br /&gt;
|-&lt;br /&gt;
| 0x7CC80 || 128 || 998 || Not implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC81 || 129 || 102 || Transmission not agreed&lt;br /&gt;
|-&lt;br /&gt;
| 0xD281 || 129 || 105 || Network unavailable&lt;br /&gt;
|-&lt;br /&gt;
| 0x7DA81 || 129 || 1005 || HTTP error: Couldnt resolve proxy&lt;br /&gt;
|-&lt;br /&gt;
| 0x7DC81 || 129 || 1006 || HTTP error: Couldnt resolve host&lt;br /&gt;
|-&lt;br /&gt;
| 0x7DE81 || 129 || 1007 || HTTP error: Couldnt connect&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FE81 || 129 || 1023 || HTTP error: Write error&lt;br /&gt;
|-&lt;br /&gt;
| 0x80481 || 129 || 1026 || HTTP error: Read error&lt;br /&gt;
|-&lt;br /&gt;
| 0x80681 || 129 || 1027 || HTTP error: Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x80881 || 129 || 1028 || HTTP error: Operation timedout&lt;br /&gt;
|-&lt;br /&gt;
| 0x81681 || 129 || 1035 || HTTP error: SSL connect error&lt;br /&gt;
|-&lt;br /&gt;
| 0x83681 || 129 || 1051 || HTTP error: Peer failed verification&lt;br /&gt;
|-&lt;br /&gt;
| 0x83881 || 129 || 1052 || HTTP error: Got nothing&lt;br /&gt;
|-&lt;br /&gt;
| 0x83E81 || 129 || 1055 || HTTP error: Send error&lt;br /&gt;
|-&lt;br /&gt;
| 0x84081 || 129 || 1056 || HTTP error: Recv error&lt;br /&gt;
|-&lt;br /&gt;
| 0x84481 || 129 || 1058 || HTTP error: SSL cert problem&lt;br /&gt;
|-&lt;br /&gt;
| 0x84681 || 129 || 1059 || HTTP error: SSL cipher&lt;br /&gt;
|-&lt;br /&gt;
| 0x84881 || 129 || 1060 || HTTP error: SSL CA cert&lt;br /&gt;
|-&lt;br /&gt;
| 0x12C081 || 129 || 2400 || Server error: Status 400&lt;br /&gt;
|-&lt;br /&gt;
| 0x12C281 || 129 || 2401 || Server error: Status 401&lt;br /&gt;
|-&lt;br /&gt;
| 0x12C681 || 129 || 2403 || Server error: Status 403&lt;br /&gt;
|-&lt;br /&gt;
| 0x138881 || 129 || 2500 || Server error: Status 500&lt;br /&gt;
|-&lt;br /&gt;
| 0x138E81 || 129 || 2503 || Server error: Status 503&lt;br /&gt;
|-&lt;br /&gt;
| 0x139081 || 129 || 2504 || Server error: Status 504&lt;br /&gt;
|-&lt;br /&gt;
| 0xA83 || 131 || 5 || Unrecognized applet ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x485 || 133 || 2 || Invalid DVFS table ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x885 || 133 || 4 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x1489 || 137 || 10 || Already initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C89 || 137 || 30 || Task not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x5089 || 137  || 40 || Memory allocation failed / bad input.&lt;br /&gt;
|-&lt;br /&gt;
| 0x29489 || 137 || 330 || [[NCM_services#ContentMetaType|ContentMetaType]] doesn&#039;t match SystemUpdate.&lt;br /&gt;
|-&lt;br /&gt;
| 0x271289 || 137 || 5001 || One of the following socket errors occurred: ENETDOWN, ECONNRESET, EHOSTDOWN, EHOSTUNREACH, or EPIPE. Also occurs when the received size doesn&#039;t match the expected size (recvfrom() ret with [[NIM_services#Contents_Delivery|meta_size]] data receiving).&lt;br /&gt;
|-&lt;br /&gt;
| 0x272489 || 137 || 5010 || Socket was [[Sockets_services|shutdown()]] due to the async operation being cancelled.&lt;br /&gt;
|-&lt;br /&gt;
| 0x273889 || 137 || 5020 || Too many internal output entries with [[NIM_services|nim]] cmd42, system is [[NIM_services#Contents_Delivery|Internet-connected]], or an unrecognized socket error occured.&lt;br /&gt;
|-&lt;br /&gt;
| 0x27D889 || 137 || 5100 || Connection timeout.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A4489 || 137 || 5410 || Invalid [[NIM_services#Contents_Delivery|ID]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A5889 || 137 || 5420 || Invalid [[NIM_services#Contents_Delivery|magicnum]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A6C89 || 137 || 5430 || Invalid [[NIM_services#Contents_Delivery|data_size]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A8089 || 137 || 5440 || The input [[NCM_services#ContentMetaKey|ContentMetaKey]] doesn&#039;t match the ContentMetaKey in state.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A9489 || 137 || 5450 || Invalid [[NIM_services#Contents_Delivery|meta_size]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x3CF089 || 137 || 7800 || Unknown/invalid libcurl error.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E8289-0x3F4089 || 137 || 8001-8096 || libcurl error 1-96. Some of the libcurl errors in the error-table map to the above unknown-libcurl-error however.&lt;br /&gt;
|-&lt;br /&gt;
| 0x68A || 138 || 3 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x668C || 140 || 51 || USB data-transfer in progress&lt;br /&gt;
|-&lt;br /&gt;
| 0xD48C || 140 || 106 || Invalid descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x1928C || 140 || 201 || USB device not bound / interface already enabled&lt;br /&gt;
|-&lt;br /&gt;
| 0x290 || 144 || 1 || Exited Abnormally ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Abormal)&lt;br /&gt;
|-&lt;br /&gt;
| 0x690 || 144 || 3 || Canceled ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Canceled)&lt;br /&gt;
|-&lt;br /&gt;
| 0x890 || 144 || 4 || Rejected&lt;br /&gt;
|-&lt;br /&gt;
| 0xA90 || 144 || 5 || Exited Unexpectedly ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Unexpected)&lt;br /&gt;
|-&lt;br /&gt;
| 0x299 || 153 || 1 || Invalid audio device&lt;br /&gt;
|-&lt;br /&gt;
| 0x499 || 153 || 2 || Operation couldn&#039;t complete successfully&lt;br /&gt;
|-&lt;br /&gt;
| 0x699 || 153 || 3 || Invalid sample rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x899 || 153 || 4 || Buffer size too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x1099 || 153 || 8 || Too many buffers are still unreleased&lt;br /&gt;
|-&lt;br /&gt;
| 0x1499 || 153 || 10 || Invalid channel count&lt;br /&gt;
|-&lt;br /&gt;
| 0x40299 || 153 || 513 || Invalid/Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0099 || 153 || 1536 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0899 || 153 || 1540 || Audio output was already started&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C9D || 157 || 30 || Address is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E9D || 157 || 31 || PID is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x549D || 157 || 42 || Already bound&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC9D || 157 || 102 || Invalid PID&lt;br /&gt;
|-&lt;br /&gt;
| 0x49E || 158 || 2 || Unable to retrieve BootImagePackage from ContentMetaDatabase&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA3 || 163 ||  5 || System is booting up repair process without VOL+ held down.&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA3 || 163 || 6 || System is booting up repair process that requires RepairTimeReviser but does not have special cartridge inserted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8B2 || 178 || 100 || Invalid user ID&lt;br /&gt;
|-&lt;br /&gt;
| 0xCAB2 || 178 || 101 || User does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 0x12CB2 || 178 || 150 || Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| 0x190B2 || 178 || 200 || File storage failure&lt;br /&gt;
|-&lt;br /&gt;
| 0xAB4 || 180 || 5 || Invalid event ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4EB5 || 181 || 4007 || Device authentication error: System update required&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F50B5 || 181 || 4008 || Device authentication error: Banned&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F52B5 || 181 || 4009 || Device authentication error: Internal server error&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F54B5 || 181 || 4007 || Device authentication error: Under maintenance&lt;br /&gt;
|-&lt;br /&gt;
| 0x58ACA || 202 || 709 || Npad ID is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF0CD || 205 || 120 || IR image data not available/ready.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A8CD || 205 || 212 || IR camera handle pointer is null.&lt;br /&gt;
|-&lt;br /&gt;
| 0x198CD || 205 || 204 || IR camera invalid handle value.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== FS Error codes ===&lt;br /&gt;
The following are the error codes recognized by nn::fs::detail::LogErrorMessage found in some [[Factory Setup|factory]] titles:&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Description || Message&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 106 || nn::svc::ResultInvalidCurrentMemory: Error: Passed buffer is not usable for fs library. See a manual of fs library for more information.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 60 || nn::fs::ResultMountNameAlreadyExists: Error: Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 1001 || nn::fs::ResultPartitionNotFound: Error: Specified partition is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 1002 || nn::fs::ResultTargetNotFound: Error: Specified target is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA002 - 0x138602 || 2000 - 2499 || nn::fs::ResultSdCardAccessFailed: Error: Failed to access SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x136802 - 0x176E02 || 2500 - 2999 || nn::fs::ResultGameCardAccessFailed: Error: Failed to access game card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 3001 || nn::fs::ResultNotImplemented: Error: Specified operation is not implemented.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177A02 || 3005 || nn::fs::ResultOutOfRange: Error: Specified value is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0x190002 - 0x1B5602 || 3200 - 3499 || nn::fs::ResultAllocationMemoryFailed: Error: Failed to allocate memory.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B5802 - 0x1F3E02 || 3500 - 3999 || nn::fs::ResultMmcAccessFailed: Error: Failed to access MMC.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4202 - 0x219602 || 4001 - 4299 || nn::fs::ResultRomCorrupted: Error: ROM is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x219A02 - 0x232602 || 4301 - 4499 || nn::fs::ResultSaveDataCorrupted: Error: Save data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x232A02 - 0x23EE02 || 4501 - 4599 || nn::fs::ResultNcaCorrupted: Error: NCA is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x23F202 - 0x243E02 || 4601 - 4639 || nn::fs::ResultIntegrityVerificationStorageCorrupted: Error: Integrity verification failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x244202 - 0x246602 || 4641 - 4659 || nn::fs::ResultPartitionFileSystemCorrupted: Error: Partition FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x246A02 - 0x248E02 || 4661 - 4679 || nn::fs::ResultBuiltInStorageCorrupted: Error: Built-in-storage is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249202 - 0x24B602 || 4681 - 4699 || nn::fs::ResultFatFileSystemCorrupted: Error: FAT FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24BA02 - 0x24DE02 || 4701 - 4719 || nn::fs::ResultHostFileSystemCorrupted: Error: HOST FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4002 - 0x270E02 || 4000, 4300, 4500, 4600, 4640, 4660, 4680, 4700, 4720-4999 || nn::fs::ResultDataCorrupted: Error: Data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x271002 - 0x2EDE02 || 5000-5999 || nn::fs::ResultUnexpected: Error: Unexpected failure occurred.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE002 - 0x32C602 || 6000-6499 || nn::fs::ResultPreconditionViolation: Error: Precondition violation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 - 0x306E02 || 6001-6199 || nn::fs::ResultInvalidArgument: Error: Invalid argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE402 - 0x2F1A02 || 6002-6029 || nn::fs::ResultInvalidPath: Error: Invalid path was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE602 || 6003 || nn::fs::ResultTooLongPath: Error: Too long path was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE802 || 6004 || nn::fs::ResultInvalidCharacter: Error: Invalid path character was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEA02 || 6005 || nn::fs::ResultInvalidPathFormat: Error: Invalid path format was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 6061 || nn::fs::ResultInvalidOffset: Error: Invalid offset was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5C02 || 6062 || nn::fs::ResultInvalidSize: Error: Invalid size was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5E02 || 6063 || nn::fs::ResultNullptrArgument: Error: Null pointer argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F6202 || 6065 || nn::fs::ResultInvalidMountName: Error: Invalid mount name was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F6402 || 6066 || nn::fs::ResultExtensionSizeTooLarge: Error: Extension size exceeds max value set in nmeta file.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F6602 || 6067 || nn::fs::ResultExtensionSizeInvalid: Error: Extension size is not a multiple of nn::fs::SaveDataExtensionUnitSize.&lt;br /&gt;
|-&lt;br /&gt;
| 0x307202 || 6201 || nn::fs::ResultFileExtensionWithoutOpenModeAllowAppend: Error: OpenMode_AllowAppend is required for implicit extension of file size by WriteFile().&lt;br /&gt;
|-&lt;br /&gt;
| 0x307002 - 0x313602 || 6200, 6202 - 6299 || nn::fs::ResultInvalidOperationForOpenMode: Error: Invalid operation for the open mode.&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 - 0x31FE02 || 6300-6399 || nn::fs::ResultUnsupportedOperation: Error: Unsupported operation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 - 0x326202 || 6400-6449 || nn::fs::ResultPermissionDenied: Error: Permission denied.&lt;br /&gt;
|-&lt;br /&gt;
| 0x327202 || 6457 || nn::fs::ResultWriteModeFileNotClosed: Error: Close files opened in write mode before committing.&lt;br /&gt;
|-&lt;br /&gt;
| 0x328202 || 6465 || nn::fs::ResultUserNotExist: Error: Specified user doesn&#039;t exist.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346402 || 6706 || nn::fs::ResultMappingTableFull: Error: Enough journal space is not left.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346A02 || 6709 || nn::fs::ResultOpenCountLimit: Error: The open count of files and directories reached the limitation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x353602 || 6811 || nn::fs::ResultMapFull: Error: Save data extension count reached the limitation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x35F202 || 6905 || nn::fs::ResultNotMounted: Error: Specified mount name is not found.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Fatal Errors =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Description&lt;br /&gt;
|-&lt;br /&gt;
| 2162-0002&lt;br /&gt;
| Can be triggered by running [[SVC|svcBreak]]. The svcBreak params have no effect on the value of the thrown error-code.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0000&lt;br /&gt;
| Userland ARM undefined instruction exception&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0001&lt;br /&gt;
| Userland ARM prefetch-abort due to PC set to non-executable region&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0002&lt;br /&gt;
| Userland ARM data abort. Also caused by abnormal process termination via [[SVC|svcExitProcess]]. Note: directly jumping to nnMain()-retaddr from non-main-thread has the same result.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0003&lt;br /&gt;
| Userland PC address not aligned to 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0008&lt;br /&gt;
| Can occur when attempting to call an svc outside the whitelist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Support Errors =&lt;br /&gt;
This section is for Support Errors displayed by the error-applet, separate from the normal Result Errors.&lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 520 || NVIDIA Error Report (nverpt)&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [[Internet_Browser|General web-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 809 || [[Internet_Browser|WifiWebAuthApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [[Internet_Browser|Whitelisted-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 811 || [[Internet_Browser|ShopN]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
8XX is for/includes system applets.&lt;br /&gt;
&lt;br /&gt;
== Error codes ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| {web-applets listed above}&lt;br /&gt;
| 2750&lt;br /&gt;
| MP4 parsing failed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Normal error-codes displayed by the system also use the same format as fatal-errors.&lt;br /&gt;
&lt;br /&gt;
= Homebrew Errors =&lt;br /&gt;
Custom errors used by homebrew libraries and applications.&lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 345 || libnx&lt;br /&gt;
|-&lt;br /&gt;
| 346 || [[Homebrew ABI]]&lt;br /&gt;
|-&lt;br /&gt;
| 347 || Homebrew Loader&lt;br /&gt;
|-&lt;br /&gt;
| 348 || libnx NVIDIA errors&lt;br /&gt;
|-&lt;br /&gt;
| 349 || libnx Binder errors&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=8523</id>
		<title>Error codes</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=8523"/>
		<updated>2019-12-05T20:03:50Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* Error codes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Structure =&lt;br /&gt;
These have been redesigned from the 3DS so that they fit within a Aarch64 MOV instruction immediate most of the time (without requiring the additional MOVK).&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Bits || Field&lt;br /&gt;
|-&lt;br /&gt;
| 8-0 || Module&lt;br /&gt;
|-&lt;br /&gt;
| 21-9 || Description&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When a fatal-error is received the error code is outputted using the following formatter:&lt;br /&gt;
  %04d-%04d&lt;br /&gt;
&lt;br /&gt;
.. where the first code is &amp;lt;code&amp;gt;2000 + Module&amp;lt;/code&amp;gt;, and the other being &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;. Bits &amp;gt;=22 from the error-code are unused when displaying fatal-errors, since the Description ends with bit21.&lt;br /&gt;
&lt;br /&gt;
= Result Errors =&lt;br /&gt;
General errors used by system modules and applications.&lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Kernel&lt;br /&gt;
|-&lt;br /&gt;
| 2 || FS&lt;br /&gt;
|-&lt;br /&gt;
| 3 || OS (Memory, Thread, Mutex, NVIDIA)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || HTCS&lt;br /&gt;
|-&lt;br /&gt;
| 5 || NCM&lt;br /&gt;
|-&lt;br /&gt;
| 6 || DD&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Debug Monitor&lt;br /&gt;
|-&lt;br /&gt;
| 8 || LR&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Loader&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CMIF (IPC command interface)&lt;br /&gt;
|-&lt;br /&gt;
| 11 || HIPC (IPC)&lt;br /&gt;
|-&lt;br /&gt;
| 15 || PM&lt;br /&gt;
|-&lt;br /&gt;
| 16 || NS&lt;br /&gt;
|-&lt;br /&gt;
| 17 || Sockets&lt;br /&gt;
|-&lt;br /&gt;
| 18 || HTC&lt;br /&gt;
|-&lt;br /&gt;
| 19 || TSC&lt;br /&gt;
|-&lt;br /&gt;
| 20 || NCM (content)&lt;br /&gt;
|-&lt;br /&gt;
| 21 || SM&lt;br /&gt;
|-&lt;br /&gt;
| 22 || RO (userland)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || SDMMC&lt;br /&gt;
|-&lt;br /&gt;
| 25 || OVLN&lt;br /&gt;
|-&lt;br /&gt;
| 26 || SPL&lt;br /&gt;
|-&lt;br /&gt;
| 30 || Bus&lt;br /&gt;
|-&lt;br /&gt;
| 100 || ETHC&lt;br /&gt;
|-&lt;br /&gt;
| 101 || I2C&lt;br /&gt;
|-&lt;br /&gt;
| 102 || GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 103 || UART&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Settings&lt;br /&gt;
|-&lt;br /&gt;
| 107 || WLAN&lt;br /&gt;
|-&lt;br /&gt;
| 108 || XCD&lt;br /&gt;
|-&lt;br /&gt;
| 110 || NIFM&lt;br /&gt;
|-&lt;br /&gt;
| 111 || Hwopus&lt;br /&gt;
|-&lt;br /&gt;
| 112 || Sasbus&lt;br /&gt;
|-&lt;br /&gt;
| 113 || Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
| 114 || VI&lt;br /&gt;
|-&lt;br /&gt;
| 115 || NFP&lt;br /&gt;
|-&lt;br /&gt;
| 116 || Time&lt;br /&gt;
|-&lt;br /&gt;
| 117 || FGM&lt;br /&gt;
|-&lt;br /&gt;
| 118 || OE&lt;br /&gt;
|-&lt;br /&gt;
| 120 || PCIe&lt;br /&gt;
|-&lt;br /&gt;
| 121 || Friends&lt;br /&gt;
|-&lt;br /&gt;
| 122 || BCAT&lt;br /&gt;
|-&lt;br /&gt;
| 123 || SSL&lt;br /&gt;
|-&lt;br /&gt;
| 124 || Account&lt;br /&gt;
|-&lt;br /&gt;
| 125 || News&lt;br /&gt;
|-&lt;br /&gt;
| 126 || Mii&lt;br /&gt;
|-&lt;br /&gt;
| 127 || NFC&lt;br /&gt;
|-&lt;br /&gt;
| 128 || AM&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Play Report&lt;br /&gt;
|-&lt;br /&gt;
| 130 || AHID&lt;br /&gt;
|-&lt;br /&gt;
| 132 || Home Menu (Qlaunch)&lt;br /&gt;
|-&lt;br /&gt;
| 133 || PCV&lt;br /&gt;
|-&lt;br /&gt;
| 134 || OMM&lt;br /&gt;
|-&lt;br /&gt;
| 135 || BPC&lt;br /&gt;
|-&lt;br /&gt;
| 136 || PSM&lt;br /&gt;
|-&lt;br /&gt;
| 137 || NIM&lt;br /&gt;
|-&lt;br /&gt;
| 138 || PSC&lt;br /&gt;
|-&lt;br /&gt;
| 139 || TC&lt;br /&gt;
|-&lt;br /&gt;
| 140 || USB&lt;br /&gt;
|-&lt;br /&gt;
| 141 || NSD&lt;br /&gt;
|-&lt;br /&gt;
| 142 || PCTL&lt;br /&gt;
|-&lt;br /&gt;
| 143 || BTM&lt;br /&gt;
|-&lt;br /&gt;
| 144 || LA (Library Applet)&lt;br /&gt;
|-&lt;br /&gt;
| 145 || ETicket&lt;br /&gt;
|-&lt;br /&gt;
| 146 || NGC (Bad Words)&lt;br /&gt;
|-&lt;br /&gt;
| 147 || Error Report&lt;br /&gt;
|-&lt;br /&gt;
| 148 || APM&lt;br /&gt;
|-&lt;br /&gt;
| 149 || CEC&lt;br /&gt;
|-&lt;br /&gt;
| 150 || Profiler&lt;br /&gt;
|-&lt;br /&gt;
| 151 || Error Upload&lt;br /&gt;
|-&lt;br /&gt;
| 153 || Audio&lt;br /&gt;
|-&lt;br /&gt;
| 154 || NPNS&lt;br /&gt;
|-&lt;br /&gt;
| 155 || NPNS XMPP Stream&lt;br /&gt;
|-&lt;br /&gt;
| 157 || ARP&lt;br /&gt;
|-&lt;br /&gt;
| 158 || Updater&lt;br /&gt;
|-&lt;br /&gt;
| 159 || SWKBD&lt;br /&gt;
|-&lt;br /&gt;
| 161 || Mifare&lt;br /&gt;
|-&lt;br /&gt;
| 162 || Userland (assert)&lt;br /&gt;
|-&lt;br /&gt;
| 163 || Fatal&lt;br /&gt;
|-&lt;br /&gt;
| 164 || Shop&lt;br /&gt;
|-&lt;br /&gt;
| 165 || SPSM&lt;br /&gt;
|-&lt;br /&gt;
| 167 || BGTC&lt;br /&gt;
|-&lt;br /&gt;
| 168 || Userland (crash)&lt;br /&gt;
|-&lt;br /&gt;
| 169 || Sasbus Periodic Receive Mode&lt;br /&gt;
|-&lt;br /&gt;
| 178 || PDM&lt;br /&gt;
|-&lt;br /&gt;
| 179 || OLSC&lt;br /&gt;
|-&lt;br /&gt;
| 180 || SREPO&lt;br /&gt;
|-&lt;br /&gt;
| 181 || Dauth&lt;br /&gt;
|-&lt;br /&gt;
| 187 || Sasbus&lt;br /&gt;
|-&lt;br /&gt;
| 191 || RTC&lt;br /&gt;
|-&lt;br /&gt;
| 192 || Regulator&lt;br /&gt;
|-&lt;br /&gt;
| 193 || Led&lt;br /&gt;
|-&lt;br /&gt;
| 197 || Clkrst&lt;br /&gt;
|-&lt;br /&gt;
| 202 || HID&lt;br /&gt;
|-&lt;br /&gt;
| 203 || LDN&lt;br /&gt;
|-&lt;br /&gt;
| 205 || Irsensor&lt;br /&gt;
|-&lt;br /&gt;
| 206 || Capture&lt;br /&gt;
|-&lt;br /&gt;
| 208 || Manu&lt;br /&gt;
|-&lt;br /&gt;
| 209 || ATK&lt;br /&gt;
|-&lt;br /&gt;
| 210 || Web&lt;br /&gt;
|-&lt;br /&gt;
| 211 || LCS (Local Content Sharing)&lt;br /&gt;
|-&lt;br /&gt;
| 212 || GRC&lt;br /&gt;
|-&lt;br /&gt;
| 216 || Migration&lt;br /&gt;
|-&lt;br /&gt;
| 217 || Migration Idc Server&lt;br /&gt;
|-&lt;br /&gt;
| 229 || Notification&lt;br /&gt;
|-&lt;br /&gt;
| 230 || Ins&lt;br /&gt;
|-&lt;br /&gt;
| 231 || Lp2p&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Error codes ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E01 || 1 || 7 || Session count exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C01 || 1 || 14 || Invalid kernel capability descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x4201 || 1 || 33 || Not Implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x7601 || 1 || 59 || Thread terminated/termination requested&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C01 || 1 || 70 || No more debug events&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA01 || 1 || 101 || Invalid size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC01 || 1 || 102 || Invalid address&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE01 || 1 || 103 || Resource exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD001 || 1 || 104 || Memory exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD201 || 1 || 105 || Handle-table exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 1 || 106 || Invalid memory state / invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD801 || 1 || 108 || Invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC01 || 1 || 110 || Invalid memory range&lt;br /&gt;
|-&lt;br /&gt;
| 0xE001 || 1 || 112 || Invalid thread priority.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE201 || 1 || 113 || Invalid processor id.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE401 || 1 || 114 || Invalid handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE601 || 1 || 115 || Invalid pointer/Syscall copy from user failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE801 || 1 || 116 || Invalid combination&lt;br /&gt;
|-&lt;br /&gt;
| 0xEA01 || 1 || 117 || Time out. Also when you give 0 handles to svcWaitSynchronizationN.&lt;br /&gt;
|-&lt;br /&gt;
| 0xEC01 || 1 || 118 || Operation canceled&lt;br /&gt;
|-&lt;br /&gt;
| 0xEE01 || 1 || 119 || Out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0xF001 || 1 || 120 || Invalid enum&lt;br /&gt;
|-&lt;br /&gt;
| 0xF201 || 1 || 121 || No such entry&lt;br /&gt;
|-&lt;br /&gt;
| 0xF401 || 1 || 122 || Irq/DeviceAddressSpace/{...} already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xF601 || 1 || 123 || Port remote dead&lt;br /&gt;
|-&lt;br /&gt;
| 0xF801 || 1 || 124 || [Usermode] Unhandled interrupt/exception&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA01 || 1 || 125 || Invalid state&lt;br /&gt;
|-&lt;br /&gt;
| 0xFC01 || 1 || 126 || Reserved value&lt;br /&gt;
|-&lt;br /&gt;
| 0xFE01 || 1 || 127 || Invalid hardware breakpoint&lt;br /&gt;
|-&lt;br /&gt;
| 0x10001 || 1 || 128 || [Usermode] Fatal exception&lt;br /&gt;
|-&lt;br /&gt;
| 0x10201 || 1 || 129 || Last thread didn&#039;t belong to your process&lt;br /&gt;
|-&lt;br /&gt;
| 0x10601 || 1 || 131 || Port closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x10801 || 1 || 132 || Resource limit exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x20801 || 1 || 260 || Command buffer too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x40A01 || 1 || 517 || Invalid process ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40C01 || 1 || 518 || Invalid thread ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40E01 || 1 || 519 || Invalid thread ID (used in svcGetDebugThreadParam).&lt;br /&gt;
|-&lt;br /&gt;
| 0x41001 || 1 || 520 || Process not being debugged&lt;br /&gt;
|-&lt;br /&gt;
| 0x202 || 2 || 1 || Path does not exist.&lt;br /&gt;
|-&lt;br /&gt;
| 0x402 || 2 || 2 || Path already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE02 || 2 || 7 || Resource already in use (file already opened, savedata filesystem already mounted).&lt;br /&gt;
|-&lt;br /&gt;
| 0x4602 || 2 || 35 || Not enough free space for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4802 || 2 || 36 || Not enough free space for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A02 || 2 || 37 || Not enough free space for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C02 || 2 || 38 || Not enough free space for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4E02 || 2 || 39 || Not enough free space on SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6402 || 2 || 50 || NCA is older than version 3, or NCA SDK version is older than 0.11.0.0&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 2 || 60 || Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 2 || 1001 || Process does not have RomFs &lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 2 || 1002 || Title-id not found / savedata not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA202 || 2 || 2001 || SD card not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13B002 || 2 || 2520 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13B402 || 2 || 2522 || Attempted process an AsicHandler command in initial mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x13D802 || 2 || 2540 || Attempted to read from the secure gamecard partition in normal mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x13DA02 || 2 || 2541 || Attempted to read from the normal gamecard partition in secure mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x13DC02 || 2 || 2542 || Attempted a read that spanned both the normal and secure gamecard partitions&lt;br /&gt;
|-&lt;br /&gt;
| 0x13E002 || 2 || 2544 || Gamecard initial data hash doesn&#039;t match the initial data hash in the card header&lt;br /&gt;
|-&lt;br /&gt;
| 0x13E202 || 2 || 2545 || Gamecard initial data reserved area is not all zeros&lt;br /&gt;
|-&lt;br /&gt;
| 0x13E402 || 2 || 2546 || Gamecard certificate kek index doesn&#039;t match card header kek index&lt;br /&gt;
|-&lt;br /&gt;
| 0x13EE02 || 2 || 2551 || Unable to read card header on gamecard init&lt;br /&gt;
|-&lt;br /&gt;
| 0x140A02 || 2 || 2565 || Encountered SDMMC error in write operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x145002 || 2 || 2600 || Attempted to switch lotus state machine to secure mode from a mode other than normal&lt;br /&gt;
|-&lt;br /&gt;
| 0x145202 || 2 || 2601 || Attempted to switch lotus state machine to normal mode from a mode other than initial&lt;br /&gt;
|-&lt;br /&gt;
| 0x145402 || 2 || 2602 || Attempted to switch lotus state machine to write mode from a mode other than normal&lt;br /&gt;
|-&lt;br /&gt;
| 0x149402 || 2 || 2634 || Error processing lotus command SetUserAsicFirmware&lt;br /&gt;
|-&lt;br /&gt;
| 0x149A02 || 2 || 2637 || Error processing lotus command GetAsicCert&lt;br /&gt;
|-&lt;br /&gt;
| 0x14A002 || 2 || 2640 || Error processing lotus command SetEmmcEmbeddedSocCertificate&lt;br /&gt;
|-&lt;br /&gt;
| 0x14AA02 || 2 || 2645 || Error processing lotus command GetAsicEncryptedMessage&lt;br /&gt;
|-&lt;br /&gt;
| 0x14AC02 || 2 || 2646 || Error processing lotus command SetLibraryEncryptedMessage&lt;br /&gt;
|-&lt;br /&gt;
| 0x14B602 || 2 || 2651 || Error processing lotus command GetAsicAuthenticationData&lt;br /&gt;
|-&lt;br /&gt;
| 0x14B802 || 2 || 2652 || Error processing lotus command SetAsicAuthenticationDataHash&lt;br /&gt;
|-&lt;br /&gt;
| 0x14BA02 || 2 || 2653 || Error processing lotus command SetLibraryAuthenticationData&lt;br /&gt;
|-&lt;br /&gt;
| 0x14BC02 || 2 || 2654 || Error processing lotus command GetLibraryAuthenticationDataHash&lt;br /&gt;
|-&lt;br /&gt;
| 0x14C202 || 2 || 2657 || Error processing lotus command ExchangeRandomValuesInSecureMode&lt;br /&gt;
|-&lt;br /&gt;
| 0x14D802 || 2 || 2668 || Error calling nn::gc::detail::GcCrypto::GenerateRandomBytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x14DE02 || 2 || 2671 || Error processing lotus command ReadAsicRegister&lt;br /&gt;
|-&lt;br /&gt;
| 0x14E002 || 2 || 2672 || Error processing lotus command GetGameCardIdSet&lt;br /&gt;
|-&lt;br /&gt;
| 0x14E402 || 2 || 2674 || Error processing lotus command GetCardHeader&lt;br /&gt;
|-&lt;br /&gt;
| 0x14E802 || 2 || 2676 || Error processing lotus command GetCardKeyArea&lt;br /&gt;
|-&lt;br /&gt;
| 0x14EA02 || 2 || 2677 || Error processing lotus command ChangeDebugMode&lt;br /&gt;
|-&lt;br /&gt;
| 0x14EC02 || 2 || 2678 || Error processing lotus command GetRmaInformation&lt;br /&gt;
|-&lt;br /&gt;
| 0x150802 || 2 || 2692 || Tried sending lotus card command Refresh when not in secure mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x150A02 || 2 || 2693 || Tried sending lotus card command when not in correct mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x155602 || 2 || 2731 || Error processing lotus card command ReadId1&lt;br /&gt;
|-&lt;br /&gt;
| 0x155802 || 2 || 2732 || Error processing lotus card command ReadId2&lt;br /&gt;
|-&lt;br /&gt;
| 0x155A02 || 2 || 2733 || Error processing lotus card command ReadId3&lt;br /&gt;
|-&lt;br /&gt;
| 0x155E02 || 2 || 2735 || Error processing lotus card command ReadPage&lt;br /&gt;
|-&lt;br /&gt;
| 0x156202 || 2 || 2737 || Error processing lotus card command WritePage&lt;br /&gt;
|-&lt;br /&gt;
| 0x156402 || 2 || 2738 || Error processing lotus card command Refresh&lt;br /&gt;
|-&lt;br /&gt;
| 0x156C02 || 2 || 2742 || Error processing lotus card command ReadCrc&lt;br /&gt;
|-&lt;br /&gt;
| 0x156E02 || 2 || 2743 || Error processing lotus card command Erase or UnlockForceErase&lt;br /&gt;
|-&lt;br /&gt;
| 0x157002 || 2 || 2744 || Error processing lotus card command ReadDevParam&lt;br /&gt;
|-&lt;br /&gt;
| 0x157202 || 2 || 2745 || Error processing lotus card command WriteDevParam&lt;br /&gt;
|-&lt;br /&gt;
| 0x16B002 || 2 || 2904 || Id2Normal did not match the value in the buffer returned by ChangeDebugMode&lt;br /&gt;
|-&lt;br /&gt;
| 0x16B202 || 2 || 2905 || Id1Normal did not match Id1Writer when switching gamecard to write mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x16B402 || 2 || 2906 || Id2Normal did not match Id2Writer when switching gamecard to write mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x171402 || 2 || 2954 || Invalid gamecard handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0x172002 || 2 || 2960 || Invalid gamecard handle when opening normal gamecard partition&lt;br /&gt;
|-&lt;br /&gt;
| 0x172202 || 2 || 2961 || Invalid gamecard handle when opening secure gamecard partition&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 2 || 3001 || Unimplemented behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x177602 || 2 || 3003 || File/Directory already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x190202 || 2 || 3201 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190602 || 2 || 3203 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190802 || 2 || 3204 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190A02 || 2 || 3205 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190C02 || 2 || 3206 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x191002 || 2 || 3208 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x195802 || 2 || 3244 || Allocation failure related to SD cards&lt;br /&gt;
|-&lt;br /&gt;
| 0x196002 || 2 || 3248 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x196202 || 2 || 3249 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A3E02 || 2 || 3359 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4002 || 2 || 3360 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4A02 || 2 || 3365 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x21BC02 || 2 || 4318 || Invalid save data filesystem magic (valid magic is SAVE in ASCII)&lt;br /&gt;
|-&lt;br /&gt;
| 0x234202 || 2 || 4513 || Error reading ACID section in NPDM&lt;br /&gt;
|-&lt;br /&gt;
| 0x234402 || 2 || 4514 || Invalid NPDM ACID section size&lt;br /&gt;
|-&lt;br /&gt;
| 0x234602 || 2 || 4515 || Last byte of the ACID modulus is zero&lt;br /&gt;
|-&lt;br /&gt;
| 0x234802 || 2 || 4516 || Invalid ACID fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234A02 || 2 || 4517 || Invalid NCA magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x234C02 || 2 || 4518 || Invalid NCA header fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234E02 || 2 || 4519 || Invalid NCA header ACID signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x235002 || 2 || 4520 || Invalid NCA header section hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x235202 || 2 || 4521 || Invalid NCA Key index&lt;br /&gt;
|-&lt;br /&gt;
| 0x235602 || 2 || 4523 || Invalid encryption type&lt;br /&gt;
|-&lt;br /&gt;
| 0x235802 || 2 || 4524 || Redirection BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235A02 || 2 || 4525 || Encryption BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235C02 || 2 || 4526 || Redirection BKTR table end offset is past the Encryption BKTR table start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x235E02 || 2 || 4527 || NCA-path used with the wrong titleID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x236002 || 2 || 4528 || NCA header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236202 || 2 || 4529 || NCA FS header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236802 || 2 || 4532 || PartitionFS hash block size is not a power of 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236A02 || 2 || 4533 || PartitionFS hash &amp;quot;always_2&amp;quot; field is not 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236C02 || 2 || 4534 || PartitionFS hash table is too small for main data&lt;br /&gt;
|-&lt;br /&gt;
| 0x236E02 || 2 || 4535 || Invalid PartitionFS block hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244402 || 2 || 4642 || Invalid Partition file hashed region bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x244602 || 2 || 4643 || Invalid Partition FS hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244802 || 2 || 4644 || Invalid PFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244A02 || 2 || 4645 || Invalid HFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244C02 || 2 || 4646 || Invalid name offset for Partition FS file entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x244E02 || 2 || 4647 || Calculated Partition FS header size changed between 2 consecutive reads&lt;br /&gt;
|-&lt;br /&gt;
| 0x249802 || 2 || 4684 || Invalid FAT file number.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249C02 || 2 || 4686 || Invalid FAT format for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249E02 || 2 || 4687 || Invalid FAT format for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A002 || 2 || 4688 || Invalid FAT format for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A202 || 2 || 4689 || Invalid FAT format for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x250E02 || 2 || 4743 || [[NAX0|Corrupted]] NAX0 header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x251002 || 2 || 4744 || Invalid [[NAX0]] magicnum.&lt;br /&gt;
|-&lt;br /&gt;
| 0x280202 || 2 || 5121 || Invalid FAT size&lt;br /&gt;
|-&lt;br /&gt;
| 0x280402 || 2 || 5122 || Invalid FAT BPB (BIOS Parameter Block)&lt;br /&gt;
|-&lt;br /&gt;
| 0x280602 || 2 || 5123 || Invalid FAT parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x280802 || 2 || 5124 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280A02 || 2 || 5125 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280C02 || 2 || 5126 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280E02 || 2 || 5127 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x296A02 || 2 || 5301 || Mountpoint not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 || 2 || 6001 || Invalid input&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE602 || 2 || 6003 || Path too long&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE802 || 2 || 6004 || Invalid character.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEA02 || 2 || 6005 || Invalid directory path.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEC02 || 2 || 6006 || Unable to retrieve directory from path&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 2 || 6061 || Offset outside storage&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 || 2 || 6300 || Operation not supported&lt;br /&gt;
|-&lt;br /&gt;
| 0x313A02 || 2 || 6301 || A specified filesystem has no MultiCommitTarget when doing a multi-filesystem commit&lt;br /&gt;
|-&lt;br /&gt;
| 0x313C02 || 2 || 6302 || Attempted to resize a nn::fs::SubStorage or BufferedStorage that is marked as non-resizable&lt;br /&gt;
|-&lt;br /&gt;
| 0x313E02 || 2 || 6303 || Attempted to resize a nn::fs::SubStorage or BufferedStorage when the SubStorage ends before the base storage&lt;br /&gt;
|-&lt;br /&gt;
| 0x314002 || 2 || 6304 || Attempted to call nn::fs::MemoryStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x314202 || 2 || 6305 || Invalid Operation ID in nn::fs::MemoryStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x314402 || 2 || 6306 || Invalid Operation ID in nn::fs::FileStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x314602 || 2 || 6307 || Invalid Operation ID in nn::fs::FileHandleStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x314802 || 2 || 6308 || Invalid Operation ID in nn::fssystem::SwitchStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x314A02 || 2 || 6309 || Invalid Operation ID in nn::fs::detail::StorageServiceObjectAdapter::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x314C02 || 2 || 6310 || Attempted to call nn::fssystem::AesCtrCounterExtendedStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x314E02 || 2 || 6311 || Attempted to call nn::fssystem::AesCtrCounterExtendedStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315002 || 2 || 6312 || Invalid Operation ID in nn::fssystem::AesCtrCounterExtendedStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x315202 || 2 || 6313 || Attempted to call nn::fssystem::AesCtrStorageExternal::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x315402 || 2 || 6314 || Attempted to call nn::fssystem::AesCtrStorageExternal::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315602 || 2 || 6315 || Attempted to call nn::fssystem::AesCtrStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315802 || 2 || 6316 || Attempted to call nn::fssystem::save::HierarchicalIntegrityVerificationStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315A02 || 2 || 6317 || Attempted to call nn::fssystem::save::HierarchicalIntegrityVerificationStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x315C02 || 2 || 6318 || Attempted to call nn::fssystem::save::IntegrityVerificationStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315E02 || 2 || 6319 || Attempted to invalidate the cache of a RomFs IVFC storage in nn::fssystem::save::IntegrityVerificationStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x316002 || 2 || 6320 || Invalid Operation ID in nn::fssystem::save::IntegrityVerificationStorage::OperateRange &lt;br /&gt;
|-&lt;br /&gt;
| 0x316202 || 2 || 6321 || Attempted to call nn::fssystem::save::BlockCacheBufferedStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x316402 || 2 || 6322 || Attempted to invalidate the cache of something other than a savedata IVFC storage in nn::fssystem::save::BlockCacheBufferedStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x316602 || 2 || 6323 || Invalid Operation ID in nn::fssystem::save::BlockCacheBufferedStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x316802 || 2 || 6324 || Attempted to call nn::fssystem::IndirectStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x316A02 || 2 || 6325 || Attempted to call nn::fssystem::IndirectStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x316C02 || 2 || 6326 || Invalid Operation ID in nn::fssystem::IndirectStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x316E02 || 2 || 6327 || Attempted to call nn::fssystem::SparseStorage::ZeroStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x317002 || 2 || 6328 || Attempted to call nn::fssystem::SparseStorage::ZeroStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317202 || 2 || 6329 || Attempted to call nn::fssystem::HierarchicalSha256Storage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317402 || 2 || 6330 || Attempted to call nn::fssystem::ReadOnlyBlockCacheStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x317602 || 2 || 6331 || Attempted to call nn::fssystem::ReadOnlyBlockCacheStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317802 || 2 || 6332 || Attempted to call nn::fssystem::IntegrityRomFsStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317A02 || 2 || 6333 || Attempted to call nn::fssystem::save::DuplexStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317C02 || 2 || 6334 || Invalid Operation ID in nn::fssystem::save::DuplexStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x317E02 || 2 || 6335 || Attempted to call nn::fssystem::save::HierarchicalDuplexStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318002 || 2 || 6336 || Attempted to call nn::fssystem::save::RemapStorage::GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318202 || 2 || 6337 || Attempted to call nn::fssystem::save::RemapStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318402 || 2 || 6338 || Invalid Operation ID in nn::fssystem::save::RemapStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x318602 || 2 || 6339 || Attempted to call nn::fssystem::save::IntegritySaveDataStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318802 || 2 || 6340 || Invalid Operation ID in nn::fssystem::save::IntegritySaveDataStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x318A02 || 2 || 6341 || Attempted to call nn::fssystem::save::JournalIntegritySaveDataStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318C02 || 2 || 6342 || Invalid Operation ID in nn::fssystem::save::JournalIntegritySaveDataStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x318E02 || 2 || 6343 || Attempted to call nn::fssystem::save::JournalStorage::GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x319002 || 2 || 6344 || Attempted to call nn::fssystem::save::JournalStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x319202 || 2 || 6345 || Invalid Operation ID in nn::fssystem::save::JournalStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x319402 || 2 || 6346 || Attempted to call nn::fssystem::save::UnionStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x319602 || 2 || 6347 || Attempted to call nn::fssystem::dbm::AllocationTableStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x319802 || 2 || 6348 || Attempted to call nn::fssrv::fscreator::WriteOnlyGameCardStorage::Read&lt;br /&gt;
|-&lt;br /&gt;
| 0x319A02 || 2 || 6349 || Attempted to call nn::fssrv::fscreator::WriteOnlyGameCardStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x319C02 || 2 || 6350 || Attempted to call nn::fssrv::fscreator::ReadOnlyGameCardStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x319E02 || 2 || 6351 || Attempted to call nn::fssrv::fscreator::ReadOnlyGameCardStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x31A002 || 2 || 6352 || Invalid Operation ID in nn::fssrv::fscreator::ReadOnlyGameCardStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31A202 || 2 || 6353 || Attempted to call SdStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x31A402 || 2 || 6354 || Invalid Operation ID in SdStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31A602 || 2 || 6355 || Invalid Operation ID in nn::fat::FatFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31A802 || 2 || 6356 || Invalid Operation ID in nn::fssystem::StorageFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31AA02 || 2 || 6357 || Attempted to call nn::fssystem::ConcatenationFile::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x31AC02 || 2 || 6358 || Attempted to call nn::fssystem::ConcatenationFile::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31AE02 || 2 || 6359 || Invalid Query ID in nn::fssystem::ConcatenationFileSystem::DoQueryEntry&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B002 || 2 || 6360 || Invalid Operation ID in nn::fssystem::ConcatenationFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B202 || 2 || 6361 || Attempted to call nn::fssystem::ZeroBitmapFile::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B402 || 2 || 6362 || Invalid Operation ID in nn::fs::detail::FileServiceObjectAdapter::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B602 || 2 || 6363 || Invalid Operation ID in nn::fssystem::AesXtsFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B802 || 2 || 6364 || Attempted to modify a nn::fs::RomFsFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0x31BA02 || 2 || 6365 || Attempted to call nn::fs::RomFsFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31BC02 || 2 || 6366 || Attempted to query the space in a nn::fs::RomFsFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0x31BE02 || 2 || 6367 || Attempted to modify a nn::fssystem::RomFsFile&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C002 || 2 || 6368 || Invalid Operation ID in nn::fssystem::RomFsFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C202 || 2 || 6369 || Attempted to modify a nn::fs::ReadOnlyFileSystemTemplate&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C402 || 2 || 6370 || Attempted to call nn::fs::ReadOnlyFileSystemTemplate::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C602 || 2 || 6371 || Attempted to query the space in a nn::fs::ReadOnlyFileSystemTemplate&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C802 || 2 || 6372 || Attempted to modify a nn::fs::ReadOnlyFileSystemFile&lt;br /&gt;
|-&lt;br /&gt;
| 0x31CA02 || 2 || 6373 || Invalid Operation ID in nn::fs::ReadOnlyFileSystemFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31CC02 || 2 || 6374 || Attempted to modify a nn::fssystem::PartitionFileSystemCore&lt;br /&gt;
|-&lt;br /&gt;
| 0x31CE02 || 2 || 6375 || Attempted to call nn::fssystem::PartitionFileSystemCore::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31D002 || 2 || 6376 || Attempted to call nn::fssystem::PartitionFileSystemCore::PartitionFile::DoSetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x31D202 || 2 || 6377 || Invalid Operation ID in nn::fssystem::PartitionFileSystemCore::PartitionFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31D402 || 2 || 6378 || Invalid Operation ID in nn::fssystem::TmFileSystemFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31D602 || 2 || 6379 || Attempted to call unsupported functions in nn::fssrv::fscreator::SaveDataInternalStorageFileSystem, nn::fssrv::detail::SaveDataInternalStorageAccessor::PaddingFile or nn::fssystem::save::detail::SaveDataExtraDataInternalStorageFile&lt;br /&gt;
|-&lt;br /&gt;
| 0x31DC02 || 2 || 6382 || Attempted to call nn::fssystem::ApplicationTemporaryFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31DE02 || 2 || 6383 || Attempted to call nn::fssystem::SaveDataFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31E002 || 2 || 6384 || Attempted to call nn::fssystem::DirectorySaveDataFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31E202 || 2 || 6385 || Attempted to call nn::fssystem::ZeroBitmapHashStorageFile::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x31E402 || 2 || 6386 || Attempted to call nn::fssystem::ZeroBitmapHashStorageFile::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 || 2 || 6400 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x326602 || 2 || 6451 || Missing titlekey(?) required to mount content&lt;br /&gt;
|-&lt;br /&gt;
| 0x326E02 || 2 || 6455 || File not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327002 || 2 || 6456 || Directory not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327202 || 2 || 6457 || Writable file not closed when committing&lt;br /&gt;
|-&lt;br /&gt;
| 0x327402 || 2 || 6458 || FS allocators already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x327602 || 2 || 6459 || FS allocators already used&lt;br /&gt;
|-&lt;br /&gt;
| 0x327A02 || 2 || 6461 || FS allocator alignment violation&lt;br /&gt;
|-&lt;br /&gt;
| 0x339402 || 2 || 6602 || File not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x339602 || 2 || 6603 || Directory not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346C02 || 2 || 6710 || Multi-commit limit reached&lt;br /&gt;
|-&lt;br /&gt;
| 0x35F202 || 2 || 6905 || Mount name not found in table.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBC02 || 2 || 7902 || RomFs table: Entry not found in dictionary&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBE02 || 2 || 7903 || RomFs table: File not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC002 || 2 || 7904 || RomFs table: Directory not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC402 || 2 || 7906 || RomFs table: Entry already exists when trying to add a new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC602 || 2 || 7907 || RomFs table: Insufficient space to add new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC802 || 2 || 7908 || RomFs table: Unable to add new directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCA02 || 2 || 7909 || RomFs table: Unable to add new file&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCC02 || 2 || 7910 || RomFs directory has no more child directories/files when iterating&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DD402 || 2 || 7914 || RomFs table: Path is file, not directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x803 || 3 || 4 || OS busy&lt;br /&gt;
|-&lt;br /&gt;
| 0xE03 || 3 || 7 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x1003 || 3 || 8 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1203 || 3 || 9 || Out of resources&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EA03 || 3 || 501 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE03 || 3 || 503 || Invalid memory mirror&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FE03 || 3 || 1023 || TLS slot is not allocated&lt;br /&gt;
|-&lt;br /&gt;
| 0xA05 || 5 || 5 || [[Content_Manager_services|NcaID]] not found. Returned when attempting to mount titles which exist that aren&#039;t *8XX titles, the same way *8XX titles are mounted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE05 || 5 || 7 || TitleId not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1805 || 5 || 12 || Invalid StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC05 || 5 || 110 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x17C05 || 5 || 190 || Gamecard not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F405 || 5 || 250 || Sdcard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x20805 || 5 || 260 || Storage not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0x806 || 6 || 4 || Converted from error 0xD401&lt;br /&gt;
|-&lt;br /&gt;
| 0x1006 || 6 || 8 || Converted from error 0xE401&lt;br /&gt;
|-&lt;br /&gt;
| 0x408 || 8 || 2 || Program location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x608 || 8 || 3 || Invalid context for control location&lt;br /&gt;
|-&lt;br /&gt;
| 0x808 || 8 || 4 || Storage not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA08 || 8 || 5 || Access denied&lt;br /&gt;
|-&lt;br /&gt;
| 0xC08 || 8 || 6 || Offline manual HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xE08 || 8 || 7 || Title is not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1008 || 8 || 8 || Control location entry for host not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1208 || 8 || 9 || Legal info HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1408 || 8 || 10 || Program location for debug entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x209 || 9 || 1 || Args too long.&lt;br /&gt;
|-&lt;br /&gt;
| 0x409 || 9 || 2 || Maximum processes loaded.&lt;br /&gt;
|-&lt;br /&gt;
| 0x609 || 9 || 3 || NPDM too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x809 || 9 || 4 || Invalid NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0xA09 || 9 || 5 || Invalid NSO.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC09 || 9 || 6 || Invalid Path.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE09 || 9 || 7 || Already registered.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1009 || 9 || 8 || Title not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1209 || 9 || 9 || Title-id in ACI0 doesn&#039;t match range in ACID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1409 || 9 || 10 || Invalid version in NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6609 || 9 || 51 || Insufficient address space.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6809 || 9 || 52 || Insufficient NRO.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A09 || 9 || 53 || Invalid NRR&lt;br /&gt;
|-&lt;br /&gt;
| 0x6C09 || 9 || 54 || Invalid signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x6E09 || 9 || 55 || Insufficient NRO registrations.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7009 || 9 || 56 || Insufficient NRR registrations.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7209 || 9 || 57 || NRO Already loaded.&lt;br /&gt;
|-&lt;br /&gt;
| 0xA209 || 9 || 81 || Unaligned NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xA409 || 9 || 82 || Bad NRR size&lt;br /&gt;
|-&lt;br /&gt;
| 0xA809 || 9 || 84 || NRR Not Loaded.&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA09 || 9 || 85 || Bad NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xAE09 || 9 || 87 || Bad initialization&lt;br /&gt;
|-&lt;br /&gt;
| 0xC809 || 9 || 100 || Unknown ACI0 descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE09 || 9 || 103 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD009 || 9 || 104 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;SyscallMask&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD409 || 9 || 106 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapIoOrNormalRange&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD609 || 9 || 107 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapNormalPage&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xDE09 || 9 || 111 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;InterruptPair&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE209 || 9 || 113 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;ApplicationType&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE409 || 9 || 114 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelReleaseVersion&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE609 || 9 || 115 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;HandleTableSize&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE809 || 9 || 116 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;DebugFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x1940A || 10 || 202 || Invalid CMIF header size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A60A || 10 || 211 || Invalid CMIF input header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A80A || 10 || 212 || Invalid CMIF output header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA0A || 10 || 221 || Invalid method dispatch ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D60A || 10 || 235 || Invalid in object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D80A || 10 || 236 || Invalid out object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0A || 10 || 301 || Out of domain entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20B || 11 || 1 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC0B || 11 || 102 || Out of server session memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x11A0B || 11 || 141 || Went past maximum during marshalling.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1900B || 11 || 200 || Session doesn&#039;t support domains.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0B || 11 || 301 || Remote process is dead.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3260B || 11 || 403 || Unknown request type&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D60B || 11 || 491 || IPC Query 1 failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20F || 15 || 1 || Pid not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x60F || 15 || 3 || Process has no pending events&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0F || 15 || 5 || Application already running&lt;br /&gt;
|-&lt;br /&gt;
| 0x410 || 16 || 2 || Title-id not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xF010 || 16 || 120 || Sysupdate not required&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F610 || 16 || 251 || Unexpected StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0x64210 || 16 || 801 || [[NS_Services#SystemDeliveryInfo|SystemDeliveryInfo]] system_delivery_protocol_version is less than the system-setting.&lt;br /&gt;
|-&lt;br /&gt;
| 0x64410 || 16 || 802 || [[NS_Services#SystemDeliveryInfo|SystemDeliveryInfo]] system_delivery_protocol_version is larger than the system-setting.&lt;br /&gt;
|-&lt;br /&gt;
| 0x74610 || 16 || 931 || Invalid [[NS_Services#SystemDeliveryInfo|SystemDeliveryInfo]] HMAC / invalid Meta Id.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6F810 || 16 || 892 || Unknown state ref-count is zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x215 || 21 || 1 || Out of processes&lt;br /&gt;
|-&lt;br /&gt;
| 0x415 || 21 || 2 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x615 || 21 || 3 || Max sessions&lt;br /&gt;
|-&lt;br /&gt;
| 0x815 || 21 || 4 || Service already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xA15 || 21 || 5 || Out of services&lt;br /&gt;
|-&lt;br /&gt;
| 0xC15 || 21 || 6 || Invalid name (all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0xE15 || 21 || 7 || Service not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1015 || 21 || 8 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x1215 || 21 || 9 || Service Access Control too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x416 || 22 || 2 || Address space is full&lt;br /&gt;
|-&lt;br /&gt;
| 0x616 || 22 || 3 || NRO already loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x816 || 22 || 4 || Invalid NRO header values&lt;br /&gt;
|-&lt;br /&gt;
| 0xC16 || 22 || 6 || Bad NRR magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x1016 || 22 || 8 || Reached max NRR count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1216 || 22 || 9 || Unable to verify NRO hash or NRR signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x80216 || 22 || 1025 || Address not page-aligned&lt;br /&gt;
|-&lt;br /&gt;
| 0x80416 || 22 || 1026 || Incorrect NRO size&lt;br /&gt;
|-&lt;br /&gt;
| 0x80816 || 22 || 1028 || NRO not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80A16 || 22 || 1029 || NRR not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80C16 || 22 || 1030 || Already initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E16 || 22 || 1031 || Not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x21A || 26 || 1 || SMC is not implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x41A || 26 || 2 || SMC argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A || 26 || 3 || SMC is currently in progress/secmon is busy&lt;br /&gt;
|-&lt;br /&gt;
| 0x81A || 26 || 4 || Secmon not currently performing async operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xA1A || 26 || 5 || Invalid SMC async callback key&lt;br /&gt;
|-&lt;br /&gt;
| 0xC1A || 26 || 6 || SMC is blacklisted during current boot&lt;br /&gt;
|-&lt;br /&gt;
| 0xC81A || 26 || 100 || Invalid (buffer) size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Unknown SMC error&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Decryption failure&lt;br /&gt;
|-&lt;br /&gt;
| 0xD01A || 26 || 104 || No AES keyslots available&lt;br /&gt;
|-&lt;br /&gt;
| 0xD21A || 26 || 105 || Invalid AES keyslot&lt;br /&gt;
|-&lt;br /&gt;
| 0xD41A || 26 || 106 || BootReason already set&lt;br /&gt;
|-&lt;br /&gt;
| 0xD61A || 26 || 107 || BootReason not set&lt;br /&gt;
|-&lt;br /&gt;
| 0xD81A || 26 || 108 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x35B || 347 || 1 || Failed to init SM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x55B || 347 || 2 || Failed to init FS.&lt;br /&gt;
|-&lt;br /&gt;
| 0x75B || 347 || 3 || Failed to open NRO file. May also happen when SD card isn&#039;t inserted / SD mounting failed earlier.&lt;br /&gt;
|-&lt;br /&gt;
| 0x95B || 347 || 4 || Failed to read NRO header.&lt;br /&gt;
|-&lt;br /&gt;
| 0xB5B || 347 || 5 || Invalid NRO magic.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD5B || 347 || 6 || Invalid NRO segments.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF5B || 347 || 7 || Failed to read NRO.&lt;br /&gt;
|-&lt;br /&gt;
| 0x135B || 347 || 9 || Failed to allocate heap.&lt;br /&gt;
|-&lt;br /&gt;
| 0x255B || 347 || 18 || Failed to map code-binary memory.&lt;br /&gt;
|-&lt;br /&gt;
| 0x275B || 347 || 19 || Failed to map code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x295B || 347 || 20 || Failed to map code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B5B || 347 || 21 || Failed to map code memory (.data+.bss).&lt;br /&gt;
|-&lt;br /&gt;
| 0x315B || 347 || 24 || Failed to unmap code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x335B || 347 || 25 || Failed to unmap code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x355B || 347 || 26 || Failed to unmap code memory (.data+.bss).&lt;br /&gt;
|-&lt;br /&gt;
| 0x19269 || 105 || 201 || Null settings name&lt;br /&gt;
|-&lt;br /&gt;
| 0x19469 || 105 || 202 || Null settings key&lt;br /&gt;
|-&lt;br /&gt;
| 0x19669 || 105 || 203 || Null settings value&lt;br /&gt;
|-&lt;br /&gt;
| 0x19A69 || 105 || 205 || Null settings value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A069 || 105 || 208 || Null setting value size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A269 || 105 || 209 || Null debug mode flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA69 || 105 || 221 || Setting group name has zero length&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BC69 || 105 || 222 || Empty settings item key&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E269 || 105 || 241 || Setting group name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E469 || 105 || 242 || Setting name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x20A69 || 105 || 261 || Setting group name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x20C69 || 105 || 262 || Setting name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x4DA69 || 105 || 621 || Null language code buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4EE69 || 105 || 631 || Null network settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4F069 || 105 || 632 || Null network settings output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x50269 || 105 || 641 || Null backlight settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51669 || 105 || 651 || Null Bluetooth device setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51869 || 105 || 652 || Null Bluetooth device setting output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51A69 || 105 || 653 || Null Bluetooth enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51C69 || 105 || 654 || Null Bluetooth AFH enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51E69 || 105 || 655 || Null Bluetooth boost enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52069 || 105 || 656 || Null BLE pairing settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52269 || 105 || 657 || Null BLE pairing settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52A69 || 105 || 661 || Null external steady clock source ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52C69 || 105 || 662 || Null user system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52E69 || 105 || 663 || Null network system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53069 || 105 || 664 || Null user system clock automatic correction enabled flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53269 || 105 || 665 || Null shutdown RTC value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53469 || 105 || 666 || Null external steady clock internal offset buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53E69 || 105 || 671 || Null account settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55269 || 105 || 681 || Null audio volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55669 || 105 || 683 || Null ForceMuteOnHeadphoneRemoved buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55869 || 105 || 684 || Null headphone volume warning count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55E69 || 105 || 687 || Invalid audio output mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x56069 || 105 || 688 || Null headphone volume update flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x56669 || 105 || 691 || Null console information upload flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57A69 || 105 || 701 || Null automatic application download flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57C69 || 105 || 702 || Null notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57E69 || 105 || 703 || Null account notification settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58069 || 105 || 704 || Null account notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58E69 || 105 || 711 || Null vibration master volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59069 || 105 || 712 || Null NX controller settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59269 || 105 || 713 || Null NX controller settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59469 || 105 || 714 || Null USB full key enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A269 || 105 || 721 || Null TV settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A469 || 105 || 722 || Null EDID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5B669 || 105 || 731 || Null data deletion settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CA69 || 105 || 741 || Null initial system applet program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CC69 || 105 || 742 || Null overlay disp program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CE69 || 105 || 743 || Null IsInRepairProcess buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5D069 || 105 || 744 || Null RequiresRunRepairTimeReviser buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5DE69 || 105 || 751 || Null device timezone location name buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5F269 || 105 || 761 || Null primary album storage buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60669 || 105 || 771 || Null USB 3.0 enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60869 || 105 || 772 || Null USB Type-C power source circuit version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A69 || 105 || 781 || Null battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x62E69 || 105 || 791 || Null serial number buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64269 || 105 || 801 || Null lock screen flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64669 || 105 || 803 || Null color set ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64869 || 105 || 804 || Null quest flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64A69 || 105 || 805 || Null wireless certification file size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64C69 || 105 || 806 || Null wireless certification file buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64E69 || 105 || 807 || Null initial launch settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65069 || 105 || 808 || Null device nickname buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65269 || 105 || 809 || Null battery percentage flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65469 || 105 || 810 || Null applet launch flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7E869 || 105 || 1012 || Null wireless LAN enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FA69 || 105 || 1021 || Null product model buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E69 || 105 || 1031 || Null NFC enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82269 || 105 || 1041 || Null ECI device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82469 || 105 || 1042 || Null E-Ticket device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x83669 || 105 || 1051 || Null sleep settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84A69 || 105 || 1061 || Null EULA version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84C69 || 105 || 1062 || Null EULA version entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x85E69 || 105 || 1071 || Null LDN channel buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87269 || 105 || 1081 || Null SSL key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87469 || 105 || 1082 || Null SSL certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x88669 || 105 || 1091 || Null telemetry flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89A69 || 105 || 1101 || Null Gamecard key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89C69 || 105 || 1102 || Null Gamecard certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8AE69 || 105 || 1111 || Null PTM battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B069 || 105 || 1112 || Null PTM fuel gauge parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C269 || 105 || 1121 || Null ECI device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C469 || 105 || 1122 || Null E-Ticket device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D669 || 105 || 1131 || Null speaker parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EA69 || 105 || 1141 || Null firmware version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EC69 || 105 || 1142 || Null firmware version digest buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EE69 || 105 || 1143 || Null rebootless system update version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8FE69 || 105 || 1151 || Null Mii author ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x91269 || 105 || 1161 || Null fatal flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x92669 || 105 || 1171 || Null auto update enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x93A69 || 105 || 1181 || Null external RTC reset flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x94E69 || 105 || 1191 || Null push notification activity mode buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x96269 || 105 || 1201 || Null service discovery control setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x97669 || 105 || 1211 || Null error report share permission buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x98A69 || 105 || 1221 || Null LCD vendor ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x99E69 || 105 || 1231 || Null console SixAxis sensor acceleration bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A069 || 105 || 1232 || Null console SixAxis sensor angular velocity bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A269 || 105 || 1233 || Null console SixAxis sensor acceleration gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A469 || 105 || 1234 || Null console SixAxis sensor angular velocity gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A669 || 105 || 1235 || Null console SixAxis sensor angular velocity time bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A869 || 105 || 1236 || Null console SixAxis sensor angular acceleration buffer &lt;br /&gt;
|-&lt;br /&gt;
| 0x9B269 || 105 || 1241 || Null keyboard layout buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9BA69 || 105 || 1245 || Invalid keyboard layout&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C669 || 105 || 1251 || Null web inspector flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C869 || 105 || 1252 || Null allowed SSL hosts buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CA69 || 105 || 1253 || Null allowed SSL hosts entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CC69 || 105 || 1254 || Null host FS mount point buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9EE69 || 105 || 1271 || Null Amiibo key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F069 || 105 || 1272 || Null Amiibo ECQV certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F269 || 105 || 1273 || Null Amiibo ECDSA certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F469 || 105 || 1274 || Null Amiibo ECQV BLS key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F669 || 105 || 1275 || Null Amiibo ECQV BLS certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F869 || 105 || 1276 || Null Amiibo ECQV BLS root certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x272 || 114 || 1 || Generic error&lt;br /&gt;
|-&lt;br /&gt;
| 0xC72 || 114 || 6 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || 116 || 0 || Time service not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x274 || 116 || 1 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC74 || 116 || 102 || Time not set / Clock Source Id mismatch&lt;br /&gt;
|-&lt;br /&gt;
| 0x19074 || 116 || 200 || Invalid time comparison&lt;br /&gt;
|-&lt;br /&gt;
| 0x19274 || 116 || 201 || Signed overflow/underflow&lt;br /&gt;
|-&lt;br /&gt;
| 0x64274 || 116 || 801 || Memory allocation failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x70A74 || 116 || 901 || Null pointer&lt;br /&gt;
|-&lt;br /&gt;
| 0x70C74 || 116 || 902 || Value out of valid range&lt;br /&gt;
|-&lt;br /&gt;
| 0x70E74 || 116 || 903 || TimeZoneRule conversion failed&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BA74 || 116 || 989 || TimeZone location name not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BC74 || 116 || 990 || Unimplemented functionality&lt;br /&gt;
|-&lt;br /&gt;
| 0x27A || 122 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x47A || 122 || 2 || Object not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x67A || 122 || 3 || Object locked/in used&lt;br /&gt;
|-&lt;br /&gt;
| 0x87A || 122 || 4 || Target already mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0xA7A || 122 || 5 || Target not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0xC7A || 122 || 6 || Object already opened&lt;br /&gt;
|-&lt;br /&gt;
| 0xE7A || 122 || 7 || Object not opened&lt;br /&gt;
|-&lt;br /&gt;
| 0xA07A || 122 || 80 || Passphrase not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA27A || 122 || 81 || Data verification failed&lt;br /&gt;
|-&lt;br /&gt;
| 0xB47A || 122 || 90 || Invalid API call&lt;br /&gt;
|-&lt;br /&gt;
| 0xC47A || 122 || 98 || Invalid operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x287C || 124 || 20 || Argument is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C7C || 124 || 22 || Argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C7C || 124 || 30 || Bad input buffer size&lt;br /&gt;
|-&lt;br /&gt;
| 0x407C || 124 || 32 || Invalid input buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x27E || 126 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x87E || 126 || 4 || Entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE7E || 126 || 67 || Invalid database signature value (should be &amp;quot;NFDB&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0xD27E || 126 || 69 || Invalid database entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1987E || 126 || 204 || Development/debug-only behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x480 || 128 || 2 || IStorage not available.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4680 || 128 || 35 || Error while launching applet.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A80 || 128 || 37 || Title-ID not found. Caused by code 0x410 when applet launch fails&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E880 || 128 || 500 || Invalid input&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EC80 || 128 || 502 || IStorage has already been opened by another accessor&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE80 || 128 || 503 || IStorage Read/Write out-of-bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x3FE80 || 128 || 511 || IStorage opened as wrong type (data opened as transfermem, transfermem opened as data)&lt;br /&gt;
|-&lt;br /&gt;
| 0x40080 || 128 || 512 || Unbalanced fatal section leave (returned when executing LeaveFatalSection without a preceding EnterFatalSection call)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B080 || 128 || 600 || Failed to allocate memory for IStorage&lt;br /&gt;
|-&lt;br /&gt;
| 0x59080 || 128 || 712 || Thread stack pool exhausted (out of memory)&lt;br /&gt;
|-&lt;br /&gt;
| 0x79C80 || 128 || 974 || DebugMode not enabled&lt;br /&gt;
|-&lt;br /&gt;
| 0x7A880 || 128 || 980 || &amp;lt;code&amp;gt;am.debug!dev_function&amp;lt;/code&amp;gt; setting needs to be set / DebugMode not enabled&lt;br /&gt;
|-&lt;br /&gt;
| 0x7CC80 || 128 || 998 || Not implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC81 || 129 || 102 || Transmission not agreed&lt;br /&gt;
|-&lt;br /&gt;
| 0xD281 || 129 || 105 || Network unavailable&lt;br /&gt;
|-&lt;br /&gt;
| 0x7DA81 || 129 || 1005 || HTTP error: Couldnt resolve proxy&lt;br /&gt;
|-&lt;br /&gt;
| 0x7DC81 || 129 || 1006 || HTTP error: Couldnt resolve host&lt;br /&gt;
|-&lt;br /&gt;
| 0x7DE81 || 129 || 1007 || HTTP error: Couldnt connect&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FE81 || 129 || 1023 || HTTP error: Write error&lt;br /&gt;
|-&lt;br /&gt;
| 0x80481 || 129 || 1026 || HTTP error: Read error&lt;br /&gt;
|-&lt;br /&gt;
| 0x80681 || 129 || 1027 || HTTP error: Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x80881 || 129 || 1028 || HTTP error: Operation timedout&lt;br /&gt;
|-&lt;br /&gt;
| 0x81681 || 129 || 1035 || HTTP error: SSL connect error&lt;br /&gt;
|-&lt;br /&gt;
| 0x83681 || 129 || 1051 || HTTP error: Peer failed verification&lt;br /&gt;
|-&lt;br /&gt;
| 0x83881 || 129 || 1052 || HTTP error: Got nothing&lt;br /&gt;
|-&lt;br /&gt;
| 0x83E81 || 129 || 1055 || HTTP error: Send error&lt;br /&gt;
|-&lt;br /&gt;
| 0x84081 || 129 || 1056 || HTTP error: Recv error&lt;br /&gt;
|-&lt;br /&gt;
| 0x84481 || 129 || 1058 || HTTP error: SSL cert problem&lt;br /&gt;
|-&lt;br /&gt;
| 0x84681 || 129 || 1059 || HTTP error: SSL cipher&lt;br /&gt;
|-&lt;br /&gt;
| 0x84881 || 129 || 1060 || HTTP error: SSL CA cert&lt;br /&gt;
|-&lt;br /&gt;
| 0x12C081 || 129 || 2400 || Server error: Status 400&lt;br /&gt;
|-&lt;br /&gt;
| 0x12C281 || 129 || 2401 || Server error: Status 401&lt;br /&gt;
|-&lt;br /&gt;
| 0x12C681 || 129 || 2403 || Server error: Status 403&lt;br /&gt;
|-&lt;br /&gt;
| 0x138881 || 129 || 2500 || Server error: Status 500&lt;br /&gt;
|-&lt;br /&gt;
| 0x138E81 || 129 || 2503 || Server error: Status 503&lt;br /&gt;
|-&lt;br /&gt;
| 0x139081 || 129 || 2504 || Server error: Status 504&lt;br /&gt;
|-&lt;br /&gt;
| 0xA83 || 131 || 5 || Unrecognized applet ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x485 || 133 || 2 || Invalid DVFS table ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x885 || 133 || 4 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x1489 || 137 || 10 || Already initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C89 || 137 || 30 || Task not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x5089 || 137  || 40 || Memory allocation failed / bad input.&lt;br /&gt;
|-&lt;br /&gt;
| 0x29489 || 137 || 330 || [[NCM_services#ContentMetaType|ContentMetaType]] doesn&#039;t match SystemUpdate.&lt;br /&gt;
|-&lt;br /&gt;
| 0x271289 || 137 || 5001 || One of the following socket errors occurred: ENETDOWN, ECONNRESET, EHOSTDOWN, EHOSTUNREACH, or EPIPE. Also occurs when the received size doesn&#039;t match the expected size (recvfrom() ret with [[NIM_services#Contents_Delivery|meta_size]] data receiving).&lt;br /&gt;
|-&lt;br /&gt;
| 0x272489 || 137 || 5010 || Socket was [[Sockets_services|shutdown()]] due to the async operation being cancelled.&lt;br /&gt;
|-&lt;br /&gt;
| 0x273889 || 137 || 5020 || Too many internal output entries with [[NIM_services|nim]] cmd42, system is [[NIM_services#Contents_Delivery|Internet-connected]], or an unrecognized socket error occured.&lt;br /&gt;
|-&lt;br /&gt;
| 0x27D889 || 137 || 5100 || Connection timeout.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A4489 || 137 || 5410 || Invalid [[NIM_services#Contents_Delivery|ID]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A5889 || 137 || 5420 || Invalid [[NIM_services#Contents_Delivery|magicnum]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A6C89 || 137 || 5430 || Invalid [[NIM_services#Contents_Delivery|data_size]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A8089 || 137 || 5440 || The input [[NCM_services#ContentMetaKey|ContentMetaKey]] doesn&#039;t match the ContentMetaKey in state.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A9489 || 137 || 5450 || Invalid [[NIM_services#Contents_Delivery|meta_size]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x3CF089 || 137 || 7800 || Unknown/invalid libcurl error.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E8289-0x3F4089 || 137 || 8001-8096 || libcurl error 1-96. Some of the libcurl errors in the error-table map to the above unknown-libcurl-error however.&lt;br /&gt;
|-&lt;br /&gt;
| 0x68A || 138 || 3 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x668C || 140 || 51 || USB data-transfer in progress&lt;br /&gt;
|-&lt;br /&gt;
| 0xD48C || 140 || 106 || Invalid descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x1928C || 140 || 201 || USB device not bound / interface already enabled&lt;br /&gt;
|-&lt;br /&gt;
| 0x290 || 144 || 1 || Exited Abnormally ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Abormal)&lt;br /&gt;
|-&lt;br /&gt;
| 0x690 || 144 || 3 || Canceled ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Canceled)&lt;br /&gt;
|-&lt;br /&gt;
| 0x890 || 144 || 4 || Rejected&lt;br /&gt;
|-&lt;br /&gt;
| 0xA90 || 144 || 5 || Exited Unexpectedly ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Unexpected)&lt;br /&gt;
|-&lt;br /&gt;
| 0x299 || 153 || 1 || Invalid audio device&lt;br /&gt;
|-&lt;br /&gt;
| 0x499 || 153 || 2 || Operation couldn&#039;t complete successfully&lt;br /&gt;
|-&lt;br /&gt;
| 0x699 || 153 || 3 || Invalid sample rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x899 || 153 || 4 || Buffer size too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x1099 || 153 || 8 || Too many buffers are still unreleased&lt;br /&gt;
|-&lt;br /&gt;
| 0x1499 || 153 || 10 || Invalid channel count&lt;br /&gt;
|-&lt;br /&gt;
| 0x40299 || 153 || 513 || Invalid/Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0099 || 153 || 1536 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0899 || 153 || 1540 || Audio output was already started&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C9D || 157 || 30 || Address is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E9D || 157 || 31 || PID is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x549D || 157 || 42 || Already bound&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC9D || 157 || 102 || Invalid PID&lt;br /&gt;
|-&lt;br /&gt;
| 0x49E || 158 || 2 || Unable to retrieve BootImagePackage from ContentMetaDatabase&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA3 || 163 ||  5 || System is booting up repair process without VOL+ held down.&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA3 || 163 || 6 || System is booting up repair process that requires RepairTimeReviser but does not have special cartridge inserted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8B2 || 178 || 100 || Invalid user ID&lt;br /&gt;
|-&lt;br /&gt;
| 0xCAB2 || 178 || 101 || User does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 0x12CB2 || 178 || 150 || Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| 0x190B2 || 178 || 200 || File storage failure&lt;br /&gt;
|-&lt;br /&gt;
| 0xAB4 || 180 || 5 || Invalid event ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4EB5 || 181 || 4007 || Device authentication error: System update required&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F50B5 || 181 || 4008 || Device authentication error: Banned&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F52B5 || 181 || 4009 || Device authentication error: Internal server error&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F54B5 || 181 || 4007 || Device authentication error: Under maintenance&lt;br /&gt;
|-&lt;br /&gt;
| 0x58ACA || 202 || 709 || Npad ID is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF0CD || 205 || 120 || IR image data not available/ready.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A8CD || 205 || 212 || IR camera handle pointer is null.&lt;br /&gt;
|-&lt;br /&gt;
| 0x198CD || 205 || 204 || IR camera invalid handle value.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== FS Error codes ===&lt;br /&gt;
The following are the error codes recognized by nn::fs::detail::LogErrorMessage found in some [[Factory Setup|factory]] titles:&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Description || Message&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 106 || nn::svc::ResultInvalidCurrentMemory: Error: Passed buffer is not usable for fs library. See a manual of fs library for more information.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 60 || nn::fs::ResultMountNameAlreadyExists: Error: Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 1001 || nn::fs::ResultPartitionNotFound: Error: Specified partition is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 1002 || nn::fs::ResultTargetNotFound: Error: Specified target is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA002 - 0x138602 || 2000 - 2499 || nn::fs::ResultSdCardAccessFailed: Error: Failed to access SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x136802 - 0x176E02 || 2500 - 2999 || nn::fs::ResultGameCardAccessFailed: Error: Failed to access game card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 3001 || nn::fs::ResultNotImplemented: Error: Specified operation is not implemented.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177A02 || 3005 || nn::fs::ResultOutOfRange: Error: Specified value is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0x190002 - 0x1B5602 || 3200 - 3499 || nn::fs::ResultAllocationMemoryFailed: Error: Failed to allocate memory.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B5802 - 0x1F3E02 || 3500 - 3999 || nn::fs::ResultMmcAccessFailed: Error: Failed to access MMC.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4202 - 0x219602 || 4001 - 4299 || nn::fs::ResultRomCorrupted: Error: ROM is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x219A02 - 0x232602 || 4301 - 4499 || nn::fs::ResultSaveDataCorrupted: Error: Save data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x232A02 - 0x23EE02 || 4501 - 4599 || nn::fs::ResultNcaCorrupted: Error: NCA is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x23F202 - 0x243E02 || 4601 - 4639 || nn::fs::ResultIntegrityVerificationStorageCorrupted: Error: Integrity verification failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x244202 - 0x246602 || 4641 - 4659 || nn::fs::ResultPartitionFileSystemCorrupted: Error: Partition FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x246A02 - 0x248E02 || 4661 - 4679 || nn::fs::ResultBuiltInStorageCorrupted: Error: Built-in-storage is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249202 - 0x24B602 || 4681 - 4699 || nn::fs::ResultFatFileSystemCorrupted: Error: FAT FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24BA02 - 0x24DE02 || 4701 - 4719 || nn::fs::ResultHostFileSystemCorrupted: Error: HOST FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4002 - 0x270E02 || 4000, 4300, 4500, 4600, 4640, 4660, 4680, 4700, 4720-4999 || nn::fs::ResultDataCorrupted: Error: Data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x271002 - 0x2EDE02 || 5000-5999 || nn::fs::ResultUnexpected: Error: Unexpected failure occurred.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE002 - 0x32C602 || 6000-6499 || nn::fs::ResultPreconditionViolation: Error: Precondition violation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 - 0x306E02 || 6001-6199 || nn::fs::ResultInvalidArgument: Error: Invalid argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE402 - 0x2F1A02 || 6002-6029 || nn::fs::ResultInvalidPath: Error: Invalid path was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE602 || 6003 || nn::fs::ResultTooLongPath: Error: Too long path was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE802 || 6004 || nn::fs::ResultInvalidCharacter: Error: Invalid path character was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEA02 || 6005 || nn::fs::ResultInvalidPathFormat: Error: Invalid path format was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 6061 || nn::fs::ResultInvalidOffset: Error: Invalid offset was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5C02 || 6062 || nn::fs::ResultInvalidSize: Error: Invalid size was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5E02 || 6063 || nn::fs::ResultNullptrArgument: Error: Null pointer argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F6202 || 6065 || nn::fs::ResultInvalidMountName: Error: Invalid mount name was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F6402 || 6066 || nn::fs::ResultExtensionSizeTooLarge: Error: Extension size exceeds max value set in nmeta file.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F6602 || 6067 || nn::fs::ResultExtensionSizeInvalid: Error: Extension size is not a multiple of nn::fs::SaveDataExtensionUnitSize.&lt;br /&gt;
|-&lt;br /&gt;
| 0x307202 || 6201 || nn::fs::ResultFileExtensionWithoutOpenModeAllowAppend: Error: OpenMode_AllowAppend is required for implicit extension of file size by WriteFile().&lt;br /&gt;
|-&lt;br /&gt;
| 0x307002 - 0x313602 || 6200, 6202 - 6299 || nn::fs::ResultInvalidOperationForOpenMode: Error: Invalid operation for the open mode.&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 - 0x31FE02 || 6300-6399 || nn::fs::ResultUnsupportedOperation: Error: Unsupported operation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 - 0x326202 || 6400-6449 || nn::fs::ResultPermissionDenied: Error: Permission denied.&lt;br /&gt;
|-&lt;br /&gt;
| 0x327202 || 6457 || nn::fs::ResultWriteModeFileNotClosed: Error: Close files opened in write mode before committing.&lt;br /&gt;
|-&lt;br /&gt;
| 0x328202 || 6465 || nn::fs::ResultUserNotExist: Error: Specified user doesn&#039;t exist.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346402 || 6706 || nn::fs::ResultMappingTableFull: Error: Enough journal space is not left.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346A02 || 6709 || nn::fs::ResultOpenCountLimit: Error: The open count of files and directories reached the limitation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x353602 || 6811 || nn::fs::ResultMapFull: Error: Save data extension count reached the limitation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x35F202 || 6905 || nn::fs::ResultNotMounted: Error: Specified mount name is not found.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Fatal Errors =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Description&lt;br /&gt;
|-&lt;br /&gt;
| 2162-0002&lt;br /&gt;
| Can be triggered by running [[SVC|svcBreak]]. The svcBreak params have no effect on the value of the thrown error-code.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0000&lt;br /&gt;
| Userland ARM undefined instruction exception&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0001&lt;br /&gt;
| Userland ARM prefetch-abort due to PC set to non-executable region&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0002&lt;br /&gt;
| Userland ARM data abort. Also caused by abnormal process termination via [[SVC|svcExitProcess]]. Note: directly jumping to nnMain()-retaddr from non-main-thread has the same result.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0003&lt;br /&gt;
| Userland PC address not aligned to 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0008&lt;br /&gt;
| Can occur when attempting to call an svc outside the whitelist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Support Errors =&lt;br /&gt;
This section is for Support Errors displayed by the error-applet, separate from the normal Result Errors.&lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 520 || NVIDIA Error Report (nverpt)&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [[Internet_Browser|General web-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 809 || [[Internet_Browser|WifiWebAuthApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [[Internet_Browser|Whitelisted-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 811 || [[Internet_Browser|ShopN]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
8XX is for/includes system applets.&lt;br /&gt;
&lt;br /&gt;
== Error codes ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| {web-applets listed above}&lt;br /&gt;
| 2750&lt;br /&gt;
| MP4 parsing failed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Normal error-codes displayed by the system also use the same format as fatal-errors.&lt;br /&gt;
&lt;br /&gt;
= Homebrew Errors =&lt;br /&gt;
Custom errors used by homebrew libraries and applications.&lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 345 || libnx&lt;br /&gt;
|-&lt;br /&gt;
| 346 || [[Homebrew ABI]]&lt;br /&gt;
|-&lt;br /&gt;
| 347 || Homebrew Loader&lt;br /&gt;
|-&lt;br /&gt;
| 348 || libnx NVIDIA errors&lt;br /&gt;
|-&lt;br /&gt;
| 349 || libnx Binder errors&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=8519</id>
		<title>Error codes</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=8519"/>
		<updated>2019-12-05T19:40:56Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* Error codes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Structure =&lt;br /&gt;
These have been redesigned from the 3DS so that they fit within a Aarch64 MOV instruction immediate most of the time (without requiring the additional MOVK).&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Bits || Field&lt;br /&gt;
|-&lt;br /&gt;
| 8-0 || Module&lt;br /&gt;
|-&lt;br /&gt;
| 21-9 || Description&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When a fatal-error is received the error code is outputted using the following formatter:&lt;br /&gt;
  %04d-%04d&lt;br /&gt;
&lt;br /&gt;
.. where the first code is &amp;lt;code&amp;gt;2000 + Module&amp;lt;/code&amp;gt;, and the other being &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;. Bits &amp;gt;=22 from the error-code are unused when displaying fatal-errors, since the Description ends with bit21.&lt;br /&gt;
&lt;br /&gt;
= Result Errors =&lt;br /&gt;
General errors used by system modules and applications.&lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Kernel&lt;br /&gt;
|-&lt;br /&gt;
| 2 || FS&lt;br /&gt;
|-&lt;br /&gt;
| 3 || OS (Memory, Thread, Mutex, NVIDIA)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || HTCS&lt;br /&gt;
|-&lt;br /&gt;
| 5 || NCM&lt;br /&gt;
|-&lt;br /&gt;
| 6 || DD&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Debug Monitor&lt;br /&gt;
|-&lt;br /&gt;
| 8 || LR&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Loader&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CMIF (IPC command interface)&lt;br /&gt;
|-&lt;br /&gt;
| 11 || HIPC (IPC)&lt;br /&gt;
|-&lt;br /&gt;
| 15 || PM&lt;br /&gt;
|-&lt;br /&gt;
| 16 || NS&lt;br /&gt;
|-&lt;br /&gt;
| 17 || Sockets&lt;br /&gt;
|-&lt;br /&gt;
| 18 || HTC&lt;br /&gt;
|-&lt;br /&gt;
| 19 || TSC&lt;br /&gt;
|-&lt;br /&gt;
| 20 || NCM (content)&lt;br /&gt;
|-&lt;br /&gt;
| 21 || SM&lt;br /&gt;
|-&lt;br /&gt;
| 22 || RO (userland)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || SDMMC&lt;br /&gt;
|-&lt;br /&gt;
| 25 || OVLN&lt;br /&gt;
|-&lt;br /&gt;
| 26 || SPL&lt;br /&gt;
|-&lt;br /&gt;
| 30 || Bus&lt;br /&gt;
|-&lt;br /&gt;
| 100 || ETHC&lt;br /&gt;
|-&lt;br /&gt;
| 101 || I2C&lt;br /&gt;
|-&lt;br /&gt;
| 102 || GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 103 || UART&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Settings&lt;br /&gt;
|-&lt;br /&gt;
| 107 || WLAN&lt;br /&gt;
|-&lt;br /&gt;
| 108 || XCD&lt;br /&gt;
|-&lt;br /&gt;
| 110 || NIFM&lt;br /&gt;
|-&lt;br /&gt;
| 111 || Hwopus&lt;br /&gt;
|-&lt;br /&gt;
| 112 || Sasbus&lt;br /&gt;
|-&lt;br /&gt;
| 113 || Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
| 114 || VI&lt;br /&gt;
|-&lt;br /&gt;
| 115 || NFP&lt;br /&gt;
|-&lt;br /&gt;
| 116 || Time&lt;br /&gt;
|-&lt;br /&gt;
| 117 || FGM&lt;br /&gt;
|-&lt;br /&gt;
| 118 || OE&lt;br /&gt;
|-&lt;br /&gt;
| 120 || PCIe&lt;br /&gt;
|-&lt;br /&gt;
| 121 || Friends&lt;br /&gt;
|-&lt;br /&gt;
| 122 || BCAT&lt;br /&gt;
|-&lt;br /&gt;
| 123 || SSL&lt;br /&gt;
|-&lt;br /&gt;
| 124 || Account&lt;br /&gt;
|-&lt;br /&gt;
| 125 || News&lt;br /&gt;
|-&lt;br /&gt;
| 126 || Mii&lt;br /&gt;
|-&lt;br /&gt;
| 127 || NFC&lt;br /&gt;
|-&lt;br /&gt;
| 128 || AM&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Play Report&lt;br /&gt;
|-&lt;br /&gt;
| 130 || AHID&lt;br /&gt;
|-&lt;br /&gt;
| 132 || Home Menu (Qlaunch)&lt;br /&gt;
|-&lt;br /&gt;
| 133 || PCV&lt;br /&gt;
|-&lt;br /&gt;
| 134 || OMM&lt;br /&gt;
|-&lt;br /&gt;
| 135 || BPC&lt;br /&gt;
|-&lt;br /&gt;
| 136 || PSM&lt;br /&gt;
|-&lt;br /&gt;
| 137 || NIM&lt;br /&gt;
|-&lt;br /&gt;
| 138 || PSC&lt;br /&gt;
|-&lt;br /&gt;
| 139 || TC&lt;br /&gt;
|-&lt;br /&gt;
| 140 || USB&lt;br /&gt;
|-&lt;br /&gt;
| 141 || NSD&lt;br /&gt;
|-&lt;br /&gt;
| 142 || PCTL&lt;br /&gt;
|-&lt;br /&gt;
| 143 || BTM&lt;br /&gt;
|-&lt;br /&gt;
| 144 || LA (Library Applet)&lt;br /&gt;
|-&lt;br /&gt;
| 145 || ETicket&lt;br /&gt;
|-&lt;br /&gt;
| 146 || NGC (Bad Words)&lt;br /&gt;
|-&lt;br /&gt;
| 147 || Error Report&lt;br /&gt;
|-&lt;br /&gt;
| 148 || APM&lt;br /&gt;
|-&lt;br /&gt;
| 149 || CEC&lt;br /&gt;
|-&lt;br /&gt;
| 150 || Profiler&lt;br /&gt;
|-&lt;br /&gt;
| 151 || Error Upload&lt;br /&gt;
|-&lt;br /&gt;
| 153 || Audio&lt;br /&gt;
|-&lt;br /&gt;
| 154 || NPNS&lt;br /&gt;
|-&lt;br /&gt;
| 155 || NPNS XMPP Stream&lt;br /&gt;
|-&lt;br /&gt;
| 157 || ARP&lt;br /&gt;
|-&lt;br /&gt;
| 158 || Updater&lt;br /&gt;
|-&lt;br /&gt;
| 159 || SWKBD&lt;br /&gt;
|-&lt;br /&gt;
| 161 || Mifare&lt;br /&gt;
|-&lt;br /&gt;
| 162 || Userland (assert)&lt;br /&gt;
|-&lt;br /&gt;
| 163 || Fatal&lt;br /&gt;
|-&lt;br /&gt;
| 164 || Shop&lt;br /&gt;
|-&lt;br /&gt;
| 165 || SPSM&lt;br /&gt;
|-&lt;br /&gt;
| 167 || BGTC&lt;br /&gt;
|-&lt;br /&gt;
| 168 || Userland (crash)&lt;br /&gt;
|-&lt;br /&gt;
| 169 || Sasbus Periodic Receive Mode&lt;br /&gt;
|-&lt;br /&gt;
| 178 || PDM&lt;br /&gt;
|-&lt;br /&gt;
| 179 || OLSC&lt;br /&gt;
|-&lt;br /&gt;
| 180 || SREPO&lt;br /&gt;
|-&lt;br /&gt;
| 181 || Dauth&lt;br /&gt;
|-&lt;br /&gt;
| 187 || Sasbus&lt;br /&gt;
|-&lt;br /&gt;
| 191 || RTC&lt;br /&gt;
|-&lt;br /&gt;
| 192 || Regulator&lt;br /&gt;
|-&lt;br /&gt;
| 193 || Led&lt;br /&gt;
|-&lt;br /&gt;
| 197 || Clkrst&lt;br /&gt;
|-&lt;br /&gt;
| 202 || HID&lt;br /&gt;
|-&lt;br /&gt;
| 203 || LDN&lt;br /&gt;
|-&lt;br /&gt;
| 205 || Irsensor&lt;br /&gt;
|-&lt;br /&gt;
| 206 || Capture&lt;br /&gt;
|-&lt;br /&gt;
| 208 || Manu&lt;br /&gt;
|-&lt;br /&gt;
| 209 || ATK&lt;br /&gt;
|-&lt;br /&gt;
| 210 || Web&lt;br /&gt;
|-&lt;br /&gt;
| 211 || LCS (Local Content Sharing)&lt;br /&gt;
|-&lt;br /&gt;
| 212 || GRC&lt;br /&gt;
|-&lt;br /&gt;
| 216 || Migration&lt;br /&gt;
|-&lt;br /&gt;
| 217 || Migration Idc Server&lt;br /&gt;
|-&lt;br /&gt;
| 229 || Notification&lt;br /&gt;
|-&lt;br /&gt;
| 230 || Ins&lt;br /&gt;
|-&lt;br /&gt;
| 231 || Lp2p&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Error codes ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E01 || 1 || 7 || Session count exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C01 || 1 || 14 || Invalid kernel capability descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x4201 || 1 || 33 || Not Implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x7601 || 1 || 59 || Thread terminated/termination requested&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C01 || 1 || 70 || No more debug events&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA01 || 1 || 101 || Invalid size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC01 || 1 || 102 || Invalid address&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE01 || 1 || 103 || Resource exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD001 || 1 || 104 || Memory exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD201 || 1 || 105 || Handle-table exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 1 || 106 || Invalid memory state / invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD801 || 1 || 108 || Invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC01 || 1 || 110 || Invalid memory range&lt;br /&gt;
|-&lt;br /&gt;
| 0xE001 || 1 || 112 || Invalid thread priority.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE201 || 1 || 113 || Invalid processor id.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE401 || 1 || 114 || Invalid handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE601 || 1 || 115 || Invalid pointer/Syscall copy from user failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE801 || 1 || 116 || Invalid combination&lt;br /&gt;
|-&lt;br /&gt;
| 0xEA01 || 1 || 117 || Time out. Also when you give 0 handles to svcWaitSynchronizationN.&lt;br /&gt;
|-&lt;br /&gt;
| 0xEC01 || 1 || 118 || Operation canceled&lt;br /&gt;
|-&lt;br /&gt;
| 0xEE01 || 1 || 119 || Out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0xF001 || 1 || 120 || Invalid enum&lt;br /&gt;
|-&lt;br /&gt;
| 0xF201 || 1 || 121 || No such entry&lt;br /&gt;
|-&lt;br /&gt;
| 0xF401 || 1 || 122 || Irq/DeviceAddressSpace/{...} already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xF601 || 1 || 123 || Port remote dead&lt;br /&gt;
|-&lt;br /&gt;
| 0xF801 || 1 || 124 || [Usermode] Unhandled interrupt/exception&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA01 || 1 || 125 || Invalid state&lt;br /&gt;
|-&lt;br /&gt;
| 0xFC01 || 1 || 126 || Reserved value&lt;br /&gt;
|-&lt;br /&gt;
| 0xFE01 || 1 || 127 || Invalid hardware breakpoint&lt;br /&gt;
|-&lt;br /&gt;
| 0x10001 || 1 || 128 || [Usermode] Fatal exception&lt;br /&gt;
|-&lt;br /&gt;
| 0x10201 || 1 || 129 || Last thread didn&#039;t belong to your process&lt;br /&gt;
|-&lt;br /&gt;
| 0x10601 || 1 || 131 || Port closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x10801 || 1 || 132 || Resource limit exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x20801 || 1 || 260 || Command buffer too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x40A01 || 1 || 517 || Invalid process ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40C01 || 1 || 518 || Invalid thread ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40E01 || 1 || 519 || Invalid thread ID (used in svcGetDebugThreadParam).&lt;br /&gt;
|-&lt;br /&gt;
| 0x41001 || 1 || 520 || Process not being debugged&lt;br /&gt;
|-&lt;br /&gt;
| 0x202 || 2 || 1 || Path does not exist.&lt;br /&gt;
|-&lt;br /&gt;
| 0x402 || 2 || 2 || Path already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE02 || 2 || 7 || Resource already in use (file already opened, savedata filesystem already mounted).&lt;br /&gt;
|-&lt;br /&gt;
| 0x4602 || 2 || 35 || Not enough free space for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4802 || 2 || 36 || Not enough free space for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A02 || 2 || 37 || Not enough free space for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C02 || 2 || 38 || Not enough free space for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4E02 || 2 || 39 || Not enough free space on SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6402 || 2 || 50 || NCA is older than version 3, or NCA SDK version is older than 0.11.0.0&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 2 || 60 || Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 2 || 1001 || Process does not have RomFs &lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 2 || 1002 || Title-id not found / savedata not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA202 || 2 || 2001 || SD card not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13B002 || 2 || 2520 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13DA02 || 2 || 2541 || Version check failed when mounting gamecard sysupdate partition?&lt;br /&gt;
|-&lt;br /&gt;
| 0x171402 || 2 || 2954 || Invalid gamecard handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 2 || 3001 || Unimplemented behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x177602 || 2 || 3003 || File/Directory already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x190202 || 2 || 3201 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190602 || 2 || 3203 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190802 || 2 || 3204 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190A02 || 2 || 3205 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190C02 || 2 || 3206 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x191002 || 2 || 3208 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x195802 || 2 || 3244 || Allocation failure related to SD cards&lt;br /&gt;
|-&lt;br /&gt;
| 0x196002 || 2 || 3248 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x196202 || 2 || 3249 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A3E02 || 2 || 3359 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4002 || 2 || 3360 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4A02 || 2 || 3365 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x21BC02 || 2 || 4318 || Invalid save data filesystem magic (valid magic is SAVE in ASCII)&lt;br /&gt;
|-&lt;br /&gt;
| 0x234202 || 2 || 4513 || Error reading ACID section in NPDM&lt;br /&gt;
|-&lt;br /&gt;
| 0x234402 || 2 || 4514 || Invalid NPDM ACID section size&lt;br /&gt;
|-&lt;br /&gt;
| 0x234602 || 2 || 4515 || Last byte of the ACID modulus is zero&lt;br /&gt;
|-&lt;br /&gt;
| 0x234802 || 2 || 4516 || Invalid ACID fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234A02 || 2 || 4517 || Invalid NCA magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x234C02 || 2 || 4518 || Invalid NCA header fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234E02 || 2 || 4519 || Invalid NCA header ACID signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x235002 || 2 || 4520 || Invalid NCA header section hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x235202 || 2 || 4521 || Invalid NCA Key index&lt;br /&gt;
|-&lt;br /&gt;
| 0x235602 || 2 || 4523 || Invalid encryption type&lt;br /&gt;
|-&lt;br /&gt;
| 0x235802 || 2 || 4524 || Redirection BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235A02 || 2 || 4525 || Encryption BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235C02 || 2 || 4526 || Redirection BKTR table end offset is past the Encryption BKTR table start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x235E02 || 2 || 4527 || NCA-path used with the wrong titleID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x236002 || 2 || 4528 || NCA header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236202 || 2 || 4529 || NCA FS header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236802 || 2 || 4532 || PartitionFS hash block size is not a power of 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236A02 || 2 || 4533 || PartitionFS hash &amp;quot;always_2&amp;quot; field is not 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236C02 || 2 || 4534 || PartitionFS hash table is too small for main data&lt;br /&gt;
|-&lt;br /&gt;
| 0x236E02 || 2 || 4535 || Invalid PartitionFS block hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244402 || 2 || 4642 || Invalid Partition file hashed region bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x244602 || 2 || 4643 || Invalid Partition FS hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244802 || 2 || 4644 || Invalid PFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244A02 || 2 || 4645 || Invalid HFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244C02 || 2 || 4646 || Invalid name offset for Partition FS file entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x244E02 || 2 || 4647 || Calculated Partition FS header size changed between 2 consecutive reads&lt;br /&gt;
|-&lt;br /&gt;
| 0x249802 || 2 || 4684 || Invalid FAT file number.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249C02 || 2 || 4686 || Invalid FAT format for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249E02 || 2 || 4687 || Invalid FAT format for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A002 || 2 || 4688 || Invalid FAT format for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A202 || 2 || 4689 || Invalid FAT format for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x250E02 || 2 || 4743 || [[NAX0|Corrupted]] NAX0 header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x251002 || 2 || 4744 || Invalid [[NAX0]] magicnum.&lt;br /&gt;
|-&lt;br /&gt;
| 0x280202 || 2 || 5121 || Invalid FAT size&lt;br /&gt;
|-&lt;br /&gt;
| 0x280402 || 2 || 5122 || Invalid FAT BPB (BIOS Parameter Block)&lt;br /&gt;
|-&lt;br /&gt;
| 0x280602 || 2 || 5123 || Invalid FAT parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x280802 || 2 || 5124 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280A02 || 2 || 5125 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280C02 || 2 || 5126 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280E02 || 2 || 5127 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x296A02 || 2 || 5301 || Mountpoint not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 || 2 || 6001 || Invalid input&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE602 || 2 || 6003 || Path too long&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE802 || 2 || 6004 || Invalid character.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEA02 || 2 || 6005 || Invalid directory path.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEC02 || 2 || 6006 || Unable to retrieve directory from path&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 2 || 6061 || Offset outside storage&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 || 2 || 6300 || Operation not supported&lt;br /&gt;
|-&lt;br /&gt;
| 0x313A02 || 2 || 6301 || A specified filesystem has no MultiCommitTarget when doing a multi-filesystem commit&lt;br /&gt;
|-&lt;br /&gt;
| 0x313C02 || 2 || 6302 || Attempted to resize a nn::fs::SubStorage or BufferedStorage that is marked as non-resizable&lt;br /&gt;
|-&lt;br /&gt;
| 0x313E02 || 2 || 6303 || Attempted to resize a nn::fs::SubStorage or BufferedStorage when the SubStorage ends before the base storage&lt;br /&gt;
|-&lt;br /&gt;
| 0x314002 || 2 || 6304 || Attempted to call nn::fs::MemoryStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x314202 || 2 || 6305 || Invalid Operation ID in nn::fs::MemoryStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x314402 || 2 || 6306 || Invalid Operation ID in nn::fs::FileStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x314602 || 2 || 6307 || Invalid Operation ID in nn::fs::FileHandleStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x314802 || 2 || 6308 || Invalid Operation ID in nn::fssystem::SwitchStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x314A02 || 2 || 6309 || Invalid Operation ID in nn::fs::detail::StorageServiceObjectAdapter::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x314C02 || 2 || 6310 || Attempted to call nn::fssystem::AesCtrCounterExtendedStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x314E02 || 2 || 6311 || Attempted to call nn::fssystem::AesCtrCounterExtendedStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315002 || 2 || 6312 || Invalid Operation ID in nn::fssystem::AesCtrCounterExtendedStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x315202 || 2 || 6313 || Attempted to call nn::fssystem::AesCtrStorageExternal::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x315402 || 2 || 6314 || Attempted to call nn::fssystem::AesCtrStorageExternal::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315602 || 2 || 6315 || Attempted to call nn::fssystem::AesCtrStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315802 || 2 || 6316 || Attempted to call nn::fssystem::save::HierarchicalIntegrityVerificationStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315A02 || 2 || 6317 || Attempted to call nn::fssystem::save::HierarchicalIntegrityVerificationStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x315C02 || 2 || 6318 || Attempted to call nn::fssystem::save::IntegrityVerificationStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315E02 || 2 || 6319 || Attempted to invalidate the cache of a RomFs IVFC storage in nn::fssystem::save::IntegrityVerificationStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x316002 || 2 || 6320 || Invalid Operation ID in nn::fssystem::save::IntegrityVerificationStorage::OperateRange &lt;br /&gt;
|-&lt;br /&gt;
| 0x316202 || 2 || 6321 || Attempted to call nn::fssystem::save::BlockCacheBufferedStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x316402 || 2 || 6322 || Attempted to invalidate the cache of something other than a savedata IVFC storage in nn::fssystem::save::BlockCacheBufferedStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x316602 || 2 || 6323 || Invalid Operation ID in nn::fssystem::save::BlockCacheBufferedStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x316802 || 2 || 6324 || Attempted to call nn::fssystem::IndirectStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x316A02 || 2 || 6325 || Attempted to call nn::fssystem::IndirectStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x316C02 || 2 || 6326 || Invalid Operation ID in nn::fssystem::IndirectStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x316E02 || 2 || 6327 || Attempted to call nn::fssystem::SparseStorage::ZeroStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x317002 || 2 || 6328 || Attempted to call nn::fssystem::SparseStorage::ZeroStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317202 || 2 || 6329 || Attempted to call nn::fssystem::HierarchicalSha256Storage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317402 || 2 || 6330 || Attempted to call nn::fssystem::ReadOnlyBlockCacheStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x317602 || 2 || 6331 || Attempted to call nn::fssystem::ReadOnlyBlockCacheStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317802 || 2 || 6332 || Attempted to call nn::fssystem::IntegrityRomFsStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317A02 || 2 || 6333 || Attempted to call nn::fssystem::save::DuplexStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317C02 || 2 || 6334 || Invalid Operation ID in nn::fssystem::save::DuplexStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x317E02 || 2 || 6335 || Attempted to call nn::fssystem::save::HierarchicalDuplexStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318002 || 2 || 6336 || Attempted to call nn::fssystem::save::RemapStorage::GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318202 || 2 || 6337 || Attempted to call nn::fssystem::save::RemapStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318402 || 2 || 6338 || Invalid Operation ID in nn::fssystem::save::RemapStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x318602 || 2 || 6339 || Attempted to call nn::fssystem::save::IntegritySaveDataStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318802 || 2 || 6340 || Invalid Operation ID in nn::fssystem::save::IntegritySaveDataStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x318A02 || 2 || 6341 || Attempted to call nn::fssystem::save::JournalIntegritySaveDataStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318C02 || 2 || 6342 || Invalid Operation ID in nn::fssystem::save::JournalIntegritySaveDataStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x318E02 || 2 || 6343 || Attempted to call nn::fssystem::save::JournalStorage::GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x319002 || 2 || 6344 || Attempted to call nn::fssystem::save::JournalStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x319202 || 2 || 6345 || Invalid Operation ID in nn::fssystem::save::JournalStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x319402 || 2 || 6346 || Attempted to call nn::fssystem::save::UnionStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x319602 || 2 || 6347 || Attempted to call nn::fssystem::dbm::AllocationTableStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x319802 || 2 || 6348 || Attempted to call nn::fssrv::fscreator::WriteOnlyGameCardStorage::Read&lt;br /&gt;
|-&lt;br /&gt;
| 0x319A02 || 2 || 6349 || Attempted to call nn::fssrv::fscreator::WriteOnlyGameCardStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x319C02 || 2 || 6350 || Attempted to call nn::fssrv::fscreator::ReadOnlyGameCardStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x319E02 || 2 || 6351 || Attempted to call nn::fssrv::fscreator::ReadOnlyGameCardStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x31A002 || 2 || 6352 || Invalid Operation ID in nn::fssrv::fscreator::ReadOnlyGameCardStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31A202 || 2 || 6353 || Attempted to call SdStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x31A402 || 2 || 6354 || Invalid Operation ID in SdStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31A602 || 2 || 6355 || Invalid Operation ID in nn::fat::FatFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31A802 || 2 || 6356 || Invalid Operation ID in nn::fssystem::StorageFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31AA02 || 2 || 6357 || Attempted to call nn::fssystem::ConcatenationFile::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x31AC02 || 2 || 6358 || Attempted to call nn::fssystem::ConcatenationFile::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31AE02 || 2 || 6359 || Invalid Query ID in nn::fssystem::ConcatenationFileSystem::DoQueryEntry&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B002 || 2 || 6360 || Invalid Operation ID in nn::fssystem::ConcatenationFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B202 || 2 || 6361 || Attempted to call nn::fssystem::ZeroBitmapFile::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B402 || 2 || 6362 || Invalid Operation ID in nn::fs::detail::FileServiceObjectAdapter::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B602 || 2 || 6363 || Invalid Operation ID in nn::fssystem::AesXtsFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B802 || 2 || 6364 || Attempted to modify a nn::fs::RomFsFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0x31BA02 || 2 || 6365 || Attempted to call nn::fs::RomFsFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31BC02 || 2 || 6366 || Attempted to query the space in a nn::fs::RomFsFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0x31BE02 || 2 || 6367 || Attempted to modify a nn::fssystem::RomFsFile&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C002 || 2 || 6368 || Invalid Operation ID in nn::fssystem::RomFsFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C202 || 2 || 6369 || Attempted to modify a nn::fs::ReadOnlyFileSystemTemplate&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C402 || 2 || 6370 || Attempted to call nn::fs::ReadOnlyFileSystemTemplate::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C602 || 2 || 6371 || Attempted to query the space in a nn::fs::ReadOnlyFileSystemTemplate&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C802 || 2 || 6372 || Attempted to modify a nn::fs::ReadOnlyFileSystemFile&lt;br /&gt;
|-&lt;br /&gt;
| 0x31CA02 || 2 || 6373 || Invalid Operation ID in nn::fs::ReadOnlyFileSystemFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31CC02 || 2 || 6374 || Attempted to modify a nn::fssystem::PartitionFileSystemCore&lt;br /&gt;
|-&lt;br /&gt;
| 0x31CE02 || 2 || 6375 || Attempted to call nn::fssystem::PartitionFileSystemCore::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31D002 || 2 || 6376 || Attempted to call nn::fssystem::PartitionFileSystemCore::PartitionFile::DoSetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x31D202 || 2 || 6377 || Invalid Operation ID in nn::fssystem::PartitionFileSystemCore::PartitionFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31D402 || 2 || 6378 || Invalid Operation ID in nn::fssystem::TmFileSystemFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31D602 || 2 || 6379 || Attempted to call unsupported functions in nn::fssrv::fscreator::SaveDataInternalStorageFileSystem, nn::fssrv::detail::SaveDataInternalStorageAccessor::PaddingFile or nn::fssystem::save::detail::SaveDataExtraDataInternalStorageFile&lt;br /&gt;
|-&lt;br /&gt;
| 0x31DC02 || 2 || 6382 || Attempted to call nn::fssystem::ApplicationTemporaryFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31DE02 || 2 || 6383 || Attempted to call nn::fssystem::SaveDataFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31E002 || 2 || 6384 || Attempted to call nn::fssystem::DirectorySaveDataFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31E202 || 2 || 6385 || Attempted to call nn::fssystem::ZeroBitmapHashStorageFile::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x31E402 || 2 || 6386 || Attempted to call nn::fssystem::ZeroBitmapHashStorageFile::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 || 2 || 6400 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x326602 || 2 || 6451 || Missing titlekey(?) required to mount content&lt;br /&gt;
|-&lt;br /&gt;
| 0x326E02 || 2 || 6455 || File not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327002 || 2 || 6456 || Directory not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327202 || 2 || 6457 || Writable file not closed when committing&lt;br /&gt;
|-&lt;br /&gt;
| 0x327402 || 2 || 6458 || FS allocators already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x327602 || 2 || 6459 || FS allocators already used&lt;br /&gt;
|-&lt;br /&gt;
| 0x327A02 || 2 || 6461 || FS allocator alignment violation&lt;br /&gt;
|-&lt;br /&gt;
| 0x339402 || 2 || 6602 || File not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x339602 || 2 || 6603 || Directory not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x35F202 || 2 || 6905 || Mount name not found in table.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBC02 || 2 || 7902 || RomFs table: Entry not found in dictionary&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBE02 || 2 || 7903 || RomFs table: File not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC002 || 2 || 7904 || RomFs table: Directory not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC402 || 2 || 7906 || RomFs table: Entry already exists when trying to add a new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC602 || 2 || 7907 || RomFs table: Insufficient space to add new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC802 || 2 || 7908 || RomFs table: Unable to add new directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCA02 || 2 || 7909 || RomFs table: Unable to add new file&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCC02 || 2 || 7910 || RomFs directory has no more child directories/files when iterating&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DD402 || 2 || 7914 || RomFs table: Path is file, not directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x803 || 3 || 4 || OS busy&lt;br /&gt;
|-&lt;br /&gt;
| 0xE03 || 3 || 7 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x1003 || 3 || 8 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1203 || 3 || 9 || Out of resources&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EA03 || 3 || 501 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE03 || 3 || 503 || Invalid memory mirror&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FE03 || 3 || 1023 || TLS slot is not allocated&lt;br /&gt;
|-&lt;br /&gt;
| 0xA05 || 5 || 5 || [[Content_Manager_services|NcaID]] not found. Returned when attempting to mount titles which exist that aren&#039;t *8XX titles, the same way *8XX titles are mounted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE05 || 5 || 7 || TitleId not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1805 || 5 || 12 || Invalid StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC05 || 5 || 110 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x17C05 || 5 || 190 || Gamecard not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F405 || 5 || 250 || Sdcard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x20805 || 5 || 260 || Storage not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0x806 || 6 || 4 || Converted from error 0xD401&lt;br /&gt;
|-&lt;br /&gt;
| 0x1006 || 6 || 8 || Converted from error 0xE401&lt;br /&gt;
|-&lt;br /&gt;
| 0x408 || 8 || 2 || Program location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x608 || 8 || 3 || Invalid context for control location&lt;br /&gt;
|-&lt;br /&gt;
| 0x808 || 8 || 4 || Storage not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA08 || 8 || 5 || Access denied&lt;br /&gt;
|-&lt;br /&gt;
| 0xC08 || 8 || 6 || Offline manual HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xE08 || 8 || 7 || Title is not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1008 || 8 || 8 || Control location entry for host not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1208 || 8 || 9 || Legal info HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1408 || 8 || 10 || Program location for debug entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x209 || 9 || 1 || Args too long.&lt;br /&gt;
|-&lt;br /&gt;
| 0x409 || 9 || 2 || Maximum processes loaded.&lt;br /&gt;
|-&lt;br /&gt;
| 0x609 || 9 || 3 || NPDM too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x809 || 9 || 4 || Invalid NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0xA09 || 9 || 5 || Invalid NSO.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC09 || 9 || 6 || Invalid Path.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE09 || 9 || 7 || Already registered.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1009 || 9 || 8 || Title not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1209 || 9 || 9 || Title-id in ACI0 doesn&#039;t match range in ACID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1409 || 9 || 10 || Invalid version in NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6609 || 9 || 51 || Insufficient address space.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6809 || 9 || 52 || Insufficient NRO.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A09 || 9 || 53 || Invalid NRR&lt;br /&gt;
|-&lt;br /&gt;
| 0x6C09 || 9 || 54 || Invalid signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x6E09 || 9 || 55 || Insufficient NRO registrations.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7009 || 9 || 56 || Insufficient NRR registrations.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7209 || 9 || 57 || NRO Already loaded.&lt;br /&gt;
|-&lt;br /&gt;
| 0xA209 || 9 || 81 || Unaligned NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xA409 || 9 || 82 || Bad NRR size&lt;br /&gt;
|-&lt;br /&gt;
| 0xA809 || 9 || 84 || NRR Not Loaded.&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA09 || 9 || 85 || Bad NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xAE09 || 9 || 87 || Bad initialization&lt;br /&gt;
|-&lt;br /&gt;
| 0xC809 || 9 || 100 || Unknown ACI0 descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE09 || 9 || 103 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD009 || 9 || 104 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;SyscallMask&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD409 || 9 || 106 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapIoOrNormalRange&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD609 || 9 || 107 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapNormalPage&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xDE09 || 9 || 111 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;InterruptPair&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE209 || 9 || 113 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;ApplicationType&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE409 || 9 || 114 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelReleaseVersion&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE609 || 9 || 115 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;HandleTableSize&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE809 || 9 || 116 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;DebugFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x1940A || 10 || 202 || Invalid CMIF header size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A60A || 10 || 211 || Invalid CMIF input header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A80A || 10 || 212 || Invalid CMIF output header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA0A || 10 || 221 || Invalid method dispatch ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D60A || 10 || 235 || Invalid in object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D80A || 10 || 236 || Invalid out object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0A || 10 || 301 || Out of domain entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20B || 11 || 1 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC0B || 11 || 102 || Out of server session memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x11A0B || 11 || 141 || Went past maximum during marshalling.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1900B || 11 || 200 || Session doesn&#039;t support domains.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0B || 11 || 301 || Remote process is dead.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3260B || 11 || 403 || Unknown request type&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D60B || 11 || 491 || IPC Query 1 failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20F || 15 || 1 || Pid not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x60F || 15 || 3 || Process has no pending events&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0F || 15 || 5 || Application already running&lt;br /&gt;
|-&lt;br /&gt;
| 0x410 || 16 || 2 || Title-id not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xF010 || 16 || 120 || Sysupdate not required&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F610 || 16 || 251 || Unexpected StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0x64210 || 16 || 801 || [[NS_Services#SystemDeliveryInfo|SystemDeliveryInfo]] system_delivery_protocol_version is less than the system-setting.&lt;br /&gt;
|-&lt;br /&gt;
| 0x64410 || 16 || 802 || [[NS_Services#SystemDeliveryInfo|SystemDeliveryInfo]] system_delivery_protocol_version is larger than the system-setting.&lt;br /&gt;
|-&lt;br /&gt;
| 0x74610 || 16 || 931 || Invalid [[NS_Services#SystemDeliveryInfo|SystemDeliveryInfo]] HMAC / invalid Meta Id.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6F810 || 16 || 892 || Unknown state ref-count is zero.&lt;br /&gt;
|-&lt;br /&gt;
| 0x215 || 21 || 1 || Out of processes&lt;br /&gt;
|-&lt;br /&gt;
| 0x415 || 21 || 2 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x615 || 21 || 3 || Max sessions&lt;br /&gt;
|-&lt;br /&gt;
| 0x815 || 21 || 4 || Service already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xA15 || 21 || 5 || Out of services&lt;br /&gt;
|-&lt;br /&gt;
| 0xC15 || 21 || 6 || Invalid name (all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0xE15 || 21 || 7 || Service not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1015 || 21 || 8 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x1215 || 21 || 9 || Service Access Control too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x416 || 22 || 2 || Address space is full&lt;br /&gt;
|-&lt;br /&gt;
| 0x616 || 22 || 3 || NRO already loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x816 || 22 || 4 || Invalid NRO header values&lt;br /&gt;
|-&lt;br /&gt;
| 0xC16 || 22 || 6 || Bad NRR magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x1016 || 22 || 8 || Reached max NRR count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1216 || 22 || 9 || Unable to verify NRO hash or NRR signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x80216 || 22 || 1025 || Address not page-aligned&lt;br /&gt;
|-&lt;br /&gt;
| 0x80416 || 22 || 1026 || Incorrect NRO size&lt;br /&gt;
|-&lt;br /&gt;
| 0x80816 || 22 || 1028 || NRO not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80A16 || 22 || 1029 || NRR not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80C16 || 22 || 1030 || Already initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E16 || 22 || 1031 || Not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x21A || 26 || 1 || SMC is not implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x41A || 26 || 2 || SMC argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A || 26 || 3 || SMC is currently in progress/secmon is busy&lt;br /&gt;
|-&lt;br /&gt;
| 0x81A || 26 || 4 || Secmon not currently performing async operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xA1A || 26 || 5 || Invalid SMC async callback key&lt;br /&gt;
|-&lt;br /&gt;
| 0xC1A || 26 || 6 || SMC is blacklisted during current boot&lt;br /&gt;
|-&lt;br /&gt;
| 0xC81A || 26 || 100 || Invalid (buffer) size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Unknown SMC error&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Decryption failure&lt;br /&gt;
|-&lt;br /&gt;
| 0xD01A || 26 || 104 || No AES keyslots available&lt;br /&gt;
|-&lt;br /&gt;
| 0xD21A || 26 || 105 || Invalid AES keyslot&lt;br /&gt;
|-&lt;br /&gt;
| 0xD41A || 26 || 106 || BootReason already set&lt;br /&gt;
|-&lt;br /&gt;
| 0xD61A || 26 || 107 || BootReason not set&lt;br /&gt;
|-&lt;br /&gt;
| 0xD81A || 26 || 108 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x35B || 347 || 1 || Failed to init SM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x55B || 347 || 2 || Failed to init FS.&lt;br /&gt;
|-&lt;br /&gt;
| 0x75B || 347 || 3 || Failed to open NRO file. May also happen when SD card isn&#039;t inserted / SD mounting failed earlier.&lt;br /&gt;
|-&lt;br /&gt;
| 0x95B || 347 || 4 || Failed to read NRO header.&lt;br /&gt;
|-&lt;br /&gt;
| 0xB5B || 347 || 5 || Invalid NRO magic.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD5B || 347 || 6 || Invalid NRO segments.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF5B || 347 || 7 || Failed to read NRO.&lt;br /&gt;
|-&lt;br /&gt;
| 0x135B || 347 || 9 || Failed to allocate heap.&lt;br /&gt;
|-&lt;br /&gt;
| 0x255B || 347 || 18 || Failed to map code-binary memory.&lt;br /&gt;
|-&lt;br /&gt;
| 0x275B || 347 || 19 || Failed to map code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x295B || 347 || 20 || Failed to map code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B5B || 347 || 21 || Failed to map code memory (.data+.bss).&lt;br /&gt;
|-&lt;br /&gt;
| 0x315B || 347 || 24 || Failed to unmap code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x335B || 347 || 25 || Failed to unmap code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x355B || 347 || 26 || Failed to unmap code memory (.data+.bss).&lt;br /&gt;
|-&lt;br /&gt;
| 0x19269 || 105 || 201 || Null settings name&lt;br /&gt;
|-&lt;br /&gt;
| 0x19469 || 105 || 202 || Null settings key&lt;br /&gt;
|-&lt;br /&gt;
| 0x19669 || 105 || 203 || Null settings value&lt;br /&gt;
|-&lt;br /&gt;
| 0x19A69 || 105 || 205 || Null settings value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A069 || 105 || 208 || Null setting value size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A269 || 105 || 209 || Null debug mode flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA69 || 105 || 221 || Setting group name has zero length&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BC69 || 105 || 222 || Empty settings item key&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E269 || 105 || 241 || Setting group name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E469 || 105 || 242 || Setting name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x20A69 || 105 || 261 || Setting group name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x20C69 || 105 || 262 || Setting name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x4DA69 || 105 || 621 || Null language code buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4EE69 || 105 || 631 || Null network settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4F069 || 105 || 632 || Null network settings output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x50269 || 105 || 641 || Null backlight settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51669 || 105 || 651 || Null Bluetooth device setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51869 || 105 || 652 || Null Bluetooth device setting output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51A69 || 105 || 653 || Null Bluetooth enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51C69 || 105 || 654 || Null Bluetooth AFH enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51E69 || 105 || 655 || Null Bluetooth boost enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52069 || 105 || 656 || Null BLE pairing settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52269 || 105 || 657 || Null BLE pairing settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52A69 || 105 || 661 || Null external steady clock source ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52C69 || 105 || 662 || Null user system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52E69 || 105 || 663 || Null network system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53069 || 105 || 664 || Null user system clock automatic correction enabled flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53269 || 105 || 665 || Null shutdown RTC value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53469 || 105 || 666 || Null external steady clock internal offset buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53E69 || 105 || 671 || Null account settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55269 || 105 || 681 || Null audio volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55669 || 105 || 683 || Null ForceMuteOnHeadphoneRemoved buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55869 || 105 || 684 || Null headphone volume warning count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55E69 || 105 || 687 || Invalid audio output mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x56069 || 105 || 688 || Null headphone volume update flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x56669 || 105 || 691 || Null console information upload flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57A69 || 105 || 701 || Null automatic application download flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57C69 || 105 || 702 || Null notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57E69 || 105 || 703 || Null account notification settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58069 || 105 || 704 || Null account notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58E69 || 105 || 711 || Null vibration master volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59069 || 105 || 712 || Null NX controller settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59269 || 105 || 713 || Null NX controller settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59469 || 105 || 714 || Null USB full key enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A269 || 105 || 721 || Null TV settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A469 || 105 || 722 || Null EDID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5B669 || 105 || 731 || Null data deletion settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CA69 || 105 || 741 || Null initial system applet program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CC69 || 105 || 742 || Null overlay disp program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CE69 || 105 || 743 || Null IsInRepairProcess buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5D069 || 105 || 744 || Null RequiresRunRepairTimeReviser buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5DE69 || 105 || 751 || Null device timezone location name buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5F269 || 105 || 761 || Null primary album storage buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60669 || 105 || 771 || Null USB 3.0 enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60869 || 105 || 772 || Null USB Type-C power source circuit version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A69 || 105 || 781 || Null battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x62E69 || 105 || 791 || Null serial number buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64269 || 105 || 801 || Null lock screen flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64669 || 105 || 803 || Null color set ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64869 || 105 || 804 || Null quest flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64A69 || 105 || 805 || Null wireless certification file size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64C69 || 105 || 806 || Null wireless certification file buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64E69 || 105 || 807 || Null initial launch settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65069 || 105 || 808 || Null device nickname buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65269 || 105 || 809 || Null battery percentage flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65469 || 105 || 810 || Null applet launch flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7E869 || 105 || 1012 || Null wireless LAN enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FA69 || 105 || 1021 || Null product model buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E69 || 105 || 1031 || Null NFC enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82269 || 105 || 1041 || Null ECI device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82469 || 105 || 1042 || Null E-Ticket device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x83669 || 105 || 1051 || Null sleep settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84A69 || 105 || 1061 || Null EULA version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84C69 || 105 || 1062 || Null EULA version entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x85E69 || 105 || 1071 || Null LDN channel buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87269 || 105 || 1081 || Null SSL key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87469 || 105 || 1082 || Null SSL certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x88669 || 105 || 1091 || Null telemetry flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89A69 || 105 || 1101 || Null Gamecard key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89C69 || 105 || 1102 || Null Gamecard certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8AE69 || 105 || 1111 || Null PTM battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B069 || 105 || 1112 || Null PTM fuel gauge parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C269 || 105 || 1121 || Null ECI device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C469 || 105 || 1122 || Null E-Ticket device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D669 || 105 || 1131 || Null speaker parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EA69 || 105 || 1141 || Null firmware version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EC69 || 105 || 1142 || Null firmware version digest buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EE69 || 105 || 1143 || Null rebootless system update version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8FE69 || 105 || 1151 || Null Mii author ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x91269 || 105 || 1161 || Null fatal flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x92669 || 105 || 1171 || Null auto update enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x93A69 || 105 || 1181 || Null external RTC reset flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x94E69 || 105 || 1191 || Null push notification activity mode buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x96269 || 105 || 1201 || Null service discovery control setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x97669 || 105 || 1211 || Null error report share permission buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x98A69 || 105 || 1221 || Null LCD vendor ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x99E69 || 105 || 1231 || Null console SixAxis sensor acceleration bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A069 || 105 || 1232 || Null console SixAxis sensor angular velocity bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A269 || 105 || 1233 || Null console SixAxis sensor acceleration gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A469 || 105 || 1234 || Null console SixAxis sensor angular velocity gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A669 || 105 || 1235 || Null console SixAxis sensor angular velocity time bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A869 || 105 || 1236 || Null console SixAxis sensor angular acceleration buffer &lt;br /&gt;
|-&lt;br /&gt;
| 0x9B269 || 105 || 1241 || Null keyboard layout buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9BA69 || 105 || 1245 || Invalid keyboard layout&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C669 || 105 || 1251 || Null web inspector flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C869 || 105 || 1252 || Null allowed SSL hosts buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CA69 || 105 || 1253 || Null allowed SSL hosts entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CC69 || 105 || 1254 || Null host FS mount point buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9EE69 || 105 || 1271 || Null Amiibo key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F069 || 105 || 1272 || Null Amiibo ECQV certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F269 || 105 || 1273 || Null Amiibo ECDSA certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F469 || 105 || 1274 || Null Amiibo ECQV BLS key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F669 || 105 || 1275 || Null Amiibo ECQV BLS certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F869 || 105 || 1276 || Null Amiibo ECQV BLS root certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x272 || 114 || 1 || Generic error&lt;br /&gt;
|-&lt;br /&gt;
| 0xC72 || 114 || 6 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || 116 || 0 || Time service not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x274 || 116 || 1 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC74 || 116 || 102 || Time not set / Clock Source Id mismatch&lt;br /&gt;
|-&lt;br /&gt;
| 0x19074 || 116 || 200 || Invalid time comparison&lt;br /&gt;
|-&lt;br /&gt;
| 0x19274 || 116 || 201 || Signed overflow/underflow&lt;br /&gt;
|-&lt;br /&gt;
| 0x64274 || 116 || 801 || Memory allocation failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x70A74 || 116 || 901 || Null pointer&lt;br /&gt;
|-&lt;br /&gt;
| 0x70C74 || 116 || 902 || Value out of valid range&lt;br /&gt;
|-&lt;br /&gt;
| 0x70E74 || 116 || 903 || TimeZoneRule conversion failed&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BA74 || 116 || 989 || TimeZone location name not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BC74 || 116 || 990 || Unimplemented functionality&lt;br /&gt;
|-&lt;br /&gt;
| 0x27A || 122 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x47A || 122 || 2 || Object not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x67A || 122 || 3 || Object locked/in used&lt;br /&gt;
|-&lt;br /&gt;
| 0x87A || 122 || 4 || Target already mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0xA7A || 122 || 5 || Target not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0xC7A || 122 || 6 || Object already opened&lt;br /&gt;
|-&lt;br /&gt;
| 0xE7A || 122 || 7 || Object not opened&lt;br /&gt;
|-&lt;br /&gt;
| 0xA07A || 122 || 80 || Passphrase not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA27A || 122 || 81 || Data verification failed&lt;br /&gt;
|-&lt;br /&gt;
| 0xB47A || 122 || 90 || Invalid API call&lt;br /&gt;
|-&lt;br /&gt;
| 0xC47A || 122 || 98 || Invalid operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x287C || 124 || 20 || Argument is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C7C || 124 || 22 || Argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C7C || 124 || 30 || Bad input buffer size&lt;br /&gt;
|-&lt;br /&gt;
| 0x407C || 124 || 32 || Invalid input buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x27E || 126 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x87E || 126 || 4 || Entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE7E || 126 || 67 || Invalid database signature value (should be &amp;quot;NFDB&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0xD27E || 126 || 69 || Invalid database entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1987E || 126 || 204 || Development/debug-only behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x480 || 128 || 2 || IStorage not available.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4680 || 128 || 35 || Error while launching applet.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A80 || 128 || 37 || Title-ID not found. Caused by code 0x410 when applet launch fails&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E880 || 128 || 500 || Invalid input&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EC80 || 128 || 502 || IStorage has already been opened by another accessor&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE80 || 128 || 503 || IStorage Read/Write out-of-bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x3FE80 || 128 || 511 || IStorage opened as wrong type (data opened as transfermem, transfermem opened as data)&lt;br /&gt;
|-&lt;br /&gt;
| 0x40080 || 128 || 512 || Unbalanced fatal section leave (returned when executing LeaveFatalSection without a preceding EnterFatalSection call)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B080 || 128 || 600 || Failed to allocate memory for IStorage&lt;br /&gt;
|-&lt;br /&gt;
| 0x59080 || 128 || 712 || Thread stack pool exhausted (out of memory)&lt;br /&gt;
|-&lt;br /&gt;
| 0x79C80 || 128 || 974 || DebugMode not enabled&lt;br /&gt;
|-&lt;br /&gt;
| 0x7A880 || 128 || 980 || &amp;lt;code&amp;gt;am.debug!dev_function&amp;lt;/code&amp;gt; setting needs to be set / DebugMode not enabled&lt;br /&gt;
|-&lt;br /&gt;
| 0x7CC80 || 128 || 998 || Not implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC81 || 129 || 102 || Transmission not agreed&lt;br /&gt;
|-&lt;br /&gt;
| 0xD281 || 129 || 105 || Network unavailable&lt;br /&gt;
|-&lt;br /&gt;
| 0x7DA81 || 129 || 1005 || HTTP error: Couldnt resolve proxy&lt;br /&gt;
|-&lt;br /&gt;
| 0x7DC81 || 129 || 1006 || HTTP error: Couldnt resolve host&lt;br /&gt;
|-&lt;br /&gt;
| 0x7DE81 || 129 || 1007 || HTTP error: Couldnt connect&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FE81 || 129 || 1023 || HTTP error: Write error&lt;br /&gt;
|-&lt;br /&gt;
| 0x80481 || 129 || 1026 || HTTP error: Read error&lt;br /&gt;
|-&lt;br /&gt;
| 0x80681 || 129 || 1027 || HTTP error: Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x80881 || 129 || 1028 || HTTP error: Operation timedout&lt;br /&gt;
|-&lt;br /&gt;
| 0x81681 || 129 || 1035 || HTTP error: SSL connect error&lt;br /&gt;
|-&lt;br /&gt;
| 0x83681 || 129 || 1051 || HTTP error: Peer failed verification&lt;br /&gt;
|-&lt;br /&gt;
| 0x83881 || 129 || 1052 || HTTP error: Got nothing&lt;br /&gt;
|-&lt;br /&gt;
| 0x83E81 || 129 || 1055 || HTTP error: Send error&lt;br /&gt;
|-&lt;br /&gt;
| 0x84081 || 129 || 1056 || HTTP error: Recv error&lt;br /&gt;
|-&lt;br /&gt;
| 0x84481 || 129 || 1058 || HTTP error: SSL cert problem&lt;br /&gt;
|-&lt;br /&gt;
| 0x84681 || 129 || 1059 || HTTP error: SSL cipher&lt;br /&gt;
|-&lt;br /&gt;
| 0x84881 || 129 || 1060 || HTTP error: SSL CA cert&lt;br /&gt;
|-&lt;br /&gt;
| 0x12C081 || 129 || 2400 || Server error: Status 400&lt;br /&gt;
|-&lt;br /&gt;
| 0x12C281 || 129 || 2401 || Server error: Status 401&lt;br /&gt;
|-&lt;br /&gt;
| 0x12C681 || 129 || 2403 || Server error: Status 403&lt;br /&gt;
|-&lt;br /&gt;
| 0x138881 || 129 || 2500 || Server error: Status 500&lt;br /&gt;
|-&lt;br /&gt;
| 0x138E81 || 129 || 2503 || Server error: Status 503&lt;br /&gt;
|-&lt;br /&gt;
| 0x139081 || 129 || 2504 || Server error: Status 504&lt;br /&gt;
|-&lt;br /&gt;
| 0xA83 || 131 || 5 || Unrecognized applet ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x485 || 133 || 2 || Invalid DVFS table ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x885 || 133 || 4 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x1489 || 137 || 10 || Already initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C89 || 137 || 30 || Task not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x5089 || 137  || 40 || Memory allocation failed / bad input.&lt;br /&gt;
|-&lt;br /&gt;
| 0x29489 || 137 || 330 || [[NCM_services#ContentMetaType|ContentMetaType]] doesn&#039;t match SystemUpdate.&lt;br /&gt;
|-&lt;br /&gt;
| 0x271289 || 137 || 5001 || One of the following socket errors occurred: ENETDOWN, ECONNRESET, EHOSTDOWN, EHOSTUNREACH, or EPIPE. Also occurs when the received size doesn&#039;t match the expected size (recvfrom() ret with [[NIM_services#Contents_Delivery|meta_size]] data receiving).&lt;br /&gt;
|-&lt;br /&gt;
| 0x272489 || 137 || 5010 || Socket was [[Sockets_services|shutdown()]] due to the async operation being cancelled.&lt;br /&gt;
|-&lt;br /&gt;
| 0x273889 || 137 || 5020 || Too many internal output entries with [[NIM_services|nim]] cmd42, system is [[NIM_services#Contents_Delivery|Internet-connected]], or an unrecognized socket error occured.&lt;br /&gt;
|-&lt;br /&gt;
| 0x27D889 || 137 || 5100 || Connection timeout.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A4489 || 137 || 5410 || Invalid [[NIM_services#Contents_Delivery|ID]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A5889 || 137 || 5420 || Invalid [[NIM_services#Contents_Delivery|magicnum]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A6C89 || 137 || 5430 || Invalid [[NIM_services#Contents_Delivery|data_size]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A8089 || 137 || 5440 || The input [[NCM_services#ContentMetaKey|ContentMetaKey]] doesn&#039;t match the ContentMetaKey in state.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A9489 || 137 || 5450 || Invalid [[NIM_services#Contents_Delivery|meta_size]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x3CF089 || 137 || 7800 || Unknown/invalid libcurl error.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E8289-0x3F4089 || 137 || 8001-8096 || libcurl error 1-96. Some of the libcurl errors in the error-table map to the above unknown-libcurl-error however.&lt;br /&gt;
|-&lt;br /&gt;
| 0x68A || 138 || 3 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x668C || 140 || 51 || USB data-transfer in progress&lt;br /&gt;
|-&lt;br /&gt;
| 0xD48C || 140 || 106 || Invalid descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x1928C || 140 || 201 || USB device not bound / interface already enabled&lt;br /&gt;
|-&lt;br /&gt;
| 0x290 || 144 || 1 || Exited Abnormally ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Abormal)&lt;br /&gt;
|-&lt;br /&gt;
| 0x690 || 144 || 3 || Canceled ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Canceled)&lt;br /&gt;
|-&lt;br /&gt;
| 0x890 || 144 || 4 || Rejected&lt;br /&gt;
|-&lt;br /&gt;
| 0xA90 || 144 || 5 || Exited Unexpectedly ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Unexpected)&lt;br /&gt;
|-&lt;br /&gt;
| 0x299 || 153 || 1 || Invalid audio device&lt;br /&gt;
|-&lt;br /&gt;
| 0x499 || 153 || 2 || Operation couldn&#039;t complete successfully&lt;br /&gt;
|-&lt;br /&gt;
| 0x699 || 153 || 3 || Invalid sample rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x899 || 153 || 4 || Buffer size too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x1099 || 153 || 8 || Too many buffers are still unreleased&lt;br /&gt;
|-&lt;br /&gt;
| 0x1499 || 153 || 10 || Invalid channel count&lt;br /&gt;
|-&lt;br /&gt;
| 0x40299 || 153 || 513 || Invalid/Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0099 || 153 || 1536 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0899 || 153 || 1540 || Audio output was already started&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C9D || 157 || 30 || Address is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E9D || 157 || 31 || PID is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x549D || 157 || 42 || Already bound&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC9D || 157 || 102 || Invalid PID&lt;br /&gt;
|-&lt;br /&gt;
| 0x49E || 158 || 2 || Unable to retrieve BootImagePackage from ContentMetaDatabase&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA3 || 163 ||  5 || System is booting up repair process without VOL+ held down.&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA3 || 163 || 6 || System is booting up repair process that requires RepairTimeReviser but does not have special cartridge inserted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8B2 || 178 || 100 || Invalid user ID&lt;br /&gt;
|-&lt;br /&gt;
| 0xCAB2 || 178 || 101 || User does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 0x12CB2 || 178 || 150 || Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| 0x190B2 || 178 || 200 || File storage failure&lt;br /&gt;
|-&lt;br /&gt;
| 0xAB4 || 180 || 5 || Invalid event ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4EB5 || 181 || 4007 || Device authentication error: System update required&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F50B5 || 181 || 4008 || Device authentication error: Banned&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F52B5 || 181 || 4009 || Device authentication error: Internal server error&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F54B5 || 181 || 4007 || Device authentication error: Under maintenance&lt;br /&gt;
|-&lt;br /&gt;
| 0x58ACA || 202 || 709 || Npad ID is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF0CD || 205 || 120 || IR image data not available/ready.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A8CD || 205 || 212 || IR camera handle pointer is null.&lt;br /&gt;
|-&lt;br /&gt;
| 0x198CD || 205 || 204 || IR camera invalid handle value.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== FS Error codes ===&lt;br /&gt;
The following are the error codes recognized by nn::fs::detail::LogErrorMessage found in some [[Factory Setup|factory]] titles:&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Description || Message&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 106 || nn::svc::ResultInvalidCurrentMemory: Error: Passed buffer is not usable for fs library. See a manual of fs library for more information.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 60 || nn::fs::ResultMountNameAlreadyExists: Error: Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 1001 || nn::fs::ResultPartitionNotFound: Error: Specified partition is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 1002 || nn::fs::ResultTargetNotFound: Error: Specified target is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA002 - 0x138602 || 2000 - 2499 || nn::fs::ResultSdCardAccessFailed: Error: Failed to access SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x136802 - 0x176E02 || 2500 - 2999 || nn::fs::ResultGameCardAccessFailed: Error: Failed to access game card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 3001 || nn::fs::ResultNotImplemented: Error: Specified operation is not implemented.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177A02 || 3005 || nn::fs::ResultOutOfRange: Error: Specified value is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0x190002 - 0x1B5602 || 3200 - 3499 || nn::fs::ResultAllocationMemoryFailed: Error: Failed to allocate memory.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B5802 - 0x1F3E02 || 3500 - 3999 || nn::fs::ResultMmcAccessFailed: Error: Failed to access MMC.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4202 - 0x219602 || 4001 - 4299 || nn::fs::ResultRomCorrupted: Error: ROM is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x219A02 - 0x232602 || 4301 - 4499 || nn::fs::ResultSaveDataCorrupted: Error: Save data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x232A02 - 0x23EE02 || 4501 - 4599 || nn::fs::ResultNcaCorrupted: Error: NCA is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x23F202 - 0x243E02 || 4601 - 4639 || nn::fs::ResultIntegrityVerificationStorageCorrupted: Error: Integrity verification failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x244202 - 0x246602 || 4641 - 4659 || nn::fs::ResultPartitionFileSystemCorrupted: Error: Partition FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x246A02 - 0x248E02 || 4661 - 4679 || nn::fs::ResultBuiltInStorageCorrupted: Error: Built-in-storage is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249202 - 0x24B602 || 4681 - 4699 || nn::fs::ResultFatFileSystemCorrupted: Error: FAT FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24BA02 - 0x24DE02 || 4701 - 4719 || nn::fs::ResultHostFileSystemCorrupted: Error: HOST FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4002 - 0x270E02 || 4000, 4300, 4500, 4600, 4640, 4660, 4680, 4700, 4720-4999 || nn::fs::ResultDataCorrupted: Error: Data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x271002 - 0x2EDE02 || 5000-5999 || nn::fs::ResultUnexpected: Error: Unexpected failure occurred.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE002 - 0x32C602 || 6000-6499 || nn::fs::ResultPreconditionViolation: Error: Precondition violation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 - 0x306E02 || 6001-6199 || nn::fs::ResultInvalidArgument: Error: Invalid argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE402 - 0x2F1A02 || 6002-6029 || nn::fs::ResultInvalidPath: Error: Invalid path was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE602 || 6003 || nn::fs::ResultTooLongPath: Error: Too long path was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE802 || 6004 || nn::fs::ResultInvalidCharacter: Error: Invalid path character was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEA02 || 6005 || nn::fs::ResultInvalidPathFormat: Error: Invalid path format was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 6061 || nn::fs::ResultInvalidOffset: Error: Invalid offset was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5C02 || 6062 || nn::fs::ResultInvalidSize: Error: Invalid size was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5E02 || 6063 || nn::fs::ResultNullptrArgument: Error: Null pointer argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F6202 || 6065 || nn::fs::ResultInvalidMountName: Error: Invalid mount name was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F6402 || 6066 || nn::fs::ResultExtensionSizeTooLarge: Error: Extension size exceeds max value set in nmeta file.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F6602 || 6067 || nn::fs::ResultExtensionSizeInvalid: Error: Extension size is not a multiple of nn::fs::SaveDataExtensionUnitSize.&lt;br /&gt;
|-&lt;br /&gt;
| 0x307202 || 6201 || nn::fs::ResultFileExtensionWithoutOpenModeAllowAppend: Error: OpenMode_AllowAppend is required for implicit extension of file size by WriteFile().&lt;br /&gt;
|-&lt;br /&gt;
| 0x307002 - 0x313602 || 6200, 6202 - 6299 || nn::fs::ResultInvalidOperationForOpenMode: Error: Invalid operation for the open mode.&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 - 0x31FE02 || 6300-6399 || nn::fs::ResultUnsupportedOperation: Error: Unsupported operation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 - 0x326202 || 6400-6449 || nn::fs::ResultPermissionDenied: Error: Permission denied.&lt;br /&gt;
|-&lt;br /&gt;
| 0x327202 || 6457 || nn::fs::ResultWriteModeFileNotClosed: Error: Close files opened in write mode before committing.&lt;br /&gt;
|-&lt;br /&gt;
| 0x328202 || 6465 || nn::fs::ResultUserNotExist: Error: Specified user doesn&#039;t exist.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346402 || 6706 || nn::fs::ResultMappingTableFull: Error: Enough journal space is not left.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346A02 || 6709 || nn::fs::ResultOpenCountLimit: Error: The open count of files and directories reached the limitation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x353602 || 6811 || nn::fs::ResultMapFull: Error: Save data extension count reached the limitation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x35F202 || 6905 || nn::fs::ResultNotMounted: Error: Specified mount name is not found.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Fatal Errors =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Description&lt;br /&gt;
|-&lt;br /&gt;
| 2162-0002&lt;br /&gt;
| Can be triggered by running [[SVC|svcBreak]]. The svcBreak params have no effect on the value of the thrown error-code.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0000&lt;br /&gt;
| Userland ARM undefined instruction exception&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0001&lt;br /&gt;
| Userland ARM prefetch-abort due to PC set to non-executable region&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0002&lt;br /&gt;
| Userland ARM data abort. Also caused by abnormal process termination via [[SVC|svcExitProcess]]. Note: directly jumping to nnMain()-retaddr from non-main-thread has the same result.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0003&lt;br /&gt;
| Userland PC address not aligned to 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0008&lt;br /&gt;
| Can occur when attempting to call an svc outside the whitelist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Support Errors =&lt;br /&gt;
This section is for Support Errors displayed by the error-applet, separate from the normal Result Errors.&lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 520 || NVIDIA Error Report (nverpt)&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [[Internet_Browser|General web-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 809 || [[Internet_Browser|WifiWebAuthApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [[Internet_Browser|Whitelisted-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 811 || [[Internet_Browser|ShopN]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
8XX is for/includes system applets.&lt;br /&gt;
&lt;br /&gt;
== Error codes ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| {web-applets listed above}&lt;br /&gt;
| 2750&lt;br /&gt;
| MP4 parsing failed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Normal error-codes displayed by the system also use the same format as fatal-errors.&lt;br /&gt;
&lt;br /&gt;
= Homebrew Errors =&lt;br /&gt;
Custom errors used by homebrew libraries and applications.&lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 345 || libnx&lt;br /&gt;
|-&lt;br /&gt;
| 346 || [[Homebrew ABI]]&lt;br /&gt;
|-&lt;br /&gt;
| 347 || Homebrew Loader&lt;br /&gt;
|-&lt;br /&gt;
| 348 || libnx NVIDIA errors&lt;br /&gt;
|-&lt;br /&gt;
| 349 || libnx Binder errors&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=8451</id>
		<title>Filesystem services</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=8451"/>
		<updated>2019-12-02T20:28:52Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* IFileSystem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= fsp-ldr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxyForLoader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#OpenCodeFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#IsArchivedProgram]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] [[#SetCurrentProcess]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenCodeFileSystem ==&lt;br /&gt;
Takes an [[NCM_services#ProgramId|ProgramId]] and a [[#ContentPath]]. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
== IsArchivedProgram ==&lt;br /&gt;
Takes an u64 ProcessId. Returns a bool (1 if the process id&#039;s [[#ContentPath]] ends in &amp;quot;.nca&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== SetCurrentProcess ==&lt;br /&gt;
Takes a ProcessId descriptor.&lt;br /&gt;
&lt;br /&gt;
= fsp-pr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IProgramRegistry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#RegisterProgram]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#UnregisterProgram]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] [[#SetCurrentProcess]]&lt;br /&gt;
|-&lt;br /&gt;
| 256 || [[#SetEnabledProgramVerification]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== RegisterProgram ==&lt;br /&gt;
Takes a [[NCM_services#StorageId|StorageId]], an u64 ProcessId, a [[NCM_services#ProgramId|ProgramId]], a 0x1C type-A buffer for the [[NPDM#FS_Access_Header| FS Access Header]], and a 0x2C type-A buffer for the [[NPDM#FS_Access_Control| FS Access Control]]&lt;br /&gt;
&lt;br /&gt;
Final FS permissions are stored as (ACI0_perms &amp;amp; ACID_perms). Will panic(svcBreak) when buffer sizes from ipc-rawdata are invalid.&lt;br /&gt;
&lt;br /&gt;
== UnregisterProgram ==&lt;br /&gt;
Takes a pid. Removes registered FS permissions for that PID.&lt;br /&gt;
&lt;br /&gt;
== SetEnabledProgramVerification ==&lt;br /&gt;
Seems to sets a global flag to inputval &amp;amp; 1.&lt;br /&gt;
&lt;br /&gt;
When the flag is zero, it will set ret=0 instead of ret={error} when verifying the fixed-key [[NPDM]] ACID signature fails. This also skips verifying the [[NCA_Format|NCA Header]] signature using the ACID key. Note that if verifying the fixed-key ACID signature is successful, and verifying the ACID-key NCA header signature fails, it will throw an error and abort.&lt;br /&gt;
&lt;br /&gt;
= fsp-srv =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxy&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [1.0.0] [[#OpenFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#SetCurrentProcess]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || OpenDataFileSystemByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [2.0.0+] [[#OpenFileSystemWithPatch]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [2.0.0+] [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [3.0.0+] OpenDataFileSystemByProgramId&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || InvalidateBisCache&lt;br /&gt;
|-&lt;br /&gt;
| 17 || OpenHostFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 18 || OpenSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 19 || [2.0.0+] FormatSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 21 || [[#DeleteSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 22 || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 23 || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 24 || RegisterSaveDataFileSystemAtomicDeletion&lt;br /&gt;
|-&lt;br /&gt;
| 25 || [2.0.0+] DeleteSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 26 || [2.0.0+] FormatSdCardDryRun&lt;br /&gt;
|-&lt;br /&gt;
| 27 || [2.0.0+] IsExFatSupported&lt;br /&gt;
|-&lt;br /&gt;
| 28 || [4.0.0+] DeleteSaveDataFileSystemBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 30 || [[#OpenGameCardStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 31 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [3.0.0+] ExtendSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [5.0.0+] DeleteCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [5.0.0+] GetCacheStorageSize&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] [[#CreateSaveDataFileSystemWithHashSalt]]&lt;br /&gt;
|-&lt;br /&gt;
| 36 || [9.0.0+] OpenHostFileSystemWithOption&lt;br /&gt;
|-&lt;br /&gt;
| 51 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 52 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 53 || [2.0.0+] OpenReadOnlySaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 57 || [3.0.0+] [[#ReadSaveDataFileSystemExtraDataBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 58 || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 59 || [2.0.0+] WriteSaveDataFileSystemExtraData&lt;br /&gt;
|-&lt;br /&gt;
| 60 || [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 61 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 62 || [5.0.0+] OpenSaveDataInfoReaderOnlyCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [5.0.0+] OpenSaveDataInternalStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [5.0.0+] UpdateSaveDataMacForDebug&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [5.0.0+] WriteSaveDataFileSystemExtraDataWithMask&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] [[#FindSaveDataWithFilter]]&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] [[#OpenSaveDataInfoReaderWithFilter]]&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [8.0.0+] ReadSaveDataFileSystemExtraDataBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [8.0.0+] WriteSaveDataFileSystemExtraDataBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 80 || OpenSaveDataMetaFile&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [4.0.0+] [[#OpenSaveDataTransferManager]]&lt;br /&gt;
|-&lt;br /&gt;
| 82 || [5.0.0+] [[#OpenSaveDataTransferManagerVersion2]]&lt;br /&gt;
|-&lt;br /&gt;
| 83 || [6.0.0+] [[#OpenSaveDataTransferProhibiter]]&lt;br /&gt;
|-&lt;br /&gt;
| 84 || [6.0.0+] [[#ListAccessibleSaveDataOwnerId]]&lt;br /&gt;
|-&lt;br /&gt;
| 85 || [9.0.0+] [[#OpenSaveDataTransferManagerForSaveDataRepair]]&lt;br /&gt;
|-&lt;br /&gt;
| 100 || OpenImageDirectoryFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 110 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 120 || [6.0.0+] [[#OpenCloudBackupWorkStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 130 || [7.0.0+] [[#OpenCustomStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 200 || OpenDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 201 || [3.0.0+] OpenDataStorageByProgramId&lt;br /&gt;
|-&lt;br /&gt;
| 202 || [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 203 || OpenPatchDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 204 || [7.0.0+] [[#OpenDataFileSystemWithProgramIndex]]&lt;br /&gt;
|-&lt;br /&gt;
| 205 || [7.0.0+] [[#OpenDataStorageWithProgramIndex]]&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [[#OpenDeviceOperator]]&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 510 || [5.0.0+] OpenSystemDataUpdateEventNotifier&lt;br /&gt;
|-&lt;br /&gt;
| 511 || [5.0.0+] NotifySystemDataUpdateEvent&lt;br /&gt;
|-&lt;br /&gt;
| 520 || [6.0.0+] [[#SimulateDeviceDetectionEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| 600 || [1.0.0-3.0.2] SetCurrentPosixTime&lt;br /&gt;
|-&lt;br /&gt;
| 601 || QuerySaveDataTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 602 || [[#VerifySaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 603 || CorruptSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 604 || CreatePaddingFile&lt;br /&gt;
|-&lt;br /&gt;
| 605 || DeleteAllPaddingFiles&lt;br /&gt;
|-&lt;br /&gt;
| 606 || [2.0.0+] GetRightsId&lt;br /&gt;
|-&lt;br /&gt;
| 607 || [2.0.0+] RegisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 608 || [2.0.0+] UnregisterAllExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 609 || [2.0.0+] GetRightsIdByPath&lt;br /&gt;
|-&lt;br /&gt;
| 610 || [3.0.0+] GetRightsIdAndKeyGenerationByPath&lt;br /&gt;
|-&lt;br /&gt;
| 611 || [4.0.0+] SetCurrentPosixTimeWithTimeDifference&lt;br /&gt;
|-&lt;br /&gt;
| 612 || [4.0.0+] GetFreeSpaceSizeForSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 613 || [4.0.0+] VerifySaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 614 || [4.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 615 || [5.0.0+] QuerySaveDataInternalStorageTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 616 || [6.0.0+] [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| 617 || [7.0.0+] UnregisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 620 || [2.0.0+] [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| 630 || [4.0.0+] SetSdCardAccessibility&lt;br /&gt;
|-&lt;br /&gt;
| 631 || [4.0.0+] IsSdCardAccessible&lt;br /&gt;
|-&lt;br /&gt;
| 640 || [4.0.0-7.0.1] IsSignedSystemPartitionOnSdCardValid&lt;br /&gt;
|-&lt;br /&gt;
| 700 || [5.0.0+] [[#OpenAccessFailureDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 701 || [5.0.0+] GetAccessFailureDetectionEvent&lt;br /&gt;
|-&lt;br /&gt;
| 702 || [5.0.0+] IsAccessFailureDetected&lt;br /&gt;
|-&lt;br /&gt;
| 710 || [5.0.0+] ResolveAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 720 || [5.0.0+] AbandonAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [2.0.0+] GetAndClearErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [7.0.0+] RegisterProgramIndexMapInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1000 || SetBisRootForHost&lt;br /&gt;
|-&lt;br /&gt;
| 1001 || [[#SetSaveDataSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1002 || [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| 1003 || DisableAutoSaveDataCreation&lt;br /&gt;
|-&lt;br /&gt;
| 1004 || [[#SetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1005 || [[#GetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1006 || [[#OutputAccessLogToSdCard]]&lt;br /&gt;
|-&lt;br /&gt;
| 1007 || [4.0.0+] RegisterUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1008 || [4.0.0+] OpenRegisteredUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1009 || [4.0.0+] GetAndClearMemoryReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1010 || [5.1.0-6.2.0] SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| 1011 || [7.0.0+] [[#GetProgramIndexForAccessLog]]&lt;br /&gt;
|-&lt;br /&gt;
| 1012 || [9.0.0+] GetFsStackUsage&lt;br /&gt;
|-&lt;br /&gt;
| 1013 || [9.0.0+] UnsetSaveDataRootPath&lt;br /&gt;
|-&lt;br /&gt;
| 1100 || [4.0.0+] OverrideSaveDataTransferTokenSignVerificationKey&lt;br /&gt;
|-&lt;br /&gt;
| 1110 || [6.0.0+] CorruptSaveDataFileSystemByOffset&lt;br /&gt;
|-&lt;br /&gt;
| 1200 || [6.0.0+] [[#OpenMultiCommitManager]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
Every time permissions are checked, the process registration [[#fsp-pr]] is loaded using the session processID. The permission data is populated with data from the [[NPDM]].&lt;br /&gt;
&lt;br /&gt;
If the processID is &amp;lt;= 6 (which happens only for built-in sysmodules), it will use a hardcoded registration data. The default mask in this case is 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
Note that the functions check whether or not at least one bit is set in the mask. This means that, you don&#039;t need to set 0xFFFFFFFFFFFFFFFF to get all permissions: it suffices to set 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
If the code were to request an invalid input type, panic. But this never happens.&lt;br /&gt;
&lt;br /&gt;
The output values for [[#ReadWrite]] CanMountRegisteredUpdatePartition and [[#Call]] CanRegisterUpdatePartition are masked with the cached value of [[SMC#IsDebugMode|DebugMode]].&lt;br /&gt;
&lt;br /&gt;
=== ReadWrite ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! AccessibilityType || Mask || Name || Value || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000801 || CanMountLogo || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000801 || CanMountContentMeta || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000801 || CanMountContentControl || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000801 || CanMountContentManual || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000801 || CanMountContentData || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000801 || CanMountApplicationPackage || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000000000 || CanMountSaveDataStorage || 3 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000800 || CanMountContentStorage || 3 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000001000 || CanMountImageAndVideoStorage || 3 || [[#OpenImageDirectoryFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanMountCloudBackupWorkStorage || 3 || OpenCloudBackupWorkStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000000000&amp;lt;br/&amp;gt;([7.0.0-7.0.1] 0x4000000000000000)&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000084)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountCustomStorage0 || 3 || OpenCustomStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000084&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000008080) || CanMountBisCalibrationFile || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-6.2.0] 0x8000000000008080) || CanMountBisSafeMode || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000008080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountBisUser || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000008080&amp;lt;br/&amp;gt;([3.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanMountBisSystem || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000010) || CanMountBisSystemProperEncryption || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000200000&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000040020) || CanMountBisSystemProperPartition || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0xC000000000200000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000028) || CanMountSdCard || 3 || [[#OpenSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000000010&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000020) || CanMountGameCard || 3 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0x8000000000040020&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000020) || CanMountDeviceSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x8000000000000028&amp;lt;br/&amp;gt;([3.0.0-6.2.0] 0x8000000000000020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010082) || CanMountSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0x8000000000000020&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanMountOthersSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0x8000000000000020&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanMountOthersSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0x8000000000010082&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010080)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition1Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x8000000000010080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition2Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010080) || CanOpenBisPartitionUserDataRoot || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part1 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part2 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part3 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part4 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part5 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || 0x8000000000010080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000084)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000080) || CanOpenBisPartitionBootConfigAndPackage2Part6 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x8000000000000084&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationBinary || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0x8000000000000084&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationFile || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0x8000000000000080 || CanOpenBisPartitionSafeMode || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanOpenBisPartitionUser || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000100) || CanOpenBisPartitionSystem || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000100008) || CanOpenBisPartitionSystemProperEncryption || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000400000) || CanOpenBisPartitionSystemProperPartition || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x27 || 0xC000000000200000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000100008) || CanOpenSdCardStorage || ||&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x28 || 0x8000000000000100&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000100008)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000400000) || CanOpenGameCardStorage || 3 || [[#OpenGameCardStorage]], [[#EraseGameCard]] (bit1), [[#WriteToGameCard]] (bit1), [[#GetGameCardErrorInfo]] (bit1), [[#EraseAndWriteParamDirectly]] (bit1), [[#ReadParamDirectly]] (bit1), [[#ForceEraseGameCard]] (bit1) &lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x29 || 0x8000000000100008&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000400000)&amp;lt;br/&amp;gt;([4.0.0-5.1.0] 0x8000000000010000) || CanMountSystemDataPrivate || 1 || [[#OpenFileSystem]], [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0xC000000000400000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000000) || CanMountHost || 3 || [[#OpenHostFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x2B || 0x8000000000010000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000000) || CanMountRegisteredUpdatePartition || 1 || [[#OpenRegisteredUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] 0x2C || 0x8000000000000000 || CanOpenSaveDataInternalStorage || 3 || [[#OpenSaveDataInternalStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] 0x2D || 0x0000000000000000 || CanNotMountCustomStorage || 3 || OpenCustomStorageFileSystem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Call ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OperationType || Mask || Name || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000080 || CanInvalidateBisCache || [[#InvalidateBisCache]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000080 || CanEraseMmc || EraseMmc&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000010 || CanGetGameCardDeviceCertificate || GetGameCardDeviceCertificate&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000010 || CanGetGameCardIdSet || GetGameCardIdSet&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000200 || CanFinalizeGameCardDriver || FinalizeGameCardDriver&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000200 || CanGetGameCardAsicInfo || GetGameCardAsicInfo&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000002020 || CanCreateSaveData || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000060 || CanDeleteSaveData || [[#DeleteSaveDataFileSystem]], RegisterSaveDataFileSystemAtomicDeletion&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000000028 || CanCreateSystemSaveData || CreateSaveDataFileSystemBySystemSaveDataId&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000000000020 || CanCreateOthersSystemSaveData || CreateSaveDataFileSystemBySystemSaveDataId&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000004028 || CanDeleteSystemSaveData || [[#DeleteSaveDataFileSystem]], RegisterSaveDataFileSystemAtomicDeletion&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000060 || CanOpenSaveDataInfoReader || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000004020 || CanOpenSaveDataInfoReaderForSystem || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000000040&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000020000) || CanOpenSaveDataInfoReaderForInternal || [[#OpenSaveDataInfoReaderWithFilter]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000020000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000400) || CanOpenSaveDataMetaFile || OpenSaveDataMetaFile&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000400&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000004060) || CanSetCurrentPosixTime || SetCurrentPosixTime, SetCurrentPosixTimeWithTimeDifference&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000004060&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000080000) || CanReadSaveDataFileSystemExtraData || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x8000000000080000 || CanSetGlobalAccessLogMode || [[#SetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000080000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] Invalid) || CanSetSpeedEmulationMode || SetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || Invalid&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000800000) || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0xC000000000800000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000001000000) || CanFillBis || CreatePaddingFile, DeleteAllPaddingFiles&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0xC000000001000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000001000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0xC000000002000000) || CanCorruptSaveData || CorruptSaveDataFileSystem, CorruptSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x16 || 0x8000000001000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000060)&amp;lt;br/&amp;gt;([2.0.0-4.1.0] 0x8000000004000000) || CanCorruptSystemSaveData || CorruptSaveDataFileSystem, CorruptSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x17 || 0x8000000000000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0xC000000002000000)&amp;lt;br/&amp;gt;([2.0.0-4.1.0] 0x8000000008000000) || CanVerifySaveData || [[#VerifySaveDataFileSystem]], VerifySaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x18 || 0xC000000002000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000004000000)&amp;lt;br/&amp;gt;([2.0.0-4.1.0] 0x8000000010000000) || CanDebugSaveData || [[#CreateSaveDataFileSystem]], [[#OpenSaveDataFileSystem]], [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x19 || 0x8000000004000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000008000000)&amp;lt;br/&amp;gt;([2.0.0-4.1.0] 0x8000000000000800) || CanFormatSdCard || FormatSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x1A || 0x8000000008000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000010000000)&amp;lt;br/&amp;gt;([2.0.0-4.1.0] 0x8000000000004020) || CanGetRightsId || GetRightsId, GetRightsIdAndKeyGenerationByPath, GetRightsIdByPath&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1B || 0x8000000010000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000800)&amp;lt;br/&amp;gt;([3.0.0-4.1.0] 0x8000000000002020) || CanRegisterExternalKey || RegisterExternalKey, UnregisterAllExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1C || 0x8000000000000800&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000004020)&amp;lt;br/&amp;gt;([3.0.0-4.1.0] 0x8000000000000028) || CanSetEncryptionSeed || [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1D || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000000)&amp;lt;br/&amp;gt;([4.0.0-4.1.0] 0x8000000020000000) || CanWriteSaveDataFileSystemExtraDataTimeStamp || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1E || 0x8000000000004020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000002020)&amp;lt;br/&amp;gt;([4.0.0-4.1.0] 0x8000000040000000) || CanWriteSaveDataFileSystemExtraDataFlags || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1F || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([4.0.0-4.1.0] 0x8000000000000000) || CanWriteSaveDataFileSystemExtraDataCommitId || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x20 || 0x8000000000000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000020000000)&amp;lt;br/&amp;gt;([4.0.0-4.1.0] 0x8000000000000000) || CanWriteSaveDataFileSystemExtraDataAll || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x21 || 0x8000000000002020&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanExtendSaveData || ExtendSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x22 || 0x8000000000000028&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000002) || CanExtendSystemSaveData || ExtendSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x23 || 0x8000000020000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanRegisterUpdatePartition || RegisterUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x24 || 0x8000000040000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanOpenSaveDataTransferManager || [[#OpenSaveDataTransferManager]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x25 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanOpenSaveDataTransferManagerVersion2 || [[#OpenSaveDataTransferManagerVersion2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x26 || 0x8000000200000000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000200002000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000080000110) || CanOpenSaveDataTransferManagerForSaveDataRepair || OpenSaveDataTransferManagerForSaveDataRepair&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x27 || 0x8000000000000000&amp;lt;br/&amp;gt;([8.0.0-8.1.0] 0x8000000240002000)&amp;lt;br/&amp;gt;([6.0.0-7.0.1] 0x8000000200002000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000100008) || CanOpenSaveDataTransferManagerForSaveDataRepairTool || OpenSaveDataTransferManagerForSaveDataRepair&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x28 || 0x8000000200002000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000000000000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000080010000) || CanOpenOpenSaveDataTransferProhibiter || [[#OpenSaveDataTransferProhibiter]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x29 || 0x8000000240002000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000000000000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x0000000080000001) || CanListAccessibleSaveDataOwnerId || [[#ListAccessibleSaveDataOwnerId]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0x8000000000000000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000080200000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x0000000080000001) || CanControlMmcPatrol || SuspendMmcPatrol, ResumeMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2B || 0x8000000000000000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000080000110)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x0000000080000001) || CanOverrideSaveDataTransferTokenSignVerificationKey || OverrideSaveDataTransferTokenSignVerificationKey&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2C || 0x8000000080200000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000000100008)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x0000000080000001) || CanOpenSdCardDetectionEventNotifier || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2D || 0x8000000080000110&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000000010000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x0000000080000001) || CanOpenGameCardDetectionEventNotifier || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2E || 0x8000000000100008&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000100000000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000040000000) || CanOpenSystemDataUpdateEventNotifier || OpenSystemDataUpdateEventNotifier&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2F || 0x8000000000010000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000100000000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000080200000) || CanNotifySystemDataUpdateEvent || NotifySystemDataUpdateEvent&lt;br /&gt;
|-&lt;br /&gt;
| [5.1.0+] 0x30 || 0x8000000100000000&amp;lt;br/&amp;gt;([5.1.0-6.0.0] 0x8000000080080000) || CanOpenAccessFailureDetectionEventNotifier || [[#OpenAccessFailureDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x31 || 0x8000000100000000 || CanGetAccessFailureDetectionEvent || GetAccessFailureDetectionEvent&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x32 || 0x8000000100000000 || CanIsAccessFailureDetected || IsAccessFailureDetected&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x33 || 0x8000000100000000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000040000000) || CanResolveAccessFailure || ResolveAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x34 || 0x8000000100000000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000200000020) || CanAbandonAccessFailure || AbandonAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x35 || 0x8000000040000000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000000200000) || CanQuerySaveDataInternalStorageTotalSize || QuerySaveDataInternalStorageTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x36 || 0x8000000200000020&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x4000000000000000) || CanGetSaveDataCommitId || [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x37 || 0x8000000000200000&amp;lt;br/&amp;gt;([7.0.0-8.1.0] 0x8000000000000000)&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000080000) || CanSetSdCardAccessibility || SetSdCardAccessibility&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x38 || 0x4000000000000000&amp;lt;br/&amp;gt;([7.0.0-8.1.0] 0x8000000400000000)&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000000) || CanSimulateDevice || SimulateDeviceDetectionEvent, SetSimulationEvent, ClearSimulationEvent&lt;br /&gt;
|-&lt;br /&gt;
| [8.0.0+] 0x39 || 0x8000000000000000&amp;lt;br/&amp;gt;([8.0.0-8.1.0] 0x8000000000000010) || CanCreateSaveDataWithHashSalt || [[#CreateSaveDataFileSystem]], [[#CreateSaveDataFileSystemWithHashSalt]]&lt;br /&gt;
|-&lt;br /&gt;
| [9.0.0+] 0x3A || 0x8000000400000000 || CanRegisterProgramIndexMapInfo || RegisterProgramIndexMapInfo&lt;br /&gt;
|-&lt;br /&gt;
| [9.0.0+] 0x3B || 0x8000000000000010 || CanChallengeCardExistence || ChallengeCardExistence&lt;br /&gt;
|-&lt;br /&gt;
| [9.0.0+] 0x3C || 0x8000000800000000 || CanCreateOwnSaveData || [[#CreateSaveDataFileSystem]], CreateSaveDataFileSystemWithHashSalt&lt;br /&gt;
|-&lt;br /&gt;
| [9.0.0+] 0x3D || 0x8000000800000000 || CanReadOwnSaveDataFileSystemExtraData || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| [9.0.0+] 0x3E || 0x8000000800000000 || CanExtendOwnSaveData || ExtendSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| [9.0.0+] 0x3F || 0x8000000800000000 || CanOpenOwnSaveDataTransferProhibiter || [[#OpenSaveDataTransferProhibiter]]&lt;br /&gt;
|-&lt;br /&gt;
| [9.0.0+] 0x40 || 0x8000000800000000 || CanFindOwnSaveDataWithFilter || [[#FindSaveDataWithFilter]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystem ==&lt;br /&gt;
Takes a type-0x19 input [[#ContentPath]] and a [[#FileSystemProxyType]] as parameters. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
[2.0.0+] This function was removed.&lt;br /&gt;
&lt;br /&gt;
== SetCurrentProcess ==&lt;br /&gt;
Takes a pid-descriptor.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithPatch ==&lt;br /&gt;
Takes an input [[#FileSystemProxyType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Web-applet loads the [[#FileSystemProxyType]] (which must be &#039;&#039;&#039;Manual&#039;&#039;&#039;) from u32_table[inparam].&lt;br /&gt;
&lt;br /&gt;
Note: web-applet strings refer to both this cmd and [[#OpenFileSystemWithId]] as &amp;quot;MountContent&amp;quot;, but official nn_sf_sync symbols use &amp;quot;OpenXX&amp;quot; names.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithId ==&lt;br /&gt;
Takes a type-0x19 input buffer, an [[#FileSystemProxyType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
The [[#IFileSystem]] must be &#039;&#039;&#039;Meta&#039;&#039;&#039; if the NCA type is 0.&lt;br /&gt;
&lt;br /&gt;
The input buffer is the output string path from [[NS_Services#GetApplicationContentPath|GetApplicationContentPath]].&lt;br /&gt;
&lt;br /&gt;
May return errors when attempting to access NCA-paths for an update-title with a gamecard, when the gamecard isn&#039;t inserted. May return error 0x7D402 in some cases with update-titles. Non-val2 in32 values with NCA-type1 are unusable, even for normal titles.&lt;br /&gt;
&lt;br /&gt;
The official &amp;quot;MountApplicationPackage&amp;quot; func uses this with in64=0 and [[#FileSystemProxyType]] &#039;&#039;&#039;Package&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
After the [[#FileSystemProxyType]] specific permissions are checked, it then gets the func retval for permissions-type 0x25 and func0.&lt;br /&gt;
&lt;br /&gt;
When [[#FileSystemProxyType]] is &#039;&#039;&#039;Meta&#039;&#039;&#039;, it uses in64=0xffffffffffffffff internally, otherwise it checks if in64 is set to 0xffffffffffffffff then throws an error if so. When the in64 used internally is not 0xffffffffffffffff, it&#039;s compared with the NCA [[NCM_services#ProgramId|ProgramId]], then an error is thrown on mismatch.&lt;br /&gt;
&lt;br /&gt;
== OpenBisFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer string and a [[#BisPartitionId]]. Official user-process code sets instr[0] = 0 normally. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Only partitionIDs for FAT partitions are usable with this, otherwise error 0x2EE202 is returned. Seems to be about the same as [[#OpenBisStorage]] except this mounts the partition filesystem instead of allowing direct access to the partition sectors.&lt;br /&gt;
&lt;br /&gt;
== OpenBisStorage ==&lt;br /&gt;
Takes a u32 partition ID, returns 0x2EE202 for partitions which do not exist, 0x320002 for partitions which cannot be opened and a valid [[#IStorage]] handle otherwise.&lt;br /&gt;
&lt;br /&gt;
== InvalidateBisCache ==&lt;br /&gt;
Seems to invalidate the Bis cache for MBR/GPT after overwriting that data via the OpenBisStorage IStorage. Used by [[SystemInitializer]].&lt;br /&gt;
&lt;br /&gt;
== DeleteSaveDataFileSystem ==&lt;br /&gt;
Takes an input u64.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystem ==&lt;br /&gt;
Takes a 0x40-byte [[#SaveDataAttribute]], a 0x40-byte [[#SaveDataCreationInfo]], and a 0x10-byte input struct.&lt;br /&gt;
&lt;br /&gt;
Only the first 0x5-bytes in the 0x10-byte struct are initialized: all-zero when automatically creating savedata during savecommon mount by official user-processes. In the dedicated save-creation code in official user-processes: +0 u32 = 0x40060, +4 u8 = 1.&lt;br /&gt;
&lt;br /&gt;
Creates regular savedata.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes a 0x40-byte [[#SaveDataAttribute]] and a 0x40-byte [[#SaveDataCreationInfo]].&lt;br /&gt;
&lt;br /&gt;
Creates savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardStorage ==&lt;br /&gt;
Takes two input u32s (gamecard handle, partition ID), and returns an [[#IStorage]] for the [[Gamecard_Format|partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardFileSystem ==&lt;br /&gt;
Takes two input u32s, with the second u32 located at +4 in rawdata after the first u32. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts a [[Gamecard_Partition|gamecard partition]].&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystemWithHashSalt ==&lt;br /&gt;
Takes a total of 0xB0-bytes of input, no output.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystem ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte [[#SaveDataAttribute]]. Official user-process code is only known to use value 1 for the u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Permissions aren&#039;t checked until the specified save is successfully found.&lt;br /&gt;
&lt;br /&gt;
Only one process (specifically only one [[#IFileSystem]] session) can mount a given savedata at any given time (this includes SystemSaveData).&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte [[#SaveDataAttribute]]. Web-applet only uses value0 for the input u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraDataBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an input u64 saveID, and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraData ==&lt;br /&gt;
Takes an input u64 saveID and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReader ==&lt;br /&gt;
No input, returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReaderBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== FindSaveDataWithFilter ==&lt;br /&gt;
Takes a total of 0x50-bytes of input, returns 8-bytes of output and a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReaderWithFilter ==&lt;br /&gt;
Takes a total of 0x50-bytes of input, returns an [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataTransferManager ==&lt;br /&gt;
No input, returns an [[#ISaveDataTransferManager]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataTransferManagerVersion2 ==&lt;br /&gt;
No input, returns an [[#ISaveDataTransferManagerWithDivision]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataTransferProhibiter ==&lt;br /&gt;
Takes an input u64, returns an [[#ISaveDataTransferProhibiter]].&lt;br /&gt;
&lt;br /&gt;
== ListAccessibleSaveDataOwnerId ==&lt;br /&gt;
Takes a total of 0x10-bytes of input, returns 4-bytes of output and a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataTransferManagerForSaveDataRepair ==&lt;br /&gt;
No input, returns an output [[#ISaveDataTransferManagerForSaveDataRepair]].&lt;br /&gt;
&lt;br /&gt;
== OpenContentStorageFileSystem ==&lt;br /&gt;
Takes a [[#ContentStorageId]]. Invalid values return 0x2EE202.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]] with NCA files. The read data from these files is identical to the data read by [[NCM_services#ReadContentIdFile]].&lt;br /&gt;
&lt;br /&gt;
== OpenCloudBackupWorkStorageFileSystem ==&lt;br /&gt;
Takes 4-bytes of input, returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
== OpenCustomStorageFileSystem ==&lt;br /&gt;
Takes a [[#CustomStorageId]]. Invalid values return 0x2EE202.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]] from either User:/CustomStorage0 or Sdcard:/Nintendo/CustomStorage0. If on the SD card, an AesXtsFileSystem is created using a key source specifically for custom storage.&lt;br /&gt;
&lt;br /&gt;
== OpenDataStorageByDataId ==&lt;br /&gt;
Takes a [[NCM_services#StorageId|StorageID]] and a [[NCM_services#DataId|DataId]].&lt;br /&gt;
&lt;br /&gt;
Returns a [[IPC_Marshalling#Domain_message|domain object ID]] implementing the [[#IStorage]] interface for data archives.&lt;br /&gt;
&lt;br /&gt;
== OpenDataFileSystemWithProgramIndex ==&lt;br /&gt;
Takes an input u8, returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
== OpenDataStorageWithProgramIndex ==&lt;br /&gt;
Takes an input u8, returns an [[#IStorage]].&lt;br /&gt;
&lt;br /&gt;
== OpenDeviceOperator ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IDeviceOperator]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenSdCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== SimulateDeviceDetectionEvent ==&lt;br /&gt;
Takes a total of 0xC-bytes of input, no output.&lt;br /&gt;
&lt;br /&gt;
== VerifySaveDataFileSystem ==&lt;br /&gt;
Takes an unknown input u64 and a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
The input u64 high-byte must be non-zero, otherwise an [[Error_codes|error]] is returned(0xE02).&lt;br /&gt;
&lt;br /&gt;
== GetSaveDataCommitId ==&lt;br /&gt;
Takes an input u8 and u64, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== SetSdCardEncryptionSeed ==&lt;br /&gt;
Takes in the 0x10 byte SD card encryption seed, and loads it into FS-module state.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]]-module reads the 0x10 bytes from SdCard:/Nintendo/Contents/private, and compares them to the first 0x10 bytes of the ns_appman:/private (in [[Flash_Filesystem#System_Savegames|system savedata]] 0x8000000000000043). If they match, NS calls this command using bytes 0x10-0x20 from ns_appman:/private. The rest of this file (0x1F0 bytes total) is (usually/always?) all-zero (however in some cases the byte at offset 0x20 is value 0x1).&lt;br /&gt;
&lt;br /&gt;
== OpenAccessFailureDetectionEventNotifier ==&lt;br /&gt;
Takes 8-bytes of input and returns an [[#IEventNotifier]].&lt;br /&gt;
&lt;br /&gt;
[8.0.0+] Now takes an additional 8-bytes of input.&lt;br /&gt;
&lt;br /&gt;
== SetSaveDataSize ==&lt;br /&gt;
Takes two input u64s &amp;quot;size&amp;quot; and &amp;quot;journal_size&amp;quot;, and writes them to fsp-srv object member variables.&lt;br /&gt;
&lt;br /&gt;
These variables are normally initialized with 32 MiB (0x2000000) and 16 MiB (0x1000000), respectively.&lt;br /&gt;
&lt;br /&gt;
These variables don&#039;t seem to be actually used anywhere else (?)&lt;br /&gt;
&lt;br /&gt;
== SetSaveDataRootPath ==&lt;br /&gt;
Takes an input path, and does snprintf(&amp;lt;fsp-srv object&amp;gt;-&amp;gt;m_save_data_root_path, FS_MAX_PATH-1, &amp;quot;/%s&amp;quot;, input_path);&lt;br /&gt;
&lt;br /&gt;
This path is normally all-zero. When this path is non-zero, the internal OpenSaveDataFileSystem function will create a DirectorySaveDataFileSystem if the target save is a user-save + a directory exists, instead of the normal savedata filesystem object.&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== GetGlobalAccessLogMode ==&lt;br /&gt;
Returns an output u32.&lt;br /&gt;
&lt;br /&gt;
GlobalAccessLogMode is normally 0.&lt;br /&gt;
&lt;br /&gt;
== OutputAccessLogToSdCard ==&lt;br /&gt;
Takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
The input buffer is the string to output to the log. User-processes normally include a newline at the end.&lt;br /&gt;
&lt;br /&gt;
User-processes only use this when the value previously loaded from [[#GetGlobalAccessLogMode]] has bit1 set.&lt;br /&gt;
&lt;br /&gt;
When bit1 in GlobalAccessLogMode is clear, FS-module will just return 0 for OutputAccessLogToSdCard. However even with that set the log doesn&#039;t show up SD, unknown why.&lt;br /&gt;
&lt;br /&gt;
The input buffer is written to the &amp;quot;$FsAccessLog:/FsAccessLog.txt&amp;quot; file, where &amp;quot;$FsAccessLog&amp;quot; is the SD-card mount-name. It&#039;s written to the current end of the file(appended).&lt;br /&gt;
&lt;br /&gt;
== GetProgramIndexForAccessLog ==&lt;br /&gt;
No input, returns two 32-bit values &amp;quot;version&amp;quot; and &amp;quot;program_index&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== OpenMultiCommitManager ==&lt;br /&gt;
No input, returns an output [[#IMultiCommitManager]].&lt;br /&gt;
&lt;br /&gt;
= IStorage =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IStorage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This is the interface for a raw device, usually a block device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Read]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#Write]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [[#Flush]]&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [[#SetSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [[#GetSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Read ==&lt;br /&gt;
Takes a type-0x46 buffer, an offset and length.&lt;br /&gt;
&lt;br /&gt;
== Write ==&lt;br /&gt;
Takes a type-0x45 buffer, an offset and length.&lt;br /&gt;
&lt;br /&gt;
== Flush ==&lt;br /&gt;
No input.&lt;br /&gt;
&lt;br /&gt;
== SetSize ==&lt;br /&gt;
Takes a size.&lt;br /&gt;
&lt;br /&gt;
== GetSize ==&lt;br /&gt;
Returns a size.&lt;br /&gt;
&lt;br /&gt;
= IFileSystem =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystem&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There are two main implementations of this interface:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;nn::fs::fsa::IFileSystem&#039;&#039;&#039;: The main IFileSystem implementation. Filesystem classes implement this interface, and FS code usually operates on this interface.&lt;br /&gt;
* &#039;&#039;&#039;nn::fssrv::sf::IFileSystem&#039;&#039;&#039;: Used for sending an IFileSystem over IPC. Not used outside of IPC code.&lt;br /&gt;
&lt;br /&gt;
There are two adapter classes to convert between these interfaces:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;nn::fssrv::detail::FileSystemInterfaceAdapter&#039;&#039;&#039;: Allows access to an nn::fs::fsa::IFileSystem via the nn::fssrv::sf::IFileSystem interface.&lt;br /&gt;
* &#039;&#039;&#039;nn::fs::detail::FileSystemServiceObjectAdapter&#039;&#039;&#039;: Allows access to an nn::fssrv::sf::IFileSystem via the nn::fs::fsa::IFileSystem interface.&lt;br /&gt;
&lt;br /&gt;
When the FS process returns a filesystem, it will wrap the filesystem object in a FileSystemInterfaceAdapter to return it over IPC.&lt;br /&gt;
Then when FS application code receives that filesystem, it will wrap the nn::fssrv::sf::IFileSystem object in a FileSystemServiceObjectAdapter before using it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || CreateFile&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DeleteFile&lt;br /&gt;
|-&lt;br /&gt;
| 2 || CreateDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeleteDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 4 || DeleteDirectoryRecursively&lt;br /&gt;
|-&lt;br /&gt;
| 5 || RenameFile&lt;br /&gt;
|-&lt;br /&gt;
| 6 || RenameDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [[#GetEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [[#OpenFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [[#OpenDirectory]]&lt;br /&gt;
|-&lt;br /&gt;
| 10 || [[#Commit]]&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#GetFreeSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#GetTotalSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || [3.0.0+] [[#CleanDirectoryRecursively]]&lt;br /&gt;
|-&lt;br /&gt;
| 14 || [3.0.0+] [[#GetFileTimeStampRaw]]&lt;br /&gt;
|-&lt;br /&gt;
| 15 || [4.0.0+] QueryEntry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetEntryType ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns [[#DirectoryEntryType]] as an output u32.&lt;br /&gt;
&lt;br /&gt;
== OpenFile ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path, and an u32 &#039;&#039;&#039;mode&#039;&#039;&#039;. &#039;&#039;&#039;mode&#039;&#039;&#039; controls how the file is opened, based on which bits are set:&lt;br /&gt;
&lt;br /&gt;
* When bit 0 is set, the file is Readable: you can use the Read operation.&lt;br /&gt;
* When bit 1 is set, the file is Writable: you can use the Write operation.&lt;br /&gt;
* When bit 2 is set, the file is Appendable: unless this bit is set, you will not be able to write beyond the end of a file (such writes will result in an error 0x307202)&lt;br /&gt;
&lt;br /&gt;
== OpenDirectory ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and an u64 &#039;&#039;&#039;filter_flags&#039;&#039;&#039;. &#039;&#039;&#039;filter_flags&#039;&#039;&#039; controls what type of entries are read by the [[#IDirectory]]: bitmask 0x1 = directories, bitmask 0x2 = files.&lt;br /&gt;
&lt;br /&gt;
== Commit ==&lt;br /&gt;
Like [https://3dbrew.org/wiki/FS:ControlArchive 3DS], this has to be used after writing to savedata for the changes to take affect.&lt;br /&gt;
&lt;br /&gt;
== GetFreeSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total free space with this FS.&lt;br /&gt;
&lt;br /&gt;
== GetTotalSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total space available with this FS(free+used).&lt;br /&gt;
&lt;br /&gt;
== CleanDirectoryRecursively ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and clears the contents of the directory specified in the path.&lt;br /&gt;
&lt;br /&gt;
== GetFileTimeStampRaw ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path and returns a 0x20-byte struct. This contains 3 u64s and an u8.&lt;br /&gt;
&lt;br /&gt;
= IDirectory =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDirectory&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Read]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetEntryCount]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Read ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64(?) for the total number of read entries, this is 0 when no more entries are available.&lt;br /&gt;
&lt;br /&gt;
The output buffer contains the read array of [[#DirectoryEntry]]. This doesn&#039;t include entries for &amp;quot;.&amp;quot; and &amp;quot;..&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== GetEntryCount ==&lt;br /&gt;
Returns an u64 for the total number of readable entries.&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntry =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x301 || Path&lt;br /&gt;
|-&lt;br /&gt;
| 0x301 || 0x1 || File attributes (bit 0 = is directory; bit 1 = archive bit)&lt;br /&gt;
|-&lt;br /&gt;
| 0x302 || 0x2 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x304 || 0x1 || [[#DirectoryEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x305 || 0x3 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x308 || 0x8 || Filesize, 0 for directories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntryType =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntryType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
An s8 value indicating a directory entry type. The current values are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Directory&lt;br /&gt;
|-&lt;br /&gt;
| 1 || File&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFile =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFile&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataInfoReader =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataInfoReader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#ReadSaveDataInfo]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataInfo ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64 for total output entries. This buffer contains an array of [[#SaveDataInfo]].&lt;br /&gt;
&lt;br /&gt;
This is used to get [[#SaveDataInfo]] for all savedata on the system (or all savedata for the current [[#SaveDataSpaceId]]). When used multiple times, it will resume reading where it left off, until no more entries are available (in that case the out u64 is value 0).&lt;br /&gt;
&lt;br /&gt;
= IDeviceOperator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDeviceOperator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || IsSdCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GetSdCardSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [2.0.0+] GetSdCardCid&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [2.0.0+] GetSdCardUserAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [2.0.0+] GetSdCardProtectedAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [2.0.0+] GetAndClearSdCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 100 || GetMmcCid&lt;br /&gt;
|-&lt;br /&gt;
| 101 || GetMmcSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 110 || EraseMmc&lt;br /&gt;
|-&lt;br /&gt;
| 111 || GetMmcPartitionSize&lt;br /&gt;
|-&lt;br /&gt;
| 112 || [2.0.0+] GetMmcPatrolCount&lt;br /&gt;
|-&lt;br /&gt;
| 113 || [2.0.0+] GetAndClearMmcErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 114 || [2.0.0+] GetMmcExtendedCsd&lt;br /&gt;
|-&lt;br /&gt;
| 115 || [4.0.0+] SuspendMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 116 || [4.0.0+] ResumeMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 200 || [[#IsGameCardInserted]]&lt;br /&gt;
|-&lt;br /&gt;
| 201 || EraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 202 || [[#GetGameCardHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 203 || [[#GetGameCardUpdatePartitionInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 204 || FinalizeGameCardDriver&lt;br /&gt;
|-&lt;br /&gt;
| 205 || GetGameCardAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 206 || [[#GetGameCardDeviceCertificate]]&lt;br /&gt;
|-&lt;br /&gt;
| 207 || GetGameCardAsicInfo&lt;br /&gt;
|-&lt;br /&gt;
| 208 || GetGameCardIdSet&lt;br /&gt;
|-&lt;br /&gt;
| 209 || WriteToGameCardDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 210 || SetVerifyWriteEnalbleFlag&lt;br /&gt;
|-&lt;br /&gt;
| 211 || GetGameCardImageHash&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [2.0.0+] GetGameCardDeviceIdForProdCard&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [2.0.0+] EraseAndWriteParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [2.0.0+] ReadParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [2.0.0+] ForceEraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [2.0.0+] GetGameCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [2.1.0+] GetGameCardErrorReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [3.0.0+] GetGameCardDeviceId&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [8.0.0+] [[#ChallengeCardExistence]]&lt;br /&gt;
|-&lt;br /&gt;
| 220 || [9.0.0+] [[#GetGameCardCompatibilityType]]&lt;br /&gt;
|-&lt;br /&gt;
| 300 || SetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 301 || GetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [5.0.0+] SuspendSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 401 || [5.0.0+] ResumeSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 402 || [6.0.0+] [[#GetSdmmcConnectionStatus]]&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [6.0.0+] [[#SetDeviceSimulationEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [6.0.0+] [[#ClearDeviceSimulationEvent]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== IsGameCardInserted ==&lt;br /&gt;
No input, returns a bool.&lt;br /&gt;
&lt;br /&gt;
== GetGameCardHandle ==&lt;br /&gt;
No input, returns an u32 &#039;&#039;&#039;GameCardHandle&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== GetGameCardUpdatePartitionInfo ==&lt;br /&gt;
Returns a [[NCM_services#ProgramId|ProgramId]] and the title-version for it.&lt;br /&gt;
&lt;br /&gt;
* Output u32 with ARMS-gamecard: title-version v131162. This is the title-version for [[2.1.0]], which is the sysupdate included with this gamecard. Launch-day gamecards return title-version v450.&lt;br /&gt;
* Output u64 with ARMS-gamecard: [[NCM_services#ProgramId|ProgramId]] 0100000000000816.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]] appears to only use this with [[NCM_services|NCM]] for checking whether a sysupdate is required.&lt;br /&gt;
&lt;br /&gt;
== GetGameCardDeviceCertificate ==&lt;br /&gt;
Takes a type-0x6 output buffer, an u32 &#039;&#039;&#039;GameCardHandle&#039;&#039;&#039; and an u64 &#039;&#039;&#039;DeviceCertificateBufferSize&#039;&#039;&#039;. No output.&lt;br /&gt;
&lt;br /&gt;
== ChallengeCardExistence ==&lt;br /&gt;
Takes a type-0x6 output buffer, two type-0x5 input buffers and an u32 &#039;&#039;&#039;GameCardHandle&#039;&#039;&#039;. No output.&lt;br /&gt;
&lt;br /&gt;
[9.0.0+] The [[Account_services|account]] system module uses this as part of a new challenge-response mechanism for [[Network#aauth|application authentication]].&lt;br /&gt;
&lt;br /&gt;
== GetGameCardCompatibilityType ==&lt;br /&gt;
Takes an u32 &#039;&#039;&#039;GameCardHandle&#039;&#039;&#039;, returns an u8 &#039;&#039;&#039;CompatibilityType&#039;&#039;&#039; (0x00 = Global, 0x01 = China) from [[Gamecard_Format#Gamecard_Info|Gamecard Info]].&lt;br /&gt;
&lt;br /&gt;
== GetSdmmcConnectionStatus ==&lt;br /&gt;
Takes a total of 4-bytes of input, returns a total of 8-bytes of output.&lt;br /&gt;
&lt;br /&gt;
== SetDeviceSimulationEvent == &lt;br /&gt;
Takes a total of 0x14-bytes of input, no output.&lt;br /&gt;
&lt;br /&gt;
== ClearDeviceSimulationEvent ==&lt;br /&gt;
Takes a total of 4-bytes of input, no output.&lt;br /&gt;
&lt;br /&gt;
= IEventNotifier =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IEventNotifier&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetEventHandle]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetEventHandle ==&lt;br /&gt;
No input, returns an output Event handle. With official sw the EventClearMode is user-specified.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManager =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManager&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetToken]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataImporter]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== SetToken ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64, returns an [[#ISaveDataExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x10-byte userID, and a type-0x5 input buffer. Returns an output u64 and an [[#ISaveDataImporter]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManagerForSaveDataRepair =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManagerForSaveDataRepair&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[9.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetKeyPackage]]&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [[#OpenSaveDataExporterAndGetEncryptedKey]]&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [[#PrepareOpenSaveDataImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 90 || [[#OpenSaveDataImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 91 || [[#OpenSaveDataImporter2]]&lt;br /&gt;
|-&lt;br /&gt;
| 100 || [[#OpenSaveDataExporterWithKey]]&lt;br /&gt;
|-&lt;br /&gt;
| 110 || [[#OpenSaveDataImporterWithKey]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SetKeyPackage ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporterAndGetEncryptedKey ==&lt;br /&gt;
Takes a total of 0x10-bytes of input and a type-0x1A output buffer to receive a RsaEncryptedKey. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== PrepareOpenSaveDataImporter ==&lt;br /&gt;
Takes a type-0x1A output buffer to receive a RsaEncryptedKey.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes a total of 0x18-bytes of input and two type-0x5 input buffers, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter2 ==&lt;br /&gt;
Takes a total of 0x18-bytes of input and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporterWithKey ==&lt;br /&gt;
Takes a total of 0x20-bytes of input, returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterWithKey ==&lt;br /&gt;
Takes a total of 0x28-bytes of input and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetSaveDataInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Pull]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#PullInitialData]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetSaveDataInfo ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataExporter constructor. This is used automatically after [[#OpenSaveDataExporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Pull ==&lt;br /&gt;
Takes a type-0x6 output buffer, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== PullInitialData ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetSaveDataInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Push]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#Finalize]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetSaveDataInfo ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#GetSaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataImporter constructor. This is used automatically after [[#OpenSaveDataImporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Push ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== Finalize ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManagerWithDivision =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManagerWithDivision&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetKeySeedPackage]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [[#OpenSaveDataExporterForDiffExport]]&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] [[#OpenSaveDataExporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 64 || [5.0.0-5.1.0] OpenSaveDataImporter&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] [[#OpenSaveDataImporterDeprecated]]&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [[#OpenSaveDataImporterForDiffImport]]&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] [[#OpenSaveDataImporterForDuplicateDiffImport]]&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] [[#OpenSaveDataImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] [[#OpenSaveDataImporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [6.0.0+] [[#CancelSuspendingImport]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer containing the &#039;&#039;&#039;Challenge&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== SetKeySeedPackage ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer containing the &#039;&#039;&#039;KeySeedPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporterForDiffExport ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterDeprecated ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], a 0x10-byte userID, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterForDiffImport ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]], returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterForDuplicateDiffImport ==&lt;br /&gt;
Takes an input u8 and an u64, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8, an u8(bool), a 0x10-byte struct, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== CancelSuspendingImport ==&lt;br /&gt;
Takes an input u64 and a 0x10-byte struct, no output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#SetDivisionCount]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [6.0.0+] [[#GetSaveDataInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#OpenSaveDataDiffChunkIterator]]&lt;br /&gt;
|-&lt;br /&gt;
| 48 || [[#OpenSaveDataChunkExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0-8.1.0] [[#FinalizeFullExport]]&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [6.0.0-8.1.0] [[#FinalizeDiffExport]]&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] [[#CancelExport]]&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] [[#SuspendExport]]&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [6.0.0+] [[#GetKeySeed]]&lt;br /&gt;
|-&lt;br /&gt;
| 71 || [6.0.0+] [[#GetInitialDataMac]]&lt;br /&gt;
|-&lt;br /&gt;
| 72 || [6.0.0+] [[#FinalizeExport]]&lt;br /&gt;
|-&lt;br /&gt;
| 73 || [9.0.0+] [[#GetInitialDataMacKeyGeneration]]&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] [[#GetImportInitialDataAad]]&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [6.0.0+] [[#SetExportInitialDataAad]]&lt;br /&gt;
|-&lt;br /&gt;
| 96 || [6.0.0+] [[#GetReportInfo]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SetDivisionCount ==&lt;br /&gt;
Takes an input u32, no output.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataChunkExporter ==&lt;br /&gt;
Takes an input u32, returns an [[#ISaveDataChunkExporter]].&lt;br /&gt;
&lt;br /&gt;
== FinalizeFullExport ==&lt;br /&gt;
No input, returns two 0x10-byte output structs.&lt;br /&gt;
&lt;br /&gt;
== FinalizeDiffExport ==&lt;br /&gt;
No input, returns an output 0x10-byte struct.&lt;br /&gt;
&lt;br /&gt;
== CancelExport ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
== SuspendExport ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== GetKeySeed ==&lt;br /&gt;
No input, returns an output 0x10-byte struct.&lt;br /&gt;
&lt;br /&gt;
== GetInitialDataMac ==&lt;br /&gt;
No input, returns an output 0x10-byte struct.&lt;br /&gt;
&lt;br /&gt;
== FinalizeExport ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
== SetExportInitialDataAad ==&lt;br /&gt;
Takes an input 0x20-byte struct, no output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [6.0.0+] [[#GetSaveDataInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#OpenSaveDataDiffChunkIterator]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#InitializeImport]]&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [[#FinalizeImport]]&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] [[#CancelImport]]&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] [[#GetImportContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 36 || [6.0.0+] [[#SuspendImport]]&lt;br /&gt;
|-&lt;br /&gt;
| 48 || [[#OpenSaveDataChunkImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] [[#GetImportInitialDataAad]]&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] [[#GetReportInfo]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetSaveDataInfo ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffChunkIterator ==&lt;br /&gt;
No input, returns an [[#ISaveDataChunkIterator]].&lt;br /&gt;
&lt;br /&gt;
== InitializeImport ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== FinalizeImport ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
== CancelImport ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
== GetImportContext ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== SuspendImport ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataChunkImporter ==&lt;br /&gt;
Takes an input u32, returns an [[#ISaveDataChunkImporter]].&lt;br /&gt;
&lt;br /&gt;
== GetImportInitialDataAad == &lt;br /&gt;
No input, returns an output 0x20-byte struct.&lt;br /&gt;
&lt;br /&gt;
== GetReportInfo ==&lt;br /&gt;
No input, returns an output 0x20-byte struct.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkIterator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkIterator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Next]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#IsEnd]] &lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#GetId]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Next ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
== IsEnd ==&lt;br /&gt;
No input, returns an output u8.&lt;br /&gt;
&lt;br /&gt;
== GetId ==&lt;br /&gt;
No input, returns an output u32.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Pull]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [6.0.0+] [[#GetRestRawDataSize]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pull ==&lt;br /&gt;
Takes an input u64 and a type-0x6 output buffer, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== GetRestRawDataSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Push]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Push ==&lt;br /&gt;
Takes an input u64 and a type-0x5 input buffer, no output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferProhibiter =&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t seem to handle any commands (?).&lt;br /&gt;
&lt;br /&gt;
= IMultiCommitManager =&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#Add]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [[#Commit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Add ==&lt;br /&gt;
Takes an input [[#IFilesystem]], no output.&lt;br /&gt;
&lt;br /&gt;
== Commit ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
= FileSystemProxyType =&lt;br /&gt;
This is &amp;quot;nn::fs::FileSystemProxyType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Code&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Rom&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Logo&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Control&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Manual&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Meta&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Data&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Package&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [4.0.0+] RegisteredUpdate&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentType =&lt;br /&gt;
This is &amp;quot;nn::fs::ContentType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Meta&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Control&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Manual&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Logo&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::ContentStorageId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataSpaceId =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataSpaceId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdSystem&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [3.0.0+] Temporary&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [4.0.0+] SdUser&lt;br /&gt;
|-&lt;br /&gt;
| 100 || [3.0.0+] ProperSystem&lt;br /&gt;
|-&lt;br /&gt;
| 101 || [3.0.0+] SafeMode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Determines the storage where the savedata is stored.&lt;br /&gt;
&lt;br /&gt;
= SaveDataType =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Account&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Bcat&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Device&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [3.0.0+] Temporary&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [3.0.0+] Cache&lt;br /&gt;
|-&lt;br /&gt;
| 6 || [4.0.0+] SystemBcat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataRank =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataRank&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Primary&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Secondary&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataEnumerateOption =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataEnumerateOption&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || AllRank&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataFlags =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataFlags&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || KeepAfterResettingSystemSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 2 || KeepAfterRefurbishment&lt;br /&gt;
|-&lt;br /&gt;
| 4 || KeepAfterResettingSystemSaveDataWithoutUserSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 8 || NeedsSecureDelete&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataMetaType =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataMetaType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || None&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Thumbnail&lt;br /&gt;
|-&lt;br /&gt;
| 2 || ExtensionContext&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ImageDirectoryId =&lt;br /&gt;
This is &amp;quot;nn::fs::ImageDirectoryId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= CloudBackupWorkStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::CloudBackupWorkStorageId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= CustomStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::CustomStorageId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Priority =&lt;br /&gt;
This is &amp;quot;nn::fs::Priority&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Realtime&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Normal&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Low&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= PriorityRaw =&lt;br /&gt;
This is &amp;quot;nn::fs::PriorityRaw&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Realtime&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Normal&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Low&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Background&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= AbortSpecifier =&lt;br /&gt;
This is &amp;quot;nn::fs::AbortSpecifier&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Default&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Abort&lt;br /&gt;
|-&lt;br /&gt;
| 2 || ReturnResult&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= OperationId =&lt;br /&gt;
This is &amp;quot;nn::fs::OperationId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Clear&lt;br /&gt;
|-&lt;br /&gt;
| 1 || ClearSignature&lt;br /&gt;
|-&lt;br /&gt;
| 2 || InvalidateCache&lt;br /&gt;
|-&lt;br /&gt;
| 3 || QueryRange&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= MountHostOption =&lt;br /&gt;
This is &amp;quot;nn::fs::MountHostOption&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || PseudoCaseSensitive&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= BisPartitionId =&lt;br /&gt;
This is &amp;quot;nn::fs::BisPartitionId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || BootPartition1Root&lt;br /&gt;
|-&lt;br /&gt;
| 10 || BootPartition2Root&lt;br /&gt;
|-&lt;br /&gt;
| 20 || UserDataRoot&lt;br /&gt;
|-&lt;br /&gt;
| 21 || BootConfigAndPackage2Part1&lt;br /&gt;
|-&lt;br /&gt;
| 22 || BootConfigAndPackage2Part2&lt;br /&gt;
|-&lt;br /&gt;
| 23 || BootConfigAndPackage2Part3&lt;br /&gt;
|-&lt;br /&gt;
| 24 || BootConfigAndPackage2Part4&lt;br /&gt;
|-&lt;br /&gt;
| 25 || BootConfigAndPackage2Part5&lt;br /&gt;
|-&lt;br /&gt;
| 26 || BootConfigAndPackage2Part6&lt;br /&gt;
|-&lt;br /&gt;
| 27 || CalibrationBinary&lt;br /&gt;
|-&lt;br /&gt;
| 28 || CalibrationFile&lt;br /&gt;
|-&lt;br /&gt;
| 29 || SafeMode&lt;br /&gt;
|-&lt;br /&gt;
| 30 || User&lt;br /&gt;
|-&lt;br /&gt;
| 31 || System&lt;br /&gt;
|-&lt;br /&gt;
| 32 || SystemProperEncryption&lt;br /&gt;
|-&lt;br /&gt;
| 33 || SystemProperPartition&lt;br /&gt;
|-&lt;br /&gt;
| 34 || SignedSystemPartitionOnSafeMode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= MmcSpeedMode =&lt;br /&gt;
This is &amp;quot;nn::fs::MmcSpeedMode&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Identification&lt;br /&gt;
|-&lt;br /&gt;
| 1 || LegacySpeed&lt;br /&gt;
|-&lt;br /&gt;
| 2 || HighSpeed&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Hs200&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Hs400&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= MmcPartition =&lt;br /&gt;
This is &amp;quot;nn::fs::MmcPartition&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || UserData&lt;br /&gt;
|-&lt;br /&gt;
| 1 || BootPartition1&lt;br /&gt;
|-&lt;br /&gt;
| 2 || BootPartition2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= GameCardPartition =&lt;br /&gt;
This is &amp;quot;nn::fs::GameCardPartition&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Update&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Normal&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Secure&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [4.0.0+] Logo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= GameCardPartitionRaw =&lt;br /&gt;
This is &amp;quot;nn::fs::GameCardPartitionRaw&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || NormalReadOnly&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SecureReadOnly&lt;br /&gt;
|-&lt;br /&gt;
| 2 || RootWriteOnly&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= GameCardAttribute =&lt;br /&gt;
This is &amp;quot;nn::fs::GameCardAttribute&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || AutoBootFlag&lt;br /&gt;
|-&lt;br /&gt;
| 2 || HistoryEraseFlag&lt;br /&gt;
|-&lt;br /&gt;
| 4 || RepairToolFlag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= GameCardSize =&lt;br /&gt;
This is &amp;quot;nn::fs::GameCardSize&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Size1GB&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Size2GB&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Size4GB&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Size8GB&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Size16GB&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Size32GB&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= GameCardClockRate =&lt;br /&gt;
This is &amp;quot;nn::fs::GameCardClockRate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 25 || ClockRate25MHz&lt;br /&gt;
|-&lt;br /&gt;
| 50 || ClockRate50MHz&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SimulatingDeviceType =&lt;br /&gt;
This is &amp;quot;nn::fs::SimulatingDeviceType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GameCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SimulatingDeviceDetectionMode =&lt;br /&gt;
This is &amp;quot;nn::fs::SimulatingDeviceDetectionMode&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || NoSimulation&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DeviceAttached&lt;br /&gt;
|-&lt;br /&gt;
| 2 || DeviceRemoved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SimulatingDeviceAccessFailureEventType =&lt;br /&gt;
This is &amp;quot;nn::fs::SimulatingDeviceAccessFailureEventType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || None&lt;br /&gt;
|-&lt;br /&gt;
| 1 || AccessTimeoutFailure&lt;br /&gt;
|-&lt;br /&gt;
| 2 || AccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DataCorruption&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SimulatingDeviceTargetOperation =&lt;br /&gt;
This is &amp;quot;nn::fs::SimulatingDeviceTargetOperation&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Read&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Write&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SpeedEmulationMode =&lt;br /&gt;
This is &amp;quot;nn::fs::SpeedEmulationMode&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || None&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Faster&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Slower&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Random&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentPath =&lt;br /&gt;
These are the 0x300 paths to NCA files for the various filesystems FS can access, beginning with @. They&#039;re passed via X descriptors, and returned via various [[Location Resolver services|ncm/lr]] commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Path || Notes&lt;br /&gt;
|-&lt;br /&gt;
| @SystemContent ||&lt;br /&gt;
|- &lt;br /&gt;
| @UserContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @SdCardContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @CalibFile ||&lt;br /&gt;
|-&lt;br /&gt;
| @Safe ||&lt;br /&gt;
|-&lt;br /&gt;
| @User ||&lt;br /&gt;
|-&lt;br /&gt;
| @System ||&lt;br /&gt;
|-&lt;br /&gt;
| @Sdcard ||&lt;br /&gt;
|-&lt;br /&gt;
| @Host ||&lt;br /&gt;
|-&lt;br /&gt;
| @GcApp || Gamecard App partition (Partition 2)&lt;br /&gt;
|-&lt;br /&gt;
| @GcXYYYYYYYY || Gamecard Contents. X is the partition type (U - Update, N - Normal, S - Secure). Y is the gamecard handle as a 32-bit hex value &lt;br /&gt;
|-&lt;br /&gt;
| @upp || Gamecard update partition (Partition 0)&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] @RegUpdate || Registered update partition&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataAttribute =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataAttribute&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| [[NCM_services#ApplicationId|ApplicationId]] (0 for SystemSaveData)&amp;lt;/br&amp;gt;SaveData: 0 can be used for accessing the savedata associated with the current FS session [[NCM_services#ApplicationId|ApplicationId]], otherwise when set this is the [[NCM_services#ApplicationId|ApplicationId]] associated with the savedata to access.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x10&lt;br /&gt;
| UserId&amp;lt;/br&amp;gt;For user-specific savedata(saveuser) when set, otherwise when zero this indicates the common savedata(savecommon). This is loaded from [[Account_services]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| [[Flash_Filesystem|SystemSaveDataId]] (0 for SaveData)&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataRank]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x22&lt;br /&gt;
| 0x2&lt;br /&gt;
| SaveDataIndex&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
For DeviceSaveData, this struct is all-zero except for the [[#SaveDataType]] field.&lt;br /&gt;
&lt;br /&gt;
= SaveDataCreationInfo =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataCreationInfo&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| SaveDataSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| JournalSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8&lt;br /&gt;
| AvailableSize&amp;lt;/br&amp;gt;0x4000 for SystemSaveData/SaveData/DeviceSaveData/BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| OwnerId&amp;lt;/br&amp;gt;Official user-processes only uses 0 here for SystemSaveData/SaveData. For the dedicated save-creation code with SaveData/DeviceSaveData, this value comes from an input param with official user-processes. For BcatSaveData, this is the hard-coded [[NCM_services#ProgramId|ProgramId]] of the bcat-sysmodule.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#SaveDataFlags]]&amp;lt;/br&amp;gt;Written using an input param for official user-processes. Hard-coded 0 for BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataSpaceId]]&amp;lt;/br&amp;gt;Official user-processes only uses 0 here for SystemSaveData, 1 for SaveData/DeviceSaveData/BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25&lt;br /&gt;
| 0x1&lt;br /&gt;
| Unknown. 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x1A&lt;br /&gt;
| Not initialized for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
= DeviceSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8, the only difference compared to SaveData is the [[#SaveDataAttribute]].&lt;br /&gt;
&lt;br /&gt;
= BcatSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8. The [[#SaveDataAttribute]] is the same as DeviceSaveData, except that the [[NCM_services#ApplicationId|ApplicationId]] field is set to &amp;lt;input ApplicationId&amp;gt;. See above regarding [[#SaveDataCreationInfo]].&lt;br /&gt;
&lt;br /&gt;
The 0x10-byte struct passed to [[#CreateSaveDataFileSystem]] has the first 0x5-bytes set to all-zero.&lt;br /&gt;
&lt;br /&gt;
= SaveDataInfo =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataInfo&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| SaveDataId&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA&lt;br /&gt;
| 0x6&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| UserId&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x8&lt;br /&gt;
| SystemSaveDataId (0 for regular SaveData)&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| [[NCM_services#ApplicationId|ApplicationId]] (for regular SaveData)&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| Raw saveimage size&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x2&lt;br /&gt;
| SaveDataIndex&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataRank]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B&lt;br /&gt;
| 0x25&lt;br /&gt;
| Unknown. Usually zeros?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a 0x60-byte struct.&lt;br /&gt;
&lt;br /&gt;
= SaveDataFileSystemExtraData =&lt;br /&gt;
This is a 0x200-byte struct. Appears to match [[Savegames#Extra_data]].&lt;br /&gt;
&lt;br /&gt;
= InitialDataVersion2 =&lt;br /&gt;
This is a 0x8210-byte struct used by [[#ISaveDataTransferManagerWithDivision]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=8400</id>
		<title>Filesystem services</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=8400"/>
		<updated>2019-11-25T14:22:54Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* SaveDataFlags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= fsp-ldr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxyForLoader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#OpenCodeFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#IsArchivedProgram]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] [[#SetCurrentProcess]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenCodeFileSystem ==&lt;br /&gt;
Takes an [[NCM_services#ProgramId|ProgramId]] and a [[#ContentPath]]. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
== IsArchivedProgram ==&lt;br /&gt;
Takes an u64 ProcessId. Returns a bool (1 if the process id&#039;s [[#ContentPath]] ends in &amp;quot;.nca&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== SetCurrentProcess ==&lt;br /&gt;
Takes a ProcessId descriptor.&lt;br /&gt;
&lt;br /&gt;
= fsp-pr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IProgramRegistry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#RegisterProgram]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#UnregisterProgram]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] [[#SetCurrentProcess]]&lt;br /&gt;
|-&lt;br /&gt;
| 256 || [[#SetEnabledProgramVerification]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== RegisterProgram ==&lt;br /&gt;
Takes a [[NCM_services#StorageId|StorageId]], an u64 ProcessId, a [[NCM_services#ProgramId|ProgramId]], a 0x1C type-A buffer for the [[NPDM#FS_Access_Header| FS Access Header]], and a 0x2C type-A buffer for the [[NPDM#FS_Access_Control| FS Access Control]]&lt;br /&gt;
&lt;br /&gt;
Final FS permissions are stored as (ACI0_perms &amp;amp; ACID_perms). Will panic(svcBreak) when buffer sizes from ipc-rawdata are invalid.&lt;br /&gt;
&lt;br /&gt;
== UnregisterProgram ==&lt;br /&gt;
Takes a pid. Removes registered FS permissions for that PID.&lt;br /&gt;
&lt;br /&gt;
== SetEnabledProgramVerification ==&lt;br /&gt;
Seems to sets a global flag to inputval &amp;amp; 1.&lt;br /&gt;
&lt;br /&gt;
When the flag is zero, it will set ret=0 instead of ret={error} when verifying the fixed-key [[NPDM]] ACID signature fails. This also skips verifying the [[NCA_Format|NCA Header]] signature using the ACID key. Note that if verifying the fixed-key ACID signature is successful, and verifying the ACID-key NCA header signature fails, it will throw an error and abort.&lt;br /&gt;
&lt;br /&gt;
= fsp-srv =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxy&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [1.0.0] [[#OpenFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#SetCurrentProcess]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || OpenDataFileSystemByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [2.0.0+] [[#OpenFileSystemWithPatch]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [2.0.0+] [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [3.0.0+] OpenDataFileSystemByProgramId&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || InvalidateBisCache&lt;br /&gt;
|-&lt;br /&gt;
| 17 || OpenHostFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 18 || OpenSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 19 || [2.0.0+] FormatSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 21 || [[#DeleteSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 22 || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 23 || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 24 || RegisterSaveDataFileSystemAtomicDeletion&lt;br /&gt;
|-&lt;br /&gt;
| 25 || [2.0.0+] DeleteSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 26 || [2.0.0+] FormatSdCardDryRun&lt;br /&gt;
|-&lt;br /&gt;
| 27 || [2.0.0+] IsExFatSupported&lt;br /&gt;
|-&lt;br /&gt;
| 28 || [4.0.0+] DeleteSaveDataFileSystemBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 30 || [[#OpenGameCardStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 31 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [3.0.0+] ExtendSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [5.0.0+] DeleteCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [5.0.0+] GetCacheStorageSize&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] [[#CreateSaveDataFileSystemWithHashSalt]]&lt;br /&gt;
|-&lt;br /&gt;
| 36 || [9.0.0+] OpenHostFileSystemWithOption&lt;br /&gt;
|-&lt;br /&gt;
| 51 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 52 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 53 || [2.0.0+] OpenReadOnlySaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 57 || [3.0.0+] [[#ReadSaveDataFileSystemExtraDataBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 58 || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 59 || [2.0.0+] WriteSaveDataFileSystemExtraData&lt;br /&gt;
|-&lt;br /&gt;
| 60 || [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 61 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 62 || [5.0.0+] OpenSaveDataInfoReaderOnlyCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [5.0.0+] OpenSaveDataInternalStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [5.0.0+] UpdateSaveDataMacForDebug&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [5.0.0+] WriteSaveDataFileSystemExtraDataWithMask&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] [[#FindSaveDataWithFilter]]&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] [[#OpenSaveDataInfoReaderWithFilter]]&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [8.0.0+] ReadSaveDataFileSystemExtraDataBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [8.0.0+] WriteSaveDataFileSystemExtraDataBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 80 || OpenSaveDataMetaFile&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [4.0.0+] [[#OpenSaveDataTransferManager]]&lt;br /&gt;
|-&lt;br /&gt;
| 82 || [5.0.0+] [[#OpenSaveDataTransferManagerVersion2]]&lt;br /&gt;
|-&lt;br /&gt;
| 83 || [6.0.0+] [[#OpenSaveDataTransferProhibiter]]&lt;br /&gt;
|-&lt;br /&gt;
| 84 || [6.0.0+] [[#ListAccessibleSaveDataOwnerId]]&lt;br /&gt;
|-&lt;br /&gt;
| 85 || [9.0.0+] [[#OpenSaveDataTransferManagerForSaveDataRepair]]&lt;br /&gt;
|-&lt;br /&gt;
| 100 || OpenImageDirectoryFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 110 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 120 || [6.0.0+] [[#OpenCloudBackupWorkStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 130 || [7.0.0+] [[#OpenCustomStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 200 || OpenDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 201 || [3.0.0+] OpenDataStorageByProgramId&lt;br /&gt;
|-&lt;br /&gt;
| 202 || [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 203 || OpenPatchDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 204 || [7.0.0+] [[#OpenDataFileSystemWithProgramIndex]]&lt;br /&gt;
|-&lt;br /&gt;
| 205 || [7.0.0+] [[#OpenDataStorageWithProgramIndex]]&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [[#OpenDeviceOperator]]&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 510 || [5.0.0+] OpenSystemDataUpdateEventNotifier&lt;br /&gt;
|-&lt;br /&gt;
| 511 || [5.0.0+] NotifySystemDataUpdateEvent&lt;br /&gt;
|-&lt;br /&gt;
| 520 || [6.0.0+] [[#SimulateDeviceDetectionEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| 600 || [1.0.0-3.0.2] SetCurrentPosixTime&lt;br /&gt;
|-&lt;br /&gt;
| 601 || QuerySaveDataTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 602 || [[#VerifySaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 603 || CorruptSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 604 || CreatePaddingFile&lt;br /&gt;
|-&lt;br /&gt;
| 605 || DeleteAllPaddingFiles&lt;br /&gt;
|-&lt;br /&gt;
| 606 || [2.0.0+] GetRightsId&lt;br /&gt;
|-&lt;br /&gt;
| 607 || [2.0.0+] RegisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 608 || [2.0.0+] UnregisterAllExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 609 || [2.0.0+] GetRightsIdByPath&lt;br /&gt;
|-&lt;br /&gt;
| 610 || [3.0.0+] GetRightsIdAndKeyGenerationByPath&lt;br /&gt;
|-&lt;br /&gt;
| 611 || [4.0.0+] SetCurrentPosixTimeWithTimeDifference&lt;br /&gt;
|-&lt;br /&gt;
| 612 || [4.0.0+] GetFreeSpaceSizeForSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 613 || [4.0.0+] VerifySaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 614 || [4.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 615 || [5.0.0+] QuerySaveDataInternalStorageTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 616 || [6.0.0+] [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| 617 || [7.0.0+] UnregisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 620 || [2.0.0+] [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| 630 || [4.0.0+] SetSdCardAccessibility&lt;br /&gt;
|-&lt;br /&gt;
| 631 || [4.0.0+] IsSdCardAccessible&lt;br /&gt;
|-&lt;br /&gt;
| 640 || [4.0.0-7.0.1] IsSignedSystemPartitionOnSdCardValid&lt;br /&gt;
|-&lt;br /&gt;
| 700 || [5.0.0+] [[#OpenAccessFailureDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 701 || [5.0.0+] GetAccessFailureDetectionEvent&lt;br /&gt;
|-&lt;br /&gt;
| 702 || [5.0.0+] IsAccessFailureDetected&lt;br /&gt;
|-&lt;br /&gt;
| 710 || [5.0.0+] ResolveAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 720 || [5.0.0+] AbandonAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [2.0.0+] GetAndClearErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [7.0.0+] RegisterProgramIndexMapInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1000 || SetBisRootForHost&lt;br /&gt;
|-&lt;br /&gt;
| 1001 || [[#SetSaveDataSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1002 || [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| 1003 || DisableAutoSaveDataCreation&lt;br /&gt;
|-&lt;br /&gt;
| 1004 || [[#SetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1005 || [[#GetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1006 || [[#OutputAccessLogToSdCard]]&lt;br /&gt;
|-&lt;br /&gt;
| 1007 || [4.0.0+] RegisterUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1008 || [4.0.0+] OpenRegisteredUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1009 || [4.0.0+] GetAndClearMemoryReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1010 || [5.1.0-6.2.0] SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| 1011 || [7.0.0+] [[#GetProgramIndexForAccessLog]]&lt;br /&gt;
|-&lt;br /&gt;
| 1012 || [9.0.0+] GetFsStackUsage&lt;br /&gt;
|-&lt;br /&gt;
| 1013 || [9.0.0+] UnsetSaveDataRootPath&lt;br /&gt;
|-&lt;br /&gt;
| 1100 || [4.0.0+] OverrideSaveDataTransferTokenSignVerificationKey&lt;br /&gt;
|-&lt;br /&gt;
| 1110 || [6.0.0+] CorruptSaveDataFileSystemByOffset&lt;br /&gt;
|-&lt;br /&gt;
| 1200 || [6.0.0+] [[#OpenMultiCommitManager]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
Every time permissions are checked, the process registration [[#fsp-pr]] is loaded using the session processID. The permission data is populated with data from the [[NPDM]].&lt;br /&gt;
&lt;br /&gt;
If the processID is &amp;lt;= 6 (which happens only for built-in sysmodules), it will use a hardcoded registration data. The default mask in this case is 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
Note that the functions check whether or not at least one bit is set in the mask. This means that, you don&#039;t need to set 0xFFFFFFFFFFFFFFFF to get all permissions: it suffices to set 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
If the code were to request an invalid input type, panic. But this never happens.&lt;br /&gt;
&lt;br /&gt;
The output values for [[#ReadWrite]] CanMountRegisteredUpdatePartition and [[#Call]] CanRegisterUpdatePartition are masked with the cached value of [[SMC#IsDebugMode|DebugMode]].&lt;br /&gt;
&lt;br /&gt;
=== ReadWrite ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! AccessibilityType || Mask || Name || Value || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000801 || CanMountLogo || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000801 || CanMountContentMeta || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000801 || CanMountContentControl || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000801 || CanMountContentManual || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000801 || CanMountContentData || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000801 || CanMountApplicationPackage || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000000000 || CanMountSaveDataStorage || 3 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000800 || CanMountContentStorage || 3 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000001000 || CanMountImageAndVideoStorage || 3 || [[#OpenImageDirectoryFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanMountCloudBackupWorkStorage || 3 || OpenCloudBackupWorkStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000000000&amp;lt;br/&amp;gt;([7.0.0-7.0.1] 0x4000000000000000)&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000084)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountCustomStorage0 || 3 || OpenCustomStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000084&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000008080) || CanMountBisCalibrationFile || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-6.2.0] 0x8000000000008080) || CanMountBisSafeMode || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000008080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountBisUser || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000008080&amp;lt;br/&amp;gt;([3.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanMountBisSystem || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000010) || CanMountBisSystemProperEncryption || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000200000&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000040020) || CanMountBisSystemProperPartition || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0xC000000000200000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000028) || CanMountSdCard || 3 || [[#OpenSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000000010&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000020) || CanMountGameCard || 3 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0x8000000000040020&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000020) || CanMountDeviceSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x8000000000000028&amp;lt;br/&amp;gt;([3.0.0-6.2.0] 0x8000000000000020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010082) || CanMountSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0x8000000000000020&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanMountOthersSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0x8000000000000020&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanMountOthersSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0x8000000000010082&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010080)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition1Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x8000000000010080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition2Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010080) || CanOpenBisPartitionUserDataRoot || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part1 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part2 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part3 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part4 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part5 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || 0x8000000000010080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000084)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000080) || CanOpenBisPartitionBootConfigAndPackage2Part6 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x8000000000000084&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationBinary || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0x8000000000000084&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationFile || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0x8000000000000080 || CanOpenBisPartitionSafeMode || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanOpenBisPartitionUser || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000100) || CanOpenBisPartitionSystem || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000100008) || CanOpenBisPartitionSystemProperEncryption || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000400000) || CanOpenBisPartitionSystemProperPartition || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x27 || 0xC000000000200000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000100008) || CanOpenSdCardStorage || ||&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x28 || 0x8000000000000100&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000100008)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000400000) || CanOpenGameCardStorage || 3 || [[#OpenGameCardStorage]], [[#EraseGameCard]] (bit1), [[#WriteToGameCard]] (bit1), [[#GetGameCardErrorInfo]] (bit1), [[#EraseAndWriteParamDirectly]] (bit1), [[#ReadParamDirectly]] (bit1), [[#ForceEraseGameCard]] (bit1) &lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x29 || 0x8000000000100008&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000400000)&amp;lt;br/&amp;gt;([4.0.0-5.1.0] 0x8000000000010000) || CanMountSystemDataPrivate || 1 || [[#OpenFileSystem]], [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0xC000000000400000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000000) || CanMountHost || 3 || [[#OpenHostFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x2B || 0x8000000000010000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000000) || CanMountRegisteredUpdatePartition || 1 || [[#OpenRegisteredUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] 0x2C || 0x8000000000000000 || CanOpenSaveDataInternalStorage || 3 || [[#OpenSaveDataInternalStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] 0x2D || 0x0000000000000000 || CanNotMountCustomStorage || 3 || OpenCustomStorageFileSystem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Call ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OperationType || Mask || Name || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000080 || CanInvalidateBisCache || [[#InvalidateBisCache]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000080 || CanEraseMmc || EraseMmc&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000010 || CanGetGameCardDeviceCertificate || GetGameCardDeviceCertificate&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000010 || CanGetGameCardIdSet || GetGameCardIdSet&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000200 || CanFinalizeGameCardDriver || FinalizeGameCardDriver&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000200 || CanGetGameCardAsicInfo || GetGameCardAsicInfo&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000002020 || CanCreateSaveData || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000060 || CanDeleteSaveData || [[#DeleteSaveDataFileSystem]], RegisterSaveDataFileSystemAtomicDeletion&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000000028 || CanCreateSystemSaveData || CreateSaveDataFileSystemBySystemSaveDataId&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000000000020 || CanCreateOthersSystemSaveData || CreateSaveDataFileSystemBySystemSaveDataId&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000004028 || CanDeleteSystemSaveData || [[#DeleteSaveDataFileSystem]], RegisterSaveDataFileSystemAtomicDeletion&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000060 || CanOpenSaveDataInfoReader || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000004020 || CanOpenSaveDataInfoReaderForSystem || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000000040&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000020000) || CanOpenSaveDataInfoReaderForInternal || [[#OpenSaveDataInfoReaderWithFilter]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000020000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000400) || CanOpenSaveDataMetaFile || OpenSaveDataMetaFile&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000400&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000004060) || CanSetCurrentPosixTime || SetCurrentPosixTime, SetCurrentPosixTimeWithTimeDifference&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000004060&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000080000) || CanReadSaveDataFileSystemExtraData || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x8000000000080000 || CanSetGlobalAccessLogMode || [[#SetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000080000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] Invalid) || CanSetSpeedEmulationMode || SetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || Invalid&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000800000) || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0xC000000000800000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000001000000) || CanFillBis || CreatePaddingFile, DeleteAllPaddingFiles&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0xC000000001000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000001000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0xC000000002000000) || CanCorruptSaveData || CorruptSaveDataFileSystem, CorruptSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x16 || 0x8000000001000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000060)&amp;lt;br/&amp;gt;([2.0.0-4.1.0] 0x8000000004000000) || CanCorruptSystemSaveData || CorruptSaveDataFileSystem, CorruptSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x17 || 0x8000000000000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0xC000000002000000)&amp;lt;br/&amp;gt;([2.0.0-4.1.0] 0x8000000008000000) || CanVerifySaveData || [[#VerifySaveDataFileSystem]], VerifySaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x18 || 0xC000000002000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000004000000)&amp;lt;br/&amp;gt;([2.0.0-4.1.0] 0x8000000010000000) || CanDebugSaveData || [[#CreateSaveDataFileSystem]], [[#OpenSaveDataFileSystem]], [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x19 || 0x8000000004000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000008000000)&amp;lt;br/&amp;gt;([2.0.0-4.1.0] 0x8000000000000800) || CanFormatSdCard || FormatSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x1A || 0x8000000008000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000010000000)&amp;lt;br/&amp;gt;([2.0.0-4.1.0] 0x8000000000004020) || CanGetRightsId || GetRightsId, GetRightsIdAndKeyGenerationByPath, GetRightsIdByPath&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1B || 0x8000000010000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000800)&amp;lt;br/&amp;gt;([3.0.0-4.1.0] 0x8000000000002020) || CanRegisterExternalKey || RegisterExternalKey, UnregisterAllExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1C || 0x8000000000000800&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000004020)&amp;lt;br/&amp;gt;([3.0.0-4.1.0] 0x8000000000000028) || CanSetEncryptionSeed || [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1D || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000000)&amp;lt;br/&amp;gt;([4.0.0-4.1.0] 0x8000000020000000) || CanWriteSaveDataFileSystemExtraDataTimeStamp || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1E || 0x8000000000004020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000002020)&amp;lt;br/&amp;gt;([4.0.0-4.1.0] 0x8000000040000000) || CanWriteSaveDataFileSystemExtraDataFlags || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1F || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([4.0.0-4.1.0] 0x8000000000000000) || CanWriteSaveDataFileSystemExtraDataCommitId || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x20 || 0x8000000000000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000020000000)&amp;lt;br/&amp;gt;([4.0.0-4.1.0] 0x8000000000000000) || CanWriteSaveDataFileSystemExtraDataAll || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x21 || 0x8000000000002020&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanExtendSaveData || ExtendSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x22 || 0x8000000000000028&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000002) || CanExtendSystemSaveData || ExtendSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x23 || 0x8000000020000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanRegisterUpdatePartition || RegisterUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x24 || 0x8000000040000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanOpenSaveDataTransferManager || [[#OpenSaveDataTransferManager]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x25 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanOpenSaveDataTransferManagerVersion2 || [[#OpenSaveDataTransferManagerVersion2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x26 || 0x8000000200000000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000200002000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000080000110) || CanOpenSaveDataTransferManagerForSaveDataRepair || OpenSaveDataTransferManagerForSaveDataRepair&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x27 || 0x8000000000000000&amp;lt;br/&amp;gt;([8.0.0-8.1.0] 0x8000000240002000)&amp;lt;br/&amp;gt;([6.0.0-7.0.1] 0x8000000200002000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000100008) || CanOpenSaveDataTransferManagerForSaveDataRepairTool || OpenSaveDataTransferManagerForSaveDataRepair&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x28 || 0x8000000200002000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000000000000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000080010000) || CanOpenOpenSaveDataTransferProhibiter || [[#OpenSaveDataTransferProhibiter]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x29 || 0x8000000240002000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000000000000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x0000000080000001) || CanListAccessibleSaveDataOwnerId || [[#ListAccessibleSaveDataOwnerId]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0x8000000000000000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000080200000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x0000000080000001) || CanControlMmcPatrol || SuspendMmcPatrol, ResumeMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2B || 0x8000000000000000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000080000110)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x0000000080000001) || CanOverrideSaveDataTransferTokenSignVerificationKey || OverrideSaveDataTransferTokenSignVerificationKey&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2C || 0x8000000080200000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000000100008)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x0000000080000001) || CanOpenSdCardDetectionEventNotifier || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2D || 0x8000000080000110&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000000010000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x0000000080000001) || CanOpenGameCardDetectionEventNotifier || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2E || 0x8000000000100008&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000100000000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000040000000) || CanOpenSystemDataUpdateEventNotifier || OpenSystemDataUpdateEventNotifier&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2F || 0x8000000000010000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000100000000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000080200000) || CanNotifySystemDataUpdateEvent || NotifySystemDataUpdateEvent&lt;br /&gt;
|-&lt;br /&gt;
| [5.1.0+] 0x30 || 0x8000000100000000&amp;lt;br/&amp;gt;([5.1.0-6.0.0] 0x8000000080080000) || CanOpenAccessFailureDetectionEventNotifier || [[#OpenAccessFailureDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x31 || 0x8000000100000000 || CanGetAccessFailureDetectionEvent || GetAccessFailureDetectionEvent&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x32 || 0x8000000100000000 || CanIsAccessFailureDetected || IsAccessFailureDetected&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x33 || 0x8000000100000000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000040000000) || CanResolveAccessFailure || ResolveAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x34 || 0x8000000100000000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000200000020) || CanAbandonAccessFailure || AbandonAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x35 || 0x8000000040000000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000000200000) || CanQuerySaveDataInternalStorageTotalSize || QuerySaveDataInternalStorageTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x36 || 0x8000000200000020&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x4000000000000000) || CanGetSaveDataCommitId || [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x37 || 0x8000000000200000&amp;lt;br/&amp;gt;([7.0.0-8.1.0] 0x8000000000000000)&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000080000) || CanSetSdCardAccessibility || SetSdCardAccessibility&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x38 || 0x4000000000000000&amp;lt;br/&amp;gt;([7.0.0-8.1.0] 0x8000000400000000)&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000000) || CanSimulateDevice || SimulateDeviceDetectionEvent, SetSimulationEvent, ClearSimulationEvent&lt;br /&gt;
|-&lt;br /&gt;
| [8.0.0+] 0x39 || 0x8000000000000000&amp;lt;br/&amp;gt;([8.0.0-8.1.0] 0x8000000000000010) || CanCreateSaveDataWithHashSalt || [[#CreateSaveDataFileSystem]], [[#CreateSaveDataFileSystemWithHashSalt]]&lt;br /&gt;
|-&lt;br /&gt;
| [9.0.0+] 0x3A || 0x8000000400000000 || CanRegisterProgramIndexMapInfo || RegisterProgramIndexMapInfo&lt;br /&gt;
|-&lt;br /&gt;
| [9.0.0+] 0x3B || 0x8000000000000010 || CanChallengeCardExistence || ChallengeCardExistence&lt;br /&gt;
|-&lt;br /&gt;
| [9.0.0+] 0x3C || 0x8000000800000000 || CanCreateOwnSaveData || [[#CreateSaveDataFileSystem]], CreateSaveDataFileSystemWithHashSalt&lt;br /&gt;
|-&lt;br /&gt;
| [9.0.0+] 0x3D || 0x8000000800000000 || CanReadOwnSaveDataFileSystemExtraData || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| [9.0.0+] 0x3E || 0x8000000800000000 || CanExtendOwnSaveData || ExtendSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| [9.0.0+] 0x3F || 0x8000000800000000 || CanOpenOwnSaveDataTransferProhibiter || [[#OpenSaveDataTransferProhibiter]]&lt;br /&gt;
|-&lt;br /&gt;
| [9.0.0+] 0x40 || 0x8000000800000000 || CanFindOwnSaveDataWithFilter || [[#FindSaveDataWithFilter]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystem ==&lt;br /&gt;
Takes a type-0x19 input [[#ContentPath]] and a [[#FileSystemType]] as parameters. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
[2.0.0+] This function was removed.&lt;br /&gt;
&lt;br /&gt;
== SetCurrentProcess ==&lt;br /&gt;
Takes a pid-descriptor.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithPatch ==&lt;br /&gt;
Takes an input [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Web-applet loads the [[#FileSystemType]] (which must be &#039;&#039;&#039;ContentManual&#039;&#039;&#039;) from u32_table[inparam].&lt;br /&gt;
&lt;br /&gt;
Note: web-applet strings refer to both this cmd and [[#OpenFileSystemWithId]] as &amp;quot;MountContent&amp;quot;, but official nn_sf_sync symbols use &amp;quot;OpenXX&amp;quot; names.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithId ==&lt;br /&gt;
Takes a type-0x19 input buffer, an [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
The [[#IFileSystem]] must be &#039;&#039;&#039;ContentMeta&#039;&#039;&#039; if the NCA type is 0 (control).&lt;br /&gt;
&lt;br /&gt;
The input buffer is the output string path from [[NS_Services#GetApplicationContentPath|GetApplicationContentPath]].&lt;br /&gt;
&lt;br /&gt;
May return errors when attempting to access NCA-paths for an update-title with a gamecard, when the gamecard isn&#039;t inserted. May return error 0x7D402 in some cases with update-titles. Non-val2 in32 values with NCA-type1 are unusable, even for normal titles.&lt;br /&gt;
&lt;br /&gt;
The official &amp;quot;MountApplicationPackage&amp;quot; func uses this with in64=0 and [[#FileSystemType]] &#039;&#039;&#039;ApplicationPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
After the [[#FileSystemType]] specific permissions are checked, it then gets the func retval for permissions-type 0x25 and func0.&lt;br /&gt;
&lt;br /&gt;
When [[#FileSystemType]] is &#039;&#039;&#039;ContentMeta&#039;&#039;&#039;, it uses in64=0xffffffffffffffff internally, otherwise it checks if in64 is set to 0xffffffffffffffff then throws an error if so. When the in64 used internally is not 0xffffffffffffffff, it&#039;s compared with the NCA [[NCM_services#ProgramId|ProgramId]], then an error is thrown on mismatch.&lt;br /&gt;
&lt;br /&gt;
== OpenBisFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer string and a [[#BisPartitionId]]. Official user-process code sets instr[0] = 0 normally. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Only partitionIDs for FAT partitions are usable with this, otherwise error 0x2EE202 is returned. Seems to be about the same as [[#OpenBisStorage]] except this mounts the partition filesystem instead of allowing direct access to the partition sectors.&lt;br /&gt;
&lt;br /&gt;
== OpenBisStorage ==&lt;br /&gt;
Takes a u32 partition ID, returns 0x2EE202 for partitions which do not exist, 0x320002 for partitions which cannot be opened and a valid [[#IStorage]] handle otherwise.&lt;br /&gt;
&lt;br /&gt;
== InvalidateBisCache ==&lt;br /&gt;
Seems to invalidate the Bis cache for MBR/GPT after overwriting that data via the OpenBisStorage IStorage. Used by [[SystemInitializer]].&lt;br /&gt;
&lt;br /&gt;
== DeleteSaveDataFileSystem ==&lt;br /&gt;
Takes an input u64.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystem ==&lt;br /&gt;
Takes a 0x40-byte [[#SaveDataAttribute]], a 0x40-byte [[#SaveDataCreationInfo]], and a 0x10-byte input struct.&lt;br /&gt;
&lt;br /&gt;
Only the first 0x5-bytes in the 0x10-byte struct are initialized: all-zero when automatically creating savedata during savecommon mount by official user-processes. In the dedicated save-creation code in official user-processes: +0 u32 = 0x40060, +4 u8 = 1.&lt;br /&gt;
&lt;br /&gt;
Creates regular savedata.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes a 0x40-byte [[#SaveDataAttribute]] and a 0x40-byte [[#SaveDataCreationInfo]].&lt;br /&gt;
&lt;br /&gt;
Creates savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardStorage ==&lt;br /&gt;
Takes two input u32s (gamecard handle, partition ID), and returns an [[#IStorage]] for the [[Gamecard_Format|partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardFileSystem ==&lt;br /&gt;
Takes two input u32s, with the second u32 located at +4 in rawdata after the first u32. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts a [[Gamecard_Partition|gamecard partition]].&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystemWithHashSalt ==&lt;br /&gt;
Takes a total of 0xB0-bytes of input, no output.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystem ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte [[#SaveDataAttribute]]. Official user-process code is only known to use value 1 for the u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Permissions aren&#039;t checked until the specified save is successfully found.&lt;br /&gt;
&lt;br /&gt;
Only one process (specifically only one [[#IFileSystem]] session) can mount a given savedata at any given time (this includes SystemSaveData).&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte [[#SaveDataAttribute]]. Web-applet only uses value0 for the input u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraDataBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an input u64 saveID, and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraData ==&lt;br /&gt;
Takes an input u64 saveID and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReader ==&lt;br /&gt;
No input, returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReaderBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== FindSaveDataWithFilter ==&lt;br /&gt;
Takes a total of 0x50-bytes of input, returns 8-bytes of output and a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReaderWithFilter ==&lt;br /&gt;
Takes a total of 0x50-bytes of input, returns an [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataTransferManager ==&lt;br /&gt;
No input, returns an [[#ISaveDataTransferManager]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataTransferManagerVersion2 ==&lt;br /&gt;
No input, returns an [[#ISaveDataTransferManagerWithDivision]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataTransferProhibiter ==&lt;br /&gt;
Takes an input u64, returns an [[#ISaveDataTransferProhibiter]].&lt;br /&gt;
&lt;br /&gt;
== ListAccessibleSaveDataOwnerId ==&lt;br /&gt;
Takes a total of 0x10-bytes of input, returns 4-bytes of output and a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataTransferManagerForSaveDataRepair ==&lt;br /&gt;
No input, returns an output [[#ISaveDataTransferManagerForSaveDataRepair]].&lt;br /&gt;
&lt;br /&gt;
== OpenContentStorageFileSystem ==&lt;br /&gt;
Takes a [[#ContentStorageId]]. Invalid values return 0x2EE202.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]] with NCA files. The read data from these files is identical to the data read by [[NCM_services#ReadContentIdFile]].&lt;br /&gt;
&lt;br /&gt;
== OpenCloudBackupWorkStorageFileSystem ==&lt;br /&gt;
Takes 4-bytes of input, returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
== OpenCustomStorageFileSystem ==&lt;br /&gt;
Takes a [[#CustomStorageId]]. Invalid values return 0x2EE202.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]] from either User:/CustomStorage0 or Sdcard:/Nintendo/CustomStorage0. If on the SD card, an AesXtsFileSystem is created using a key source specifically for custom storage.&lt;br /&gt;
&lt;br /&gt;
== OpenDataStorageByDataId ==&lt;br /&gt;
Takes a [[NCM_services#StorageId|StorageID]] and a [[NCM_services#DataId|DataId]].&lt;br /&gt;
&lt;br /&gt;
Returns a [[IPC_Marshalling#Domain_message|domain object ID]] implementing the [[#IStorage]] interface for data archives.&lt;br /&gt;
&lt;br /&gt;
== OpenDataFileSystemWithProgramIndex ==&lt;br /&gt;
Takes an input u8, returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
== OpenDataStorageWithProgramIndex ==&lt;br /&gt;
Takes an input u8, returns an [[#IStorage]].&lt;br /&gt;
&lt;br /&gt;
== OpenDeviceOperator ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IDeviceOperator]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenSdCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== SimulateDeviceDetectionEvent ==&lt;br /&gt;
Takes a total of 0xC-bytes of input, no output.&lt;br /&gt;
&lt;br /&gt;
== VerifySaveDataFileSystem ==&lt;br /&gt;
Takes an unknown input u64 and a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
The input u64 high-byte must be non-zero, otherwise an [[Error_codes|error]] is returned(0xE02).&lt;br /&gt;
&lt;br /&gt;
== GetSaveDataCommitId ==&lt;br /&gt;
Takes an input u8 and u64, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== SetSdCardEncryptionSeed ==&lt;br /&gt;
Takes in the 0x10 byte SD card encryption seed, and loads it into FS-module state.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]]-module reads the 0x10 bytes from SdCard:/Nintendo/Contents/private, and compares them to the first 0x10 bytes of the ns_appman:/private (in [[Flash_Filesystem#System_Savegames|system savedata]] 0x8000000000000043). If they match, NS calls this command using bytes 0x10-0x20 from ns_appman:/private. The rest of this file (0x1F0 bytes total) is (usually/always?) all-zero (however in some cases the byte at offset 0x20 is value 0x1).&lt;br /&gt;
&lt;br /&gt;
== OpenAccessFailureDetectionEventNotifier ==&lt;br /&gt;
Takes 8-bytes of input and returns an [[#IEventNotifier]].&lt;br /&gt;
&lt;br /&gt;
[8.0.0+] Now takes an additional 8-bytes of input.&lt;br /&gt;
&lt;br /&gt;
== SetSaveDataSize ==&lt;br /&gt;
Takes two input u64s &amp;quot;size&amp;quot; and &amp;quot;journal_size&amp;quot;, and writes them to fsp-srv object member variables.&lt;br /&gt;
&lt;br /&gt;
These variables are normally initialized with 32 MiB (0x2000000) and 16 MiB (0x1000000), respectively.&lt;br /&gt;
&lt;br /&gt;
These variables don&#039;t seem to be actually used anywhere else (?)&lt;br /&gt;
&lt;br /&gt;
== SetSaveDataRootPath ==&lt;br /&gt;
Takes an input path, and does snprintf(&amp;lt;fsp-srv object&amp;gt;-&amp;gt;m_save_data_root_path, FS_MAX_PATH-1, &amp;quot;/%s&amp;quot;, input_path);&lt;br /&gt;
&lt;br /&gt;
This path is normally all-zero. When this path is non-zero, the internal OpenSaveDataFileSystem function will create a DirectorySaveDataFileSystem if the target save is a user-save + a directory exists, instead of the normal savedata filesystem object.&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== GetGlobalAccessLogMode ==&lt;br /&gt;
Returns an output u32.&lt;br /&gt;
&lt;br /&gt;
GlobalAccessLogMode is normally 0.&lt;br /&gt;
&lt;br /&gt;
== OutputAccessLogToSdCard ==&lt;br /&gt;
Takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
The input buffer is the string to output to the log. User-processes normally include a newline at the end.&lt;br /&gt;
&lt;br /&gt;
User-processes only use this when the value previously loaded from [[#GetGlobalAccessLogMode]] has bit1 set.&lt;br /&gt;
&lt;br /&gt;
When bit1 in GlobalAccessLogMode is clear, FS-module will just return 0 for OutputAccessLogToSdCard. However even with that set the log doesn&#039;t show up SD, unknown why.&lt;br /&gt;
&lt;br /&gt;
The input buffer is written to the &amp;quot;$FsAccessLog:/FsAccessLog.txt&amp;quot; file, where &amp;quot;$FsAccessLog&amp;quot; is the SD-card mount-name. It&#039;s written to the current end of the file(appended).&lt;br /&gt;
&lt;br /&gt;
== GetProgramIndexForAccessLog ==&lt;br /&gt;
No input, returns two 32-bit values &amp;quot;version&amp;quot; and &amp;quot;program_index&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== OpenMultiCommitManager ==&lt;br /&gt;
No input, returns an output [[#IMultiCommitManager]].&lt;br /&gt;
&lt;br /&gt;
= IStorage =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IStorage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This is the interface for a raw device, usually a block device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Read]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#Write]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [[#Flush]]&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [[#SetSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [[#GetSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Read ==&lt;br /&gt;
Takes a type-0x46 buffer, an offset and length.&lt;br /&gt;
&lt;br /&gt;
== Write ==&lt;br /&gt;
Takes a type-0x45 buffer, an offset and length.&lt;br /&gt;
&lt;br /&gt;
== Flush ==&lt;br /&gt;
No input.&lt;br /&gt;
&lt;br /&gt;
== SetSize ==&lt;br /&gt;
Takes a size.&lt;br /&gt;
&lt;br /&gt;
== GetSize ==&lt;br /&gt;
Returns a size.&lt;br /&gt;
&lt;br /&gt;
= IFileSystem =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystem&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There are two main implementations of this interface:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RomFS&#039;&#039;&#039;: Filesystem implementation statically linked in the binary. Uses an [[#IStorage]] interface as underlying raw device.&lt;br /&gt;
* &#039;&#039;&#039;IPC proxy&#039;&#039;&#039;: Used for all non-RomFS filesystems. In this case, actual filesystem implementation is in the FS process.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || CreateFile&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DeleteFile&lt;br /&gt;
|-&lt;br /&gt;
| 2 || CreateDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeleteDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 4 || DeleteDirectoryRecursively&lt;br /&gt;
|-&lt;br /&gt;
| 5 || RenameFile&lt;br /&gt;
|-&lt;br /&gt;
| 6 || RenameDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [[#GetEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [[#OpenFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [[#OpenDirectory]]&lt;br /&gt;
|-&lt;br /&gt;
| 10 || [[#Commit]]&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#GetFreeSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#GetTotalSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || [3.0.0+] [[#CleanDirectoryRecursively]]&lt;br /&gt;
|-&lt;br /&gt;
| 14 || [3.0.0+] [[#GetFileTimeStampRaw]]&lt;br /&gt;
|-&lt;br /&gt;
| 15 || [4.0.0+] QueryEntry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetEntryType ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns [[#DirectoryEntryType]] as an output u32.&lt;br /&gt;
&lt;br /&gt;
== OpenFile ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path, and an u32 &#039;&#039;&#039;mode&#039;&#039;&#039;. &#039;&#039;&#039;mode&#039;&#039;&#039; controls how the file is opened, based on which bits are set:&lt;br /&gt;
&lt;br /&gt;
* When bit 0 is set, the file is Readable: you can use the Read operation.&lt;br /&gt;
* When bit 1 is set, the file is Writable: you can use the Write operation.&lt;br /&gt;
* When bit 2 is set, the file is Appendable: unless this bit is set, you will not be able to write beyond the end of a file (such writes will result in an error 0x307202)&lt;br /&gt;
&lt;br /&gt;
== OpenDirectory ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and an u64 &#039;&#039;&#039;filter_flags&#039;&#039;&#039;. &#039;&#039;&#039;filter_flags&#039;&#039;&#039; controls what type of entries are read by the [[#IDirectory]]: bitmask 0x1 = directories, bitmask 0x2 = files.&lt;br /&gt;
&lt;br /&gt;
== Commit ==&lt;br /&gt;
Like [https://3dbrew.org/wiki/FS:ControlArchive 3DS], this has to be used after writing to savedata for the changes to take affect.&lt;br /&gt;
&lt;br /&gt;
== GetFreeSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total free space with this FS.&lt;br /&gt;
&lt;br /&gt;
== GetTotalSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total space available with this FS(free+used).&lt;br /&gt;
&lt;br /&gt;
== CleanDirectoryRecursively ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and clears the contents of the directory specified in the path.&lt;br /&gt;
&lt;br /&gt;
== GetFileTimeStampRaw ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path and returns a 0x20-byte struct. This contains 3 u64s and an u8.&lt;br /&gt;
&lt;br /&gt;
= IDirectory =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDirectory&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Read]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetEntryCount]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Read ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64(?) for the total number of read entries, this is 0 when no more entries are available.&lt;br /&gt;
&lt;br /&gt;
The output buffer contains the read array of [[#DirectoryEntry]]. This doesn&#039;t include entries for &amp;quot;.&amp;quot; and &amp;quot;..&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== GetEntryCount ==&lt;br /&gt;
Returns an u64 for the total number of readable entries.&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntry =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x301 || Path&lt;br /&gt;
|-&lt;br /&gt;
| 0x301 || 0x1 || File attributes (bit 0 = is directory; bit 1 = archive bit)&lt;br /&gt;
|-&lt;br /&gt;
| 0x302 || 0x2 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x304 || 0x1 || [[#DirectoryEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x305 || 0x3 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x308 || 0x8 || Filesize, 0 for directories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntryType =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntryType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
An s8 value indicating a directory entry type. The current values are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Directory&lt;br /&gt;
|-&lt;br /&gt;
| 1 || File&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFile =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFile&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataInfoReader =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataInfoReader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#ReadSaveDataInfo]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataInfo ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64 for total output entries. This buffer contains an array of [[#SaveDataInfo]].&lt;br /&gt;
&lt;br /&gt;
This is used to get [[#SaveDataInfo]] for all savedata on the system (or all savedata for the current [[#SaveDataSpaceId]]). When used multiple times, it will resume reading where it left off, until no more entries are available (in that case the out u64 is value 0).&lt;br /&gt;
&lt;br /&gt;
= IDeviceOperator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDeviceOperator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || IsSdCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GetSdCardSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [2.0.0+] GetSdCardCid&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [2.0.0+] GetSdCardUserAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [2.0.0+] GetSdCardProtectedAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [2.0.0+] GetAndClearSdCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 100 || GetMmcCid&lt;br /&gt;
|-&lt;br /&gt;
| 101 || GetMmcSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 110 || EraseMmc&lt;br /&gt;
|-&lt;br /&gt;
| 111 || GetMmcPartitionSize&lt;br /&gt;
|-&lt;br /&gt;
| 112 || [2.0.0+] GetMmcPatrolCount&lt;br /&gt;
|-&lt;br /&gt;
| 113 || [2.0.0+] GetAndClearMmcErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 114 || [2.0.0+] GetMmcExtendedCsd&lt;br /&gt;
|-&lt;br /&gt;
| 115 || [4.0.0+] SuspendMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 116 || [4.0.0+] ResumeMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 200 || [[#IsGameCardInserted]]&lt;br /&gt;
|-&lt;br /&gt;
| 201 || EraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 202 || [[#GetGameCardHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 203 || [[#GetGameCardUpdatePartitionInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 204 || FinalizeGameCardDriver&lt;br /&gt;
|-&lt;br /&gt;
| 205 || GetGameCardAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 206 || [[#GetGameCardDeviceCertificate]]&lt;br /&gt;
|-&lt;br /&gt;
| 207 || GetGameCardAsicInfo&lt;br /&gt;
|-&lt;br /&gt;
| 208 || GetGameCardIdSet&lt;br /&gt;
|-&lt;br /&gt;
| 209 || WriteToGameCardDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 210 || SetVerifyWriteEnalbleFlag&lt;br /&gt;
|-&lt;br /&gt;
| 211 || GetGameCardImageHash&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [2.0.0+] GetGameCardDeviceIdForProdCard&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [2.0.0+] EraseAndWriteParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [2.0.0+] ReadParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [2.0.0+] ForceEraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [2.0.0+] GetGameCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [2.1.0+] GetGameCardErrorReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [3.0.0+] GetGameCardDeviceId&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [8.0.0+] [[#ChallengeCardExistence]]&lt;br /&gt;
|-&lt;br /&gt;
| 220 || [9.0.0+] [[#GetGameCardCompatibilityType]]&lt;br /&gt;
|-&lt;br /&gt;
| 300 || SetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 301 || GetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [5.0.0+] SuspendSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 401 || [5.0.0+] ResumeSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 402 || [6.0.0+] [[#GetSdmmcConnectionStatus]]&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [6.0.0+] [[#SetDeviceSimulationEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [6.0.0+] [[#ClearDeviceSimulationEvent]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== IsGameCardInserted ==&lt;br /&gt;
No input, returns a bool.&lt;br /&gt;
&lt;br /&gt;
== GetGameCardHandle ==&lt;br /&gt;
No input, returns an u32 &#039;&#039;&#039;GameCardHandle&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== GetGameCardUpdatePartitionInfo ==&lt;br /&gt;
Returns a [[NCM_services#ProgramId|ProgramId]] and the title-version for it.&lt;br /&gt;
&lt;br /&gt;
* Output u32 with ARMS-gamecard: title-version v131162. This is the title-version for [[2.1.0]], which is the sysupdate included with this gamecard. Launch-day gamecards return title-version v450.&lt;br /&gt;
* Output u64 with ARMS-gamecard: [[NCM_services#ProgramId|ProgramId]] 0100000000000816.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]] appears to only use this with [[NCM_services|NCM]] for checking whether a sysupdate is required.&lt;br /&gt;
&lt;br /&gt;
== GetGameCardDeviceCertificate ==&lt;br /&gt;
Takes a type-0x6 output buffer, an u32 &#039;&#039;&#039;GameCardHandle&#039;&#039;&#039; and an u64 &#039;&#039;&#039;DeviceCertificateBufferSize&#039;&#039;&#039;. No output.&lt;br /&gt;
&lt;br /&gt;
== ChallengeCardExistence ==&lt;br /&gt;
Takes a type-0x6 output buffer, two type-0x5 input buffers and an u32 &#039;&#039;&#039;GameCardHandle&#039;&#039;&#039;. No output.&lt;br /&gt;
&lt;br /&gt;
[9.0.0+] The [[Account_services|account]] system module uses this as part of a new challenge-response mechanism for [[Network#aauth|application authentication]].&lt;br /&gt;
&lt;br /&gt;
== GetGameCardCompatibilityType ==&lt;br /&gt;
Takes an u32 &#039;&#039;&#039;GameCardHandle&#039;&#039;&#039;, returns an u8 &#039;&#039;&#039;CompatibilityType&#039;&#039;&#039; (0x00 = Global, 0x01 = China) from [[Gamecard_Format#Gamecard_Info|Gamecard Info]].&lt;br /&gt;
&lt;br /&gt;
== GetSdmmcConnectionStatus ==&lt;br /&gt;
Takes a total of 4-bytes of input, returns a total of 8-bytes of output.&lt;br /&gt;
&lt;br /&gt;
== SetDeviceSimulationEvent == &lt;br /&gt;
Takes a total of 0x14-bytes of input, no output.&lt;br /&gt;
&lt;br /&gt;
== ClearDeviceSimulationEvent ==&lt;br /&gt;
Takes a total of 4-bytes of input, no output.&lt;br /&gt;
&lt;br /&gt;
= IEventNotifier =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IEventNotifier&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetEventHandle]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetEventHandle ==&lt;br /&gt;
No input, returns an output Event handle. With official sw the EventClearMode is user-specified.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManager =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManager&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetToken]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataImporter]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== SetToken ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64, returns an [[#ISaveDataExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x10-byte userID, and a type-0x5 input buffer. Returns an output u64 and an [[#ISaveDataImporter]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManagerForSaveDataRepair =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManagerForSaveDataRepair&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[9.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetKeyPackage]]&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [[#OpenSaveDataExporterAndGetEncryptedKey]]&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [[#PrepareOpenSaveDataImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 90 || [[#OpenSaveDataImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 91 || [[#OpenSaveDataImporter2]]&lt;br /&gt;
|-&lt;br /&gt;
| 100 || [[#OpenSaveDataExporterWithKey]]&lt;br /&gt;
|-&lt;br /&gt;
| 110 || [[#OpenSaveDataImporterWithKey]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SetKeyPackage ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporterAndGetEncryptedKey ==&lt;br /&gt;
Takes a total of 0x10-bytes of input and a type-0x1A output buffer to receive a RsaEncryptedKey. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== PrepareOpenSaveDataImporter ==&lt;br /&gt;
Takes a type-0x1A output buffer to receive a RsaEncryptedKey.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes a total of 0x18-bytes of input and two type-0x5 input buffers, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter2 ==&lt;br /&gt;
Takes a total of 0x18-bytes of input and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporterWithKey ==&lt;br /&gt;
Takes a total of 0x20-bytes of input, returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterWithKey ==&lt;br /&gt;
Takes a total of 0x28-bytes of input and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetSaveDataInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Pull]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#PullInitialData]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetSaveDataInfo ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataExporter constructor. This is used automatically after [[#OpenSaveDataExporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Pull ==&lt;br /&gt;
Takes a type-0x6 output buffer, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== PullInitialData ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetSaveDataInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Push]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#Finalize]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetSaveDataInfo ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#GetSaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataImporter constructor. This is used automatically after [[#OpenSaveDataImporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Push ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== Finalize ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManagerWithDivision =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManagerWithDivision&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetKeySeedPackage]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [[#OpenSaveDataExporterForDiffExport]]&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] [[#OpenSaveDataExporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 64 || [5.0.0-5.1.0] OpenSaveDataImporter&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] [[#OpenSaveDataImporterDeprecated]]&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [[#OpenSaveDataImporterForDiffImport]]&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] [[#OpenSaveDataImporterForDuplicateDiffImport]]&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] [[#OpenSaveDataImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] [[#OpenSaveDataImporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [6.0.0+] [[#CancelSuspendingImport]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer containing the &#039;&#039;&#039;Challenge&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== SetKeySeedPackage ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer containing the &#039;&#039;&#039;KeySeedPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporterForDiffExport ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterDeprecated ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], a 0x10-byte userID, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterForDiffImport ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]], returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterForDuplicateDiffImport ==&lt;br /&gt;
Takes an input u8 and an u64, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8, an u8(bool), a 0x10-byte struct, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== CancelSuspendingImport ==&lt;br /&gt;
Takes an input u64 and a 0x10-byte struct, no output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#SetDivisionCount]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [6.0.0+] [[#GetSaveDataInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#OpenSaveDataDiffChunkIterator]]&lt;br /&gt;
|-&lt;br /&gt;
| 48 || [[#OpenSaveDataChunkExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0-8.1.0] [[#FinalizeFullExport]]&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [6.0.0-8.1.0] [[#FinalizeDiffExport]]&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] [[#CancelExport]]&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] [[#SuspendExport]]&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [6.0.0+] [[#GetKeySeed]]&lt;br /&gt;
|-&lt;br /&gt;
| 71 || [6.0.0+] [[#GetInitialDataMac]]&lt;br /&gt;
|-&lt;br /&gt;
| 72 || [6.0.0+] [[#FinalizeExport]]&lt;br /&gt;
|-&lt;br /&gt;
| 73 || [9.0.0+] [[#GetInitialDataMacKeyGeneration]]&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] [[#GetImportInitialDataAad]]&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [6.0.0+] [[#SetExportInitialDataAad]]&lt;br /&gt;
|-&lt;br /&gt;
| 96 || [6.0.0+] [[#GetReportInfo]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SetDivisionCount ==&lt;br /&gt;
Takes an input u32, no output.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataChunkExporter ==&lt;br /&gt;
Takes an input u32, returns an [[#ISaveDataChunkExporter]].&lt;br /&gt;
&lt;br /&gt;
== FinalizeFullExport ==&lt;br /&gt;
No input, returns two 0x10-byte output structs.&lt;br /&gt;
&lt;br /&gt;
== FinalizeDiffExport ==&lt;br /&gt;
No input, returns an output 0x10-byte struct.&lt;br /&gt;
&lt;br /&gt;
== CancelExport ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
== SuspendExport ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== GetKeySeed ==&lt;br /&gt;
No input, returns an output 0x10-byte struct.&lt;br /&gt;
&lt;br /&gt;
== GetInitialDataMac ==&lt;br /&gt;
No input, returns an output 0x10-byte struct.&lt;br /&gt;
&lt;br /&gt;
== FinalizeExport ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
== SetExportInitialDataAad ==&lt;br /&gt;
Takes an input 0x20-byte struct, no output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [6.0.0+] [[#GetSaveDataInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#OpenSaveDataDiffChunkIterator]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#InitializeImport]]&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [[#FinalizeImport]]&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] [[#CancelImport]]&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] [[#GetImportContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 36 || [6.0.0+] [[#SuspendImport]]&lt;br /&gt;
|-&lt;br /&gt;
| 48 || [[#OpenSaveDataChunkImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] [[#GetImportInitialDataAad]]&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] [[#GetReportInfo]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetSaveDataInfo ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffChunkIterator ==&lt;br /&gt;
No input, returns an [[#ISaveDataChunkIterator]].&lt;br /&gt;
&lt;br /&gt;
== InitializeImport ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== FinalizeImport ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
== CancelImport ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
== GetImportContext ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== SuspendImport ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataChunkImporter ==&lt;br /&gt;
Takes an input u32, returns an [[#ISaveDataChunkImporter]].&lt;br /&gt;
&lt;br /&gt;
== GetImportInitialDataAad == &lt;br /&gt;
No input, returns an output 0x20-byte struct.&lt;br /&gt;
&lt;br /&gt;
== GetReportInfo ==&lt;br /&gt;
No input, returns an output 0x20-byte struct.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkIterator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkIterator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Next]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#IsEnd]] &lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#GetId]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Next ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
== IsEnd ==&lt;br /&gt;
No input, returns an output u8.&lt;br /&gt;
&lt;br /&gt;
== GetId ==&lt;br /&gt;
No input, returns an output u32.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Pull]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [6.0.0+] [[#GetRestRawDataSize]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pull ==&lt;br /&gt;
Takes an input u64 and a type-0x6 output buffer, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== GetRestRawDataSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Push]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Push ==&lt;br /&gt;
Takes an input u64 and a type-0x5 input buffer, no output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferProhibiter =&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t seem to handle any commands (?).&lt;br /&gt;
&lt;br /&gt;
= IMultiCommitManager =&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#Add]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [[#Commit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Add ==&lt;br /&gt;
Takes an input [[#IFilesystem]], no output.&lt;br /&gt;
&lt;br /&gt;
== Commit ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
= FileSystemType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Code&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Data&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Logo&lt;br /&gt;
|-&lt;br /&gt;
| 3 || ContentControl&lt;br /&gt;
|-&lt;br /&gt;
| 4 || ContentManual&lt;br /&gt;
|-&lt;br /&gt;
| 5 || ContentMeta&lt;br /&gt;
|-&lt;br /&gt;
| 6 || ContentData&lt;br /&gt;
|-&lt;br /&gt;
| 7 || ApplicationPackage&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [4.0.0+] RegisteredUpdate&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentType =&lt;br /&gt;
This is &amp;quot;nn::fs::ContentType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Meta&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Control&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Manual&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Logo&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::ContentStorageId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataSpaceId =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataSpaceId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdSystem&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [3.0.0+] Temporary&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [4.0.0+] SdUser&lt;br /&gt;
|-&lt;br /&gt;
| 100 || [3.0.0+] ProperSystem&lt;br /&gt;
|-&lt;br /&gt;
| 101 || [3.0.0+] SafeMode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Determines the storage where the savedata is stored.&lt;br /&gt;
&lt;br /&gt;
= SaveDataType =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Account&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Bcat&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Device&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [3.0.0+] Temporary&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [3.0.0+] Cache&lt;br /&gt;
|-&lt;br /&gt;
| 6 || [4.0.0+] SystemBcat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataRank =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataRank&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Primary&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Secondary&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataEnumerateOption =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataEnumerateOption&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || AllRank&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataFlags =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataFlags&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || KeepAfterResettingSystemSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 2 || KeepAfterRefurbishment&lt;br /&gt;
|-&lt;br /&gt;
| 4 || KeepAfterResettingSystemSaveDataWithoutUserSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 8 || NeedsSecureDelete&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataMetaType =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataMetaType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || None&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Thumbnail&lt;br /&gt;
|-&lt;br /&gt;
| 2 || ExtensionContext&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ImageDirectoryId =&lt;br /&gt;
This is &amp;quot;nn::fs::ImageDirectoryId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= CloudBackupWorkStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::CloudBackupWorkStorageId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= CustomStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::CustomStorageId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Priority =&lt;br /&gt;
This is &amp;quot;nn::fs::Priority&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Realtime&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Normal&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Low&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= PriorityRaw =&lt;br /&gt;
This is &amp;quot;nn::fs::PriorityRaw&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Realtime&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Normal&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Low&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Background&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= AbortSpecifier =&lt;br /&gt;
This is &amp;quot;nn::fs::AbortSpecifier&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Default&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Abort&lt;br /&gt;
|-&lt;br /&gt;
| 2 || ReturnResult&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= OperationId =&lt;br /&gt;
This is &amp;quot;nn::fs::OperationId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Clear&lt;br /&gt;
|-&lt;br /&gt;
| 1 || ClearSignature&lt;br /&gt;
|-&lt;br /&gt;
| 2 || InvalidateCache&lt;br /&gt;
|-&lt;br /&gt;
| 3 || QueryRange&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= MountHostOption =&lt;br /&gt;
This is &amp;quot;nn::fs::MountHostOption&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || PseudoCaseSensitive&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= BisPartitionId =&lt;br /&gt;
This is &amp;quot;nn::fs::BisPartitionId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || BootPartition1Root&lt;br /&gt;
|-&lt;br /&gt;
| 10 || BootPartition2Root&lt;br /&gt;
|-&lt;br /&gt;
| 20 || UserDataRoot&lt;br /&gt;
|-&lt;br /&gt;
| 21 || BootConfigAndPackage2Part1&lt;br /&gt;
|-&lt;br /&gt;
| 22 || BootConfigAndPackage2Part2&lt;br /&gt;
|-&lt;br /&gt;
| 23 || BootConfigAndPackage2Part3&lt;br /&gt;
|-&lt;br /&gt;
| 24 || BootConfigAndPackage2Part4&lt;br /&gt;
|-&lt;br /&gt;
| 25 || BootConfigAndPackage2Part5&lt;br /&gt;
|-&lt;br /&gt;
| 26 || BootConfigAndPackage2Part6&lt;br /&gt;
|-&lt;br /&gt;
| 27 || CalibrationBinary&lt;br /&gt;
|-&lt;br /&gt;
| 28 || CalibrationFile&lt;br /&gt;
|-&lt;br /&gt;
| 29 || SafeMode&lt;br /&gt;
|-&lt;br /&gt;
| 30 || User&lt;br /&gt;
|-&lt;br /&gt;
| 31 || System&lt;br /&gt;
|-&lt;br /&gt;
| 32 || SystemProperEncryption&lt;br /&gt;
|-&lt;br /&gt;
| 33 || SystemProperPartition&lt;br /&gt;
|-&lt;br /&gt;
| 34 || SignedSystemPartitionOnSafeMode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= MmcSpeedMode =&lt;br /&gt;
This is &amp;quot;nn::fs::MmcSpeedMode&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Identification&lt;br /&gt;
|-&lt;br /&gt;
| 1 || LegacySpeed&lt;br /&gt;
|-&lt;br /&gt;
| 2 || HighSpeed&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Hs200&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Hs400&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= MmcPartition =&lt;br /&gt;
This is &amp;quot;nn::fs::MmcPartition&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || UserData&lt;br /&gt;
|-&lt;br /&gt;
| 1 || BootPartition1&lt;br /&gt;
|-&lt;br /&gt;
| 2 || BootPartition2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= GameCardPartition =&lt;br /&gt;
This is &amp;quot;nn::fs::GameCardPartition&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Update&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Normal&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Secure&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [4.0.0+] Logo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= GameCardPartitionRaw =&lt;br /&gt;
This is &amp;quot;nn::fs::GameCardPartitionRaw&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || NormalReadOnly&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SecureReadOnly&lt;br /&gt;
|-&lt;br /&gt;
| 2 || RootWriteOnly&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= GameCardAttribute =&lt;br /&gt;
This is &amp;quot;nn::fs::GameCardAttribute&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || AutoBootFlag&lt;br /&gt;
|-&lt;br /&gt;
| 2 || HistoryEraseFlag&lt;br /&gt;
|-&lt;br /&gt;
| 4 || RepairToolFlag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= GameCardSize =&lt;br /&gt;
This is &amp;quot;nn::fs::GameCardSize&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Size1GB&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Size2GB&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Size4GB&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Size8GB&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Size16GB&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Size32GB&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= GameCardClockRate =&lt;br /&gt;
This is &amp;quot;nn::fs::GameCardClockRate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 25 || ClockRate25MHz&lt;br /&gt;
|-&lt;br /&gt;
| 50 || ClockRate50MHz&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SimulatingDeviceType =&lt;br /&gt;
This is &amp;quot;nn::fs::SimulatingDeviceType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GameCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SimulatingDeviceDetectionMode =&lt;br /&gt;
This is &amp;quot;nn::fs::SimulatingDeviceDetectionMode&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || NoSimulation&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DeviceAttached&lt;br /&gt;
|-&lt;br /&gt;
| 2 || DeviceRemoved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SimulatingDeviceAccessFailureEventType =&lt;br /&gt;
This is &amp;quot;nn::fs::SimulatingDeviceAccessFailureEventType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || None&lt;br /&gt;
|-&lt;br /&gt;
| 1 || AccessTimeoutFailure&lt;br /&gt;
|-&lt;br /&gt;
| 2 || AccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DataCorruption&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SimulatingDeviceTargetOperation =&lt;br /&gt;
This is &amp;quot;nn::fs::SimulatingDeviceTargetOperation&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Read&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Write&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SpeedEmulationMode =&lt;br /&gt;
This is &amp;quot;nn::fs::SpeedEmulationMode&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || None&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Faster&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Slower&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Random&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentPath =&lt;br /&gt;
These are the 0x300 paths to NCA files for the various filesystems FS can access, beginning with @. They&#039;re passed via X descriptors, and returned via various [[Location Resolver services|ncm/lr]] commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Path || Notes&lt;br /&gt;
|-&lt;br /&gt;
| @SystemContent ||&lt;br /&gt;
|- &lt;br /&gt;
| @UserContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @SdCardContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @CalibFile ||&lt;br /&gt;
|-&lt;br /&gt;
| @Safe ||&lt;br /&gt;
|-&lt;br /&gt;
| @User ||&lt;br /&gt;
|-&lt;br /&gt;
| @System ||&lt;br /&gt;
|-&lt;br /&gt;
| @Sdcard ||&lt;br /&gt;
|-&lt;br /&gt;
| @Host ||&lt;br /&gt;
|-&lt;br /&gt;
| @GcApp || Gamecard App partition (Partition 2)&lt;br /&gt;
|-&lt;br /&gt;
| @GcXYYYYYYYY || Gamecard Contents. X is the partition type (U - Update, N - Normal, S - Secure). Y is the gamecard handle as a 32-bit hex value &lt;br /&gt;
|-&lt;br /&gt;
| @upp || Gamecard update partition (Partition 0)&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] @RegUpdate || Registered update partition&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataAttribute =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataAttribute&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| [[NCM_services#ApplicationId|ApplicationId]] (0 for SystemSaveData)&amp;lt;/br&amp;gt;SaveData: 0 can be used for accessing the savedata associated with the current FS session [[NCM_services#ApplicationId|ApplicationId]], otherwise when set this is the [[NCM_services#ApplicationId|ApplicationId]] associated with the savedata to access.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x10&lt;br /&gt;
| UserId&amp;lt;/br&amp;gt;For user-specific savedata(saveuser) when set, otherwise when zero this indicates the common savedata(savecommon). This is loaded from [[Account_services]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| [[Flash_Filesystem|SystemSaveDataId]] (0 for SaveData)&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataRank]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x22&lt;br /&gt;
| 0x2&lt;br /&gt;
| SaveDataIndex&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
For DeviceSaveData, this struct is all-zero except for the [[#SaveDataType]] field.&lt;br /&gt;
&lt;br /&gt;
= SaveDataCreationInfo =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataCreationInfo&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| SaveDataSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| JournalSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8&lt;br /&gt;
| AvailableSize&amp;lt;/br&amp;gt;0x4000 for SystemSaveData/SaveData/DeviceSaveData/BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| OwnerId&amp;lt;/br&amp;gt;Official user-processes only uses 0 here for SystemSaveData/SaveData. For the dedicated save-creation code with SaveData/DeviceSaveData, this value comes from an input param with official user-processes. For BcatSaveData, this is the hard-coded [[NCM_services#ProgramId|ProgramId]] of the bcat-sysmodule.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#SaveDataFlags]]&amp;lt;/br&amp;gt;Written using an input param for official user-processes. Hard-coded 0 for BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataSpaceId]]&amp;lt;/br&amp;gt;Official user-processes only uses 0 here for SystemSaveData, 1 for SaveData/DeviceSaveData/BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25&lt;br /&gt;
| 0x1&lt;br /&gt;
| Unknown. 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x1A&lt;br /&gt;
| Not initialized for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
= DeviceSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8, the only difference compared to SaveData is the [[#SaveDataAttribute]].&lt;br /&gt;
&lt;br /&gt;
= BcatSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8. The [[#SaveDataAttribute]] is the same as DeviceSaveData, except that the [[NCM_services#ApplicationId|ApplicationId]] field is set to &amp;lt;input ApplicationId&amp;gt;. See above regarding [[#SaveDataCreationInfo]].&lt;br /&gt;
&lt;br /&gt;
The 0x10-byte struct passed to [[#CreateSaveDataFileSystem]] has the first 0x5-bytes set to all-zero.&lt;br /&gt;
&lt;br /&gt;
= SaveDataInfo =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataInfo&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| SaveDataId&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA&lt;br /&gt;
| 0x6&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| UserId&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x8&lt;br /&gt;
| SystemSaveDataId (0 for regular SaveData)&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| [[NCM_services#ApplicationId|ApplicationId]] (for regular SaveData)&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| Raw saveimage size&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x2&lt;br /&gt;
| SaveDataIndex&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataRank]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B&lt;br /&gt;
| 0x25&lt;br /&gt;
| Unknown. Usually zeros?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a 0x60-byte struct.&lt;br /&gt;
&lt;br /&gt;
= SaveDataFileSystemExtraData =&lt;br /&gt;
This is a 0x200-byte struct. Appears to match [[Savegames#Extra_data]].&lt;br /&gt;
&lt;br /&gt;
= InitialDataVersion2 =&lt;br /&gt;
This is a 0x8210-byte struct used by [[#ISaveDataTransferManagerWithDivision]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=8381</id>
		<title>Filesystem services</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=8381"/>
		<updated>2019-11-21T21:25:52Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* SaveDataFlags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= fsp-ldr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxyForLoader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#OpenCodeFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#IsArchivedProgram]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] [[#SetCurrentProcess]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenCodeFileSystem ==&lt;br /&gt;
Takes an [[NCM_services#ProgramId|ProgramId]] and a [[#ContentPath]]. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
== IsArchivedProgram ==&lt;br /&gt;
Takes an u64 ProcessId. Returns a bool (1 if the process id&#039;s [[#ContentPath]] ends in &amp;quot;.nca&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== SetCurrentProcess ==&lt;br /&gt;
Takes a ProcessId descriptor.&lt;br /&gt;
&lt;br /&gt;
= fsp-pr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IProgramRegistry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#RegisterProgram]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#UnregisterProgram]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] [[#SetCurrentProcess]]&lt;br /&gt;
|-&lt;br /&gt;
| 256 || [[#SetEnabledProgramVerification]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== RegisterProgram ==&lt;br /&gt;
Takes a [[NCM_services#StorageId|StorageId]], an u64 ProcessId, a [[NCM_services#ProgramId|ProgramId]], a 0x1C type-A buffer for the [[NPDM#FS_Access_Header| FS Access Header]], and a 0x2C type-A buffer for the [[NPDM#FS_Access_Control| FS Access Control]]&lt;br /&gt;
&lt;br /&gt;
Final FS permissions are stored as (ACI0_perms &amp;amp; ACID_perms). Will panic(svcBreak) when buffer sizes from ipc-rawdata are invalid.&lt;br /&gt;
&lt;br /&gt;
== UnregisterProgram ==&lt;br /&gt;
Takes a pid. Removes registered FS permissions for that PID.&lt;br /&gt;
&lt;br /&gt;
== SetEnabledProgramVerification ==&lt;br /&gt;
Seems to sets a global flag to inputval &amp;amp; 1.&lt;br /&gt;
&lt;br /&gt;
When the flag is zero, it will set ret=0 instead of ret={error} when verifying the fixed-key [[NPDM]] ACID signature fails. This also skips verifying the [[NCA_Format|NCA Header]] signature using the ACID key. Note that if verifying the fixed-key ACID signature is successful, and verifying the ACID-key NCA header signature fails, it will throw an error and abort.&lt;br /&gt;
&lt;br /&gt;
= fsp-srv =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxy&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [1.0.0] [[#OpenFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#SetCurrentProcess]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || OpenDataFileSystemByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [2.0.0+] [[#OpenFileSystemWithPatch]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [2.0.0+] [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [3.0.0+] OpenDataFileSystemByProgramId&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || InvalidateBisCache&lt;br /&gt;
|-&lt;br /&gt;
| 17 || OpenHostFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 18 || OpenSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 19 || [2.0.0+] FormatSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 21 || [[#DeleteSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 22 || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 23 || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 24 || RegisterSaveDataFileSystemAtomicDeletion&lt;br /&gt;
|-&lt;br /&gt;
| 25 || [2.0.0+] DeleteSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 26 || [2.0.0+] FormatSdCardDryRun&lt;br /&gt;
|-&lt;br /&gt;
| 27 || [2.0.0+] IsExFatSupported&lt;br /&gt;
|-&lt;br /&gt;
| 28 || [4.0.0+] DeleteSaveDataFileSystemBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 30 || [[#OpenGameCardStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 31 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [3.0.0+] ExtendSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [5.0.0+] DeleteCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [5.0.0+] GetCacheStorageSize&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] [[#CreateSaveDataFileSystemWithHashSalt]]&lt;br /&gt;
|-&lt;br /&gt;
| 36 || [9.0.0+] OpenHostFileSystemWithOption&lt;br /&gt;
|-&lt;br /&gt;
| 51 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 52 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 53 || [2.0.0+] OpenReadOnlySaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 57 || [3.0.0+] [[#ReadSaveDataFileSystemExtraDataBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 58 || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 59 || [2.0.0+] WriteSaveDataFileSystemExtraData&lt;br /&gt;
|-&lt;br /&gt;
| 60 || [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 61 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 62 || [5.0.0+] OpenSaveDataInfoReaderOnlyCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [5.0.0+] OpenSaveDataInternalStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [5.0.0+] UpdateSaveDataMacForDebug&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [5.0.0+] WriteSaveDataFileSystemExtraDataWithMask&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] [[#FindSaveDataWithFilter]]&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] [[#OpenSaveDataInfoReaderWithFilter]]&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [8.0.0+] ReadSaveDataFileSystemExtraDataBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [8.0.0+] WriteSaveDataFileSystemExtraDataBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 80 || OpenSaveDataMetaFile&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [4.0.0+] [[#OpenSaveDataTransferManager]]&lt;br /&gt;
|-&lt;br /&gt;
| 82 || [5.0.0+] [[#OpenSaveDataTransferManagerVersion2]]&lt;br /&gt;
|-&lt;br /&gt;
| 83 || [6.0.0+] [[#OpenSaveDataTransferProhibiter]]&lt;br /&gt;
|-&lt;br /&gt;
| 84 || [6.0.0+] [[#ListAccessibleSaveDataOwnerId]]&lt;br /&gt;
|-&lt;br /&gt;
| 85 || [9.0.0+] [[#OpenSaveDataTransferManagerForSaveDataRepair]]&lt;br /&gt;
|-&lt;br /&gt;
| 100 || OpenImageDirectoryFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 110 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 120 || [6.0.0+] [[#OpenCloudBackupWorkStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 130 || [7.0.0+] [[#OpenCustomStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 200 || OpenDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 201 || [3.0.0+] OpenDataStorageByProgramId&lt;br /&gt;
|-&lt;br /&gt;
| 202 || [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 203 || OpenPatchDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 204 || [7.0.0+] [[#OpenDataFileSystemWithProgramIndex]]&lt;br /&gt;
|-&lt;br /&gt;
| 205 || [7.0.0+] [[#OpenDataStorageWithProgramIndex]]&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [[#OpenDeviceOperator]]&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 510 || [5.0.0+] OpenSystemDataUpdateEventNotifier&lt;br /&gt;
|-&lt;br /&gt;
| 511 || [5.0.0+] NotifySystemDataUpdateEvent&lt;br /&gt;
|-&lt;br /&gt;
| 520 || [6.0.0+] [[#SimulateDeviceDetectionEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| 600 || [1.0.0-3.0.2] SetCurrentPosixTime&lt;br /&gt;
|-&lt;br /&gt;
| 601 || QuerySaveDataTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 602 || [[#VerifySaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 603 || CorruptSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 604 || CreatePaddingFile&lt;br /&gt;
|-&lt;br /&gt;
| 605 || DeleteAllPaddingFiles&lt;br /&gt;
|-&lt;br /&gt;
| 606 || [2.0.0+] GetRightsId&lt;br /&gt;
|-&lt;br /&gt;
| 607 || [2.0.0+] RegisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 608 || [2.0.0+] UnregisterAllExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 609 || [2.0.0+] GetRightsIdByPath&lt;br /&gt;
|-&lt;br /&gt;
| 610 || [3.0.0+] GetRightsIdAndKeyGenerationByPath&lt;br /&gt;
|-&lt;br /&gt;
| 611 || [4.0.0+] SetCurrentPosixTimeWithTimeDifference&lt;br /&gt;
|-&lt;br /&gt;
| 612 || [4.0.0+] GetFreeSpaceSizeForSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 613 || [4.0.0+] VerifySaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 614 || [4.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 615 || [5.0.0+] QuerySaveDataInternalStorageTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 616 || [6.0.0+] [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| 617 || [7.0.0+] UnregisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 620 || [2.0.0+] [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| 630 || [4.0.0+] SetSdCardAccessibility&lt;br /&gt;
|-&lt;br /&gt;
| 631 || [4.0.0+] IsSdCardAccessible&lt;br /&gt;
|-&lt;br /&gt;
| 640 || [4.0.0-7.0.1] IsSignedSystemPartitionOnSdCardValid&lt;br /&gt;
|-&lt;br /&gt;
| 700 || [5.0.0+] [[#OpenAccessFailureDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 701 || [5.0.0+] GetAccessFailureDetectionEvent&lt;br /&gt;
|-&lt;br /&gt;
| 702 || [5.0.0+] IsAccessFailureDetected&lt;br /&gt;
|-&lt;br /&gt;
| 710 || [5.0.0+] ResolveAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 720 || [5.0.0+] AbandonAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [2.0.0+] GetAndClearErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [7.0.0+] RegisterProgramIndexMapInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1000 || SetBisRootForHost&lt;br /&gt;
|-&lt;br /&gt;
| 1001 || [[#SetSaveDataSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1002 || [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| 1003 || DisableAutoSaveDataCreation&lt;br /&gt;
|-&lt;br /&gt;
| 1004 || [[#SetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1005 || [[#GetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1006 || [[#OutputAccessLogToSdCard]]&lt;br /&gt;
|-&lt;br /&gt;
| 1007 || [4.0.0+] RegisterUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1008 || [4.0.0+] OpenRegisteredUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1009 || [4.0.0+] GetAndClearMemoryReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1010 || [5.1.0-6.2.0] SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| 1011 || [7.0.0+] [[#GetProgramIndexForAccessLog]]&lt;br /&gt;
|-&lt;br /&gt;
| 1012 || [9.0.0+] GetFsStackUsage&lt;br /&gt;
|-&lt;br /&gt;
| 1013 || [9.0.0+] UnsetSaveDataRootPath&lt;br /&gt;
|-&lt;br /&gt;
| 1100 || [4.0.0+] OverrideSaveDataTransferTokenSignVerificationKey&lt;br /&gt;
|-&lt;br /&gt;
| 1110 || [6.0.0+] CorruptSaveDataFileSystemByOffset&lt;br /&gt;
|-&lt;br /&gt;
| 1200 || [6.0.0+] [[#OpenMultiCommitManager]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
Every time permissions are checked, the process registration [[#fsp-pr]] is loaded using the session processID. The permission data is populated with data from the [[NPDM]].&lt;br /&gt;
&lt;br /&gt;
If the processID is &amp;lt;= 6 (which happens only for built-in sysmodules), it will use a hardcoded registration data. The default mask in this case is 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
Note that the functions check whether or not at least one bit is set in the mask. This means that, you don&#039;t need to set 0xFFFFFFFFFFFFFFFF to get all permissions: it suffices to set 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
If the code were to request an invalid input type, panic. But this never happens.&lt;br /&gt;
&lt;br /&gt;
The output values for [[#ReadWrite]] CanMountRegisteredUpdatePartition and [[#Call]] CanRegisterUpdatePartition are masked with the cached value of [[SMC#IsDebugMode|DebugMode]].&lt;br /&gt;
&lt;br /&gt;
=== ReadWrite ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! AccessibilityType || Mask || Name || Value || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000801 || CanMountLogo || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000801 || CanMountContentMeta || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000801 || CanMountContentControl || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000801 || CanMountContentManual || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000801 || CanMountContentData || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000801 || CanMountApplicationPackage || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000000000 || CanMountSaveDataStorage || 3 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000800 || CanMountContentStorage || 3 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000001000 || CanMountImageAndVideoStorage || 3 || [[#OpenImageDirectoryFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanMountCloudBackupWorkStorage || 3 || OpenCloudBackupWorkStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000000000&amp;lt;br/&amp;gt;([7.0.0-7.0.1] 0x4000000000000000)&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000084)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountCustomStorage0 || 3 || OpenCustomStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000084&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000008080) || CanMountBisCalibrationFile || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-6.2.0] 0x8000000000008080) || CanMountBisSafeMode || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000008080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountBisUser || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000008080&amp;lt;br/&amp;gt;([3.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanMountBisSystem || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000010) || CanMountBisSystemProperEncryption || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000200000&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000040020) || CanMountBisSystemProperPartition || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0xC000000000200000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000028) || CanMountSdCard || 3 || [[#OpenSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000000010&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000020) || CanMountGameCard || 3 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0x8000000000040020&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000020) || CanMountDeviceSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x8000000000000028&amp;lt;br/&amp;gt;([3.0.0-6.2.0] 0x8000000000000020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010082) || CanMountSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0x8000000000000020&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanMountOthersSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0x8000000000000020&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanMountOthersSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0x8000000000010082&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010080)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition1Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x8000000000010080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition2Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010080) || CanOpenBisPartitionUserDataRoot || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part1 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part2 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part3 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part4 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part5 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || 0x8000000000010080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000084)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000080) || CanOpenBisPartitionBootConfigAndPackage2Part6 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x8000000000000084&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationBinary || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0x8000000000000084&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationFile || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0x8000000000000080 || CanOpenBisPartitionSafeMode || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanOpenBisPartitionUser || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000100) || CanOpenBisPartitionSystem || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000100008) || CanOpenBisPartitionSystemProperEncryption || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000400000) || CanOpenBisPartitionSystemProperPartition || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x27 || 0xC000000000200000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000100008) || CanOpenSdCardStorage || ||&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x28 || 0x8000000000000100&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000100008)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000400000) || CanOpenGameCardStorage || 3 || [[#OpenGameCardStorage]], [[#EraseGameCard]] (bit1), [[#WriteToGameCard]] (bit1), [[#GetGameCardErrorInfo]] (bit1), [[#EraseAndWriteParamDirectly]] (bit1), [[#ReadParamDirectly]] (bit1), [[#ForceEraseGameCard]] (bit1) &lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x29 || 0x8000000000100008&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000400000)&amp;lt;br/&amp;gt;([4.0.0-5.1.0] 0x8000000000010000) || CanMountSystemDataPrivate || 1 || [[#OpenFileSystem]], [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0xC000000000400000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000000) || CanMountHost || 3 || [[#OpenHostFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x2B || 0x8000000000010000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000000) || CanMountRegisteredUpdatePartition || 1 || [[#OpenRegisteredUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] 0x2C || 0x8000000000000000 || CanOpenSaveDataInternalStorage || 3 || [[#OpenSaveDataInternalStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] 0x2D || 0x0000000000000000 || CanNotMountCustomStorage || 3 || OpenCustomStorageFileSystem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Call ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OperationType || Mask || Name || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000080 || CanInvalidateBisCache || [[#InvalidateBisCache]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000080 || CanEraseMmc || EraseMmc&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000010 || CanGetGameCardDeviceCertificate || GetGameCardDeviceCertificate&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000010 || CanGetGameCardIdSet || GetGameCardIdSet&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000200 || CanFinalizeGameCardDriver || FinalizeGameCardDriver&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000200 || CanGetGameCardAsicInfo || GetGameCardAsicInfo&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000002020 || CanCreateSaveData || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000060 || CanDeleteSaveData || [[#DeleteSaveDataFileSystem]], RegisterSaveDataFileSystemAtomicDeletion&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000000028 || CanCreateSystemSaveData || CreateSaveDataFileSystemBySystemSaveDataId&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000000000020 || CanCreateOthersSystemSaveData || CreateSaveDataFileSystemBySystemSaveDataId&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000004028 || CanDeleteSystemSaveData || [[#DeleteSaveDataFileSystem]], RegisterSaveDataFileSystemAtomicDeletion&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000060 || CanOpenSaveDataInfoReader || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000004020 || CanOpenSaveDataInfoReaderForSystem || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000000040&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000020000) || CanOpenSaveDataInfoReaderForInternal || [[#OpenSaveDataInfoReaderWithFilter]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000020000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000400) || CanOpenSaveDataMetaFile || OpenSaveDataMetaFile&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000400&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000004060) || CanSetCurrentPosixTime || SetCurrentPosixTime, SetCurrentPosixTimeWithTimeDifference&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000004060&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000080000) || CanReadSaveDataFileSystemExtraData || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x8000000000080000 || CanSetGlobalAccessLogMode || [[#SetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000080000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] Invalid) || CanSetSpeedEmulationMode || SetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || Invalid&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000800000) || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0xC000000000800000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000001000000) || CanFillBis || CreatePaddingFile, DeleteAllPaddingFiles&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0xC000000001000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000001000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0xC000000002000000) || CanCorruptSaveData || CorruptSaveDataFileSystem, CorruptSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x16 || 0x8000000001000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000060)&amp;lt;br/&amp;gt;([2.0.0-4.1.0] 0x8000000004000000) || CanCorruptSystemSaveData || CorruptSaveDataFileSystem, CorruptSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x17 || 0x8000000000000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0xC000000002000000)&amp;lt;br/&amp;gt;([2.0.0-4.1.0] 0x8000000008000000) || CanVerifySaveData || [[#VerifySaveDataFileSystem]], VerifySaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x18 || 0xC000000002000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000004000000)&amp;lt;br/&amp;gt;([2.0.0-4.1.0] 0x8000000010000000) || CanDebugSaveData || [[#CreateSaveDataFileSystem]], [[#OpenSaveDataFileSystem]], [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x19 || 0x8000000004000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000008000000)&amp;lt;br/&amp;gt;([2.0.0-4.1.0] 0x8000000000000800) || CanFormatSdCard || FormatSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x1A || 0x8000000008000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000010000000)&amp;lt;br/&amp;gt;([2.0.0-4.1.0] 0x8000000000004020) || CanGetRightsId || GetRightsId, GetRightsIdAndKeyGenerationByPath, GetRightsIdByPath&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1B || 0x8000000010000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000800)&amp;lt;br/&amp;gt;([3.0.0-4.1.0] 0x8000000000002020) || CanRegisterExternalKey || RegisterExternalKey, UnregisterAllExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1C || 0x8000000000000800&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000004020)&amp;lt;br/&amp;gt;([3.0.0-4.1.0] 0x8000000000000028) || CanSetEncryptionSeed || [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1D || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000000)&amp;lt;br/&amp;gt;([4.0.0-4.1.0] 0x8000000020000000) || CanWriteSaveDataFileSystemExtraDataTimeStamp || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1E || 0x8000000000004020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000002020)&amp;lt;br/&amp;gt;([4.0.0-4.1.0] 0x8000000040000000) || CanWriteSaveDataFileSystemExtraDataFlags || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1F || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([4.0.0-4.1.0] 0x8000000000000000) || CanWriteSaveDataFileSystemExtraDataCommitId || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x20 || 0x8000000000000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000020000000)&amp;lt;br/&amp;gt;([4.0.0-4.1.0] 0x8000000000000000) || CanWriteSaveDataFileSystemExtraDataAll || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x21 || 0x8000000000002020&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanExtendSaveData || ExtendSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x22 || 0x8000000000000028&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000002) || CanExtendSystemSaveData || ExtendSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x23 || 0x8000000020000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanRegisterUpdatePartition || RegisterUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x24 || 0x8000000040000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanOpenSaveDataTransferManager || [[#OpenSaveDataTransferManager]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x25 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanOpenSaveDataTransferManagerVersion2 || [[#OpenSaveDataTransferManagerVersion2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x26 || 0x8000000200000000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000200002000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000080000110) || CanOpenSaveDataTransferManagerForSaveDataRepair || OpenSaveDataTransferManagerForSaveDataRepair&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x27 || 0x8000000000000000&amp;lt;br/&amp;gt;([8.0.0-8.1.0] 0x8000000240002000)&amp;lt;br/&amp;gt;([6.0.0-7.0.1] 0x8000000200002000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000100008) || CanOpenSaveDataTransferManagerForSaveDataRepairTool || OpenSaveDataTransferManagerForSaveDataRepair&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x28 || 0x8000000200002000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000000000000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000080010000) || CanOpenOpenSaveDataTransferProhibiter || [[#OpenSaveDataTransferProhibiter]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x29 || 0x8000000240002000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000000000000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x0000000080000001) || CanListAccessibleSaveDataOwnerId || [[#ListAccessibleSaveDataOwnerId]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0x8000000000000000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000080200000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x0000000080000001) || CanControlMmcPatrol || SuspendMmcPatrol, ResumeMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2B || 0x8000000000000000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000080000110)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x0000000080000001) || CanOverrideSaveDataTransferTokenSignVerificationKey || OverrideSaveDataTransferTokenSignVerificationKey&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2C || 0x8000000080200000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000000100008)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x0000000080000001) || CanOpenSdCardDetectionEventNotifier || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2D || 0x8000000080000110&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000000010000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x0000000080000001) || CanOpenGameCardDetectionEventNotifier || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2E || 0x8000000000100008&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000100000000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000040000000) || CanOpenSystemDataUpdateEventNotifier || OpenSystemDataUpdateEventNotifier&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2F || 0x8000000000010000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000100000000)&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000080200000) || CanNotifySystemDataUpdateEvent || NotifySystemDataUpdateEvent&lt;br /&gt;
|-&lt;br /&gt;
| [5.1.0+] 0x30 || 0x8000000100000000&amp;lt;br/&amp;gt;([5.1.0-6.0.0] 0x8000000080080000) || CanOpenAccessFailureDetectionEventNotifier || [[#OpenAccessFailureDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x31 || 0x8000000100000000 || CanGetAccessFailureDetectionEvent || GetAccessFailureDetectionEvent&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x32 || 0x8000000100000000 || CanIsAccessFailureDetected || IsAccessFailureDetected&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x33 || 0x8000000100000000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000040000000) || CanResolveAccessFailure || ResolveAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x34 || 0x8000000100000000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000200000020) || CanAbandonAccessFailure || AbandonAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x35 || 0x8000000040000000&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x8000000000200000) || CanQuerySaveDataInternalStorageTotalSize || QuerySaveDataInternalStorageTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x36 || 0x8000000200000020&amp;lt;br/&amp;gt;([6.0.0-8.1.0] 0x4000000000000000) || CanGetSaveDataCommitId || [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x37 || 0x8000000000200000&amp;lt;br/&amp;gt;([7.0.0-8.1.0] 0x8000000000000000)&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000080000) || CanSetSdCardAccessibility || SetSdCardAccessibility&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x38 || 0x4000000000000000&amp;lt;br/&amp;gt;([7.0.0-8.1.0] 0x8000000400000000)&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000000) || CanSimulateDevice || SimulateDeviceDetectionEvent, SetSimulationEvent, ClearSimulationEvent&lt;br /&gt;
|-&lt;br /&gt;
| [8.0.0+] 0x39 || 0x8000000000000000&amp;lt;br/&amp;gt;([8.0.0-8.1.0] 0x8000000000000010) || CanCreateSaveDataWithHashSalt || [[#CreateSaveDataFileSystem]], [[#CreateSaveDataFileSystemWithHashSalt]]&lt;br /&gt;
|-&lt;br /&gt;
| [9.0.0+] 0x3A || 0x8000000400000000 || CanRegisterProgramIndexMapInfo || RegisterProgramIndexMapInfo&lt;br /&gt;
|-&lt;br /&gt;
| [9.0.0+] 0x3B || 0x8000000000000010 || CanChallengeCardExistence || ChallengeCardExistence&lt;br /&gt;
|-&lt;br /&gt;
| [9.0.0+] 0x3C || 0x8000000800000000 || CanCreateOwnSaveData || [[#CreateSaveDataFileSystem]], CreateSaveDataFileSystemWithHashSalt&lt;br /&gt;
|-&lt;br /&gt;
| [9.0.0+] 0x3D || 0x8000000800000000 || CanReadOwnSaveDataFileSystemExtraData || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| [9.0.0+] 0x3E || 0x8000000800000000 || CanExtendOwnSaveData || ExtendSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| [9.0.0+] 0x3F || 0x8000000800000000 || CanOpenOwnSaveDataTransferProhibiter || [[#OpenSaveDataTransferProhibiter]]&lt;br /&gt;
|-&lt;br /&gt;
| [9.0.0+] 0x40 || 0x8000000800000000 || CanFindOwnSaveDataWithFilter || [[#FindSaveDataWithFilter]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystem ==&lt;br /&gt;
Takes a type-0x19 input [[#ContentPath]] and a [[#FileSystemType]] as parameters. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
[2.0.0+] This function was removed.&lt;br /&gt;
&lt;br /&gt;
== SetCurrentProcess ==&lt;br /&gt;
Takes a pid-descriptor.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithPatch ==&lt;br /&gt;
Takes an input [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Web-applet loads the [[#FileSystemType]] (which must be &#039;&#039;&#039;ContentManual&#039;&#039;&#039;) from u32_table[inparam].&lt;br /&gt;
&lt;br /&gt;
Note: web-applet strings refer to both this cmd and [[#OpenFileSystemWithId]] as &amp;quot;MountContent&amp;quot;, but official nn_sf_sync symbols use &amp;quot;OpenXX&amp;quot; names.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithId ==&lt;br /&gt;
Takes a type-0x19 input buffer, an [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
The [[#IFileSystem]] must be &#039;&#039;&#039;ContentMeta&#039;&#039;&#039; if the NCA type is 0 (control).&lt;br /&gt;
&lt;br /&gt;
The input buffer is the output string path from [[NS_Services#GetApplicationContentPath|GetApplicationContentPath]].&lt;br /&gt;
&lt;br /&gt;
May return errors when attempting to access NCA-paths for an update-title with a gamecard, when the gamecard isn&#039;t inserted. May return error 0x7D402 in some cases with update-titles. Non-val2 in32 values with NCA-type1 are unusable, even for normal titles.&lt;br /&gt;
&lt;br /&gt;
The official &amp;quot;MountApplicationPackage&amp;quot; func uses this with in64=0 and [[#FileSystemType]] &#039;&#039;&#039;ApplicationPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
After the [[#FileSystemType]] specific permissions are checked, it then gets the func retval for permissions-type 0x25 and func0.&lt;br /&gt;
&lt;br /&gt;
When [[#FileSystemType]] is &#039;&#039;&#039;ContentMeta&#039;&#039;&#039;, it uses in64=0xffffffffffffffff internally, otherwise it checks if in64 is set to 0xffffffffffffffff then throws an error if so. When the in64 used internally is not 0xffffffffffffffff, it&#039;s compared with the NCA [[NCM_services#ProgramId|ProgramId]], then an error is thrown on mismatch.&lt;br /&gt;
&lt;br /&gt;
== OpenBisFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer string and a [[#BisPartitionId]]. Official user-process code sets instr[0] = 0 normally. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Only partitionIDs for FAT partitions are usable with this, otherwise error 0x2EE202 is returned. Seems to be about the same as [[#OpenBisStorage]] except this mounts the partition filesystem instead of allowing direct access to the partition sectors.&lt;br /&gt;
&lt;br /&gt;
== OpenBisStorage ==&lt;br /&gt;
Takes a u32 partition ID, returns 0x2EE202 for partitions which do not exist, 0x320002 for partitions which cannot be opened and a valid [[#IStorage]] handle otherwise.&lt;br /&gt;
&lt;br /&gt;
== InvalidateBisCache ==&lt;br /&gt;
Seems to invalidate the Bis cache for MBR/GPT after overwriting that data via the OpenBisStorage IStorage. Used by [[SystemInitializer]].&lt;br /&gt;
&lt;br /&gt;
== DeleteSaveDataFileSystem ==&lt;br /&gt;
Takes an input u64.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystem ==&lt;br /&gt;
Takes a 0x40-byte [[#SaveDataAttribute]], a 0x40-byte [[#SaveDataCreationInfo]], and a 0x10-byte input struct.&lt;br /&gt;
&lt;br /&gt;
Only the first 0x5-bytes in the 0x10-byte struct are initialized: all-zero when automatically creating savedata during savecommon mount by official user-processes. In the dedicated save-creation code in official user-processes: +0 u32 = 0x40060, +4 u8 = 1.&lt;br /&gt;
&lt;br /&gt;
Creates regular savedata.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes a 0x40-byte [[#SaveDataAttribute]] and a 0x40-byte [[#SaveDataCreationInfo]].&lt;br /&gt;
&lt;br /&gt;
Creates savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardStorage ==&lt;br /&gt;
Takes two input u32s (gamecard handle, partition ID), and returns an [[#IStorage]] for the [[Gamecard_Format|partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardFileSystem ==&lt;br /&gt;
Takes two input u32s, with the second u32 located at +4 in rawdata after the first u32. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts a [[Gamecard_Partition|gamecard partition]].&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystemWithHashSalt ==&lt;br /&gt;
Takes a total of 0xB0-bytes of input, no output.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystem ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte [[#SaveDataAttribute]]. Official user-process code is only known to use value 1 for the u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Permissions aren&#039;t checked until the specified save is successfully found.&lt;br /&gt;
&lt;br /&gt;
Only one process (specifically only one [[#IFileSystem]] session) can mount a given savedata at any given time (this includes SystemSaveData).&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte [[#SaveDataAttribute]]. Web-applet only uses value0 for the input u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraDataBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an input u64 saveID, and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraData ==&lt;br /&gt;
Takes an input u64 saveID and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReader ==&lt;br /&gt;
No input, returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReaderBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== FindSaveDataWithFilter ==&lt;br /&gt;
Takes a total of 0x50-bytes of input, returns 8-bytes of output and a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReaderWithFilter ==&lt;br /&gt;
Takes a total of 0x50-bytes of input, returns an [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataTransferManager ==&lt;br /&gt;
No input, returns an [[#ISaveDataTransferManager]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataTransferManagerVersion2 ==&lt;br /&gt;
No input, returns an [[#ISaveDataTransferManagerWithDivision]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataTransferProhibiter ==&lt;br /&gt;
Takes an input u64, returns an [[#ISaveDataTransferProhibiter]].&lt;br /&gt;
&lt;br /&gt;
== ListAccessibleSaveDataOwnerId ==&lt;br /&gt;
Takes a total of 0x10-bytes of input, returns 4-bytes of output and a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataTransferManagerForSaveDataRepair ==&lt;br /&gt;
No input, returns an output [[#ISaveDataTransferManagerForSaveDataRepair]].&lt;br /&gt;
&lt;br /&gt;
== OpenContentStorageFileSystem ==&lt;br /&gt;
Takes a [[#ContentStorageId]]. Invalid values return 0x2EE202.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]] with NCA files. The read data from these files is identical to the data read by [[NCM_services#ReadContentIdFile]].&lt;br /&gt;
&lt;br /&gt;
== OpenCloudBackupWorkStorageFileSystem ==&lt;br /&gt;
Takes 4-bytes of input, returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
== OpenCustomStorageFileSystem ==&lt;br /&gt;
Takes a [[#CustomStorageId]]. Invalid values return 0x2EE202.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]] from either User:/CustomStorage0 or Sdcard:/Nintendo/CustomStorage0. If on the SD card, an AesXtsFileSystem is created using a key source specifically for custom storage.&lt;br /&gt;
&lt;br /&gt;
== OpenDataStorageByDataId ==&lt;br /&gt;
Takes a [[NCM_services#StorageId|StorageID]] and a [[NCM_services#DataId|DataId]].&lt;br /&gt;
&lt;br /&gt;
Returns a [[IPC_Marshalling#Domain_message|domain object ID]] implementing the [[#IStorage]] interface for data archives.&lt;br /&gt;
&lt;br /&gt;
== OpenDataFileSystemWithProgramIndex ==&lt;br /&gt;
Takes an input u8, returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
== OpenDataStorageWithProgramIndex ==&lt;br /&gt;
Takes an input u8, returns an [[#IStorage]].&lt;br /&gt;
&lt;br /&gt;
== OpenDeviceOperator ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IDeviceOperator]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenSdCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== SimulateDeviceDetectionEvent ==&lt;br /&gt;
Takes a total of 0xC-bytes of input, no output.&lt;br /&gt;
&lt;br /&gt;
== VerifySaveDataFileSystem ==&lt;br /&gt;
Takes an unknown input u64 and a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
The input u64 high-byte must be non-zero, otherwise an [[Error_codes|error]] is returned(0xE02).&lt;br /&gt;
&lt;br /&gt;
== GetSaveDataCommitId ==&lt;br /&gt;
Takes an input u8 and u64, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== SetSdCardEncryptionSeed ==&lt;br /&gt;
Takes in the 0x10 byte SD card encryption seed, and loads it into FS-module state.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]]-module reads the 0x10 bytes from SdCard:/Nintendo/Contents/private, and compares them to the first 0x10 bytes of the ns_appman:/private (in [[Flash_Filesystem#System_Savegames|system savedata]] 0x8000000000000043). If they match, NS calls this command using bytes 0x10-0x20 from ns_appman:/private. The rest of this file (0x1F0 bytes total) is (usually/always?) all-zero (however in some cases the byte at offset 0x20 is value 0x1).&lt;br /&gt;
&lt;br /&gt;
== OpenAccessFailureDetectionEventNotifier ==&lt;br /&gt;
Takes 8-bytes of input and returns an [[#IEventNotifier]].&lt;br /&gt;
&lt;br /&gt;
[8.0.0+] Now takes an additional 8-bytes of input.&lt;br /&gt;
&lt;br /&gt;
== SetSaveDataSize ==&lt;br /&gt;
Takes two input u64s &amp;quot;size&amp;quot; and &amp;quot;journal_size&amp;quot;, and writes them to fsp-srv object member variables.&lt;br /&gt;
&lt;br /&gt;
These variables are normally initialized with 32 MiB (0x2000000) and 16 MiB (0x1000000), respectively.&lt;br /&gt;
&lt;br /&gt;
These variables don&#039;t seem to be actually used anywhere else (?)&lt;br /&gt;
&lt;br /&gt;
== SetSaveDataRootPath ==&lt;br /&gt;
Takes an input path, and does snprintf(&amp;lt;fsp-srv object&amp;gt;-&amp;gt;m_save_data_root_path, FS_MAX_PATH-1, &amp;quot;/%s&amp;quot;, input_path);&lt;br /&gt;
&lt;br /&gt;
This path is normally all-zero. When this path is non-zero, the internal OpenSaveDataFileSystem function will create a DirectorySaveDataFileSystem if the target save is a user-save + a directory exists, instead of the normal savedata filesystem object.&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== GetGlobalAccessLogMode ==&lt;br /&gt;
Returns an output u32.&lt;br /&gt;
&lt;br /&gt;
GlobalAccessLogMode is normally 0.&lt;br /&gt;
&lt;br /&gt;
== OutputAccessLogToSdCard ==&lt;br /&gt;
Takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
The input buffer is the string to output to the log. User-processes normally include a newline at the end.&lt;br /&gt;
&lt;br /&gt;
User-processes only use this when the value previously loaded from [[#GetGlobalAccessLogMode]] has bit1 set.&lt;br /&gt;
&lt;br /&gt;
When bit1 in GlobalAccessLogMode is clear, FS-module will just return 0 for OutputAccessLogToSdCard. However even with that set the log doesn&#039;t show up SD, unknown why.&lt;br /&gt;
&lt;br /&gt;
The input buffer is written to the &amp;quot;$FsAccessLog:/FsAccessLog.txt&amp;quot; file, where &amp;quot;$FsAccessLog&amp;quot; is the SD-card mount-name. It&#039;s written to the current end of the file(appended).&lt;br /&gt;
&lt;br /&gt;
== GetProgramIndexForAccessLog ==&lt;br /&gt;
No input, returns two 32-bit values &amp;quot;version&amp;quot; and &amp;quot;program_index&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== OpenMultiCommitManager ==&lt;br /&gt;
No input, returns an output [[#IMultiCommitManager]].&lt;br /&gt;
&lt;br /&gt;
= IStorage =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IStorage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This is the interface for a raw device, usually a block device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Read]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#Write]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [[#Flush]]&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [[#SetSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [[#GetSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Read ==&lt;br /&gt;
Takes a type-0x46 buffer, an offset and length.&lt;br /&gt;
&lt;br /&gt;
== Write ==&lt;br /&gt;
Takes a type-0x45 buffer, an offset and length.&lt;br /&gt;
&lt;br /&gt;
== Flush ==&lt;br /&gt;
No input.&lt;br /&gt;
&lt;br /&gt;
== SetSize ==&lt;br /&gt;
Takes a size.&lt;br /&gt;
&lt;br /&gt;
== GetSize ==&lt;br /&gt;
Returns a size.&lt;br /&gt;
&lt;br /&gt;
= IFileSystem =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystem&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There are two main implementations of this interface:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RomFS&#039;&#039;&#039;: Filesystem implementation statically linked in the binary. Uses an [[#IStorage]] interface as underlying raw device.&lt;br /&gt;
* &#039;&#039;&#039;IPC proxy&#039;&#039;&#039;: Used for all non-RomFS filesystems. In this case, actual filesystem implementation is in the FS process.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || CreateFile&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DeleteFile&lt;br /&gt;
|-&lt;br /&gt;
| 2 || CreateDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeleteDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 4 || DeleteDirectoryRecursively&lt;br /&gt;
|-&lt;br /&gt;
| 5 || RenameFile&lt;br /&gt;
|-&lt;br /&gt;
| 6 || RenameDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [[#GetEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [[#OpenFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [[#OpenDirectory]]&lt;br /&gt;
|-&lt;br /&gt;
| 10 || [[#Commit]]&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#GetFreeSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#GetTotalSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || [3.0.0+] [[#CleanDirectoryRecursively]]&lt;br /&gt;
|-&lt;br /&gt;
| 14 || [3.0.0+] [[#GetFileTimeStampRaw]]&lt;br /&gt;
|-&lt;br /&gt;
| 15 || [4.0.0+] QueryEntry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetEntryType ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns [[#DirectoryEntryType]] as an output u32.&lt;br /&gt;
&lt;br /&gt;
== OpenFile ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path, and an u32 &#039;&#039;&#039;mode&#039;&#039;&#039;. &#039;&#039;&#039;mode&#039;&#039;&#039; controls how the file is opened, based on which bits are set:&lt;br /&gt;
&lt;br /&gt;
* When bit 0 is set, the file is Readable: you can use the Read operation.&lt;br /&gt;
* When bit 1 is set, the file is Writable: you can use the Write operation.&lt;br /&gt;
* When bit 2 is set, the file is Appendable: unless this bit is set, you will not be able to write beyond the end of a file (such writes will result in an error 0x307202)&lt;br /&gt;
&lt;br /&gt;
== OpenDirectory ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and an u64 &#039;&#039;&#039;filter_flags&#039;&#039;&#039;. &#039;&#039;&#039;filter_flags&#039;&#039;&#039; controls what type of entries are read by the [[#IDirectory]]: bitmask 0x1 = directories, bitmask 0x2 = files.&lt;br /&gt;
&lt;br /&gt;
== Commit ==&lt;br /&gt;
Like [https://3dbrew.org/wiki/FS:ControlArchive 3DS], this has to be used after writing to savedata for the changes to take affect.&lt;br /&gt;
&lt;br /&gt;
== GetFreeSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total free space with this FS.&lt;br /&gt;
&lt;br /&gt;
== GetTotalSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total space available with this FS(free+used).&lt;br /&gt;
&lt;br /&gt;
== CleanDirectoryRecursively ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and clears the contents of the directory specified in the path.&lt;br /&gt;
&lt;br /&gt;
== GetFileTimeStampRaw ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path and returns a 0x20-byte struct. This contains 3 u64s and an u8.&lt;br /&gt;
&lt;br /&gt;
= IDirectory =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDirectory&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Read]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetEntryCount]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Read ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64(?) for the total number of read entries, this is 0 when no more entries are available.&lt;br /&gt;
&lt;br /&gt;
The output buffer contains the read array of [[#DirectoryEntry]]. This doesn&#039;t include entries for &amp;quot;.&amp;quot; and &amp;quot;..&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== GetEntryCount ==&lt;br /&gt;
Returns an u64 for the total number of readable entries.&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntry =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x301 || Path&lt;br /&gt;
|-&lt;br /&gt;
| 0x301 || 0x1 || File attributes (bit 0 = is directory; bit 1 = archive bit)&lt;br /&gt;
|-&lt;br /&gt;
| 0x302 || 0x2 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x304 || 0x1 || [[#DirectoryEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x305 || 0x3 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x308 || 0x8 || Filesize, 0 for directories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntryType =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntryType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
An s8 value indicating a directory entry type. The current values are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Directory&lt;br /&gt;
|-&lt;br /&gt;
| 1 || File&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFile =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFile&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataInfoReader =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataInfoReader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#ReadSaveDataInfo]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataInfo ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64 for total output entries. This buffer contains an array of [[#SaveDataInfo]].&lt;br /&gt;
&lt;br /&gt;
This is used to get [[#SaveDataInfo]] for all savedata on the system (or all savedata for the current [[#SaveDataSpaceId]]). When used multiple times, it will resume reading where it left off, until no more entries are available (in that case the out u64 is value 0).&lt;br /&gt;
&lt;br /&gt;
= IDeviceOperator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDeviceOperator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || IsSdCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GetSdCardSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [2.0.0+] GetSdCardCid&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [2.0.0+] GetSdCardUserAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [2.0.0+] GetSdCardProtectedAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [2.0.0+] GetAndClearSdCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 100 || GetMmcCid&lt;br /&gt;
|-&lt;br /&gt;
| 101 || GetMmcSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 110 || EraseMmc&lt;br /&gt;
|-&lt;br /&gt;
| 111 || GetMmcPartitionSize&lt;br /&gt;
|-&lt;br /&gt;
| 112 || [2.0.0+] GetMmcPatrolCount&lt;br /&gt;
|-&lt;br /&gt;
| 113 || [2.0.0+] GetAndClearMmcErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 114 || [2.0.0+] GetMmcExtendedCsd&lt;br /&gt;
|-&lt;br /&gt;
| 115 || [4.0.0+] SuspendMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 116 || [4.0.0+] ResumeMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 200 || [[#IsGameCardInserted]]&lt;br /&gt;
|-&lt;br /&gt;
| 201 || EraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 202 || [[#GetGameCardHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 203 || [[#GetGameCardUpdatePartitionInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 204 || FinalizeGameCardDriver&lt;br /&gt;
|-&lt;br /&gt;
| 205 || GetGameCardAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 206 || [[#GetGameCardDeviceCertificate]]&lt;br /&gt;
|-&lt;br /&gt;
| 207 || GetGameCardAsicInfo&lt;br /&gt;
|-&lt;br /&gt;
| 208 || GetGameCardIdSet&lt;br /&gt;
|-&lt;br /&gt;
| 209 || WriteToGameCardDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 210 || SetVerifyWriteEnalbleFlag&lt;br /&gt;
|-&lt;br /&gt;
| 211 || GetGameCardImageHash&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [2.0.0+] GetGameCardDeviceIdForProdCard&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [2.0.0+] EraseAndWriteParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [2.0.0+] ReadParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [2.0.0+] ForceEraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [2.0.0+] GetGameCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [2.1.0+] GetGameCardErrorReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [3.0.0+] GetGameCardDeviceId&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [8.0.0+] [[#ChallengeCardExistence]]&lt;br /&gt;
|-&lt;br /&gt;
| 220 || [9.0.0+] [[#GetGameCardCompatibilityType]]&lt;br /&gt;
|-&lt;br /&gt;
| 300 || SetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 301 || GetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [5.0.0+] SuspendSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 401 || [5.0.0+] ResumeSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 402 || [6.0.0+] [[#GetSdmmcConnectionStatus]]&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [6.0.0+] [[#SetDeviceSimulationEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [6.0.0+] [[#ClearDeviceSimulationEvent]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== IsGameCardInserted ==&lt;br /&gt;
No input, returns a bool.&lt;br /&gt;
&lt;br /&gt;
== GetGameCardHandle ==&lt;br /&gt;
No input, returns an u32 &#039;&#039;&#039;GameCardHandle&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== GetGameCardUpdatePartitionInfo ==&lt;br /&gt;
Returns a [[NCM_services#ProgramId|ProgramId]] and the title-version for it.&lt;br /&gt;
&lt;br /&gt;
* Output u32 with ARMS-gamecard: title-version v131162. This is the title-version for [[2.1.0]], which is the sysupdate included with this gamecard. Launch-day gamecards return title-version v450.&lt;br /&gt;
* Output u64 with ARMS-gamecard: [[NCM_services#ProgramId|ProgramId]] 0100000000000816.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]] appears to only use this with [[NCM_services|NCM]] for checking whether a sysupdate is required.&lt;br /&gt;
&lt;br /&gt;
== GetGameCardDeviceCertificate ==&lt;br /&gt;
Takes a type-0x6 output buffer, an u32 &#039;&#039;&#039;GameCardHandle&#039;&#039;&#039; and an u64 &#039;&#039;&#039;DeviceCertificateBufferSize&#039;&#039;&#039;. No output.&lt;br /&gt;
&lt;br /&gt;
== ChallengeCardExistence ==&lt;br /&gt;
Takes a type-0x6 output buffer, two type-0x5 input buffers and an u32 &#039;&#039;&#039;GameCardHandle&#039;&#039;&#039;. No output.&lt;br /&gt;
&lt;br /&gt;
[9.0.0+] The [[Account_services|account]] system module uses this as part of a new challenge-response mechanism for [[Network#aauth|application authentication]].&lt;br /&gt;
&lt;br /&gt;
== GetGameCardCompatibilityType ==&lt;br /&gt;
Takes an u32 &#039;&#039;&#039;GameCardHandle&#039;&#039;&#039;, returns an u8 &#039;&#039;&#039;CompatibilityType&#039;&#039;&#039; (0x00 = Global, 0x01 = China) from [[Gamecard_Format#Gamecard_Info|Gamecard Info]].&lt;br /&gt;
&lt;br /&gt;
== GetSdmmcConnectionStatus ==&lt;br /&gt;
Takes a total of 4-bytes of input, returns a total of 8-bytes of output.&lt;br /&gt;
&lt;br /&gt;
== SetDeviceSimulationEvent == &lt;br /&gt;
Takes a total of 0x14-bytes of input, no output.&lt;br /&gt;
&lt;br /&gt;
== ClearDeviceSimulationEvent ==&lt;br /&gt;
Takes a total of 4-bytes of input, no output.&lt;br /&gt;
&lt;br /&gt;
= IEventNotifier =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IEventNotifier&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetEventHandle]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetEventHandle ==&lt;br /&gt;
No input, returns an output Event handle. With official sw the EventClearMode is user-specified.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManager =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManager&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetToken]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataImporter]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== SetToken ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64, returns an [[#ISaveDataExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x10-byte userID, and a type-0x5 input buffer. Returns an output u64 and an [[#ISaveDataImporter]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManagerForSaveDataRepair =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManagerForSaveDataRepair&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[9.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetKeyPackage]]&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [[#OpenSaveDataExporterAndGetEncryptedKey]]&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [[#PrepareOpenSaveDataImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 90 || [[#OpenSaveDataImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 91 || [[#OpenSaveDataImporter2]]&lt;br /&gt;
|-&lt;br /&gt;
| 100 || [[#OpenSaveDataExporterWithKey]]&lt;br /&gt;
|-&lt;br /&gt;
| 110 || [[#OpenSaveDataImporterWithKey]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SetKeyPackage ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporterAndGetEncryptedKey ==&lt;br /&gt;
Takes a total of 0x10-bytes of input and a type-0x1A output buffer to receive a RsaEncryptedKey. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== PrepareOpenSaveDataImporter ==&lt;br /&gt;
Takes a type-0x1A output buffer to receive a RsaEncryptedKey.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes a total of 0x18-bytes of input and two type-0x5 input buffers, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter2 ==&lt;br /&gt;
Takes a total of 0x18-bytes of input and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporterWithKey ==&lt;br /&gt;
Takes a total of 0x20-bytes of input, returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterWithKey ==&lt;br /&gt;
Takes a total of 0x28-bytes of input and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetSaveDataInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Pull]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#PullInitialData]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetSaveDataInfo ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataExporter constructor. This is used automatically after [[#OpenSaveDataExporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Pull ==&lt;br /&gt;
Takes a type-0x6 output buffer, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== PullInitialData ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetSaveDataInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Push]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#Finalize]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetSaveDataInfo ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#GetSaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataImporter constructor. This is used automatically after [[#OpenSaveDataImporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Push ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== Finalize ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManagerWithDivision =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManagerWithDivision&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetKeySeedPackage]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [[#OpenSaveDataExporterForDiffExport]]&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] [[#OpenSaveDataExporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 64 || [5.0.0-5.1.0] OpenSaveDataImporter&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] [[#OpenSaveDataImporterDeprecated]]&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [[#OpenSaveDataImporterForDiffImport]]&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] [[#OpenSaveDataImporterForDuplicateDiffImport]]&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] [[#OpenSaveDataImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] [[#OpenSaveDataImporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [6.0.0+] [[#CancelSuspendingImport]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer containing the &#039;&#039;&#039;Challenge&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== SetKeySeedPackage ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer containing the &#039;&#039;&#039;KeySeedPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporterForDiffExport ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterDeprecated ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], a 0x10-byte userID, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterForDiffImport ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]], returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterForDuplicateDiffImport ==&lt;br /&gt;
Takes an input u8 and an u64, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8, an u8(bool), a 0x10-byte struct, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== CancelSuspendingImport ==&lt;br /&gt;
Takes an input u64 and a 0x10-byte struct, no output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#SetDivisionCount]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [6.0.0+] [[#GetSaveDataInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#OpenSaveDataDiffChunkIterator]]&lt;br /&gt;
|-&lt;br /&gt;
| 48 || [[#OpenSaveDataChunkExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0-8.1.0] [[#FinalizeFullExport]]&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [6.0.0-8.1.0] [[#FinalizeDiffExport]]&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] [[#CancelExport]]&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] [[#SuspendExport]]&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [6.0.0+] [[#GetKeySeed]]&lt;br /&gt;
|-&lt;br /&gt;
| 71 || [6.0.0+] [[#GetInitialDataMac]]&lt;br /&gt;
|-&lt;br /&gt;
| 72 || [6.0.0+] [[#FinalizeExport]]&lt;br /&gt;
|-&lt;br /&gt;
| 73 || [9.0.0+] [[#GetInitialDataMacKeyGeneration]]&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] [[#GetImportInitialDataAad]]&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [6.0.0+] [[#SetExportInitialDataAad]]&lt;br /&gt;
|-&lt;br /&gt;
| 96 || [6.0.0+] [[#GetReportInfo]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SetDivisionCount ==&lt;br /&gt;
Takes an input u32, no output.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataChunkExporter ==&lt;br /&gt;
Takes an input u32, returns an [[#ISaveDataChunkExporter]].&lt;br /&gt;
&lt;br /&gt;
== FinalizeFullExport ==&lt;br /&gt;
No input, returns two 0x10-byte output structs.&lt;br /&gt;
&lt;br /&gt;
== FinalizeDiffExport ==&lt;br /&gt;
No input, returns an output 0x10-byte struct.&lt;br /&gt;
&lt;br /&gt;
== CancelExport ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
== SuspendExport ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== GetKeySeed ==&lt;br /&gt;
No input, returns an output 0x10-byte struct.&lt;br /&gt;
&lt;br /&gt;
== GetInitialDataMac ==&lt;br /&gt;
No input, returns an output 0x10-byte struct.&lt;br /&gt;
&lt;br /&gt;
== FinalizeExport ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
== SetExportInitialDataAad ==&lt;br /&gt;
Takes an input 0x20-byte struct, no output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [6.0.0+] [[#GetSaveDataInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#OpenSaveDataDiffChunkIterator]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#InitializeImport]]&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [[#FinalizeImport]]&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] [[#CancelImport]]&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] [[#GetImportContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 36 || [6.0.0+] [[#SuspendImport]]&lt;br /&gt;
|-&lt;br /&gt;
| 48 || [[#OpenSaveDataChunkImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] [[#GetImportInitialDataAad]]&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] [[#GetReportInfo]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetSaveDataInfo ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffChunkIterator ==&lt;br /&gt;
No input, returns an [[#ISaveDataChunkIterator]].&lt;br /&gt;
&lt;br /&gt;
== InitializeImport ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== FinalizeImport ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
== CancelImport ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
== GetImportContext ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== SuspendImport ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataChunkImporter ==&lt;br /&gt;
Takes an input u32, returns an [[#ISaveDataChunkImporter]].&lt;br /&gt;
&lt;br /&gt;
== GetImportInitialDataAad == &lt;br /&gt;
No input, returns an output 0x20-byte struct.&lt;br /&gt;
&lt;br /&gt;
== GetReportInfo ==&lt;br /&gt;
No input, returns an output 0x20-byte struct.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkIterator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkIterator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Next]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#IsEnd]] &lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#GetId]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Next ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
== IsEnd ==&lt;br /&gt;
No input, returns an output u8.&lt;br /&gt;
&lt;br /&gt;
== GetId ==&lt;br /&gt;
No input, returns an output u32.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Pull]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [6.0.0+] [[#GetRestRawDataSize]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pull ==&lt;br /&gt;
Takes an input u64 and a type-0x6 output buffer, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== GetRestRawDataSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Push]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Push ==&lt;br /&gt;
Takes an input u64 and a type-0x5 input buffer, no output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferProhibiter =&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t seem to handle any commands (?).&lt;br /&gt;
&lt;br /&gt;
= IMultiCommitManager =&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#Add]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [[#Commit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Add ==&lt;br /&gt;
Takes an input [[#IFilesystem]], no output.&lt;br /&gt;
&lt;br /&gt;
== Commit ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
= FileSystemType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Code&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Data&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Logo&lt;br /&gt;
|-&lt;br /&gt;
| 3 || ContentControl&lt;br /&gt;
|-&lt;br /&gt;
| 4 || ContentManual&lt;br /&gt;
|-&lt;br /&gt;
| 5 || ContentMeta&lt;br /&gt;
|-&lt;br /&gt;
| 6 || ContentData&lt;br /&gt;
|-&lt;br /&gt;
| 7 || ApplicationPackage&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [4.0.0+] RegisteredUpdate&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentType =&lt;br /&gt;
This is &amp;quot;nn::fs::ContentType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Meta&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Control&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Manual&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Logo&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::ContentStorageId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataSpaceId =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataSpaceId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdSystem&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [3.0.0+] Temporary&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [4.0.0+] SdUser&lt;br /&gt;
|-&lt;br /&gt;
| 100 || [3.0.0+] ProperSystem&lt;br /&gt;
|-&lt;br /&gt;
| 101 || [3.0.0+] SafeMode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Determines the storage where the savedata is stored.&lt;br /&gt;
&lt;br /&gt;
= SaveDataType =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Account&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Bcat&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Device&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [3.0.0+] Temporary&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [3.0.0+] Cache&lt;br /&gt;
|-&lt;br /&gt;
| 6 || [4.0.0+] SystemBcat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataRank =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataRank&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Primary&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Secondary&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataEnumerateOption =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataEnumerateOption&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || AllRank&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataFlags =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataFlags&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || KeepAfterResettingSystemSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 2 || KeepAfterRefurbishment&lt;br /&gt;
|-&lt;br /&gt;
| 4 || KeepAfterResettingSystemSaveDataWithoutUserSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 8 || DoSecureDelete&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataMetaType =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataMetaType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || None&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Thumbnail&lt;br /&gt;
|-&lt;br /&gt;
| 2 || ExtensionContext&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ImageDirectoryId =&lt;br /&gt;
This is &amp;quot;nn::fs::ImageDirectoryId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= CloudBackupWorkStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::CloudBackupWorkStorageId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= CustomStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::CustomStorageId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Priority =&lt;br /&gt;
This is &amp;quot;nn::fs::Priority&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Realtime&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Normal&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Low&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= PriorityRaw =&lt;br /&gt;
This is &amp;quot;nn::fs::PriorityRaw&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Realtime&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Normal&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Low&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Background&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= AbortSpecifier =&lt;br /&gt;
This is &amp;quot;nn::fs::AbortSpecifier&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Default&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Abort&lt;br /&gt;
|-&lt;br /&gt;
| 2 || ReturnResult&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= OperationId =&lt;br /&gt;
This is &amp;quot;nn::fs::OperationId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Clear&lt;br /&gt;
|-&lt;br /&gt;
| 1 || ClearSignature&lt;br /&gt;
|-&lt;br /&gt;
| 2 || InvalidateCache&lt;br /&gt;
|-&lt;br /&gt;
| 3 || QueryRange&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= MountHostOption =&lt;br /&gt;
This is &amp;quot;nn::fs::MountHostOption&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || PseudoCaseSensitive&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= BisPartitionId =&lt;br /&gt;
This is &amp;quot;nn::fs::BisPartitionId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || BootPartition1Root&lt;br /&gt;
|-&lt;br /&gt;
| 10 || BootPartition2Root&lt;br /&gt;
|-&lt;br /&gt;
| 20 || UserDataRoot&lt;br /&gt;
|-&lt;br /&gt;
| 21 || BootConfigAndPackage2Part1&lt;br /&gt;
|-&lt;br /&gt;
| 22 || BootConfigAndPackage2Part2&lt;br /&gt;
|-&lt;br /&gt;
| 23 || BootConfigAndPackage2Part3&lt;br /&gt;
|-&lt;br /&gt;
| 24 || BootConfigAndPackage2Part4&lt;br /&gt;
|-&lt;br /&gt;
| 25 || BootConfigAndPackage2Part5&lt;br /&gt;
|-&lt;br /&gt;
| 26 || BootConfigAndPackage2Part6&lt;br /&gt;
|-&lt;br /&gt;
| 27 || CalibrationBinary&lt;br /&gt;
|-&lt;br /&gt;
| 28 || CalibrationFile&lt;br /&gt;
|-&lt;br /&gt;
| 29 || SafeMode&lt;br /&gt;
|-&lt;br /&gt;
| 30 || User&lt;br /&gt;
|-&lt;br /&gt;
| 31 || System&lt;br /&gt;
|-&lt;br /&gt;
| 32 || SystemProperEncryption&lt;br /&gt;
|-&lt;br /&gt;
| 33 || SystemProperPartition&lt;br /&gt;
|-&lt;br /&gt;
| 34 || SignedSystemPartitionOnSafeMode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= MmcSpeedMode =&lt;br /&gt;
This is &amp;quot;nn::fs::MmcSpeedMode&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Identification&lt;br /&gt;
|-&lt;br /&gt;
| 1 || LegacySpeed&lt;br /&gt;
|-&lt;br /&gt;
| 2 || HighSpeed&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Hs200&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Hs400&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= MmcPartition =&lt;br /&gt;
This is &amp;quot;nn::fs::MmcPartition&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || UserData&lt;br /&gt;
|-&lt;br /&gt;
| 1 || BootPartition1&lt;br /&gt;
|-&lt;br /&gt;
| 2 || BootPartition2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= GameCardPartition =&lt;br /&gt;
This is &amp;quot;nn::fs::GameCardPartition&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Update&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Normal&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Secure&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [4.0.0+] Logo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= GameCardPartitionRaw =&lt;br /&gt;
This is &amp;quot;nn::fs::GameCardPartitionRaw&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || NormalReadOnly&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SecureReadOnly&lt;br /&gt;
|-&lt;br /&gt;
| 2 || RootWriteOnly&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= GameCardAttribute =&lt;br /&gt;
This is &amp;quot;nn::fs::GameCardAttribute&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || AutoBootFlag&lt;br /&gt;
|-&lt;br /&gt;
| 2 || HistoryEraseFlag&lt;br /&gt;
|-&lt;br /&gt;
| 4 || RepairToolFlag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= GameCardSize =&lt;br /&gt;
This is &amp;quot;nn::fs::GameCardSize&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Size1GB&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Size2GB&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Size4GB&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Size8GB&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Size16GB&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Size32GB&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= GameCardClockRate =&lt;br /&gt;
This is &amp;quot;nn::fs::GameCardClockRate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 25 || ClockRate25MHz&lt;br /&gt;
|-&lt;br /&gt;
| 50 || ClockRate50MHz&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SimulatingDeviceType =&lt;br /&gt;
This is &amp;quot;nn::fs::SimulatingDeviceType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GameCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SimulatingDeviceDetectionMode =&lt;br /&gt;
This is &amp;quot;nn::fs::SimulatingDeviceDetectionMode&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || NoSimulation&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DeviceAttached&lt;br /&gt;
|-&lt;br /&gt;
| 2 || DeviceRemoved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SimulatingDeviceAccessFailureEventType =&lt;br /&gt;
This is &amp;quot;nn::fs::SimulatingDeviceAccessFailureEventType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || None&lt;br /&gt;
|-&lt;br /&gt;
| 1 || AccessTimeoutFailure&lt;br /&gt;
|-&lt;br /&gt;
| 2 || AccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DataCorruption&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SimulatingDeviceTargetOperation =&lt;br /&gt;
This is &amp;quot;nn::fs::SimulatingDeviceTargetOperation&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Read&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Write&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SpeedEmulationMode =&lt;br /&gt;
This is &amp;quot;nn::fs::SpeedEmulationMode&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || None&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Faster&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Slower&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Random&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentPath =&lt;br /&gt;
These are the 0x300 paths to NCA files for the various filesystems FS can access, beginning with @. They&#039;re passed via X descriptors, and returned via various [[Location Resolver services|ncm/lr]] commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Path || Notes&lt;br /&gt;
|-&lt;br /&gt;
| @SystemContent ||&lt;br /&gt;
|- &lt;br /&gt;
| @UserContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @SdCardContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @CalibFile ||&lt;br /&gt;
|-&lt;br /&gt;
| @Safe ||&lt;br /&gt;
|-&lt;br /&gt;
| @User ||&lt;br /&gt;
|-&lt;br /&gt;
| @System ||&lt;br /&gt;
|-&lt;br /&gt;
| @Sdcard ||&lt;br /&gt;
|-&lt;br /&gt;
| @Host ||&lt;br /&gt;
|-&lt;br /&gt;
| @GcApp || Gamecard App partition (Partition 2)&lt;br /&gt;
|-&lt;br /&gt;
| @GcXYYYYYYYY || Gamecard Contents. X is the partition type (U - Update, N - Normal, S - Secure). Y is the gamecard handle as a 32-bit hex value &lt;br /&gt;
|-&lt;br /&gt;
| @upp || Gamecard update partition (Partition 0)&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] @RegUpdate || Registered update partition&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataAttribute =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataAttribute&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| [[NCM_services#ApplicationId|ApplicationId]] (0 for SystemSaveData)&amp;lt;/br&amp;gt;SaveData: 0 can be used for accessing the savedata associated with the current FS session [[NCM_services#ApplicationId|ApplicationId]], otherwise when set this is the [[NCM_services#ApplicationId|ApplicationId]] associated with the savedata to access.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x10&lt;br /&gt;
| UserId&amp;lt;/br&amp;gt;For user-specific savedata(saveuser) when set, otherwise when zero this indicates the common savedata(savecommon). This is loaded from [[Account_services]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| [[Flash_Filesystem|SystemSaveDataId]] (0 for SaveData)&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataRank]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x22&lt;br /&gt;
| 0x2&lt;br /&gt;
| SaveDataIndex&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
For DeviceSaveData, this struct is all-zero except for the [[#SaveDataType]] field.&lt;br /&gt;
&lt;br /&gt;
= SaveDataCreationInfo =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataCreationInfo&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| SaveDataSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| JournalSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8&lt;br /&gt;
| AvailableSize&amp;lt;/br&amp;gt;0x4000 for SystemSaveData/SaveData/DeviceSaveData/BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| OwnerId&amp;lt;/br&amp;gt;Official user-processes only uses 0 here for SystemSaveData/SaveData. For the dedicated save-creation code with SaveData/DeviceSaveData, this value comes from an input param with official user-processes. For BcatSaveData, this is the hard-coded [[NCM_services#ProgramId|ProgramId]] of the bcat-sysmodule.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[#SaveDataFlags]]&amp;lt;/br&amp;gt;Written using an input param for official user-processes. Hard-coded 0 for BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataSpaceId]]&amp;lt;/br&amp;gt;Official user-processes only uses 0 here for SystemSaveData, 1 for SaveData/DeviceSaveData/BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25&lt;br /&gt;
| 0x1&lt;br /&gt;
| Unknown. 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x1A&lt;br /&gt;
| Not initialized for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
= DeviceSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8, the only difference compared to SaveData is the [[#SaveDataAttribute]].&lt;br /&gt;
&lt;br /&gt;
= BcatSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8. The [[#SaveDataAttribute]] is the same as DeviceSaveData, except that the [[NCM_services#ApplicationId|ApplicationId]] field is set to &amp;lt;input ApplicationId&amp;gt;. See above regarding [[#SaveDataCreationInfo]].&lt;br /&gt;
&lt;br /&gt;
The 0x10-byte struct passed to [[#CreateSaveDataFileSystem]] has the first 0x5-bytes set to all-zero.&lt;br /&gt;
&lt;br /&gt;
= SaveDataInfo =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataInfo&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| SaveDataId&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA&lt;br /&gt;
| 0x6&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| UserId&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x8&lt;br /&gt;
| SystemSaveDataId (0 for regular SaveData)&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| [[NCM_services#ApplicationId|ApplicationId]] (for regular SaveData)&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| Raw saveimage size&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x2&lt;br /&gt;
| SaveDataIndex&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataRank]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B&lt;br /&gt;
| 0x25&lt;br /&gt;
| Unknown. Usually zeros?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a 0x60-byte struct.&lt;br /&gt;
&lt;br /&gt;
= SaveDataFileSystemExtraData =&lt;br /&gt;
This is a 0x200-byte struct. Appears to match [[Savegames#Extra_data]].&lt;br /&gt;
&lt;br /&gt;
= InitialDataVersion2 =&lt;br /&gt;
This is a 0x8210-byte struct used by [[#ISaveDataTransferManagerWithDivision]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=7457</id>
		<title>Filesystem services</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=7457"/>
		<updated>2019-08-18T20:17:29Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* fsp-srv */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= fsp-ldr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxyForLoader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Arguments || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || OpenCodeFileSystem || u64 TitleId + X descriptor [[#ContentPath]] || Returns an [[#IFileSystem]].&lt;br /&gt;
|-&lt;br /&gt;
| 1 || IsArchivedProgram || u64 ProcessId || Returns a bool (1 if the process id&#039;s [[#ContentPath]] ends in &amp;quot;.nca&amp;quot;).&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] SetCurrentProcess || PID descriptor ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= fsp-pr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IProgramRegistry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#RegisterProgram]] ||&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#UnregisterProgram]] ||&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] SetCurrentProcess ||&lt;br /&gt;
|-&lt;br /&gt;
| 256 || [[#SetEnabledProgramVerification]] ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== RegisterProgram ==&lt;br /&gt;
Takes a storageID, a pid, a titleID, a 0x1C type-A buffer for the [[NPDM#FS_Access_Header| FS Access Header]], and a 0x2C type-A buffer for the [[NPDM#FS_Access_Control| FS Access Control]]&lt;br /&gt;
&lt;br /&gt;
Final FS permissions are stored as (ACI0_perms &amp;amp; ACID_perms). Will panic(svcBreak) when buffer sizes from ipc-rawdata are invalid.&lt;br /&gt;
&lt;br /&gt;
== UnregisterProgram ==&lt;br /&gt;
Takes a pid. Removes registered FS permissions for that PID.&lt;br /&gt;
&lt;br /&gt;
== SetEnabledProgramVerification ==&lt;br /&gt;
Seems to sets a global flag to inputval &amp;amp; 1.&lt;br /&gt;
&lt;br /&gt;
When the flag is zero, it will set ret=0 instead of ret={error} when verifying the fixed-key [[NPDM]] ACID signature fails. This also skips verifying the [[NCA_Format|NCA Header]] signature using the ACID key. Note that if verifying the fixed-key ACID signature is successful, and verifying the ACID-key NCA header signature fails, it will throw an error and abort.&lt;br /&gt;
&lt;br /&gt;
= fsp-srv =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxy&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [1.0.0] [[#OpenFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#SetCurrentProcess]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || OpenDataFileSystemByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [2.0.0+] [[#OpenFileSystemWithPatch]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [2.0.0+] [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [3.0.0+] OpenDataFileSystemByApplicationId&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || InvalidateBisCache&lt;br /&gt;
|-&lt;br /&gt;
| 17 || OpenHostFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 18 || OpenSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 19 || [2.0.0+] FormatSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 21 || [[#DeleteSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 22 || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 23 || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 24 || RegisterSaveDataFileSystemAtomicDeletion&lt;br /&gt;
|-&lt;br /&gt;
| 25 || [2.0.0+] DeleteSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 26 || [2.0.0+] FormatSdCardDryRun&lt;br /&gt;
|-&lt;br /&gt;
| 27 || [2.0.0+] IsExFatSupported&lt;br /&gt;
|-&lt;br /&gt;
| 28 || [4.0.0+] DeleteSaveDataFileSystemBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 30 || [[#OpenGameCardStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 31 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [3.0.0+] ExtendSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [5.0.0+] DeleteCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [5.0.0+] GetCacheStorageSize&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] CreateSaveDataFileSystemByHashSalt (Unofficial name, takes a total of 0xB0-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 51 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 52 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 53 || [2.0.0+] OpenReadOnlySaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 57 || [3.0.0+] [[#ReadSaveDataFileSystemExtraDataBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 58 || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 59 || [2.0.0+] WriteSaveDataFileSystemExtraData&lt;br /&gt;
|-&lt;br /&gt;
| 60 || [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 61 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 62 || [5.0.0+] OpenCacheStorageList&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [5.0.0+] OpenSaveDataInternalStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [5.0.0+] UpdateSaveDataMacForDebug&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [5.0.0+] WriteSaveDataFileSystemExtraData2&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] FindSaveDataWithFilter (Takes a total of 0x50-bytes of input, returns 8-bytes of output, and a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] OpenSaveDataIterator (Takes a total of 0x50-bytes of input, returns an #ISaveDataInfoReader)&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [8.0.0+] ReadSaveDataFileSystemExtraDataBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [8.0.0+] WriteSaveDataFileSystemExtraDataBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 80 || OpenSaveDataMetaFile&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [4.0.0+] OpenSaveDataTransferManager (No input, returns an [[#ISaveDataTransferManager]])&lt;br /&gt;
|-&lt;br /&gt;
| 82 || [5.0.0+] OpenSaveDataTransferManagerVersion2 (No input, returns an [[#ISaveDataTransferManagerWithDivision]])&lt;br /&gt;
|-&lt;br /&gt;
| 83 || [6.0.0+] OpenSaveDataTransferProhibiterForCloudBackUp (Takes an input u64, returns an [[#ISaveDataTransferProhibiter]])&lt;br /&gt;
|-&lt;br /&gt;
| 84 || [6.0.0+] ListApplicationAccessibleSaveDataOwnerId (Takes a total of 0x10-bytes of input, returns 4-bytes of output, and a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 100 || OpenImageDirectoryFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 110 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 120 || [6.0.0+] OpenCloudBackupWorkStorageFileSystem (Takes 4-bytes of input, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 130 || [7.0.0+] [[#OpenCustomStorageFileSystem]] (Takes 4-bytes of input, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 200 || OpenDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 201 || [3.0.0+] OpenDataStorageByProgramId&lt;br /&gt;
|-&lt;br /&gt;
| 202 || [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 203 || OpenPatchDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 204 || [7.0.0+] OpenDataFileSystemByProgramIndex (Takes an input u8, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 205 || [7.0.0+] OpenDataStorageByProgramIndex (Takes an input u8, returns an [[#IStorage]])&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [[#OpenDeviceOperator]]&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 510 || [5.0.0+] OpenSystemDataUpdateEventNotifier&lt;br /&gt;
|-&lt;br /&gt;
| 511 || [5.0.0+] NotifySystemDataUpdateEvent&lt;br /&gt;
|-&lt;br /&gt;
| 520 || [6.0.0+] SimulateGameCardDetectionEvent (Takes a total of 0xC-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 600 || [1.0.0-3.0.2] SetCurrentPosixTime&lt;br /&gt;
|-&lt;br /&gt;
| 601 || QuerySaveDataTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 602 || [[#VerifySaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 603 || CorruptSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 604 || CreatePaddingFile&lt;br /&gt;
|-&lt;br /&gt;
| 605 || DeleteAllPaddingFiles&lt;br /&gt;
|-&lt;br /&gt;
| 606 || [2.0.0+] GetRightsId&lt;br /&gt;
|-&lt;br /&gt;
| 607 || [2.0.0+] RegisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 608 || [2.0.0+] UnregisterAllExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 609 || [2.0.0+] GetRightsIdByPath&lt;br /&gt;
|-&lt;br /&gt;
| 610 || [3.0.0+] GetRightsIdAndKeyGenerationByPath&lt;br /&gt;
|-&lt;br /&gt;
| 611 || [4.0.0+] SetCurrentPosixTimeWithTimeDifference&lt;br /&gt;
|-&lt;br /&gt;
| 612 || [4.0.0+] GetFreeSpaceSizeForSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 613 || [4.0.0+] VerifySaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 614 || [4.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 615 || [5.0.0+] QuerySaveDataInternalStorageTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 616 || [6.0.0+] [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| 617 || [7.0.0+] UnregisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 620 || [2.0.0+] [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| 630 || [4.0.0+] SetSdCardAccessibility&lt;br /&gt;
|-&lt;br /&gt;
| 631 || [4.0.0+] IsSdCardAccessible&lt;br /&gt;
|-&lt;br /&gt;
| 640 || [4.0.0-7.0.1] IsSignedSystemPartitionOnSdCardValid&lt;br /&gt;
|-&lt;br /&gt;
| 700 || [5.0.0+] [[#OpenAccessFailureResolver]]&lt;br /&gt;
|-&lt;br /&gt;
| 701 || [5.0.0+] GetAccessFailureDetectionEvent&lt;br /&gt;
|-&lt;br /&gt;
| 702 || [5.0.0+] IsAccessFailureDetected&lt;br /&gt;
|-&lt;br /&gt;
| 710 || [5.0.0+] ResolveAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 720 || [5.0.0+] AbandonAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [2.0.0+] GetAndClearFileSystemProxyErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [7.0.0+] RegisterProgramIndexMapInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1000 || SetBisRootForHost&lt;br /&gt;
|-&lt;br /&gt;
| 1001 || [[#SetSaveDataSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1002 || [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| 1003 || DisableAutoSaveDataCreation&lt;br /&gt;
|-&lt;br /&gt;
| 1004 || [[#SetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1005 || [[#GetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1006 || [[#OutputAccessLogToSdCard]]&lt;br /&gt;
|-&lt;br /&gt;
| 1007 || [4.0.0+] RegisterUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1008 || [4.0.0+] OpenRegisteredUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1009 || [4.0.0+] GetAndClearMemoryReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1010 || [5.1.0-6.2.0] SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| 1011 || [7.0.0+] GetAccessLogVersionInfo (Unofficial name, no input, returns two 32-bit values &amp;quot;version&amp;quot; and &amp;quot;program_index&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 1100 || [4.0.0+] OverrideSaveDataTransferTokenSignVerificationKey&lt;br /&gt;
|-&lt;br /&gt;
| 1110 || [6.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId2&lt;br /&gt;
|-&lt;br /&gt;
| 1200 || [6.0.0+] OpenMultiCommitManager (No input, returns an output #IMultiCommitManager)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
Every time permissions are checked, the process registration [[#fsp-pr]] is loaded using the session processID. The permission data is populated with data from the [[NPDM]].&lt;br /&gt;
&lt;br /&gt;
If the processID is &amp;lt;= 6 (which happens only for built-in sysmodules), it will use a hardcoded registration data. The default mask in this case is 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
Note that the functions check whether or not at least one bit is set in the mask. This means that, you don&#039;t need to set 0xFFFFFFFFFFFFFFFF to get all permissions: it suffices to set 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
If the code were to request an invalid input type, panic. But this never happens.&lt;br /&gt;
&lt;br /&gt;
=== RwPermissions ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type(s) || Mask || Name || Value || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000801 || CanMountLogo || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000801 || CanMountContentMeta || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000801 || CanMountContentControl || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000801 || CanMountContentManual || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000801 || CanMountContentData || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000801 || CanMountApplicationPackage || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000000000 || CanMountSaveDataStorage || 3 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000800 || CanMountContentStorage || 3 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000001000 || CanMountImageAndVideoStorage || 3 || [[#OpenImageDirectoryFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanMountCloudBackupWorkStorage || 3 || OpenCloudBackupWorkStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000000000&amp;lt;br/&amp;gt;([7.0.0-7.0.1] 0x4000000000000000)&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000084)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountCustomStorage || 3 || OpenCustomStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000084&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000008080) || CanMountBisCalibrationFile || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-6.2.0] 0x8000000000008080) || CanMountBisSafeMode || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000008080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountBisUser || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000008080&amp;lt;br/&amp;gt;([3.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanMountBisSystem || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000010) || CanMountBisSystemProperEncryption || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000200000&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000040020) || CanMountBisSystemProperPartition || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0xC000000000200000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000028) || CanMountSdCard || 3 || [[#OpenSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000000010&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000020) || CanMountGameCard || 3 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0x8000000000040020&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000020) || CanMountDeviceSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x8000000000000028&amp;lt;br/&amp;gt;([3.0.0-6.2.0] 0x8000000000000020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010082) || CanMountSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0x8000000000000020&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanMountOthersSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0x8000000000000020&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanMountOthersSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0x8000000000010082&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010080)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition1Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x8000000000010080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition2Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010080) || CanOpenBisPartitionUserDataRoot || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part1 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part2 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part3 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part4 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part5 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || 0x8000000000010080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000084)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000080) || CanOpenBisPartitionBootConfigAndPackage2Part6 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x8000000000000084&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationBinary || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0x8000000000000084&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationFile || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0x8000000000000080 || CanOpenBisPartitionSafeMode || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanOpenBisPartitionUser || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000100) || CanOpenBisPartitionSystem || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000100008) || CanOpenBisPartitionSystemProperEncryption || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000400000) || CanOpenBisPartitionSystemProperPartition || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x27 || 0xC000000000200000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000100008) || CanOpenSdCardStorage || ||&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x28 || 0x8000000000000100&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000100008)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000400000) || CanOpenGameCardStorage || 3 || [[#OpenGameCardStorage]], [[#EraseGameCard]] (bit1), [[#WriteToGameCard]] (bit1), [[#GetGameCardErrorInfo]] (bit1), [[#EraseAndWriteParamDirectly]] (bit1), [[#ReadParamDirectly]] (bit1), [[#ForceEraseGameCard]] (bit1) &lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x29 || 0x8000000000100008&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000400000)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010000) || CanMountSystemDataPrivate || 1 || [[#OpenFileSystem]], [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0xC000000000400000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010000)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanMountHost || 3 || [[#OpenHostFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x2B || 0x8000000000010000&amp;lt;br/&amp;gt;([1.0.0-6.2.0]0x8000000000000000) || CanMountRegisteredUpdatePartition || 1 || [[#OpenRegisteredUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] 0x2C || 0x8000000000000000 || CanOpenSaveDataInternalStorage || 3 || [[#OpenSaveDataInternalStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] 0x2D || 0x0000000000000000 || CanNotMountCustomStorage || 3 || OpenCustomStorageFileSystem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BoolPermissions ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type(s) || Mask || Name || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000080 || CanInvalidateBisCache || [[#InvalidateBisCache]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000080 || CanEraseMmc || [[#EraseMmc]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000010 || CanGetGameCardDeviceCertificate || [[#GetGameCardDeviceCertificate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000010 || CanGetGameCardIdSet || [[#GetGameCardIdSet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000200 || CanFinalizeGameCardDriver || [[#FinalizeGameCardDriver]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000200 || CanGetGameCardAsicInfo || [[#GetGameCardAsicInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000002020 || CanCreateSaveData || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000060 || CanDeleteSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000000028 || CanCreateSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000000000020 || CanCreateOthersSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000004028 || CanDeleteSystemSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000060 || CanOpenSaveDataInfoReader || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000004020 || CanOpenSaveDataInfoReaderForSystem || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000000040&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000020000) || CanOpenSaveDataIterator || OpenSaveDataIterator&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000020000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000400) || CanOpenSaveDataMetaFile || [[#OpenSaveDataMetaFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000400&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000004060) || CanSetCurrentPosixTime || [[#SetCurrentPosixTime]], [[#SetCurrentPosixTimeWithTimeDifference]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000004060&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000080000) || CanReadSaveDataFileSystemExtraData || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x8000000000080000 || CanSetGlobalAccessLogMode || [[#SetGlobalAccessMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000080000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] Invalid) || CanSetSpeedEmulationMode || [[#SetSpeedEmulationMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || Invalid&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000800000) || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0xC000000000800000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000001000000) || CanFillBis || [[#CreatePaddingFile]], [[#DeleteAllPaddingFiles]] &lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0xC000000001000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000001000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0xC000000002000000) || CanCorruptSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x16 || 0x8000000001000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000004000000) || CanCorruptSystemSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x17 || 0x8000000000000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0xC000000002000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000008000000) || CanVerifySaveData || [[#VerifySaveDataFileSystem]], [[#VerifySaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x18 || 0xC000000002000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000004000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000010000000) || CanDebugSaveData || [[#CreateSaveDataFileSystem]], [[#OpenSaveDataFileSystem]], [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x19 || 0x8000000004000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000008000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000800) || CanFormatSdCard || [[#FormatSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x1A || 0x8000000008000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000010000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000004020) || CanGetRightsId || [[#GetRightsId]], [[#GetRightsIdAndKeyGenerationByPath]], [[#GetRightsIdByPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1B || 0x8000000010000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000800)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000002020) || CanRegisterExternalKey || [[#RegisterExternalKey]], [[#UnregisterAllExternalKey]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1C || 0x8000000000000800&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000004020)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000028) || CanSetEncryptionSeed || [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1D || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000020000000) || SaveDataExtraData_Write0 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1E || 0x8000000000004020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000002020)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000040000000) || CanWriteSaveDataFileSystemExtraDataFlags || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1F || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000000) || SaveDataExtraData_Write1 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x20 || 0x8000000000000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000020000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000000) || CanWriteSaveDataFileSystemExtraDataAll || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x21 || 0x8000000000002020&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanExtendSaveData || [[#ExtendSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x22 || 0x8000000000000028&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000002) || CanExtendSystemSaveData || [[#ExtendSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x23 || 0x8000000020000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanRegisterUpdatePartition || [[#RegisterUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x24 || 0x8000000040000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanOpenSaveDataTransferManager || [[#OpenSaveDataTransferManager]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x25 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanOpenSaveDataTransferManagerVersion2 || [[#OpenSaveDataTransferManagerVersion2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x26 || 0x8000000200002000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080000110) || CanOpenSaveDataTransferProhibiterForCloudBackUp || [[#OpenSaveDataTransferProhibiterForCloudBackUp]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x27 || 0x8000000240002000 &amp;lt;br/&amp;gt;([6.0.0-7.0.1] 0x8000000200002000)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000100008) || CanListApplicationAccessibleSaveDataOwnerId || ListApplicationAccessibleSaveDataOwnerId&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x28 || 0x8000000000000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080010000) || CanControlMmcPatrol || [[#SuspendMmcPatrol]], [[#ResumeMmcPatrol]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x29 || 0x8000000000000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOverrideSaveDataTransferTokenSignVerificationKey || [[#OverrideSaveDataTransferTokenSignVerificationKey]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0x8000000080200000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSdCardDetectionEventNotifier || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2B || 0x8000000080000110&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenGameCardDetectionEventNotifier || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2C || 0x8000000000100008&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSystemDataUpdateEventNotifier || [[#OpenSystemDataUpdateEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2D || 0x8000000000010000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanNotifySystemDataUpdateEvent || [[#NotifySystemDataUpdateEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2E || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanOpenAccessFailureDetectionEventNotifier || [[#OpenAccessFailureResolver]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2F || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanGetAccessFailureDetectionEvent || [[#GetAccessFailureDetectionEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.1.0+] 0x30 || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080080000) || CanIsAccessFailureDetected || [[#IsAccessFailureDetected]] &lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x31 || 0x8000000100000000 || CanResolveAccessFailure || [[#ResolveAccessFailure]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x32 || 0x8000000100000000 || CanAbandonAccessFailure || [[#AbandonAccessFailure]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x33 || 0x8000000040000000 || CanQuerySaveDataInternalStorageTotalSize || [[#QuerySaveDataInternalStorageTotalSize]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x34 || 0x8000000200000020 || CanGetSaveDataCommitId || [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x35 || 0x8000000000200000 || CanSetSdCardAccessibility || [[#SetSdCardAccessibility]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x36 || 0x4000000000000000 || CanSimulateGameCardDetectionEvent || SimulateGameCardDetectionEvent, SetSimulationEvent, ClearSimulationEvent&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x37 || 0x8000000000000000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000080000) || CanSetDataStorageRedirectTarget || SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x38 || 0x8000000400000000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000000) || || [[#CreateSaveDataFileSystem]], CreateSaveDataFileSystemByHashSalt&lt;br /&gt;
|-&lt;br /&gt;
| [8.0.0+] 0x39 || 0x8000000000000010 || CanChallengeCardExistence || ChallengeCardExistence&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer (ContentPath) and a [[#FileSystemType]] as parameters. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
[2.0.0+] This function was removed.&lt;br /&gt;
&lt;br /&gt;
== SetCurrentProcess ==&lt;br /&gt;
Takes a pid-descriptor.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithPatch ==&lt;br /&gt;
Takes an input [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Web-applet loads the [[#FileSystemType]] (which must be &#039;&#039;&#039;ContentManual&#039;&#039;&#039;) from u32_table[inparam].&lt;br /&gt;
&lt;br /&gt;
Note: web-applet strings refer to both this cmd and [[#OpenFileSystemWithId]] as &amp;quot;MountContent&amp;quot;, but official nn_sf_sync symbols use &amp;quot;OpenXX&amp;quot; names.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithId ==&lt;br /&gt;
Takes a type-0x19 input buffer, an [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
The [[#IFileSystem]] must be &#039;&#039;&#039;ContentMeta&#039;&#039;&#039; if the NCA type is 0 (control).&lt;br /&gt;
&lt;br /&gt;
The input buffer is the output string path from [[NS_Services#GetApplicationContentPath|GetApplicationContentPath]].&lt;br /&gt;
&lt;br /&gt;
May return errors when attempting to access NCA-paths for an update-title with a gamecard, when the gamecard isn&#039;t inserted. May return error 0x7D402 in some cases with update-titles. Non-val2 in32 values with NCA-type1 are unusable, even for normal titles.&lt;br /&gt;
&lt;br /&gt;
The official &amp;quot;MountApplicationPackage&amp;quot; func uses this with in64=0 and [[#FileSystemType]] &#039;&#039;&#039;ApplicationPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
After the [[#FileSystemType]] specific permissions are checked, it then gets the func retval for permissions-type 0x25 and func0.&lt;br /&gt;
&lt;br /&gt;
When [[#FileSystemType]] is &#039;&#039;&#039;ContentMeta&#039;&#039;&#039;, it uses in64=0xffffffffffffffff internally, otherwise it checks if in64 is set to 0xffffffffffffffff then throws an error if so. When the in64 used internally is not 0xffffffffffffffff, it&#039;s compared with the NCA titleID, then an error is thrown on mismatch.&lt;br /&gt;
&lt;br /&gt;
== OpenBisFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer string and a u32 [[Flash_Filesystem|Bis partitionID]]. Official user-process code sets instr[0] = 0 normally. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Only partitionIDs for FAT partitions are usable with this, otherwise error 0x2EE202 is returned. Seems to be about the same as [[#OpenBisStorage]] except this mounts the partition filesystem instead of allowing direct access to the partition sectors.&lt;br /&gt;
&lt;br /&gt;
== OpenBisStorage ==&lt;br /&gt;
Takes a u32 partition ID, returns 0x2EE202 for partitions which do not exist, 0x320002 for partitions which cannot be opened and a valid [[#IStorage]] handle otherwise.&lt;br /&gt;
&lt;br /&gt;
== InvalidateBisCache ==&lt;br /&gt;
Seems to invalidate the Bis cache for MBR/GPT after overwriting that data via the OpenBisStorage IStorage. Used by [[SystemInitializer]].&lt;br /&gt;
&lt;br /&gt;
== DeleteSaveDataFileSystem ==&lt;br /&gt;
Takes an input u64.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystem ==&lt;br /&gt;
Takes a 0x40-byte Save-struct entry, a 0x40-byte SaveCreate-struct entry, and a 0x10-byte input struct.&lt;br /&gt;
&lt;br /&gt;
Only the first 0x5-bytes in the 0x10-byte struct are initialized: all-zero when automatically creating savedata during savecommon mount by official user-processes. In the dedicated save-creation code in official user-processes: +0 u32 = 0x40060, +4 u8 = 1.&lt;br /&gt;
&lt;br /&gt;
Creates regular savedata.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes a 0x40-byte Save-struct entry and a 0x40-byte SaveCreate-struct entry.&lt;br /&gt;
&lt;br /&gt;
Creates savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardStorage ==&lt;br /&gt;
Takes two input u32s (gamecard handle, partition ID), and returns an [[#IStorage]] for the [[Gamecard_Format|partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardFileSystem ==&lt;br /&gt;
Takes two input u32s, with the second u32 located at +4 in rawdata after the first u32. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts a [[Gamecard_Partition|gamecard partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystem ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte Save-struct entry. Official user-process code is only known to use value 1 for the u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Permissions aren&#039;t checked until the specified save is successfully found.&lt;br /&gt;
&lt;br /&gt;
Only one process (specifically only one [[#IFileSystem]] session) can mount a given savedata at any given time (this includes SystemSaveData).&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte Save-struct entry. Web-applet only uses value0 for the input u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraDataBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an input u64 saveID, and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraData ==&lt;br /&gt;
Takes an input u64 saveID and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReader ==&lt;br /&gt;
No input, returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReaderBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenContentStorageFileSystem ==&lt;br /&gt;
Takes a [[#ContentStorageId]]. Invalid values return 0x2EE202.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]] with NCA files. The read data from these files is identical to the data read by [[NCM_services#ReadContentIdFile]].&lt;br /&gt;
&lt;br /&gt;
== OpenCustomStorageFileSystem ==&lt;br /&gt;
Takes a [[#CustomStorageId]]. Invalid values return 0x2EE202.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]] from either User:/CustomStorage0 or Sdcard:/Nintendo/CustomStorage0. If on the SD card, an AesXtsFileSystem is created using a key source specifically for custom storage.&lt;br /&gt;
&lt;br /&gt;
== OpenDataStorageByDataId ==&lt;br /&gt;
Takes a [[#StorageId]] and a TitleID.&lt;br /&gt;
&lt;br /&gt;
Returns a [[IPC_Marshalling#Domain_message|domain object ID]] implementing the [[#IStorage]] interface for data archives.&lt;br /&gt;
&lt;br /&gt;
== OpenDeviceOperator ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IDeviceOperator]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenSdCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== VerifySaveDataFileSystem ==&lt;br /&gt;
Takes an unknown input u64 and a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
The input u64 high-byte must be non-zero, otherwise an [[Error_codes|error]] is returned(0xE02).&lt;br /&gt;
&lt;br /&gt;
== GetSaveDataCommitId ==&lt;br /&gt;
Takes an input u8 and u64, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== SetSdCardEncryptionSeed ==&lt;br /&gt;
Takes in the 0x10 byte SD card encryption seed, and loads it into FS-module state.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]]-module reads the 0x10 bytes from SdCard:/Nintendo/Contents/private, and compares them to the first 0x10 bytes of the ns_appman:/private (in [[Flash_Filesystem#System_Savegames|system savedata]] 0x8000000000000043). If they match, NS calls this command using bytes 0x10-0x20 from ns_appman:/private. The rest of this file (0x1F0 bytes total) is (usually/always?) all-zero (however in some cases the byte at offset 0x20 is value 0x1).&lt;br /&gt;
&lt;br /&gt;
== OpenAccessFailureResolver ==&lt;br /&gt;
Takes 8-bytes of input and returns an [[#IEventNotifier]].&lt;br /&gt;
&lt;br /&gt;
[8.0.0+] Now takes an additional 8-bytes of input.&lt;br /&gt;
&lt;br /&gt;
== SetSaveDataSize ==&lt;br /&gt;
Takes two input u64s &amp;quot;size&amp;quot; and &amp;quot;journal_size&amp;quot;, and writes them to fsp-srv object member variables.&lt;br /&gt;
&lt;br /&gt;
These variables are normally initialized with 32 MiB (0x2000000) and 16 MiB (0x1000000), respectively.&lt;br /&gt;
&lt;br /&gt;
These variables don&#039;t seem to be actually used anywhere else (?)&lt;br /&gt;
&lt;br /&gt;
== SetSaveDataRootPath ==&lt;br /&gt;
Takes an input path, and does snprintf(&amp;lt;fsp-srv object&amp;gt;-&amp;gt;m_save_data_root_path, FS_MAX_PATH-1, &amp;quot;/%s&amp;quot;, input_path);&lt;br /&gt;
&lt;br /&gt;
This path is normally all-zero. When this path is non-zero, the internal OpenSaveDataFileSystem function will create a DirectorySaveDataFileSystem if the target save is a user-save + a directory exists, instead of the normal savedata filesystem object.&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== GetGlobalAccessLogMode ==&lt;br /&gt;
Returns an output u32.&lt;br /&gt;
&lt;br /&gt;
GlobalAccessLogMode is normally 0.&lt;br /&gt;
&lt;br /&gt;
== OutputAccessLogToSdCard ==&lt;br /&gt;
Takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
The input buffer is the string to output to the log. User-processes normally include a newline at the end.&lt;br /&gt;
&lt;br /&gt;
User-processes only use this when the value previously loaded from [[#GetGlobalAccessLogMode]] has bit1 set.&lt;br /&gt;
&lt;br /&gt;
When bit1 in GlobalAccessLogMode is clear, FS-module will just return 0 for OutputAccessLogToSdCard. However even with that set the log doesn&#039;t show up SD, unknown why.&lt;br /&gt;
&lt;br /&gt;
The input buffer is written to the &amp;quot;$FsAccessLog:/FsAccessLog.txt&amp;quot; file, where &amp;quot;$FsAccessLog&amp;quot; is the SD-card mount-name. It&#039;s written to the current end of the file(appended).&lt;br /&gt;
&lt;br /&gt;
= IStorage =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IStorage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This is the interface for a raw device, usually a block device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Arguments&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read || Takes a type-0x46 buffer, an offset and length &lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write || Takes a type-0x45 buffer, an offset and length &lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush || None&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize || Takes a size&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize || None&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFileSystem =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystem&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There are two main implementations of this interface:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RomFS&#039;&#039;&#039;: Filesystem implementation statically linked in the binary. Uses an [[#IStorage]] interface as underlying raw device.&lt;br /&gt;
* &#039;&#039;&#039;IPC proxy&#039;&#039;&#039;: Used for all non-RomFS filesystems. In this case, actual filesystem implementation is in the FS process.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || CreateFile&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DeleteFile&lt;br /&gt;
|-&lt;br /&gt;
| 2 || CreateDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeleteDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 4 || DeleteDirectoryRecursively&lt;br /&gt;
|-&lt;br /&gt;
| 5 || RenameFile&lt;br /&gt;
|-&lt;br /&gt;
| 6 || RenameDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [[#GetEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [[#OpenFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [[#OpenDirectory]]&lt;br /&gt;
|-&lt;br /&gt;
| 10 || [[#Commit]]&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#GetFreeSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#GetTotalSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || [3.0.0+] [[#CleanDirectoryRecursively]]&lt;br /&gt;
|-&lt;br /&gt;
| 14 || [3.0.0+] [[#GetFileTimeStampRaw]]&lt;br /&gt;
|-&lt;br /&gt;
| 15 || [4.0.0+] QueryEntry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetEntryType ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns [[#DirectoryEntryType]] as an output u32.&lt;br /&gt;
&lt;br /&gt;
== OpenFile ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path, and an u32 &#039;&#039;&#039;mode&#039;&#039;&#039;. &#039;&#039;&#039;mode&#039;&#039;&#039; controls how the file is opened, based on which bits are set:&lt;br /&gt;
&lt;br /&gt;
* When bit 0 is set, the file is Readable: you can use the Read operation.&lt;br /&gt;
* When bit 1 is set, the file is Writable: you can use the Write operation.&lt;br /&gt;
* When bit 2 is set, the file is Appendable: unless this bit is set, you will not be able to write beyond the end of a file (such writes will result in an error 0x307202)&lt;br /&gt;
&lt;br /&gt;
== OpenDirectory ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and an u64 &#039;&#039;&#039;filter_flags&#039;&#039;&#039;. &#039;&#039;&#039;filter_flags&#039;&#039;&#039; controls what type of entries are read by the [[#IDirectory]]: bitmask 0x1 = directories, bitmask 0x2 = files.&lt;br /&gt;
&lt;br /&gt;
== Commit ==&lt;br /&gt;
Like [https://3dbrew.org/wiki/FS:ControlArchive 3DS], this has to be used after writing to savedata for the changes to take affect.&lt;br /&gt;
&lt;br /&gt;
== GetFreeSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total free space with this FS.&lt;br /&gt;
&lt;br /&gt;
== GetTotalSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total space available with this FS(free+used).&lt;br /&gt;
&lt;br /&gt;
== CleanDirectoryRecursively ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and clears the contents of the directory specified in the path.&lt;br /&gt;
&lt;br /&gt;
== GetFileTimeStampRaw ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path and returns a 0x20-byte struct. This contains 3 u64s and an u8.&lt;br /&gt;
&lt;br /&gt;
= IDirectory =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDirectory&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Read]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetEntryCount]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Read ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64(?) for the total number of read entries, this is 0 when no more entries are available.&lt;br /&gt;
&lt;br /&gt;
The output buffer contains the read array of [[#DirectoryEntry]]. This doesn&#039;t include entries for &amp;quot;.&amp;quot; and &amp;quot;..&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== GetEntryCount ==&lt;br /&gt;
Returns an u64 for the total number of readable entries.&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntry =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x301 || Path&lt;br /&gt;
|-&lt;br /&gt;
| 0x301 || 0x1 || File attributes (bit 0 = is directory; bit 1 = archive bit)&lt;br /&gt;
|-&lt;br /&gt;
| 0x302 || 0x2 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x304 || 0x1 || [[#DirectoryEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x305 || 0x3 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x308 || 0x8 || Filesize, 0 for directories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntryType =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntryType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
An s8 value indicating a directory entry type. The current values are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Directory&lt;br /&gt;
|-&lt;br /&gt;
| 1 || File&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFile =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFile&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataInfoReader =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataInfoReader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#ReadSaveDataInfo]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataInfo ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64 for total output entries. This buffer contains an array of [[#SaveDataInfo]].&lt;br /&gt;
&lt;br /&gt;
This is used to get [[#SaveDataInfo]] for all savedata on the system (or all savedata for the current [[#SaveDataSpaceId]]). When used multiple times, it will resume reading where it left off, until no more entries are available (in that case the out u64 is value 0).&lt;br /&gt;
&lt;br /&gt;
= IDeviceOperator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDeviceOperator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || IsSdCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GetSdCardSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [2.0.0+] GetSdCardCid&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [2.0.0+] GetSdCardUserAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [2.0.0+] GetSdCardProtectedAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [2.0.0+] GetAndClearSdCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 100 || GetMmcCid&lt;br /&gt;
|-&lt;br /&gt;
| 101 || GetMmcSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 110 || EraseMmc&lt;br /&gt;
|-&lt;br /&gt;
| 111 || GetMmcPartitionSize&lt;br /&gt;
|-&lt;br /&gt;
| 112 || [2.0.0+] GetMmcPatrolCount&lt;br /&gt;
|-&lt;br /&gt;
| 113 || [2.0.0+] GetAndClearMmcErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 114 || [2.0.0+] GetMmcExtendedCsd&lt;br /&gt;
|-&lt;br /&gt;
| 115 || [4.0.0+] SuspendMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 116 || [4.0.0+] ResumeMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 200 || IsGameCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 201 || EraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 202 || GetGameCardHandle&lt;br /&gt;
|-&lt;br /&gt;
| 203 || [[#GetGameCardUpdatePartitionInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 204 || FinalizeGameCardDriver&lt;br /&gt;
|-&lt;br /&gt;
| 205 || GetGameCardAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 206 || GetGameCardDeviceCertificate&lt;br /&gt;
|-&lt;br /&gt;
| 207 || GetGameCardAsicInfo&lt;br /&gt;
|-&lt;br /&gt;
| 208 || GetGameCardIdSet&lt;br /&gt;
|-&lt;br /&gt;
| 209 || WriteToGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 210 || SetVerifyWriteEnalbleFlag&lt;br /&gt;
|-&lt;br /&gt;
| 211 || GetGameCardImageHash&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [2.0.0+] GetGameCardDeviceIdForProdCard&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [2.0.0+] EraseAndWriteParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [2.0.0+] ReadParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [2.0.0+] ForceEraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [2.0.0+] GetGameCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [2.1.0+] GetGameCardErrorReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [3.0.0+] GetGameCardDeviceId&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [8.0.0+] ChallengeCardExistence&lt;br /&gt;
|-&lt;br /&gt;
| 300 || SetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 301 || GetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [5.0.0+] SuspendSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 401 || [5.0.0+] ResumeSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 402 || [6.0.0+] GetSdmmcConnectionStatus (Takes a total of 4-bytes of input, returns a total of 8-bytes of output)&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [6.0.0+] SetSimulationEvent (Takes a total of 0x14-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [6.0.0+] ClearSimulationEvent (Takes a total of 4-bytes of input, no output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetGameCardUpdatePartitionInfo ==&lt;br /&gt;
Returns a titleID and the title-version for it.&lt;br /&gt;
&lt;br /&gt;
* Output u32 with ARMS-gamecard: title-version v131162. This is the title-version for [[2.1.0]], which is the sysupdate included with this gamecard. Launch-day gamecards return title-version v450.&lt;br /&gt;
* Output u64 with ARMS-gamecard: titleID 0100000000000816.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]] appears to only use this with [[Content_Manager_services#GetTitleIdInfo]] and [[Content_Manager_services#GetUpdateTitleList]] with storageid=nandsys, for checking whether a sysupdate is required.&lt;br /&gt;
&lt;br /&gt;
= IEventNotifier =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IEventNotifier&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || GetEventHandle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManager =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManager&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetToken]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataImporter]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== SetToken ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64, returns an [[#ISaveDataExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x10-byte userID, and a type-0x5 input buffer. Returns an output u64 and an [[#ISaveDataImporter]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Pull]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#PullInitialData]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataExporter constructor. This is used automatically after [[#OpenSaveDataExporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Pull ==&lt;br /&gt;
Takes a type-0x6 output buffer, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== PullInitialData ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Push]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#Finalize]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataImporter constructor. This is used automatically after [[#OpenSaveDataImporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Push ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== Finalize ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManagerWithDivision =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManagerWithDivision&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetKeySeedPackage]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataFullExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [[#OpenSaveDataDiffExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] [[#OpenSaveDataExporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataFullImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [[#OpenSaveDataDiffImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] [[#OpenSaveDataDuplicateDiffImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] [[#OpenSaveDataImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] [[#OpenSaveDataImporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [6.0.0+] [[#CancelSuspendingImport]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer containing the &#039;&#039;&#039;Challenge&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== SetKeySeedPackage ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer containing the &#039;&#039;&#039;KeySeedPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFullExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFullImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], a 0x10-byte userID, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]], returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDuplicateDiffImporter ==&lt;br /&gt;
Takes an input u8 and an u64, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8, an u8(bool), a 0x10-byte struct, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== CancelSuspendingImport ==&lt;br /&gt;
Takes an input u64 and a 0x10-byte struct, no output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SetDivisionCount (Takes an input u32, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [6.0.0+] GetSaveDataInfo (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || OpenSaveDataDiffChunkIterator (No input, returns an [[#ISaveDataChunkIterator]])&lt;br /&gt;
|-&lt;br /&gt;
| 48 || OpenSaveDataChunkExporter (Takes an input u32, returns an [[#ISaveDataChunkExporter]])&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] FinalizeFullExport (No input, returns two 0x10-byte output structs)&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [6.0.0+] FinalizeDiffExport (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] CancelExport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] SuspendExport (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [6.0.0+] GetKeySeed (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 71 || [6.0.0+] GetInitialDataMac (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 72 || [6.0.0+] FinalizeExport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] GetImportInitialDataAad (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [6.0.0+] SetExportInitialDataAad (Takes an input 0x20-byte struct, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 96 || [6.0.0+] GetReportInfo (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [6.0.0+] GetSaveDataInfo (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || OpenSaveDataDiffChunkIterator (No input, returns an [[#ISaveDataChunkIterator]])&lt;br /&gt;
|-&lt;br /&gt;
| 32 || InitializeImport (No input, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
| 33 || FinalizeImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] CancelImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] GetImportContext (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 36 || [6.0.0+] SuspendImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 48 || OpenSaveDataChunkImporter (Takes an input u32, returns an [[#ISaveDataChunkImporter]])&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] GetImportInitialDataAad (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] GetReportInfo (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkIterator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkIterator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Next (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || IsEnd (No input, returns an output u8)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || GetId (No input, returns an output u32)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Pull (Takes an input u64 and a type-0x6 output buffer, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [6.0.0+] GetRestRawDataSize (No input, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Push (Takes an input u64 and a type-0x5 input buffer, no output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferProhibiter =&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t seem to handle any commands (?).&lt;br /&gt;
&lt;br /&gt;
= IMultiCommitManager =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || ? (Takes an input [[#IFilesystem]], no output)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || ? (No input/output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
= FileSystemType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Code&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Data&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Logo&lt;br /&gt;
|-&lt;br /&gt;
| 3 || ContentControl&lt;br /&gt;
|-&lt;br /&gt;
| 4 || ContentManual&lt;br /&gt;
|-&lt;br /&gt;
| 5 || ContentMeta&lt;br /&gt;
|-&lt;br /&gt;
| 6 || ContentData&lt;br /&gt;
|-&lt;br /&gt;
| 7 || ApplicationPackage&lt;br /&gt;
|-&lt;br /&gt;
| 8 || RegisteredUpdate&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= StorageId =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || None&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GameCard&lt;br /&gt;
|-&lt;br /&gt;
| 3 || NandSystem&lt;br /&gt;
|-&lt;br /&gt;
| 4 || NandUser&lt;br /&gt;
|-&lt;br /&gt;
| 5 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::ContentStorageId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataSpaceId =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataSpaceId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdSystem&lt;br /&gt;
|-&lt;br /&gt;
| 100 || [3.0.0+] ProperSystem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Determines the storage where the savedata is stored.&lt;br /&gt;
&lt;br /&gt;
= SaveDataType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SystemSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SaveData&lt;br /&gt;
|-&lt;br /&gt;
| 2 || BcatDeliveryCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeviceSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [3.0.0+] TemporaryStorage&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [3.0.0+] CacheStorage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ImageDirectoryId =&lt;br /&gt;
This is &amp;quot;nn::fs::ImageDirectoryId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= CloudBackupWorkStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::CloudBackupWorkStorageId&amp;quot;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= CustomStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::CustomStorageId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentPath =&lt;br /&gt;
These are the 0x300 paths to NCA files for the various filesystems FS can access, beginning with @. They&#039;re passed via X descriptors, and returned via various [[Location Resolver services|ncm/lr]] commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Path || Notes&lt;br /&gt;
|-&lt;br /&gt;
| @SystemContent ||&lt;br /&gt;
|- &lt;br /&gt;
| @UserContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @SdCardContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @CalibFile ||&lt;br /&gt;
|-&lt;br /&gt;
| @Safe ||&lt;br /&gt;
|-&lt;br /&gt;
| @User ||&lt;br /&gt;
|-&lt;br /&gt;
| @System ||&lt;br /&gt;
|-&lt;br /&gt;
| @Sdcard ||&lt;br /&gt;
|-&lt;br /&gt;
| @Host ||&lt;br /&gt;
|-&lt;br /&gt;
| @GcApp || Gamecard App partition (Partition 2)&lt;br /&gt;
|-&lt;br /&gt;
| @GcXYYYYYYYY || Gamecard Contents. X is the partition type (U - Update, N - Normal, S - Secure). Y is the gamecard handle as a 32-bit hex value &lt;br /&gt;
|-&lt;br /&gt;
| @upp || Gamecard update partition (Partition 0)&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] @RegUpdate || Registered update partition&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Save Struct =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataAttribute&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData. SaveData: 0 can be used for accessing the savedata associated with the current FS session titleID, otherwise when set this is the titleID associated with the savedata to access.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x10&lt;br /&gt;
| userID for user-specific savedata(saveuser) when set, otherwise when zero this indicates the common savedata(savecommon). This is loaded from [[Account_services]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| u64 [[Flash_Filesystem|saveID]]. 0 for SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21&lt;br /&gt;
| 0x1&lt;br /&gt;
| Save data &#039;rank&#039; or &#039;precedence&#039;. 0 if this save data is considered the primary save data. 1 if it&#039;s considered the secondary save data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x22&lt;br /&gt;
| 0x2&lt;br /&gt;
| Save data index&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
For DeviceSaveData, this struct is all-zero except for the [[#SaveDataType]] field.&lt;br /&gt;
&lt;br /&gt;
= SaveCreate Struct =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data journal size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data block size. 0x4000 for SystemSaveData/SaveData/DeviceSaveData/BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data owner id. Official user-processes only uses 0 here for SystemSaveData/SaveData. For the dedicated save-creation code with SaveData/DeviceSaveData, this value comes from an input param with official user-processes. For BcatSaveData, this is the hard-coded [[Title_list|titleID]] of the bcat-sysmodule.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4&lt;br /&gt;
| Save data flags. Written using an input param for official user-processes. Hard-coded 0 for BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataSpaceId]]. Official user-processes only uses 0 here for SystemSaveData, 1 for SaveData/DeviceSaveData/BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25&lt;br /&gt;
| 0x1&lt;br /&gt;
| Unknown. 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x1A&lt;br /&gt;
| Not initialized for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
= DeviceSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8, the only difference compared to SaveData is the Save-struct.&lt;br /&gt;
&lt;br /&gt;
= BcatSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8. The Save-struct is the same as DeviceSaveData, except that the titleID field is set to &amp;lt;input titleID&amp;gt;. See above regarding SaveCreate-struct.&lt;br /&gt;
&lt;br /&gt;
The 0x10-byte struct passed to [[#CreateSaveDataFileSystem]] has the first 0x5-bytes set to all-zero.&lt;br /&gt;
&lt;br /&gt;
= SaveDataInfo =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Unknown saveID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA&lt;br /&gt;
| 0x6&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| userID&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x8&lt;br /&gt;
| saveID, 0 for regular SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| Application titleID, for regular SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| Raw saveimage size&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x2&lt;br /&gt;
| Save data index&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A&lt;br /&gt;
| 0x1&lt;br /&gt;
| Save data &#039;rank&#039; or &#039;precedence&#039;. 0 if this save data is considered the primary save data. 1 if it&#039;s considered the secondary save data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B&lt;br /&gt;
| 0x25&lt;br /&gt;
| Unknown. Usually zeros?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a 0x60-byte struct.&lt;br /&gt;
&lt;br /&gt;
= SaveDataFileSystemExtraData =&lt;br /&gt;
This is a 0x200-byte struct. Appears to match [[Savegames#Extra_data]].&lt;br /&gt;
&lt;br /&gt;
= InitialDataVersion2 =&lt;br /&gt;
This is a 0x8210-byte struct used by [[#ISaveDataTransferManagerWithDivision]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=7436</id>
		<title>Filesystem services</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=7436"/>
		<updated>2019-08-17T02:41:26Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* ContentPath */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= fsp-ldr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxyForLoader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Arguments || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || OpenCodeFileSystem || u64 TitleId + X descriptor [[#ContentPath]] || Returns an [[#IFileSystem]].&lt;br /&gt;
|-&lt;br /&gt;
| 1 || IsArchivedProgram || u64 ProcessId || Returns a bool (1 if the process id&#039;s [[#ContentPath]] ends in &amp;quot;.nca&amp;quot;).&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] SetCurrentProcess || PID descriptor ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= fsp-pr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IProgramRegistry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#RegisterProgram]] ||&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#UnregisterProgram]] ||&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] SetCurrentProcess ||&lt;br /&gt;
|-&lt;br /&gt;
| 256 || [[#SetEnabledProgramVerification]] ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== RegisterProgram ==&lt;br /&gt;
Takes a storageID, a pid, a titleID, a 0x1C type-A buffer for the [[NPDM#FS_Access_Header| FS Access Header]], and a 0x2C type-A buffer for the [[NPDM#FS_Access_Control| FS Access Control]]&lt;br /&gt;
&lt;br /&gt;
Final FS permissions are stored as (ACI0_perms &amp;amp; ACID_perms). Will panic(svcBreak) when buffer sizes from ipc-rawdata are invalid.&lt;br /&gt;
&lt;br /&gt;
== UnregisterProgram ==&lt;br /&gt;
Takes a pid. Removes registered FS permissions for that PID.&lt;br /&gt;
&lt;br /&gt;
== SetEnabledProgramVerification ==&lt;br /&gt;
Seems to sets a global flag to inputval &amp;amp; 1.&lt;br /&gt;
&lt;br /&gt;
When the flag is zero, it will set ret=0 instead of ret={error} when verifying the fixed-key [[NPDM]] ACID signature fails. This also skips verifying the [[NCA_Format|NCA Header]] signature using the ACID key. Note that if verifying the fixed-key ACID signature is successful, and verifying the ACID-key NCA header signature fails, it will throw an error and abort.&lt;br /&gt;
&lt;br /&gt;
= fsp-srv =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxy&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [1.0.0] [[#OpenFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#SetCurrentProcess]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || OpenDataFileSystemByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [2.0.0+] [[#OpenFileSystemWithPatch]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [2.0.0+] [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [3.0.0+] OpenDataFileSystemByApplicationId&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || InvalidateBisCache&lt;br /&gt;
|-&lt;br /&gt;
| 17 || OpenHostFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 18 || OpenSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 19 || [2.0.0+] FormatSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 21 || [[#DeleteSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 22 || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 23 || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 24 || RegisterSaveDataFileSystemAtomicDeletion&lt;br /&gt;
|-&lt;br /&gt;
| 25 || [2.0.0+] DeleteSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 26 || [2.0.0+] FormatSdCardDryRun&lt;br /&gt;
|-&lt;br /&gt;
| 27 || [2.0.0+] IsExFatSupported&lt;br /&gt;
|-&lt;br /&gt;
| 28 || [4.0.0+] DeleteSaveDataFileSystemBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 30 || [[#OpenGameCardStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 31 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [3.0.0+] ExtendSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [5.0.0+] DeleteCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [5.0.0+] GetCacheStorageSize&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] CreateSaveDataFileSystemByHashSalt (Unofficial name, takes a total of 0xB0-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 51 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 52 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 53 || [2.0.0+] OpenReadOnlySaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 57 || [3.0.0+] [[#ReadSaveDataFileSystemExtraDataBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 58 || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 59 || [2.0.0+] WriteSaveDataFileSystemExtraData&lt;br /&gt;
|-&lt;br /&gt;
| 60 || [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 61 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 62 || [5.0.0+] OpenCacheStorageList&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [5.0.0+] OpenSaveDataInternalStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [5.0.0+] UpdateSaveDataMacForDebug&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [5.0.0+] WriteSaveDataFileSystemExtraData2&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] FindSaveDataWithFilter (Takes a total of 0x50-bytes of input, returns 8-bytes of output, and a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] OpenSaveDataIterator (Takes a total of 0x50-bytes of input, returns an #ISaveDataInfoReader)&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [8.0.0+] ReadSaveDataFileSystemExtraDataBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [8.0.0+] WriteSaveDataFileSystemExtraDataBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 80 || OpenSaveDataMetaFile&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [4.0.0+] OpenSaveDataTransferManager (No input, returns an [[#ISaveDataTransferManager]])&lt;br /&gt;
|-&lt;br /&gt;
| 82 || [5.0.0+] OpenSaveDataTransferManagerVersion2 (No input, returns an [[#ISaveDataTransferManagerWithDivision]])&lt;br /&gt;
|-&lt;br /&gt;
| 83 || [6.0.0+] OpenSaveDataTransferProhibiterForCloudBackUp (Takes an input u64, returns an [[#ISaveDataTransferProhibiter]])&lt;br /&gt;
|-&lt;br /&gt;
| 84 || [6.0.0+] ListApplicationAccessibleSaveDataOwnerId (Takes a total of 0x10-bytes of input, returns 4-bytes of output, and a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 100 || OpenImageDirectoryFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 110 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 120 || [6.0.0+] OpenCloudBackupWorkStorageFileSystem (Takes 4-bytes of input, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 130 || [7.0.0+] OpenCustomStorageFileSystem (Takes 4-bytes of input, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 200 || OpenDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 201 || [3.0.0+] OpenDataStorageByProgramId&lt;br /&gt;
|-&lt;br /&gt;
| 202 || [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 203 || OpenPatchDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 204 || [7.0.0+] OpenDataFileSystemByProgramIndex (Takes an input u8, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 205 || [7.0.0+] OpenDataStorageByProgramIndex (Takes an input u8, returns an [[#IStorage]])&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [[#OpenDeviceOperator]]&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 510 || [5.0.0+] OpenSystemDataUpdateEventNotifier&lt;br /&gt;
|-&lt;br /&gt;
| 511 || [5.0.0+] NotifySystemDataUpdateEvent&lt;br /&gt;
|-&lt;br /&gt;
| 520 || [6.0.0+] SimulateGameCardDetectionEvent (Takes a total of 0xC-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 600 || [1.0.0-3.0.2] SetCurrentPosixTime&lt;br /&gt;
|-&lt;br /&gt;
| 601 || QuerySaveDataTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 602 || [[#VerifySaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 603 || CorruptSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 604 || CreatePaddingFile&lt;br /&gt;
|-&lt;br /&gt;
| 605 || DeleteAllPaddingFiles&lt;br /&gt;
|-&lt;br /&gt;
| 606 || [2.0.0+] GetRightsId&lt;br /&gt;
|-&lt;br /&gt;
| 607 || [2.0.0+] RegisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 608 || [2.0.0+] UnregisterAllExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 609 || [2.0.0+] GetRightsIdByPath&lt;br /&gt;
|-&lt;br /&gt;
| 610 || [3.0.0+] GetRightsIdAndKeyGenerationByPath&lt;br /&gt;
|-&lt;br /&gt;
| 611 || [4.0.0+] SetCurrentPosixTimeWithTimeDifference&lt;br /&gt;
|-&lt;br /&gt;
| 612 || [4.0.0+] GetFreeSpaceSizeForSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 613 || [4.0.0+] VerifySaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 614 || [4.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 615 || [5.0.0+] QuerySaveDataInternalStorageTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 616 || [6.0.0+] [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| 617 || [7.0.0+] UnregisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 620 || [2.0.0+] [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| 630 || [4.0.0+] SetSdCardAccessibility&lt;br /&gt;
|-&lt;br /&gt;
| 631 || [4.0.0+] IsSdCardAccessible&lt;br /&gt;
|-&lt;br /&gt;
| 640 || [4.0.0-7.0.1] IsSignedSystemPartitionOnSdCardValid&lt;br /&gt;
|-&lt;br /&gt;
| 700 || [5.0.0+] [[#OpenAccessFailureResolver]]&lt;br /&gt;
|-&lt;br /&gt;
| 701 || [5.0.0+] GetAccessFailureDetectionEvent&lt;br /&gt;
|-&lt;br /&gt;
| 702 || [5.0.0+] IsAccessFailureDetected&lt;br /&gt;
|-&lt;br /&gt;
| 710 || [5.0.0+] ResolveAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 720 || [5.0.0+] AbandonAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [2.0.0+] GetAndClearFileSystemProxyErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [7.0.0+] RegisterProgramIndexMapInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1000 || SetBisRootForHost&lt;br /&gt;
|-&lt;br /&gt;
| 1001 || [[#SetSaveDataSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1002 || [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| 1003 || DisableAutoSaveDataCreation&lt;br /&gt;
|-&lt;br /&gt;
| 1004 || [[#SetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1005 || [[#GetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1006 || [[#OutputAccessLogToSdCard]]&lt;br /&gt;
|-&lt;br /&gt;
| 1007 || [4.0.0+] RegisterUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1008 || [4.0.0+] OpenRegisteredUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1009 || [4.0.0+] GetAndClearMemoryReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1010 || [5.1.0-6.2.0] SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| 1011 || [7.0.0+] GetAccessLogVersionInfo (Unofficial name, no input, returns two 32-bit values &amp;quot;version&amp;quot; and &amp;quot;program_index&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 1100 || [4.0.0+] OverrideSaveDataTransferTokenSignVerificationKey&lt;br /&gt;
|-&lt;br /&gt;
| 1110 || [6.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId2&lt;br /&gt;
|-&lt;br /&gt;
| 1200 || [6.0.0+] OpenMultiCommitManager (No input, returns an output #IMultiCommitManager)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
Every time permissions are checked, the process registration [[#fsp-pr]] is loaded using the session processID. The permission data is populated with data from the [[NPDM]].&lt;br /&gt;
&lt;br /&gt;
If the processID is &amp;lt;= 6 (which happens only for built-in sysmodules), it will use a hardcoded registration data. The default mask in this case is 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
Note that the functions check whether or not at least one bit is set in the mask. This means that, you don&#039;t need to set 0xFFFFFFFFFFFFFFFF to get all permissions: it suffices to set 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
If the code were to request an invalid input type, panic. But this never happens.&lt;br /&gt;
&lt;br /&gt;
=== RwPermissions ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type(s) || Mask || Name || Value || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000801 || CanMountLogo || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000801 || CanMountContentMeta || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000801 || CanMountContentControl || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000801 || CanMountContentManual || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000801 || CanMountContentData || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000801 || CanMountApplicationPackage || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000000000 || CanMountSaveDataStorage || 3 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000800 || CanMountContentStorage || 3 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000001000 || CanMountImageAndVideoStorage || 3 || [[#OpenImageDirectoryFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanMountCloudBackupWorkStorage || 3 || OpenCloudBackupWorkStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000000000&amp;lt;br/&amp;gt;([7.0.0-7.0.1] 0x4000000000000000)&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000084)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountCustomStorage || 3 || OpenCustomStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000084&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000008080) || CanMountBisCalibrationFile || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-6.2.0] 0x8000000000008080) || CanMountBisSafeMode || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000008080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountBisUser || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000008080&amp;lt;br/&amp;gt;([3.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanMountBisSystem || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000010) || CanMountBisSystemProperEncryption || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000200000&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000040020) || CanMountBisSystemProperPartition || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0xC000000000200000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000028) || CanMountSdCard || 3 || [[#OpenSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000000010&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000020) || CanMountGameCard || 3 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0x8000000000040020&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000020) || CanMountDeviceSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x8000000000000028&amp;lt;br/&amp;gt;([3.0.0-6.2.0] 0x8000000000000020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010082) || CanMountSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0x8000000000000020&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanMountOthersSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0x8000000000000020&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanMountOthersSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0x8000000000010082&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010080)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition1Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x8000000000010080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition2Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010080) || CanOpenBisPartitionUserDataRoot || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part1 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part2 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part3 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part4 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part5 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || 0x8000000000010080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000084)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000080) || CanOpenBisPartitionBootConfigAndPackage2Part6 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x8000000000000084&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationBinary || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0x8000000000000084&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationFile || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0x8000000000000080 || CanOpenBisPartitionSafeMode || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanOpenBisPartitionUser || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000100) || CanOpenBisPartitionSystem || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000100008) || CanOpenBisPartitionSystemProperEncryption || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000400000) || CanOpenBisPartitionSystemProperPartition || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x27 || 0xC000000000200000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000100008) || CanOpenSdCardStorage || ||&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x28 || 0x8000000000000100&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000100008)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000400000) || CanOpenGameCardStorage || 3 || [[#OpenGameCardStorage]], [[#EraseGameCard]] (bit1), [[#WriteToGameCard]] (bit1), [[#GetGameCardErrorInfo]] (bit1), [[#EraseAndWriteParamDirectly]] (bit1), [[#ReadParamDirectly]] (bit1), [[#ForceEraseGameCard]] (bit1) &lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x29 || 0x8000000000100008&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000400000)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010000) || CanMountSystemDataPrivate || 1 || [[#OpenFileSystem]], [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0xC000000000400000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010000)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanMountHost || 3 || [[#OpenHostFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x2B || 0x8000000000010000&amp;lt;br/&amp;gt;([1.0.0-6.2.0]0x8000000000000000) || CanMountRegisteredUpdatePartition || 1 || [[#OpenRegisteredUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] 0x2C || 0x8000000000000000 || CanOpenSaveDataInternalStorage || 3 || [[#OpenSaveDataInternalStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] 0x2D || 0x0000000000000000 || CanNotMountCustomStorage || 3 || OpenCustomStorageFileSystem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BoolPermissions ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type(s) || Mask || Name || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000080 || CanInvalidateBisCache || [[#InvalidateBisCache]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000080 || CanEraseMmc || [[#EraseMmc]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000010 || CanGetGameCardDeviceCertificate || [[#GetGameCardDeviceCertificate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000010 || CanGetGameCardIdSet || [[#GetGameCardIdSet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000200 || CanFinalizeGameCardDriver || [[#FinalizeGameCardDriver]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000200 || CanGetGameCardAsicInfo || [[#GetGameCardAsicInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000002020 || CanCreateSaveData || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000060 || CanDeleteSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000000028 || CanCreateSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000000000020 || CanCreateOthersSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000004028 || CanDeleteSystemSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000060 || CanOpenSaveDataInfoReader || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000004020 || CanOpenSaveDataInfoReaderForSystem || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000000040&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000020000) || CanOpenSaveDataIterator || OpenSaveDataIterator&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000020000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000400) || CanOpenSaveDataMetaFile || [[#OpenSaveDataMetaFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000400&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000004060) || CanSetCurrentPosixTime || [[#SetCurrentPosixTime]], [[#SetCurrentPosixTimeWithTimeDifference]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000004060&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000080000) || CanReadSaveDataFileSystemExtraData || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x8000000000080000 || CanSetGlobalAccessLogMode || [[#SetGlobalAccessMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000080000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] Invalid) || CanSetSpeedEmulationMode || [[#SetSpeedEmulationMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || Invalid&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000800000) || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0xC000000000800000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000001000000) || CanFillBis || [[#CreatePaddingFile]], [[#DeleteAllPaddingFiles]] &lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0xC000000001000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000001000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0xC000000002000000) || CanCorruptSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x16 || 0x8000000001000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000004000000) || CanCorruptSystemSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x17 || 0x8000000000000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0xC000000002000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000008000000) || CanVerifySaveData || [[#VerifySaveDataFileSystem]], [[#VerifySaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x18 || 0xC000000002000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000004000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000010000000) || CanDebugSaveData || [[#CreateSaveDataFileSystem]], [[#OpenSaveDataFileSystem]], [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x19 || 0x8000000004000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000008000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000800) || CanFormatSdCard || [[#FormatSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x1A || 0x8000000008000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000010000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000004020) || CanGetRightsId || [[#GetRightsId]], [[#GetRightsIdAndKeyGenerationByPath]], [[#GetRightsIdByPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1B || 0x8000000010000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000800)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000002020) || CanRegisterExternalKey || [[#RegisterExternalKey]], [[#UnregisterAllExternalKey]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1C || 0x8000000000000800&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000004020)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000028) || CanSetEncryptionSeed || [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1D || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000020000000) || SaveDataExtraData_Write0 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1E || 0x8000000000004020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000002020)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000040000000) || CanWriteSaveDataFileSystemExtraDataFlags || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1F || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000000) || SaveDataExtraData_Write1 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x20 || 0x8000000000000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000020000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000000) || CanWriteSaveDataFileSystemExtraDataAll || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x21 || 0x8000000000002020&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanExtendSaveData || [[#ExtendSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x22 || 0x8000000000000028&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000002) || CanExtendSystemSaveData || [[#ExtendSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x23 || 0x8000000020000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanRegisterUpdatePartition || [[#RegisterUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x24 || 0x8000000040000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanOpenSaveDataTransferManager || [[#OpenSaveDataTransferManager]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x25 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanOpenSaveDataTransferManagerVersion2 || [[#OpenSaveDataTransferManagerVersion2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x26 || 0x8000000200002000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080000110) || CanOpenSaveDataTransferProhibiterForCloudBackUp || [[#OpenSaveDataTransferProhibiterForCloudBackUp]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x27 || 0x8000000240002000 &amp;lt;br/&amp;gt;([6.0.0-7.0.1] 0x8000000200002000)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000100008) || CanListApplicationAccessibleSaveDataOwnerId || ListApplicationAccessibleSaveDataOwnerId&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x28 || 0x8000000000000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080010000) || CanControlMmcPatrol || [[#SuspendMmcPatrol]], [[#ResumeMmcPatrol]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x29 || 0x8000000000000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOverrideSaveDataTransferTokenSignVerificationKey || [[#OverrideSaveDataTransferTokenSignVerificationKey]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0x8000000080200000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSdCardDetectionEventNotifier || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2B || 0x8000000080000110&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenGameCardDetectionEventNotifier || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2C || 0x8000000000100008&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSystemDataUpdateEventNotifier || [[#OpenSystemDataUpdateEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2D || 0x8000000000010000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanNotifySystemDataUpdateEvent || [[#NotifySystemDataUpdateEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2E || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanOpenAccessFailureDetectionEventNotifier || [[#OpenAccessFailureResolver]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2F || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanGetAccessFailureDetectionEvent || [[#GetAccessFailureDetectionEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.1.0+] 0x30 || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080080000) || CanIsAccessFailureDetected || [[#IsAccessFailureDetected]] &lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x31 || 0x8000000100000000 || CanResolveAccessFailure || [[#ResolveAccessFailure]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x32 || 0x8000000100000000 || CanAbandonAccessFailure || [[#AbandonAccessFailure]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x33 || 0x8000000040000000 || CanQuerySaveDataInternalStorageTotalSize || [[#QuerySaveDataInternalStorageTotalSize]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x34 || 0x8000000200000020 || CanGetSaveDataCommitId || [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x35 || 0x8000000000200000 || CanSetSdCardAccessibility || [[#SetSdCardAccessibility]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x36 || 0x4000000000000000 || CanSimulateGameCardDetectionEvent || SimulateGameCardDetectionEvent, SetSimulationEvent, ClearSimulationEvent&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x37 || 0x8000000000000000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000080000) || CanSetDataStorageRedirectTarget || SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x38 || 0x8000000400000000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000000) || || [[#CreateSaveDataFileSystem]], CreateSaveDataFileSystemByHashSalt&lt;br /&gt;
|-&lt;br /&gt;
| [8.0.0+] 0x39 || 0x8000000000000010 || CanChallengeCardExistence || ChallengeCardExistence&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer (ContentPath) and a [[#FileSystemType]] as parameters. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
[2.0.0+] This function was removed.&lt;br /&gt;
&lt;br /&gt;
== SetCurrentProcess ==&lt;br /&gt;
Takes a pid-descriptor.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithPatch ==&lt;br /&gt;
Takes an input [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Web-applet loads the [[#FileSystemType]] (which must be &#039;&#039;&#039;ContentManual&#039;&#039;&#039;) from u32_table[inparam].&lt;br /&gt;
&lt;br /&gt;
Note: web-applet strings refer to both this cmd and [[#OpenFileSystemWithId]] as &amp;quot;MountContent&amp;quot;, but official nn_sf_sync symbols use &amp;quot;OpenXX&amp;quot; names.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithId ==&lt;br /&gt;
Takes a type-0x19 input buffer, an [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
The [[#IFileSystem]] must be &#039;&#039;&#039;ContentMeta&#039;&#039;&#039; if the NCA type is 0 (control).&lt;br /&gt;
&lt;br /&gt;
The input buffer is the output string path from [[NS_Services#GetApplicationContentPath|GetApplicationContentPath]].&lt;br /&gt;
&lt;br /&gt;
May return errors when attempting to access NCA-paths for an update-title with a gamecard, when the gamecard isn&#039;t inserted. May return error 0x7D402 in some cases with update-titles. Non-val2 in32 values with NCA-type1 are unusable, even for normal titles.&lt;br /&gt;
&lt;br /&gt;
The official &amp;quot;MountApplicationPackage&amp;quot; func uses this with in64=0 and [[#FileSystemType]] &#039;&#039;&#039;ApplicationPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
After the [[#FileSystemType]] specific permissions are checked, it then gets the func retval for permissions-type 0x25 and func0.&lt;br /&gt;
&lt;br /&gt;
When [[#FileSystemType]] is &#039;&#039;&#039;ContentMeta&#039;&#039;&#039;, it uses in64=0xffffffffffffffff internally, otherwise it checks if in64 is set to 0xffffffffffffffff then throws an error if so. When the in64 used internally is not 0xffffffffffffffff, it&#039;s compared with the NCA titleID, then an error is thrown on mismatch.&lt;br /&gt;
&lt;br /&gt;
== OpenBisFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer string and a u32 [[Flash_Filesystem|Bis partitionID]]. Official user-process code sets instr[0] = 0 normally. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Only partitionIDs for FAT partitions are usable with this, otherwise error 0x2EE202 is returned. Seems to be about the same as [[#OpenBisStorage]] except this mounts the partition filesystem instead of allowing direct access to the partition sectors.&lt;br /&gt;
&lt;br /&gt;
== OpenBisStorage ==&lt;br /&gt;
Takes a u32 partition ID, returns 0x2EE202 for partitions which do not exist, 0x320002 for partitions which cannot be opened and a valid [[#IStorage]] handle otherwise.&lt;br /&gt;
&lt;br /&gt;
== InvalidateBisCache ==&lt;br /&gt;
Seems to invalidate the Bis cache for MBR/GPT after overwriting that data via the OpenBisStorage IStorage. Used by [[SystemInitializer]].&lt;br /&gt;
&lt;br /&gt;
== DeleteSaveDataFileSystem ==&lt;br /&gt;
Takes an input u64.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystem ==&lt;br /&gt;
Takes a 0x40-byte Save-struct entry, a 0x40-byte SaveCreate-struct entry, and a 0x10-byte input struct.&lt;br /&gt;
&lt;br /&gt;
Only the first 0x5-bytes in the 0x10-byte struct are initialized: all-zero when automatically creating savedata during savecommon mount by official user-processes. In the dedicated save-creation code in official user-processes: +0 u32 = 0x40060, +4 u8 = 1.&lt;br /&gt;
&lt;br /&gt;
Creates regular savedata.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes a 0x40-byte Save-struct entry and a 0x40-byte SaveCreate-struct entry.&lt;br /&gt;
&lt;br /&gt;
Creates savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardStorage ==&lt;br /&gt;
Takes two input u32s (gamecard handle, partition ID), and returns an [[#IStorage]] for the [[Gamecard_Format|partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardFileSystem ==&lt;br /&gt;
Takes two input u32s, with the second u32 located at +4 in rawdata after the first u32. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts a [[Gamecard_Partition|gamecard partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystem ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte Save-struct entry. Official user-process code is only known to use value 1 for the u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Permissions aren&#039;t checked until the specified save is successfully found.&lt;br /&gt;
&lt;br /&gt;
Only one process (specifically only one [[#IFileSystem]] session) can mount a given savedata at any given time (this includes SystemSaveData).&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte Save-struct entry. Web-applet only uses value0 for the input u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraDataBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an input u64 saveID, and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraData ==&lt;br /&gt;
Takes an input u64 saveID and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReader ==&lt;br /&gt;
No input, returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReaderBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenContentStorageFileSystem ==&lt;br /&gt;
Takes a [[#ContentStorageId]]. Invalid values return 0x2EE202.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]] with NCA files. The read data from these files is identical to the data read by [[NCM_services#ReadContentIdFile]].&lt;br /&gt;
&lt;br /&gt;
== OpenCustomStorageFileSystem ==&lt;br /&gt;
Takes a [[#CustomStorageId]]. Invalid values return 0x2EE202.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]] from either User:/CustomStorage0 or Sdcard:/Nintendo/CustomStorage0. If on the SD card, an AesXtsFileSystem is created using a key source specifically for custom storage.&lt;br /&gt;
&lt;br /&gt;
== OpenDataStorageByDataId ==&lt;br /&gt;
Takes a [[#StorageId]] and a TitleID.&lt;br /&gt;
&lt;br /&gt;
Returns a [[IPC_Marshalling#Domain_message|domain object ID]] implementing the [[#IStorage]] interface for data archives.&lt;br /&gt;
&lt;br /&gt;
== OpenDeviceOperator ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IDeviceOperator]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenSdCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== VerifySaveDataFileSystem ==&lt;br /&gt;
Takes an unknown input u64 and a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
The input u64 high-byte must be non-zero, otherwise an [[Error_codes|error]] is returned(0xE02).&lt;br /&gt;
&lt;br /&gt;
== GetSaveDataCommitId ==&lt;br /&gt;
Takes an input u8 and u64, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== SetSdCardEncryptionSeed ==&lt;br /&gt;
Takes in the 0x10 byte SD card encryption seed, and loads it into FS-module state.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]]-module reads the 0x10 bytes from SdCard:/Nintendo/Contents/private, and compares them to the first 0x10 bytes of the ns_appman:/private (in [[Flash_Filesystem#System_Savegames|system savedata]] 0x8000000000000043). If they match, NS calls this command using bytes 0x10-0x20 from ns_appman:/private. The rest of this file (0x1F0 bytes total) is (usually/always?) all-zero (however in some cases the byte at offset 0x20 is value 0x1).&lt;br /&gt;
&lt;br /&gt;
== OpenAccessFailureResolver ==&lt;br /&gt;
Takes 8-bytes of input and returns an [[#IEventNotifier]].&lt;br /&gt;
&lt;br /&gt;
[8.0.0+] Now takes an additional 8-bytes of input.&lt;br /&gt;
&lt;br /&gt;
== SetSaveDataSize ==&lt;br /&gt;
Takes two input u64s &amp;quot;size&amp;quot; and &amp;quot;journal_size&amp;quot;, and writes them to fsp-srv object member variables.&lt;br /&gt;
&lt;br /&gt;
These variables are normally initialized with 32 MiB (0x2000000) and 16 MiB (0x1000000), respectively.&lt;br /&gt;
&lt;br /&gt;
These variables don&#039;t seem to be actually used anywhere else (?)&lt;br /&gt;
&lt;br /&gt;
== SetSaveDataRootPath ==&lt;br /&gt;
Takes an input path, and does snprintf(&amp;lt;fsp-srv object&amp;gt;-&amp;gt;m_save_data_root_path, FS_MAX_PATH-1, &amp;quot;/%s&amp;quot;, input_path);&lt;br /&gt;
&lt;br /&gt;
This path is normally all-zero. When this path is non-zero, the internal OpenSaveDataFileSystem function will create a DirectorySaveDataFileSystem if the target save is a user-save + a directory exists, instead of the normal savedata filesystem object.&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== GetGlobalAccessLogMode ==&lt;br /&gt;
Returns an output u32.&lt;br /&gt;
&lt;br /&gt;
GlobalAccessLogMode is normally 0.&lt;br /&gt;
&lt;br /&gt;
== OutputAccessLogToSdCard ==&lt;br /&gt;
Takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
The input buffer is the string to output to the log. User-processes normally include a newline at the end.&lt;br /&gt;
&lt;br /&gt;
User-processes only use this when the value previously loaded from [[#GetGlobalAccessLogMode]] has bit1 set.&lt;br /&gt;
&lt;br /&gt;
When bit1 in GlobalAccessLogMode is clear, FS-module will just return 0 for OutputAccessLogToSdCard. However even with that set the log doesn&#039;t show up SD, unknown why.&lt;br /&gt;
&lt;br /&gt;
The input buffer is written to the &amp;quot;$FsAccessLog:/FsAccessLog.txt&amp;quot; file, where &amp;quot;$FsAccessLog&amp;quot; is the SD-card mount-name. It&#039;s written to the current end of the file(appended).&lt;br /&gt;
&lt;br /&gt;
= IStorage =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IStorage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This is the interface for a raw device, usually a block device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Arguments&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read || Takes a type-0x46 buffer, an offset and length &lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write || Takes a type-0x45 buffer, an offset and length &lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush || None&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize || Takes a size&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize || None&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFileSystem =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystem&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There are two main implementations of this interface:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RomFS&#039;&#039;&#039;: Filesystem implementation statically linked in the binary. Uses an [[#IStorage]] interface as underlying raw device.&lt;br /&gt;
* &#039;&#039;&#039;IPC proxy&#039;&#039;&#039;: Used for all non-RomFS filesystems. In this case, actual filesystem implementation is in the FS process.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || CreateFile&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DeleteFile&lt;br /&gt;
|-&lt;br /&gt;
| 2 || CreateDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeleteDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 4 || DeleteDirectoryRecursively&lt;br /&gt;
|-&lt;br /&gt;
| 5 || RenameFile&lt;br /&gt;
|-&lt;br /&gt;
| 6 || RenameDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [[#GetEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [[#OpenFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [[#OpenDirectory]]&lt;br /&gt;
|-&lt;br /&gt;
| 10 || [[#Commit]]&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#GetFreeSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#GetTotalSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || [3.0.0+] [[#CleanDirectoryRecursively]]&lt;br /&gt;
|-&lt;br /&gt;
| 14 || [3.0.0+] [[#GetFileTimeStampRaw]]&lt;br /&gt;
|-&lt;br /&gt;
| 15 || [4.0.0+] QueryEntry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetEntryType ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns [[#DirectoryEntryType]] as an output u32.&lt;br /&gt;
&lt;br /&gt;
== OpenFile ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path, and an u32 &#039;&#039;&#039;mode&#039;&#039;&#039;. &#039;&#039;&#039;mode&#039;&#039;&#039; controls how the file is opened, based on which bits are set:&lt;br /&gt;
&lt;br /&gt;
* When bit 0 is set, the file is Readable: you can use the Read operation.&lt;br /&gt;
* When bit 1 is set, the file is Writable: you can use the Write operation.&lt;br /&gt;
* When bit 2 is set, the file is Appendable: unless this bit is set, you will not be able to write beyond the end of a file (such writes will result in an error 0x307202)&lt;br /&gt;
&lt;br /&gt;
== OpenDirectory ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and an u64 &#039;&#039;&#039;filter_flags&#039;&#039;&#039;. &#039;&#039;&#039;filter_flags&#039;&#039;&#039; controls what type of entries are read by the [[#IDirectory]]: bitmask 0x1 = directories, bitmask 0x2 = files.&lt;br /&gt;
&lt;br /&gt;
== Commit ==&lt;br /&gt;
Like [https://3dbrew.org/wiki/FS:ControlArchive 3DS], this has to be used after writing to savedata for the changes to take affect.&lt;br /&gt;
&lt;br /&gt;
== GetFreeSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total free space with this FS.&lt;br /&gt;
&lt;br /&gt;
== GetTotalSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total space available with this FS(free+used).&lt;br /&gt;
&lt;br /&gt;
== CleanDirectoryRecursively ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and clears the contents of the directory specified in the path.&lt;br /&gt;
&lt;br /&gt;
== GetFileTimeStampRaw ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path and returns a 0x20-byte struct. This contains 3 u64s and an u8.&lt;br /&gt;
&lt;br /&gt;
= IDirectory =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDirectory&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Read]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetEntryCount]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Read ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64(?) for the total number of read entries, this is 0 when no more entries are available.&lt;br /&gt;
&lt;br /&gt;
The output buffer contains the read array of [[#DirectoryEntry]]. This doesn&#039;t include entries for &amp;quot;.&amp;quot; and &amp;quot;..&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== GetEntryCount ==&lt;br /&gt;
Returns an u64 for the total number of readable entries.&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntry =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x301 || Path&lt;br /&gt;
|-&lt;br /&gt;
| 0x301 || 0x1 || File attributes (bit 0 = is directory; bit 1 = archive bit)&lt;br /&gt;
|-&lt;br /&gt;
| 0x302 || 0x2 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x304 || 0x1 || [[#DirectoryEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x305 || 0x3 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x308 || 0x8 || Filesize, 0 for directories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntryType =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntryType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
An s8 value indicating a directory entry type. The current values are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Directory&lt;br /&gt;
|-&lt;br /&gt;
| 1 || File&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFile =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFile&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataInfoReader =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataInfoReader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#ReadSaveDataInfo]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataInfo ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64 for total output entries. This buffer contains an array of [[#SaveDataInfo]].&lt;br /&gt;
&lt;br /&gt;
This is used to get [[#SaveDataInfo]] for all savedata on the system (or all savedata for the current [[#SaveDataSpaceId]]). When used multiple times, it will resume reading where it left off, until no more entries are available (in that case the out u64 is value 0).&lt;br /&gt;
&lt;br /&gt;
= IDeviceOperator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDeviceOperator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || IsSdCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GetSdCardSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [2.0.0+] GetSdCardCid&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [2.0.0+] GetSdCardUserAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [2.0.0+] GetSdCardProtectedAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [2.0.0+] GetAndClearSdCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 100 || GetMmcCid&lt;br /&gt;
|-&lt;br /&gt;
| 101 || GetMmcSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 110 || EraseMmc&lt;br /&gt;
|-&lt;br /&gt;
| 111 || GetMmcPartitionSize&lt;br /&gt;
|-&lt;br /&gt;
| 112 || [2.0.0+] GetMmcPatrolCount&lt;br /&gt;
|-&lt;br /&gt;
| 113 || [2.0.0+] GetAndClearMmcErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 114 || [2.0.0+] GetMmcExtendedCsd&lt;br /&gt;
|-&lt;br /&gt;
| 115 || [4.0.0+] SuspendMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 116 || [4.0.0+] ResumeMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 200 || IsGameCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 201 || EraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 202 || GetGameCardHandle&lt;br /&gt;
|-&lt;br /&gt;
| 203 || [[#GetGameCardUpdatePartitionInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 204 || FinalizeGameCardDriver&lt;br /&gt;
|-&lt;br /&gt;
| 205 || GetGameCardAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 206 || GetGameCardDeviceCertificate&lt;br /&gt;
|-&lt;br /&gt;
| 207 || GetGameCardAsicInfo&lt;br /&gt;
|-&lt;br /&gt;
| 208 || GetGameCardIdSet&lt;br /&gt;
|-&lt;br /&gt;
| 209 || WriteToGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 210 || SetVerifyWriteEnalbleFlag&lt;br /&gt;
|-&lt;br /&gt;
| 211 || GetGameCardImageHash&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [2.0.0+] GetGameCardDeviceIdForProdCard&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [2.0.0+] EraseAndWriteParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [2.0.0+] ReadParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [2.0.0+] ForceEraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [2.0.0+] GetGameCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [2.1.0+] GetGameCardErrorReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [3.0.0+] GetGameCardDeviceId&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [8.0.0+] ChallengeCardExistence&lt;br /&gt;
|-&lt;br /&gt;
| 300 || SetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 301 || GetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [5.0.0+] SuspendSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 401 || [5.0.0+] ResumeSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 402 || [6.0.0+] GetSdmmcConnectionStatus (Takes a total of 4-bytes of input, returns a total of 8-bytes of output)&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [6.0.0+] SetSimulationEvent (Takes a total of 0x14-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [6.0.0+] ClearSimulationEvent (Takes a total of 4-bytes of input, no output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetGameCardUpdatePartitionInfo ==&lt;br /&gt;
Returns a titleID and the title-version for it.&lt;br /&gt;
&lt;br /&gt;
* Output u32 with ARMS-gamecard: title-version v131162. This is the title-version for [[2.1.0]], which is the sysupdate included with this gamecard. Launch-day gamecards return title-version v450.&lt;br /&gt;
* Output u64 with ARMS-gamecard: titleID 0100000000000816.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]] appears to only use this with [[Content_Manager_services#GetTitleIdInfo]] and [[Content_Manager_services#GetUpdateTitleList]] with storageid=nandsys, for checking whether a sysupdate is required.&lt;br /&gt;
&lt;br /&gt;
= IEventNotifier =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IEventNotifier&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || GetEventHandle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManager =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManager&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetToken]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataImporter]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== SetToken ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64, returns an [[#ISaveDataExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x10-byte userID, and a type-0x5 input buffer. Returns an output u64 and an [[#ISaveDataImporter]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Pull]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#PullInitialData]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataExporter constructor. This is used automatically after [[#OpenSaveDataExporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Pull ==&lt;br /&gt;
Takes a type-0x6 output buffer, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== PullInitialData ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Push]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#Finalize]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataImporter constructor. This is used automatically after [[#OpenSaveDataImporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Push ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== Finalize ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManagerWithDivision =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManagerWithDivision&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetKeySeedPackage]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataFullExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [[#OpenSaveDataDiffExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] [[#OpenSaveDataExporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataFullImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [[#OpenSaveDataDiffImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] [[#OpenSaveDataDuplicateDiffImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] [[#OpenSaveDataImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] [[#OpenSaveDataImporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [6.0.0+] [[#CancelSuspendingImport]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer containing the &#039;&#039;&#039;Challenge&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== SetKeySeedPackage ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer containing the &#039;&#039;&#039;KeySeedPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFullExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFullImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], a 0x10-byte userID, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]], returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDuplicateDiffImporter ==&lt;br /&gt;
Takes an input u8 and an u64, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8, an u8(bool), a 0x10-byte struct, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== CancelSuspendingImport ==&lt;br /&gt;
Takes an input u64 and a 0x10-byte struct, no output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SetDivisionCount (Takes an input u32, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [6.0.0+] GetSaveDataInfo (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || OpenSaveDataDiffChunkIterator (No input, returns an [[#ISaveDataChunkIterator]])&lt;br /&gt;
|-&lt;br /&gt;
| 48 || OpenSaveDataChunkExporter (Takes an input u32, returns an [[#ISaveDataChunkExporter]])&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] FinalizeFullExport (No input, returns two 0x10-byte output structs)&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [6.0.0+] FinalizeDiffExport (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] CancelExport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] SuspendExport (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [6.0.0+] GetKeySeed (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 71 || [6.0.0+] GetInitialDataMac (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 72 || [6.0.0+] FinalizeExport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] GetImportInitialDataAad (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [6.0.0+] SetExportInitialDataAad (Takes an input 0x20-byte struct, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 96 || [6.0.0+] GetReportInfo (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [6.0.0+] GetSaveDataInfo (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || OpenSaveDataDiffChunkIterator (No input, returns an [[#ISaveDataChunkIterator]])&lt;br /&gt;
|-&lt;br /&gt;
| 32 || InitializeImport (No input, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
| 33 || FinalizeImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] CancelImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] GetImportContext (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 36 || [6.0.0+] SuspendImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 48 || OpenSaveDataChunkImporter (Takes an input u32, returns an [[#ISaveDataChunkImporter]])&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] GetImportInitialDataAad (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] GetReportInfo (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkIterator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkIterator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Next (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || IsEnd (No input, returns an output u8)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || GetId (No input, returns an output u32)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Pull (Takes an input u64 and a type-0x6 output buffer, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [6.0.0+] GetRestRawDataSize (No input, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Push (Takes an input u64 and a type-0x5 input buffer, no output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferProhibiter =&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t seem to handle any commands (?).&lt;br /&gt;
&lt;br /&gt;
= IMultiCommitManager =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || ? (Takes an input [[#IFilesystem]], no output)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || ? (No input/output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
= FileSystemType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Code&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Data&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Logo&lt;br /&gt;
|-&lt;br /&gt;
| 3 || ContentControl&lt;br /&gt;
|-&lt;br /&gt;
| 4 || ContentManual&lt;br /&gt;
|-&lt;br /&gt;
| 5 || ContentMeta&lt;br /&gt;
|-&lt;br /&gt;
| 6 || ContentData&lt;br /&gt;
|-&lt;br /&gt;
| 7 || ApplicationPackage&lt;br /&gt;
|-&lt;br /&gt;
| 8 || RegisteredUpdate&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= StorageId =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || None&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GameCard&lt;br /&gt;
|-&lt;br /&gt;
| 3 || NandSystem&lt;br /&gt;
|-&lt;br /&gt;
| 4 || NandUser&lt;br /&gt;
|-&lt;br /&gt;
| 5 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::ContentStorageId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataSpaceId =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataSpaceId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdSystem&lt;br /&gt;
|-&lt;br /&gt;
| 100 || [3.0.0+] ProperSystem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Determines the storage where the savedata is stored.&lt;br /&gt;
&lt;br /&gt;
= SaveDataType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SystemSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SaveData&lt;br /&gt;
|-&lt;br /&gt;
| 2 || BcatDeliveryCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeviceSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [3.0.0+] TemporaryStorage&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [3.0.0+] CacheStorage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ImageDirectoryId =&lt;br /&gt;
This is &amp;quot;nn::fs::ImageDirectoryId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= CloudBackupWorkStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::CloudBackupWorkStorageId&amp;quot;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= CustomStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::CustomStorageId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentPath =&lt;br /&gt;
These are the 0x300 paths to NCA files for the various filesystems FS can access, beginning with @. They&#039;re passed via X descriptors, and returned via various [[Location Resolver services|ncm/lr]] commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Path || Notes&lt;br /&gt;
|-&lt;br /&gt;
| @SystemContent ||&lt;br /&gt;
|- &lt;br /&gt;
| @UserContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @SdCardContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @CalibFile ||&lt;br /&gt;
|-&lt;br /&gt;
| @Safe ||&lt;br /&gt;
|-&lt;br /&gt;
| @User ||&lt;br /&gt;
|-&lt;br /&gt;
| @System ||&lt;br /&gt;
|-&lt;br /&gt;
| @Sdcard ||&lt;br /&gt;
|-&lt;br /&gt;
| @Host ||&lt;br /&gt;
|-&lt;br /&gt;
| @GcApp || Gamecard App partition (Partition 2)&lt;br /&gt;
|-&lt;br /&gt;
| @GcXYYYYYYYY || Gamecard Contents. X is the partition type (U - Update, N - Normal, S - Secure). Y is the gamecard handle as a 32-bit hex value &lt;br /&gt;
|-&lt;br /&gt;
| @upp || Gamecard update partition (Partition 0)&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] @RegUpdate || Registered update partition&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Save Struct =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataAttribute&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData. SaveData: 0 can be used for accessing the savedata associated with the current FS session titleID, otherwise when set this is the titleID associated with the savedata to access.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x10&lt;br /&gt;
| userID for user-specific savedata(saveuser) when set, otherwise when zero this indicates the common savedata(savecommon). This is loaded from [[Account_services]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| u64 [[Flash_Filesystem|saveID]]. 0 for SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21&lt;br /&gt;
| 0x1&lt;br /&gt;
| Save data &#039;rank&#039; or &#039;precedence&#039;. 0 if this save data is considered the primary save data. 1 if it&#039;s considered the secondary save data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x22&lt;br /&gt;
| 0x2&lt;br /&gt;
| Save data index&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
For DeviceSaveData, this struct is all-zero except for the [[#SaveDataType]] field.&lt;br /&gt;
&lt;br /&gt;
= SaveCreate Struct =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data journal size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data block size. 0x4000 for SystemSaveData/SaveData/DeviceSaveData/BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data owner id. Official user-processes only uses 0 here for SystemSaveData/SaveData. For the dedicated save-creation code with SaveData/DeviceSaveData, this value comes from an input param with official user-processes. For BcatSaveData, this is the hard-coded [[Title_list|titleID]] of the bcat-sysmodule.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4&lt;br /&gt;
| Save data flags. Written using an input param for official user-processes. Hard-coded 0 for BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataSpaceId]]. Official user-processes only uses 0 here for SystemSaveData, 1 for SaveData/DeviceSaveData/BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25&lt;br /&gt;
| 0x1&lt;br /&gt;
| Unknown. 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x1A&lt;br /&gt;
| Not initialized for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
= DeviceSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8, the only difference compared to SaveData is the Save-struct.&lt;br /&gt;
&lt;br /&gt;
= BcatSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8. The Save-struct is the same as DeviceSaveData, except that the titleID field is set to &amp;lt;input titleID&amp;gt;. See above regarding SaveCreate-struct.&lt;br /&gt;
&lt;br /&gt;
The 0x10-byte struct passed to [[#CreateSaveDataFileSystem]] has the first 0x5-bytes set to all-zero.&lt;br /&gt;
&lt;br /&gt;
= SaveDataInfo =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Unknown saveID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA&lt;br /&gt;
| 0x6&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| userID&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x8&lt;br /&gt;
| saveID, 0 for regular SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| Application titleID, for regular SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| Raw saveimage size&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x2&lt;br /&gt;
| Save data index&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A&lt;br /&gt;
| 0x1&lt;br /&gt;
| Save data &#039;rank&#039; or &#039;precedence&#039;. 0 if this save data is considered the primary save data. 1 if it&#039;s considered the secondary save data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B&lt;br /&gt;
| 0x25&lt;br /&gt;
| Unknown. Usually zeros?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a 0x60-byte struct.&lt;br /&gt;
&lt;br /&gt;
= SaveDataFileSystemExtraData =&lt;br /&gt;
This is a 0x200-byte struct. Appears to match [[Savegames#Extra_data]].&lt;br /&gt;
&lt;br /&gt;
= InitialDataVersion2 =&lt;br /&gt;
This is a 0x8210-byte struct used by [[#ISaveDataTransferManagerWithDivision]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=7434</id>
		<title>Filesystem services</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=7434"/>
		<updated>2019-08-17T02:00:29Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= fsp-ldr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxyForLoader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Arguments || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || OpenCodeFileSystem || u64 TitleId + X descriptor [[#ContentPath]] || Returns an [[#IFileSystem]].&lt;br /&gt;
|-&lt;br /&gt;
| 1 || IsArchivedProgram || u64 ProcessId || Returns a bool (1 if the process id&#039;s [[#ContentPath]] ends in &amp;quot;.nca&amp;quot;).&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] SetCurrentProcess || PID descriptor ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= fsp-pr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IProgramRegistry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#RegisterProgram]] ||&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#UnregisterProgram]] ||&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] SetCurrentProcess ||&lt;br /&gt;
|-&lt;br /&gt;
| 256 || [[#SetEnabledProgramVerification]] ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== RegisterProgram ==&lt;br /&gt;
Takes a storageID, a pid, a titleID, a 0x1C type-A buffer for the [[NPDM#FS_Access_Header| FS Access Header]], and a 0x2C type-A buffer for the [[NPDM#FS_Access_Control| FS Access Control]]&lt;br /&gt;
&lt;br /&gt;
Final FS permissions are stored as (ACI0_perms &amp;amp; ACID_perms). Will panic(svcBreak) when buffer sizes from ipc-rawdata are invalid.&lt;br /&gt;
&lt;br /&gt;
== UnregisterProgram ==&lt;br /&gt;
Takes a pid. Removes registered FS permissions for that PID.&lt;br /&gt;
&lt;br /&gt;
== SetEnabledProgramVerification ==&lt;br /&gt;
Seems to sets a global flag to inputval &amp;amp; 1.&lt;br /&gt;
&lt;br /&gt;
When the flag is zero, it will set ret=0 instead of ret={error} when verifying the fixed-key [[NPDM]] ACID signature fails. This also skips verifying the [[NCA_Format|NCA Header]] signature using the ACID key. Note that if verifying the fixed-key ACID signature is successful, and verifying the ACID-key NCA header signature fails, it will throw an error and abort.&lt;br /&gt;
&lt;br /&gt;
= fsp-srv =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxy&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [1.0.0] [[#OpenFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#SetCurrentProcess]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || OpenDataFileSystemByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [2.0.0+] [[#OpenFileSystemWithPatch]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [2.0.0+] [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [3.0.0+] OpenDataFileSystemByApplicationId&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || InvalidateBisCache&lt;br /&gt;
|-&lt;br /&gt;
| 17 || OpenHostFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 18 || OpenSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 19 || [2.0.0+] FormatSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 21 || [[#DeleteSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 22 || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 23 || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 24 || RegisterSaveDataFileSystemAtomicDeletion&lt;br /&gt;
|-&lt;br /&gt;
| 25 || [2.0.0+] DeleteSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 26 || [2.0.0+] FormatSdCardDryRun&lt;br /&gt;
|-&lt;br /&gt;
| 27 || [2.0.0+] IsExFatSupported&lt;br /&gt;
|-&lt;br /&gt;
| 28 || [4.0.0+] DeleteSaveDataFileSystemBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 30 || [[#OpenGameCardStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 31 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [3.0.0+] ExtendSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [5.0.0+] DeleteCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [5.0.0+] GetCacheStorageSize&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] CreateSaveDataFileSystemByHashSalt (Unofficial name, takes a total of 0xB0-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 51 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 52 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 53 || [2.0.0+] OpenReadOnlySaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 57 || [3.0.0+] [[#ReadSaveDataFileSystemExtraDataBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 58 || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 59 || [2.0.0+] WriteSaveDataFileSystemExtraData&lt;br /&gt;
|-&lt;br /&gt;
| 60 || [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 61 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 62 || [5.0.0+] OpenCacheStorageList&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [5.0.0+] OpenSaveDataInternalStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [5.0.0+] UpdateSaveDataMacForDebug&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [5.0.0+] WriteSaveDataFileSystemExtraData2&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] FindSaveDataWithFilter (Takes a total of 0x50-bytes of input, returns 8-bytes of output, and a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] OpenSaveDataIterator (Takes a total of 0x50-bytes of input, returns an #ISaveDataInfoReader)&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [8.0.0+] ReadSaveDataFileSystemExtraDataBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [8.0.0+] WriteSaveDataFileSystemExtraDataBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 80 || OpenSaveDataMetaFile&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [4.0.0+] OpenSaveDataTransferManager (No input, returns an [[#ISaveDataTransferManager]])&lt;br /&gt;
|-&lt;br /&gt;
| 82 || [5.0.0+] OpenSaveDataTransferManagerVersion2 (No input, returns an [[#ISaveDataTransferManagerWithDivision]])&lt;br /&gt;
|-&lt;br /&gt;
| 83 || [6.0.0+] OpenSaveDataTransferProhibiterForCloudBackUp (Takes an input u64, returns an [[#ISaveDataTransferProhibiter]])&lt;br /&gt;
|-&lt;br /&gt;
| 84 || [6.0.0+] ListApplicationAccessibleSaveDataOwnerId (Takes a total of 0x10-bytes of input, returns 4-bytes of output, and a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 100 || OpenImageDirectoryFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 110 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 120 || [6.0.0+] OpenCloudBackupWorkStorageFileSystem (Takes 4-bytes of input, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 130 || [7.0.0+] OpenCustomStorageFileSystem (Takes 4-bytes of input, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 200 || OpenDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 201 || [3.0.0+] OpenDataStorageByProgramId&lt;br /&gt;
|-&lt;br /&gt;
| 202 || [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 203 || OpenPatchDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 204 || [7.0.0+] OpenDataFileSystemByProgramIndex (Takes an input u8, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 205 || [7.0.0+] OpenDataStorageByProgramIndex (Takes an input u8, returns an [[#IStorage]])&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [[#OpenDeviceOperator]]&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 510 || [5.0.0+] OpenSystemDataUpdateEventNotifier&lt;br /&gt;
|-&lt;br /&gt;
| 511 || [5.0.0+] NotifySystemDataUpdateEvent&lt;br /&gt;
|-&lt;br /&gt;
| 520 || [6.0.0+] SimulateGameCardDetectionEvent (Takes a total of 0xC-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 600 || [1.0.0-3.0.2] SetCurrentPosixTime&lt;br /&gt;
|-&lt;br /&gt;
| 601 || QuerySaveDataTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 602 || [[#VerifySaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 603 || CorruptSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 604 || CreatePaddingFile&lt;br /&gt;
|-&lt;br /&gt;
| 605 || DeleteAllPaddingFiles&lt;br /&gt;
|-&lt;br /&gt;
| 606 || [2.0.0+] GetRightsId&lt;br /&gt;
|-&lt;br /&gt;
| 607 || [2.0.0+] RegisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 608 || [2.0.0+] UnregisterAllExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 609 || [2.0.0+] GetRightsIdByPath&lt;br /&gt;
|-&lt;br /&gt;
| 610 || [3.0.0+] GetRightsIdAndKeyGenerationByPath&lt;br /&gt;
|-&lt;br /&gt;
| 611 || [4.0.0+] SetCurrentPosixTimeWithTimeDifference&lt;br /&gt;
|-&lt;br /&gt;
| 612 || [4.0.0+] GetFreeSpaceSizeForSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 613 || [4.0.0+] VerifySaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 614 || [4.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 615 || [5.0.0+] QuerySaveDataInternalStorageTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 616 || [6.0.0+] [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| 617 || [7.0.0+] UnregisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 620 || [2.0.0+] [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| 630 || [4.0.0+] SetSdCardAccessibility&lt;br /&gt;
|-&lt;br /&gt;
| 631 || [4.0.0+] IsSdCardAccessible&lt;br /&gt;
|-&lt;br /&gt;
| 640 || [4.0.0-7.0.1] IsSignedSystemPartitionOnSdCardValid&lt;br /&gt;
|-&lt;br /&gt;
| 700 || [5.0.0+] [[#OpenAccessFailureResolver]]&lt;br /&gt;
|-&lt;br /&gt;
| 701 || [5.0.0+] GetAccessFailureDetectionEvent&lt;br /&gt;
|-&lt;br /&gt;
| 702 || [5.0.0+] IsAccessFailureDetected&lt;br /&gt;
|-&lt;br /&gt;
| 710 || [5.0.0+] ResolveAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 720 || [5.0.0+] AbandonAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [2.0.0+] GetAndClearFileSystemProxyErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [7.0.0+] RegisterProgramIndexMapInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1000 || SetBisRootForHost&lt;br /&gt;
|-&lt;br /&gt;
| 1001 || [[#SetSaveDataSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1002 || [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| 1003 || DisableAutoSaveDataCreation&lt;br /&gt;
|-&lt;br /&gt;
| 1004 || [[#SetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1005 || [[#GetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1006 || [[#OutputAccessLogToSdCard]]&lt;br /&gt;
|-&lt;br /&gt;
| 1007 || [4.0.0+] RegisterUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1008 || [4.0.0+] OpenRegisteredUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1009 || [4.0.0+] GetAndClearMemoryReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1010 || [5.1.0-6.2.0] SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| 1011 || [7.0.0+] GetAccessLogVersionInfo (Unofficial name, no input, returns two 32-bit values &amp;quot;version&amp;quot; and &amp;quot;program_index&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 1100 || [4.0.0+] OverrideSaveDataTransferTokenSignVerificationKey&lt;br /&gt;
|-&lt;br /&gt;
| 1110 || [6.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId2&lt;br /&gt;
|-&lt;br /&gt;
| 1200 || [6.0.0+] OpenMultiCommitManager (No input, returns an output #IMultiCommitManager)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
Every time permissions are checked, the process registration [[#fsp-pr]] is loaded using the session processID. The permission data is populated with data from the [[NPDM]].&lt;br /&gt;
&lt;br /&gt;
If the processID is &amp;lt;= 6 (which happens only for built-in sysmodules), it will use a hardcoded registration data. The default mask in this case is 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
Note that the functions check whether or not at least one bit is set in the mask. This means that, you don&#039;t need to set 0xFFFFFFFFFFFFFFFF to get all permissions: it suffices to set 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
If the code were to request an invalid input type, panic. But this never happens.&lt;br /&gt;
&lt;br /&gt;
=== RwPermissions ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type(s) || Mask || Name || Value || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000801 || CanMountLogo || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000801 || CanMountContentMeta || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000801 || CanMountContentControl || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000801 || CanMountContentManual || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000801 || CanMountContentData || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000801 || CanMountApplicationPackage || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000000000 || CanMountSaveDataStorage || 3 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000800 || CanMountContentStorage || 3 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000001000 || CanMountImageAndVideoStorage || 3 || [[#OpenImageDirectoryFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanMountCloudBackupWorkStorage || 3 || OpenCloudBackupWorkStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000000000&amp;lt;br/&amp;gt;([7.0.0-7.0.1] 0x4000000000000000)&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000084)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountCustomStorage || 3 || OpenCustomStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000084&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000008080) || CanMountBisCalibrationFile || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-6.2.0] 0x8000000000008080) || CanMountBisSafeMode || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000008080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountBisUser || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000008080&amp;lt;br/&amp;gt;([3.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanMountBisSystem || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000010) || CanMountBisSystemProperEncryption || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000200000&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000040020) || CanMountBisSystemProperPartition || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0xC000000000200000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000028) || CanMountSdCard || 3 || [[#OpenSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000000010&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000020) || CanMountGameCard || 3 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0x8000000000040020&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000020) || CanMountDeviceSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x8000000000000028&amp;lt;br/&amp;gt;([3.0.0-6.2.0] 0x8000000000000020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010082) || CanMountSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0x8000000000000020&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanMountOthersSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0x8000000000000020&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanMountOthersSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0x8000000000010082&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010080)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition1Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x8000000000010080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition2Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010080) || CanOpenBisPartitionUserDataRoot || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part1 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part2 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part3 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part4 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part5 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || 0x8000000000010080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000084)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000080) || CanOpenBisPartitionBootConfigAndPackage2Part6 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x8000000000000084&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationBinary || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0x8000000000000084&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationFile || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0x8000000000000080 || CanOpenBisPartitionSafeMode || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanOpenBisPartitionUser || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000100) || CanOpenBisPartitionSystem || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000100008) || CanOpenBisPartitionSystemProperEncryption || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000400000) || CanOpenBisPartitionSystemProperPartition || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x27 || 0xC000000000200000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000100008) || CanOpenSdCardStorage || ||&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x28 || 0x8000000000000100&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000100008)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000400000) || CanOpenGameCardStorage || 3 || [[#OpenGameCardStorage]], [[#EraseGameCard]] (bit1), [[#WriteToGameCard]] (bit1), [[#GetGameCardErrorInfo]] (bit1), [[#EraseAndWriteParamDirectly]] (bit1), [[#ReadParamDirectly]] (bit1), [[#ForceEraseGameCard]] (bit1) &lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x29 || 0x8000000000100008&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000400000)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010000) || CanMountSystemDataPrivate || 1 || [[#OpenFileSystem]], [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0xC000000000400000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010000)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanMountHost || 3 || [[#OpenHostFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x2B || 0x8000000000010000&amp;lt;br/&amp;gt;([1.0.0-6.2.0]0x8000000000000000) || CanMountRegisteredUpdatePartition || 1 || [[#OpenRegisteredUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] 0x2C || 0x8000000000000000 || CanOpenSaveDataInternalStorage || 3 || [[#OpenSaveDataInternalStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] 0x2D || 0x0000000000000000 || CanNotMountCustomStorage || 3 || OpenCustomStorageFileSystem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BoolPermissions ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type(s) || Mask || Name || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000080 || CanInvalidateBisCache || [[#InvalidateBisCache]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000080 || CanEraseMmc || [[#EraseMmc]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000010 || CanGetGameCardDeviceCertificate || [[#GetGameCardDeviceCertificate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000010 || CanGetGameCardIdSet || [[#GetGameCardIdSet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000200 || CanFinalizeGameCardDriver || [[#FinalizeGameCardDriver]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000200 || CanGetGameCardAsicInfo || [[#GetGameCardAsicInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000002020 || CanCreateSaveData || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000060 || CanDeleteSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000000028 || CanCreateSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000000000020 || CanCreateOthersSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000004028 || CanDeleteSystemSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000060 || CanOpenSaveDataInfoReader || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000004020 || CanOpenSaveDataInfoReaderForSystem || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000000040&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000020000) || CanOpenSaveDataIterator || OpenSaveDataIterator&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000020000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000400) || CanOpenSaveDataMetaFile || [[#OpenSaveDataMetaFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000400&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000004060) || CanSetCurrentPosixTime || [[#SetCurrentPosixTime]], [[#SetCurrentPosixTimeWithTimeDifference]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000004060&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000080000) || CanReadSaveDataFileSystemExtraData || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x8000000000080000 || CanSetGlobalAccessLogMode || [[#SetGlobalAccessMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000080000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] Invalid) || CanSetSpeedEmulationMode || [[#SetSpeedEmulationMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || Invalid&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000800000) || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0xC000000000800000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000001000000) || CanFillBis || [[#CreatePaddingFile]], [[#DeleteAllPaddingFiles]] &lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0xC000000001000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000001000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0xC000000002000000) || CanCorruptSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x16 || 0x8000000001000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000004000000) || CanCorruptSystemSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x17 || 0x8000000000000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0xC000000002000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000008000000) || CanVerifySaveData || [[#VerifySaveDataFileSystem]], [[#VerifySaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x18 || 0xC000000002000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000004000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000010000000) || CanDebugSaveData || [[#CreateSaveDataFileSystem]], [[#OpenSaveDataFileSystem]], [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x19 || 0x8000000004000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000008000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000800) || CanFormatSdCard || [[#FormatSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x1A || 0x8000000008000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000010000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000004020) || CanGetRightsId || [[#GetRightsId]], [[#GetRightsIdAndKeyGenerationByPath]], [[#GetRightsIdByPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1B || 0x8000000010000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000800)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000002020) || CanRegisterExternalKey || [[#RegisterExternalKey]], [[#UnregisterAllExternalKey]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1C || 0x8000000000000800&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000004020)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000028) || CanSetEncryptionSeed || [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1D || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000020000000) || SaveDataExtraData_Write0 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1E || 0x8000000000004020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000002020)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000040000000) || CanWriteSaveDataFileSystemExtraDataFlags || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1F || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000000) || SaveDataExtraData_Write1 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x20 || 0x8000000000000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000020000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000000) || CanWriteSaveDataFileSystemExtraDataAll || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x21 || 0x8000000000002020&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanExtendSaveData || [[#ExtendSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x22 || 0x8000000000000028&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000002) || CanExtendSystemSaveData || [[#ExtendSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x23 || 0x8000000020000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanRegisterUpdatePartition || [[#RegisterUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x24 || 0x8000000040000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanOpenSaveDataTransferManager || [[#OpenSaveDataTransferManager]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x25 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanOpenSaveDataTransferManagerVersion2 || [[#OpenSaveDataTransferManagerVersion2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x26 || 0x8000000200002000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080000110) || CanOpenSaveDataTransferProhibiterForCloudBackUp || [[#OpenSaveDataTransferProhibiterForCloudBackUp]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x27 || 0x8000000240002000 &amp;lt;br/&amp;gt;([6.0.0-7.0.1] 0x8000000200002000)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000100008) || CanListApplicationAccessibleSaveDataOwnerId || ListApplicationAccessibleSaveDataOwnerId&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x28 || 0x8000000000000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080010000) || CanControlMmcPatrol || [[#SuspendMmcPatrol]], [[#ResumeMmcPatrol]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x29 || 0x8000000000000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOverrideSaveDataTransferTokenSignVerificationKey || [[#OverrideSaveDataTransferTokenSignVerificationKey]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0x8000000080200000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSdCardDetectionEventNotifier || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2B || 0x8000000080000110&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenGameCardDetectionEventNotifier || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2C || 0x8000000000100008&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSystemDataUpdateEventNotifier || [[#OpenSystemDataUpdateEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2D || 0x8000000000010000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanNotifySystemDataUpdateEvent || [[#NotifySystemDataUpdateEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2E || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanOpenAccessFailureDetectionEventNotifier || [[#OpenAccessFailureResolver]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2F || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanGetAccessFailureDetectionEvent || [[#GetAccessFailureDetectionEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.1.0+] 0x30 || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080080000) || CanIsAccessFailureDetected || [[#IsAccessFailureDetected]] &lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x31 || 0x8000000100000000 || CanResolveAccessFailure || [[#ResolveAccessFailure]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x32 || 0x8000000100000000 || CanAbandonAccessFailure || [[#AbandonAccessFailure]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x33 || 0x8000000040000000 || CanQuerySaveDataInternalStorageTotalSize || [[#QuerySaveDataInternalStorageTotalSize]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x34 || 0x8000000200000020 || CanGetSaveDataCommitId || [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x35 || 0x8000000000200000 || CanSetSdCardAccessibility || [[#SetSdCardAccessibility]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x36 || 0x4000000000000000 || CanSimulateGameCardDetectionEvent || SimulateGameCardDetectionEvent, SetSimulationEvent, ClearSimulationEvent&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x37 || 0x8000000000000000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000080000) || CanSetDataStorageRedirectTarget || SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x38 || 0x8000000400000000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000000) || || [[#CreateSaveDataFileSystem]], CreateSaveDataFileSystemByHashSalt&lt;br /&gt;
|-&lt;br /&gt;
| [8.0.0+] 0x39 || 0x8000000000000010 || CanChallengeCardExistence || ChallengeCardExistence&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer (ContentPath) and a [[#FileSystemType]] as parameters. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
[2.0.0+] This function was removed.&lt;br /&gt;
&lt;br /&gt;
== SetCurrentProcess ==&lt;br /&gt;
Takes a pid-descriptor.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithPatch ==&lt;br /&gt;
Takes an input [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Web-applet loads the [[#FileSystemType]] (which must be &#039;&#039;&#039;ContentManual&#039;&#039;&#039;) from u32_table[inparam].&lt;br /&gt;
&lt;br /&gt;
Note: web-applet strings refer to both this cmd and [[#OpenFileSystemWithId]] as &amp;quot;MountContent&amp;quot;, but official nn_sf_sync symbols use &amp;quot;OpenXX&amp;quot; names.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithId ==&lt;br /&gt;
Takes a type-0x19 input buffer, an [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
The [[#IFileSystem]] must be &#039;&#039;&#039;ContentMeta&#039;&#039;&#039; if the NCA type is 0 (control).&lt;br /&gt;
&lt;br /&gt;
The input buffer is the output string path from [[NS_Services#GetApplicationContentPath|GetApplicationContentPath]].&lt;br /&gt;
&lt;br /&gt;
May return errors when attempting to access NCA-paths for an update-title with a gamecard, when the gamecard isn&#039;t inserted. May return error 0x7D402 in some cases with update-titles. Non-val2 in32 values with NCA-type1 are unusable, even for normal titles.&lt;br /&gt;
&lt;br /&gt;
The official &amp;quot;MountApplicationPackage&amp;quot; func uses this with in64=0 and [[#FileSystemType]] &#039;&#039;&#039;ApplicationPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
After the [[#FileSystemType]] specific permissions are checked, it then gets the func retval for permissions-type 0x25 and func0.&lt;br /&gt;
&lt;br /&gt;
When [[#FileSystemType]] is &#039;&#039;&#039;ContentMeta&#039;&#039;&#039;, it uses in64=0xffffffffffffffff internally, otherwise it checks if in64 is set to 0xffffffffffffffff then throws an error if so. When the in64 used internally is not 0xffffffffffffffff, it&#039;s compared with the NCA titleID, then an error is thrown on mismatch.&lt;br /&gt;
&lt;br /&gt;
== OpenBisFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer string and a u32 [[Flash_Filesystem|Bis partitionID]]. Official user-process code sets instr[0] = 0 normally. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Only partitionIDs for FAT partitions are usable with this, otherwise error 0x2EE202 is returned. Seems to be about the same as [[#OpenBisStorage]] except this mounts the partition filesystem instead of allowing direct access to the partition sectors.&lt;br /&gt;
&lt;br /&gt;
== OpenBisStorage ==&lt;br /&gt;
Takes a u32 partition ID, returns 0x2EE202 for partitions which do not exist, 0x320002 for partitions which cannot be opened and a valid [[#IStorage]] handle otherwise.&lt;br /&gt;
&lt;br /&gt;
== InvalidateBisCache ==&lt;br /&gt;
Seems to invalidate the Bis cache for MBR/GPT after overwriting that data via the OpenBisStorage IStorage. Used by [[SystemInitializer]].&lt;br /&gt;
&lt;br /&gt;
== DeleteSaveDataFileSystem ==&lt;br /&gt;
Takes an input u64.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystem ==&lt;br /&gt;
Takes a 0x40-byte Save-struct entry, a 0x40-byte SaveCreate-struct entry, and a 0x10-byte input struct.&lt;br /&gt;
&lt;br /&gt;
Only the first 0x5-bytes in the 0x10-byte struct are initialized: all-zero when automatically creating savedata during savecommon mount by official user-processes. In the dedicated save-creation code in official user-processes: +0 u32 = 0x40060, +4 u8 = 1.&lt;br /&gt;
&lt;br /&gt;
Creates regular savedata.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes a 0x40-byte Save-struct entry and a 0x40-byte SaveCreate-struct entry.&lt;br /&gt;
&lt;br /&gt;
Creates savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardStorage ==&lt;br /&gt;
Takes two input u32s (gamecard handle, partition ID), and returns an [[#IStorage]] for the [[Gamecard_Format|partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardFileSystem ==&lt;br /&gt;
Takes two input u32s, with the second u32 located at +4 in rawdata after the first u32. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts a [[Gamecard_Partition|gamecard partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystem ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte Save-struct entry. Official user-process code is only known to use value 1 for the u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Permissions aren&#039;t checked until the specified save is successfully found.&lt;br /&gt;
&lt;br /&gt;
Only one process (specifically only one [[#IFileSystem]] session) can mount a given savedata at any given time (this includes SystemSaveData).&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte Save-struct entry. Web-applet only uses value0 for the input u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraDataBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an input u64 saveID, and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraData ==&lt;br /&gt;
Takes an input u64 saveID and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReader ==&lt;br /&gt;
No input, returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReaderBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenContentStorageFileSystem ==&lt;br /&gt;
Takes a [[#ContentStorageId]]. Invalid values return 0x2EE202.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]] with NCA files. The read data from these files is identical to the data read by [[NCM_services#ReadContentIdFile]].&lt;br /&gt;
&lt;br /&gt;
== OpenCustomStorageFileSystem ==&lt;br /&gt;
Takes a [[#CustomStorageId]]. Invalid values return 0x2EE202.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]] from either User:/CustomStorage0 or Sdcard:/Nintendo/CustomStorage0. If on the SD card, an AesXtsFileSystem is created using a key source specifically for custom storage.&lt;br /&gt;
&lt;br /&gt;
== OpenDataStorageByDataId ==&lt;br /&gt;
Takes a [[#StorageId]] and a TitleID.&lt;br /&gt;
&lt;br /&gt;
Returns a [[IPC_Marshalling#Domain_message|domain object ID]] implementing the [[#IStorage]] interface for data archives.&lt;br /&gt;
&lt;br /&gt;
== OpenDeviceOperator ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IDeviceOperator]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenSdCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== VerifySaveDataFileSystem ==&lt;br /&gt;
Takes an unknown input u64 and a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
The input u64 high-byte must be non-zero, otherwise an [[Error_codes|error]] is returned(0xE02).&lt;br /&gt;
&lt;br /&gt;
== GetSaveDataCommitId ==&lt;br /&gt;
Takes an input u8 and u64, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== SetSdCardEncryptionSeed ==&lt;br /&gt;
Takes in the 0x10 byte SD card encryption seed, and loads it into FS-module state.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]]-module reads the 0x10 bytes from SdCard:/Nintendo/Contents/private, and compares them to the first 0x10 bytes of the ns_appman:/private (in [[Flash_Filesystem#System_Savegames|system savedata]] 0x8000000000000043). If they match, NS calls this command using bytes 0x10-0x20 from ns_appman:/private. The rest of this file (0x1F0 bytes total) is (usually/always?) all-zero (however in some cases the byte at offset 0x20 is value 0x1).&lt;br /&gt;
&lt;br /&gt;
== OpenAccessFailureResolver ==&lt;br /&gt;
Takes 8-bytes of input and returns an [[#IEventNotifier]].&lt;br /&gt;
&lt;br /&gt;
[8.0.0+] Now takes an additional 8-bytes of input.&lt;br /&gt;
&lt;br /&gt;
== SetSaveDataSize ==&lt;br /&gt;
Takes two input u64s &amp;quot;size&amp;quot; and &amp;quot;journal_size&amp;quot;, and writes them to fsp-srv object member variables.&lt;br /&gt;
&lt;br /&gt;
These variables are normally initialized with 32 MiB (0x2000000) and 16 MiB (0x1000000), respectively.&lt;br /&gt;
&lt;br /&gt;
These variables don&#039;t seem to be actually used anywhere else (?)&lt;br /&gt;
&lt;br /&gt;
== SetSaveDataRootPath ==&lt;br /&gt;
Takes an input path, and does snprintf(&amp;lt;fsp-srv object&amp;gt;-&amp;gt;m_save_data_root_path, FS_MAX_PATH-1, &amp;quot;/%s&amp;quot;, input_path);&lt;br /&gt;
&lt;br /&gt;
This path is normally all-zero. When this path is non-zero, the internal OpenSaveDataFileSystem function will create a DirectorySaveDataFileSystem if the target save is a user-save + a directory exists, instead of the normal savedata filesystem object.&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== GetGlobalAccessLogMode ==&lt;br /&gt;
Returns an output u32.&lt;br /&gt;
&lt;br /&gt;
GlobalAccessLogMode is normally 0.&lt;br /&gt;
&lt;br /&gt;
== OutputAccessLogToSdCard ==&lt;br /&gt;
Takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
The input buffer is the string to output to the log. User-processes normally include a newline at the end.&lt;br /&gt;
&lt;br /&gt;
User-processes only use this when the value previously loaded from [[#GetGlobalAccessLogMode]] has bit1 set.&lt;br /&gt;
&lt;br /&gt;
When bit1 in GlobalAccessLogMode is clear, FS-module will just return 0 for OutputAccessLogToSdCard. However even with that set the log doesn&#039;t show up SD, unknown why.&lt;br /&gt;
&lt;br /&gt;
The input buffer is written to the &amp;quot;$FsAccessLog:/FsAccessLog.txt&amp;quot; file, where &amp;quot;$FsAccessLog&amp;quot; is the SD-card mount-name. It&#039;s written to the current end of the file(appended).&lt;br /&gt;
&lt;br /&gt;
= IStorage =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IStorage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This is the interface for a raw device, usually a block device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Arguments&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read || Takes a type-0x46 buffer, an offset and length &lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write || Takes a type-0x45 buffer, an offset and length &lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush || None&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize || Takes a size&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize || None&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFileSystem =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystem&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There are two main implementations of this interface:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RomFS&#039;&#039;&#039;: Filesystem implementation statically linked in the binary. Uses an [[#IStorage]] interface as underlying raw device.&lt;br /&gt;
* &#039;&#039;&#039;IPC proxy&#039;&#039;&#039;: Used for all non-RomFS filesystems. In this case, actual filesystem implementation is in the FS process.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || CreateFile&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DeleteFile&lt;br /&gt;
|-&lt;br /&gt;
| 2 || CreateDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeleteDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 4 || DeleteDirectoryRecursively&lt;br /&gt;
|-&lt;br /&gt;
| 5 || RenameFile&lt;br /&gt;
|-&lt;br /&gt;
| 6 || RenameDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [[#GetEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [[#OpenFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [[#OpenDirectory]]&lt;br /&gt;
|-&lt;br /&gt;
| 10 || [[#Commit]]&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#GetFreeSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#GetTotalSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || [3.0.0+] [[#CleanDirectoryRecursively]]&lt;br /&gt;
|-&lt;br /&gt;
| 14 || [3.0.0+] [[#GetFileTimeStampRaw]]&lt;br /&gt;
|-&lt;br /&gt;
| 15 || [4.0.0+] QueryEntry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetEntryType ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns [[#DirectoryEntryType]] as an output u32.&lt;br /&gt;
&lt;br /&gt;
== OpenFile ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path, and an u32 &#039;&#039;&#039;mode&#039;&#039;&#039;. &#039;&#039;&#039;mode&#039;&#039;&#039; controls how the file is opened, based on which bits are set:&lt;br /&gt;
&lt;br /&gt;
* When bit 0 is set, the file is Readable: you can use the Read operation.&lt;br /&gt;
* When bit 1 is set, the file is Writable: you can use the Write operation.&lt;br /&gt;
* When bit 2 is set, the file is Appendable: unless this bit is set, you will not be able to write beyond the end of a file (such writes will result in an error 0x307202)&lt;br /&gt;
&lt;br /&gt;
== OpenDirectory ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and an u64 &#039;&#039;&#039;filter_flags&#039;&#039;&#039;. &#039;&#039;&#039;filter_flags&#039;&#039;&#039; controls what type of entries are read by the [[#IDirectory]]: bitmask 0x1 = directories, bitmask 0x2 = files.&lt;br /&gt;
&lt;br /&gt;
== Commit ==&lt;br /&gt;
Like [https://3dbrew.org/wiki/FS:ControlArchive 3DS], this has to be used after writing to savedata for the changes to take affect.&lt;br /&gt;
&lt;br /&gt;
== GetFreeSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total free space with this FS.&lt;br /&gt;
&lt;br /&gt;
== GetTotalSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total space available with this FS(free+used).&lt;br /&gt;
&lt;br /&gt;
== CleanDirectoryRecursively ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and clears the contents of the directory specified in the path.&lt;br /&gt;
&lt;br /&gt;
== GetFileTimeStampRaw ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path and returns a 0x20-byte struct. This contains 3 u64s and an u8.&lt;br /&gt;
&lt;br /&gt;
= IDirectory =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDirectory&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Read]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetEntryCount]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Read ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64(?) for the total number of read entries, this is 0 when no more entries are available.&lt;br /&gt;
&lt;br /&gt;
The output buffer contains the read array of [[#DirectoryEntry]]. This doesn&#039;t include entries for &amp;quot;.&amp;quot; and &amp;quot;..&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== GetEntryCount ==&lt;br /&gt;
Returns an u64 for the total number of readable entries.&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntry =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x301 || Path&lt;br /&gt;
|-&lt;br /&gt;
| 0x301 || 0x1 || File attributes (bit 0 = is directory; bit 1 = archive bit)&lt;br /&gt;
|-&lt;br /&gt;
| 0x302 || 0x2 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x304 || 0x1 || [[#DirectoryEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x305 || 0x3 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x308 || 0x8 || Filesize, 0 for directories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntryType =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntryType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
An s8 value indicating a directory entry type. The current values are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Directory&lt;br /&gt;
|-&lt;br /&gt;
| 1 || File&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFile =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFile&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataInfoReader =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataInfoReader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#ReadSaveDataInfo]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataInfo ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64 for total output entries. This buffer contains an array of [[#SaveDataInfo]].&lt;br /&gt;
&lt;br /&gt;
This is used to get [[#SaveDataInfo]] for all savedata on the system (or all savedata for the current [[#SaveDataSpaceId]]). When used multiple times, it will resume reading where it left off, until no more entries are available (in that case the out u64 is value 0).&lt;br /&gt;
&lt;br /&gt;
= IDeviceOperator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDeviceOperator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || IsSdCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GetSdCardSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [2.0.0+] GetSdCardCid&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [2.0.0+] GetSdCardUserAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [2.0.0+] GetSdCardProtectedAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [2.0.0+] GetAndClearSdCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 100 || GetMmcCid&lt;br /&gt;
|-&lt;br /&gt;
| 101 || GetMmcSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 110 || EraseMmc&lt;br /&gt;
|-&lt;br /&gt;
| 111 || GetMmcPartitionSize&lt;br /&gt;
|-&lt;br /&gt;
| 112 || [2.0.0+] GetMmcPatrolCount&lt;br /&gt;
|-&lt;br /&gt;
| 113 || [2.0.0+] GetAndClearMmcErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 114 || [2.0.0+] GetMmcExtendedCsd&lt;br /&gt;
|-&lt;br /&gt;
| 115 || [4.0.0+] SuspendMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 116 || [4.0.0+] ResumeMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 200 || IsGameCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 201 || EraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 202 || GetGameCardHandle&lt;br /&gt;
|-&lt;br /&gt;
| 203 || [[#GetGameCardUpdatePartitionInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 204 || FinalizeGameCardDriver&lt;br /&gt;
|-&lt;br /&gt;
| 205 || GetGameCardAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 206 || GetGameCardDeviceCertificate&lt;br /&gt;
|-&lt;br /&gt;
| 207 || GetGameCardAsicInfo&lt;br /&gt;
|-&lt;br /&gt;
| 208 || GetGameCardIdSet&lt;br /&gt;
|-&lt;br /&gt;
| 209 || WriteToGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 210 || SetVerifyWriteEnalbleFlag&lt;br /&gt;
|-&lt;br /&gt;
| 211 || GetGameCardImageHash&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [2.0.0+] GetGameCardDeviceIdForProdCard&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [2.0.0+] EraseAndWriteParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [2.0.0+] ReadParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [2.0.0+] ForceEraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [2.0.0+] GetGameCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [2.1.0+] GetGameCardErrorReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [3.0.0+] GetGameCardDeviceId&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [8.0.0+] ChallengeCardExistence&lt;br /&gt;
|-&lt;br /&gt;
| 300 || SetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 301 || GetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [5.0.0+] SuspendSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 401 || [5.0.0+] ResumeSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 402 || [6.0.0+] GetSdmmcConnectionStatus (Takes a total of 4-bytes of input, returns a total of 8-bytes of output)&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [6.0.0+] SetSimulationEvent (Takes a total of 0x14-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [6.0.0+] ClearSimulationEvent (Takes a total of 4-bytes of input, no output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetGameCardUpdatePartitionInfo ==&lt;br /&gt;
Returns a titleID and the title-version for it.&lt;br /&gt;
&lt;br /&gt;
* Output u32 with ARMS-gamecard: title-version v131162. This is the title-version for [[2.1.0]], which is the sysupdate included with this gamecard. Launch-day gamecards return title-version v450.&lt;br /&gt;
* Output u64 with ARMS-gamecard: titleID 0100000000000816.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]] appears to only use this with [[Content_Manager_services#GetTitleIdInfo]] and [[Content_Manager_services#GetUpdateTitleList]] with storageid=nandsys, for checking whether a sysupdate is required.&lt;br /&gt;
&lt;br /&gt;
= IEventNotifier =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IEventNotifier&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || GetEventHandle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManager =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManager&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetToken]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataImporter]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== SetToken ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64, returns an [[#ISaveDataExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x10-byte userID, and a type-0x5 input buffer. Returns an output u64 and an [[#ISaveDataImporter]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Pull]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#PullInitialData]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataExporter constructor. This is used automatically after [[#OpenSaveDataExporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Pull ==&lt;br /&gt;
Takes a type-0x6 output buffer, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== PullInitialData ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Push]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#Finalize]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataImporter constructor. This is used automatically after [[#OpenSaveDataImporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Push ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== Finalize ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManagerWithDivision =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManagerWithDivision&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetKeySeedPackage]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataFullExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [[#OpenSaveDataDiffExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] [[#OpenSaveDataExporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataFullImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [[#OpenSaveDataDiffImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] [[#OpenSaveDataDuplicateDiffImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] [[#OpenSaveDataImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] [[#OpenSaveDataImporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [6.0.0+] [[#CancelSuspendingImport]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer containing the &#039;&#039;&#039;Challenge&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== SetKeySeedPackage ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer containing the &#039;&#039;&#039;KeySeedPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFullExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFullImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], a 0x10-byte userID, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]], returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDuplicateDiffImporter ==&lt;br /&gt;
Takes an input u8 and an u64, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8, an u8(bool), a 0x10-byte struct, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== CancelSuspendingImport ==&lt;br /&gt;
Takes an input u64 and a 0x10-byte struct, no output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SetDivisionCount (Takes an input u32, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [6.0.0+] GetSaveDataInfo (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || OpenSaveDataDiffChunkIterator (No input, returns an [[#ISaveDataChunkIterator]])&lt;br /&gt;
|-&lt;br /&gt;
| 48 || OpenSaveDataChunkExporter (Takes an input u32, returns an [[#ISaveDataChunkExporter]])&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] FinalizeFullExport (No input, returns two 0x10-byte output structs)&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [6.0.0+] FinalizeDiffExport (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] CancelExport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] SuspendExport (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [6.0.0+] GetKeySeed (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 71 || [6.0.0+] GetInitialDataMac (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 72 || [6.0.0+] FinalizeExport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] GetImportInitialDataAad (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [6.0.0+] SetExportInitialDataAad (Takes an input 0x20-byte struct, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 96 || [6.0.0+] GetReportInfo (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [6.0.0+] GetSaveDataInfo (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || OpenSaveDataDiffChunkIterator (No input, returns an [[#ISaveDataChunkIterator]])&lt;br /&gt;
|-&lt;br /&gt;
| 32 || InitializeImport (No input, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
| 33 || FinalizeImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] CancelImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] GetImportContext (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 36 || [6.0.0+] SuspendImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 48 || OpenSaveDataChunkImporter (Takes an input u32, returns an [[#ISaveDataChunkImporter]])&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] GetImportInitialDataAad (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] GetReportInfo (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkIterator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkIterator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Next (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || IsEnd (No input, returns an output u8)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || GetId (No input, returns an output u32)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Pull (Takes an input u64 and a type-0x6 output buffer, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [6.0.0+] GetRestRawDataSize (No input, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Push (Takes an input u64 and a type-0x5 input buffer, no output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferProhibiter =&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t seem to handle any commands (?).&lt;br /&gt;
&lt;br /&gt;
= IMultiCommitManager =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || ? (Takes an input [[#IFilesystem]], no output)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || ? (No input/output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
= FileSystemType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Code&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Data&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Logo&lt;br /&gt;
|-&lt;br /&gt;
| 3 || ContentControl&lt;br /&gt;
|-&lt;br /&gt;
| 4 || ContentManual&lt;br /&gt;
|-&lt;br /&gt;
| 5 || ContentMeta&lt;br /&gt;
|-&lt;br /&gt;
| 6 || ContentData&lt;br /&gt;
|-&lt;br /&gt;
| 7 || ApplicationPackage&lt;br /&gt;
|-&lt;br /&gt;
| 8 || RegisteredUpdate&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= StorageId =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || None&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GameCard&lt;br /&gt;
|-&lt;br /&gt;
| 3 || NandSystem&lt;br /&gt;
|-&lt;br /&gt;
| 4 || NandUser&lt;br /&gt;
|-&lt;br /&gt;
| 5 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::ContentStorageId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataSpaceId =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataSpaceId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdSystem&lt;br /&gt;
|-&lt;br /&gt;
| 100 || [3.0.0+] ProperSystem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Determines the storage where the savedata is stored.&lt;br /&gt;
&lt;br /&gt;
= SaveDataType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SystemSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SaveData&lt;br /&gt;
|-&lt;br /&gt;
| 2 || BcatDeliveryCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeviceSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [3.0.0+] TemporaryStorage&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [3.0.0+] CacheStorage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ImageDirectoryId =&lt;br /&gt;
This is &amp;quot;nn::fs::ImageDirectoryId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= CloudBackupWorkStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::CloudBackupWorkStorageId&amp;quot;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= CustomStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::CustomStorageId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentPath =&lt;br /&gt;
These are the 0x300 paths to NCA files for the various filesystems FS can access, beginning with @. They&#039;re passed via X descriptors, and returned via various [[Location Resolver services|ncm/lr]] commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Path || Notes&lt;br /&gt;
|-&lt;br /&gt;
| @SystemContent ||&lt;br /&gt;
|- &lt;br /&gt;
| @UserContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @SdCardContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @CalibFile ||&lt;br /&gt;
|-&lt;br /&gt;
| @Safe ||&lt;br /&gt;
|-&lt;br /&gt;
| @User ||&lt;br /&gt;
|-&lt;br /&gt;
| @System ||&lt;br /&gt;
|-&lt;br /&gt;
| @Sdcard ||&lt;br /&gt;
|-&lt;br /&gt;
| @Host ||&lt;br /&gt;
|-&lt;br /&gt;
| @GcApp || Gamecard App partition (Partition 2)&lt;br /&gt;
|-&lt;br /&gt;
| @GcS00000001 || Gamecard Contents.&lt;br /&gt;
|-&lt;br /&gt;
| @upp || Gamecard update partition (Partition 0)&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] @RegUpdate || Registered update partition&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Save Struct =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataAttribute&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData. SaveData: 0 can be used for accessing the savedata associated with the current FS session titleID, otherwise when set this is the titleID associated with the savedata to access.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x10&lt;br /&gt;
| userID for user-specific savedata(saveuser) when set, otherwise when zero this indicates the common savedata(savecommon). This is loaded from [[Account_services]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| u64 [[Flash_Filesystem|saveID]]. 0 for SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21&lt;br /&gt;
| 0x1&lt;br /&gt;
| Save data &#039;rank&#039; or &#039;precedence&#039;. 0 if this save data is considered the primary save data. 1 if it&#039;s considered the secondary save data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x22&lt;br /&gt;
| 0x2&lt;br /&gt;
| Save data index&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
For DeviceSaveData, this struct is all-zero except for the [[#SaveDataType]] field.&lt;br /&gt;
&lt;br /&gt;
= SaveCreate Struct =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data journal size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data block size. 0x4000 for SystemSaveData/SaveData/DeviceSaveData/BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data owner id. Official user-processes only uses 0 here for SystemSaveData/SaveData. For the dedicated save-creation code with SaveData/DeviceSaveData, this value comes from an input param with official user-processes. For BcatSaveData, this is the hard-coded [[Title_list|titleID]] of the bcat-sysmodule.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4&lt;br /&gt;
| Save data flags. Written using an input param for official user-processes. Hard-coded 0 for BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataSpaceId]]. Official user-processes only uses 0 here for SystemSaveData, 1 for SaveData/DeviceSaveData/BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25&lt;br /&gt;
| 0x1&lt;br /&gt;
| Unknown. 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x1A&lt;br /&gt;
| Not initialized for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
= DeviceSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8, the only difference compared to SaveData is the Save-struct.&lt;br /&gt;
&lt;br /&gt;
= BcatSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8. The Save-struct is the same as DeviceSaveData, except that the titleID field is set to &amp;lt;input titleID&amp;gt;. See above regarding SaveCreate-struct.&lt;br /&gt;
&lt;br /&gt;
The 0x10-byte struct passed to [[#CreateSaveDataFileSystem]] has the first 0x5-bytes set to all-zero.&lt;br /&gt;
&lt;br /&gt;
= SaveDataInfo =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Unknown saveID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA&lt;br /&gt;
| 0x6&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| userID&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x8&lt;br /&gt;
| saveID, 0 for regular SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| Application titleID, for regular SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| Raw saveimage size&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x2&lt;br /&gt;
| Save data index&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A&lt;br /&gt;
| 0x1&lt;br /&gt;
| Save data &#039;rank&#039; or &#039;precedence&#039;. 0 if this save data is considered the primary save data. 1 if it&#039;s considered the secondary save data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B&lt;br /&gt;
| 0x25&lt;br /&gt;
| Unknown. Usually zeros?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a 0x60-byte struct.&lt;br /&gt;
&lt;br /&gt;
= SaveDataFileSystemExtraData =&lt;br /&gt;
This is a 0x200-byte struct. Appears to match [[Savegames#Extra_data]].&lt;br /&gt;
&lt;br /&gt;
= InitialDataVersion2 =&lt;br /&gt;
This is a 0x8210-byte struct used by [[#ISaveDataTransferManagerWithDivision]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=7433</id>
		<title>Filesystem services</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=7433"/>
		<updated>2019-08-17T01:40:37Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= fsp-ldr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxyForLoader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Arguments || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || OpenCodeFileSystem || u64 TitleId + X descriptor [[#ContentPath]] || Returns an [[#IFileSystem]].&lt;br /&gt;
|-&lt;br /&gt;
| 1 || IsArchivedProgram || u64 ProcessId || Returns a bool (1 if the process id&#039;s [[#ContentPath]] ends in &amp;quot;.nca&amp;quot;).&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] SetCurrentProcess || PID descriptor ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= fsp-pr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IProgramRegistry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#RegisterProgram]] ||&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#UnregisterProgram]] ||&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] SetCurrentProcess ||&lt;br /&gt;
|-&lt;br /&gt;
| 256 || [[#SetEnabledProgramVerification]] ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== RegisterProgram ==&lt;br /&gt;
Takes a storageID, a pid, a titleID, a 0x1C type-A buffer for the [[NPDM#FS_Access_Header| FS Access Header]], and a 0x2C type-A buffer for the [[NPDM#FS_Access_Control| FS Access Control]]&lt;br /&gt;
&lt;br /&gt;
Final FS permissions are stored as (ACI0_perms &amp;amp; ACID_perms). Will panic(svcBreak) when buffer sizes from ipc-rawdata are invalid.&lt;br /&gt;
&lt;br /&gt;
== UnregisterProgram ==&lt;br /&gt;
Takes a pid. Removes registered FS permissions for that PID.&lt;br /&gt;
&lt;br /&gt;
== SetEnabledProgramVerification ==&lt;br /&gt;
Seems to sets a global flag to inputval &amp;amp; 1.&lt;br /&gt;
&lt;br /&gt;
When the flag is zero, it will set ret=0 instead of ret={error} when verifying the fixed-key [[NPDM]] ACID signature fails. This also skips verifying the [[NCA_Format|NCA Header]] signature using the ACID key. Note that if verifying the fixed-key ACID signature is successful, and verifying the ACID-key NCA header signature fails, it will throw an error and abort.&lt;br /&gt;
&lt;br /&gt;
= fsp-srv =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxy&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [1.0.0] [[#OpenFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#SetCurrentProcess]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || OpenDataFileSystemByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [2.0.0+] [[#OpenFileSystemWithPatch]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [2.0.0+] [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [3.0.0+] OpenDataFileSystemByApplicationId&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || InvalidateBisCache&lt;br /&gt;
|-&lt;br /&gt;
| 17 || OpenHostFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 18 || OpenSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 19 || [2.0.0+] FormatSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 21 || [[#DeleteSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 22 || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 23 || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 24 || RegisterSaveDataFileSystemAtomicDeletion&lt;br /&gt;
|-&lt;br /&gt;
| 25 || [2.0.0+] DeleteSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 26 || [2.0.0+] FormatSdCardDryRun&lt;br /&gt;
|-&lt;br /&gt;
| 27 || [2.0.0+] IsExFatSupported&lt;br /&gt;
|-&lt;br /&gt;
| 28 || [4.0.0+] DeleteSaveDataFileSystemBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 30 || [[#OpenGameCardStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 31 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [3.0.0+] ExtendSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [5.0.0+] DeleteCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [5.0.0+] GetCacheStorageSize&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] CreateSaveDataFileSystemByHashSalt (Unofficial name, takes a total of 0xB0-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 51 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 52 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 53 || [2.0.0+] OpenReadOnlySaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 57 || [3.0.0+] [[#ReadSaveDataFileSystemExtraDataBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 58 || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 59 || [2.0.0+] WriteSaveDataFileSystemExtraData&lt;br /&gt;
|-&lt;br /&gt;
| 60 || [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 61 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 62 || [5.0.0+] OpenCacheStorageList&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [5.0.0+] OpenSaveDataInternalStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [5.0.0+] UpdateSaveDataMacForDebug&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [5.0.0+] WriteSaveDataFileSystemExtraData2&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] FindSaveDataWithFilter (Takes a total of 0x50-bytes of input, returns 8-bytes of output, and a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] OpenSaveDataIterator (Takes a total of 0x50-bytes of input, returns an #ISaveDataInfoReader)&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [8.0.0+] ReadSaveDataFileSystemExtraDataBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [8.0.0+] WriteSaveDataFileSystemExtraDataBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 80 || OpenSaveDataMetaFile&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [4.0.0+] OpenSaveDataTransferManager (No input, returns an [[#ISaveDataTransferManager]])&lt;br /&gt;
|-&lt;br /&gt;
| 82 || [5.0.0+] OpenSaveDataTransferManagerVersion2 (No input, returns an [[#ISaveDataTransferManagerWithDivision]])&lt;br /&gt;
|-&lt;br /&gt;
| 83 || [6.0.0+] OpenSaveDataTransferProhibiterForCloudBackUp (Takes an input u64, returns an [[#ISaveDataTransferProhibiter]])&lt;br /&gt;
|-&lt;br /&gt;
| 84 || [6.0.0+] ListApplicationAccessibleSaveDataOwnerId (Takes a total of 0x10-bytes of input, returns 4-bytes of output, and a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 100 || OpenImageDirectoryFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 110 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 120 || [6.0.0+] OpenCloudBackupWorkStorageFileSystem (Takes 4-bytes of input, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 130 || [7.0.0+] OpenCustomStorageFileSystem (Takes 4-bytes of input, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 200 || OpenDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 201 || [3.0.0+] OpenDataStorageByProgramId&lt;br /&gt;
|-&lt;br /&gt;
| 202 || [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 203 || OpenPatchDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 204 || [7.0.0+] OpenDataFileSystemByProgramIndex (Takes an input u8, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 205 || [7.0.0+] OpenDataStorageByProgramIndex (Takes an input u8, returns an [[#IStorage]])&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [[#OpenDeviceOperator]]&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 510 || [5.0.0+] OpenSystemDataUpdateEventNotifier&lt;br /&gt;
|-&lt;br /&gt;
| 511 || [5.0.0+] NotifySystemDataUpdateEvent&lt;br /&gt;
|-&lt;br /&gt;
| 520 || [6.0.0+] SimulateGameCardDetectionEvent (Takes a total of 0xC-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 600 || [1.0.0-3.0.2] SetCurrentPosixTime&lt;br /&gt;
|-&lt;br /&gt;
| 601 || QuerySaveDataTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 602 || [[#VerifySaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 603 || CorruptSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 604 || CreatePaddingFile&lt;br /&gt;
|-&lt;br /&gt;
| 605 || DeleteAllPaddingFiles&lt;br /&gt;
|-&lt;br /&gt;
| 606 || [2.0.0+] GetRightsId&lt;br /&gt;
|-&lt;br /&gt;
| 607 || [2.0.0+] RegisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 608 || [2.0.0+] UnregisterAllExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 609 || [2.0.0+] GetRightsIdByPath&lt;br /&gt;
|-&lt;br /&gt;
| 610 || [3.0.0+] GetRightsIdAndKeyGenerationByPath&lt;br /&gt;
|-&lt;br /&gt;
| 611 || [4.0.0+] SetCurrentPosixTimeWithTimeDifference&lt;br /&gt;
|-&lt;br /&gt;
| 612 || [4.0.0+] GetFreeSpaceSizeForSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 613 || [4.0.0+] VerifySaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 614 || [4.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 615 || [5.0.0+] QuerySaveDataInternalStorageTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 616 || [6.0.0+] [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| 617 || [7.0.0+] UnregisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 620 || [2.0.0+] [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| 630 || [4.0.0+] SetSdCardAccessibility&lt;br /&gt;
|-&lt;br /&gt;
| 631 || [4.0.0+] IsSdCardAccessible&lt;br /&gt;
|-&lt;br /&gt;
| 640 || [4.0.0-7.0.1] IsSignedSystemPartitionOnSdCardValid&lt;br /&gt;
|-&lt;br /&gt;
| 700 || [5.0.0+] [[#OpenAccessFailureResolver]]&lt;br /&gt;
|-&lt;br /&gt;
| 701 || [5.0.0+] GetAccessFailureDetectionEvent&lt;br /&gt;
|-&lt;br /&gt;
| 702 || [5.0.0+] IsAccessFailureDetected&lt;br /&gt;
|-&lt;br /&gt;
| 710 || [5.0.0+] ResolveAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 720 || [5.0.0+] AbandonAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [2.0.0+] GetAndClearFileSystemProxyErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [7.0.0+] RegisterProgramIndexMapInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1000 || SetBisRootForHost&lt;br /&gt;
|-&lt;br /&gt;
| 1001 || [[#SetSaveDataSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1002 || [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| 1003 || DisableAutoSaveDataCreation&lt;br /&gt;
|-&lt;br /&gt;
| 1004 || [[#SetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1005 || [[#GetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1006 || [[#OutputAccessLogToSdCard]]&lt;br /&gt;
|-&lt;br /&gt;
| 1007 || [4.0.0+] RegisterUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1008 || [4.0.0+] OpenRegisteredUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1009 || [4.0.0+] GetAndClearMemoryReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1010 || [5.1.0-6.2.0] SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| 1011 || [7.0.0+] GetAccessLogVersionInfo (Unofficial name, no input, returns two 32-bit values &amp;quot;version&amp;quot; and &amp;quot;program_index&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 1100 || [4.0.0+] OverrideSaveDataTransferTokenSignVerificationKey&lt;br /&gt;
|-&lt;br /&gt;
| 1110 || [6.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId2&lt;br /&gt;
|-&lt;br /&gt;
| 1200 || [6.0.0+] OpenMultiCommitManager (No input, returns an output #IMultiCommitManager)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
Every time permissions are checked, the process registration [[#fsp-pr]] is loaded using the session processID. The permission data is populated with data from the [[NPDM]].&lt;br /&gt;
&lt;br /&gt;
If the processID is &amp;lt;= 6 (which happens only for built-in sysmodules), it will use a hardcoded registration data. The default mask in this case is 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
Note that the functions check whether or not at least one bit is set in the mask. This means that, you don&#039;t need to set 0xFFFFFFFFFFFFFFFF to get all permissions: it suffices to set 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
If the code were to request an invalid input type, panic. But this never happens.&lt;br /&gt;
&lt;br /&gt;
=== RwPermissions ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type(s) || Mask || Name || Value || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000801 || CanMountLogo || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000801 || CanMountContentMeta || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000801 || CanMountContentControl || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000801 || CanMountContentManual || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000801 || CanMountContentData || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000801 || CanMountApplicationPackage || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000000000 || CanMountSaveDataStorage || 3 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000800 || CanMountContentStorage || 3 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000001000 || CanMountImageAndVideoStorage || 3 || [[#OpenImageDirectoryFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanMountCloudBackupWorkStorage || 3 || OpenCloudBackupWorkStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000000000&amp;lt;br/&amp;gt;([7.0.0-7.0.1] 0x4000000000000000)&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000084)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountCustomStorage || 3 || OpenCustomStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000084&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000008080) || CanMountBisCalibrationFile || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-6.2.0] 0x8000000000008080) || CanMountBisSafeMode || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000008080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountBisUser || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000008080&amp;lt;br/&amp;gt;([3.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanMountBisSystem || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000010) || CanMountBisSystemProperEncryption || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000200000&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000040020) || CanMountBisSystemProperPartition || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0xC000000000200000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000028) || CanMountSdCard || 3 || [[#OpenSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000000010&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000020) || CanMountGameCard || 3 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0x8000000000040020&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000020) || CanMountDeviceSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x8000000000000028&amp;lt;br/&amp;gt;([3.0.0-6.2.0] 0x8000000000000020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010082) || CanMountSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0x8000000000000020&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanMountOthersSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0x8000000000000020&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanMountOthersSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0x8000000000010082&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010080)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition1Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x8000000000010080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition2Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010080) || CanOpenBisPartitionUserDataRoot || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part1 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part2 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part3 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part4 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part5 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || 0x8000000000010080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000084)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000080) || CanOpenBisPartitionBootConfigAndPackage2Part6 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x8000000000000084&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationBinary || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0x8000000000000084&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationFile || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0x8000000000000080 || CanOpenBisPartitionSafeMode || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanOpenBisPartitionUser || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000100) || CanOpenBisPartitionSystem || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000100008) || CanOpenBisPartitionSystemProperEncryption || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000400000) || CanOpenBisPartitionSystemProperPartition || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x27 || 0xC000000000200000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000100008) || CanOpenSdCardStorage || ||&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x28 || 0x8000000000000100&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000100008)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000400000) || CanOpenGameCardStorage || 3 || [[#OpenGameCardStorage]], [[#EraseGameCard]] (bit1), [[#WriteToGameCard]] (bit1), [[#GetGameCardErrorInfo]] (bit1), [[#EraseAndWriteParamDirectly]] (bit1), [[#ReadParamDirectly]] (bit1), [[#ForceEraseGameCard]] (bit1) &lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x29 || 0x8000000000100008&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000400000)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010000) || CanMountSystemDataPrivate || 1 || [[#OpenFileSystem]], [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0xC000000000400000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010000)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanMountHost || 3 || [[#OpenHostFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x2B || 0x8000000000010000&amp;lt;br/&amp;gt;([1.0.0-6.2.0]0x8000000000000000) || CanMountRegisteredUpdatePartition || 1 || [[#OpenRegisteredUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] 0x2C || 0x8000000000000000 || CanOpenSaveDataInternalStorage || 3 || [[#OpenSaveDataInternalStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] 0x2D || 0x0000000000000000 || CanNotMountCustomStorage || 3 || OpenCustomStorageFileSystem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BoolPermissions ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type(s) || Mask || Name || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000080 || CanInvalidateBisCache || [[#InvalidateBisCache]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000080 || CanEraseMmc || [[#EraseMmc]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000010 || CanGetGameCardDeviceCertificate || [[#GetGameCardDeviceCertificate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000010 || CanGetGameCardIdSet || [[#GetGameCardIdSet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000200 || CanFinalizeGameCardDriver || [[#FinalizeGameCardDriver]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000200 || CanGetGameCardAsicInfo || [[#GetGameCardAsicInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000002020 || CanCreateSaveData || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000060 || CanDeleteSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000000028 || CanCreateSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000000000020 || CanCreateOthersSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000004028 || CanDeleteSystemSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000060 || CanOpenSaveDataInfoReader || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000004020 || CanOpenSaveDataInfoReaderForSystem || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000000040&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000020000) || CanOpenSaveDataIterator || OpenSaveDataIterator&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000020000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000400) || CanOpenSaveDataMetaFile || [[#OpenSaveDataMetaFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000400&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000004060) || CanSetCurrentPosixTime || [[#SetCurrentPosixTime]], [[#SetCurrentPosixTimeWithTimeDifference]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000004060&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000080000) || CanReadSaveDataFileSystemExtraData || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x8000000000080000 || CanSetGlobalAccessLogMode || [[#SetGlobalAccessMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000080000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] Invalid) || CanSetSpeedEmulationMode || [[#SetSpeedEmulationMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || Invalid&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000800000) || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0xC000000000800000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000001000000) || CanFillBis || [[#CreatePaddingFile]], [[#DeleteAllPaddingFiles]] &lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0xC000000001000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000001000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0xC000000002000000) || CanCorruptSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x16 || 0x8000000001000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000004000000) || CanCorruptSystemSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x17 || 0x8000000000000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0xC000000002000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000008000000) || CanVerifySaveData || [[#VerifySaveDataFileSystem]], [[#VerifySaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x18 || 0xC000000002000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000004000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000010000000) || CanDebugSaveData || [[#CreateSaveDataFileSystem]], [[#OpenSaveDataFileSystem]], [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x19 || 0x8000000004000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000008000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000800) || CanFormatSdCard || [[#FormatSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x1A || 0x8000000008000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000010000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000004020) || CanGetRightsId || [[#GetRightsId]], [[#GetRightsIdAndKeyGenerationByPath]], [[#GetRightsIdByPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1B || 0x8000000010000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000800)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000002020) || CanRegisterExternalKey || [[#RegisterExternalKey]], [[#UnregisterAllExternalKey]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1C || 0x8000000000000800&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000004020)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000028) || CanSetEncryptionSeed || [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1D || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000020000000) || SaveDataExtraData_Write0 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1E || 0x8000000000004020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000002020)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000040000000) || CanWriteSaveDataFileSystemExtraDataFlags || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1F || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000000) || SaveDataExtraData_Write1 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x20 || 0x8000000000000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000020000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000000) || CanWriteSaveDataFileSystemExtraDataAll || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x21 || 0x8000000000002020&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanExtendSaveData || [[#ExtendSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x22 || 0x8000000000000028&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000002) || CanExtendSystemSaveData || [[#ExtendSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x23 || 0x8000000020000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanRegisterUpdatePartition || [[#RegisterUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x24 || 0x8000000040000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanOpenSaveDataTransferManager || [[#OpenSaveDataTransferManager]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x25 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanOpenSaveDataTransferManagerVersion2 || [[#OpenSaveDataTransferManagerVersion2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x26 || 0x8000000200002000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080000110) || CanOpenSaveDataTransferProhibiterForCloudBackUp || [[#OpenSaveDataTransferProhibiterForCloudBackUp]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x27 || 0x8000000240002000 &amp;lt;br/&amp;gt;([6.0.0-7.0.1] 0x8000000200002000)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000100008) || CanListApplicationAccessibleSaveDataOwnerId || ListApplicationAccessibleSaveDataOwnerId&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x28 || 0x8000000000000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080010000) || CanControlMmcPatrol || [[#SuspendMmcPatrol]], [[#ResumeMmcPatrol]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x29 || 0x8000000000000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOverrideSaveDataTransferTokenSignVerificationKey || [[#OverrideSaveDataTransferTokenSignVerificationKey]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0x8000000080200000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSdCardDetectionEventNotifier || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2B || 0x8000000080000110&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenGameCardDetectionEventNotifier || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2C || 0x8000000000100008&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSystemDataUpdateEventNotifier || [[#OpenSystemDataUpdateEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2D || 0x8000000000010000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanNotifySystemDataUpdateEvent || [[#NotifySystemDataUpdateEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2E || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanOpenAccessFailureDetectionEventNotifier || [[#OpenAccessFailureResolver]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2F || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanGetAccessFailureDetectionEvent || [[#GetAccessFailureDetectionEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.1.0+] 0x30 || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080080000) || CanIsAccessFailureDetected || [[#IsAccessFailureDetected]] &lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x31 || 0x8000000100000000 || CanResolveAccessFailure || [[#ResolveAccessFailure]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x32 || 0x8000000100000000 || CanAbandonAccessFailure || [[#AbandonAccessFailure]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x33 || 0x8000000040000000 || CanQuerySaveDataInternalStorageTotalSize || [[#QuerySaveDataInternalStorageTotalSize]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x34 || 0x8000000200000020 || CanGetSaveDataCommitId || [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x35 || 0x8000000000200000 || CanSetSdCardAccessibility || [[#SetSdCardAccessibility]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x36 || 0x4000000000000000 || CanSimulateGameCardDetectionEvent || SimulateGameCardDetectionEvent, SetSimulationEvent, ClearSimulationEvent&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x37 || 0x8000000000000000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000080000) || CanSetDataStorageRedirectTarget || SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x38 || 0x8000000400000000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000000) || || [[#CreateSaveDataFileSystem]], CreateSaveDataFileSystemByHashSalt&lt;br /&gt;
|-&lt;br /&gt;
| [8.0.0+] 0x39 || 0x8000000000000010 || CanChallengeCardExistence || ChallengeCardExistence&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer (ContentPath) and a [[#FileSystemType]] as parameters. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
[2.0.0+] This function was removed.&lt;br /&gt;
&lt;br /&gt;
== SetCurrentProcess ==&lt;br /&gt;
Takes a pid-descriptor.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithPatch ==&lt;br /&gt;
Takes an input [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Web-applet loads the [[#FileSystemType]] (which must be &#039;&#039;&#039;ContentManual&#039;&#039;&#039;) from u32_table[inparam].&lt;br /&gt;
&lt;br /&gt;
Note: web-applet strings refer to both this cmd and [[#OpenFileSystemWithId]] as &amp;quot;MountContent&amp;quot;, but official nn_sf_sync symbols use &amp;quot;OpenXX&amp;quot; names.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithId ==&lt;br /&gt;
Takes a type-0x19 input buffer, an [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
The [[#IFileSystem]] must be &#039;&#039;&#039;ContentMeta&#039;&#039;&#039; if the NCA type is 0 (control).&lt;br /&gt;
&lt;br /&gt;
The input buffer is the output string path from [[NS_Services#GetApplicationContentPath|GetApplicationContentPath]].&lt;br /&gt;
&lt;br /&gt;
May return errors when attempting to access NCA-paths for an update-title with a gamecard, when the gamecard isn&#039;t inserted. May return error 0x7D402 in some cases with update-titles. Non-val2 in32 values with NCA-type1 are unusable, even for normal titles.&lt;br /&gt;
&lt;br /&gt;
The official &amp;quot;MountApplicationPackage&amp;quot; func uses this with in64=0 and [[#FileSystemType]] &#039;&#039;&#039;ApplicationPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
After the [[#FileSystemType]] specific permissions are checked, it then gets the func retval for permissions-type 0x25 and func0.&lt;br /&gt;
&lt;br /&gt;
When [[#FileSystemType]] is &#039;&#039;&#039;ContentMeta&#039;&#039;&#039;, it uses in64=0xffffffffffffffff internally, otherwise it checks if in64 is set to 0xffffffffffffffff then throws an error if so. When the in64 used internally is not 0xffffffffffffffff, it&#039;s compared with the NCA titleID, then an error is thrown on mismatch.&lt;br /&gt;
&lt;br /&gt;
== OpenBisFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer string and a u32 [[Flash_Filesystem|Bis partitionID]]. Official user-process code sets instr[0] = 0 normally. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Only partitionIDs for FAT partitions are usable with this, otherwise error 0x2EE202 is returned. Seems to be about the same as [[#OpenBisStorage]] except this mounts the partition filesystem instead of allowing direct access to the partition sectors.&lt;br /&gt;
&lt;br /&gt;
== OpenBisStorage ==&lt;br /&gt;
Takes a u32 partition ID, returns 0x2EE202 for partitions which do not exist, 0x320002 for partitions which cannot be opened and a valid [[#IStorage]] handle otherwise.&lt;br /&gt;
&lt;br /&gt;
== InvalidateBisCache ==&lt;br /&gt;
Seems to invalidate the Bis cache for MBR/GPT after overwriting that data via the OpenBisStorage IStorage. Used by [[SystemInitializer]].&lt;br /&gt;
&lt;br /&gt;
== DeleteSaveDataFileSystem ==&lt;br /&gt;
Takes an input u64.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystem ==&lt;br /&gt;
Takes a 0x40-byte Save-struct entry, a 0x40-byte SaveCreate-struct entry, and a 0x10-byte input struct.&lt;br /&gt;
&lt;br /&gt;
Only the first 0x5-bytes in the 0x10-byte struct are initialized: all-zero when automatically creating savedata during savecommon mount by official user-processes. In the dedicated save-creation code in official user-processes: +0 u32 = 0x40060, +4 u8 = 1.&lt;br /&gt;
&lt;br /&gt;
Creates regular savedata.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes a 0x40-byte Save-struct entry and a 0x40-byte SaveCreate-struct entry.&lt;br /&gt;
&lt;br /&gt;
Creates savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardStorage ==&lt;br /&gt;
Takes two input u32s (gamecard handle, partition ID), and returns an [[#IStorage]] for the [[Gamecard_Format|partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardFileSystem ==&lt;br /&gt;
Takes two input u32s, with the second u32 located at +4 in rawdata after the first u32. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts a [[Gamecard_Partition|gamecard partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystem ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte Save-struct entry. Official user-process code is only known to use value 1 for the u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Permissions aren&#039;t checked until the specified save is successfully found.&lt;br /&gt;
&lt;br /&gt;
Only one process (specifically only one [[#IFileSystem]] session) can mount a given savedata at any given time (this includes SystemSaveData).&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte Save-struct entry. Web-applet only uses value0 for the input u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraDataBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an input u64 saveID, and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraData ==&lt;br /&gt;
Takes an input u64 saveID and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReader ==&lt;br /&gt;
No input, returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReaderBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenContentStorageFileSystem ==&lt;br /&gt;
Takes a [[#ContentStorageId]]. Invalid values return 0x2EE202.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]] with NCA files. The read data from these files is identical to the data read by [[NCM_services#ReadContentIdFile]].&lt;br /&gt;
&lt;br /&gt;
== OpenDataStorageByDataId ==&lt;br /&gt;
Takes a [[#StorageId]] and a TitleID.&lt;br /&gt;
&lt;br /&gt;
Returns a [[IPC_Marshalling#Domain_message|domain object ID]] implementing the [[#IStorage]] interface for data archives.&lt;br /&gt;
&lt;br /&gt;
== OpenDeviceOperator ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IDeviceOperator]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenSdCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== VerifySaveDataFileSystem ==&lt;br /&gt;
Takes an unknown input u64 and a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
The input u64 high-byte must be non-zero, otherwise an [[Error_codes|error]] is returned(0xE02).&lt;br /&gt;
&lt;br /&gt;
== GetSaveDataCommitId ==&lt;br /&gt;
Takes an input u8 and u64, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== SetSdCardEncryptionSeed ==&lt;br /&gt;
Takes in the 0x10 byte SD card encryption seed, and loads it into FS-module state.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]]-module reads the 0x10 bytes from SdCard:/Nintendo/Contents/private, and compares them to the first 0x10 bytes of the ns_appman:/private (in [[Flash_Filesystem#System_Savegames|system savedata]] 0x8000000000000043). If they match, NS calls this command using bytes 0x10-0x20 from ns_appman:/private. The rest of this file (0x1F0 bytes total) is (usually/always?) all-zero (however in some cases the byte at offset 0x20 is value 0x1).&lt;br /&gt;
&lt;br /&gt;
== OpenAccessFailureResolver ==&lt;br /&gt;
Takes 8-bytes of input and returns an [[#IEventNotifier]].&lt;br /&gt;
&lt;br /&gt;
[8.0.0+] Now takes an additional 8-bytes of input.&lt;br /&gt;
&lt;br /&gt;
== SetSaveDataSize ==&lt;br /&gt;
Takes two input u64s &amp;quot;size&amp;quot; and &amp;quot;journal_size&amp;quot;, and writes them to fsp-srv object member variables.&lt;br /&gt;
&lt;br /&gt;
These variables are normally initialized with 32 MiB (0x2000000) and 16 MiB (0x1000000), respectively.&lt;br /&gt;
&lt;br /&gt;
These variables don&#039;t seem to be actually used anywhere else (?)&lt;br /&gt;
&lt;br /&gt;
== SetSaveDataRootPath ==&lt;br /&gt;
Takes an input path, and does snprintf(&amp;lt;fsp-srv object&amp;gt;-&amp;gt;m_save_data_root_path, FS_MAX_PATH-1, &amp;quot;/%s&amp;quot;, input_path);&lt;br /&gt;
&lt;br /&gt;
This path is normally all-zero. When this path is non-zero, the internal OpenSaveDataFileSystem function will create a DirectorySaveDataFileSystem if the target save is a user-save + a directory exists, instead of the normal savedata filesystem object.&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== GetGlobalAccessLogMode ==&lt;br /&gt;
Returns an output u32.&lt;br /&gt;
&lt;br /&gt;
GlobalAccessLogMode is normally 0.&lt;br /&gt;
&lt;br /&gt;
== OutputAccessLogToSdCard ==&lt;br /&gt;
Takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
The input buffer is the string to output to the log. User-processes normally include a newline at the end.&lt;br /&gt;
&lt;br /&gt;
User-processes only use this when the value previously loaded from [[#GetGlobalAccessLogMode]] has bit1 set.&lt;br /&gt;
&lt;br /&gt;
When bit1 in GlobalAccessLogMode is clear, FS-module will just return 0 for OutputAccessLogToSdCard. However even with that set the log doesn&#039;t show up SD, unknown why.&lt;br /&gt;
&lt;br /&gt;
The input buffer is written to the &amp;quot;$FsAccessLog:/FsAccessLog.txt&amp;quot; file, where &amp;quot;$FsAccessLog&amp;quot; is the SD-card mount-name. It&#039;s written to the current end of the file(appended).&lt;br /&gt;
&lt;br /&gt;
= IStorage =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IStorage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This is the interface for a raw device, usually a block device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Arguments&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read || Takes a type-0x46 buffer, an offset and length &lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write || Takes a type-0x45 buffer, an offset and length &lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush || None&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize || Takes a size&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize || None&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFileSystem =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystem&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There are two main implementations of this interface:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RomFS&#039;&#039;&#039;: Filesystem implementation statically linked in the binary. Uses an [[#IStorage]] interface as underlying raw device.&lt;br /&gt;
* &#039;&#039;&#039;IPC proxy&#039;&#039;&#039;: Used for all non-RomFS filesystems. In this case, actual filesystem implementation is in the FS process.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || CreateFile&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DeleteFile&lt;br /&gt;
|-&lt;br /&gt;
| 2 || CreateDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeleteDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 4 || DeleteDirectoryRecursively&lt;br /&gt;
|-&lt;br /&gt;
| 5 || RenameFile&lt;br /&gt;
|-&lt;br /&gt;
| 6 || RenameDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [[#GetEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [[#OpenFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [[#OpenDirectory]]&lt;br /&gt;
|-&lt;br /&gt;
| 10 || [[#Commit]]&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#GetFreeSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#GetTotalSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || [3.0.0+] [[#CleanDirectoryRecursively]]&lt;br /&gt;
|-&lt;br /&gt;
| 14 || [3.0.0+] [[#GetFileTimeStampRaw]]&lt;br /&gt;
|-&lt;br /&gt;
| 15 || [4.0.0+] QueryEntry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetEntryType ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns [[#DirectoryEntryType]] as an output u32.&lt;br /&gt;
&lt;br /&gt;
== OpenFile ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path, and an u32 &#039;&#039;&#039;mode&#039;&#039;&#039;. &#039;&#039;&#039;mode&#039;&#039;&#039; controls how the file is opened, based on which bits are set:&lt;br /&gt;
&lt;br /&gt;
* When bit 0 is set, the file is Readable: you can use the Read operation.&lt;br /&gt;
* When bit 1 is set, the file is Writable: you can use the Write operation.&lt;br /&gt;
* When bit 2 is set, the file is Appendable: unless this bit is set, you will not be able to write beyond the end of a file (such writes will result in an error 0x307202)&lt;br /&gt;
&lt;br /&gt;
== OpenDirectory ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and an u64 &#039;&#039;&#039;filter_flags&#039;&#039;&#039;. &#039;&#039;&#039;filter_flags&#039;&#039;&#039; controls what type of entries are read by the [[#IDirectory]]: bitmask 0x1 = directories, bitmask 0x2 = files.&lt;br /&gt;
&lt;br /&gt;
== Commit ==&lt;br /&gt;
Like [https://3dbrew.org/wiki/FS:ControlArchive 3DS], this has to be used after writing to savedata for the changes to take affect.&lt;br /&gt;
&lt;br /&gt;
== GetFreeSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total free space with this FS.&lt;br /&gt;
&lt;br /&gt;
== GetTotalSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total space available with this FS(free+used).&lt;br /&gt;
&lt;br /&gt;
== CleanDirectoryRecursively ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and clears the contents of the directory specified in the path.&lt;br /&gt;
&lt;br /&gt;
== GetFileTimeStampRaw ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path and returns a 0x20-byte struct. This contains 3 u64s and an u8.&lt;br /&gt;
&lt;br /&gt;
= IDirectory =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDirectory&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Read]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetEntryCount]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Read ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64(?) for the total number of read entries, this is 0 when no more entries are available.&lt;br /&gt;
&lt;br /&gt;
The output buffer contains the read array of [[#DirectoryEntry]]. This doesn&#039;t include entries for &amp;quot;.&amp;quot; and &amp;quot;..&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== GetEntryCount ==&lt;br /&gt;
Returns an u64 for the total number of readable entries.&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntry =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x301 || Path&lt;br /&gt;
|-&lt;br /&gt;
| 0x301 || 0x1 || File attributes (bit 0 = is directory; bit 1 = archive bit)&lt;br /&gt;
|-&lt;br /&gt;
| 0x302 || 0x2 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x304 || 0x1 || [[#DirectoryEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x305 || 0x3 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x308 || 0x8 || Filesize, 0 for directories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntryType =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntryType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
An s8 value indicating a directory entry type. The current values are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Directory&lt;br /&gt;
|-&lt;br /&gt;
| 1 || File&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFile =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFile&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataInfoReader =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataInfoReader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#ReadSaveDataInfo]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataInfo ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64 for total output entries. This buffer contains an array of [[#SaveDataInfo]].&lt;br /&gt;
&lt;br /&gt;
This is used to get [[#SaveDataInfo]] for all savedata on the system (or all savedata for the current [[#SaveDataSpaceId]]). When used multiple times, it will resume reading where it left off, until no more entries are available (in that case the out u64 is value 0).&lt;br /&gt;
&lt;br /&gt;
= IDeviceOperator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDeviceOperator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || IsSdCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GetSdCardSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [2.0.0+] GetSdCardCid&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [2.0.0+] GetSdCardUserAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [2.0.0+] GetSdCardProtectedAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [2.0.0+] GetAndClearSdCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 100 || GetMmcCid&lt;br /&gt;
|-&lt;br /&gt;
| 101 || GetMmcSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 110 || EraseMmc&lt;br /&gt;
|-&lt;br /&gt;
| 111 || GetMmcPartitionSize&lt;br /&gt;
|-&lt;br /&gt;
| 112 || [2.0.0+] GetMmcPatrolCount&lt;br /&gt;
|-&lt;br /&gt;
| 113 || [2.0.0+] GetAndClearMmcErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 114 || [2.0.0+] GetMmcExtendedCsd&lt;br /&gt;
|-&lt;br /&gt;
| 115 || [4.0.0+] SuspendMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 116 || [4.0.0+] ResumeMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 200 || IsGameCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 201 || EraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 202 || GetGameCardHandle&lt;br /&gt;
|-&lt;br /&gt;
| 203 || [[#GetGameCardUpdatePartitionInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 204 || FinalizeGameCardDriver&lt;br /&gt;
|-&lt;br /&gt;
| 205 || GetGameCardAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 206 || GetGameCardDeviceCertificate&lt;br /&gt;
|-&lt;br /&gt;
| 207 || GetGameCardAsicInfo&lt;br /&gt;
|-&lt;br /&gt;
| 208 || GetGameCardIdSet&lt;br /&gt;
|-&lt;br /&gt;
| 209 || WriteToGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 210 || SetVerifyWriteEnalbleFlag&lt;br /&gt;
|-&lt;br /&gt;
| 211 || GetGameCardImageHash&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [2.0.0+] GetGameCardDeviceIdForProdCard&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [2.0.0+] EraseAndWriteParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [2.0.0+] ReadParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [2.0.0+] ForceEraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [2.0.0+] GetGameCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [2.1.0+] GetGameCardErrorReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [3.0.0+] GetGameCardDeviceId&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [8.0.0+] ChallengeCardExistence&lt;br /&gt;
|-&lt;br /&gt;
| 300 || SetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 301 || GetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [5.0.0+] SuspendSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 401 || [5.0.0+] ResumeSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 402 || [6.0.0+] GetSdmmcConnectionStatus (Takes a total of 4-bytes of input, returns a total of 8-bytes of output)&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [6.0.0+] SetSimulationEvent (Takes a total of 0x14-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [6.0.0+] ClearSimulationEvent (Takes a total of 4-bytes of input, no output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetGameCardUpdatePartitionInfo ==&lt;br /&gt;
Returns a titleID and the title-version for it.&lt;br /&gt;
&lt;br /&gt;
* Output u32 with ARMS-gamecard: title-version v131162. This is the title-version for [[2.1.0]], which is the sysupdate included with this gamecard. Launch-day gamecards return title-version v450.&lt;br /&gt;
* Output u64 with ARMS-gamecard: titleID 0100000000000816.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]] appears to only use this with [[Content_Manager_services#GetTitleIdInfo]] and [[Content_Manager_services#GetUpdateTitleList]] with storageid=nandsys, for checking whether a sysupdate is required.&lt;br /&gt;
&lt;br /&gt;
= IEventNotifier =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IEventNotifier&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || GetEventHandle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManager =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManager&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetToken]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataImporter]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== SetToken ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64, returns an [[#ISaveDataExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x10-byte userID, and a type-0x5 input buffer. Returns an output u64 and an [[#ISaveDataImporter]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Pull]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#PullInitialData]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataExporter constructor. This is used automatically after [[#OpenSaveDataExporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Pull ==&lt;br /&gt;
Takes a type-0x6 output buffer, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== PullInitialData ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Push]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#Finalize]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataImporter constructor. This is used automatically after [[#OpenSaveDataImporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Push ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== Finalize ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManagerWithDivision =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManagerWithDivision&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetKeySeedPackage]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataFullExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [[#OpenSaveDataDiffExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] [[#OpenSaveDataExporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataFullImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [[#OpenSaveDataDiffImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] [[#OpenSaveDataDuplicateDiffImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] [[#OpenSaveDataImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] [[#OpenSaveDataImporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [6.0.0+] [[#CancelSuspendingImport]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer containing the &#039;&#039;&#039;Challenge&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== SetKeySeedPackage ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer containing the &#039;&#039;&#039;KeySeedPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFullExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFullImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], a 0x10-byte userID, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]], returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDuplicateDiffImporter ==&lt;br /&gt;
Takes an input u8 and an u64, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8, an u8(bool), a 0x10-byte struct, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== CancelSuspendingImport ==&lt;br /&gt;
Takes an input u64 and a 0x10-byte struct, no output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SetDivisionCount (Takes an input u32, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [6.0.0+] GetSaveDataInfo (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || OpenSaveDataDiffChunkIterator (No input, returns an [[#ISaveDataChunkIterator]])&lt;br /&gt;
|-&lt;br /&gt;
| 48 || OpenSaveDataChunkExporter (Takes an input u32, returns an [[#ISaveDataChunkExporter]])&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] FinalizeFullExport (No input, returns two 0x10-byte output structs)&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [6.0.0+] FinalizeDiffExport (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] CancelExport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] SuspendExport (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [6.0.0+] GetKeySeed (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 71 || [6.0.0+] GetInitialDataMac (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 72 || [6.0.0+] FinalizeExport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] GetImportInitialDataAad (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [6.0.0+] SetExportInitialDataAad (Takes an input 0x20-byte struct, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 96 || [6.0.0+] GetReportInfo (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [6.0.0+] GetSaveDataInfo (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || OpenSaveDataDiffChunkIterator (No input, returns an [[#ISaveDataChunkIterator]])&lt;br /&gt;
|-&lt;br /&gt;
| 32 || InitializeImport (No input, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
| 33 || FinalizeImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] CancelImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] GetImportContext (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 36 || [6.0.0+] SuspendImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 48 || OpenSaveDataChunkImporter (Takes an input u32, returns an [[#ISaveDataChunkImporter]])&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] GetImportInitialDataAad (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] GetReportInfo (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkIterator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkIterator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Next (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || IsEnd (No input, returns an output u8)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || GetId (No input, returns an output u32)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Pull (Takes an input u64 and a type-0x6 output buffer, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [6.0.0+] GetRestRawDataSize (No input, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Push (Takes an input u64 and a type-0x5 input buffer, no output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferProhibiter =&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t seem to handle any commands (?).&lt;br /&gt;
&lt;br /&gt;
= IMultiCommitManager =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || ? (Takes an input [[#IFilesystem]], no output)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || ? (No input/output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
= FileSystemType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Code&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Data&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Logo&lt;br /&gt;
|-&lt;br /&gt;
| 3 || ContentControl&lt;br /&gt;
|-&lt;br /&gt;
| 4 || ContentManual&lt;br /&gt;
|-&lt;br /&gt;
| 5 || ContentMeta&lt;br /&gt;
|-&lt;br /&gt;
| 6 || ContentData&lt;br /&gt;
|-&lt;br /&gt;
| 7 || ApplicationPackage&lt;br /&gt;
|-&lt;br /&gt;
| 8 || RegisteredUpdate&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= StorageId =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || None&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GameCard&lt;br /&gt;
|-&lt;br /&gt;
| 3 || NandSystem&lt;br /&gt;
|-&lt;br /&gt;
| 4 || NandUser&lt;br /&gt;
|-&lt;br /&gt;
| 5 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::ContentStorageId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataSpaceId =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataSpaceId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdSystem&lt;br /&gt;
|-&lt;br /&gt;
| 100 || [3.0.0+] ProperSystem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Determines the storage where the savedata is stored.&lt;br /&gt;
&lt;br /&gt;
= SaveDataType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SystemSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SaveData&lt;br /&gt;
|-&lt;br /&gt;
| 2 || BcatDeliveryCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeviceSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [3.0.0+] TemporaryStorage&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [3.0.0+] CacheStorage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ImageDirectoryId =&lt;br /&gt;
This is &amp;quot;nn::fs::ImageDirectoryId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= CloudBackupWorkStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::CloudBackupWorkStorageId&amp;quot;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= CustomStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::CustomStorageId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentPath =&lt;br /&gt;
These are the 0x300 paths to NCA files for the various filesystems FS can access, beginning with @. They&#039;re passed via X descriptors, and returned via various [[Location Resolver services|ncm/lr]] commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Path || Notes&lt;br /&gt;
|-&lt;br /&gt;
| @SystemContent ||&lt;br /&gt;
|- &lt;br /&gt;
| @UserContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @SdCardContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @CalibFile ||&lt;br /&gt;
|-&lt;br /&gt;
| @Safe ||&lt;br /&gt;
|-&lt;br /&gt;
| @User ||&lt;br /&gt;
|-&lt;br /&gt;
| @System ||&lt;br /&gt;
|-&lt;br /&gt;
| @Sdcard ||&lt;br /&gt;
|-&lt;br /&gt;
| @Host ||&lt;br /&gt;
|-&lt;br /&gt;
| @GcApp || Gamecard App partition (Partition 2)&lt;br /&gt;
|-&lt;br /&gt;
| @GcS00000001 || Gamecard Contents.&lt;br /&gt;
|-&lt;br /&gt;
| @upp || Gamecard update partition (Partition 0)&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] @RegUpdate || Registered update partition&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Save Struct =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataAttribute&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData. SaveData: 0 can be used for accessing the savedata associated with the current FS session titleID, otherwise when set this is the titleID associated with the savedata to access.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x10&lt;br /&gt;
| userID for user-specific savedata(saveuser) when set, otherwise when zero this indicates the common savedata(savecommon). This is loaded from [[Account_services]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| u64 [[Flash_Filesystem|saveID]]. 0 for SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21&lt;br /&gt;
| 0x1&lt;br /&gt;
| Save data &#039;rank&#039; or &#039;precedence&#039;. 0 if this save data is considered the primary save data. 1 if it&#039;s considered the secondary save data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x22&lt;br /&gt;
| 0x2&lt;br /&gt;
| Save data index&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
For DeviceSaveData, this struct is all-zero except for the [[#SaveDataType]] field.&lt;br /&gt;
&lt;br /&gt;
= SaveCreate Struct =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data journal size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data block size. 0x4000 for SystemSaveData/SaveData/DeviceSaveData/BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data owner id. Official user-processes only uses 0 here for SystemSaveData/SaveData. For the dedicated save-creation code with SaveData/DeviceSaveData, this value comes from an input param with official user-processes. For BcatSaveData, this is the hard-coded [[Title_list|titleID]] of the bcat-sysmodule.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4&lt;br /&gt;
| Save data flags. Written using an input param for official user-processes. Hard-coded 0 for BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataSpaceId]]. Official user-processes only uses 0 here for SystemSaveData, 1 for SaveData/DeviceSaveData/BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25&lt;br /&gt;
| 0x1&lt;br /&gt;
| Unknown. 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x1A&lt;br /&gt;
| Not initialized for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
= DeviceSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8, the only difference compared to SaveData is the Save-struct.&lt;br /&gt;
&lt;br /&gt;
= BcatSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8. The Save-struct is the same as DeviceSaveData, except that the titleID field is set to &amp;lt;input titleID&amp;gt;. See above regarding SaveCreate-struct.&lt;br /&gt;
&lt;br /&gt;
The 0x10-byte struct passed to [[#CreateSaveDataFileSystem]] has the first 0x5-bytes set to all-zero.&lt;br /&gt;
&lt;br /&gt;
= SaveDataInfo =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Unknown saveID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA&lt;br /&gt;
| 0x6&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| userID&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x8&lt;br /&gt;
| saveID, 0 for regular SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| Application titleID, for regular SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| Raw saveimage size&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x2&lt;br /&gt;
| Save data index&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A&lt;br /&gt;
| 0x1&lt;br /&gt;
| Save data &#039;rank&#039; or &#039;precedence&#039;. 0 if this save data is considered the primary save data. 1 if it&#039;s considered the secondary save data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B&lt;br /&gt;
| 0x25&lt;br /&gt;
| Unknown. Usually zeros?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a 0x60-byte struct.&lt;br /&gt;
&lt;br /&gt;
= SaveDataFileSystemExtraData =&lt;br /&gt;
This is a 0x200-byte struct. Appears to match [[Savegames#Extra_data]].&lt;br /&gt;
&lt;br /&gt;
= InitialDataVersion2 =&lt;br /&gt;
This is a 0x8210-byte struct used by [[#ISaveDataTransferManagerWithDivision]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=7278</id>
		<title>Filesystem services</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=7278"/>
		<updated>2019-07-26T17:55:29Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= fsp-ldr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxyForLoader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Arguments || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || OpenCodeFileSystem || u64 TitleId + X descriptor [[#ContentPath]] || Returns an [[#IFileSystem]].&lt;br /&gt;
|-&lt;br /&gt;
| 1 || IsArchivedProgram || u64 ProcessId || Returns a bool (1 if the process id&#039;s [[#ContentPath]] ends in &amp;quot;.nca&amp;quot;).&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] SetCurrentProcess || PID descriptor ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= fsp-pr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IProgramRegistry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#RegisterProgram]] ||&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#UnregisterProgram]] ||&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] SetCurrentProcess ||&lt;br /&gt;
|-&lt;br /&gt;
| 256 || [[#SetEnabledProgramVerification]] ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== RegisterProgram ==&lt;br /&gt;
Takes a storageID, a pid, a titleID, a 0x1C type-A buffer for the [[NPDM#FS_Access_Header| FS Access Header]], and a 0x2C type-A buffer for the [[NPDM#FS_Access_Control| FS Access Control]]&lt;br /&gt;
&lt;br /&gt;
Final FS permissions are stored as (ACI0_perms &amp;amp; ACID_perms). Will panic(svcBreak) when buffer sizes from ipc-rawdata are invalid.&lt;br /&gt;
&lt;br /&gt;
== UnregisterProgram ==&lt;br /&gt;
Takes a pid. Removes registered FS permissions for that PID.&lt;br /&gt;
&lt;br /&gt;
== SetEnabledProgramVerification ==&lt;br /&gt;
Seems to sets a global flag to inputval &amp;amp; 1.&lt;br /&gt;
&lt;br /&gt;
When the flag is zero, it will set ret=0 instead of ret={error} when verifying the fixed-key [[NPDM]] ACID signature fails. This also skips verifying the [[NCA_Format|NCA Header]] signature using the ACID key. Note that if verifying the fixed-key ACID signature is successful, and verifying the ACID-key NCA header signature fails, it will throw an error and abort.&lt;br /&gt;
&lt;br /&gt;
= fsp-srv =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxy&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [1.0.0] [[#OpenFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#SetCurrentProcess]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || OpenDataFileSystemByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [2.0.0+] [[#OpenFileSystemWithPatch]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [2.0.0+] [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [3.0.0+] OpenDataFileSystemByApplicationId&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || InvalidateBisCache&lt;br /&gt;
|-&lt;br /&gt;
| 17 || OpenHostFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 18 || OpenSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 19 || [2.0.0+] FormatSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 21 || [[#DeleteSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 22 || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 23 || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 24 || RegisterSaveDataFileSystemAtomicDeletion&lt;br /&gt;
|-&lt;br /&gt;
| 25 || [2.0.0+] DeleteSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 26 || [2.0.0+] FormatSdCardDryRun&lt;br /&gt;
|-&lt;br /&gt;
| 27 || [2.0.0+] IsExFatSupported&lt;br /&gt;
|-&lt;br /&gt;
| 28 || [4.0.0+] DeleteSaveDataFileSystemBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 30 || [[#OpenGameCardStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 31 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [3.0.0+] ExtendSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [5.0.0+] DeleteCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [5.0.0+] GetCacheStorageSize&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] CreateSaveDataFileSystemByHashSalt (Unofficial name, takes a total of 0xB0-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 51 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 52 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 53 || [2.0.0+] OpenReadOnlySaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 57 || [3.0.0+] [[#ReadSaveDataFileSystemExtraDataBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 58 || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 59 || [2.0.0+] WriteSaveDataFileSystemExtraData&lt;br /&gt;
|-&lt;br /&gt;
| 60 || [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 61 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 62 || [5.0.0+] OpenCacheStorageList&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [5.0.0+] OpenSaveDataInternalStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [5.0.0+] UpdateSaveDataMacForDebug&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [5.0.0+] WriteSaveDataFileSystemExtraData2&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] FindSaveDataWithFilter (Takes a total of 0x50-bytes of input, returns 8-bytes of output, and a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] OpenSaveDataIterator (Takes a total of 0x50-bytes of input, returns an #ISaveDataInfoReader)&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [8.0.0+] ReadSaveDataFileSystemExtraDataBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [8.0.0+] WriteSaveDataFileSystemExtraDataBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 80 || OpenSaveDataMetaFile&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [4.0.0+] OpenSaveDataTransferManager (No input, returns an [[#ISaveDataTransferManager]])&lt;br /&gt;
|-&lt;br /&gt;
| 82 || [5.0.0+] OpenSaveDataTransferManagerVersion2 (No input, returns an [[#ISaveDataTransferManagerWithDivision]])&lt;br /&gt;
|-&lt;br /&gt;
| 83 || [6.0.0+] OpenSaveDataTransferProhibiterForCloudBackUp (Takes an input u64, returns an [[#ISaveDataTransferProhibiter]])&lt;br /&gt;
|-&lt;br /&gt;
| 84 || [6.0.0+] ListApplicationAccessibleSaveDataOwnerId (Takes a total of 0x10-bytes of input, returns 4-bytes of output, and a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 100 || OpenImageDirectoryFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 110 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 120 || [6.0.0+] OpenCloudBackupWorkStorageFileSystem (Takes 4-bytes of input, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 130 || [7.0.0+] OpenCustomStorageFileSystem (Takes 4-bytes of input, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 200 || OpenDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 201 || [3.0.0+] OpenDataStorageByProgramId&lt;br /&gt;
|-&lt;br /&gt;
| 202 || [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 203 || OpenPatchDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 204 || [7.0.0+] OpenDataFileSystemByProgramIndex (Takes an input u8, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 205 || [7.0.0+] OpenDataStorageByProgramIndex (Takes an input u8, returns an [[#IStorage]])&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [[#OpenDeviceOperator]]&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 510 || [5.0.0+] OpenSystemDataUpdateEventNotifier&lt;br /&gt;
|-&lt;br /&gt;
| 511 || [5.0.0+] NotifySystemDataUpdateEvent&lt;br /&gt;
|-&lt;br /&gt;
| 520 || [6.0.0+] SimulateGameCardDetectionEvent (Takes a total of 0xC-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 600 || [1.0.0-3.0.2] SetCurrentPosixTime&lt;br /&gt;
|-&lt;br /&gt;
| 601 || QuerySaveDataTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 602 || [[#VerifySaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 603 || CorruptSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 604 || CreatePaddingFile&lt;br /&gt;
|-&lt;br /&gt;
| 605 || DeleteAllPaddingFiles&lt;br /&gt;
|-&lt;br /&gt;
| 606 || [2.0.0+] GetRightsId&lt;br /&gt;
|-&lt;br /&gt;
| 607 || [2.0.0+] RegisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 608 || [2.0.0+] UnregisterAllExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 609 || [2.0.0+] GetRightsIdByPath&lt;br /&gt;
|-&lt;br /&gt;
| 610 || [3.0.0+] GetRightsIdAndKeyGenerationByPath&lt;br /&gt;
|-&lt;br /&gt;
| 611 || [4.0.0+] SetCurrentPosixTimeWithTimeDifference&lt;br /&gt;
|-&lt;br /&gt;
| 612 || [4.0.0+] GetFreeSpaceSizeForSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 613 || [4.0.0+] VerifySaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 614 || [4.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 615 || [5.0.0+] QuerySaveDataInternalStorageTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 616 || [6.0.0+] [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| 617 || [7.0.0+] UnregisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 620 || [2.0.0+] [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| 630 || [4.0.0+] SetSdCardAccessibility&lt;br /&gt;
|-&lt;br /&gt;
| 631 || [4.0.0+] IsSdCardAccessible&lt;br /&gt;
|-&lt;br /&gt;
| 640 || [4.0.0-7.0.1] IsSignedSystemPartitionOnSdCardValid&lt;br /&gt;
|-&lt;br /&gt;
| 700 || [5.0.0+] [[#OpenAccessFailureResolver]]&lt;br /&gt;
|-&lt;br /&gt;
| 701 || [5.0.0+] GetAccessFailureDetectionEvent&lt;br /&gt;
|-&lt;br /&gt;
| 702 || [5.0.0+] IsAccessFailureDetected&lt;br /&gt;
|-&lt;br /&gt;
| 710 || [5.0.0+] ResolveAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 720 || [5.0.0+] AbandonAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [2.0.0+] GetAndClearFileSystemProxyErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [7.0.0+] RegisterProgramIndexMapInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1000 || SetBisRootForHost&lt;br /&gt;
|-&lt;br /&gt;
| 1001 || [[#SetSaveDataSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1002 || [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| 1003 || DisableAutoSaveDataCreation&lt;br /&gt;
|-&lt;br /&gt;
| 1004 || [[#SetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1005 || [[#GetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1006 || [[#OutputAccessLogToSdCard]]&lt;br /&gt;
|-&lt;br /&gt;
| 1007 || [4.0.0+] RegisterUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1008 || [4.0.0+] OpenRegisteredUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1009 || [4.0.0+] GetAndClearMemoryReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1010 || [5.1.0-6.2.0] SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| 1011 || [7.0.0+] GetAccessLogVersionInfo (Unofficial name, no input, returns two 32-bit values &amp;quot;version&amp;quot; and &amp;quot;program_index&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 1100 || [4.0.0+] OverrideSaveDataTransferTokenSignVerificationKey&lt;br /&gt;
|-&lt;br /&gt;
| 1110 || [6.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId2&lt;br /&gt;
|-&lt;br /&gt;
| 1200 || [6.0.0+] OpenMultiCommitManager (No input, returns an output #IMultiCommitManager)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
Every time permissions are checked, the process registration [[#fsp-pr]] is loaded using the session processID. The permission data is populated with data from the [[NPDM]].&lt;br /&gt;
&lt;br /&gt;
If the processID is &amp;lt;= 6 (which happens only for built-in sysmodules), it will use a hardcoded registration data. The default mask in this case is 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
Note that the functions check whether or not at least one bit is set in the mask. This means that, you don&#039;t need to set 0xFFFFFFFFFFFFFFFF to get all permissions: it suffices to set 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
If the code were to request an invalid input type, panic. But this never happens.&lt;br /&gt;
&lt;br /&gt;
=== RwPermissions ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type(s) || Mask || Name || Value || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000801 || CanMountLogo || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000801 || CanMountContentMeta || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000801 || CanMountContentControl || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000801 || CanMountContentManual || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000801 || CanMountContentData || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000801 || CanMountApplicationPackage || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000000000 || CanMountSaveDataStorage || 3 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000800 || CanMountContentStorage || 3 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000001000 || CanMountImageAndVideoStorage || 3 || [[#OpenImageDirectoryFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanMountCloudBackupWorkStorage || 3 || OpenCloudBackupWorkStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000000000&amp;lt;br/&amp;gt;([7.0.0-7.0.1] 0x4000000000000000)&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000084)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountCustomStorage || 3 || OpenCustomStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000084&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000008080) || CanMountBisCalibrationFile || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-6.2.0] 0x8000000000008080) || CanMountBisSafeMode || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000008080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountBisUser || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000008080&amp;lt;br/&amp;gt;([3.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanMountBisSystem || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000010) || CanMountBisSystemProperEncryption || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000200000&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000040020) || CanMountBisSystemProperPartition || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0xC000000000200000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000028) || CanMountSdCard || 3 || [[#OpenSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000000010&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000020) || CanMountGameCard || 3 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0x8000000000040020&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000020) || CanMountDeviceSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x8000000000000028&amp;lt;br/&amp;gt;([3.0.0-6.2.0] 0x8000000000000020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010082) || CanMountSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0x8000000000000020&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanMountOthersSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0x8000000000000020&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanMountOthersSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0x8000000000010082&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010080)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition1Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x8000000000010080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition2Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010080) || CanOpenBisPartitionUserDataRoot || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part1 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part2 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part3 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part4 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part5 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || 0x8000000000010080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000084)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000080) || CanOpenBisPartitionBootConfigAndPackage2Part6 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x8000000000000084&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationBinary || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0x8000000000000084&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationFile || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0x8000000000000080 || CanOpenBisPartitionSafeMode || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanOpenBisPartitionUser || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000100) || CanOpenBisPartitionSystem || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000100008) || CanOpenBisPartitionSystemProperEncryption || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000400000) || CanOpenBisPartitionSystemProperPartition || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x27 || 0xC000000000200000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000100008) || CanOpenSdCardStorage || ||&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x28 || 0x8000000000000100&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000100008)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000400000) || CanOpenGameCardStorage || 3 || [[#OpenGameCardStorage]], [[#EraseGameCard]] (bit1), [[#WriteToGameCard]] (bit1), [[#GetGameCardErrorInfo]] (bit1), [[#EraseAndWriteParamDirectly]] (bit1), [[#ReadParamDirectly]] (bit1), [[#ForceEraseGameCard]] (bit1) &lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x29 || 0x8000000000100008&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000400000)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010000) || CanMountSystemDataPrivate || 1 || [[#OpenFileSystem]], [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0xC000000000400000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010000)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanMountHost || 3 || [[#OpenHostFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x2B || 0x8000000000010000&amp;lt;br/&amp;gt;([1.0.0-6.2.0]0x8000000000000000) || CanMountRegisteredUpdatePartition || 1 || [[#OpenRegisteredUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] 0x2C || 0x8000000000000000 || CanOpenSaveDataInternalStorage || 3 || [[#OpenSaveDataInternalStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] 0x2D || 0x0000000000000000 || CanNotMountCustomStorage || 3 || OpenCustomStorageFileSystem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BoolPermissions ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type(s) || Mask || Name || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000080 || CanInvalidateBisCache || [[#InvalidateBisCache]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000080 || CanEraseMmc || [[#EraseMmc]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000010 || CanGetGameCardDeviceCertificate || [[#GetGameCardDeviceCertificate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000010 || CanGetGameCardIdSet || [[#GetGameCardIdSet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000200 || CanFinalizeGameCardDriver || [[#FinalizeGameCardDriver]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000200 || CanGetGameCardAsicInfo || [[#GetGameCardAsicInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000002020 || CanCreateSaveData || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000060 || CanDeleteSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000000028 || CanCreateSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000000000020 || CanCreateOthersSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000004028 || CanDeleteSystemSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000060 || CanOpenSaveDataInfoReader || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000004020 || CanOpenSaveDataInfoReaderForSystem || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000000040&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000020000) || CanOpenSaveDataIterator || OpenSaveDataIterator&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000020000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000400) || CanOpenSaveDataMetaFile || [[#OpenSaveDataMetaFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000400&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000004060) || CanSetCurrentPosixTime || [[#SetCurrentPosixTime]], [[#SetCurrentPosixTimeWithTimeDifference]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000004060&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000080000) || CanReadSaveDataFileSystemExtraData || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x8000000000080000 || CanSetGlobalAccessLogMode || [[#SetGlobalAccessMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000080000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] Invalid) || CanSetSpeedEmulationMode || [[#SetSpeedEmulationMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || Invalid&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000800000) || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0xC000000000800000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000001000000) || CanFillBis || [[#CreatePaddingFile]], [[#DeleteAllPaddingFiles]] &lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0xC000000001000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000001000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0xC000000002000000) || CanCorruptSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x16 || 0x8000000001000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000004000000) || CanCorruptSystemSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x17 || 0x8000000000000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0xC000000002000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000008000000) || CanVerifySaveData || [[#VerifySaveDataFileSystem]], [[#VerifySaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x18 || 0xC000000002000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000004000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000010000000) || CanDebugSaveData || [[#CreateSaveDataFileSystem]], [[#OpenSaveDataFileSystem]], [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x19 || 0x8000000004000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000008000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000800) || CanFormatSdCard || [[#FormatSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x1A || 0x8000000008000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000010000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000004020) || CanGetRightsId || [[#GetRightsId]], [[#GetRightsIdAndKeyGenerationByPath]], [[#GetRightsIdByPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1B || 0x8000000010000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000800)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000002020) || CanRegisterExternalKey || [[#RegisterExternalKey]], [[#UnregisterAllExternalKey]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1C || 0x8000000000000800&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000004020)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000028) || CanSetEncryptionSeed || [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1D || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000020000000) || SaveDataExtraData_Write0 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1E || 0x8000000000004020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000002020)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000040000000) || CanWriteSaveDataFileSystemExtraDataFlags || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1F || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000000) || SaveDataExtraData_Write1 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x20 || 0x8000000000000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000020000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000000) || CanWriteSaveDataFileSystemExtraDataAll || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x21 || 0x8000000000002020&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanExtendSaveData || [[#ExtendSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x22 || 0x8000000000000028&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000002) || CanExtendSystemSaveData || [[#ExtendSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x23 || 0x8000000020000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanRegisterUpdatePartition || [[#RegisterUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x24 || 0x8000000040000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanOpenSaveDataTransferManager || [[#OpenSaveDataTransferManager]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x25 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanOpenSaveDataTransferManagerVersion2 || [[#OpenSaveDataTransferManagerVersion2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x26 || 0x8000000200002000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080000110) || CanOpenSaveDataTransferProhibiterForCloudBackUp || [[#OpenSaveDataTransferProhibiterForCloudBackUp]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x27 || 0x8000000240002000 &amp;lt;br/&amp;gt;([6.0.0-7.0.1] 0x8000000200002000)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000100008) || CanListApplicationAccessibleSaveDataOwnerId || ListApplicationAccessibleSaveDataOwnerId&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x28 || 0x8000000000000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080010000) || CanControlMmcPatrol || [[#SuspendMmcPatrol]], [[#ResumeMmcPatrol]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x29 || 0x8000000000000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOverrideSaveDataTransferTokenSignVerificationKey || [[#OverrideSaveDataTransferTokenSignVerificationKey]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0x8000000080200000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSdCardDetectionEventNotifier || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2B || 0x8000000080000110&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenGameCardDetectionEventNotifier || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2C || 0x8000000000100008&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSystemDataUpdateEventNotifier || [[#OpenSystemDataUpdateEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2D || 0x8000000000010000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanNotifySystemDataUpdateEvent || [[#NotifySystemDataUpdateEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2E || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanOpenAccessFailureDetectionEventNotifier || [[#OpenAccessFailureResolver]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2F || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanGetAccessFailureDetectionEvent || [[#GetAccessFailureDetectionEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.1.0+] 0x30 || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080080000) || CanIsAccessFailureDetected || [[#IsAccessFailureDetected]] &lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x31 || 0x8000000100000000 || CanResolveAccessFailure || [[#ResolveAccessFailure]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x32 || 0x8000000100000000 || CanAbandonAccessFailure || [[#AbandonAccessFailure]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x33 || 0x8000000040000000 || CanQuerySaveDataInternalStorageTotalSize || [[#QuerySaveDataInternalStorageTotalSize]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x34 || 0x8000000200000020 || CanGetSaveDataCommitId || [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x35 || 0x8000000000200000 || CanSetSdCardAccessibility || [[#SetSdCardAccessibility]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x36 || 0x4000000000000000 || CanSimulateGameCardDetectionEvent || SimulateGameCardDetectionEvent, SetSimulationEvent, ClearSimulationEvent&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x37 || 0x8000000000000000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000080000) || CanSetDataStorageRedirectTarget || SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x38 || 0x8000000400000000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000000) || || [[#CreateSaveDataFileSystem]], CreateSaveDataFileSystemByHashSalt&lt;br /&gt;
|-&lt;br /&gt;
| [8.0.0+] 0x39 || 0x8000000000000010 || CanChallengeCardExistence || ChallengeCardExistence&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer (ContentPath) and a [[#FileSystemType]] as parameters. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
[2.0.0+] This function was removed.&lt;br /&gt;
&lt;br /&gt;
== SetCurrentProcess ==&lt;br /&gt;
Takes a pid-descriptor.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithPatch ==&lt;br /&gt;
Takes an input [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Web-applet loads the [[#FileSystemType]] (which must be &#039;&#039;&#039;ContentManual&#039;&#039;&#039;) from u32_table[inparam].&lt;br /&gt;
&lt;br /&gt;
Note: web-applet strings refer to both this cmd and [[#OpenFileSystemWithId]] as &amp;quot;MountContent&amp;quot;, but official nn_sf_sync symbols use &amp;quot;OpenXX&amp;quot; names.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithId ==&lt;br /&gt;
Takes a type-0x19 input buffer, an [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
The [[#IFileSystem]] must be &#039;&#039;&#039;ContentMeta&#039;&#039;&#039; if the NCA type is 0 (control).&lt;br /&gt;
&lt;br /&gt;
The input buffer is the output string path from [[NS_Services#GetApplicationContentPath|GetApplicationContentPath]].&lt;br /&gt;
&lt;br /&gt;
May return errors when attempting to access NCA-paths for an update-title with a gamecard, when the gamecard isn&#039;t inserted. May return error 0x7D402 in some cases with update-titles. Non-val2 in32 values with NCA-type1 are unusable, even for normal titles.&lt;br /&gt;
&lt;br /&gt;
The official &amp;quot;MountApplicationPackage&amp;quot; func uses this with in64=0 and [[#FileSystemType]] &#039;&#039;&#039;ApplicationPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
After the [[#FileSystemType]] specific permissions are checked, it then gets the func retval for permissions-type 0x25 and func0.&lt;br /&gt;
&lt;br /&gt;
When [[#FileSystemType]] is &#039;&#039;&#039;ContentMeta&#039;&#039;&#039;, it uses in64=0xffffffffffffffff internally, otherwise it checks if in64 is set to 0xffffffffffffffff then throws an error if so. When the in64 used internally is not 0xffffffffffffffff, it&#039;s compared with the NCA titleID, then an error is thrown on mismatch.&lt;br /&gt;
&lt;br /&gt;
== OpenBisFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer string and a u32 [[Flash_Filesystem|Bis partitionID]]. Official user-process code sets instr[0] = 0 normally. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Only partitionIDs for FAT partitions are usable with this, otherwise error 0x2EE202 is returned. Seems to be about the same as [[#OpenBisStorage]] except this mounts the partition filesystem instead of allowing direct access to the partition sectors.&lt;br /&gt;
&lt;br /&gt;
== OpenBisStorage ==&lt;br /&gt;
Takes a u32 partition ID, returns 0x2EE202 for partitions which do not exist, 0x320002 for partitions which cannot be opened and a valid [[#IStorage]] handle otherwise.&lt;br /&gt;
&lt;br /&gt;
== InvalidateBisCache ==&lt;br /&gt;
Seems to invalidate the Bis cache for MBR/GPT after overwriting that data via the OpenBisStorage IStorage. Used by [[SystemInitializer]].&lt;br /&gt;
&lt;br /&gt;
== DeleteSaveDataFileSystem ==&lt;br /&gt;
Takes an input u64.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystem ==&lt;br /&gt;
Takes a 0x40-byte Save-struct entry, a 0x40-byte SaveCreate-struct entry, and a 0x10-byte input struct.&lt;br /&gt;
&lt;br /&gt;
Only the first 0x5-bytes in the 0x10-byte struct are initialized: all-zero when automatically creating savedata during savecommon mount by official user-processes. In the dedicated save-creation code in official user-processes: +0 u32 = 0x40060, +4 u8 = 1.&lt;br /&gt;
&lt;br /&gt;
Creates regular savedata.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes a 0x40-byte Save-struct entry and a 0x40-byte SaveCreate-struct entry.&lt;br /&gt;
&lt;br /&gt;
Creates savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardStorage ==&lt;br /&gt;
Takes two input u32s (gamecard handle, partition ID), and returns an [[#IStorage]] for the [[Gamecard_Format|partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardFileSystem ==&lt;br /&gt;
Takes two input u32s, with the second u32 located at +4 in rawdata after the first u32. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts a [[Gamecard_Partition|gamecard partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystem ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte Save-struct entry. Official user-process code is only known to use value 1 for the u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Permissions aren&#039;t checked until the specified save is successfully found.&lt;br /&gt;
&lt;br /&gt;
Only one process (specifically only one [[#IFileSystem]] session) can mount a given savedata at any given time (this includes SystemSaveData).&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte Save-struct entry. Web-applet only uses value0 for the input u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraDataBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an input u64 saveID, and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraData ==&lt;br /&gt;
Takes an input u64 saveID and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReader ==&lt;br /&gt;
No input, returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReaderBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenContentStorageFileSystem ==&lt;br /&gt;
Takes a [[#ContentStorageId]]. Invalid values return 0x2EE202.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]] with NCA files. The read data from these files is identical to the data read by [[NCM_services#ReadContentIdFile]].&lt;br /&gt;
&lt;br /&gt;
== OpenDataStorageByDataId ==&lt;br /&gt;
Takes a [[#StorageId]] and a TitleID.&lt;br /&gt;
&lt;br /&gt;
Returns a [[IPC_Marshalling#Domain_message|domain object ID]] implementing the [[#IStorage]] interface for data archives.&lt;br /&gt;
&lt;br /&gt;
== OpenDeviceOperator ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IDeviceOperator]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenSdCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== VerifySaveDataFileSystem ==&lt;br /&gt;
Takes an unknown input u64 and a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
The input u64 high-byte must be non-zero, otherwise an [[Error_codes|error]] is returned(0xE02).&lt;br /&gt;
&lt;br /&gt;
== GetSaveDataCommitId ==&lt;br /&gt;
Takes an input u8 and u64, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== SetSdCardEncryptionSeed ==&lt;br /&gt;
Takes in the 0x10 byte SD card encryption seed, and loads it into FS-module state.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]]-module reads the 0x10 bytes from SdCard:/Nintendo/Contents/private, and compares them to the first 0x10 bytes of the ns_appman:/private (in [[Flash_Filesystem#System_Savegames|system savedata]] 0x8000000000000043). If they match, NS calls this command using bytes 0x10-0x20 from ns_appman:/private. The rest of this file (0x1F0 bytes total) is (usually/always?) all-zero (however in some cases the byte at offset 0x20 is value 0x1).&lt;br /&gt;
&lt;br /&gt;
== OpenAccessFailureResolver ==&lt;br /&gt;
Takes 8-bytes of input and returns an [[#IEventNotifier]].&lt;br /&gt;
&lt;br /&gt;
[8.0.0+] Now takes an additional 8-bytes of input.&lt;br /&gt;
&lt;br /&gt;
== SetSaveDataSize ==&lt;br /&gt;
Takes two input u64s &amp;quot;size&amp;quot; and &amp;quot;journal_size&amp;quot;, and writes them to fsp-srv object member variables.&lt;br /&gt;
&lt;br /&gt;
These variables are normally initialized with 32 MiB (0x2000000) and 16 MiB (0x1000000), respectively.&lt;br /&gt;
&lt;br /&gt;
These variables don&#039;t seem to be actually used anywhere else (?)&lt;br /&gt;
&lt;br /&gt;
== SetSaveDataRootPath ==&lt;br /&gt;
Takes an input path, and does snprintf(&amp;lt;fsp-srv object&amp;gt;-&amp;gt;m_save_data_root_path, FS_MAX_PATH-1, &amp;quot;/%s&amp;quot;, input_path);&lt;br /&gt;
&lt;br /&gt;
This path is normally all-zero. When this path is non-zero, the internal OpenSaveDataFileSystem function will create a DirectorySaveDataFileSystem if the target save is a user-save + a directory exists, instead of the normal savedata filesystem object.&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== GetGlobalAccessLogMode ==&lt;br /&gt;
Returns an output u32.&lt;br /&gt;
&lt;br /&gt;
GlobalAccessLogMode is normally 0.&lt;br /&gt;
&lt;br /&gt;
== OutputAccessLogToSdCard ==&lt;br /&gt;
Takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
The input buffer is the string to output to the log. User-processes normally include a newline at the end.&lt;br /&gt;
&lt;br /&gt;
User-processes only use this when the value previously loaded from [[#GetGlobalAccessLogMode]] has bit1 set.&lt;br /&gt;
&lt;br /&gt;
When bit1 in GlobalAccessLogMode is clear, FS-module will just return 0 for OutputAccessLogToSdCard. However even with that set the log doesn&#039;t show up SD, unknown why.&lt;br /&gt;
&lt;br /&gt;
The input buffer is written to the &amp;quot;$FsAccessLog:/FsAccessLog.txt&amp;quot; file, where &amp;quot;$FsAccessLog&amp;quot; is the SD-card mount-name. It&#039;s written to the current end of the file(appended).&lt;br /&gt;
&lt;br /&gt;
= IStorage =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IStorage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This is the interface for a raw device, usually a block device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Arguments&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read || Takes a type-0x46 buffer, an offset and length &lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write || Takes a type-0x45 buffer, an offset and length &lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush || None&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize || Takes a size&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize || None&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFileSystem =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystem&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There are two main implementations of this interface:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RomFS&#039;&#039;&#039;: Filesystem implementation statically linked in the binary. Uses an [[#IStorage]] interface as underlying raw device.&lt;br /&gt;
* &#039;&#039;&#039;IPC proxy&#039;&#039;&#039;: Used for all non-RomFS filesystems. In this case, actual filesystem implementation is in the FS process.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || CreateFile&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DeleteFile&lt;br /&gt;
|-&lt;br /&gt;
| 2 || CreateDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeleteDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 4 || DeleteDirectoryRecursively&lt;br /&gt;
|-&lt;br /&gt;
| 5 || RenameFile&lt;br /&gt;
|-&lt;br /&gt;
| 6 || RenameDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [[#GetEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [[#OpenFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [[#OpenDirectory]]&lt;br /&gt;
|-&lt;br /&gt;
| 10 || [[#Commit]]&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#GetFreeSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#GetTotalSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || [3.0.0+] [[#CleanDirectoryRecursively]]&lt;br /&gt;
|-&lt;br /&gt;
| 14 || [3.0.0+] [[#GetFileTimeStampRaw]]&lt;br /&gt;
|-&lt;br /&gt;
| 15 || [4.0.0+] QueryEntry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetEntryType ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns [[#DirectoryEntryType]] as an output u32.&lt;br /&gt;
&lt;br /&gt;
== OpenFile ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path, and an u32 &#039;&#039;&#039;mode&#039;&#039;&#039;. &#039;&#039;&#039;mode&#039;&#039;&#039; controls how the file is opened, based on which bits are set:&lt;br /&gt;
&lt;br /&gt;
* When bit 0 is set, the file is Readable: you can use the Read operation.&lt;br /&gt;
* When bit 1 is set, the file is Writable: you can use the Write operation.&lt;br /&gt;
* When bit 2 is set, the file is Appendable: unless this bit is set, you will not be able to write beyond the end of a file (such writes will result in an error 0x307202)&lt;br /&gt;
&lt;br /&gt;
== OpenDirectory ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and an u64 &#039;&#039;&#039;filter_flags&#039;&#039;&#039;. &#039;&#039;&#039;filter_flags&#039;&#039;&#039; controls what type of entries are read by the [[#IDirectory]]: bitmask 0x1 = directories, bitmask 0x2 = files.&lt;br /&gt;
&lt;br /&gt;
== Commit ==&lt;br /&gt;
Like [https://3dbrew.org/wiki/FS:ControlArchive 3DS], this has to be used after writing to savedata for the changes to take affect.&lt;br /&gt;
&lt;br /&gt;
== GetFreeSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total free space with this FS.&lt;br /&gt;
&lt;br /&gt;
== GetTotalSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total space available with this FS(free+used).&lt;br /&gt;
&lt;br /&gt;
== CleanDirectoryRecursively ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and clears the contents of the directory specified in the path.&lt;br /&gt;
&lt;br /&gt;
== GetFileTimeStampRaw ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path and returns a 0x20-byte struct. This contains 3 u64s and an u8.&lt;br /&gt;
&lt;br /&gt;
= IDirectory =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDirectory&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Read]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetEntryCount]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Read ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64(?) for the total number of read entries, this is 0 when no more entries are available.&lt;br /&gt;
&lt;br /&gt;
The output buffer contains the read array of [[#DirectoryEntry]]. This doesn&#039;t include entries for &amp;quot;.&amp;quot; and &amp;quot;..&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== GetEntryCount ==&lt;br /&gt;
Returns an u64 for the total number of readable entries.&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntry =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x301 || Path&lt;br /&gt;
|-&lt;br /&gt;
| 0x301 || 0x1 || File attributes (bit 0 = is directory; bit 1 = archive bit)&lt;br /&gt;
|-&lt;br /&gt;
| 0x302 || 0x2 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x304 || 0x1 || [[#DirectoryEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x305 || 0x3 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x308 || 0x8 || Filesize, 0 for directories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntryType =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntryType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
An s8 value indicating a directory entry type. The current values are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Directory&lt;br /&gt;
|-&lt;br /&gt;
| 1 || File&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFile =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFile&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataInfoReader =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataInfoReader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#ReadSaveDataInfo]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataInfo ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64 for total output entries. This buffer contains an array of [[#SaveDataInfo]].&lt;br /&gt;
&lt;br /&gt;
This is used to get [[#SaveDataInfo]] for all savedata on the system (or all savedata for the current [[#SaveDataSpaceId]]). When used multiple times, it will resume reading where it left off, until no more entries are available (in that case the out u64 is value 0).&lt;br /&gt;
&lt;br /&gt;
= IDeviceOperator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDeviceOperator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || IsSdCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GetSdCardSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [2.0.0+] GetSdCardCid&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [2.0.0+] GetSdCardUserAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [2.0.0+] GetSdCardProtectedAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [2.0.0+] GetAndClearSdCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 100 || GetMmcCid&lt;br /&gt;
|-&lt;br /&gt;
| 101 || GetMmcSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 110 || EraseMmc&lt;br /&gt;
|-&lt;br /&gt;
| 111 || GetMmcPartitionSize&lt;br /&gt;
|-&lt;br /&gt;
| 112 || [2.0.0+] GetMmcPatrolCount&lt;br /&gt;
|-&lt;br /&gt;
| 113 || [2.0.0+] GetAndClearMmcErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 114 || [2.0.0+] GetMmcExtendedCsd&lt;br /&gt;
|-&lt;br /&gt;
| 115 || [4.0.0+] SuspendMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 116 || [4.0.0+] ResumeMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 200 || IsGameCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 201 || EraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 202 || GetGameCardHandle&lt;br /&gt;
|-&lt;br /&gt;
| 203 || [[#GetGameCardUpdatePartitionInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 204 || FinalizeGameCardDriver&lt;br /&gt;
|-&lt;br /&gt;
| 205 || GetGameCardAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 206 || GetGameCardDeviceCertificate&lt;br /&gt;
|-&lt;br /&gt;
| 207 || GetGameCardAsicInfo&lt;br /&gt;
|-&lt;br /&gt;
| 208 || GetGameCardIdSet&lt;br /&gt;
|-&lt;br /&gt;
| 209 || WriteToGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 210 || SetVerifyWriteEnalbleFlag&lt;br /&gt;
|-&lt;br /&gt;
| 211 || GetGameCardImageHash&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [2.0.0+] GetGameCardDeviceIdForProdCard&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [2.0.0+] EraseAndWriteParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [2.0.0+] ReadParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [2.0.0+] ForceEraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [2.0.0+] GetGameCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [2.1.0+] GetGameCardErrorReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [3.0.0+] GetGameCardDeviceId&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [8.0.0+] ChallengeCardExistence&lt;br /&gt;
|-&lt;br /&gt;
| 300 || SetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 301 || GetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [5.0.0+] SuspendSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 401 || [5.0.0+] ResumeSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 402 || [6.0.0+] GetSdmmcConnectionStatus (Takes a total of 4-bytes of input, returns a total of 8-bytes of output)&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [6.0.0+] SetSimulationEvent (Takes a total of 0x14-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [6.0.0+] ClearSimulationEvent (Takes a total of 4-bytes of input, no output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetGameCardUpdatePartitionInfo ==&lt;br /&gt;
Returns a titleID and the title-version for it.&lt;br /&gt;
&lt;br /&gt;
* Output u32 with ARMS-gamecard: title-version v131162. This is the title-version for [[2.1.0]], which is the sysupdate included with this gamecard. Launch-day gamecards return title-version v450.&lt;br /&gt;
* Output u64 with ARMS-gamecard: titleID 0100000000000816.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]] appears to only use this with [[Content_Manager_services#GetTitleIdInfo]] and [[Content_Manager_services#GetUpdateTitleList]] with storageid=nandsys, for checking whether a sysupdate is required.&lt;br /&gt;
&lt;br /&gt;
= IEventNotifier =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IEventNotifier&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || GetEventHandle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManager =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManager&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetToken]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataImporter]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== SetToken ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64, returns an [[#ISaveDataExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x10-byte userID, and a type-0x5 input buffer. Returns an output u64 and an [[#ISaveDataImporter]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Pull]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#PullInitialData]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataExporter constructor. This is used automatically after [[#OpenSaveDataExporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Pull ==&lt;br /&gt;
Takes a type-0x6 output buffer, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== PullInitialData ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Push]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#Finalize]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataImporter constructor. This is used automatically after [[#OpenSaveDataImporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Push ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== Finalize ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManagerWithDivision =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManagerWithDivision&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetKeySeedPackage]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataFullExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [[#OpenSaveDataDiffExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] [[#OpenSaveDataExporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataFullImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [[#OpenSaveDataDiffImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] [[#OpenSaveDataDuplicateDiffImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] [[#OpenSaveDataImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] [[#OpenSaveDataImporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [6.0.0+] [[#CancelSuspendingImport]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer containing the &#039;&#039;&#039;Challenge&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== SetKeySeedPackage ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer containing the &#039;&#039;&#039;KeySeedPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFullExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFullImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], a 0x10-byte userID, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]], returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDuplicateDiffImporter ==&lt;br /&gt;
Takes an input u8 and an u64, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8, an u8(bool), a 0x10-byte struct, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== CancelSuspendingImport ==&lt;br /&gt;
Takes an input u64 and a 0x10-byte struct, no output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SetDivisionCount (Takes an input u32, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [6.0.0+] GetSaveDataInfo (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || OpenSaveDataDiffChunkIterator (No input, returns an [[#ISaveDataChunkIterator]])&lt;br /&gt;
|-&lt;br /&gt;
| 48 || OpenSaveDataChunkExporter (Takes an input u32, returns an [[#ISaveDataChunkExporter]])&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] FinalizeFullExport (No input, returns two 0x10-byte output structs)&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [6.0.0+] FinalizeDiffExport (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] CancelExport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] SuspendExport (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [6.0.0+] GetKeySeed (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 71 || [6.0.0+] GetInitialDataMac (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 72 || [6.0.0+] FinalizeExport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] GetImportInitialDataAad (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [6.0.0+] SetExportInitialDataAad (Takes an input 0x20-byte struct, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 96 || [6.0.0+] GetReportInfo (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [6.0.0+] GetSaveDataInfo (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || OpenSaveDataDiffChunkIterator (No input, returns an [[#ISaveDataChunkIterator]])&lt;br /&gt;
|-&lt;br /&gt;
| 32 || InitializeImport (No input, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
| 33 || FinalizeImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] CancelImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] GetImportContext (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 36 || [6.0.0+] SuspendImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 48 || OpenSaveDataChunkImporter (Takes an input u32, returns an [[#ISaveDataChunkImporter]])&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] GetImportInitialDataAad (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] GetReportInfo (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkIterator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkIterator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Next (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || IsEnd (No input, returns an output u8)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || GetId (No input, returns an output u32)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Pull (Takes an input u64 and a type-0x6 output buffer, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [6.0.0+] GetRestRawDataSize (No input, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Push (Takes an input u64 and a type-0x5 input buffer, no output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferProhibiter =&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t seem to handle any commands (?).&lt;br /&gt;
&lt;br /&gt;
= IMultiCommitManager =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || ? (Takes an input [[#IFilesystem]], no output)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || ? (No input/output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
= FileSystemType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Code&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Data&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Logo&lt;br /&gt;
|-&lt;br /&gt;
| 3 || ContentControl&lt;br /&gt;
|-&lt;br /&gt;
| 4 || ContentManual&lt;br /&gt;
|-&lt;br /&gt;
| 5 || ContentMeta&lt;br /&gt;
|-&lt;br /&gt;
| 6 || ContentData&lt;br /&gt;
|-&lt;br /&gt;
| 7 || ApplicationPackage&lt;br /&gt;
|-&lt;br /&gt;
| 8 || RegisteredUpdate&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= StorageId =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || None&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GameCard&lt;br /&gt;
|-&lt;br /&gt;
| 3 || NandSystem&lt;br /&gt;
|-&lt;br /&gt;
| 4 || NandUser&lt;br /&gt;
|-&lt;br /&gt;
| 5 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::ContentStorageId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataSpaceId =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataSpaceId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdSystem&lt;br /&gt;
|-&lt;br /&gt;
| 100 || [3.0.0+] ProperSystem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Determines the storage where the savedata is stored.&lt;br /&gt;
&lt;br /&gt;
= SaveDataType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SystemSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SaveData&lt;br /&gt;
|-&lt;br /&gt;
| 2 || BcatDeliveryCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeviceSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [3.0.0+] TemporaryStorage&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [3.0.0+] CacheStorage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ImageDirectoryId =&lt;br /&gt;
This is &amp;quot;nn::fs::ImageDirectoryId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= CloudBackupWorkStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::CloudBackupWorkStorageId&amp;quot;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentPath =&lt;br /&gt;
These are the 0x300 paths to NCA files for the various filesystems FS can access, beginning with @. They&#039;re passed via X descriptors, and returned via various [[Location Resolver services|ncm/lr]] commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Path || Notes&lt;br /&gt;
|-&lt;br /&gt;
| @SystemContent ||&lt;br /&gt;
|- &lt;br /&gt;
| @UserContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @SdCardContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @CalibFile ||&lt;br /&gt;
|-&lt;br /&gt;
| @Safe ||&lt;br /&gt;
|-&lt;br /&gt;
| @User ||&lt;br /&gt;
|-&lt;br /&gt;
| @System ||&lt;br /&gt;
|-&lt;br /&gt;
| @Sdcard ||&lt;br /&gt;
|-&lt;br /&gt;
| @Host ||&lt;br /&gt;
|-&lt;br /&gt;
| @GcApp || Gamecard App partition (Partition 2)&lt;br /&gt;
|-&lt;br /&gt;
| @GcS00000001 || Gamecard Contents.&lt;br /&gt;
|-&lt;br /&gt;
| @upp || Gamecard update partition (Partition 0)&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] @RegUpdate || Registered update partition&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Save Struct =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataAttribute&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData. SaveData: 0 can be used for accessing the savedata associated with the current FS session titleID, otherwise when set this is the titleID associated with the savedata to access.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x10&lt;br /&gt;
| userID for user-specific savedata(saveuser) when set, otherwise when zero this indicates the common savedata(savecommon). This is loaded from [[Account_services]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| u64 [[Flash_Filesystem|saveID]]. 0 for SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21&lt;br /&gt;
| 0x1&lt;br /&gt;
| Save data &#039;rank&#039; or &#039;precedence&#039;. 0 if this save data is considered the primary save data. 1 if it&#039;s considered the secondary save data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x22&lt;br /&gt;
| 0x2&lt;br /&gt;
| Save data index&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
For DeviceSaveData, this struct is all-zero except for the [[#SaveDataType]] field.&lt;br /&gt;
&lt;br /&gt;
= SaveCreate Struct =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data journal size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data block size. 0x4000 for SystemSaveData/SaveData/DeviceSaveData/BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data owner id. Official user-processes only uses 0 here for SystemSaveData/SaveData. For the dedicated save-creation code with SaveData/DeviceSaveData, this value comes from an input param with official user-processes. For BcatSaveData, this is the hard-coded [[Title_list|titleID]] of the bcat-sysmodule.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4&lt;br /&gt;
| Save data flags. Written using an input param for official user-processes. Hard-coded 0 for BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataSpaceId]]. Official user-processes only uses 0 here for SystemSaveData, 1 for SaveData/DeviceSaveData/BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25&lt;br /&gt;
| 0x1&lt;br /&gt;
| Unknown. 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x1A&lt;br /&gt;
| Not initialized for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
= DeviceSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8, the only difference compared to SaveData is the Save-struct.&lt;br /&gt;
&lt;br /&gt;
= BcatSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8. The Save-struct is the same as DeviceSaveData, except that the titleID field is set to &amp;lt;input titleID&amp;gt;. See above regarding SaveCreate-struct.&lt;br /&gt;
&lt;br /&gt;
The 0x10-byte struct passed to [[#CreateSaveDataFileSystem]] has the first 0x5-bytes set to all-zero.&lt;br /&gt;
&lt;br /&gt;
= SaveDataInfo =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Unknown saveID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA&lt;br /&gt;
| 0x6&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| userID&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x8&lt;br /&gt;
| saveID, 0 for regular SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| Application titleID, for regular SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| Raw saveimage size&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x2&lt;br /&gt;
| Save data index&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A&lt;br /&gt;
| 0x1&lt;br /&gt;
| Save data &#039;rank&#039; or &#039;precedence&#039;. 0 if this save data is considered the primary save data. 1 if it&#039;s considered the secondary save data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B&lt;br /&gt;
| 0x25&lt;br /&gt;
| Unknown. Usually zeros?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a 0x60-byte struct.&lt;br /&gt;
&lt;br /&gt;
= SaveDataFileSystemExtraData =&lt;br /&gt;
This is a 0x200-byte struct. Appears to match [[Savegames#Extra_data]].&lt;br /&gt;
&lt;br /&gt;
= InitialDataVersion2 =&lt;br /&gt;
This is a 0x8210-byte struct used by [[#ISaveDataTransferManagerWithDivision]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=7276</id>
		<title>Filesystem services</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=7276"/>
		<updated>2019-07-26T01:14:42Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* FileSystemType */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= fsp-ldr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxyForLoader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Arguments || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || OpenCodeFileSystem || u64 TitleId + X descriptor [[#ContentPath]] || Returns an [[#IFileSystem]].&lt;br /&gt;
|-&lt;br /&gt;
| 1 || IsArchivedProgram || u64 ProcessId || Returns a bool (1 if the process id&#039;s [[#ContentPath]] ends in &amp;quot;.nca&amp;quot;).&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] SetCurrentProcess || PID descriptor ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= fsp-pr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IProgramRegistry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#RegisterProgram]] ||&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#UnregisterProgram]] ||&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] SetCurrentProcess ||&lt;br /&gt;
|-&lt;br /&gt;
| 256 || [[#SetEnabledProgramVerification]] ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== RegisterProgram ==&lt;br /&gt;
Takes a storageID, a pid, a titleID, a 0x1C type-A buffer for the [[NPDM#FS_Access_Header| FS Access Header]], and a 0x2C type-A buffer for the [[NPDM#FS_Access_Control| FS Access Control]]&lt;br /&gt;
&lt;br /&gt;
Final FS permissions are stored as (ACI0_perms &amp;amp; ACID_perms). Will panic(svcBreak) when buffer sizes from ipc-rawdata are invalid.&lt;br /&gt;
&lt;br /&gt;
== UnregisterProgram ==&lt;br /&gt;
Takes a pid. Removes registered FS permissions for that PID.&lt;br /&gt;
&lt;br /&gt;
== SetEnabledProgramVerification ==&lt;br /&gt;
Seems to sets a global flag to inputval &amp;amp; 1.&lt;br /&gt;
&lt;br /&gt;
When the flag is zero, it will set ret=0 instead of ret={error} when verifying the fixed-key [[NPDM]] ACID signature fails. This also skips verifying the [[NCA_Format|NCA Header]] signature using the ACID key. Note that if verifying the fixed-key ACID signature is successful, and verifying the ACID-key NCA header signature fails, it will throw an error and abort.&lt;br /&gt;
&lt;br /&gt;
= fsp-srv =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxy&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [1.0.0] [[#OpenFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#SetCurrentProcess]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || OpenDataFileSystemByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [2.0.0+] [[#OpenFileSystemWithPatch]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [2.0.0+] [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [3.0.0+] OpenDataFileSystemByApplicationId&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || InvalidateBisCache&lt;br /&gt;
|-&lt;br /&gt;
| 17 || OpenHostFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 18 || OpenSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 19 || [2.0.0+] FormatSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 21 || [[#DeleteSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 22 || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 23 || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 24 || RegisterSaveDataFileSystemAtomicDeletion&lt;br /&gt;
|-&lt;br /&gt;
| 25 || [2.0.0+] DeleteSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 26 || [2.0.0+] FormatSdCardDryRun&lt;br /&gt;
|-&lt;br /&gt;
| 27 || [2.0.0+] IsExFatSupported&lt;br /&gt;
|-&lt;br /&gt;
| 28 || [4.0.0+] DeleteSaveDataFileSystemBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 30 || [[#OpenGameCardStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 31 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [3.0.0+] ExtendSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [5.0.0+] DeleteCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [5.0.0+] GetCacheStorageSize&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] CreateSaveDataFileSystemByHashSalt (Unofficial name, takes a total of 0xB0-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 51 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 52 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 53 || [2.0.0+] OpenReadOnlySaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 57 || [3.0.0+] [[#ReadSaveDataFileSystemExtraDataBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 58 || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 59 || [2.0.0+] WriteSaveDataFileSystemExtraData&lt;br /&gt;
|-&lt;br /&gt;
| 60 || [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 61 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 62 || [5.0.0+] OpenCacheStorageList&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [5.0.0+] OpenSaveDataInternalStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [5.0.0+] UpdateSaveDataMacForDebug&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [5.0.0+] WriteSaveDataFileSystemExtraData2&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] FindSaveDataWithFilter (Takes a total of 0x50-bytes of input, returns 8-bytes of output, and a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] OpenSaveDataIterator (Takes a total of 0x50-bytes of input, returns an #ISaveDataInfoReader)&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [8.0.0+] ReadSaveDataFileSystemExtraDataBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [8.0.0+] WriteSaveDataFileSystemExtraDataBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 80 || OpenSaveDataMetaFile&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [4.0.0+] OpenSaveDataTransferManager (No input, returns an [[#ISaveDataTransferManager]])&lt;br /&gt;
|-&lt;br /&gt;
| 82 || [5.0.0+] OpenSaveDataTransferManagerVersion2 (No input, returns an [[#ISaveDataTransferManagerWithDivision]])&lt;br /&gt;
|-&lt;br /&gt;
| 83 || [6.0.0+] OpenSaveDataTransferProhibiterForCloudBackUp (Takes an input u64, returns an [[#ISaveDataTransferProhibiter]])&lt;br /&gt;
|-&lt;br /&gt;
| 84 || [6.0.0+] ListApplicationAccessibleSaveDataOwnerId (Takes a total of 0x10-bytes of input, returns 4-bytes of output, and a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 100 || OpenImageDirectoryFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 110 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 120 || [6.0.0+] OpenCloudBackupWorkStorageFileSystem (Takes 4-bytes of input, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 130 || [7.0.0+] OpenCustomStorageFileSystem (Takes 4-bytes of input, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 200 || OpenDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 201 || [3.0.0+] OpenDataStorageByProgramId&lt;br /&gt;
|-&lt;br /&gt;
| 202 || [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 203 || OpenPatchDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 204 || [7.0.0+] OpenDataFileSystemByProgramIndex (Takes an input u8, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 205 || [7.0.0+] OpenDataStorageByProgramIndex (Takes an input u8, returns an [[#IStorage]])&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [[#OpenDeviceOperator]]&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 510 || [5.0.0+] OpenSystemDataUpdateEventNotifier&lt;br /&gt;
|-&lt;br /&gt;
| 511 || [5.0.0+] NotifySystemDataUpdateEvent&lt;br /&gt;
|-&lt;br /&gt;
| 520 || [6.0.0+] SimulateGameCardDetectionEvent (Takes a total of 0xC-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 600 || [1.0.0-3.0.2] SetCurrentPosixTime&lt;br /&gt;
|-&lt;br /&gt;
| 601 || QuerySaveDataTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 602 || [[#VerifySaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 603 || CorruptSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 604 || CreatePaddingFile&lt;br /&gt;
|-&lt;br /&gt;
| 605 || DeleteAllPaddingFiles&lt;br /&gt;
|-&lt;br /&gt;
| 606 || [2.0.0+] GetRightsId&lt;br /&gt;
|-&lt;br /&gt;
| 607 || [2.0.0+] RegisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 608 || [2.0.0+] UnregisterAllExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 609 || [2.0.0+] GetRightsIdByPath&lt;br /&gt;
|-&lt;br /&gt;
| 610 || [3.0.0+] GetRightsIdAndKeyGenerationByPath&lt;br /&gt;
|-&lt;br /&gt;
| 611 || [4.0.0+] SetCurrentPosixTimeWithTimeDifference&lt;br /&gt;
|-&lt;br /&gt;
| 612 || [4.0.0+] GetFreeSpaceSizeForSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 613 || [4.0.0+] VerifySaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 614 || [4.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 615 || [5.0.0+] QuerySaveDataInternalStorageTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 616 || [6.0.0+] [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| 617 || [7.0.0+] UnregisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 620 || [2.0.0+] [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| 630 || [4.0.0+] SetSdCardAccessibility&lt;br /&gt;
|-&lt;br /&gt;
| 631 || [4.0.0+] IsSdCardAccessible&lt;br /&gt;
|-&lt;br /&gt;
| 640 || [4.0.0-7.0.1] IsSignedSystemPartitionOnSdCardValid&lt;br /&gt;
|-&lt;br /&gt;
| 700 || [5.0.0+] [[#OpenAccessFailureResolver]]&lt;br /&gt;
|-&lt;br /&gt;
| 701 || [5.0.0+] GetAccessFailureDetectionEvent&lt;br /&gt;
|-&lt;br /&gt;
| 702 || [5.0.0+] IsAccessFailureDetected&lt;br /&gt;
|-&lt;br /&gt;
| 710 || [5.0.0+] ResolveAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 720 || [5.0.0+] AbandonAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [2.0.0+] GetAndClearFileSystemProxyErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [7.0.0+] RegisterProgramIndexMapInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1000 || SetBisRootForHost&lt;br /&gt;
|-&lt;br /&gt;
| 1001 || [[#SetSaveDataSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1002 || [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| 1003 || DisableAutoSaveDataCreation&lt;br /&gt;
|-&lt;br /&gt;
| 1004 || [[#SetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1005 || [[#GetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1006 || [[#OutputAccessLogToSdCard]]&lt;br /&gt;
|-&lt;br /&gt;
| 1007 || [4.0.0+] RegisterUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1008 || [4.0.0+] OpenRegisteredUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1009 || [4.0.0+] GetAndClearMemoryReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1010 || [5.1.0-6.2.0] SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| 1011 || [7.0.0+] GetAccessLogVersionInfo (Unofficial name, no input, returns two 32-bit values &amp;quot;version&amp;quot; and &amp;quot;program_index&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 1100 || [4.0.0+] OverrideSaveDataTransferTokenSignVerificationKey&lt;br /&gt;
|-&lt;br /&gt;
| 1110 || [6.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId2&lt;br /&gt;
|-&lt;br /&gt;
| 1200 || [6.0.0+] OpenMultiCommitManager (No input, returns an output #IMultiCommitManager)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
Every time permissions are checked, the process registration [[#fsp-pr]] is loaded using the session processID. The permission data is populated with data from the [[NPDM]].&lt;br /&gt;
&lt;br /&gt;
If the processID is &amp;lt;= 6 (which happens only for built-in sysmodules), it will use a hardcoded registration data. The default mask in this case is 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
Note that the functions check whether or not at least one bit is set in the mask. This means that, you don&#039;t need to set 0xFFFFFFFFFFFFFFFF to get all permissions: it suffices to set 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
If the code were to request an invalid input type, panic. But this never happens.&lt;br /&gt;
&lt;br /&gt;
=== RwPermissions ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type(s) || Mask || Name || Value || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000801 || CanMountLogo || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000801 || CanMountContentMeta || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000801 || CanMountContentControl || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000801 || CanMountContentManual || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000801 || CanMountContentData || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000801 || CanMountApplicationPackage || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000000000 || CanMountSaveDataStorage || 3 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000800 || CanMountContentStorage || 3 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000001000 || CanMountImageAndVideoStorage || 3 || [[#OpenImageDirectoryFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanMountCloudBackupWorkStorage || 3 || OpenCloudBackupWorkStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000000000&amp;lt;br/&amp;gt;([7.0.0-7.0.1] 0x4000000000000000)&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000084)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountCustomStorage || 3 || OpenCustomStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000084&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000008080) || CanMountBisCalibrationFile || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-6.2.0] 0x8000000000008080) || CanMountBisSafeMode || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000008080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountBisUser || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000008080&amp;lt;br/&amp;gt;([3.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanMountBisSystem || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000010) || CanMountBisSystemProperEncryption || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000200000&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000040020) || CanMountBisSystemProperPartition || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0xC000000000200000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000028) || CanMountSdCard || 3 || [[#OpenSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000000010&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000020) || CanMountGameCard || 3 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0x8000000000040020&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000020) || CanMountDeviceSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x8000000000000028&amp;lt;br/&amp;gt;([3.0.0-6.2.0] 0x8000000000000020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010082) || CanMountSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0x8000000000000020&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanMountOthersSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0x8000000000000020&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanMountOthersSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0x8000000000010082&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010080)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition1Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x8000000000010080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition2Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010080) || CanOpenBisPartitionUserDataRoot || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part1 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part2 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part3 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part4 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part5 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || 0x8000000000010080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000084)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000080) || CanOpenBisPartitionBootConfigAndPackage2Part6 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x8000000000000084&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationBinary || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0x8000000000000084&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationFile || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0x8000000000000080 || CanOpenBisPartitionSafeMode || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanOpenBisPartitionUser || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000100) || CanOpenBisPartitionSystem || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000100008) || CanOpenBisPartitionSystemProperEncryption || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000400000) || CanOpenBisPartitionSystemProperPartition || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x27 || 0xC000000000200000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000100008) || CanOpenSdCardStorage || ||&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x28 || 0x8000000000000100&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000100008)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000400000) || CanOpenGameCardStorage || 3 || [[#OpenGameCardStorage]], [[#EraseGameCard]] (bit1), [[#WriteToGameCard]] (bit1), [[#GetGameCardErrorInfo]] (bit1), [[#EraseAndWriteParamDirectly]] (bit1), [[#ReadParamDirectly]] (bit1), [[#ForceEraseGameCard]] (bit1) &lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x29 || 0x8000000000100008&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000400000)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010000) || CanMountSystemDataPrivate || 1 || [[#OpenFileSystem]], [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0xC000000000400000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010000)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanMountHost || 3 || [[#OpenHostFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x2B || 0x8000000000010000&amp;lt;br/&amp;gt;([1.0.0-6.2.0]0x8000000000000000) || CanMountRegisteredUpdatePartition || 1 || [[#OpenRegisteredUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] 0x2C || 0x8000000000000000 || CanOpenSaveDataInternalStorage || 3 || [[#OpenSaveDataInternalStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] 0x2D || 0x0000000000000000 || CanNotMountCustomStorage || 3 || OpenCustomStorageFileSystem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BoolPermissions ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type(s) || Mask || Name || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000080 || CanInvalidateBisCache || [[#InvalidateBisCache]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000080 || CanEraseMmc || [[#EraseMmc]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000010 || CanGetGameCardDeviceCertificate || [[#GetGameCardDeviceCertificate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000010 || CanGetGameCardIdSet || [[#GetGameCardIdSet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000200 || CanFinalizeGameCardDriver || [[#FinalizeGameCardDriver]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000200 || CanGetGameCardAsicInfo || [[#GetGameCardAsicInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000002020 || CanCreateSaveData || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000060 || CanDeleteSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000000028 || CanCreateSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000000000020 || CanCreateOthersSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000004028 || CanDeleteSystemSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000060 || CanOpenSaveDataInfoReader || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000004020 || CanOpenSaveDataInfoReaderForSystem || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000000040&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000020000) || CanOpenSaveDataIterator || OpenSaveDataIterator&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000020000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000400) || CanOpenSaveDataMetaFile || [[#OpenSaveDataMetaFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000400&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000004060) || CanSetCurrentPosixTime || [[#SetCurrentPosixTime]], [[#SetCurrentPosixTimeWithTimeDifference]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000004060&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000080000) || CanReadSaveDataFileSystemExtraData || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x8000000000080000 || CanSetGlobalAccessLogMode || [[#SetGlobalAccessMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000080000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] Invalid) || CanSetSpeedEmulationMode || [[#SetSpeedEmulationMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || Invalid&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000800000) || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0xC000000000800000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000001000000) || CanFillBis || [[#CreatePaddingFile]], [[#DeleteAllPaddingFiles]] &lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0xC000000001000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000001000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0xC000000002000000) || CanCorruptSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x16 || 0x8000000001000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000004000000) || CanCorruptSystemSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x17 || 0x8000000000000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0xC000000002000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000008000000) || CanVerifySaveData || [[#VerifySaveDataFileSystem]], [[#VerifySaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x18 || 0xC000000002000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000004000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000010000000) || CanDebugSaveData || [[#CreateSaveDataFileSystem]], [[#OpenSaveDataFileSystem]], [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x19 || 0x8000000004000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000008000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000800) || CanFormatSdCard || [[#FormatSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x1A || 0x8000000008000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000010000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000004020) || CanGetRightsId || [[#GetRightsId]], [[#GetRightsIdAndKeyGenerationByPath]], [[#GetRightsIdByPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1B || 0x8000000010000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000800)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000002020) || CanRegisterExternalKey || [[#RegisterExternalKey]], [[#UnregisterAllExternalKey]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1C || 0x8000000000000800&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000004020)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000028) || CanSetEncryptionSeed || [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1D || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000020000000) || SaveDataExtraData_Write0 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1E || 0x8000000000004020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000002020)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000040000000) || CanWriteSaveDataFileSystemExtraDataFlags || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1F || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000000) || SaveDataExtraData_Write1 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x20 || 0x8000000000000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000020000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000000) || CanWriteSaveDataFileSystemExtraDataAll || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x21 || 0x8000000000002020&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanExtendSaveData || [[#ExtendSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x22 || 0x8000000000000028&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000002) || CanExtendSystemSaveData || [[#ExtendSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x23 || 0x8000000020000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanRegisterUpdatePartition || [[#RegisterUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x24 || 0x8000000040000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanOpenSaveDataTransferManager || [[#OpenSaveDataTransferManager]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x25 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanOpenSaveDataTransferManagerVersion2 || [[#OpenSaveDataTransferManagerVersion2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x26 || 0x8000000200002000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080000110) || CanOpenSaveDataTransferProhibiterForCloudBackUp || [[#OpenSaveDataTransferProhibiterForCloudBackUp]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x27 || 0x8000000240002000 &amp;lt;br/&amp;gt;([6.0.0-7.0.1] 0x8000000200002000)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000100008) || CanListApplicationAccessibleSaveDataOwnerId || ListApplicationAccessibleSaveDataOwnerId&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x28 || 0x8000000000000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080010000) || CanControlMmcPatrol || [[#SuspendMmcPatrol]], [[#ResumeMmcPatrol]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x29 || 0x8000000000000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOverrideSaveDataTransferTokenSignVerificationKey || [[#OverrideSaveDataTransferTokenSignVerificationKey]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0x8000000080200000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSdCardDetectionEventNotifier || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2B || 0x8000000080000110&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenGameCardDetectionEventNotifier || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2C || 0x8000000000100008&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSystemDataUpdateEventNotifier || [[#OpenSystemDataUpdateEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2D || 0x8000000000010000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanNotifySystemDataUpdateEvent || [[#NotifySystemDataUpdateEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2E || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanOpenAccessFailureDetectionEventNotifier || [[#OpenAccessFailureResolver]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2F || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanGetAccessFailureDetectionEvent || [[#GetAccessFailureDetectionEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.1.0+] 0x30 || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080080000) || CanIsAccessFailureDetected || [[#IsAccessFailureDetected]] &lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x31 || 0x8000000100000000 || CanResolveAccessFailure || [[#ResolveAccessFailure]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x32 || 0x8000000100000000 || CanAbandonAccessFailure || [[#AbandonAccessFailure]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x33 || 0x8000000040000000 || CanQuerySaveDataInternalStorageTotalSize || [[#QuerySaveDataInternalStorageTotalSize]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x34 || 0x8000000200000020 || CanGetSaveDataCommitId || [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x35 || 0x8000000000200000 || CanSetSdCardAccessibility || [[#SetSdCardAccessibility]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x36 || 0x4000000000000000 || CanSimulateGameCardDetectionEvent || SimulateGameCardDetectionEvent, SetSimulationEvent, ClearSimulationEvent&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x37 || 0x8000000000000000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000080000) || CanSetDataStorageRedirectTarget || SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x38 || 0x8000000400000000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000000) || || [[#CreateSaveDataFileSystem]], CreateSaveDataFileSystemByHashSalt&lt;br /&gt;
|-&lt;br /&gt;
| [8.0.0+] 0x39 || 0x8000000000000010 || CanChallengeCardExistence || ChallengeCardExistence&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer (ContentPath) and a [[#FileSystemType]] as parameters. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
[2.0.0+] This function was removed.&lt;br /&gt;
&lt;br /&gt;
== SetCurrentProcess ==&lt;br /&gt;
Takes a pid-descriptor.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithPatch ==&lt;br /&gt;
Takes an input [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Web-applet loads the [[#FileSystemType]] (which must be &#039;&#039;&#039;ContentManual&#039;&#039;&#039;) from u32_table[inparam].&lt;br /&gt;
&lt;br /&gt;
Note: web-applet strings refer to both this cmd and [[#OpenFileSystemWithId]] as &amp;quot;MountContent&amp;quot;, but official nn_sf_sync symbols use &amp;quot;OpenXX&amp;quot; names.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithId ==&lt;br /&gt;
Takes a type-0x19 input buffer, an [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
The [[#IFileSystem]] must be &#039;&#039;&#039;ContentMeta&#039;&#039;&#039; if the NCA type is 0 (control).&lt;br /&gt;
&lt;br /&gt;
The input buffer is the output string path from [[NS_Services#GetApplicationContentPath|GetApplicationContentPath]].&lt;br /&gt;
&lt;br /&gt;
May return errors when attempting to access NCA-paths for an update-title with a gamecard, when the gamecard isn&#039;t inserted. May return error 0x7D402 in some cases with update-titles. Non-val2 in32 values with NCA-type1 are unusable, even for normal titles.&lt;br /&gt;
&lt;br /&gt;
The official &amp;quot;MountApplicationPackage&amp;quot; func uses this with in64=0 and [[#FileSystemType]] &#039;&#039;&#039;ApplicationPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
After the [[#FileSystemType]] specific permissions are checked, it then gets the func retval for permissions-type 0x25 and func0.&lt;br /&gt;
&lt;br /&gt;
When [[#FileSystemType]] is &#039;&#039;&#039;ContentMeta&#039;&#039;&#039;, it uses in64=0xffffffffffffffff internally, otherwise it checks if in64 is set to 0xffffffffffffffff then throws an error if so. When the in64 used internally is not 0xffffffffffffffff, it&#039;s compared with the NCA titleID, then an error is thrown on mismatch.&lt;br /&gt;
&lt;br /&gt;
== OpenBisFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer string and a u32 [[Flash_Filesystem|Bis partitionID]]. Official user-process code sets instr[0] = 0 normally. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Only partitionIDs for FAT partitions are usable with this, otherwise error 0x2EE202 is returned. Seems to be about the same as [[#OpenBisStorage]] except this mounts the partition filesystem instead of allowing direct access to the partition sectors.&lt;br /&gt;
&lt;br /&gt;
== OpenBisStorage ==&lt;br /&gt;
Takes a u32 partition ID, returns 0x2EE202 for partitions which do not exist, 0x320002 for partitions which cannot be opened and a valid [[#IStorage]] handle otherwise.&lt;br /&gt;
&lt;br /&gt;
== InvalidateBisCache ==&lt;br /&gt;
Seems to invalidate the Bis cache for MBR/GPT after overwriting that data via the OpenBisStorage IStorage. Used by [[SystemInitializer]].&lt;br /&gt;
&lt;br /&gt;
== DeleteSaveDataFileSystem ==&lt;br /&gt;
Takes an input u64.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystem ==&lt;br /&gt;
Takes a 0x40-byte Save-struct entry, a 0x40-byte SaveCreate-struct entry, and a 0x10-byte input struct.&lt;br /&gt;
&lt;br /&gt;
Only the first 0x5-bytes in the 0x10-byte struct are initialized: all-zero when automatically creating savedata during savecommon mount by official user-processes. In the dedicated save-creation code in official user-processes: +0 u32 = 0x40060, +4 u8 = 1.&lt;br /&gt;
&lt;br /&gt;
Creates regular savedata.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes a 0x40-byte Save-struct entry and a 0x40-byte SaveCreate-struct entry.&lt;br /&gt;
&lt;br /&gt;
Creates savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardStorage ==&lt;br /&gt;
Takes two input u32s (gamecard handle, partition ID), and returns an [[#IStorage]] for the [[Gamecard_Format|partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardFileSystem ==&lt;br /&gt;
Takes two input u32s, with the second u32 located at +4 in rawdata after the first u32. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts a [[Gamecard_Partition|gamecard partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystem ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte Save-struct entry. Official user-process code is only known to use value 1 for the u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Permissions aren&#039;t checked until the specified save is successfully found.&lt;br /&gt;
&lt;br /&gt;
Only one process (specifically only one [[#IFileSystem]] session) can mount a given savedata at any given time (this includes SystemSaveData).&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte Save-struct entry. Web-applet only uses value0 for the input u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraDataBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an input u64 saveID, and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraData ==&lt;br /&gt;
Takes an input u64 saveID and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReader ==&lt;br /&gt;
No input, returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReaderBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenContentStorageFileSystem ==&lt;br /&gt;
Takes a [[#ContentStorageId]]. Invalid values return 0x2EE202.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]] with NCA files. The read data from these files is identical to the data read by [[NCM_services#ReadContentIdFile]].&lt;br /&gt;
&lt;br /&gt;
== OpenDataStorageByDataId ==&lt;br /&gt;
Takes a [[#StorageId]] and a TitleID.&lt;br /&gt;
&lt;br /&gt;
Returns a [[IPC_Marshalling#Domain_message|domain object ID]] implementing the [[#IStorage]] interface for data archives.&lt;br /&gt;
&lt;br /&gt;
== OpenDeviceOperator ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IDeviceOperator]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenSdCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== VerifySaveDataFileSystem ==&lt;br /&gt;
Takes an unknown input u64 and a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
The input u64 high-byte must be non-zero, otherwise an [[Error_codes|error]] is returned(0xE02).&lt;br /&gt;
&lt;br /&gt;
== GetSaveDataCommitId ==&lt;br /&gt;
Takes an input u8 and u64, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== SetSdCardEncryptionSeed ==&lt;br /&gt;
Takes in the 0x10 byte SD card encryption seed, and loads it into FS-module state.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]]-module reads the 0x10 bytes from SdCard:/Nintendo/Contents/private, and compares them to the first 0x10 bytes of the ns_appman:/private (in [[Flash_Filesystem#System_Savegames|system savedata]] 0x8000000000000043). If they match, NS calls this command using bytes 0x10-0x20 from ns_appman:/private. The rest of this file (0x1F0 bytes total) is (usually/always?) all-zero (however in some cases the byte at offset 0x20 is value 0x1).&lt;br /&gt;
&lt;br /&gt;
== OpenAccessFailureResolver ==&lt;br /&gt;
Takes 8-bytes of input and returns an [[#IEventNotifier]].&lt;br /&gt;
&lt;br /&gt;
[8.0.0+] Now takes an additional 8-bytes of input.&lt;br /&gt;
&lt;br /&gt;
== SetSaveDataSize ==&lt;br /&gt;
Takes two input u64s &amp;quot;size&amp;quot; and &amp;quot;journal_size&amp;quot;, and writes them to fsp-srv object member variables.&lt;br /&gt;
&lt;br /&gt;
These variables are normally initialized with 32 MiB (0x2000000) and 16 MiB (0x1000000), respectively.&lt;br /&gt;
&lt;br /&gt;
These variables don&#039;t seem to be actually used anywhere else (?)&lt;br /&gt;
&lt;br /&gt;
== SetSaveDataRootPath ==&lt;br /&gt;
Takes an input path, and does snprintf(&amp;lt;fsp-srv object&amp;gt;-&amp;gt;m_save_data_root_path, FS_MAX_PATH-1, &amp;quot;/%s&amp;quot;, input_path);&lt;br /&gt;
&lt;br /&gt;
This path is normally all-zero. When this path is non-zero, the internal OpenSaveDataFileSystem function will create a DirectorySaveDataFileSystem if the target save is a user-save + a directory exists, instead of the normal savedata filesystem object.&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== GetGlobalAccessLogMode ==&lt;br /&gt;
Returns an output u32.&lt;br /&gt;
&lt;br /&gt;
GlobalAccessLogMode is normally 0.&lt;br /&gt;
&lt;br /&gt;
== OutputAccessLogToSdCard ==&lt;br /&gt;
Takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
The input buffer is the string to output to the log. User-processes normally include a newline at the end.&lt;br /&gt;
&lt;br /&gt;
User-processes only use this when the value previously loaded from [[#GetGlobalAccessLogMode]] has bit1 set.&lt;br /&gt;
&lt;br /&gt;
When bit1 in GlobalAccessLogMode is clear, FS-module will just return 0 for OutputAccessLogToSdCard. However even with that set the log doesn&#039;t show up SD, unknown why.&lt;br /&gt;
&lt;br /&gt;
The input buffer is written to the &amp;quot;$FsAccessLog:/FsAccessLog.txt&amp;quot; file, where &amp;quot;$FsAccessLog&amp;quot; is the SD-card mount-name. It&#039;s written to the current end of the file(appended).&lt;br /&gt;
&lt;br /&gt;
= IStorage =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IStorage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This is the interface for a raw device, usually a block device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Arguments&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read || Takes a type-0x46 buffer, an offset and length &lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write || Takes a type-0x45 buffer, an offset and length &lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush || None&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize || Takes a size&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize || None&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFileSystem =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystem&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There are two main implementations of this interface:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RomFS&#039;&#039;&#039;: Filesystem implementation statically linked in the binary. Uses an [[#IStorage]] interface as underlying raw device.&lt;br /&gt;
* &#039;&#039;&#039;IPC proxy&#039;&#039;&#039;: Used for all non-RomFS filesystems. In this case, actual filesystem implementation is in the FS process.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || CreateFile&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DeleteFile&lt;br /&gt;
|-&lt;br /&gt;
| 2 || CreateDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeleteDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 4 || DeleteDirectoryRecursively&lt;br /&gt;
|-&lt;br /&gt;
| 5 || RenameFile&lt;br /&gt;
|-&lt;br /&gt;
| 6 || RenameDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [[#GetEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [[#OpenFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [[#OpenDirectory]]&lt;br /&gt;
|-&lt;br /&gt;
| 10 || [[#Commit]]&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#GetFreeSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#GetTotalSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || [3.0.0+] [[#CleanDirectoryRecursively]]&lt;br /&gt;
|-&lt;br /&gt;
| 14 || [3.0.0+] [[#GetFileTimeStampRaw]]&lt;br /&gt;
|-&lt;br /&gt;
| 15 || [4.0.0+] QueryEntry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetEntryType ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns [[#DirectoryEntryType]] as an output u32.&lt;br /&gt;
&lt;br /&gt;
== OpenFile ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path, and an u32 &#039;&#039;&#039;mode&#039;&#039;&#039;. &#039;&#039;&#039;mode&#039;&#039;&#039; controls how the file is opened, based on which bits are set:&lt;br /&gt;
&lt;br /&gt;
* When bit 0 is set, the file is Readable: you can use the Read operation.&lt;br /&gt;
* When bit 1 is set, the file is Writable: you can use the Write operation.&lt;br /&gt;
* When bit 2 is set, the file is Appendable: unless this bit is set, you will not be able to write beyond the end of a file (such writes will result in an error 0x307202)&lt;br /&gt;
&lt;br /&gt;
== OpenDirectory ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and an u64 &#039;&#039;&#039;filter_flags&#039;&#039;&#039;. &#039;&#039;&#039;filter_flags&#039;&#039;&#039; controls what type of entries are read by the [[#IDirectory]]: bitmask 0x1 = directories, bitmask 0x2 = files.&lt;br /&gt;
&lt;br /&gt;
== Commit ==&lt;br /&gt;
Like [https://3dbrew.org/wiki/FS:ControlArchive 3DS], this has to be used after writing to savedata for the changes to take affect.&lt;br /&gt;
&lt;br /&gt;
== GetFreeSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total free space with this FS.&lt;br /&gt;
&lt;br /&gt;
== GetTotalSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total space available with this FS(free+used).&lt;br /&gt;
&lt;br /&gt;
== CleanDirectoryRecursively ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and clears the contents of the directory specified in the path.&lt;br /&gt;
&lt;br /&gt;
== GetFileTimeStampRaw ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path and returns a 0x20-byte struct. This contains 3 u64s and an u8.&lt;br /&gt;
&lt;br /&gt;
= IDirectory =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDirectory&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Read]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetEntryCount]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Read ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64(?) for the total number of read entries, this is 0 when no more entries are available.&lt;br /&gt;
&lt;br /&gt;
The output buffer contains the read array of [[#DirectoryEntry]]. This doesn&#039;t include entries for &amp;quot;.&amp;quot; and &amp;quot;..&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== GetEntryCount ==&lt;br /&gt;
Returns an u64 for the total number of readable entries.&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntry =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x301 || Path&lt;br /&gt;
|-&lt;br /&gt;
| 0x301 || 0x1 || File attributes (bit 0 = is directory; bit 1 = archive bit)&lt;br /&gt;
|-&lt;br /&gt;
| 0x302 || 0x2 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x304 || 0x1 || [[#DirectoryEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x305 || 0x3 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x308 || 0x8 || Filesize, 0 for directories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntryType =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntryType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
An s8 value indicating a directory entry type. The current values are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Directory&lt;br /&gt;
|-&lt;br /&gt;
| 1 || File&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFile =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFile&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataInfoReader =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataInfoReader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#ReadSaveDataInfo]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataInfo ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64 for total output entries. This buffer contains an array of [[#SaveDataInfo]].&lt;br /&gt;
&lt;br /&gt;
This is used to get [[#SaveDataInfo]] for all savedata on the system (or all savedata for the current [[#SaveDataSpaceId]]). When used multiple times, it will resume reading where it left off, until no more entries are available (in that case the out u64 is value 0).&lt;br /&gt;
&lt;br /&gt;
= IDeviceOperator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDeviceOperator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || IsSdCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GetSdCardSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [2.0.0+] GetSdCardCid&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [2.0.0+] GetSdCardUserAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [2.0.0+] GetSdCardProtectedAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [2.0.0+] GetAndClearSdCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 100 || GetMmcCid&lt;br /&gt;
|-&lt;br /&gt;
| 101 || GetMmcSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 110 || EraseMmc&lt;br /&gt;
|-&lt;br /&gt;
| 111 || GetMmcPartitionSize&lt;br /&gt;
|-&lt;br /&gt;
| 112 || [2.0.0+] GetMmcPatrolCount&lt;br /&gt;
|-&lt;br /&gt;
| 113 || [2.0.0+] GetAndClearMmcErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 114 || [2.0.0+] GetMmcExtendedCsd&lt;br /&gt;
|-&lt;br /&gt;
| 115 || [4.0.0+] SuspendMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 116 || [4.0.0+] ResumeMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 200 || IsGameCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 201 || EraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 202 || GetGameCardHandle&lt;br /&gt;
|-&lt;br /&gt;
| 203 || [[#GetGameCardUpdatePartitionInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 204 || FinalizeGameCardDriver&lt;br /&gt;
|-&lt;br /&gt;
| 205 || GetGameCardAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 206 || GetGameCardDeviceCertificate&lt;br /&gt;
|-&lt;br /&gt;
| 207 || GetGameCardAsicInfo&lt;br /&gt;
|-&lt;br /&gt;
| 208 || GetGameCardIdSet&lt;br /&gt;
|-&lt;br /&gt;
| 209 || WriteToGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 210 || SetVerifyWriteEnalbleFlag&lt;br /&gt;
|-&lt;br /&gt;
| 211 || GetGameCardImageHash&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [2.0.0+] GetGameCardDeviceIdForProdCard&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [2.0.0+] EraseAndWriteParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [2.0.0+] ReadParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [2.0.0+] ForceEraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [2.0.0+] GetGameCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [2.1.0+] GetGameCardErrorReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [3.0.0+] GetGameCardDeviceId&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [8.0.0+] ChallengeCardExistence&lt;br /&gt;
|-&lt;br /&gt;
| 300 || SetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 301 || GetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [5.0.0+] SuspendSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 401 || [5.0.0+] ResumeSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 402 || [6.0.0+] GetSdmmcConnectionStatus (Takes a total of 4-bytes of input, returns a total of 8-bytes of output)&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [6.0.0+] SetSimulationEvent (Takes a total of 0x14-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [6.0.0+] ClearSimulationEvent (Takes a total of 4-bytes of input, no output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetGameCardUpdatePartitionInfo ==&lt;br /&gt;
Returns a titleID and the title-version for it.&lt;br /&gt;
&lt;br /&gt;
* Output u32 with ARMS-gamecard: title-version v131162. This is the title-version for [[2.1.0]], which is the sysupdate included with this gamecard. Launch-day gamecards return title-version v450.&lt;br /&gt;
* Output u64 with ARMS-gamecard: titleID 0100000000000816.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]] appears to only use this with [[Content_Manager_services#GetTitleIdInfo]] and [[Content_Manager_services#GetUpdateTitleList]] with storageid=nandsys, for checking whether a sysupdate is required.&lt;br /&gt;
&lt;br /&gt;
= IEventNotifier =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IEventNotifier&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || GetEventHandle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManager =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManager&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetToken]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataImporter]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== SetToken ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64, returns an [[#ISaveDataExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x10-byte userID, and a type-0x5 input buffer. Returns an output u64 and an [[#ISaveDataImporter]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Pull]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#PullInitialData]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataExporter constructor. This is used automatically after [[#OpenSaveDataExporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Pull ==&lt;br /&gt;
Takes a type-0x6 output buffer, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== PullInitialData ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Push]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#Finalize]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataImporter constructor. This is used automatically after [[#OpenSaveDataImporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Push ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== Finalize ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManagerWithDivision =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManagerWithDivision&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetKeySeedPackage]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataFullExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [[#OpenSaveDataDiffExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] [[#OpenSaveDataExporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataFullImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [[#OpenSaveDataDiffImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] [[#OpenSaveDataDuplicateDiffImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] [[#OpenSaveDataImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] [[#OpenSaveDataImporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [6.0.0+] [[#CancelSuspendingImport]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer containing the &#039;&#039;&#039;Challenge&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== SetKeySeedPackage ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer containing the &#039;&#039;&#039;KeySeedPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFullExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFullImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], a 0x10-byte userID, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]], returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDuplicateDiffImporter ==&lt;br /&gt;
Takes an input u8 and an u64, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8, an u8(bool), a 0x10-byte struct, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== CancelSuspendingImport ==&lt;br /&gt;
Takes an input u64 and a 0x10-byte struct, no output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SetDivisionCount (Takes an input u32, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [6.0.0+] GetSaveDataInfo (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || OpenSaveDataDiffChunkIterator (No input, returns an [[#ISaveDataChunkIterator]])&lt;br /&gt;
|-&lt;br /&gt;
| 48 || OpenSaveDataChunkExporter (Takes an input u32, returns an [[#ISaveDataChunkExporter]])&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] FinalizeFullExport (No input, returns two 0x10-byte output structs)&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [6.0.0+] FinalizeDiffExport (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] CancelExport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] SuspendExport (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [6.0.0+] GetKeySeed (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 71 || [6.0.0+] GetInitialDataMac (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 72 || [6.0.0+] FinalizeExport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] GetImportInitialDataAad (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [6.0.0+] SetExportInitialDataAad (Takes an input 0x20-byte struct, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 96 || [6.0.0+] GetReportInfo (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [6.0.0+] GetSaveDataInfo (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || OpenSaveDataDiffChunkIterator (No input, returns an [[#ISaveDataChunkIterator]])&lt;br /&gt;
|-&lt;br /&gt;
| 32 || InitializeImport (No input, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
| 33 || FinalizeImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] CancelImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] GetImportContext (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 36 || [6.0.0+] SuspendImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 48 || OpenSaveDataChunkImporter (Takes an input u32, returns an [[#ISaveDataChunkImporter]])&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] GetImportInitialDataAad (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] GetReportInfo (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkIterator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkIterator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Next (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || IsEnd (No input, returns an output u8)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || GetId (No input, returns an output u32)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Pull (Takes an input u64 and a type-0x6 output buffer, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [6.0.0+] GetRestRawDataSize (No input, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Push (Takes an input u64 and a type-0x5 input buffer, no output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferProhibiter =&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t seem to handle any commands (?).&lt;br /&gt;
&lt;br /&gt;
= IMultiCommitManager =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || ? (Takes an input [[#IFilesystem]], no output)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || ? (No input/output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
= FileSystemType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Code&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Data&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Logo&lt;br /&gt;
|-&lt;br /&gt;
| 3 || ContentControl&lt;br /&gt;
|-&lt;br /&gt;
| 4 || ContentManual&lt;br /&gt;
|-&lt;br /&gt;
| 5 || ContentMeta&lt;br /&gt;
|-&lt;br /&gt;
| 6 || ContentData&lt;br /&gt;
|-&lt;br /&gt;
| 7 || ApplicationPackage&lt;br /&gt;
|-&lt;br /&gt;
| 8 || RegisteredUpdate&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= StorageId =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || None&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GameCard&lt;br /&gt;
|-&lt;br /&gt;
| 3 || NandSystem&lt;br /&gt;
|-&lt;br /&gt;
| 4 || NandUser&lt;br /&gt;
|-&lt;br /&gt;
| 5 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::ContentStorageId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataSpaceId =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataSpaceId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdSystem&lt;br /&gt;
|-&lt;br /&gt;
| 100 || [3.0.0+] ProperSystem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Determines the storage where the savedata is stored.&lt;br /&gt;
&lt;br /&gt;
= SaveDataType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SystemSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SaveData&lt;br /&gt;
|-&lt;br /&gt;
| 2 || BcatDeliveryCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeviceSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [3.0.0+] TemporaryStorage&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [3.0.0+] CacheStorage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ImageDirectoryId =&lt;br /&gt;
This is &amp;quot;nn::fs::ImageDirectoryId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= CloudBackupWorkStorageId =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentPath =&lt;br /&gt;
These are the 0x300 paths to NCA files for the various filesystems FS can access, beginning with @. They&#039;re passed via X descriptors, and returned via various [[Location Resolver services|ncm/lr]] commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Path || Notes&lt;br /&gt;
|-&lt;br /&gt;
| @SystemContent ||&lt;br /&gt;
|- &lt;br /&gt;
| @UserContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @SdCardContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @CalibFile ||&lt;br /&gt;
|-&lt;br /&gt;
| @Safe ||&lt;br /&gt;
|-&lt;br /&gt;
| @User ||&lt;br /&gt;
|-&lt;br /&gt;
| @System ||&lt;br /&gt;
|-&lt;br /&gt;
| @Sdcard ||&lt;br /&gt;
|-&lt;br /&gt;
| @Host ||&lt;br /&gt;
|-&lt;br /&gt;
| @GcApp || Gamecard App partition (Partition 2)&lt;br /&gt;
|-&lt;br /&gt;
| @GcS00000001 || Gamecard Contents.&lt;br /&gt;
|-&lt;br /&gt;
| @upp || Gamecard update partition (Partition 0)&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] @RegUpdate || Registered update partition&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Save Struct =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData. SaveData: 0 can be used for accessing the savedata associated with the current FS session titleID, otherwise when set this is the titleID associated with the savedata to access.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x10&lt;br /&gt;
| userID for user-specific savedata(saveuser) when set, otherwise when zero this indicates the common savedata(savecommon). This is loaded from [[Account_services]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| u64 [[Flash_Filesystem|saveID]]. 0 for SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21&lt;br /&gt;
| 0x1&lt;br /&gt;
| Save data &#039;rank&#039; or &#039;precedence&#039;. 0 if this save data is considered the primary save data. 1 if it&#039;s considered the secondary save data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x22&lt;br /&gt;
| 0x2&lt;br /&gt;
| Save data index&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
For DeviceSaveData, this struct is all-zero except for the [[#SaveDataType]] field.&lt;br /&gt;
&lt;br /&gt;
= SaveCreate Struct =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data journal size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data block size. 0x4000 for SystemSaveData/SaveData/DeviceSaveData/BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| Save data owner id. Official user-processes only uses 0 here for SystemSaveData/SaveData. For the dedicated save-creation code with SaveData/DeviceSaveData, this value comes from an input param with official user-processes. For BcatSaveData, this is the hard-coded [[Title_list|titleID]] of the bcat-sysmodule.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4&lt;br /&gt;
| Save data flags. Written using an input param for official user-processes. Hard-coded 0 for BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataSpaceId]]. Official user-processes only uses 0 here for SystemSaveData, 1 for SaveData/DeviceSaveData/BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25&lt;br /&gt;
| 0x1&lt;br /&gt;
| Unknown. 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x1A&lt;br /&gt;
| Not initialized for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
= DeviceSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8, the only difference compared to SaveData is the Save-struct.&lt;br /&gt;
&lt;br /&gt;
= BcatSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8. The Save-struct is the same as DeviceSaveData, except that the titleID field is set to &amp;lt;input titleID&amp;gt;. See above regarding SaveCreate-struct.&lt;br /&gt;
&lt;br /&gt;
The 0x10-byte struct passed to [[#CreateSaveDataFileSystem]] has the first 0x5-bytes set to all-zero.&lt;br /&gt;
&lt;br /&gt;
= SaveDataInfo =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Unknown saveID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA&lt;br /&gt;
| 0x6&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| userID&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x8&lt;br /&gt;
| saveID, 0 for regular SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| Application titleID, for regular SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| Raw saveimage size&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x2&lt;br /&gt;
| Save data index&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A&lt;br /&gt;
| 0x1&lt;br /&gt;
| Save data &#039;rank&#039; or &#039;precedence&#039;. 0 if this save data is considered the primary save data. 1 if it&#039;s considered the secondary save data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B&lt;br /&gt;
| 0x25&lt;br /&gt;
| Unknown. Usually zeros?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a 0x60-byte struct.&lt;br /&gt;
&lt;br /&gt;
= SaveDataFileSystemExtraData =&lt;br /&gt;
This is a 0x200-byte struct. Appears to match [[Savegames#Extra_data]].&lt;br /&gt;
&lt;br /&gt;
= InitialDataVersion2 =&lt;br /&gt;
This is a 0x8210-byte struct used by [[#ISaveDataTransferManagerWithDivision]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=7201</id>
		<title>Error codes</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=7201"/>
		<updated>2019-07-12T13:06:56Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* FS Error Codes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Structure =&lt;br /&gt;
These have been redesigned from the 3DS so that they fit within a Aarch64 MOV instruction immediate most of the time (without requiring the additional MOVK).&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Bits || Field&lt;br /&gt;
|-&lt;br /&gt;
| 8-0 || Module&lt;br /&gt;
|-&lt;br /&gt;
| 21-9 || Description&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When a fatal-error is received the error code is outputted using the following formatter:&lt;br /&gt;
  %04d-%04d&lt;br /&gt;
&lt;br /&gt;
.. where the first code is &amp;lt;code&amp;gt;2000 + Module&amp;lt;/code&amp;gt;, and the other being &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;. Bits &amp;gt;=22 from the error-code are unused when displaying fatal-errors, since the Description ends with bit21.&lt;br /&gt;
&lt;br /&gt;
= Modules =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Kernel&lt;br /&gt;
|-&lt;br /&gt;
| 2 || FS&lt;br /&gt;
|-&lt;br /&gt;
| 3 || OS (Memory, Thread, Mutex, NVIDIA)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || HTCS&lt;br /&gt;
|-&lt;br /&gt;
| 5 || NCM&lt;br /&gt;
|-&lt;br /&gt;
| 6 || DD&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Debug Monitor&lt;br /&gt;
|-&lt;br /&gt;
| 8 || LR&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Loader&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CMIF (IPC command interface)&lt;br /&gt;
|-&lt;br /&gt;
| 11 || HIPC (IPC)&lt;br /&gt;
|-&lt;br /&gt;
| 15 || PM&lt;br /&gt;
|-&lt;br /&gt;
| 16 || NS&lt;br /&gt;
|-&lt;br /&gt;
| 17 || Sockets&lt;br /&gt;
|-&lt;br /&gt;
| 18 || HTC&lt;br /&gt;
|-&lt;br /&gt;
| 19 || TSC&lt;br /&gt;
|-&lt;br /&gt;
| 20 || NCM Content&lt;br /&gt;
|-&lt;br /&gt;
| 21 || SM&lt;br /&gt;
|-&lt;br /&gt;
| 22 || RO userland&lt;br /&gt;
|-&lt;br /&gt;
| 24 || SDMMC&lt;br /&gt;
|-&lt;br /&gt;
| 25 || OVLN&lt;br /&gt;
|-&lt;br /&gt;
| 26 || SPL&lt;br /&gt;
|-&lt;br /&gt;
| 30 || Bus&lt;br /&gt;
|-&lt;br /&gt;
| 100 || ETHC&lt;br /&gt;
|-&lt;br /&gt;
| 101 || I2C&lt;br /&gt;
|-&lt;br /&gt;
| 102 || GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 103 || UART&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Settings&lt;br /&gt;
|-&lt;br /&gt;
| 107 || WLAN&lt;br /&gt;
|-&lt;br /&gt;
| 108 || XCD&lt;br /&gt;
|-&lt;br /&gt;
| 110 || NIFM&lt;br /&gt;
|-&lt;br /&gt;
| 111 || Hwopus&lt;br /&gt;
|-&lt;br /&gt;
| 113 || Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
| 114 || VI&lt;br /&gt;
|-&lt;br /&gt;
| 115 || NFP&lt;br /&gt;
|-&lt;br /&gt;
| 116 || Time&lt;br /&gt;
|-&lt;br /&gt;
| 117 || FGM&lt;br /&gt;
|-&lt;br /&gt;
| 118 || OE&lt;br /&gt;
|-&lt;br /&gt;
| 120 || PCIe&lt;br /&gt;
|-&lt;br /&gt;
| 121 || Friends&lt;br /&gt;
|-&lt;br /&gt;
| 122 || BCAT&lt;br /&gt;
|-&lt;br /&gt;
| 123 || SSL&lt;br /&gt;
|-&lt;br /&gt;
| 124 || Account&lt;br /&gt;
|-&lt;br /&gt;
| 125 || News&lt;br /&gt;
|-&lt;br /&gt;
| 126 || Mii&lt;br /&gt;
|-&lt;br /&gt;
| 127 || NFC&lt;br /&gt;
|-&lt;br /&gt;
| 128 || AM&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Play Report&lt;br /&gt;
|-&lt;br /&gt;
| 130 || AHID&lt;br /&gt;
|-&lt;br /&gt;
| 132 || Home Menu (Qlaunch)&lt;br /&gt;
|-&lt;br /&gt;
| 133 || PCV&lt;br /&gt;
|-&lt;br /&gt;
| 134 || OMM&lt;br /&gt;
|-&lt;br /&gt;
| 135 || BPC&lt;br /&gt;
|-&lt;br /&gt;
| 136 || PSM&lt;br /&gt;
|-&lt;br /&gt;
| 137 || NIM&lt;br /&gt;
|-&lt;br /&gt;
| 138 || PSC&lt;br /&gt;
|-&lt;br /&gt;
| 139 || TC&lt;br /&gt;
|-&lt;br /&gt;
| 140 || USB&lt;br /&gt;
|-&lt;br /&gt;
| 141 || NSD&lt;br /&gt;
|-&lt;br /&gt;
| 142 || PCTL&lt;br /&gt;
|-&lt;br /&gt;
| 143 || BTM&lt;br /&gt;
|-&lt;br /&gt;
| 144 || LA (Library Applet)&lt;br /&gt;
|-&lt;br /&gt;
| 145 || ETicket&lt;br /&gt;
|-&lt;br /&gt;
| 146 || NGC (Bad Words)&lt;br /&gt;
|-&lt;br /&gt;
| 147 || Error Report&lt;br /&gt;
|-&lt;br /&gt;
| 148 || APM&lt;br /&gt;
|-&lt;br /&gt;
| 149 || CEC&lt;br /&gt;
|-&lt;br /&gt;
| 150 || Profiler&lt;br /&gt;
|-&lt;br /&gt;
| 151 || Error Upload&lt;br /&gt;
|-&lt;br /&gt;
| 153 || Audio&lt;br /&gt;
|-&lt;br /&gt;
| 154 || NPNS&lt;br /&gt;
|-&lt;br /&gt;
| 155 || NPNS HTTP Stream&lt;br /&gt;
|-&lt;br /&gt;
| 157 || ARP&lt;br /&gt;
|-&lt;br /&gt;
| 158 || Updater&lt;br /&gt;
|-&lt;br /&gt;
| 159 || SWKBD&lt;br /&gt;
|-&lt;br /&gt;
| 161 || NFC Mifare&lt;br /&gt;
|-&lt;br /&gt;
| 162 || Userland assert&lt;br /&gt;
|-&lt;br /&gt;
| 163 || Fatal&lt;br /&gt;
|-&lt;br /&gt;
| 164 || NIM Shop&lt;br /&gt;
|-&lt;br /&gt;
| 165 || SPSM&lt;br /&gt;
|-&lt;br /&gt;
| 167 || BGTC&lt;br /&gt;
|-&lt;br /&gt;
| 168 || Userland crash&lt;br /&gt;
|-&lt;br /&gt;
| 178 || PDM&lt;br /&gt;
|-&lt;br /&gt;
| 179 || OLSC&lt;br /&gt;
|-&lt;br /&gt;
| 180 || SREPO&lt;br /&gt;
|-&lt;br /&gt;
| 181 || Dauth&lt;br /&gt;
|-&lt;br /&gt;
| 191 || RTC&lt;br /&gt;
|-&lt;br /&gt;
| 192 || Regulator&lt;br /&gt;
|-&lt;br /&gt;
| 197 || Clkrst&lt;br /&gt;
|-&lt;br /&gt;
| 202 || HID&lt;br /&gt;
|-&lt;br /&gt;
| 203 || LDN&lt;br /&gt;
|-&lt;br /&gt;
| 205 || Irsensor&lt;br /&gt;
|-&lt;br /&gt;
| 206 || Capture&lt;br /&gt;
|-&lt;br /&gt;
| 208 || Manu&lt;br /&gt;
|-&lt;br /&gt;
| 209 || ATK&lt;br /&gt;
|-&lt;br /&gt;
| 210 || Web&lt;br /&gt;
|-&lt;br /&gt;
| 211 ||&lt;br /&gt;
|-&lt;br /&gt;
| 212 || GRC&lt;br /&gt;
|-&lt;br /&gt;
| 216 || Migration&lt;br /&gt;
|-&lt;br /&gt;
| 217 || Migration Idc Server&lt;br /&gt;
|-&lt;br /&gt;
| 345 || libnx&lt;br /&gt;
|-&lt;br /&gt;
| 346 || [[Homebrew ABI]]&lt;br /&gt;
|-&lt;br /&gt;
| 347 || Homebrew Loader&lt;br /&gt;
|-&lt;br /&gt;
| 348 || libnx Nvidia errors&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Error codes =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E01 || 1 || 7 || Session count exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C01 || 1 || 14 || Invalid kernel capability descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x4201 || 1 || 33 || Not Implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x7601 || 1 || 59 || Thread terminated/termination requested&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C01 || 1 || 70 || No more debug events&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA01 || 1 || 101 || Invalid size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC01 || 1 || 102 || Invalid address&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE01 || 1 || 103 || Resource exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD001 || 1 || 104 || Memory exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD201 || 1 || 105 || Handle-table exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 1 || 106 || Invalid memory state / invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD801 || 1 || 108 || Invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC01 || 1 || 110 || Invalid memory range&lt;br /&gt;
|-&lt;br /&gt;
| 0xE001 || 1 || 112 || Invalid thread priority.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE201 || 1 || 113 || Invalid processor id.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE401 || 1 || 114 || Invalid handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE601 || 1 || 115 || Invalid pointer/Syscall copy from user failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE801 || 1 || 116 || Invalid combination&lt;br /&gt;
|-&lt;br /&gt;
| 0xEA01 || 1 || 117 || Time out. Also when you give 0 handles to svcWaitSynchronizationN.&lt;br /&gt;
|-&lt;br /&gt;
| 0xEC01 || 1 || 118 || Operation canceled&lt;br /&gt;
|-&lt;br /&gt;
| 0xEE01 || 1 || 119 || Out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0xF001 || 1 || 120 || Invalid enum&lt;br /&gt;
|-&lt;br /&gt;
| 0xF201 || 1 || 121 || No such entry&lt;br /&gt;
|-&lt;br /&gt;
| 0xF401 || 1 || 122 || Irq/DeviceAddressSpace/{...} already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xF601 || 1 || 123 || Port remote dead&lt;br /&gt;
|-&lt;br /&gt;
| 0xF801 || 1 || 124 || [Usermode] Unhandled interrupt/exception&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA01 || 1 || 125 || Process already started/Wrong memory permission?&lt;br /&gt;
|-&lt;br /&gt;
| 0xFC01 || 1 || 126 || Reserved value&lt;br /&gt;
|-&lt;br /&gt;
| 0xFE01 || 1 || 127 || Invalid hardware breakpoint&lt;br /&gt;
|-&lt;br /&gt;
| 0x10001 || 1 || 128 || [Usermode] Fatal exception&lt;br /&gt;
|-&lt;br /&gt;
| 0x10201 || 1 || 129 || Last thread didn&#039;t belong to your process&lt;br /&gt;
|-&lt;br /&gt;
| 0x10601 || 1 || 131 || Port closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x10801 || 1 || 132 || Resource limit exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x20801 || 1 || 260 || Command buffer too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x40A01 || 1 || 517 || Invalid process ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40C01 || 1 || 518 || Invalid thread ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40E01 || 1 || 519 || Invalid thread ID (used in svcGetDebugThreadParam).&lt;br /&gt;
|-&lt;br /&gt;
| 0x41001 || 1 || 520 || Process not being debugged&lt;br /&gt;
|-&lt;br /&gt;
| 0x202 || 2 || 1 || Path does not exist.&lt;br /&gt;
|-&lt;br /&gt;
| 0x402 || 2 || 2 || Path already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE02 || 2 || 7 || Resource already in use (file already opened, savedata filesystem already mounted).&lt;br /&gt;
|-&lt;br /&gt;
| 0x4602 || 2 || 35 || Not enough free space for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4802 || 2 || 36 || Not enough free space for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A02 || 2 || 37 || Not enough free space for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C02 || 2 || 38 || Not enough free space for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4E02 || 2 || 39 || Not enough free space on SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6402 || 2 || 50 || NCA is older than version 3, or NCA SDK version is older than 0.11.0.0&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 2 || 60 || Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 2 || 1001 || Process does not have RomFs &lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 2 || 1002 || Title-id not found / savedata not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA202 || 2 || 2001 || SD card not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13B002 || 2 || 2520 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13DA02 || 2 || 2541 || Version check failed when mounting gamecard sysupdate partition?&lt;br /&gt;
|-&lt;br /&gt;
| 0x171402 || 2 || 2954 || Invalid gamecard handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 2 || 3001 || Unimplemented behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x177602 || 2 || 3003 || File/Directory already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x190202 || 2 || 3201 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190602 || 2 || 3203 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190802 || 2 || 3204 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190A02 || 2 || 3205 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190C02 || 2 || 3206 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x191002 || 2 || 3208 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x195802 || 2 || 3244 || Allocation failure related to SD cards&lt;br /&gt;
|-&lt;br /&gt;
| 0x196002 || 2 || 3248 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x196202 || 2 || 3249 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A3E02 || 2 || 3359 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4002 || 2 || 3360 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4A02 || 2 || 3365 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x21BC02 || 2 || 4318 || Invalid save data filesystem magic (valid magic is SAVE in ASCII)&lt;br /&gt;
|-&lt;br /&gt;
| 0x234202 || 2 || 4513 || Error reading ACID section in NPDM&lt;br /&gt;
|-&lt;br /&gt;
| 0x234402 || 2 || 4514 || Invalid NPDM ACID section size&lt;br /&gt;
|-&lt;br /&gt;
| 0x234602 || 2 || 4515 || Last byte of the ACID modulus is zero&lt;br /&gt;
|-&lt;br /&gt;
| 0x234802 || 2 || 4516 || Invalid ACID fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234A02 || 2 || 4517 || Invalid NCA magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x234C02 || 2 || 4518 || Invalid NCA header fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234E02 || 2 || 4519 || Invalid NCA header ACID signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x235002 || 2 || 4520 || Invalid NCA header section hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x235202 || 2 || 4521 || Invalid NCA Key index&lt;br /&gt;
|-&lt;br /&gt;
| 0x235602 || 2 || 4523 || Invalid encryption type&lt;br /&gt;
|-&lt;br /&gt;
| 0x235802 || 2 || 4524 || Redirection BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235A02 || 2 || 4525 || Encryption BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235C02 || 2 || 4526 || Redirection BKTR table end offset is past the Encryption BKTR table start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x235E02 || 2 || 4527 || NCA-path used with the wrong titleID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x236002 || 2 || 4528 || NCA header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236202 || 2 || 4529 || NCA FS header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236802 || 2 || 4532 || PartitionFS hash block size is not a power of 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236A02 || 2 || 4533 || PartitionFS hash &amp;quot;always_2&amp;quot; field is not 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236C02 || 2 || 4534 || PartitionFS hash table is too small for main data&lt;br /&gt;
|-&lt;br /&gt;
| 0x236E02 || 2 || 4535 || Invalid PartitionFS block hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244402 || 2 || 4642 || Invalid Partition file hashed region bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x244602 || 2 || 4643 || Invalid Partition FS hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244802 || 2 || 4644 || Invalid PFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244A02 || 2 || 4645 || Invalid HFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244C02 || 2 || 4646 || Invalid name offset for Partition FS file entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x244E02 || 2 || 4647 || Calculated Partition FS header size changed between 2 consecutive reads&lt;br /&gt;
|-&lt;br /&gt;
| 0x249802 || 2 || 4684 || Invalid FAT file number.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249C02 || 2 || 4686 || Invalid FAT format for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249E02 || 2 || 4687 || Invalid FAT format for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A002 || 2 || 4688 || Invalid FAT format for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A202 || 2 || 4689 || Invalid FAT format for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x250E02 || 2 || 4743 || [[NAX0|Corrupted]] NAX0 header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x251002 || 2 || 4744 || Invalid [[NAX0]] magicnum.&lt;br /&gt;
|-&lt;br /&gt;
| 0x280202 || 2 || 5121 || Invalid FAT size&lt;br /&gt;
|-&lt;br /&gt;
| 0x280402 || 2 || 5122 || Invalid FAT BPB (BIOS Parameter Block)&lt;br /&gt;
|-&lt;br /&gt;
| 0x280602 || 2 || 5123 || Invalid FAT parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x280802 || 2 || 5124 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280A02 || 2 || 5125 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280C02 || 2 || 5126 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280E02 || 2 || 5127 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x296A02 || 2 || 5301 || Mountpoint not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 || 2 || 6001 || Invalid input&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE602 || 2 || 6003 || Path too long&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE802 || 2 || 6004 || Invalid character.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEA02 || 2 || 6005 || Invalid directory path.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEC02 || 2 || 6006 || Unable to retrieve directory from path&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 2 || 6061 || Offset outside storage&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 || 2 || 6300 || Operation not supported&lt;br /&gt;
|-&lt;br /&gt;
| 0x313C02 || 2 || 6302 || Attempted to resize a nn::fs::SubStorage or BufferedStorage that is marked as non-resizable&lt;br /&gt;
|-&lt;br /&gt;
| 0x313E02 || 2 || 6303 || Attempted to resize a nn::fs::SubStorage or BufferedStorage when the SubStorage ends before the base storage&lt;br /&gt;
|-&lt;br /&gt;
| 0x314002 || 2 || 6304 || Attempted to call nn::fs::MemoryStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x314202 || 2 || 6305 || Invalid Operation ID in nn::fs::MemoryStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x314402 || 2 || 6306 || Invalid Operation ID in nn::fs::FileStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x314C02 || 2 || 6310 || Attempted to call nn::fssystem::AesCtrCounterExtendedStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x314E02 || 2 || 6311 || Attempted to call nn::fssystem::AesCtrCounterExtendedStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315002 || 2 || 6312 || Invalid Operation ID in nn::fssystem::AesCtrCounterExtendedStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x315802 || 2 || 6316 || Attempted to call nn::fssystem::save::HierarchicalIntegrityVerificationStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315A02 || 2 || 6317 || Attempted to call nn::fssystem::save::HierarchicalIntegrityVerificationStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x315C02 || 2 || 6318 || Attempted to call nn::fssystem::save::IntegrityVerificationStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315E02 || 2 || 6319 || Attempted to invalidate the cache of a RomFs IVFC storage in nn::fssystem::save::IntegrityVerificationStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x316002 || 2 || 6320 || Invalid Operation ID in nn::fssystem::save::IntegrityVerificationStorage::OperateRange &lt;br /&gt;
|-&lt;br /&gt;
| 0x316202 || 2 || 6321 || Attempted to call nn::fssystem::save::BlockCacheBufferedStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x316402 || 2 || 6322 || Attempted to invalidate the cache of something other than a savedata IVFC storage in nn::fssystem::save::BlockCacheBufferedStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x316602 || 2 || 6323 || Invalid Operation ID in nn::fssystem::save::BlockCacheBufferedStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x316802 || 2 || 6324 || Attempted to call nn::fssystem::IndirectStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x316A02 || 2 || 6325 || Attempted to call nn::fssystem::IndirectStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x316C02 || 2 || 6326 || Invalid Operation ID in nn::fssystem::IndirectStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x317202 || 2 || 6329 || Attempted to call nn::fssystem::HierarchicalSha256Storage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317402 || 2 || 6330 || Attempted to call nn::fssystem::ReadOnlyBlockCacheStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x317602 || 2 || 6331 || Attempted to call nn::fssystem::ReadOnlyBlockCacheStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317802 || 2 || 6332 || Attempted to call nn::fssystem::IntegrityRomFsStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317A02 || 2 || 6333 || Attempted to call nn::fssystem::save::DuplexStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317C02 || 2 || 6334 || Invalid Operation ID in nn::fssystem::save::DuplexStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x317E02 || 2 || 6335 || Attempted to call nn::fssystem::save::HierarchicalDuplexStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318002 || 2 || 6336 || Attempted to call nn::fssystem::save::RemapStorage::GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318202 || 2 || 6337 || Attempted to call nn::fssystem::save::RemapStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318402 || 2 || 6338 || Invalid Operation ID in nn::fssystem::save::RemapStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x318602 || 2 || 6339 || Attempted to call nn::fssystem::save::IntegritySaveDataStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318802 || 2 || 6340 || Invalid Operation ID in nn::fssystem::save::IntegritySaveDataStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x318A02 || 2 || 6341 || Attempted to call nn::fssystem::save::JournalIntegritySaveDataStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318C02 || 2 || 6342 || Invalid Operation ID in nn::fssystem::save::JournalIntegritySaveDataStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x318E02 || 2 || 6343 || Attempted to call nn::fssystem::save::JournalStorage::GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x319002 || 2 || 6344 || Attempted to call nn::fssystem::save::JournalStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x319202 || 2 || 6345 || Invalid Operation ID in nn::fssystem::save::JournalStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x319602 || 2 || 6347 || Attempted to call nn::fssystem::dbm::AllocationTableStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x31A602 || 2 || 6355 || Invalid Operation ID in nn::fat::FatFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31A802 || 2 || 6356 || Invalid Operation ID in nn::fssystem::StorageFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31AE02 || 2 || 6359 || Invalid Query ID in nn::fssystem::ConcatenationFileSystem::DoQueryEntry&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B002 || 2 || 6360 || Invalid Operation ID in nn::fssystem::ConcatenationFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B402 || 2 || 6362 || Invalid Operation ID in nn::fs::detail::FileServiceObjectAdapter::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B602 || 2 || 6363 || Invalid Operation ID in nn::fssystem::AesXtsFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B802 || 2 || 6364 || Attempted to modify a nn::fs::RomFsFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0x31BA02 || 2 || 6365 || Attempted to call nn::fs::RomFsFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31BC02 || 2 || 6366 || Attempted to query the space in a nn::fs::RomFsFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0x31BE02 || 2 || 6367 || Attempted to modify a nn::fssystem::RomFsFile&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C002 || 2 || 6368 || Invalid Operation ID in nn::fssystem::RomFsFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C202 || 2 || 6369 || Attempted to modify a nn::fs::ReadOnlyFileSystemTemplate&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C402 || 2 || 6370 || Attempted to call nn::fs::ReadOnlyFileSystemTemplate::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C602 || 2 || 6371 || Attempted to query the space in a nn::fs::ReadOnlyFileSystemTemplate&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C802 || 2 || 6372 || Attempted to modify a nn::fs::ReadOnlyFileSystemFile&lt;br /&gt;
|-&lt;br /&gt;
| 0x31CA02 || 2 || 6373 || Invalid Operation ID in nn::fs::ReadOnlyFileSystemFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31CC02 || 2 || 6374 || Attempted to modify a nn::fssystem::PartitionFileSystemCore&lt;br /&gt;
|-&lt;br /&gt;
| 0x31CE02 || 2 || 6375 || Attempted to call nn::fssystem::PartitionFileSystemCore::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31D002 || 2 || 6376 || Attempted to call nn::fssystem::PartitionFileSystemCore::PartitionFile::DoSetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x31D202 || 2 || 6377 || Invalid Operation ID in nn::fssystem::PartitionFileSystemCore::PartitionFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31DC02 || 2 || 6382 || Attempted to call nn::fssystem::ApplicationTemporaryFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31DE02 || 2 || 6383 || Attempted to call nn::fssystem::SaveDataFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31E002 || 2 || 6384 || Attempted to call nn::fssystem::DirectorySaveDataFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 || 2 || 6400 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x326602 || 2 || 6451 || Missing titlekey(?) required to mount content&lt;br /&gt;
|-&lt;br /&gt;
| 0x326E02 || 2 || 6455 || File not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327002 || 2 || 6456 || Directory not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327202 || 2 || 6457 || Writable file not closed when committing&lt;br /&gt;
|-&lt;br /&gt;
| 0x327402 || 2 || 6458 || FS allocators already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x327602 || 2 || 6459 || FS allocators already used&lt;br /&gt;
|-&lt;br /&gt;
| 0x327A02 || 2 || 6461 || FS allocator alignment violation&lt;br /&gt;
|-&lt;br /&gt;
| 0x339402 || 2 || 6602 || File not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x339602 || 2 || 6603 || Directory not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x35F202 || 2 || 6905 || Mount name not found in table.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBC02 || 2 || 7902 || RomFs table: Entry not found in dictionary&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBE02 || 2 || 7903 || RomFs table: File not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC002 || 2 || 7904 || RomFs table: Directory not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC402 || 2 || 7906 || RomFs table: Entry already exists when trying to add a new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC602 || 2 || 7907 || RomFs table: Insufficient space to add new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC802 || 2 || 7908 || RomFs table: Unable to add new directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCA02 || 2 || 7909 || RomFs table: Unable to add new file&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCC02 || 2 || 7910 || RomFs directory has no more child directories/files when iterating&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DD402 || 2 || 7914 || RomFs table: Path is file, not directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x803 || 3 || 4 || OS busy&lt;br /&gt;
|-&lt;br /&gt;
| 0xE03 || 3 || 7 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x1003 || 3 || 8 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1203 || 3 || 9 || Out of resources&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EA03 || 3 || 501 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE03 || 3 || 503 || Invalid memory mirror&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FE03 || 3 || 1023 || TLS slot is not allocated&lt;br /&gt;
|-&lt;br /&gt;
| 0xA05 || 5 || 5 || [[Content_Manager_services|NcaID]] not found. Returned when attempting to mount titles which exist that aren&#039;t *8XX titles, the same way *8XX titles are mounted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE05 || 5 || 7 || TitleId not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1805 || 5 || 12 || Invalid StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC05 || 5 || 110 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x17C05 || 5 || 190 || Gamecard not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F405 || 5 || 250 || Sdcard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x20805 || 5 || 260 || Storage not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0x806 || 6 || 4 || Converted from error 0xD401&lt;br /&gt;
|-&lt;br /&gt;
| 0x1006 || 6 || 8 || Converted from error 0xE401&lt;br /&gt;
|-&lt;br /&gt;
| 0x408 || 8 || 2 || Program location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x608 || 8 || 3 || Invalid context for control location&lt;br /&gt;
|-&lt;br /&gt;
| 0x808 || 8 || 4 || Storage not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA08 || 8 || 5 || Access denied&lt;br /&gt;
|-&lt;br /&gt;
| 0xC08 || 8 || 6 || Offline manual HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xE08 || 8 || 7 || Title is not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1008 || 8 || 8 || Control location entry for host not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1208 || 8 || 9 || Legal info HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1408 || 8 || 10 || Program location for debug entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x209 || 9 || 1 || Args too long.&lt;br /&gt;
|-&lt;br /&gt;
| 0x409 || 9 || 2 || Maximum processes loaded.&lt;br /&gt;
|-&lt;br /&gt;
| 0x609 || 9 || 3 || NPDM too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x19009 || 9 || 200 || Invalid access control sizes in NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x809 || 9 || 4 || Invalid NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0xA09 || 9 || 5 || Invalid files.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE09 || 9 || 7 || Already registered.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1009 || 9 || 8 || Title not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1209 || 9 || 9 || Title-id in ACI0 doesn&#039;t match range in ACID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6609 || 9 || 51 || Invalid memory state/permission&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A09 || 9 || 53 || Invalid NRR&lt;br /&gt;
|-&lt;br /&gt;
| 0xA209 || 9 || 81 || Unaligned NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xA409 || 9 || 82 || Bad NRR size&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA09 || 9 || 85 || Bad NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xAE09 || 9 || 87 || Bad initialization&lt;br /&gt;
|-&lt;br /&gt;
| 0xC809 || 9 || 100 || Unknown ACI0 descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE09 || 9 || 103 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD009 || 9 || 104 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;SyscallMask&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD409 || 9 || 106 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapIoOrNormalRange&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD609 || 9 || 107 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapNormalPage&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xDE09 || 9 || 111 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;InterruptPair&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE209 || 9 || 113 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;ApplicationType&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE409 || 9 || 114 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelReleaseVersion&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE609 || 9 || 115 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;HandleTableSize&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE809 || 9 || 116 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;DebugFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x1940A || 10 || 202 || Invalid CMIF header size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A60A || 10 || 211 || Invalid CMIF input header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A80A || 10 || 212 || Invalid CMIF output header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA0A || 10 || 221 || Invalid method dispatch ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D60A || 10 || 235 || Invalid in object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D80A || 10 || 236 || Invalid out object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0A || 10 || 301 || Out of domain entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20B || 11 || 1 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC0B || 11 || 102 || Out of server session memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x11A0B || 11 || 141 || Went past maximum during marshalling.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1900B || 11 || 200 || Session doesn&#039;t support domains.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0B || 11 || 301 || Remote process is dead.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3260B || 11 || 403 || Unknown request type&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D60B || 11 || 491 || IPC Query 1 failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20F || 15 || 1 || Pid not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x60F || 15 || 3 || Process has no pending events&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0F || 15 || 5 || Application already running&lt;br /&gt;
|-&lt;br /&gt;
| 0x410 || 16 || 2 || Title-id not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xF010 || 16 || 120 || Gamecard sysupdate not required&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F610 || 16 || 251 || Unexpected StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0x215 || 21 || 1 || Out of processes&lt;br /&gt;
|-&lt;br /&gt;
| 0x415 || 21 || 2 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x615 || 21 || 3 || Max sessions&lt;br /&gt;
|-&lt;br /&gt;
| 0x815 || 21 || 4 || Service already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xA15 || 21 || 5 || Out of services&lt;br /&gt;
|-&lt;br /&gt;
| 0xC15 || 21 || 6 || Invalid name (all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0xE15 || 21 || 7 || Service not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1015 || 21 || 8 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x1215 || 21 || 9 || Service Access Control too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x416 || 22 || 2 || Address space is full&lt;br /&gt;
|-&lt;br /&gt;
| 0x616 || 22 || 3 || NRO already loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x816 || 22 || 4 || Invalid NRO header values&lt;br /&gt;
|-&lt;br /&gt;
| 0xC16 || 22 || 6 || Bad NRR magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x1016 || 22 || 8 || Reached max NRR count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1216 || 22 || 9 || Unable to verify NRO hash or NRR signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x80216 || 22 || 1025 || Address not page-aligned&lt;br /&gt;
|-&lt;br /&gt;
| 0x80416 || 22 || 1026 || Incorrect NRO size&lt;br /&gt;
|-&lt;br /&gt;
| 0x80816 || 22 || 1028 || NRO not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80A16 || 22 || 1029 || NRR not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80C16 || 22 || 1030 || Already initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E16 || 22 || 1031 || Not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x21A || 26 || 1 || SMC is not implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x41A || 26 || 2 || SMC argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A || 26 || 3 || SMC is currently in progress/secmon is busy&lt;br /&gt;
|-&lt;br /&gt;
| 0x81A || 26 || 4 || Secmon not currently performing async operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xA1A || 26 || 5 || Invalid SMC async callback key&lt;br /&gt;
|-&lt;br /&gt;
| 0xC1A || 26 || 6 || SMC is blacklisted during current boot&lt;br /&gt;
|-&lt;br /&gt;
| 0xC81A || 26 || 100 || Invalid (buffer) size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Unknown SMC error&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Decryption failure&lt;br /&gt;
|-&lt;br /&gt;
| 0xD01A || 26 || 104 || No AES keyslots available&lt;br /&gt;
|-&lt;br /&gt;
| 0xD21A || 26 || 105 || Invalid AES keyslot&lt;br /&gt;
|-&lt;br /&gt;
| 0xD41A || 26 || 106 || BootReason already set&lt;br /&gt;
|-&lt;br /&gt;
| 0xD61A || 26 || 107 || BootReason not set&lt;br /&gt;
|-&lt;br /&gt;
| 0xD81A || 26 || 108 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x19269 || 105 || 201 || Null settings name&lt;br /&gt;
|-&lt;br /&gt;
| 0x19469 || 105 || 202 || Null settings key&lt;br /&gt;
|-&lt;br /&gt;
| 0x19669 || 105 || 203 || Null settings value&lt;br /&gt;
|-&lt;br /&gt;
| 0x19A69 || 105 || 205 || Null settings value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A069 || 105 || 208 || Null setting value size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A269 || 105 || 209 || Null debug mode flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA69 || 105 || 221 || Setting group name has zero length&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BC69 || 105 || 222 || Empty settings item key&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E269 || 105 || 241 || Setting group name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E469 || 105 || 242 || Setting name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x20A69 || 105 || 261 || Setting group name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x20C69 || 105 || 262 || Setting name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x4DA69 || 105 || 621 || Null language code buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4EE69 || 105 || 631 || Null network settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4F069 || 105 || 632 || Null network settings output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x50269 || 105 || 641 || Null backlight settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51669 || 105 || 651 || Null Bluetooth device setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51869 || 105 || 652 || Null Bluetooth device setting output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51A69 || 105 || 653 || Null Bluetooth enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51C69 || 105 || 654 || Null Bluetooth AFH enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51E69 || 105 || 655 || Null Bluetooth boost enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52069 || 105 || 656 || Null BLE pairing settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52269 || 105 || 657 || Null BLE pairing settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52A69 || 105 || 661 || Null external steady clock source ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52C69 || 105 || 662 || Null user system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52E69 || 105 || 663 || Null network system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53069 || 105 || 664 || Null user system clock automatic correction enabled flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53269 || 105 || 665 || Null shutdown RTC value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53469 || 105 || 666 || Null external steady clock internal offset buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53E69 || 105 || 671 || Null account settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55269 || 105 || 681 || Null audio volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55669 || 105 || 683 || Null ForceMuteOnHeadphoneRemoved buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55869 || 105 || 684 || Null headphone volume warning count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55E69 || 105 || 687 || Invalid audio output mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x56069 || 105 || 688 || Null headphone volume update flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x56669 || 105 || 691 || Null console information upload flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57A69 || 105 || 701 || Null automatic application download flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57C69 || 105 || 702 || Null notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57E69 || 105 || 703 || Null account notification settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58069 || 105 || 704 || Null account notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58E69 || 105 || 711 || Null vibration master volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59069 || 105 || 712 || Null NX controller settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59269 || 105 || 713 || Null NX controller settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59469 || 105 || 714 || Null USB full key enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A269 || 105 || 721 || Null TV settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A469 || 105 || 722 || Null EDID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5B669 || 105 || 731 || Null data deletion settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CA69 || 105 || 741 || Null initial system applet program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CC69 || 105 || 742 || Null overlay disp program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CE69 || 105 || 743 || Null IsInRepairProcess buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5D069 || 105 || 744 || Null RequiresRunRepairTimeReviser buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5DE69 || 105 || 751 || Null device timezone location name buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5F269 || 105 || 761 || Null primary album storage buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60669 || 105 || 771 || Null USB 3.0 enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60869 || 105 || 772 || Null USB Type-C power source circuit version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A69 || 105 || 781 || Null battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x62E69 || 105 || 791 || Null serial number buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64269 || 105 || 801 || Null lock screen flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64669 || 105 || 803 || Null color set ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64869 || 105 || 804 || Null quest flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64A69 || 105 || 805 || Null wireless certification file size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64C69 || 105 || 806 || Null wireless certification file buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64E69 || 105 || 807 || Null initial launch settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65069 || 105 || 808 || Null device nickname buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65269 || 105 || 809 || Null battery percentage flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65469 || 105 || 810 || Null applet launch flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7E869 || 105 || 1012 || Null wireless LAN enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FA69 || 105 || 1021 || Null product model buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E69 || 105 || 1031 || Null NFC enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82269 || 105 || 1041 || Null ECI device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82469 || 105 || 1042 || Null E-Ticket device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x83669 || 105 || 1051 || Null sleep settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84A69 || 105 || 1061 || Null EULA version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84C69 || 105 || 1062 || Null EULA version entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x85E69 || 105 || 1071 || Null LDN channel buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87269 || 105 || 1081 || Null SSL key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87469 || 105 || 1082 || Null SSL certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x88669 || 105 || 1091 || Null telemetry flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89A69 || 105 || 1101 || Null Gamecard key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89C69 || 105 || 1102 || Null Gamecard certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8AE69 || 105 || 1111 || Null PTM battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B069 || 105 || 1112 || Null PTM fuel gauge parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C269 || 105 || 1121 || Null ECI device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C469 || 105 || 1122 || Null E-Ticket device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D669 || 105 || 1131 || Null speaker parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EA69 || 105 || 1141 || Null firmware version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EC69 || 105 || 1142 || Null firmware version digest buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EE69 || 105 || 1143 || Null rebootless system update version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8FE69 || 105 || 1151 || Null Mii author ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x91269 || 105 || 1161 || Null fatal flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x92669 || 105 || 1171 || Null auto update enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x93A69 || 105 || 1181 || Null external RTC reset flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x94E69 || 105 || 1191 || Null push notification activity mode buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x96269 || 105 || 1201 || Null service discovery control setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x97669 || 105 || 1211 || Null error report share permission buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x98A69 || 105 || 1221 || Null LCD vendor ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x99E69 || 105 || 1231 || Null console SixAxis sensor acceleration bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A069 || 105 || 1232 || Null console SixAxis sensor angular velocity bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A269 || 105 || 1233 || Null console SixAxis sensor acceleration gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A469 || 105 || 1234 || Null console SixAxis sensor angular velocity gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A669 || 105 || 1235 || Null console SixAxis sensor angular velocity time bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A869 || 105 || 1236 || Null console SixAxis sensor angular acceleration buffer &lt;br /&gt;
|-&lt;br /&gt;
| 0x9B269 || 105 || 1241 || Null keyboard layout buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9BA69 || 105 || 1245 || Invalid keyboard layout&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C669 || 105 || 1251 || Null web inspector flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C869 || 105 || 1252 || Null allowed SSL hosts buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CA69 || 105 || 1253 || Null allowed SSL hosts entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CC69 || 105 || 1254 || Null host FS mount point buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9EE69 || 105 || 1271 || Null Amiibo key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F069 || 105 || 1272 || Null Amiibo ECQV certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F269 || 105 || 1273 || Null Amiibo ECDSA certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F469 || 105 || 1274 || Null Amiibo ECQV BLS key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F669 || 105 || 1275 || Null Amiibo ECQV BLS certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F869 || 105 || 1276 || Null Amiibo ECQV BLS root certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x272 || 114 || 1 || Generic error&lt;br /&gt;
|-&lt;br /&gt;
| 0xC72 || 114 || 6 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || 116 || 0 || Time service not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC74 || 116 || 102 || Time not set&lt;br /&gt;
|-&lt;br /&gt;
| 0x19074 || 116 || 200 || Invalid time comparison&lt;br /&gt;
|-&lt;br /&gt;
| 0x19274 || 116 || 201 || Signed overflow/underflow&lt;br /&gt;
|-&lt;br /&gt;
| 0x64274 || 116 || 801 || Memory allocation failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x70A74 || 116 || 901 || Null pointer&lt;br /&gt;
|-&lt;br /&gt;
| 0x70C74 || 116 || 902 || Value out of valid range&lt;br /&gt;
|-&lt;br /&gt;
| 0x70E74 || 116 || 903 || TimeZoneRule conversion failed&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BA74 || 116 || 989 || TimeZone location name not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BC74 || 116 || 990 || Unimplemented functionality&lt;br /&gt;
|-&lt;br /&gt;
| 0x27A || 122 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x47A || 122 || 2 || Object not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x67A || 122 || 3 || Object locked/in used&lt;br /&gt;
|-&lt;br /&gt;
| 0x87A || 122 || 4 || Target already mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0xA7A || 122 || 5 || Target not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0xC7A || 122 || 6 || Object already opened&lt;br /&gt;
|-&lt;br /&gt;
| 0xE7A || 122 || 7 || Object not opened&lt;br /&gt;
|-&lt;br /&gt;
| 0xA07A || 122 || 80 || Passphrase not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA27A || 122 || 81 || Data verification failed&lt;br /&gt;
|-&lt;br /&gt;
| 0xB47A || 122 || 90 || Invalid API call&lt;br /&gt;
|-&lt;br /&gt;
| 0xC47A || 122 || 98 || Invalid operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x287C || 124 || 20 || Argument is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C7C || 124 || 22 || Argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C7C || 124 || 30 || Bad input buffer size&lt;br /&gt;
|-&lt;br /&gt;
| 0x407C || 124 || 32 || Invalid input buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x27E || 126 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x87E || 126 || 4 || Entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE7E || 126 || 67 || Invalid database signature value (should be &amp;quot;NFDB&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0xD27E || 126 || 69 || Invalid database entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1987E || 126 || 204 || Development/debug-only behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x480 || 128 || 2 || IStorage not available.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4680 || 128 || 35 || Error while launching applet.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A80 || 128 || 37 || Title-ID not found. Caused by code 0x410 when applet launch fails&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E880 || 128 || 500 || Invalid input&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EC80 || 128 || 502 || IStorage has already been opened by another accessor&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE80 || 128 || 503 || IStorage Read/Write out-of-bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x3FE80 || 128 || 511 || IStorage opened as wrong type (data opened as transfermem, transfermem opened as data)&lt;br /&gt;
|-&lt;br /&gt;
| 0x40080 || 128 || 512 || Unbalanced fatal section leave (returned when executing LeaveFatalSection without a preceding EnterFatalSection call)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B080 || 128 || 600 || Failed to allocate memory for IStorage&lt;br /&gt;
|-&lt;br /&gt;
| 0x59080 || 128 || 712 || Thread stack pool exhausted (out of memory)&lt;br /&gt;
|-&lt;br /&gt;
| 0x7A880 || 128 || 980 || &amp;lt;code&amp;gt;am.debug!dev_function&amp;lt;/code&amp;gt; setting needs to be set&lt;br /&gt;
|-&lt;br /&gt;
| 0xA83 || 131 || 5 || Unrecognized applet ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x485 || 133 || 2 || Invalid DVFS table ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x885 || 133 || 4 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x3CF089 || 137 || 7800 || Unknown/invalid libcurl error.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E8289-0x3F4089 || 137 || 8001-8096 || libcurl error 1-96. Some of the libcurl errors in the error-table map to the above unknown-libcurl-error however.&lt;br /&gt;
|-&lt;br /&gt;
| 0x68A || 138 || 3 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x668C || 140 || 51 || USB data-transfer in progress&lt;br /&gt;
|-&lt;br /&gt;
| 0xD48C || 140 || 106 || Invalid descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x1928C || 140 || 201 || USB device not bound / interface already enabled&lt;br /&gt;
|-&lt;br /&gt;
| 0x290 || 144 || 1 || Exited Abnormally ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Abormal)&lt;br /&gt;
|-&lt;br /&gt;
| 0x690 || 144 || 3 || Canceled ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Canceled)&lt;br /&gt;
|-&lt;br /&gt;
| 0x890 || 144 || 4 || Rejected&lt;br /&gt;
|-&lt;br /&gt;
| 0xA90 || 144 || 5 || Exited Unexpectedly ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Unexpected)&lt;br /&gt;
|-&lt;br /&gt;
| 0x299 || 153 || 1 || Invalid audio device&lt;br /&gt;
|-&lt;br /&gt;
| 0x499 || 153 || 2 || Operation couldn&#039;t complete successfully&lt;br /&gt;
|-&lt;br /&gt;
| 0x699 || 153 || 3 || Invalid sample rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x899 || 153 || 4 || Buffer size too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x1099 || 153 || 8 || Too many buffers are still unreleased&lt;br /&gt;
|-&lt;br /&gt;
| 0x1499 || 153 || 10 || Invalid channel count&lt;br /&gt;
|-&lt;br /&gt;
| 0x40299 || 153 || 513 || Invalid/Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0099 || 153 || 1536 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0899 || 153 || 1540 || Audio output was already started&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C9D || 157 || 30 || Address is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E9D || 157 || 31 || PID is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x549D || 157 || 42 || Already bound&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC9D || 157 || 102 || Invalid PID&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA3 || 163 ||  5 || System is booting up repair process without VOL+ held down.&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA3 || 163 || 6 || System is booting up repair process that requires RepairTimeReviser but does not have special cartridge inserted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8B2 || 178 || 100 || Invalid user ID&lt;br /&gt;
|-&lt;br /&gt;
| 0xCAB2 || 178 || 101 || User does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 0x12CB2 || 178 || 150 || Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| 0x190B2 || 178 || 200 || File storage failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x58ACA || 202 || 709 || Npad ID is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF0CD || 205 || 120 || IR image data not available/ready.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A8CD || 205 || 212 || IR camera handle pointer is null.&lt;br /&gt;
|-&lt;br /&gt;
| 0x198CD || 205 || 204 || IR camera invalid handle value.&lt;br /&gt;
|-&lt;br /&gt;
| 0x35B || 347 || 1 || Failed to init SM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x55B || 347 || 2 || Failed to init FS.&lt;br /&gt;
|-&lt;br /&gt;
| 0x75B || 347 || 3 || Failed to open NRO file. May also happen when SD card isn&#039;t inserted / SD mounting failed earlier.&lt;br /&gt;
|-&lt;br /&gt;
| 0x95B || 347 || 4 || Failed to read NRO header.&lt;br /&gt;
|-&lt;br /&gt;
| 0xB5B || 347 || 5 || Invalid NRO magic.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD5B || 347 || 6 || Invalid NRO segments.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF5B || 347 || 7 || Failed to read NRO.&lt;br /&gt;
|-&lt;br /&gt;
| 0x135B || 347 || 9 || Failed to allocate heap.&lt;br /&gt;
|-&lt;br /&gt;
| 0x255B || 347 || 18 || Failed to map code-binary memory.&lt;br /&gt;
|-&lt;br /&gt;
| 0x275B || 347 || 19 || Failed to map code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x295B || 347 || 20 || Failed to map code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B5B || 347 || 21 || Failed to map code memory (.data+.bss).&lt;br /&gt;
|-&lt;br /&gt;
| 0x315B || 347 || 24 || Failed to unmap code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x335B || 347 || 25 || Failed to unmap code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x355B || 347 || 26 || Failed to unmap code memory (.data+.bss).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FS Error Codes ==&lt;br /&gt;
The following are the error codes recognized by nn::fs::detail::LogErrorMessage found in some [[Factory Setup|factory]] titles:&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Description || Message&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 60 || nn::fs::ResultMountNameAlreadyExists: Error: Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 106 || nn::svc::ResultInvalidCurrentMemory: Error: Passed buffer is not usable for fs library. See a manual of fs library for more information.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 1001 || nn::fs::ResultPartitionNotFound: Error: Specified partition is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 1002 || nn::fs::ResultTargetNotFound: Error: Specified target is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA002 - 0x138602 || 2000 - 2499 || nn::fs::ResultSdCardAccessFailed: Error: Failed to access SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x136802 - 0x176E02 || 2500 - 2999 || nn::fs::ResultGameCardAccessFailed: Error: Failed to access game card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 3001 || nn::fs::ResultNotImplemented: Error: Specified operation is not implemented.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177A02 || 3005 || nn::fs::ResultOutOfRange: Error: Specified value is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0x190002 - 0x1B5602 || 3200 - 3499 || nn::fs::ResultAllocationMemoryFailed: Error: Failed to allocate memory.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B5802 - 0x1F3E02 || 3500 - 3999 || nn::fs::ResultMmcAccessFailed: Error: Failed to access MMC.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4202 - 0x219602 || 4001 - 4299 || nn::fs::ResultRomCorrupted: Error: ROM is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x219A02 - 0x232602 || 4301 - 4499 || nn::fs::ResultSaveDataCorrupted: Error: Save data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x232A02 - 0x23EE02 || 4501 - 4599 || nn::fs::ResultNcaCorrupted: Error: NCA is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x23F202 - 0x243E02 || 4601 - 4639 || nn::fs::ResultIntegrityVerificationStorageCorrupted: Error: Integrity verification failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x244202 - 0x246602 || 4641 - 4659 || nn::fs::ResultPartitionFileSystemCorrupted: Error: Partition FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x246A02 - 0x248E02 || 4661 - 4679 || nn::fs::ResultBuiltInStorageCorrupted: Error: Built-in-storage is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249202 - 0x24B602 || 4681 - 4699 || nn::fs::ResultFatFileSystemCorrupted: Error: FAT FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24BA02 - 0x24DE02 || 4701 - 4719 || nn::fs::ResultHostFileSystemCorrupted: Error: HOST FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4002 - 0x270E02 || 4000, 4300, 4500, 4600, 4640, 4660, 4680, 4700, 4720-4999 || nn::fs::ResultDataCorrupted: Error: Data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x271002 - 0x2EDE02 || 5000-5999 || nn::fs::ResultUnexpected: Error: Unexpected failure occurred.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE002 - 0x32C602 || 6000-6499 || nn::fs::ResultPreconditionViolation: Error: Precondition violation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 - 0x306E02 || 6001-6199 || nn::fs::ResultInvalidArgument: Error: Invalid argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE402 - 0x2F1A02 || 6002-6029 || nn::fs::ResultInvalidPath: Error: Invalid path was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE602 || 6003 || nn::fs::ResultTooLongPath: Error: Too long path was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE802 || 6004 || nn::fs::ResultInvalidCharacter: Error: Invalid path character was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEA02 || 6005 || nn::fs::ResultInvalidPathFormat: Error: Invalid path format was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 6061 || nn::fs::ResultInvalidOffset: Error: Invalid offset was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5C02 || 6062 || nn::fs::ResultInvalidSize: Error: Invalid size was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5E02 || 6063 || nn::fs::ResultNullptrArgument: Error: Null pointer argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F6202 || 6065 || nn::fs::ResultInvalidMountName: Error: Invalid mount name was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F6402 || 6066 || nn::fs::ResultExtensionSizeTooLarge: Error: Extension size exceeds max value set in nmeta file.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F6602 || 6067 || nn::fs::ResultExtensionSizeInvalid: Error: Extension size is not a multiple of nn::fs::SaveDataExtensionUnitSize.&lt;br /&gt;
|-&lt;br /&gt;
| 0x307202 || 6201 || nn::fs::ResultFileExtensionWithoutOpenModeAllowAppend: Error: OpenMode_AllowAppend is required for implicit extension of file size by WriteFile().&lt;br /&gt;
|-&lt;br /&gt;
| 0x307002 - 0x313602 || 6200, 6202 - 6299 || nn::fs::ResultInvalidOperationForOpenMode: Error: Invalid operation for the open mode.&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 - 0x31FE02 || 6300-6399 || nn::fs::ResultUnsupportedOperation: Error: Unsupported operation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 - 0x326202 || 6400-6449 || nn::fs::ResultPermissionDenied: Error: Permission denied.&lt;br /&gt;
|-&lt;br /&gt;
| 0x327202 || 6457 || nn::fs::ResultWriteModeFileNotClosed: Error: Close files opened in write mode before committing.&lt;br /&gt;
|-&lt;br /&gt;
| 0x328202 || 6465 || nn::fs::ResultUserNotExist: Error: Specified user doesn&#039;t exist.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346402 || 6706 || nn::fs::ResultMappingTableFull: Error: Enough journal space is not left.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346A02 || 6709 || nn::fs::ResultOpenCountLimit: Error: The open count of files and directories reached the limitation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x353602 || 6811 || nn::fs::ResultMapFull: Error: Save data extension count reached the limitation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x35F202 || 6905 || nn::fs::ResultNotMounted: Error: Specified mount name is not found.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Fatal Errors =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Description&lt;br /&gt;
|-&lt;br /&gt;
| 2162-0002&lt;br /&gt;
| Can be triggered by running [[SVC|svcBreak]]. The svcBreak params have no effect on the value of the thrown error-code.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0000&lt;br /&gt;
| Userland ARM undefined instruction exception&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0001&lt;br /&gt;
| Userland ARM prefetch-abort due to PC set to non-executable region&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0002&lt;br /&gt;
| Userland ARM data abort. Also caused by abnormal process termination via [[SVC|svcExitProcess]]. Note: directly jumping to nnMain()-retaddr from non-main-thread has the same result.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0003&lt;br /&gt;
| Userland PC address not aligned to 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0008&lt;br /&gt;
| Can occur when attempting to call an svc outside the whitelist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Support Errors =&lt;br /&gt;
This section is for Support Errors displayed by the error-applet, separate from the normal Result errors.&lt;br /&gt;
&lt;br /&gt;
== Support Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [[Internet_Browser|General web-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 809 || [[Internet_Browser|WifiWebAuthApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [[Internet_Browser|Whitelisted-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 811 || [[Internet_Browser|ShopN]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
8XX is for/includes system applets.&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| {web-applets listed above}&lt;br /&gt;
| 2750&lt;br /&gt;
| MP4 parsing failed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Normal error-codes displayed by the system also use the same format as fatal-errors.&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=7059</id>
		<title>Error codes</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=7059"/>
		<updated>2019-06-26T16:05:56Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* Error codes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Structure =&lt;br /&gt;
These have been redesigned from the 3DS so that they fit within a Aarch64 MOV instruction immediate most of the time (without requiring the additional MOVK).&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Bits || Field&lt;br /&gt;
|-&lt;br /&gt;
| 8-0 || Module&lt;br /&gt;
|-&lt;br /&gt;
| 21-9 || Description&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When a fatal-error is received the error code is outputted using the following formatter:&lt;br /&gt;
  %04d-%04d&lt;br /&gt;
&lt;br /&gt;
.. where the first code is &amp;lt;code&amp;gt;2000 + Module&amp;lt;/code&amp;gt;, and the other being &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;. Bits &amp;gt;=22 from the error-code are unused when displaying fatal-errors, since the Description ends with bit21.&lt;br /&gt;
&lt;br /&gt;
= Modules =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Kernel&lt;br /&gt;
|-&lt;br /&gt;
| 2 || FS&lt;br /&gt;
|-&lt;br /&gt;
| 3 || OS (Memory, Thread, Mutex, NVIDIA)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || HTCS&lt;br /&gt;
|-&lt;br /&gt;
| 5 || NCM&lt;br /&gt;
|-&lt;br /&gt;
| 6 || DD&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Debug Monitor&lt;br /&gt;
|-&lt;br /&gt;
| 8 || LR&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Loader&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CMIF (IPC command interface)&lt;br /&gt;
|-&lt;br /&gt;
| 11 || HIPC (IPC)&lt;br /&gt;
|-&lt;br /&gt;
| 15 || PM&lt;br /&gt;
|-&lt;br /&gt;
| 16 || NS&lt;br /&gt;
|-&lt;br /&gt;
| 17 || Sockets&lt;br /&gt;
|-&lt;br /&gt;
| 18 || HTC&lt;br /&gt;
|-&lt;br /&gt;
| 20 || NCM Content&lt;br /&gt;
|-&lt;br /&gt;
| 21 || SM&lt;br /&gt;
|-&lt;br /&gt;
| 22 || RO userland&lt;br /&gt;
|-&lt;br /&gt;
| 24 || SDMMC&lt;br /&gt;
|-&lt;br /&gt;
| 25 || OVLN&lt;br /&gt;
|-&lt;br /&gt;
| 26 || SPL&lt;br /&gt;
|-&lt;br /&gt;
| 30 || Bus&lt;br /&gt;
|-&lt;br /&gt;
| 100 || ETHC&lt;br /&gt;
|-&lt;br /&gt;
| 101 || I2C&lt;br /&gt;
|-&lt;br /&gt;
| 102 || GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 103 || UART&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Settings&lt;br /&gt;
|-&lt;br /&gt;
| 107 || WLAN&lt;br /&gt;
|-&lt;br /&gt;
| 108 || XCD&lt;br /&gt;
|-&lt;br /&gt;
| 110 || NIFM&lt;br /&gt;
|-&lt;br /&gt;
| 111 || Hwopus&lt;br /&gt;
|-&lt;br /&gt;
| 113 || Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
| 114 || VI&lt;br /&gt;
|-&lt;br /&gt;
| 115 || NFP&lt;br /&gt;
|-&lt;br /&gt;
| 116 || Time&lt;br /&gt;
|-&lt;br /&gt;
| 117 || FGM&lt;br /&gt;
|-&lt;br /&gt;
| 118 || OE&lt;br /&gt;
|-&lt;br /&gt;
| 120 || PCIe&lt;br /&gt;
|-&lt;br /&gt;
| 121 || Friends&lt;br /&gt;
|-&lt;br /&gt;
| 122 || BCAT&lt;br /&gt;
|-&lt;br /&gt;
| 123 || SSL&lt;br /&gt;
|-&lt;br /&gt;
| 124 || Account&lt;br /&gt;
|-&lt;br /&gt;
| 125 || News&lt;br /&gt;
|-&lt;br /&gt;
| 126 || Mii&lt;br /&gt;
|-&lt;br /&gt;
| 127 || NFC&lt;br /&gt;
|-&lt;br /&gt;
| 128 || AM&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Play Report&lt;br /&gt;
|-&lt;br /&gt;
| 130 || AHID&lt;br /&gt;
|-&lt;br /&gt;
| 132 || Home Menu (Qlaunch)&lt;br /&gt;
|-&lt;br /&gt;
| 133 || PCV&lt;br /&gt;
|-&lt;br /&gt;
| 134 || OMM&lt;br /&gt;
|-&lt;br /&gt;
| 135 || BPC&lt;br /&gt;
|-&lt;br /&gt;
| 136 || PSM&lt;br /&gt;
|-&lt;br /&gt;
| 137 || NIM&lt;br /&gt;
|-&lt;br /&gt;
| 138 || PSC&lt;br /&gt;
|-&lt;br /&gt;
| 139 || TC&lt;br /&gt;
|-&lt;br /&gt;
| 140 || USB&lt;br /&gt;
|-&lt;br /&gt;
| 141 || NSD&lt;br /&gt;
|-&lt;br /&gt;
| 142 || PCTL&lt;br /&gt;
|-&lt;br /&gt;
| 143 || BTM&lt;br /&gt;
|-&lt;br /&gt;
| 144 || LA (Library Applet)&lt;br /&gt;
|-&lt;br /&gt;
| 145 || ETicket&lt;br /&gt;
|-&lt;br /&gt;
| 146 || NGC (Bad Words)&lt;br /&gt;
|-&lt;br /&gt;
| 147 || Error Report&lt;br /&gt;
|-&lt;br /&gt;
| 148 || APM&lt;br /&gt;
|-&lt;br /&gt;
| 149 || CEC&lt;br /&gt;
|-&lt;br /&gt;
| 150 || Profiler&lt;br /&gt;
|-&lt;br /&gt;
| 151 || Error Upload&lt;br /&gt;
|-&lt;br /&gt;
| 153 || Audio&lt;br /&gt;
|-&lt;br /&gt;
| 154 || NPNS&lt;br /&gt;
|-&lt;br /&gt;
| 155 || NPNS HTTP Stream&lt;br /&gt;
|-&lt;br /&gt;
| 157 || ARP&lt;br /&gt;
|-&lt;br /&gt;
| 158 || Updater&lt;br /&gt;
|-&lt;br /&gt;
| 159 || SWKBD&lt;br /&gt;
|-&lt;br /&gt;
| 161 || NFC Mifare&lt;br /&gt;
|-&lt;br /&gt;
| 162 || Userland assert&lt;br /&gt;
|-&lt;br /&gt;
| 163 || Fatal&lt;br /&gt;
|-&lt;br /&gt;
| 164 || NIM Shop&lt;br /&gt;
|-&lt;br /&gt;
| 165 || SPSM&lt;br /&gt;
|-&lt;br /&gt;
| 167 || BGTC&lt;br /&gt;
|-&lt;br /&gt;
| 168 || Userland crash&lt;br /&gt;
|-&lt;br /&gt;
| 178 || PDM&lt;br /&gt;
|-&lt;br /&gt;
| 179 || OLSC&lt;br /&gt;
|-&lt;br /&gt;
| 180 || SREPO&lt;br /&gt;
|-&lt;br /&gt;
| 181 || Dauth&lt;br /&gt;
|-&lt;br /&gt;
| 191 || RTC&lt;br /&gt;
|-&lt;br /&gt;
| 192 || Regulator&lt;br /&gt;
|-&lt;br /&gt;
| 197 || Clkrst&lt;br /&gt;
|-&lt;br /&gt;
| 202 || HID&lt;br /&gt;
|-&lt;br /&gt;
| 203 || LDN&lt;br /&gt;
|-&lt;br /&gt;
| 205 || Irsensor&lt;br /&gt;
|-&lt;br /&gt;
| 206 || Capture&lt;br /&gt;
|-&lt;br /&gt;
| 208 || Manu&lt;br /&gt;
|-&lt;br /&gt;
| 209 || ATK&lt;br /&gt;
|-&lt;br /&gt;
| 210 || Web&lt;br /&gt;
|-&lt;br /&gt;
| 211 ||&lt;br /&gt;
|-&lt;br /&gt;
| 212 || GRC&lt;br /&gt;
|-&lt;br /&gt;
| 216 || Migration&lt;br /&gt;
|-&lt;br /&gt;
| 217 || Migration Idc Server&lt;br /&gt;
|-&lt;br /&gt;
| 345 || libnx&lt;br /&gt;
|-&lt;br /&gt;
| 346 || [[Homebrew ABI]]&lt;br /&gt;
|-&lt;br /&gt;
| 347 || Homebrew Loader&lt;br /&gt;
|-&lt;br /&gt;
| 348 || libnx Nvidia errors&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Error codes =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E01 || 1 || 7 || Session count exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C01 || 1 || 14 || Invalid kernel capability descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x4201 || 1 || 33 || Not Implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x7601 || 1 || 59 || Thread terminated/termination requested&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C01 || 1 || 70 || No more debug events&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA01 || 1 || 101 || Invalid size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC01 || 1 || 102 || Invalid address&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE01 || 1 || 103 || Resource exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD001 || 1 || 104 || Memory exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD201 || 1 || 105 || Handle-table exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 1 || 106 || Invalid memory state / invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD801 || 1 || 108 || Invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC01 || 1 || 110 || Invalid memory range&lt;br /&gt;
|-&lt;br /&gt;
| 0xE001 || 1 || 112 || Invalid thread priority.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE201 || 1 || 113 || Invalid processor id.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE401 || 1 || 114 || Invalid handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE601 || 1 || 115 || Invalid pointer/Syscall copy from user failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE801 || 1 || 116 || Invalid combination&lt;br /&gt;
|-&lt;br /&gt;
| 0xEA01 || 1 || 117 || Time out. Also when you give 0 handles to svcWaitSynchronizationN.&lt;br /&gt;
|-&lt;br /&gt;
| 0xEC01 || 1 || 118 || Operation canceled&lt;br /&gt;
|-&lt;br /&gt;
| 0xEE01 || 1 || 119 || Out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0xF001 || 1 || 120 || Invalid enum&lt;br /&gt;
|-&lt;br /&gt;
| 0xF201 || 1 || 121 || No such entry&lt;br /&gt;
|-&lt;br /&gt;
| 0xF401 || 1 || 122 || Irq/DeviceAddressSpace/{...} already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xF601 || 1 || 123 || Port remote dead&lt;br /&gt;
|-&lt;br /&gt;
| 0xF801 || 1 || 124 || [Usermode] Unhandled interrupt/exception&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA01 || 1 || 125 || Process already started/Wrong memory permission?&lt;br /&gt;
|-&lt;br /&gt;
| 0xFC01 || 1 || 126 || Reserved value&lt;br /&gt;
|-&lt;br /&gt;
| 0xFE01 || 1 || 127 || Invalid hardware breakpoint&lt;br /&gt;
|-&lt;br /&gt;
| 0x10001 || 1 || 128 || [Usermode] Fatal exception&lt;br /&gt;
|-&lt;br /&gt;
| 0x10201 || 1 || 129 || Last thread didn&#039;t belong to your process&lt;br /&gt;
|-&lt;br /&gt;
| 0x10601 || 1 || 131 || Port closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x10801 || 1 || 132 || Resource limit exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x20801 || 1 || 260 || Command buffer too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x40A01 || 1 || 517 || Invalid process ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40C01 || 1 || 518 || Invalid thread ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40E01 || 1 || 519 || Invalid thread ID (used in svcGetDebugThreadParam).&lt;br /&gt;
|-&lt;br /&gt;
| 0x41001 || 1 || 520 || Process not being debugged&lt;br /&gt;
|-&lt;br /&gt;
| 0x202 || 2 || 1 || Path does not exist.&lt;br /&gt;
|-&lt;br /&gt;
| 0x402 || 2 || 2 || Path already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE02 || 2 || 7 || Resource already in use (file already opened, savedata filesystem already mounted).&lt;br /&gt;
|-&lt;br /&gt;
| 0x4602 || 2 || 35 || Not enough free space for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4802 || 2 || 36 || Not enough free space for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A02 || 2 || 37 || Not enough free space for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C02 || 2 || 38 || Not enough free space for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4E02 || 2 || 39 || Not enough free space on SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6402 || 2 || 50 || NCA is older than version 3, or NCA SDK version is older than 0.11.0.0&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 2 || 60 || Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 2 || 1001 || Process does not have RomFs &lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 2 || 1002 || Title-id not found / savedata not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA202 || 2 || 2001 || SD card not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13B002 || 2 || 2520 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13DA02 || 2 || 2541 || Version check failed when mounting gamecard sysupdate partition?&lt;br /&gt;
|-&lt;br /&gt;
| 0x171402 || 2 || 2954 || Invalid gamecard handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 2 || 3001 || Unimplemented behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x177602 || 2 || 3003 || File/Directory already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x190202 || 2 || 3201 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190602 || 2 || 3203 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190802 || 2 || 3204 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190A02 || 2 || 3205 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190C02 || 2 || 3206 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x191002 || 2 || 3208 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x195802 || 2 || 3244 || Allocation failure related to SD cards&lt;br /&gt;
|-&lt;br /&gt;
| 0x196002 || 2 || 3248 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x196202 || 2 || 3249 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A3E02 || 2 || 3359 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4002 || 2 || 3360 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4A02 || 2 || 3365 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x21BC02 || 2 || 4318 || Invalid save data filesystem magic (valid magic is SAVE in ASCII)&lt;br /&gt;
|-&lt;br /&gt;
| 0x234202 || 2 || 4513 || Error reading ACID section in NPDM&lt;br /&gt;
|-&lt;br /&gt;
| 0x234402 || 2 || 4514 || Invalid NPDM ACID section size&lt;br /&gt;
|-&lt;br /&gt;
| 0x234602 || 2 || 4515 || Last byte of the ACID modulus is zero&lt;br /&gt;
|-&lt;br /&gt;
| 0x234802 || 2 || 4516 || Invalid ACID fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234A02 || 2 || 4517 || Invalid NCA magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x234C02 || 2 || 4518 || Invalid NCA header fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234E02 || 2 || 4519 || Invalid NCA header ACID signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x235002 || 2 || 4520 || Invalid NCA header section hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x235202 || 2 || 4521 || Invalid NCA Key index&lt;br /&gt;
|-&lt;br /&gt;
| 0x235602 || 2 || 4523 || Invalid encryption type&lt;br /&gt;
|-&lt;br /&gt;
| 0x235802 || 2 || 4524 || Redirection BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235A02 || 2 || 4525 || Encryption BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235C02 || 2 || 4526 || Redirection BKTR table end offset is past the Encryption BKTR table start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x235E02 || 2 || 4527 || NCA-path used with the wrong titleID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x236002 || 2 || 4528 || NCA header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236202 || 2 || 4529 || NCA FS header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236802 || 2 || 4532 || PartitionFS hash block size is not a power of 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236A02 || 2 || 4533 || PartitionFS hash &amp;quot;always_2&amp;quot; field is not 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236C02 || 2 || 4534 || PartitionFS hash table is too small for main data&lt;br /&gt;
|-&lt;br /&gt;
| 0x236E02 || 2 || 4535 || Invalid PartitionFS block hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244402 || 2 || 4642 || Invalid Partition file hashed region bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x244602 || 2 || 4643 || Invalid Partition FS hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244802 || 2 || 4644 || Invalid PFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244A02 || 2 || 4645 || Invalid HFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244C02 || 2 || 4646 || Invalid name offset for Partition FS file entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x244E02 || 2 || 4647 || Calculated Partition FS header size changed between 2 consecutive reads&lt;br /&gt;
|-&lt;br /&gt;
| 0x249802 || 2 || 4684 || Invalid FAT file number.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249C02 || 2 || 4686 || Invalid FAT format for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249E02 || 2 || 4687 || Invalid FAT format for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A002 || 2 || 4688 || Invalid FAT format for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A202 || 2 || 4689 || Invalid FAT format for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x250E02 || 2 || 4743 || [[NAX0|Corrupted]] NAX0 header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x251002 || 2 || 4744 || Invalid [[NAX0]] magicnum.&lt;br /&gt;
|-&lt;br /&gt;
| 0x280202 || 2 || 5121 || Invalid FAT size&lt;br /&gt;
|-&lt;br /&gt;
| 0x280402 || 2 || 5122 || Invalid FAT BPB (BIOS Parameter Block)&lt;br /&gt;
|-&lt;br /&gt;
| 0x280602 || 2 || 5123 || Invalid FAT parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x280802 || 2 || 5124 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280A02 || 2 || 5125 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280C02 || 2 || 5126 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280E02 || 2 || 5127 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x296A02 || 2 || 5301 || Mountpoint not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 || 2 || 6001 || Invalid input&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE602 || 2 || 6003 || Path too long&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE802 || 2 || 6004 || Invalid character.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEA02 || 2 || 6005 || Invalid directory path.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEC02 || 2 || 6006 || Unable to retrieve directory from path&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 2 || 6061 || Offset outside storage&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 || 2 || 6300 || Operation not supported&lt;br /&gt;
|-&lt;br /&gt;
| 0x313C02 || 2 || 6302 || Attempted to resize a nn::fs::SubStorage or BufferedStorage that is marked as non-resizable&lt;br /&gt;
|-&lt;br /&gt;
| 0x313E02 || 2 || 6303 || Attempted to resize a nn::fs::SubStorage or BufferedStorage when the SubStorage ends before the base storage&lt;br /&gt;
|-&lt;br /&gt;
| 0x314002 || 2 || 6304 || Attempted to call nn::fs::MemoryStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x314202 || 2 || 6305 || Invalid Operation ID in nn::fs::MemoryStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x314402 || 2 || 6306 || Invalid Operation ID in nn::fs::FileStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x314C02 || 2 || 6310 || Attempted to call nn::fssystem::AesCtrCounterExtendedStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x314E02 || 2 || 6311 || Attempted to call nn::fssystem::AesCtrCounterExtendedStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315002 || 2 || 6312 || Invalid Operation ID in nn::fssystem::AesCtrCounterExtendedStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x315802 || 2 || 6316 || Attempted to call nn::fssystem::save::HierarchicalIntegrityVerificationStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315A02 || 2 || 6317 || Attempted to call nn::fssystem::save::HierarchicalIntegrityVerificationStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x315C02 || 2 || 6318 || Attempted to call nn::fssystem::save::IntegrityVerificationStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315E02 || 2 || 6319 || Attempted to invalidate the cache of a RomFs IVFC storage in nn::fssystem::save::IntegrityVerificationStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x316002 || 2 || 6320 || Invalid Operation ID in nn::fssystem::save::IntegrityVerificationStorage::OperateRange &lt;br /&gt;
|-&lt;br /&gt;
| 0x316202 || 2 || 6321 || Attempted to call nn::fssystem::save::BlockCacheBufferedStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x316402 || 2 || 6322 || Attempted to invalidate the cache of something other than a savedata IVFC storage in nn::fssystem::save::BlockCacheBufferedStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x316602 || 2 || 6323 || Invalid Operation ID in nn::fssystem::save::BlockCacheBufferedStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x316802 || 2 || 6324 || Attempted to call nn::fssystem::IndirectStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x316A02 || 2 || 6325 || Attempted to call nn::fssystem::IndirectStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x316C02 || 2 || 6326 || Invalid Operation ID in nn::fssystem::IndirectStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x317202 || 2 || 6329 || Attempted to call nn::fssystem::HierarchicalSha256Storage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317402 || 2 || 6330 || Attempted to call nn::fssystem::ReadOnlyBlockCacheStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x317602 || 2 || 6331 || Attempted to call nn::fssystem::ReadOnlyBlockCacheStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317802 || 2 || 6332 || Attempted to call nn::fssystem::IntegrityRomFsStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317A02 || 2 || 6333 || Attempted to call nn::fssystem::save::DuplexStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317C02 || 2 || 6334 || Invalid Operation ID in nn::fssystem::save::DuplexStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x317E02 || 2 || 6335 || Attempted to call nn::fssystem::save::HierarchicalDuplexStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318002 || 2 || 6336 || Attempted to call nn::fssystem::save::RemapStorage::GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318202 || 2 || 6337 || Attempted to call nn::fssystem::save::RemapStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318402 || 2 || 6338 || Invalid Operation ID in nn::fssystem::save::RemapStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x318602 || 2 || 6339 || Attempted to call nn::fssystem::save::IntegritySaveDataStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318802 || 2 || 6340 || Invalid Operation ID in nn::fssystem::save::IntegritySaveDataStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x318A02 || 2 || 6341 || Attempted to call nn::fssystem::save::JournalIntegritySaveDataStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318C02 || 2 || 6342 || Invalid Operation ID in nn::fssystem::save::JournalIntegritySaveDataStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x318E02 || 2 || 6343 || Attempted to call nn::fssystem::save::JournalStorage::GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x319002 || 2 || 6344 || Attempted to call nn::fssystem::save::JournalStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x319202 || 2 || 6345 || Invalid Operation ID in nn::fssystem::save::JournalStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x319602 || 2 || 6347 || Attempted to call nn::fssystem::dbm::AllocationTableStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x31A602 || 2 || 6355 || Invalid Operation ID in nn::fat::FatFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31A802 || 2 || 6356 || Invalid Operation ID in nn::fssystem::StorageFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31AE02 || 2 || 6359 || Invalid Query ID in nn::fssystem::ConcatenationFileSystem::DoQueryEntry&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B002 || 2 || 6360 || Invalid Operation ID in nn::fssystem::ConcatenationFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B402 || 2 || 6362 || Invalid Operation ID in nn::fs::detail::FileServiceObjectAdapter::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B602 || 2 || 6363 || Invalid Operation ID in nn::fssystem::AesXtsFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B802 || 2 || 6364 || Attempted to modify a nn::fs::RomFsFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0x31BA02 || 2 || 6365 || Attempted to call nn::fs::RomFsFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31BC02 || 2 || 6366 || Attempted to query the space in a nn::fs::RomFsFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0x31BE02 || 2 || 6367 || Attempted to modify a nn::fssystem::RomFsFile&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C002 || 2 || 6368 || Invalid Operation ID in nn::fssystem::RomFsFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C202 || 2 || 6369 || Attempted to modify a nn::fs::ReadOnlyFileSystemTemplate&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C402 || 2 || 6370 || Attempted to call nn::fs::ReadOnlyFileSystemTemplate::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C602 || 2 || 6371 || Attempted to query the space in a nn::fs::ReadOnlyFileSystemTemplate&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C802 || 2 || 6372 || Attempted to modify a nn::fs::ReadOnlyFileSystemFile&lt;br /&gt;
|-&lt;br /&gt;
| 0x31CA02 || 2 || 6373 || Invalid Operation ID in nn::fs::ReadOnlyFileSystemFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31CC02 || 2 || 6374 || Attempted to modify a nn::fssystem::PartitionFileSystemCore&lt;br /&gt;
|-&lt;br /&gt;
| 0x31CE02 || 2 || 6375 || Attempted to call nn::fssystem::PartitionFileSystemCore::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31D002 || 2 || 6376 || Attempted to call nn::fssystem::PartitionFileSystemCore::PartitionFile::DoSetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x31D202 || 2 || 6377 || Invalid Operation ID in nn::fssystem::PartitionFileSystemCore::PartitionFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31DC02 || 2 || 6382 || Attempted to call nn::fssystem::ApplicationTemporaryFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31DE02 || 2 || 6383 || Attempted to call nn::fssystem::SaveDataFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31E002 || 2 || 6384 || Attempted to call nn::fssystem::DirectorySaveDataFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 || 2 || 6400 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x326602 || 2 || 6451 || Missing titlekey(?) required to mount content&lt;br /&gt;
|-&lt;br /&gt;
| 0x326E02 || 2 || 6455 || File not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327002 || 2 || 6456 || Directory not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327202 || 2 || 6457 || Writable file not closed when committing&lt;br /&gt;
|-&lt;br /&gt;
| 0x327402 || 2 || 6458 || FS allocators already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x327602 || 2 || 6459 || FS allocators already used&lt;br /&gt;
|-&lt;br /&gt;
| 0x327A02 || 2 || 6461 || FS allocator alignment violation&lt;br /&gt;
|-&lt;br /&gt;
| 0x339402 || 2 || 6602 || File not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x339602 || 2 || 6603 || Directory not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x35F202 || 2 || 6905 || Mount name not found in table.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBC02 || 2 || 7902 || RomFs table: Entry not found in dictionary&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBE02 || 2 || 7903 || RomFs table: File not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC002 || 2 || 7904 || RomFs table: Directory not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC402 || 2 || 7906 || RomFs table: Entry already exists when trying to add a new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC602 || 2 || 7907 || RomFs table: Insufficient space to add new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC802 || 2 || 7908 || RomFs table: Unable to add new directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCA02 || 2 || 7909 || RomFs table: Unable to add new file&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCC02 || 2 || 7910 || RomFs directory has no more child directories/files when iterating&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DD402 || 2 || 7914 || RomFs table: Path is file, not directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x803 || 3 || 4 || OS busy&lt;br /&gt;
|-&lt;br /&gt;
| 0xE03 || 3 || 7 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x1003 || 3 || 8 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1203 || 3 || 9 || Out of resources&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EA03 || 3 || 501 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE03 || 3 || 503 || Invalid memory mirror&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FE03 || 3 || 1023 || TLS slot is not allocated&lt;br /&gt;
|-&lt;br /&gt;
| 0xA05 || 5 || 5 || [[Content_Manager_services|NcaID]] not found. Returned when attempting to mount titles which exist that aren&#039;t *8XX titles, the same way *8XX titles are mounted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE05 || 5 || 7 || TitleId not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1805 || 5 || 12 || Invalid StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC05 || 5 || 110 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x17C05 || 5 || 190 || Gamecard not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F405 || 5 || 250 || Sdcard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x20805 || 5 || 260 || Storage not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0x806 || 6 || 4 || Converted from error 0xD401&lt;br /&gt;
|-&lt;br /&gt;
| 0x1006 || 6 || 8 || Converted from error 0xE401&lt;br /&gt;
|-&lt;br /&gt;
| 0x408 || 8 || 2 || Program location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x608 || 8 || 3 || Invalid context for control location&lt;br /&gt;
|-&lt;br /&gt;
| 0x808 || 8 || 4 || Storage not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA08 || 8 || 5 || Access denied&lt;br /&gt;
|-&lt;br /&gt;
| 0xC08 || 8 || 6 || Offline manual HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xE08 || 8 || 7 || Title is not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1008 || 8 || 8 || Control location entry for host not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1208 || 8 || 9 || Legal info HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1408 || 8 || 10 || Program location for debug entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x209 || 9 || 1 || Args too long.&lt;br /&gt;
|-&lt;br /&gt;
| 0x409 || 9 || 2 || Maximum processes loaded.&lt;br /&gt;
|-&lt;br /&gt;
| 0x609 || 9 || 3 || NPDM too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x19009 || 9 || 200 || Invalid access control sizes in NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x809 || 9 || 4 || Invalid NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0xA09 || 9 || 5 || Invalid files.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE09 || 9 || 7 || Already registered.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1009 || 9 || 8 || Title not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1209 || 9 || 9 || Title-id in ACI0 doesn&#039;t match range in ACID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6609 || 9 || 51 || Invalid memory state/permission&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A09 || 9 || 53 || Invalid NRR&lt;br /&gt;
|-&lt;br /&gt;
| 0xA209 || 9 || 81 || Unaligned NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xA409 || 9 || 82 || Bad NRR size&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA09 || 9 || 85 || Bad NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xAE09 || 9 || 87 || Bad initialization&lt;br /&gt;
|-&lt;br /&gt;
| 0xC809 || 9 || 100 || Unknown ACI0 descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE09 || 9 || 103 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD009 || 9 || 104 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;SyscallMask&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD409 || 9 || 106 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapIoOrNormalRange&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD609 || 9 || 107 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapNormalPage&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xDE09 || 9 || 111 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;InterruptPair&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE209 || 9 || 113 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;ApplicationType&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE409 || 9 || 114 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelReleaseVersion&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE609 || 9 || 115 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;HandleTableSize&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE809 || 9 || 116 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;DebugFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x1940A || 10 || 202 || Invalid CMIF header size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A60A || 10 || 211 || Invalid CMIF input header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A80A || 10 || 212 || Invalid CMIF output header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA0A || 10 || 221 || Invalid method dispatch ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D60A || 10 || 235 || Invalid in object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D80A || 10 || 236 || Invalid out object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0A || 10 || 301 || Out of domain entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20B || 11 || 1 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC0B || 11 || 102 || Out of server session memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x11A0B || 11 || 141 || Went past maximum during marshalling.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1900B || 11 || 200 || Session doesn&#039;t support domains.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0B || 11 || 301 || Remote process is dead.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3260B || 11 || 403 || Unknown request type&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D60B || 11 || 491 || IPC Query 1 failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20F || 15 || 1 || Pid not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x60F || 15 || 3 || Process has no pending events&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0F || 15 || 5 || Application already running&lt;br /&gt;
|-&lt;br /&gt;
| 0x410 || 16 || 2 || Title-id not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xF010 || 16 || 120 || Gamecard sysupdate not required&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F610 || 16 || 251 || Unexpected StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0x215 || 21 || 1 || Out of processes&lt;br /&gt;
|-&lt;br /&gt;
| 0x415 || 21 || 2 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x615 || 21 || 3 || Max sessions&lt;br /&gt;
|-&lt;br /&gt;
| 0x815 || 21 || 4 || Service already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xA15 || 21 || 5 || Out of services&lt;br /&gt;
|-&lt;br /&gt;
| 0xC15 || 21 || 6 || Invalid name (all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0xE15 || 21 || 7 || Service not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1015 || 21 || 8 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x1215 || 21 || 9 || Service Access Control too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x416 || 22 || 2 || Address space is full&lt;br /&gt;
|-&lt;br /&gt;
| 0x616 || 22 || 3 || NRO already loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x816 || 22 || 4 || Invalid NRO header values&lt;br /&gt;
|-&lt;br /&gt;
| 0xC16 || 22 || 6 || Bad NRR magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x1016 || 22 || 8 || Reached max NRR count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1216 || 22 || 9 || Unable to verify NRO hash or NRR signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x80216 || 22 || 1025 || Address not page-aligned&lt;br /&gt;
|-&lt;br /&gt;
| 0x80416 || 22 || 1026 || Incorrect NRO size&lt;br /&gt;
|-&lt;br /&gt;
| 0x80816 || 22 || 1028 || NRO not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80A16 || 22 || 1029 || NRR not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80C16 || 22 || 1030 || Already initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E16 || 22 || 1031 || Not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x21A || 26 || 1 || SMC is not implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x41A || 26 || 2 || SMC argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A || 26 || 3 || SMC is currently in progress/secmon is busy&lt;br /&gt;
|-&lt;br /&gt;
| 0x81A || 26 || 4 || Secmon not currently performing async operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xA1A || 26 || 5 || Invalid SMC async callback key&lt;br /&gt;
|-&lt;br /&gt;
| 0xC1A || 26 || 6 || SMC is blacklisted during current boot&lt;br /&gt;
|-&lt;br /&gt;
| 0xC81A || 26 || 100 || Invalid (buffer) size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Unknown SMC error&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Decryption failure&lt;br /&gt;
|-&lt;br /&gt;
| 0xD01A || 26 || 104 || No AES keyslots available&lt;br /&gt;
|-&lt;br /&gt;
| 0xD21A || 26 || 105 || Invalid AES keyslot&lt;br /&gt;
|-&lt;br /&gt;
| 0xD41A || 26 || 106 || BootReason already set&lt;br /&gt;
|-&lt;br /&gt;
| 0xD61A || 26 || 107 || BootReason not set&lt;br /&gt;
|-&lt;br /&gt;
| 0xD81A || 26 || 108 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x19269 || 105 || 201 || Null settings name&lt;br /&gt;
|-&lt;br /&gt;
| 0x19469 || 105 || 202 || Null settings key&lt;br /&gt;
|-&lt;br /&gt;
| 0x19669 || 105 || 203 || Null settings value&lt;br /&gt;
|-&lt;br /&gt;
| 0x19A69 || 105 || 205 || Null settings value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A069 || 105 || 208 || Null setting value size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A269 || 105 || 209 || Null debug mode flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA69 || 105 || 221 || Setting group name has zero length&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BC69 || 105 || 222 || Empty settings item key&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E269 || 105 || 241 || Setting group name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E469 || 105 || 242 || Setting name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x20A69 || 105 || 261 || Setting group name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x20C69 || 105 || 262 || Setting name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x4DA69 || 105 || 621 || Null language code buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4EE69 || 105 || 631 || Null network settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4F069 || 105 || 632 || Null network settings output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x50269 || 105 || 641 || Null backlight settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51669 || 105 || 651 || Null Bluetooth device setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51869 || 105 || 652 || Null Bluetooth device setting output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51A69 || 105 || 653 || Null Bluetooth enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51C69 || 105 || 654 || Null Bluetooth AFH enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51E69 || 105 || 655 || Null Bluetooth boost enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52069 || 105 || 656 || Null BLE pairing settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52269 || 105 || 657 || Null BLE pairing settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52A69 || 105 || 661 || Null external steady clock source ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52C69 || 105 || 662 || Null user system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52E69 || 105 || 663 || Null network system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53069 || 105 || 664 || Null user system clock automatic correction enabled flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53269 || 105 || 665 || Null shutdown RTC value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53469 || 105 || 666 || Null external steady clock internal offset buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53E69 || 105 || 671 || Null account settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55269 || 105 || 681 || Null audio volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55669 || 105 || 683 || Null ForceMuteOnHeadphoneRemoved buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55869 || 105 || 684 || Null headphone volume warning count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55E69 || 105 || 687 || Invalid audio output mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x56069 || 105 || 688 || Null headphone volume update flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x56669 || 105 || 691 || Null console information upload flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57A69 || 105 || 701 || Null automatic application download flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57C69 || 105 || 702 || Null notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57E69 || 105 || 703 || Null account notification settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58069 || 105 || 704 || Null account notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58E69 || 105 || 711 || Null vibration master volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59069 || 105 || 712 || Null NX controller settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59269 || 105 || 713 || Null NX controller settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59469 || 105 || 714 || Null USB full key enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A269 || 105 || 721 || Null TV settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A469 || 105 || 722 || Null EDID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5B669 || 105 || 731 || Null data deletion settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CA69 || 105 || 741 || Null initial system applet program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CC69 || 105 || 742 || Null overlay disp program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CE69 || 105 || 743 || Null IsInRepairProcess buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5D069 || 105 || 744 || Null RequiresRunRepairTimeReviser buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5DE69 || 105 || 751 || Null device timezone location name buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5F269 || 105 || 761 || Null primary album storage buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60669 || 105 || 771 || Null USB 3.0 enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60869 || 105 || 772 || Null USB Type-C power source circuit version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A69 || 105 || 781 || Null battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x62E69 || 105 || 791 || Null serial number buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64269 || 105 || 801 || Null lock screen flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64669 || 105 || 803 || Null color set ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64869 || 105 || 804 || Null quest flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64A69 || 105 || 805 || Null wireless certification file size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64C69 || 105 || 806 || Null wireless certification file buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64E69 || 105 || 807 || Null initial launch settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65069 || 105 || 808 || Null device nickname buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65269 || 105 || 809 || Null battery percentage flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65469 || 105 || 810 || Null applet launch flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7E869 || 105 || 1012 || Null wireless LAN enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FA69 || 105 || 1021 || Null product model buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E69 || 105 || 1031 || Null NFC enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82269 || 105 || 1041 || Null ECI device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82469 || 105 || 1042 || Null E-Ticket device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x83669 || 105 || 1051 || Null sleep settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84A69 || 105 || 1061 || Null EULA version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84C69 || 105 || 1062 || Null EULA version entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x85E69 || 105 || 1071 || Null LDN channel buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87269 || 105 || 1081 || Null SSL key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87469 || 105 || 1082 || Null SSL certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x88669 || 105 || 1091 || Null telemetry flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89A69 || 105 || 1101 || Null Gamecard key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89C69 || 105 || 1102 || Null Gamecard certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8AE69 || 105 || 1111 || Null PTM battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B069 || 105 || 1112 || Null PTM fuel gauge parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C269 || 105 || 1121 || Null ECI device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C469 || 105 || 1122 || Null E-Ticket device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D669 || 105 || 1131 || Null speaker parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EA69 || 105 || 1141 || Null firmware version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EC69 || 105 || 1142 || Null firmware version digest buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EE69 || 105 || 1143 || Null rebootless system update version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8FE69 || 105 || 1151 || Null Mii author ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x91269 || 105 || 1161 || Null fatal flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x92669 || 105 || 1171 || Null auto update enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x93A69 || 105 || 1181 || Null external RTC reset flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x94E69 || 105 || 1191 || Null push notification activity mode buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x96269 || 105 || 1201 || Null service discovery control setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x97669 || 105 || 1211 || Null error report share permission buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x98A69 || 105 || 1221 || Null LCD vendor ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x99E69 || 105 || 1231 || Null console SixAxis sensor acceleration bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A069 || 105 || 1232 || Null console SixAxis sensor angular velocity bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A269 || 105 || 1233 || Null console SixAxis sensor acceleration gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A469 || 105 || 1234 || Null console SixAxis sensor angular velocity gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A669 || 105 || 1235 || Null console SixAxis sensor angular velocity time bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A869 || 105 || 1236 || Null console SixAxis sensor angular acceleration buffer &lt;br /&gt;
|-&lt;br /&gt;
| 0x9B269 || 105 || 1241 || Null keyboard layout buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9BA69 || 105 || 1245 || Invalid keyboard layout&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C669 || 105 || 1251 || Null web inspector flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C869 || 105 || 1252 || Null allowed SSL hosts buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CA69 || 105 || 1253 || Null allowed SSL hosts entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CC69 || 105 || 1254 || Null host FS mount point buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9EE69 || 105 || 1271 || Null Amiibo key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F069 || 105 || 1272 || Null Amiibo ECQV certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F269 || 105 || 1273 || Null Amiibo ECDSA certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F469 || 105 || 1274 || Null Amiibo ECQV BLS key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F669 || 105 || 1275 || Null Amiibo ECQV BLS certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F869 || 105 || 1276 || Null Amiibo ECQV BLS root certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x272 || 114 || 1 || Generic error&lt;br /&gt;
|-&lt;br /&gt;
| 0xC72 || 114 || 6 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || 116 || 0 || Time service not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC74 || 116 || 102 || Time not set&lt;br /&gt;
|-&lt;br /&gt;
| 0x19074 || 116 || 200 || Invalid time comparison&lt;br /&gt;
|-&lt;br /&gt;
| 0x19274 || 116 || 201 || Signed overflow/underflow&lt;br /&gt;
|-&lt;br /&gt;
| 0x64274 || 116 || 801 || Memory allocation failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x70A74 || 116 || 901 || Null pointer&lt;br /&gt;
|-&lt;br /&gt;
| 0x70C74 || 116 || 902 || Value out of valid range&lt;br /&gt;
|-&lt;br /&gt;
| 0x70E74 || 116 || 903 || TimeZoneRule conversion failed&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BA74 || 116 || 989 || TimeZone location name not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BC74 || 116 || 990 || Unimplemented functionality&lt;br /&gt;
|-&lt;br /&gt;
| 0x27A || 122 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x47A || 122 || 2 || Object not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x67A || 122 || 3 || Object locked/in used&lt;br /&gt;
|-&lt;br /&gt;
| 0x87A || 122 || 4 || Target already mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0xA7A || 122 || 5 || Target not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0xC7A || 122 || 6 || Object already opened&lt;br /&gt;
|-&lt;br /&gt;
| 0xE7A || 122 || 7 || Object not opened&lt;br /&gt;
|-&lt;br /&gt;
| 0xA07A || 122 || 80 || Passphrase not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA27A || 122 || 81 || Data verification failed&lt;br /&gt;
|-&lt;br /&gt;
| 0xB47A || 122 || 90 || Invalid API call&lt;br /&gt;
|-&lt;br /&gt;
| 0xC47A || 122 || 98 || Invalid operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x287C || 124 || 20 || Argument is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C7C || 124 || 22 || Argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C7C || 124 || 30 || Bad input buffer size&lt;br /&gt;
|-&lt;br /&gt;
| 0x407C || 124 || 32 || Invalid input buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x27E || 126 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x87E || 126 || 4 || Entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE7E || 126 || 67 || Invalid database signature value (should be &amp;quot;NFDB&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0xD27E || 126 || 69 || Invalid database entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1987E || 126 || 204 || Development/debug-only behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x480 || 128 || 2 || IStorage not available.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4680 || 128 || 35 || Error while launching applet.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A80 || 128 || 37 || Title-ID not found. Caused by code 0x410 when applet launch fails&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E880 || 128 || 500 || Invalid IStorage size (negative?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EC80 || 128 || 502 || IStorage has already been opened by another accessor&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE80 || 128 || 503 || IStorage Read/Write out-of-bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x3FE80 || 128 || 511 || IStorage opened as wrong type (data opened as transfermem, transfermem opened as data)&lt;br /&gt;
|-&lt;br /&gt;
| 0x40080 || 128 || 512 || Unbalanced fatal section leave (returned when executing LeaveFatalSection without a preceding EnterFatalSection call)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B080 || 128 || 600 || Failed to allocate memory for IStorage&lt;br /&gt;
|-&lt;br /&gt;
| 0x59080 || 128 || 712 || Thread stack pool exhausted (out of memory)&lt;br /&gt;
|-&lt;br /&gt;
| 0x7A880 || 128 || 980 || &amp;lt;code&amp;gt;am.debug!dev_function&amp;lt;/code&amp;gt; setting needs to be set&lt;br /&gt;
|-&lt;br /&gt;
| 0xA83 || 131 || 5 || Unrecognized applet ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x485 || 133 || 2 || Invalid DVFS table ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x885 || 133 || 4 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x3CF089 || 137 || 7800 || Unknown/invalid libcurl error.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E8289-0x3F4089 || 137 || 8001-8096 || libcurl error 1-96. Some of the libcurl errors in the error-table map to the above unknown-libcurl-error however.&lt;br /&gt;
|-&lt;br /&gt;
| 0x68A || 138 || 3 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x668C || 140 || 51 || USB data-transfer in progress&lt;br /&gt;
|-&lt;br /&gt;
| 0xD48C || 140 || 106 || Invalid descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x1928C || 140 || 201 || USB device not bound / interface already enabled&lt;br /&gt;
|-&lt;br /&gt;
| 0x290 || 144 || 1 || Exited Abnormally ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Abormal)&lt;br /&gt;
|-&lt;br /&gt;
| 0x690 || 144 || 3 || Canceled ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Canceled)&lt;br /&gt;
|-&lt;br /&gt;
| 0x890 || 144 || 4 || Rejected&lt;br /&gt;
|-&lt;br /&gt;
| 0xA90 || 144 || 5 || Exited Unexpectedly ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Unexpected)&lt;br /&gt;
|-&lt;br /&gt;
| 0x299 || 153 || 1 || Invalid audio device&lt;br /&gt;
|-&lt;br /&gt;
| 0x499 || 153 || 2 || Operation couldn&#039;t complete successfully&lt;br /&gt;
|-&lt;br /&gt;
| 0x699 || 153 || 3 || Invalid sample rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x899 || 153 || 4 || Buffer size too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x1099 || 153 || 8 || Too many buffers are still unreleased&lt;br /&gt;
|-&lt;br /&gt;
| 0x1499 || 153 || 10 || Invalid channel count&lt;br /&gt;
|-&lt;br /&gt;
| 0x40299 || 153 || 513 || Invalid/Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0099 || 153 || 1536 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0899 || 153 || 1540 || Audio output was already started&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C9D || 157 || 30 || Address is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E9D || 157 || 31 || PID is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x549D || 157 || 42 || Already bound&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC9D || 157 || 102 || Invalid PID&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA3 || 163 ||  5 || System is booting up repair process without VOL+ held down.&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA3 || 163 || 6 || System is booting up repair process that requires RepairTimeReviser but does not have special cartridge inserted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8B2 || 178 || 100 || Invalid user ID&lt;br /&gt;
|-&lt;br /&gt;
| 0xCAB2 || 178 || 101 || User does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 0x12CB2 || 178 || 150 || Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| 0x190B2 || 178 || 200 || File storage failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x58ACA || 202 || 709 || Npad ID is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF0CD || 205 || 120 || IR image data not available/ready.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A8CD || 205 || 212 || IR camera handle pointer is null.&lt;br /&gt;
|-&lt;br /&gt;
| 0x198CD || 205 || 204 || IR camera invalid handle value.&lt;br /&gt;
|-&lt;br /&gt;
| 0x35B || 347 || 1 || Failed to init SM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x55B || 347 || 2 || Failed to init FS.&lt;br /&gt;
|-&lt;br /&gt;
| 0x75B || 347 || 3 || Failed to open NRO file. May also happen when SD card isn&#039;t inserted / SD mounting failed earlier.&lt;br /&gt;
|-&lt;br /&gt;
| 0x95B || 347 || 4 || Failed to read NRO header.&lt;br /&gt;
|-&lt;br /&gt;
| 0xB5B || 347 || 5 || Invalid NRO magic.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD5B || 347 || 6 || Invalid NRO segments.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF5B || 347 || 7 || Failed to read NRO.&lt;br /&gt;
|-&lt;br /&gt;
| 0x135B || 347 || 9 || Failed to allocate heap.&lt;br /&gt;
|-&lt;br /&gt;
| 0x255B || 347 || 18 || Failed to map code-binary memory.&lt;br /&gt;
|-&lt;br /&gt;
| 0x275B || 347 || 19 || Failed to map code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x295B || 347 || 20 || Failed to map code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B5B || 347 || 21 || Failed to map code memory (.data+.bss).&lt;br /&gt;
|-&lt;br /&gt;
| 0x315B || 347 || 24 || Failed to unmap code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x335B || 347 || 25 || Failed to unmap code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x355B || 347 || 26 || Failed to unmap code memory (.data+.bss).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FS Error Codes ==&lt;br /&gt;
The following are the error codes recognized by nn::fs::detail::LogErrorMessage found in some [[Factory Setup|factory]] titles:&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Description || Message&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 60 || Error: Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 106 || Error: Passed buffer is not usable for fs library.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 1001 || Error: Specified partition is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 1002 || Error: Specified target is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA002 - 0x138602 || 2000 - 2499 || Error: Failed to access SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x136802 - 0x176E02 || 2500 - 2999 || Error: Failed to access game card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 3001 || Error: Specified operation is not implemented.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177A02 || 3005 || Error: Specified value is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B5802 - 0x1F3E02 || 3500 - 3999 || Error: Failed to access MMC.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4202 - 0x219602 || 4001 - 4299 || Error: ROM is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x219A02 - 0x232602 || 4301 - 4499 || Error: Save data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x232A02 - 0x23EE02 || 4501 - 4599 || Error: NCA is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x23F202 - 0x243E02 || 4601 - 4639 || Error: Integrity verification failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x244202 - 0x246602 || 4641 - 4659 || Error: Partition FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x246A02 - 0x248E02 || 4661 - 4679 || Error: Built-in-storage is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249202 - 0x24B602 || 4681 - 4699 || Error: FAT FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24BA02 - 0x24DE02 || 4701 - 4719 || Error: HOST FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4002 - 0x270E02 || 4000, 4300, 4500, 4600, 4640, 4660, 4680, 4700, 4720-4999 || Error: Data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x271002 - 0x2EDE02 || 5000-5999 || Error: Unexpected failure occurred.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE402 - 0x2F1A02 || 6002-6029 || Error: Invalid path was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 6061 || Error: Invalid offset was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5C02 || 6062 || Error: Invalid size was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5E02 || 6063 || Error: Null pointer argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE002 || 6000 || Error: Precondition violation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 - 0x306E02 || 6001-6199 || Error: Invalid argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x307202 || 6201 || Error: OpenMode_AllowAppend is required for implicit extension of file size by WriteFile().&lt;br /&gt;
|-&lt;br /&gt;
| 0x307002 - 0x313602 || 6200, 6202 - 6299 || Error: Invalid operation for the open mode.&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 - 0x31FE02 || 6300-6399 || Error: Unsupported operation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 - 0x32C602 || 6400-6499 || Error: Permission denied.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346402 || 6706 || Error: Enough journal space is not left.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346A02 || 6709 || Error: The open count of files and directories reached the limitation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Fatal Errors =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Description&lt;br /&gt;
|-&lt;br /&gt;
| 2162-0002&lt;br /&gt;
| Can be triggered by running [[SVC|svcBreak]]. The svcBreak params have no effect on the value of the thrown error-code.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0000&lt;br /&gt;
| Userland ARM undefined instruction exception&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0001&lt;br /&gt;
| Userland ARM prefetch-abort due to PC set to non-executable region&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0002&lt;br /&gt;
| Userland ARM data abort. Also caused by abnormal process termination via [[SVC|svcExitProcess]]. Note: directly jumping to nnMain()-retaddr from non-main-thread has the same result.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0003&lt;br /&gt;
| Userland PC address not aligned to 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0008&lt;br /&gt;
| Can occur when attempting to call an svc outside the whitelist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Support Errors =&lt;br /&gt;
This section is for Support Errors displayed by the error-applet, separate from the normal Result errors.&lt;br /&gt;
&lt;br /&gt;
== Support Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [[Internet_Browser|General web-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 809 || [[Internet_Browser|WifiWebAuthApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [[Internet_Browser|Whitelisted-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 811 || [[Internet_Browser|ShopN]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
8XX is for/includes system applets.&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| {web-applets listed above}&lt;br /&gt;
| 2750&lt;br /&gt;
| MP4 parsing failed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Normal error-codes displayed by the system also use the same format as fatal-errors.&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=7058</id>
		<title>Error codes</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=7058"/>
		<updated>2019-06-26T03:57:19Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* Error codes */ Function-specific codes for unsupported operations&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Structure =&lt;br /&gt;
These have been redesigned from the 3DS so that they fit within a Aarch64 MOV instruction immediate most of the time (without requiring the additional MOVK).&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Bits || Field&lt;br /&gt;
|-&lt;br /&gt;
| 8-0 || Module&lt;br /&gt;
|-&lt;br /&gt;
| 21-9 || Description&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When a fatal-error is received the error code is outputted using the following formatter:&lt;br /&gt;
  %04d-%04d&lt;br /&gt;
&lt;br /&gt;
.. where the first code is &amp;lt;code&amp;gt;2000 + Module&amp;lt;/code&amp;gt;, and the other being &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;. Bits &amp;gt;=22 from the error-code are unused when displaying fatal-errors, since the Description ends with bit21.&lt;br /&gt;
&lt;br /&gt;
= Modules =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Kernel&lt;br /&gt;
|-&lt;br /&gt;
| 2 || FS&lt;br /&gt;
|-&lt;br /&gt;
| 3 || OS (Memory, Thread, Mutex, NVIDIA)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || HTCS&lt;br /&gt;
|-&lt;br /&gt;
| 5 || NCM&lt;br /&gt;
|-&lt;br /&gt;
| 6 || DD&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Debug Monitor&lt;br /&gt;
|-&lt;br /&gt;
| 8 || LR&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Loader&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CMIF (IPC command interface)&lt;br /&gt;
|-&lt;br /&gt;
| 11 || HIPC (IPC)&lt;br /&gt;
|-&lt;br /&gt;
| 15 || PM&lt;br /&gt;
|-&lt;br /&gt;
| 16 || NS&lt;br /&gt;
|-&lt;br /&gt;
| 17 || Sockets&lt;br /&gt;
|-&lt;br /&gt;
| 18 || HTC&lt;br /&gt;
|-&lt;br /&gt;
| 20 || NCM Content&lt;br /&gt;
|-&lt;br /&gt;
| 21 || SM&lt;br /&gt;
|-&lt;br /&gt;
| 22 || RO userland&lt;br /&gt;
|-&lt;br /&gt;
| 24 || SDMMC&lt;br /&gt;
|-&lt;br /&gt;
| 25 || OVLN&lt;br /&gt;
|-&lt;br /&gt;
| 26 || SPL&lt;br /&gt;
|-&lt;br /&gt;
| 30 || Bus&lt;br /&gt;
|-&lt;br /&gt;
| 100 || ETHC&lt;br /&gt;
|-&lt;br /&gt;
| 101 || I2C&lt;br /&gt;
|-&lt;br /&gt;
| 102 || GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 103 || UART&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Settings&lt;br /&gt;
|-&lt;br /&gt;
| 107 || WLAN&lt;br /&gt;
|-&lt;br /&gt;
| 108 || XCD&lt;br /&gt;
|-&lt;br /&gt;
| 110 || NIFM&lt;br /&gt;
|-&lt;br /&gt;
| 111 || Hwopus&lt;br /&gt;
|-&lt;br /&gt;
| 113 || Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
| 114 || VI&lt;br /&gt;
|-&lt;br /&gt;
| 115 || NFP&lt;br /&gt;
|-&lt;br /&gt;
| 116 || Time&lt;br /&gt;
|-&lt;br /&gt;
| 117 || FGM&lt;br /&gt;
|-&lt;br /&gt;
| 118 || OE&lt;br /&gt;
|-&lt;br /&gt;
| 120 || PCIe&lt;br /&gt;
|-&lt;br /&gt;
| 121 || Friends&lt;br /&gt;
|-&lt;br /&gt;
| 122 || BCAT&lt;br /&gt;
|-&lt;br /&gt;
| 123 || SSL&lt;br /&gt;
|-&lt;br /&gt;
| 124 || Account&lt;br /&gt;
|-&lt;br /&gt;
| 125 || News&lt;br /&gt;
|-&lt;br /&gt;
| 126 || Mii&lt;br /&gt;
|-&lt;br /&gt;
| 127 || NFC&lt;br /&gt;
|-&lt;br /&gt;
| 128 || AM&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Play Report&lt;br /&gt;
|-&lt;br /&gt;
| 130 || AHID&lt;br /&gt;
|-&lt;br /&gt;
| 132 || Home Menu (Qlaunch)&lt;br /&gt;
|-&lt;br /&gt;
| 133 || PCV&lt;br /&gt;
|-&lt;br /&gt;
| 134 || OMM&lt;br /&gt;
|-&lt;br /&gt;
| 135 || BPC&lt;br /&gt;
|-&lt;br /&gt;
| 136 || PSM&lt;br /&gt;
|-&lt;br /&gt;
| 137 || NIM&lt;br /&gt;
|-&lt;br /&gt;
| 138 || PSC&lt;br /&gt;
|-&lt;br /&gt;
| 139 || TC&lt;br /&gt;
|-&lt;br /&gt;
| 140 || USB&lt;br /&gt;
|-&lt;br /&gt;
| 141 || NSD&lt;br /&gt;
|-&lt;br /&gt;
| 142 || PCTL&lt;br /&gt;
|-&lt;br /&gt;
| 143 || BTM&lt;br /&gt;
|-&lt;br /&gt;
| 144 || LA (Library Applet)&lt;br /&gt;
|-&lt;br /&gt;
| 145 || ETicket&lt;br /&gt;
|-&lt;br /&gt;
| 146 || NGC (Bad Words)&lt;br /&gt;
|-&lt;br /&gt;
| 147 || Error Report&lt;br /&gt;
|-&lt;br /&gt;
| 148 || APM&lt;br /&gt;
|-&lt;br /&gt;
| 149 || CEC&lt;br /&gt;
|-&lt;br /&gt;
| 150 || Profiler&lt;br /&gt;
|-&lt;br /&gt;
| 151 || Error Upload&lt;br /&gt;
|-&lt;br /&gt;
| 153 || Audio&lt;br /&gt;
|-&lt;br /&gt;
| 154 || NPNS&lt;br /&gt;
|-&lt;br /&gt;
| 155 || NPNS HTTP Stream&lt;br /&gt;
|-&lt;br /&gt;
| 157 || ARP&lt;br /&gt;
|-&lt;br /&gt;
| 158 || Updater&lt;br /&gt;
|-&lt;br /&gt;
| 159 || SWKBD&lt;br /&gt;
|-&lt;br /&gt;
| 161 || NFC Mifare&lt;br /&gt;
|-&lt;br /&gt;
| 162 || Userland assert&lt;br /&gt;
|-&lt;br /&gt;
| 163 || Fatal&lt;br /&gt;
|-&lt;br /&gt;
| 164 || NIM Shop&lt;br /&gt;
|-&lt;br /&gt;
| 165 || SPSM&lt;br /&gt;
|-&lt;br /&gt;
| 167 || BGTC&lt;br /&gt;
|-&lt;br /&gt;
| 168 || Userland crash&lt;br /&gt;
|-&lt;br /&gt;
| 178 || PDM&lt;br /&gt;
|-&lt;br /&gt;
| 179 || OLSC&lt;br /&gt;
|-&lt;br /&gt;
| 180 || SREPO&lt;br /&gt;
|-&lt;br /&gt;
| 181 || Dauth&lt;br /&gt;
|-&lt;br /&gt;
| 191 || RTC&lt;br /&gt;
|-&lt;br /&gt;
| 192 || Regulator&lt;br /&gt;
|-&lt;br /&gt;
| 197 || Clkrst&lt;br /&gt;
|-&lt;br /&gt;
| 202 || HID&lt;br /&gt;
|-&lt;br /&gt;
| 203 || LDN&lt;br /&gt;
|-&lt;br /&gt;
| 205 || Irsensor&lt;br /&gt;
|-&lt;br /&gt;
| 206 || Capture&lt;br /&gt;
|-&lt;br /&gt;
| 208 || Manu&lt;br /&gt;
|-&lt;br /&gt;
| 209 || ATK&lt;br /&gt;
|-&lt;br /&gt;
| 210 || Web&lt;br /&gt;
|-&lt;br /&gt;
| 211 ||&lt;br /&gt;
|-&lt;br /&gt;
| 212 || GRC&lt;br /&gt;
|-&lt;br /&gt;
| 216 || Migration&lt;br /&gt;
|-&lt;br /&gt;
| 217 || Migration Idc Server&lt;br /&gt;
|-&lt;br /&gt;
| 345 || libnx&lt;br /&gt;
|-&lt;br /&gt;
| 346 || [[Homebrew ABI]]&lt;br /&gt;
|-&lt;br /&gt;
| 347 || Homebrew Loader&lt;br /&gt;
|-&lt;br /&gt;
| 348 || libnx Nvidia errors&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Error codes =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E01 || 1 || 7 || Session count exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C01 || 1 || 14 || Invalid kernel capability descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x4201 || 1 || 33 || Not Implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x7601 || 1 || 59 || Thread terminated/termination requested&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C01 || 1 || 70 || No more debug events&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA01 || 1 || 101 || Invalid size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC01 || 1 || 102 || Invalid address&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE01 || 1 || 103 || Resource exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD001 || 1 || 104 || Memory exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD201 || 1 || 105 || Handle-table exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 1 || 106 || Invalid memory state / invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD801 || 1 || 108 || Invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC01 || 1 || 110 || Invalid memory range&lt;br /&gt;
|-&lt;br /&gt;
| 0xE001 || 1 || 112 || Invalid thread priority.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE201 || 1 || 113 || Invalid processor id.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE401 || 1 || 114 || Invalid handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE601 || 1 || 115 || Invalid pointer/Syscall copy from user failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE801 || 1 || 116 || Invalid combination&lt;br /&gt;
|-&lt;br /&gt;
| 0xEA01 || 1 || 117 || Time out. Also when you give 0 handles to svcWaitSynchronizationN.&lt;br /&gt;
|-&lt;br /&gt;
| 0xEC01 || 1 || 118 || Operation canceled&lt;br /&gt;
|-&lt;br /&gt;
| 0xEE01 || 1 || 119 || Out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0xF001 || 1 || 120 || Invalid enum&lt;br /&gt;
|-&lt;br /&gt;
| 0xF201 || 1 || 121 || No such entry&lt;br /&gt;
|-&lt;br /&gt;
| 0xF401 || 1 || 122 || Irq/DeviceAddressSpace/{...} already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xF601 || 1 || 123 || Port remote dead&lt;br /&gt;
|-&lt;br /&gt;
| 0xF801 || 1 || 124 || [Usermode] Unhandled interrupt/exception&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA01 || 1 || 125 || Process already started/Wrong memory permission?&lt;br /&gt;
|-&lt;br /&gt;
| 0xFC01 || 1 || 126 || Reserved value&lt;br /&gt;
|-&lt;br /&gt;
| 0xFE01 || 1 || 127 || Invalid hardware breakpoint&lt;br /&gt;
|-&lt;br /&gt;
| 0x10001 || 1 || 128 || [Usermode] Fatal exception&lt;br /&gt;
|-&lt;br /&gt;
| 0x10201 || 1 || 129 || Last thread didn&#039;t belong to your process&lt;br /&gt;
|-&lt;br /&gt;
| 0x10601 || 1 || 131 || Port closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x10801 || 1 || 132 || Resource limit exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x20801 || 1 || 260 || Command buffer too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x40A01 || 1 || 517 || Invalid process ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40C01 || 1 || 518 || Invalid thread ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40E01 || 1 || 519 || Invalid thread ID (used in svcGetDebugThreadParam).&lt;br /&gt;
|-&lt;br /&gt;
| 0x41001 || 1 || 520 || Process not being debugged&lt;br /&gt;
|-&lt;br /&gt;
| 0x202 || 2 || 1 || Path does not exist.&lt;br /&gt;
|-&lt;br /&gt;
| 0x402 || 2 || 2 || Path already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE02 || 2 || 7 || Resource already in use (file already opened, savedata filesystem already mounted).&lt;br /&gt;
|-&lt;br /&gt;
| 0x4602 || 2 || 35 || Not enough free space for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4802 || 2 || 36 || Not enough free space for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A02 || 2 || 37 || Not enough free space for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C02 || 2 || 38 || Not enough free space for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4E02 || 2 || 39 || Not enough free space on SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6402 || 2 || 50 || NCA is older than version 3, or NCA SDK version is older than 0.11.0.0&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 2 || 60 || Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 2 || 1001 || Process does not have RomFs &lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 2 || 1002 || Title-id not found / savedata not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA202 || 2 || 2001 || SD card not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13B002 || 2 || 2520 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13DA02 || 2 || 2541 || Version check failed when mounting gamecard sysupdate partition?&lt;br /&gt;
|-&lt;br /&gt;
| 0x171402 || 2 || 2954 || Invalid gamecard handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 2 || 3001 || Unimplemented behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x177602 || 2 || 3003 || File/Directory already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x190202 || 2 || 3201 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190602 || 2 || 3203 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190802 || 2 || 3204 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190A02 || 2 || 3205 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190C02 || 2 || 3206 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x191002 || 2 || 3208 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x195802 || 2 || 3244 || Allocation failure related to SD cards&lt;br /&gt;
|-&lt;br /&gt;
| 0x196002 || 2 || 3248 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x196202 || 2 || 3249 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A3E02 || 2 || 3359 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4002 || 2 || 3360 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4A02 || 2 || 3365 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x21BC02 || 2 || 4318 || Invalid save data filesystem magic (valid magic is SAVE in ASCII)&lt;br /&gt;
|-&lt;br /&gt;
| 0x234202 || 2 || 4513 || Error reading ACID section in NPDM&lt;br /&gt;
|-&lt;br /&gt;
| 0x234402 || 2 || 4514 || Invalid NPDM ACID section size&lt;br /&gt;
|-&lt;br /&gt;
| 0x234602 || 2 || 4515 || Last byte of the ACID modulus is zero&lt;br /&gt;
|-&lt;br /&gt;
| 0x234802 || 2 || 4516 || Invalid ACID fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234A02 || 2 || 4517 || Invalid NCA magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x234C02 || 2 || 4518 || Invalid NCA header fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234E02 || 2 || 4519 || Invalid NCA header ACID signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x235002 || 2 || 4520 || Invalid NCA header section hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x235202 || 2 || 4521 || Invalid NCA Key index&lt;br /&gt;
|-&lt;br /&gt;
| 0x235602 || 2 || 4523 || Invalid encryption type&lt;br /&gt;
|-&lt;br /&gt;
| 0x235802 || 2 || 4524 || Redirection BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235A02 || 2 || 4525 || Encryption BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235C02 || 2 || 4526 || Redirection BKTR table end offset is past the Encryption BKTR table start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x235E02 || 2 || 4527 || NCA-path used with the wrong titleID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x236002 || 2 || 4528 || NCA header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236202 || 2 || 4529 || NCA FS header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236802 || 2 || 4532 || PartitionFS hash block size is not a power of 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236A02 || 2 || 4533 || PartitionFS hash &amp;quot;always_2&amp;quot; field is not 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236C02 || 2 || 4534 || PartitionFS hash table is too small for main data&lt;br /&gt;
|-&lt;br /&gt;
| 0x236E02 || 2 || 4535 || Invalid PartitionFS block hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244402 || 2 || 4642 || Invalid Partition file hashed region bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x244602 || 2 || 4643 || Invalid Partition FS hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244802 || 2 || 4644 || Invalid PFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244A02 || 2 || 4645 || Invalid HFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244C02 || 2 || 4646 || Invalid name offset for Partition FS file entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x244E02 || 2 || 4647 || Calculated Partition FS header size changed between 2 consecutive reads&lt;br /&gt;
|-&lt;br /&gt;
| 0x249802 || 2 || 4684 || Invalid FAT file number.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249C02 || 2 || 4686 || Invalid FAT format for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249E02 || 2 || 4687 || Invalid FAT format for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A002 || 2 || 4688 || Invalid FAT format for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A202 || 2 || 4689 || Invalid FAT format for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x250E02 || 2 || 4743 || [[NAX0|Corrupted]] NAX0 header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x251002 || 2 || 4744 || Invalid [[NAX0]] magicnum.&lt;br /&gt;
|-&lt;br /&gt;
| 0x280202 || 2 || 5121 || Invalid FAT size&lt;br /&gt;
|-&lt;br /&gt;
| 0x280402 || 2 || 5122 || Invalid FAT BPB (BIOS Parameter Block)&lt;br /&gt;
|-&lt;br /&gt;
| 0x280602 || 2 || 5123 || Invalid FAT parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x280802 || 2 || 5124 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280A02 || 2 || 5125 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280C02 || 2 || 5126 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280E02 || 2 || 5127 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x296A02 || 2 || 5301 || Mountpoint not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 || 2 || 6001 || Invalid input&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE602 || 2 || 6003 || Path too long&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE802 || 2 || 6004 || Invalid character.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEA02 || 2 || 6005 || Invalid directory path.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEC02 || 2 || 6006 || Unable to retrieve directory from path&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 2 || 6061 || Offset outside storage&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 || 2 || 6300 || Operation not supported&lt;br /&gt;
|-&lt;br /&gt;
| 0x313C02 || 2 || 6302 || Attempted to call nn::fssystem::save::BufferedStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x313E02 || 2 || 6303 || Attempted to call nn::fs::SubStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x314002 || 2 || 6304 || Attempted to call nn::fs::MemoryStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x314202 || 2 || 6305 || Invalid Operation ID in nn::fs::MemoryStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x314402 || 2 || 6306 || Invalid Operation ID in nn::fs::FileStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x314C02 || 2 || 6310 || Attempted to call nn::fssystem::AesCtrCounterExtendedStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x314E02 || 2 || 6311 || Attempted to call nn::fssystem::AesCtrCounterExtendedStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315002 || 2 || 6312 || Invalid Operation ID in nn::fssystem::AesCtrCounterExtendedStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x315802 || 2 || 6316 || Attempted to call nn::fssystem::save::HierarchicalIntegrityVerificationStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315A02 || 2 || 6317 || Attempted to call nn::fssystem::save::HierarchicalIntegrityVerificationStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x315C02 || 2 || 6318 || Attempted to call nn::fssystem::save::IntegrityVerificationStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x315E02 || 2 || 6319 || Attempted to invalidate the cache of a RomFs IVFC storage in nn::fssystem::save::IntegrityVerificationStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x316002 || 2 || 6320 || Invalid Operation ID in nn::fssystem::save::IntegrityVerificationStorage::OperateRange &lt;br /&gt;
|-&lt;br /&gt;
| 0x316202 || 2 || 6321 || Attempted to call nn::fssystem::save::BlockCacheBufferedStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x316402 || 2 || 6322 || Attempted to invalidate the cache of something other than a savedata IVFC storage in nn::fssystem::save::BlockCacheBufferedStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x316602 || 2 || 6323 || Invalid Operation ID in nn::fssystem::save::BlockCacheBufferedStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x316802 || 2 || 6324 || Attempted to call nn::fssystem::IndirectStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x316A02 || 2 || 6325 || Attempted to call nn::fssystem::IndirectStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x316C02 || 2 || 6326 || Invalid Operation ID in nn::fssystem::IndirectStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x317202 || 2 || 6329 || Attempted to call nn::fssystem::HierarchicalSha256Storage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317402 || 2 || 6330 || Attempted to call nn::fssystem::ReadOnlyBlockCacheStorage::Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x317602 || 2 || 6331 || Attempted to call nn::fssystem::ReadOnlyBlockCacheStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317802 || 2 || 6332 || Attempted to call nn::fssystem::IntegrityRomFsStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317A02 || 2 || 6333 || Attempted to call nn::fssystem::save::DuplexStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x317C02 || 2 || 6334 || Invalid Operation ID in nn::fssystem::save::DuplexStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x317E02 || 2 || 6335 || Attempted to call nn::fssystem::save::HierarchicalDuplexStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318002 || 2 || 6336 || Attempted to call nn::fssystem::save::RemapStorage::GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318202 || 2 || 6337 || Attempted to call nn::fssystem::save::RemapStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318402 || 2 || 6338 || Invalid Operation ID in nn::fssystem::save::RemapStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x318602 || 2 || 6339 || Attempted to call nn::fssystem::save::IntegritySaveDataStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318802 || 2 || 6340 || Invalid Operation ID in nn::fssystem::save::IntegritySaveDataStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x318A02 || 2 || 6341 || Attempted to call nn::fssystem::save::JournalIntegritySaveDataStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x318C02 || 2 || 6342 || Invalid Operation ID in nn::fssystem::save::JournalIntegritySaveDataStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x318E02 || 2 || 6343 || Attempted to call nn::fssystem::save::JournalStorage::GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x319002 || 2 || 6344 || Attempted to call nn::fssystem::save::JournalStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x319202 || 2 || 6345 || Invalid Operation ID in nn::fssystem::save::JournalStorage::OperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x319602 || 2 || 6347 || Attempted to call nn::fssystem::dbm::AllocationTableStorage::SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x31A602 || 2 || 6355 || Invalid Operation ID in nn::fat::FatFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31A802 || 2 || 6356 || Invalid Operation ID in nn::fssystem::StorageFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31AE02 || 2 || 6359 || Invalid Query ID in nn::fssystem::ConcatenationFileSystem::DoQueryEntry&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B002 || 2 || 6360 || Invalid Operation ID in nn::fssystem::ConcatenationFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B402 || 2 || 6362 || Invalid Operation ID in nn::fs::detail::FileServiceObjectAdapter::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B602 || 2 || 6363 || Invalid Operation ID in nn::fssystem::AesXtsFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B802 || 2 || 6364 || Attempted to modify a nn::fs::RomFsFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0x31BA02 || 2 || 6365 || Attempted to call nn::fs::RomFsFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31BC02 || 2 || 6366 || Attempted to query the space in a nn::fs::RomFsFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0x31BE02 || 2 || 6367 || Attempted to modify a nn::fssystem::RomFsFile&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C002 || 2 || 6368 || Invalid Operation ID in nn::fssystem::RomFsFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C202 || 2 || 6369 || Attempted to modify a nn::fs::ReadOnlyFileSystemTemplate&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C402 || 2 || 6370 || Attempted to call nn::fs::ReadOnlyFileSystemTemplate::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C602 || 2 || 6371 || Attempted to query the space in a nn::fs::ReadOnlyFileSystemTemplate&lt;br /&gt;
|-&lt;br /&gt;
| 0x31C802 || 2 || 6372 || Attempted to modify a nn::fs::ReadOnlyFileSystemFile&lt;br /&gt;
|-&lt;br /&gt;
| 0x31CA02 || 2 || 6373 || Invalid Operation ID in nn::fs::ReadOnlyFileSystemFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31CC02 || 2 || 6374 || Attempted to modify a nn::fssystem::PartitionFileSystemCore&lt;br /&gt;
|-&lt;br /&gt;
| 0x31CE02 || 2 || 6375 || Attempted to call nn::fssystem::PartitionFileSystemCore::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31D002 || 2 || 6376 || Attempted to call nn::fssystem::PartitionFileSystemCore::PartitionFile::DoSetSize&lt;br /&gt;
|-&lt;br /&gt;
| 0x31D202 || 2 || 6377 || Invalid Operation ID in nn::fssystem::PartitionFileSystemCore::PartitionFile::DoOperateRange&lt;br /&gt;
|-&lt;br /&gt;
| 0x31DC02 || 2 || 6382 || Attempted to call nn::fssystem::ApplicationTemporaryFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31DE02 || 2 || 6383 || Attempted to call nn::fssystem::SaveDataFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x31E002 || 2 || 6384 || Attempted to call nn::fssystem::DirectorySaveDataFileSystem::DoCommitProvisionally&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 || 2 || 6400 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x326602 || 2 || 6451 || Missing titlekey(?) required to mount content&lt;br /&gt;
|-&lt;br /&gt;
| 0x326E02 || 2 || 6455 || File not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327002 || 2 || 6456 || Directory not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327202 || 2 || 6457 || Writable file not closed when committing&lt;br /&gt;
|-&lt;br /&gt;
| 0x327402 || 2 || 6458 || FS allocators already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x327602 || 2 || 6459 || FS allocators already used&lt;br /&gt;
|-&lt;br /&gt;
| 0x327A02 || 2 || 6461 || FS allocator alignment violation&lt;br /&gt;
|-&lt;br /&gt;
| 0x339402 || 2 || 6602 || File not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x339602 || 2 || 6603 || Directory not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x35F202 || 2 || 6905 || Mount name not found in table.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBC02 || 2 || 7902 || RomFs table: Entry not found in dictionary&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBE02 || 2 || 7903 || RomFs table: File not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC002 || 2 || 7904 || RomFs table: Directory not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC402 || 2 || 7906 || RomFs table: Entry already exists when trying to add a new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC602 || 2 || 7907 || RomFs table: Insufficient space to add new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC802 || 2 || 7908 || RomFs table: Unable to add new directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCA02 || 2 || 7909 || RomFs table: Unable to add new file&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCC02 || 2 || 7910 || RomFs directory has no more child directories/files when iterating&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DD402 || 2 || 7914 || RomFs table: Path is file, not directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x803 || 3 || 4 || OS busy&lt;br /&gt;
|-&lt;br /&gt;
| 0xE03 || 3 || 7 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x1003 || 3 || 8 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1203 || 3 || 9 || Out of resources&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EA03 || 3 || 501 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE03 || 3 || 503 || Invalid memory mirror&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FE03 || 3 || 1023 || TLS slot is not allocated&lt;br /&gt;
|-&lt;br /&gt;
| 0xA05 || 5 || 5 || [[Content_Manager_services|NcaID]] not found. Returned when attempting to mount titles which exist that aren&#039;t *8XX titles, the same way *8XX titles are mounted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE05 || 5 || 7 || TitleId not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1805 || 5 || 12 || Invalid StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC05 || 5 || 110 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x17C05 || 5 || 190 || Gamecard not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F405 || 5 || 250 || Sdcard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x20805 || 5 || 260 || Storage not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0x806 || 6 || 4 || Converted from error 0xD401&lt;br /&gt;
|-&lt;br /&gt;
| 0x1006 || 6 || 8 || Converted from error 0xE401&lt;br /&gt;
|-&lt;br /&gt;
| 0x408 || 8 || 2 || Program location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x608 || 8 || 3 || Invalid context for control location&lt;br /&gt;
|-&lt;br /&gt;
| 0x808 || 8 || 4 || Storage not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA08 || 8 || 5 || Access denied&lt;br /&gt;
|-&lt;br /&gt;
| 0xC08 || 8 || 6 || Offline manual HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xE08 || 8 || 7 || Title is not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1008 || 8 || 8 || Control location entry for host not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1208 || 8 || 9 || Legal info HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1408 || 8 || 10 || Program location for debug entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x209 || 9 || 1 || Args too long.&lt;br /&gt;
|-&lt;br /&gt;
| 0x409 || 9 || 2 || Maximum processes loaded.&lt;br /&gt;
|-&lt;br /&gt;
| 0x609 || 9 || 3 || NPDM too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x19009 || 9 || 200 || Invalid access control sizes in NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x809 || 9 || 4 || Invalid NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0xA09 || 9 || 5 || Invalid files.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE09 || 9 || 7 || Already registered.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1009 || 9 || 8 || Title not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1209 || 9 || 9 || Title-id in ACI0 doesn&#039;t match range in ACID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6609 || 9 || 51 || Invalid memory state/permission&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A09 || 9 || 53 || Invalid NRR&lt;br /&gt;
|-&lt;br /&gt;
| 0xA209 || 9 || 81 || Unaligned NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xA409 || 9 || 82 || Bad NRR size&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA09 || 9 || 85 || Bad NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xAE09 || 9 || 87 || Bad initialization&lt;br /&gt;
|-&lt;br /&gt;
| 0xC809 || 9 || 100 || Unknown ACI0 descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE09 || 9 || 103 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD009 || 9 || 104 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;SyscallMask&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD409 || 9 || 106 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapIoOrNormalRange&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD609 || 9 || 107 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapNormalPage&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xDE09 || 9 || 111 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;InterruptPair&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE209 || 9 || 113 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;ApplicationType&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE409 || 9 || 114 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelReleaseVersion&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE609 || 9 || 115 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;HandleTableSize&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE809 || 9 || 116 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;DebugFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x1940A || 10 || 202 || Invalid CMIF header size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A60A || 10 || 211 || Invalid CMIF input header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A80A || 10 || 212 || Invalid CMIF output header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA0A || 10 || 221 || Invalid method dispatch ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D60A || 10 || 235 || Invalid in object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D80A || 10 || 236 || Invalid out object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0A || 10 || 301 || Out of domain entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20B || 11 || 1 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC0B || 11 || 102 || Out of server session memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x11A0B || 11 || 141 || Went past maximum during marshalling.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1900B || 11 || 200 || Session doesn&#039;t support domains.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0B || 11 || 301 || Remote process is dead.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3260B || 11 || 403 || Unknown request type&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D60B || 11 || 491 || IPC Query 1 failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20F || 15 || 1 || Pid not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x60F || 15 || 3 || Process has no pending events&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0F || 15 || 5 || Application already running&lt;br /&gt;
|-&lt;br /&gt;
| 0x410 || 16 || 2 || Title-id not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xF010 || 16 || 120 || Gamecard sysupdate not required&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F610 || 16 || 251 || Unexpected StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0x215 || 21 || 1 || Out of processes&lt;br /&gt;
|-&lt;br /&gt;
| 0x415 || 21 || 2 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x615 || 21 || 3 || Max sessions&lt;br /&gt;
|-&lt;br /&gt;
| 0x815 || 21 || 4 || Service already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xA15 || 21 || 5 || Out of services&lt;br /&gt;
|-&lt;br /&gt;
| 0xC15 || 21 || 6 || Invalid name (all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0xE15 || 21 || 7 || Service not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1015 || 21 || 8 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x1215 || 21 || 9 || Service Access Control too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x416 || 22 || 2 || Address space is full&lt;br /&gt;
|-&lt;br /&gt;
| 0x616 || 22 || 3 || NRO already loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x816 || 22 || 4 || Invalid NRO header values&lt;br /&gt;
|-&lt;br /&gt;
| 0xC16 || 22 || 6 || Bad NRR magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x1016 || 22 || 8 || Reached max NRR count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1216 || 22 || 9 || Unable to verify NRO hash or NRR signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x80216 || 22 || 1025 || Address not page-aligned&lt;br /&gt;
|-&lt;br /&gt;
| 0x80416 || 22 || 1026 || Incorrect NRO size&lt;br /&gt;
|-&lt;br /&gt;
| 0x80816 || 22 || 1028 || NRO not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80A16 || 22 || 1029 || NRR not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80C16 || 22 || 1030 || Already initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E16 || 22 || 1031 || Not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x21A || 26 || 1 || SMC is not implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x41A || 26 || 2 || SMC argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A || 26 || 3 || SMC is currently in progress/secmon is busy&lt;br /&gt;
|-&lt;br /&gt;
| 0x81A || 26 || 4 || Secmon not currently performing async operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xA1A || 26 || 5 || Invalid SMC async callback key&lt;br /&gt;
|-&lt;br /&gt;
| 0xC1A || 26 || 6 || SMC is blacklisted during current boot&lt;br /&gt;
|-&lt;br /&gt;
| 0xC81A || 26 || 100 || Invalid (buffer) size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Unknown SMC error&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Decryption failure&lt;br /&gt;
|-&lt;br /&gt;
| 0xD01A || 26 || 104 || No AES keyslots available&lt;br /&gt;
|-&lt;br /&gt;
| 0xD21A || 26 || 105 || Invalid AES keyslot&lt;br /&gt;
|-&lt;br /&gt;
| 0xD41A || 26 || 106 || BootReason already set&lt;br /&gt;
|-&lt;br /&gt;
| 0xD61A || 26 || 107 || BootReason not set&lt;br /&gt;
|-&lt;br /&gt;
| 0xD81A || 26 || 108 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x19269 || 105 || 201 || Null settings name&lt;br /&gt;
|-&lt;br /&gt;
| 0x19469 || 105 || 202 || Null settings key&lt;br /&gt;
|-&lt;br /&gt;
| 0x19669 || 105 || 203 || Null settings value&lt;br /&gt;
|-&lt;br /&gt;
| 0x19A69 || 105 || 205 || Null settings value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A069 || 105 || 208 || Null setting value size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A269 || 105 || 209 || Null debug mode flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA69 || 105 || 221 || Setting group name has zero length&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BC69 || 105 || 222 || Empty settings item key&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E269 || 105 || 241 || Setting group name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E469 || 105 || 242 || Setting name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x20A69 || 105 || 261 || Setting group name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x20C69 || 105 || 262 || Setting name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x4DA69 || 105 || 621 || Null language code buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4EE69 || 105 || 631 || Null network settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4F069 || 105 || 632 || Null network settings output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x50269 || 105 || 641 || Null backlight settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51669 || 105 || 651 || Null Bluetooth device setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51869 || 105 || 652 || Null Bluetooth device setting output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51A69 || 105 || 653 || Null Bluetooth enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51C69 || 105 || 654 || Null Bluetooth AFH enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51E69 || 105 || 655 || Null Bluetooth boost enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52069 || 105 || 656 || Null BLE pairing settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52269 || 105 || 657 || Null BLE pairing settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52A69 || 105 || 661 || Null external steady clock source ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52C69 || 105 || 662 || Null user system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52E69 || 105 || 663 || Null network system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53069 || 105 || 664 || Null user system clock automatic correction enabled flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53269 || 105 || 665 || Null shutdown RTC value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53469 || 105 || 666 || Null external steady clock internal offset buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53E69 || 105 || 671 || Null account settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55269 || 105 || 681 || Null audio volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55669 || 105 || 683 || Null ForceMuteOnHeadphoneRemoved buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55869 || 105 || 684 || Null headphone volume warning count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55E69 || 105 || 687 || Invalid audio output mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x56069 || 105 || 688 || Null headphone volume update flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x56669 || 105 || 691 || Null console information upload flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57A69 || 105 || 701 || Null automatic application download flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57C69 || 105 || 702 || Null notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57E69 || 105 || 703 || Null account notification settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58069 || 105 || 704 || Null account notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58E69 || 105 || 711 || Null vibration master volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59069 || 105 || 712 || Null NX controller settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59269 || 105 || 713 || Null NX controller settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59469 || 105 || 714 || Null USB full key enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A269 || 105 || 721 || Null TV settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A469 || 105 || 722 || Null EDID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5B669 || 105 || 731 || Null data deletion settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CA69 || 105 || 741 || Null initial system applet program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CC69 || 105 || 742 || Null overlay disp program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CE69 || 105 || 743 || Null IsInRepairProcess buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5D069 || 105 || 744 || Null RequiresRunRepairTimeReviser buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5DE69 || 105 || 751 || Null device timezone location name buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5F269 || 105 || 761 || Null primary album storage buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60669 || 105 || 771 || Null USB 3.0 enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60869 || 105 || 772 || Null USB Type-C power source circuit version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A69 || 105 || 781 || Null battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x62E69 || 105 || 791 || Null serial number buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64269 || 105 || 801 || Null lock screen flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64669 || 105 || 803 || Null color set ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64869 || 105 || 804 || Null quest flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64A69 || 105 || 805 || Null wireless certification file size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64C69 || 105 || 806 || Null wireless certification file buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64E69 || 105 || 807 || Null initial launch settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65069 || 105 || 808 || Null device nickname buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65269 || 105 || 809 || Null battery percentage flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65469 || 105 || 810 || Null applet launch flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7E869 || 105 || 1012 || Null wireless LAN enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FA69 || 105 || 1021 || Null product model buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E69 || 105 || 1031 || Null NFC enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82269 || 105 || 1041 || Null ECI device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82469 || 105 || 1042 || Null E-Ticket device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x83669 || 105 || 1051 || Null sleep settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84A69 || 105 || 1061 || Null EULA version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84C69 || 105 || 1062 || Null EULA version entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x85E69 || 105 || 1071 || Null LDN channel buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87269 || 105 || 1081 || Null SSL key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87469 || 105 || 1082 || Null SSL certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x88669 || 105 || 1091 || Null telemetry flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89A69 || 105 || 1101 || Null Gamecard key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89C69 || 105 || 1102 || Null Gamecard certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8AE69 || 105 || 1111 || Null PTM battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B069 || 105 || 1112 || Null PTM fuel gauge parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C269 || 105 || 1121 || Null ECI device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C469 || 105 || 1122 || Null E-Ticket device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D669 || 105 || 1131 || Null speaker parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EA69 || 105 || 1141 || Null firmware version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EC69 || 105 || 1142 || Null firmware version digest buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EE69 || 105 || 1143 || Null rebootless system update version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8FE69 || 105 || 1151 || Null Mii author ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x91269 || 105 || 1161 || Null fatal flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x92669 || 105 || 1171 || Null auto update enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x93A69 || 105 || 1181 || Null external RTC reset flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x94E69 || 105 || 1191 || Null push notification activity mode buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x96269 || 105 || 1201 || Null service discovery control setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x97669 || 105 || 1211 || Null error report share permission buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x98A69 || 105 || 1221 || Null LCD vendor ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x99E69 || 105 || 1231 || Null console SixAxis sensor acceleration bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A069 || 105 || 1232 || Null console SixAxis sensor angular velocity bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A269 || 105 || 1233 || Null console SixAxis sensor acceleration gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A469 || 105 || 1234 || Null console SixAxis sensor angular velocity gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A669 || 105 || 1235 || Null console SixAxis sensor angular velocity time bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A869 || 105 || 1236 || Null console SixAxis sensor angular acceleration buffer &lt;br /&gt;
|-&lt;br /&gt;
| 0x9B269 || 105 || 1241 || Null keyboard layout buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9BA69 || 105 || 1245 || Invalid keyboard layout&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C669 || 105 || 1251 || Null web inspector flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C869 || 105 || 1252 || Null allowed SSL hosts buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CA69 || 105 || 1253 || Null allowed SSL hosts entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CC69 || 105 || 1254 || Null host FS mount point buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9EE69 || 105 || 1271 || Null Amiibo key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F069 || 105 || 1272 || Null Amiibo ECQV certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F269 || 105 || 1273 || Null Amiibo ECDSA certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F469 || 105 || 1274 || Null Amiibo ECQV BLS key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F669 || 105 || 1275 || Null Amiibo ECQV BLS certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F869 || 105 || 1276 || Null Amiibo ECQV BLS root certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x272 || 114 || 1 || Generic error&lt;br /&gt;
|-&lt;br /&gt;
| 0xC72 || 114 || 6 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || 116 || 0 || Time service not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC74 || 116 || 102 || Time not set&lt;br /&gt;
|-&lt;br /&gt;
| 0x19074 || 116 || 200 || Invalid time comparison&lt;br /&gt;
|-&lt;br /&gt;
| 0x19274 || 116 || 201 || Signed overflow/underflow&lt;br /&gt;
|-&lt;br /&gt;
| 0x64274 || 116 || 801 || Memory allocation failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x70A74 || 116 || 901 || Null pointer&lt;br /&gt;
|-&lt;br /&gt;
| 0x70C74 || 116 || 902 || Value out of valid range&lt;br /&gt;
|-&lt;br /&gt;
| 0x70E74 || 116 || 903 || TimeZoneRule conversion failed&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BA74 || 116 || 989 || TimeZone location name not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BC74 || 116 || 990 || Unimplemented functionality&lt;br /&gt;
|-&lt;br /&gt;
| 0x27A || 122 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x47A || 122 || 2 || Object not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x67A || 122 || 3 || Object locked/in used&lt;br /&gt;
|-&lt;br /&gt;
| 0x87A || 122 || 4 || Target already mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0xA7A || 122 || 5 || Target not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0xC7A || 122 || 6 || Object already opened&lt;br /&gt;
|-&lt;br /&gt;
| 0xE7A || 122 || 7 || Object not opened&lt;br /&gt;
|-&lt;br /&gt;
| 0xA07A || 122 || 80 || Passphrase not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA27A || 122 || 81 || Data verification failed&lt;br /&gt;
|-&lt;br /&gt;
| 0xB47A || 122 || 90 || Invalid API call&lt;br /&gt;
|-&lt;br /&gt;
| 0xC47A || 122 || 98 || Invalid operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x287C || 124 || 20 || Argument is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C7C || 124 || 22 || Argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C7C || 124 || 30 || Bad input buffer size&lt;br /&gt;
|-&lt;br /&gt;
| 0x407C || 124 || 32 || Invalid input buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x27E || 126 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x87E || 126 || 4 || Entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE7E || 126 || 67 || Invalid database signature value (should be &amp;quot;NFDB&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0xD27E || 126 || 69 || Invalid database entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1987E || 126 || 204 || Development/debug-only behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x480 || 128 || 2 || IStorage not available.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4680 || 128 || 35 || Error while launching applet.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A80 || 128 || 37 || Title-ID not found. Caused by code 0x410 when applet launch fails&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E880 || 128 || 500 || Invalid IStorage size (negative?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EC80 || 128 || 502 || IStorage has already been opened by another accessor&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE80 || 128 || 503 || IStorage Read/Write out-of-bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x3FE80 || 128 || 511 || IStorage opened as wrong type (data opened as transfermem, transfermem opened as data)&lt;br /&gt;
|-&lt;br /&gt;
| 0x40080 || 128 || 512 || Unbalanced fatal section leave (returned when executing LeaveFatalSection without a preceding EnterFatalSection call)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B080 || 128 || 600 || Failed to allocate memory for IStorage&lt;br /&gt;
|-&lt;br /&gt;
| 0x59080 || 128 || 712 || Thread stack pool exhausted (out of memory)&lt;br /&gt;
|-&lt;br /&gt;
| 0x7A880 || 128 || 980 || &amp;lt;code&amp;gt;am.debug!dev_function&amp;lt;/code&amp;gt; setting needs to be set&lt;br /&gt;
|-&lt;br /&gt;
| 0xA83 || 131 || 5 || Unrecognized applet ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x485 || 133 || 2 || Invalid DVFS table ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x885 || 133 || 4 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x3CF089 || 137 || 7800 || Unknown/invalid libcurl error.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E8289-0x3F4089 || 137 || 8001-8096 || libcurl error 1-96. Some of the libcurl errors in the error-table map to the above unknown-libcurl-error however.&lt;br /&gt;
|-&lt;br /&gt;
| 0x68A || 138 || 3 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x668C || 140 || 51 || USB data-transfer in progress&lt;br /&gt;
|-&lt;br /&gt;
| 0xD48C || 140 || 106 || Invalid descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x1928C || 140 || 201 || USB device not bound / interface already enabled&lt;br /&gt;
|-&lt;br /&gt;
| 0x290 || 144 || 1 || Exited Abnormally ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Abormal)&lt;br /&gt;
|-&lt;br /&gt;
| 0x690 || 144 || 3 || Canceled ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Canceled)&lt;br /&gt;
|-&lt;br /&gt;
| 0x890 || 144 || 4 || Rejected&lt;br /&gt;
|-&lt;br /&gt;
| 0xA90 || 144 || 5 || Exited Unexpectedly ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Unexpected)&lt;br /&gt;
|-&lt;br /&gt;
| 0x299 || 153 || 1 || Invalid audio device&lt;br /&gt;
|-&lt;br /&gt;
| 0x499 || 153 || 2 || Operation couldn&#039;t complete successfully&lt;br /&gt;
|-&lt;br /&gt;
| 0x699 || 153 || 3 || Invalid sample rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x899 || 153 || 4 || Buffer size too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x1099 || 153 || 8 || Too many buffers are still unreleased&lt;br /&gt;
|-&lt;br /&gt;
| 0x1499 || 153 || 10 || Invalid channel count&lt;br /&gt;
|-&lt;br /&gt;
| 0x40299 || 153 || 513 || Invalid/Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0099 || 153 || 1536 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0899 || 153 || 1540 || Audio output was already started&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C9D || 157 || 30 || Address is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E9D || 157 || 31 || PID is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x549D || 157 || 42 || Already bound&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC9D || 157 || 102 || Invalid PID&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA3 || 163 ||  5 || System is booting up repair process without VOL+ held down.&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA3 || 163 || 6 || System is booting up repair process that requires RepairTimeReviser but does not have special cartridge inserted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8B2 || 178 || 100 || Invalid user ID&lt;br /&gt;
|-&lt;br /&gt;
| 0xCAB2 || 178 || 101 || User does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 0x12CB2 || 178 || 150 || Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| 0x190B2 || 178 || 200 || File storage failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x58ACA || 202 || 709 || Npad ID is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF0CD || 205 || 120 || IR image data not available/ready.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A8CD || 205 || 212 || IR camera handle pointer is null.&lt;br /&gt;
|-&lt;br /&gt;
| 0x198CD || 205 || 204 || IR camera invalid handle value.&lt;br /&gt;
|-&lt;br /&gt;
| 0x35B || 347 || 1 || Failed to init SM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x55B || 347 || 2 || Failed to init FS.&lt;br /&gt;
|-&lt;br /&gt;
| 0x75B || 347 || 3 || Failed to open NRO file. May also happen when SD card isn&#039;t inserted / SD mounting failed earlier.&lt;br /&gt;
|-&lt;br /&gt;
| 0x95B || 347 || 4 || Failed to read NRO header.&lt;br /&gt;
|-&lt;br /&gt;
| 0xB5B || 347 || 5 || Invalid NRO magic.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD5B || 347 || 6 || Invalid NRO segments.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF5B || 347 || 7 || Failed to read NRO.&lt;br /&gt;
|-&lt;br /&gt;
| 0x135B || 347 || 9 || Failed to allocate heap.&lt;br /&gt;
|-&lt;br /&gt;
| 0x255B || 347 || 18 || Failed to map code-binary memory.&lt;br /&gt;
|-&lt;br /&gt;
| 0x275B || 347 || 19 || Failed to map code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x295B || 347 || 20 || Failed to map code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B5B || 347 || 21 || Failed to map code memory (.data+.bss).&lt;br /&gt;
|-&lt;br /&gt;
| 0x315B || 347 || 24 || Failed to unmap code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x335B || 347 || 25 || Failed to unmap code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x355B || 347 || 26 || Failed to unmap code memory (.data+.bss).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FS Error Codes ==&lt;br /&gt;
The following are the error codes recognized by nn::fs::detail::LogErrorMessage found in some [[Factory Setup|factory]] titles:&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Description || Message&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 60 || Error: Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 106 || Error: Passed buffer is not usable for fs library.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 1001 || Error: Specified partition is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 1002 || Error: Specified target is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA002 - 0x138602 || 2000 - 2499 || Error: Failed to access SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x136802 - 0x176E02 || 2500 - 2999 || Error: Failed to access game card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 3001 || Error: Specified operation is not implemented.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177A02 || 3005 || Error: Specified value is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B5802 - 0x1F3E02 || 3500 - 3999 || Error: Failed to access MMC.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4202 - 0x219602 || 4001 - 4299 || Error: ROM is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x219A02 - 0x232602 || 4301 - 4499 || Error: Save data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x232A02 - 0x23EE02 || 4501 - 4599 || Error: NCA is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x23F202 - 0x243E02 || 4601 - 4639 || Error: Integrity verification failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x244202 - 0x246602 || 4641 - 4659 || Error: Partition FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x246A02 - 0x248E02 || 4661 - 4679 || Error: Built-in-storage is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249202 - 0x24B602 || 4681 - 4699 || Error: FAT FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24BA02 - 0x24DE02 || 4701 - 4719 || Error: HOST FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4002 - 0x270E02 || 4000, 4300, 4500, 4600, 4640, 4660, 4680, 4700, 4720-4999 || Error: Data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x271002 - 0x2EDE02 || 5000-5999 || Error: Unexpected failure occurred.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE402 - 0x2F1A02 || 6002-6029 || Error: Invalid path was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 6061 || Error: Invalid offset was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5C02 || 6062 || Error: Invalid size was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5E02 || 6063 || Error: Null pointer argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE002 || 6000 || Error: Precondition violation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 - 0x306E02 || 6001-6199 || Error: Invalid argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x307202 || 6201 || Error: OpenMode_AllowAppend is required for implicit extension of file size by WriteFile().&lt;br /&gt;
|-&lt;br /&gt;
| 0x307002 - 0x313602 || 6200, 6202 - 6299 || Error: Invalid operation for the open mode.&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 - 0x31FE02 || 6300-6399 || Error: Unsupported operation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 - 0x32C602 || 6400-6499 || Error: Permission denied.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346402 || 6706 || Error: Enough journal space is not left.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346A02 || 6709 || Error: The open count of files and directories reached the limitation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Fatal Errors =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Description&lt;br /&gt;
|-&lt;br /&gt;
| 2162-0002&lt;br /&gt;
| Can be triggered by running [[SVC|svcBreak]]. The svcBreak params have no effect on the value of the thrown error-code.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0000&lt;br /&gt;
| Userland ARM undefined instruction exception&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0001&lt;br /&gt;
| Userland ARM prefetch-abort due to PC set to non-executable region&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0002&lt;br /&gt;
| Userland ARM data abort. Also caused by abnormal process termination via [[SVC|svcExitProcess]]. Note: directly jumping to nnMain()-retaddr from non-main-thread has the same result.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0003&lt;br /&gt;
| Userland PC address not aligned to 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0008&lt;br /&gt;
| Can occur when attempting to call an svc outside the whitelist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Support Errors =&lt;br /&gt;
This section is for Support Errors displayed by the error-applet, separate from the normal Result errors.&lt;br /&gt;
&lt;br /&gt;
== Support Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [[Internet_Browser|General web-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 809 || [[Internet_Browser|WifiWebAuthApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [[Internet_Browser|Whitelisted-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 811 || [[Internet_Browser|ShopN]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
8XX is for/includes system applets.&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| {web-applets listed above}&lt;br /&gt;
| 2750&lt;br /&gt;
| MP4 parsing failed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Normal error-codes displayed by the system also use the same format as fatal-errors.&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Calibration&amp;diff=7043</id>
		<title>Calibration</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Calibration&amp;diff=7043"/>
		<updated>2019-06-21T20:33:04Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* CAL0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;During [[Factory_Setup|factory setup]], the Switch goes through calibration and the generated data from this process is written to two [[Flash_Filesystem|NAND user partitions]] (&#039;&#039;&#039;PRODINFO&#039;&#039;&#039; and &#039;&#039;&#039;PRODINFOF&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PRODINFOF&#039;&#039;&#039; is a FAT12 compliant filesystem and it&#039;s structure can be found [[Flash_Filesystem#PRODINFOF|here]]. It&#039;s mainly used to keep calibration logs and other assorted files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PRODINFO&#039;&#039;&#039; is a raw binary blob containing the main calibration data, which ranges from hardware IDs to system keys.&lt;br /&gt;
&lt;br /&gt;
= CAL0 =&lt;br /&gt;
This is the raw data stored under the PRODINFO partition.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Field&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
|  0x0000&lt;br /&gt;
|  0x04&lt;br /&gt;
|  magic&lt;br /&gt;
|  &amp;quot;CAL0&amp;quot; header magic.&lt;br /&gt;
|-&lt;br /&gt;
|  0x0004&lt;br /&gt;
|  0x04&lt;br /&gt;
|  version&lt;br /&gt;
|  Always 0x07.&lt;br /&gt;
|-&lt;br /&gt;
|  0x0008&lt;br /&gt;
|  0x04&lt;br /&gt;
|  calib_data_size&lt;br /&gt;
|  Total size of calibration data minus 0x40 bytes (header + calib_data_sha256).&lt;br /&gt;
|-&lt;br /&gt;
|  0x000C&lt;br /&gt;
|  0x02&lt;br /&gt;
|  model&lt;br /&gt;
|  Always 0x01.&lt;br /&gt;
|-&lt;br /&gt;
|  0x000E&lt;br /&gt;
|  0x02&lt;br /&gt;
|  revision&lt;br /&gt;
|  Increases each time calibration data is installed.&lt;br /&gt;
|-&lt;br /&gt;
|  0x0020&lt;br /&gt;
|  0x20&lt;br /&gt;
|  calib_data_sha256&lt;br /&gt;
|  SHA256 hash calculated over calibration data.&lt;br /&gt;
|-&lt;br /&gt;
|  0x0040&lt;br /&gt;
|  0x1D&lt;br /&gt;
|  config_id1&lt;br /&gt;
|  Configuration ID string.&lt;br /&gt;
|-&lt;br /&gt;
|  0x0060&lt;br /&gt;
|  0x20&lt;br /&gt;
|  reserved&lt;br /&gt;
|  Empty.&lt;br /&gt;
|-&lt;br /&gt;
|  0x0080&lt;br /&gt;
|  0x04&lt;br /&gt;
|  wlan_country_codes_num&lt;br /&gt;
|  Number of elements in the wlan_country_codes array.&lt;br /&gt;
|-&lt;br /&gt;
|  0x0084&lt;br /&gt;
|  0x04&lt;br /&gt;
|  wlan_country_codes_last_idx&lt;br /&gt;
|  Index of the last element in the wlan_country_codes array.&lt;br /&gt;
|-&lt;br /&gt;
|  0x0088&lt;br /&gt;
|  0x180&lt;br /&gt;
|  wlan_country_codes&lt;br /&gt;
|  Array of WLAN country code strings. Each element is 3 bytes (code + NULL terminator).&lt;br /&gt;
|-&lt;br /&gt;
|  0x0210&lt;br /&gt;
|  0x06&lt;br /&gt;
|  wlan_mac_addr&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x0220&lt;br /&gt;
|  0x06&lt;br /&gt;
|  bd_addr&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x0230&lt;br /&gt;
|  0x06&lt;br /&gt;
|  accelerometer_offset&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x0238&lt;br /&gt;
|  0x06&lt;br /&gt;
|  accelerometer_scale&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x0240&lt;br /&gt;
|  0x06&lt;br /&gt;
|  gyroscope_offset&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x0248&lt;br /&gt;
|  0x06&lt;br /&gt;
|  gyroscope_scale&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x0250&lt;br /&gt;
|  0x18&lt;br /&gt;
|  serial_number&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x0270&lt;br /&gt;
|  0x30&lt;br /&gt;
|  device_key_ecc_p256&lt;br /&gt;
|  Device key (ECC-P256 version; empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x02B0&lt;br /&gt;
|  0x180&lt;br /&gt;
|  device_cert_ecc_p256&lt;br /&gt;
|  Device certificate (ECC-P256 version; empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x0440&lt;br /&gt;
|  0x30&lt;br /&gt;
|  device_key_ecc_b233&lt;br /&gt;
|  Device key (ECC-B233 version; empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x0480&lt;br /&gt;
|  0x180&lt;br /&gt;
|  device_cert_ecc_b233&lt;br /&gt;
|  Device certificate (ECC-B233 version; active).&lt;br /&gt;
|-&lt;br /&gt;
|  0x0610&lt;br /&gt;
|  0x30&lt;br /&gt;
|  eticket_key_ecc_p256&lt;br /&gt;
|  ETicket key (ECC-P256 version; empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x0650&lt;br /&gt;
|  0x180&lt;br /&gt;
|  eticket_cert_ecc_p256&lt;br /&gt;
|  ETicket certificate (ECC-P256 version; empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x07E0&lt;br /&gt;
|  0x30&lt;br /&gt;
|  eticket_key_ecc_b233&lt;br /&gt;
|  ETicket key (ECC-B233 version; empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x0820&lt;br /&gt;
|  0x180&lt;br /&gt;
|  eticket_cert_ecc_b233&lt;br /&gt;
|  ETicket certificate (ECC-B233 version; empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x09B0&lt;br /&gt;
|  0x110&lt;br /&gt;
|  ssl_key&lt;br /&gt;
|  SSL key (empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x0AD0&lt;br /&gt;
|  0x04&lt;br /&gt;
|  ssl_cert_size&lt;br /&gt;
|  Total size of the SSL certificate.&lt;br /&gt;
|-&lt;br /&gt;
|  0x0AE0&lt;br /&gt;
|  0x800&lt;br /&gt;
|  ssl_cert&lt;br /&gt;
|  SSL certificate. Only ssl_cert_size bytes are used.&lt;br /&gt;
|-&lt;br /&gt;
|  0x12E0&lt;br /&gt;
|  0x20&lt;br /&gt;
|  ssl_cert_sha256&lt;br /&gt;
|  SHA256 over the SSL certificate.&lt;br /&gt;
|-&lt;br /&gt;
|  0x1300&lt;br /&gt;
|  0x1000&lt;br /&gt;
|  random_number&lt;br /&gt;
|  Random generated data.&lt;br /&gt;
|-&lt;br /&gt;
|  0x2300&lt;br /&gt;
|  0x20&lt;br /&gt;
|  random_number_sha256&lt;br /&gt;
|  SHA256 over the random data block.&lt;br /&gt;
|-&lt;br /&gt;
|  0x2320&lt;br /&gt;
|  0x110&lt;br /&gt;
|  gamecard_key&lt;br /&gt;
|  GameCard key (empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x2440&lt;br /&gt;
|  0x400&lt;br /&gt;
|  gamecard_cert&lt;br /&gt;
|  GameCard certificate.&lt;br /&gt;
|-&lt;br /&gt;
|  0x2840&lt;br /&gt;
|  0x20&lt;br /&gt;
|  gamecard_cert_sha256&lt;br /&gt;
|  SHA256 over the GameCard certificate.&lt;br /&gt;
|-&lt;br /&gt;
|  0x2860&lt;br /&gt;
|  0x220&lt;br /&gt;
|  eticket_key_rsa&lt;br /&gt;
|  ETicket key (RSA-2048 version; empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x2A90&lt;br /&gt;
|  0x240&lt;br /&gt;
|  eticket_cert_rsa&lt;br /&gt;
|  ETicket certificate (RSA-2048 version; active).&lt;br /&gt;
|-&lt;br /&gt;
|  0x2CE0&lt;br /&gt;
|  0x18&lt;br /&gt;
|  battery_lot&lt;br /&gt;
|  Battery lot string ID.&lt;br /&gt;
|-&lt;br /&gt;
|  0x2D00&lt;br /&gt;
|  0x800&lt;br /&gt;
|  speaker_calib_value&lt;br /&gt;
|  Speaker calibration values. Only 0x5A bytes are used.&lt;br /&gt;
|-&lt;br /&gt;
|  0x3510&lt;br /&gt;
|  0x04&lt;br /&gt;
|  region_code&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x3520&lt;br /&gt;
|  0x50&lt;br /&gt;
|  amiibo_key&lt;br /&gt;
|  Amiibo key (ECQV and ECDSA versions).&lt;br /&gt;
|-&lt;br /&gt;
|  0x3580&lt;br /&gt;
|  0x14&lt;br /&gt;
|  amiibo_cert_ecqv&lt;br /&gt;
|  Amiibo certificate (ECQV version).&lt;br /&gt;
|-&lt;br /&gt;
|  0x35A0&lt;br /&gt;
|  0x70&lt;br /&gt;
|  amiibo_cert_ecdsa&lt;br /&gt;
|  Amiibo certificate (ECDSA version).&lt;br /&gt;
|-&lt;br /&gt;
|  0x3620&lt;br /&gt;
|  0x40&lt;br /&gt;
|  amiibo_key_ecqv_bls&lt;br /&gt;
|  Amiibo key (ECQV-BLS version).&lt;br /&gt;
|-&lt;br /&gt;
|  0x3670&lt;br /&gt;
|  0x20&lt;br /&gt;
|  amiibo_cert_ecqv_bls&lt;br /&gt;
|  Amiibo certificate (ECQV-BLS version).&lt;br /&gt;
|-&lt;br /&gt;
|  0x36A0&lt;br /&gt;
|  0x90&lt;br /&gt;
|  amiibo_root_cert_ecqv_bls&lt;br /&gt;
|  Amiibo root certificate (ECQV-BLS version).&lt;br /&gt;
|-&lt;br /&gt;
|  0x3740&lt;br /&gt;
|  0x04&lt;br /&gt;
|  product_model&lt;br /&gt;
|  1 = Nx, 2 = Copper&lt;br /&gt;
|-&lt;br /&gt;
|  0x3750&lt;br /&gt;
|  0x06&lt;br /&gt;
|  color_variation&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x3760&lt;br /&gt;
|  0x0C&lt;br /&gt;
|  lcd_backlight_brightness_mapping&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x3770&lt;br /&gt;
|  0x50&lt;br /&gt;
|  device_ext_key_ecc_b233&lt;br /&gt;
|  Extended device key (ECC-B233 version; active).&lt;br /&gt;
|-&lt;br /&gt;
|  0x37D0&lt;br /&gt;
|  0x50&lt;br /&gt;
|  eticket_ext_key_ecc_p256&lt;br /&gt;
|  Extended ETicket key (ECC-P256 version; empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x3830&lt;br /&gt;
|  0x50&lt;br /&gt;
|  eticket_ext_key_ecc_b233&lt;br /&gt;
|  Extended ETicket key (ECC-B233 version; empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x3890&lt;br /&gt;
|  0x240&lt;br /&gt;
|  eticket_ext_key_rsa&lt;br /&gt;
|  Extended ETicket key (RSA-2048 version; active).&lt;br /&gt;
|-&lt;br /&gt;
|  0x3AE0&lt;br /&gt;
|  0x130&lt;br /&gt;
|  ssl_ext_key&lt;br /&gt;
|  Extended SSL key (active).&lt;br /&gt;
|-&lt;br /&gt;
|  0x3C20&lt;br /&gt;
|  0x130&lt;br /&gt;
|  gamecard_ext_key&lt;br /&gt;
|  Extended GameCard key (active).&lt;br /&gt;
|-&lt;br /&gt;
|  0x3D60&lt;br /&gt;
|  0x04&lt;br /&gt;
|  lcd_vendor_id&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x3D70&lt;br /&gt;
|  0x240&lt;br /&gt;
|  [5.0.0+] device_cert_rsa&lt;br /&gt;
|  Device certificate (RSA-2048 version).&lt;br /&gt;
|-&lt;br /&gt;
|  0x3FC0&lt;br /&gt;
|  0x240&lt;br /&gt;
|  [5.0.0+] device_ext_key_rsa&lt;br /&gt;
|  Extended device key (RSA-2048 version).&lt;br /&gt;
|-&lt;br /&gt;
|  0x4210&lt;br /&gt;
|  0x04&lt;br /&gt;
|  [5.0.0+] usb_type_c_power_source_circuit_version&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x4310&lt;br /&gt;
|  0x04&lt;br /&gt;
|  [6.0.0+] battery_version&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Error detection ==&lt;br /&gt;
Each block of raw calibration data (with the exception of blocks with SHA256 hashes) is padded to 16 bytes, being the last 2 bytes a CRC-16 over said block.&lt;br /&gt;
&lt;br /&gt;
 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX&lt;br /&gt;
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 YY YY&lt;br /&gt;
 &lt;br /&gt;
 XX == data&lt;br /&gt;
 00 == padding&lt;br /&gt;
 YY == crc&lt;br /&gt;
&lt;br /&gt;
The CRC-16 is generated as follows:&lt;br /&gt;
 unsigned int crc_16_table[16] = {&lt;br /&gt;
  0x0000, 0xCC01, 0xD801, 0x1400, 0xF001, 0x3C00, 0x2800, 0xE401,&lt;br /&gt;
  0xA001, 0x6C00, 0x7800, 0xB401, 0x5000, 0x9C01, 0x8801, 0x4400 };&lt;br /&gt;
 &lt;br /&gt;
 unsigned short int get_crc_16 (char *p, int n) {&lt;br /&gt;
  unsigned short int crc = 0x55AA;&lt;br /&gt;
  int r;&lt;br /&gt;
 &lt;br /&gt;
  while (n-- &amp;gt; 0) {&lt;br /&gt;
    r = crc_16_table[crc &amp;amp; 0xF];&lt;br /&gt;
    crc = (crc &amp;gt;&amp;gt; 4) &amp;amp; 0x0FFF;&lt;br /&gt;
    crc = crc ^ r ^ crc_16_table[*p &amp;amp; 0xF];&lt;br /&gt;
 &lt;br /&gt;
    r = crc_16_table[crc &amp;amp; 0xF];&lt;br /&gt;
    crc = (crc &amp;gt;&amp;gt; 4) &amp;amp; 0x0FFF;&lt;br /&gt;
    crc = crc ^ r ^ crc_16_table[(*p &amp;gt;&amp;gt; 4) &amp;amp; 0xF];&lt;br /&gt;
 &lt;br /&gt;
    p++;&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  return(crc);&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Calibration&amp;diff=7041</id>
		<title>Calibration</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Calibration&amp;diff=7041"/>
		<updated>2019-06-21T20:12:33Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* CAL0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;During [[Factory_Setup|factory setup]], the Switch goes through calibration and the generated data from this process is written to two [[Flash_Filesystem|NAND user partitions]] (&#039;&#039;&#039;PRODINFO&#039;&#039;&#039; and &#039;&#039;&#039;PRODINFOF&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PRODINFOF&#039;&#039;&#039; is a FAT12 compliant filesystem and it&#039;s structure can be found [[Flash_Filesystem#PRODINFOF|here]]. It&#039;s mainly used to keep calibration logs and other assorted files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PRODINFO&#039;&#039;&#039; is a raw binary blob containing the main calibration data, which ranges from hardware IDs to system keys.&lt;br /&gt;
&lt;br /&gt;
= CAL0 =&lt;br /&gt;
This is the raw data stored under the PRODINFO partition.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Field&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
|  0x0000&lt;br /&gt;
|  0x04&lt;br /&gt;
|  magic&lt;br /&gt;
|  &amp;quot;CAL0&amp;quot; header magic.&lt;br /&gt;
|-&lt;br /&gt;
|  0x0004&lt;br /&gt;
|  0x04&lt;br /&gt;
|  version&lt;br /&gt;
|  Always 0x07.&lt;br /&gt;
|-&lt;br /&gt;
|  0x0008&lt;br /&gt;
|  0x04&lt;br /&gt;
|  calib_data_size&lt;br /&gt;
|  Total size of calibration data minus 0x40 bytes (header + calib_data_sha256).&lt;br /&gt;
|-&lt;br /&gt;
|  0x000C&lt;br /&gt;
|  0x02&lt;br /&gt;
|  model&lt;br /&gt;
|  Always 0x01.&lt;br /&gt;
|-&lt;br /&gt;
|  0x000E&lt;br /&gt;
|  0x02&lt;br /&gt;
|  revision&lt;br /&gt;
|  Increases each time calibration data is installed.&lt;br /&gt;
|-&lt;br /&gt;
|  0x0020&lt;br /&gt;
|  0x20&lt;br /&gt;
|  calib_data_sha256&lt;br /&gt;
|  SHA256 hash calculated over calibration data.&lt;br /&gt;
|-&lt;br /&gt;
|  0x0040&lt;br /&gt;
|  0x1D&lt;br /&gt;
|  config_id1&lt;br /&gt;
|  Configuration ID string.&lt;br /&gt;
|-&lt;br /&gt;
|  0x0060&lt;br /&gt;
|  0x20&lt;br /&gt;
|  reserved&lt;br /&gt;
|  Empty.&lt;br /&gt;
|-&lt;br /&gt;
|  0x0080&lt;br /&gt;
|  0x04&lt;br /&gt;
|  wlan_country_codes_num&lt;br /&gt;
|  Number of elements in the wlan_country_codes array.&lt;br /&gt;
|-&lt;br /&gt;
|  0x0084&lt;br /&gt;
|  0x04&lt;br /&gt;
|  wlan_country_codes_last_idx&lt;br /&gt;
|  Index of the last element in the wlan_country_codes array.&lt;br /&gt;
|-&lt;br /&gt;
|  0x0088&lt;br /&gt;
|  0x180&lt;br /&gt;
|  wlan_country_codes&lt;br /&gt;
|  Array of WLAN country code strings. Each element is 3 bytes (code + NULL terminator).&lt;br /&gt;
|-&lt;br /&gt;
|  0x0210&lt;br /&gt;
|  0x06&lt;br /&gt;
|  wlan_mac_addr&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x0220&lt;br /&gt;
|  0x06&lt;br /&gt;
|  bd_addr&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x0230&lt;br /&gt;
|  0x06&lt;br /&gt;
|  accelerometer_offset&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x0238&lt;br /&gt;
|  0x06&lt;br /&gt;
|  accelerometer_scale&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x0240&lt;br /&gt;
|  0x06&lt;br /&gt;
|  gyroscope_offset&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x0248&lt;br /&gt;
|  0x06&lt;br /&gt;
|  gyroscope_scale&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x0250&lt;br /&gt;
|  0x18&lt;br /&gt;
|  serial_number&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x0270&lt;br /&gt;
|  0x30&lt;br /&gt;
|  device_key_ecc_p256&lt;br /&gt;
|  Device key (ECC-P256 version; empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x02B0&lt;br /&gt;
|  0x180&lt;br /&gt;
|  device_cert_ecc_p256&lt;br /&gt;
|  Device certificate (ECC-P256 version; empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x0440&lt;br /&gt;
|  0x30&lt;br /&gt;
|  device_key_ecc_b233&lt;br /&gt;
|  Device key (ECC-B233 version; empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x0480&lt;br /&gt;
|  0x180&lt;br /&gt;
|  device_cert_ecc_b233&lt;br /&gt;
|  Device certificate (ECC-B233 version; active).&lt;br /&gt;
|-&lt;br /&gt;
|  0x0610&lt;br /&gt;
|  0x30&lt;br /&gt;
|  eticket_key_ecc_p256&lt;br /&gt;
|  ETicket key (ECC-P256 version; empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x0650&lt;br /&gt;
|  0x180&lt;br /&gt;
|  eticket_cert_ecc_p256&lt;br /&gt;
|  ETicket certificate (ECC-P256 version; empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x07E0&lt;br /&gt;
|  0x30&lt;br /&gt;
|  eticket_key_ecc_b233&lt;br /&gt;
|  ETicket key (ECC-B233 version; empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x0820&lt;br /&gt;
|  0x180&lt;br /&gt;
|  eticket_cert_ecc_b233&lt;br /&gt;
|  ETicket certificate (ECC-B233 version; empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x09B0&lt;br /&gt;
|  0x110&lt;br /&gt;
|  ssl_key&lt;br /&gt;
|  SSL key (empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x0AD0&lt;br /&gt;
|  0x04&lt;br /&gt;
|  ssl_cert_size&lt;br /&gt;
|  Total size of the SSL certificate.&lt;br /&gt;
|-&lt;br /&gt;
|  0x0AE0&lt;br /&gt;
|  0x800&lt;br /&gt;
|  ssl_cert&lt;br /&gt;
|  SSL certificate. Only ssl_cert_size bytes are used.&lt;br /&gt;
|-&lt;br /&gt;
|  0x12E0&lt;br /&gt;
|  0x20&lt;br /&gt;
|  ssl_cert_sha256&lt;br /&gt;
|  SHA256 over the SSL certificate.&lt;br /&gt;
|-&lt;br /&gt;
|  0x1300&lt;br /&gt;
|  0x1000&lt;br /&gt;
|  random_number&lt;br /&gt;
|  Random generated data.&lt;br /&gt;
|-&lt;br /&gt;
|  0x2300&lt;br /&gt;
|  0x20&lt;br /&gt;
|  random_number_sha256&lt;br /&gt;
|  SHA256 over the random data block.&lt;br /&gt;
|-&lt;br /&gt;
|  0x2320&lt;br /&gt;
|  0x110&lt;br /&gt;
|  gamecard_key&lt;br /&gt;
|  GameCard key (empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x2440&lt;br /&gt;
|  0x400&lt;br /&gt;
|  gamecard_cert&lt;br /&gt;
|  GameCard certificate.&lt;br /&gt;
|-&lt;br /&gt;
|  0x2840&lt;br /&gt;
|  0x20&lt;br /&gt;
|  gamecard_cert_sha256&lt;br /&gt;
|  SHA256 over the GameCard certificate.&lt;br /&gt;
|-&lt;br /&gt;
|  0x2860&lt;br /&gt;
|  0x220&lt;br /&gt;
|  eticket_key_rsa&lt;br /&gt;
|  ETicket key (RSA-2048 version; empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x2A90&lt;br /&gt;
|  0x240&lt;br /&gt;
|  eticket_cert_rsa&lt;br /&gt;
|  ETicket certificate (RSA-2048 version; active).&lt;br /&gt;
|-&lt;br /&gt;
|  0x2CE0&lt;br /&gt;
|  0x18&lt;br /&gt;
|  battery_lot&lt;br /&gt;
|  Battery lot string ID.&lt;br /&gt;
|-&lt;br /&gt;
|  0x2D00&lt;br /&gt;
|  0x800&lt;br /&gt;
|  speaker_calib_value&lt;br /&gt;
|  Speaker calibration values. Only 0x5A bytes are used.&lt;br /&gt;
|-&lt;br /&gt;
|  0x3510&lt;br /&gt;
|  0x04&lt;br /&gt;
|  region_code&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x3520&lt;br /&gt;
|  0x50&lt;br /&gt;
|  amiibo_key&lt;br /&gt;
|  Amiibo key (ECQV and ECDSA versions).&lt;br /&gt;
|-&lt;br /&gt;
|  0x3580&lt;br /&gt;
|  0x14&lt;br /&gt;
|  amiibo_cert_ecqv&lt;br /&gt;
|  Amiibo certificate (ECQV version).&lt;br /&gt;
|-&lt;br /&gt;
|  0x35A0&lt;br /&gt;
|  0x70&lt;br /&gt;
|  amiibo_cert_ecdsa&lt;br /&gt;
|  Amiibo certificate (ECDSA version).&lt;br /&gt;
|-&lt;br /&gt;
|  0x3620&lt;br /&gt;
|  0x40&lt;br /&gt;
|  amiibo_key_ecqv_bls&lt;br /&gt;
|  Amiibo key (ECQV-BLS version).&lt;br /&gt;
|-&lt;br /&gt;
|  0x3670&lt;br /&gt;
|  0x20&lt;br /&gt;
|  amiibo_cert_ecqv_bls&lt;br /&gt;
|  Amiibo certificate (ECQV-BLS version).&lt;br /&gt;
|-&lt;br /&gt;
|  0x36A0&lt;br /&gt;
|  0x90&lt;br /&gt;
|  amiibo_root_cert_ecqv_bls&lt;br /&gt;
|  Amiibo root certificate (ECQV-BLS version).&lt;br /&gt;
|-&lt;br /&gt;
|  0x3740&lt;br /&gt;
|  0x04&lt;br /&gt;
|  product_model&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x3750&lt;br /&gt;
|  0x06&lt;br /&gt;
|  color_variation&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x3760&lt;br /&gt;
|  0x0C&lt;br /&gt;
|  lcd_backlight_brightness_mapping&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x3770&lt;br /&gt;
|  0x50&lt;br /&gt;
|  device_ext_key_ecc_b233&lt;br /&gt;
|  Extended device key (ECC-B233 version; active).&lt;br /&gt;
|-&lt;br /&gt;
|  0x37D0&lt;br /&gt;
|  0x50&lt;br /&gt;
|  eticket_ext_key_ecc_p256&lt;br /&gt;
|  Extended ETicket key (ECC-P256 version; empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x3830&lt;br /&gt;
|  0x50&lt;br /&gt;
|  eticket_ext_key_ecc_b233&lt;br /&gt;
|  Extended ETicket key (ECC-B233 version; empty and unused).&lt;br /&gt;
|-&lt;br /&gt;
|  0x3890&lt;br /&gt;
|  0x240&lt;br /&gt;
|  eticket_ext_key_rsa&lt;br /&gt;
|  Extended ETicket key (RSA-2048 version; active).&lt;br /&gt;
|-&lt;br /&gt;
|  0x3AE0&lt;br /&gt;
|  0x130&lt;br /&gt;
|  ssl_ext_key&lt;br /&gt;
|  Extended SSL key (active).&lt;br /&gt;
|-&lt;br /&gt;
|  0x3C20&lt;br /&gt;
|  0x130&lt;br /&gt;
|  gamecard_ext_key&lt;br /&gt;
|  Extended GameCard key (active).&lt;br /&gt;
|-&lt;br /&gt;
|  0x3D60&lt;br /&gt;
|  0x04&lt;br /&gt;
|  lcd_vendor_id&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x3D70&lt;br /&gt;
|  0x240&lt;br /&gt;
|  [5.0.0+] device_cert_rsa&lt;br /&gt;
|  Device certificate (RSA-2048 version).&lt;br /&gt;
|-&lt;br /&gt;
|  0x3FC0&lt;br /&gt;
|  0x240&lt;br /&gt;
|  [5.0.0+] device_ext_key_rsa&lt;br /&gt;
|  Extended device key (RSA-2048 version).&lt;br /&gt;
|-&lt;br /&gt;
|  0x4210&lt;br /&gt;
|  0x04&lt;br /&gt;
|  [5.0.0+] usb_type_c_power_source_circuit_version&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  0x4310&lt;br /&gt;
|  0x04&lt;br /&gt;
|  [6.0.0+] battery_version&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Error detection ==&lt;br /&gt;
Each block of raw calibration data (with the exception of blocks with SHA256 hashes) is padded to 16 bytes, being the last 2 bytes a CRC-16 over said block.&lt;br /&gt;
&lt;br /&gt;
 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX&lt;br /&gt;
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 YY YY&lt;br /&gt;
 &lt;br /&gt;
 XX == data&lt;br /&gt;
 00 == padding&lt;br /&gt;
 YY == crc&lt;br /&gt;
&lt;br /&gt;
The CRC-16 is generated as follows:&lt;br /&gt;
 unsigned int crc_16_table[16] = {&lt;br /&gt;
  0x0000, 0xCC01, 0xD801, 0x1400, 0xF001, 0x3C00, 0x2800, 0xE401,&lt;br /&gt;
  0xA001, 0x6C00, 0x7800, 0xB401, 0x5000, 0x9C01, 0x8801, 0x4400 };&lt;br /&gt;
 &lt;br /&gt;
 unsigned short int get_crc_16 (char *p, int n) {&lt;br /&gt;
  unsigned short int crc = 0x55AA;&lt;br /&gt;
  int r;&lt;br /&gt;
 &lt;br /&gt;
  while (n-- &amp;gt; 0) {&lt;br /&gt;
    r = crc_16_table[crc &amp;amp; 0xF];&lt;br /&gt;
    crc = (crc &amp;gt;&amp;gt; 4) &amp;amp; 0x0FFF;&lt;br /&gt;
    crc = crc ^ r ^ crc_16_table[*p &amp;amp; 0xF];&lt;br /&gt;
 &lt;br /&gt;
    r = crc_16_table[crc &amp;amp; 0xF];&lt;br /&gt;
    crc = (crc &amp;gt;&amp;gt; 4) &amp;amp; 0x0FFF;&lt;br /&gt;
    crc = crc ^ r ^ crc_16_table[(*p &amp;gt;&amp;gt; 4) &amp;amp; 0xF];&lt;br /&gt;
 &lt;br /&gt;
    p++;&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  return(crc);&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=6993</id>
		<title>Error codes</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=6993"/>
		<updated>2019-06-09T18:14:12Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* Error codes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Structure =&lt;br /&gt;
These have been redesigned from the 3DS so that they fit within a Aarch64 MOV instruction immediate most of the time (without requiring the additional MOVK).&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Bits || Field&lt;br /&gt;
|-&lt;br /&gt;
| 8-0 || Module&lt;br /&gt;
|-&lt;br /&gt;
| 21-9 || Description&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When a fatal-error is received the error code is outputted using the following formatter:&lt;br /&gt;
  %04d-%04d&lt;br /&gt;
&lt;br /&gt;
.. where the first code is &amp;lt;code&amp;gt;2000 + Module&amp;lt;/code&amp;gt;, and the other being &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;. Bits &amp;gt;=22 from the error-code are unused when displaying fatal-errors, since the Description ends with bit21.&lt;br /&gt;
&lt;br /&gt;
= Modules =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Kernel&lt;br /&gt;
|-&lt;br /&gt;
| 2 || FS&lt;br /&gt;
|-&lt;br /&gt;
| 3 || OS (Memory, Thread, Mutex, NVIDIA)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || HTCS&lt;br /&gt;
|-&lt;br /&gt;
| 5 || NCM&lt;br /&gt;
|-&lt;br /&gt;
| 6 || DD&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Debug Monitor&lt;br /&gt;
|-&lt;br /&gt;
| 8 || LR&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Loader&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CMIF (IPC command interface)&lt;br /&gt;
|-&lt;br /&gt;
| 11 || HIPC (IPC)&lt;br /&gt;
|-&lt;br /&gt;
| 15 || PM&lt;br /&gt;
|-&lt;br /&gt;
| 16 || NS&lt;br /&gt;
|-&lt;br /&gt;
| 17 || Sockets&lt;br /&gt;
|-&lt;br /&gt;
| 18 || HTC&lt;br /&gt;
|-&lt;br /&gt;
| 20 || NCM Content&lt;br /&gt;
|-&lt;br /&gt;
| 21 || SM&lt;br /&gt;
|-&lt;br /&gt;
| 22 || RO userland&lt;br /&gt;
|-&lt;br /&gt;
| 24 || SDMMC&lt;br /&gt;
|-&lt;br /&gt;
| 25 || OVLN&lt;br /&gt;
|-&lt;br /&gt;
| 26 || SPL&lt;br /&gt;
|-&lt;br /&gt;
| 30 || Bus&lt;br /&gt;
|-&lt;br /&gt;
| 100 || ETHC&lt;br /&gt;
|-&lt;br /&gt;
| 101 || I2C&lt;br /&gt;
|-&lt;br /&gt;
| 102 || GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 103 || UART&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Settings&lt;br /&gt;
|-&lt;br /&gt;
| 107 || WLAN&lt;br /&gt;
|-&lt;br /&gt;
| 108 || XCD&lt;br /&gt;
|-&lt;br /&gt;
| 110 || NIFM&lt;br /&gt;
|-&lt;br /&gt;
| 111 || Hwopus&lt;br /&gt;
|-&lt;br /&gt;
| 113 || Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
| 114 || VI&lt;br /&gt;
|-&lt;br /&gt;
| 115 || NFP&lt;br /&gt;
|-&lt;br /&gt;
| 116 || Time&lt;br /&gt;
|-&lt;br /&gt;
| 117 || FGM&lt;br /&gt;
|-&lt;br /&gt;
| 118 || OE&lt;br /&gt;
|-&lt;br /&gt;
| 120 || PCIe&lt;br /&gt;
|-&lt;br /&gt;
| 121 || Friends&lt;br /&gt;
|-&lt;br /&gt;
| 122 || BCAT&lt;br /&gt;
|-&lt;br /&gt;
| 123 || SSL&lt;br /&gt;
|-&lt;br /&gt;
| 124 || Account&lt;br /&gt;
|-&lt;br /&gt;
| 125 || News&lt;br /&gt;
|-&lt;br /&gt;
| 126 || Mii&lt;br /&gt;
|-&lt;br /&gt;
| 127 || NFC&lt;br /&gt;
|-&lt;br /&gt;
| 128 || AM&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Play Report&lt;br /&gt;
|-&lt;br /&gt;
| 130 || AHID&lt;br /&gt;
|-&lt;br /&gt;
| 132 || Home Menu (Qlaunch)&lt;br /&gt;
|-&lt;br /&gt;
| 133 || PCV&lt;br /&gt;
|-&lt;br /&gt;
| 134 || OMM&lt;br /&gt;
|-&lt;br /&gt;
| 135 || BPC&lt;br /&gt;
|-&lt;br /&gt;
| 136 || PSM&lt;br /&gt;
|-&lt;br /&gt;
| 137 || NIM&lt;br /&gt;
|-&lt;br /&gt;
| 138 || PSC&lt;br /&gt;
|-&lt;br /&gt;
| 139 || TC&lt;br /&gt;
|-&lt;br /&gt;
| 140 || USB&lt;br /&gt;
|-&lt;br /&gt;
| 141 || NSD&lt;br /&gt;
|-&lt;br /&gt;
| 142 || PCTL&lt;br /&gt;
|-&lt;br /&gt;
| 143 || BTM&lt;br /&gt;
|-&lt;br /&gt;
| 144 || LA (Library Applet)&lt;br /&gt;
|-&lt;br /&gt;
| 145 || ETicket&lt;br /&gt;
|-&lt;br /&gt;
| 146 || NGC (Bad Words)&lt;br /&gt;
|-&lt;br /&gt;
| 147 || Error Report&lt;br /&gt;
|-&lt;br /&gt;
| 148 || APM&lt;br /&gt;
|-&lt;br /&gt;
| 149 || CEC&lt;br /&gt;
|-&lt;br /&gt;
| 150 || Profiler&lt;br /&gt;
|-&lt;br /&gt;
| 151 || Error Upload&lt;br /&gt;
|-&lt;br /&gt;
| 153 || Audio&lt;br /&gt;
|-&lt;br /&gt;
| 154 || NPNS&lt;br /&gt;
|-&lt;br /&gt;
| 155 || NPNS HTTP Stream&lt;br /&gt;
|-&lt;br /&gt;
| 157 || ARP&lt;br /&gt;
|-&lt;br /&gt;
| 158 || Updater&lt;br /&gt;
|-&lt;br /&gt;
| 159 || SWKBD&lt;br /&gt;
|-&lt;br /&gt;
| 161 || NFC Mifare&lt;br /&gt;
|-&lt;br /&gt;
| 162 || Userland assert&lt;br /&gt;
|-&lt;br /&gt;
| 163 || Fatal&lt;br /&gt;
|-&lt;br /&gt;
| 164 || NIM Shop&lt;br /&gt;
|-&lt;br /&gt;
| 165 || SPSM&lt;br /&gt;
|-&lt;br /&gt;
| 167 || BGTC&lt;br /&gt;
|-&lt;br /&gt;
| 168 || Userland crash&lt;br /&gt;
|-&lt;br /&gt;
| 178 || PDM&lt;br /&gt;
|-&lt;br /&gt;
| 179 || OLSC&lt;br /&gt;
|-&lt;br /&gt;
| 180 || SREPO&lt;br /&gt;
|-&lt;br /&gt;
| 181 || Dauth&lt;br /&gt;
|-&lt;br /&gt;
| 191 || RTC&lt;br /&gt;
|-&lt;br /&gt;
| 192 || Regulator&lt;br /&gt;
|-&lt;br /&gt;
| 197 || Clkrst&lt;br /&gt;
|-&lt;br /&gt;
| 202 || HID&lt;br /&gt;
|-&lt;br /&gt;
| 203 || LDN&lt;br /&gt;
|-&lt;br /&gt;
| 205 || Irsensor&lt;br /&gt;
|-&lt;br /&gt;
| 206 || Capture&lt;br /&gt;
|-&lt;br /&gt;
| 208 || Manu&lt;br /&gt;
|-&lt;br /&gt;
| 209 || ATK&lt;br /&gt;
|-&lt;br /&gt;
| 210 || Web&lt;br /&gt;
|-&lt;br /&gt;
| 211 ||&lt;br /&gt;
|-&lt;br /&gt;
| 212 || GRC&lt;br /&gt;
|-&lt;br /&gt;
| 216 || Migration&lt;br /&gt;
|-&lt;br /&gt;
| 217 || Migration Idc Server&lt;br /&gt;
|-&lt;br /&gt;
| 345 || libnx&lt;br /&gt;
|-&lt;br /&gt;
| 346 || [[Homebrew ABI]]&lt;br /&gt;
|-&lt;br /&gt;
| 347 || Homebrew Loader&lt;br /&gt;
|-&lt;br /&gt;
| 348 || libnx Nvidia errors&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Error codes =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E01 || 1 || 7 || Session count exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C01 || 1 || 14 || Invalid kernel capability descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x4201 || 1 || 33 || Not Implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x7601 || 1 || 59 || Thread terminated/termination requested&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C01 || 1 || 70 || No more debug events&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA01 || 1 || 101 || Invalid size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC01 || 1 || 102 || Invalid address&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE01 || 1 || 103 || Resource exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD001 || 1 || 104 || Memory exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD201 || 1 || 105 || Handle-table exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 1 || 106 || Invalid memory state / invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD801 || 1 || 108 || Invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC01 || 1 || 110 || Invalid memory range&lt;br /&gt;
|-&lt;br /&gt;
| 0xE001 || 1 || 112 || Invalid thread priority.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE201 || 1 || 113 || Invalid processor id.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE401 || 1 || 114 || Invalid handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE601 || 1 || 115 || Invalid pointer/Syscall copy from user failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE801 || 1 || 116 || Invalid combination&lt;br /&gt;
|-&lt;br /&gt;
| 0xEA01 || 1 || 117 || Time out. Also when you give 0 handles to svcWaitSynchronizationN.&lt;br /&gt;
|-&lt;br /&gt;
| 0xEC01 || 1 || 118 || Operation canceled&lt;br /&gt;
|-&lt;br /&gt;
| 0xEE01 || 1 || 119 || Out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0xF001 || 1 || 120 || Invalid enum&lt;br /&gt;
|-&lt;br /&gt;
| 0xF201 || 1 || 121 || No such entry&lt;br /&gt;
|-&lt;br /&gt;
| 0xF401 || 1 || 122 || Irq/DeviceAddressSpace/{...} already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xF601 || 1 || 123 || Port remote dead&lt;br /&gt;
|-&lt;br /&gt;
| 0xF801 || 1 || 124 || [Usermode] Unhandled interrupt/exception&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA01 || 1 || 125 || Process already started/Wrong memory permission?&lt;br /&gt;
|-&lt;br /&gt;
| 0xFC01 || 1 || 126 || Reserved value&lt;br /&gt;
|-&lt;br /&gt;
| 0xFE01 || 1 || 127 || Invalid hardware breakpoint&lt;br /&gt;
|-&lt;br /&gt;
| 0x10001 || 1 || 128 || [Usermode] Fatal exception&lt;br /&gt;
|-&lt;br /&gt;
| 0x10201 || 1 || 129 || Last thread didn&#039;t belong to your process&lt;br /&gt;
|-&lt;br /&gt;
| 0x10601 || 1 || 131 || Port closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x10801 || 1 || 132 || Resource limit exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x20801 || 1 || 260 || Command buffer too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x40A01 || 1 || 517 || Invalid process ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40C01 || 1 || 518 || Invalid thread ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40E01 || 1 || 519 || Invalid thread ID (used in svcGetDebugThreadParam).&lt;br /&gt;
|-&lt;br /&gt;
| 0x41001 || 1 || 520 || Process not being debugged&lt;br /&gt;
|-&lt;br /&gt;
| 0x202 || 2 || 1 || Path does not exist.&lt;br /&gt;
|-&lt;br /&gt;
| 0x402 || 2 || 2 || Path already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE02 || 2 || 7 || Resource already in use (file already opened, savedata filesystem already mounted).&lt;br /&gt;
|-&lt;br /&gt;
| 0x4602 || 2 || 35 || Not enough free space for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4802 || 2 || 36 || Not enough free space for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A02 || 2 || 37 || Not enough free space for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C02 || 2 || 38 || Not enough free space for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4E02 || 2 || 39 || Not enough free space on SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6402 || 2 || 50 || NCA is older than version 3, or NCA SDK version is older than 0.11.0.0&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 2 || 60 || Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 2 || 1001 || Process does not have RomFs &lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 2 || 1002 || Title-id not found / savedata not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA202 || 2 || 2001 || SD card not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13B002 || 2 || 2520 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13DA02 || 2 || 2541 || Version check failed when mounting gamecard sysupdate partition?&lt;br /&gt;
|-&lt;br /&gt;
| 0x171402 || 2 || 2954 || Invalid gamecard handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 2 || 3001 || Unimplemented behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x177602 || 2 || 3003 || File/Directory already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x190202 || 2 || 3201 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190602 || 2 || 3203 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190802 || 2 || 3204 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190A02 || 2 || 3205 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190C02 || 2 || 3206 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x191002 || 2 || 3208 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x195802 || 2 || 3244 || Allocation failure related to SD cards&lt;br /&gt;
|-&lt;br /&gt;
| 0x196002 || 2 || 3248 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x196202 || 2 || 3249 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A3E02 || 2 || 3359 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4002 || 2 || 3360 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4A02 || 2 || 3365 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x21BC02 || 2 || 4318 || Invalid save data filesystem magic (valid magic is SAVE in ASCII)&lt;br /&gt;
|-&lt;br /&gt;
| 0x234202 || 2 || 4513 || Error reading ACID section in NPDM&lt;br /&gt;
|-&lt;br /&gt;
| 0x234402 || 2 || 4514 || Invalid NPDM ACID section size&lt;br /&gt;
|-&lt;br /&gt;
| 0x234602 || 2 || 4515 || Last byte of the ACID modulus is zero&lt;br /&gt;
|-&lt;br /&gt;
| 0x234802 || 2 || 4516 || Invalid ACID fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234A02 || 2 || 4517 || Invalid NCA magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x234C02 || 2 || 4518 || Invalid NCA header fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234E02 || 2 || 4519 || Invalid NCA header ACID signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x235002 || 2 || 4520 || Invalid NCA header section hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x235202 || 2 || 4521 || Invalid NCA Key index&lt;br /&gt;
|-&lt;br /&gt;
| 0x235602 || 2 || 4523 || Invalid encryption type&lt;br /&gt;
|-&lt;br /&gt;
| 0x235802 || 2 || 4524 || Redirection BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235A02 || 2 || 4525 || Encryption BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235C02 || 2 || 4526 || Redirection BKTR table end offset is past the Encryption BKTR table start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x235E02 || 2 || 4527 || NCA-path used with the wrong titleID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x236002 || 2 || 4528 || NCA header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236202 || 2 || 4529 || NCA FS header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236802 || 2 || 4532 || PartitionFS hash block size is not a power of 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236A02 || 2 || 4533 || PartitionFS hash &amp;quot;always_2&amp;quot; field is not 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236C02 || 2 || 4534 || PartitionFS hash table is too small for main data&lt;br /&gt;
|-&lt;br /&gt;
| 0x236E02 || 2 || 4535 || Invalid PartitionFS block hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244402 || 2 || 4642 || Invalid Partition file hashed region bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x244602 || 2 || 4643 || Invalid Partition FS hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244802 || 2 || 4644 || Invalid PFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244A02 || 2 || 4645 || Invalid HFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244C02 || 2 || 4646 || Invalid name offset for Partition FS file entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x244E02 || 2 || 4647 || Calculated Partition FS header size changed between 2 consecutive reads&lt;br /&gt;
|-&lt;br /&gt;
| 0x249802 || 2 || 4684 || Invalid FAT file number.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249C02 || 2 || 4686 || Invalid FAT format for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249E02 || 2 || 4687 || Invalid FAT format for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A002 || 2 || 4688 || Invalid FAT format for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A202 || 2 || 4689 || Invalid FAT format for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x250E02 || 2 || 4743 || [[NAX0|Corrupted]] NAX0 header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x251002 || 2 || 4744 || Invalid [[NAX0]] magicnum.&lt;br /&gt;
|-&lt;br /&gt;
| 0x280202 || 2 || 5121 || Invalid FAT size&lt;br /&gt;
|-&lt;br /&gt;
| 0x280402 || 2 || 5122 || Invalid FAT BPB (BIOS Parameter Block)&lt;br /&gt;
|-&lt;br /&gt;
| 0x280602 || 2 || 5123 || Invalid FAT parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x280802 || 2 || 5124 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280A02 || 2 || 5125 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280C02 || 2 || 5126 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280E02 || 2 || 5127 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x296A02 || 2 || 5301 || Mountpoint not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 || 2 || 6001 || Invalid input&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE602 || 2 || 6003 || Path too long&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE802 || 2 || 6004 || Invalid character.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEA02 || 2 || 6005 || Invalid directory path.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEC02 || 2 || 6006 || Unable to retrieve directory from path&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 2 || 6061 || Offset outside storage&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 || 2 || 6300 || Operation not supported&lt;br /&gt;
|-&lt;br /&gt;
| 0x31AE02 || 2 || 6359 || Operation not supported in nn::fssystem::ConcatenationFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B002 || 2 || 6360 || Operation not supported in nn::fssystem::ConcatenationFile&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 || 2 || 6400 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x326602 || 2 || 6451 || Missing titlekey(?) required to mount content&lt;br /&gt;
|-&lt;br /&gt;
| 0x326E02 || 2 || 6455 || File not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327002 || 2 || 6456 || Directory not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327202 || 2 || 6457 || Writable file not closed when committing&lt;br /&gt;
|-&lt;br /&gt;
| 0x327402 || 2 || 6458 || FS allocators already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x327602 || 2 || 6459 || FS allocators already used&lt;br /&gt;
|-&lt;br /&gt;
| 0x327A02 || 2 || 6461 || FS allocator alignment violation&lt;br /&gt;
|-&lt;br /&gt;
| 0x339402 || 2 || 6602 || File not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x339602 || 2 || 6603 || Directory not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x35F202 || 2 || 6905 || Mount name not found in table.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBC02 || 2 || 7902 || RomFs table: Entry not found in dictionary&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBE02 || 2 || 7903 || RomFs table: File not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC002 || 2 || 7904 || RomFs table: Directory not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC402 || 2 || 7906 || RomFs table: Entry already exists when trying to add a new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC602 || 2 || 7907 || RomFs table: Insufficient space to add new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC802 || 2 || 7908 || RomFs table: Unable to add new directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCA02 || 2 || 7909 || RomFs table: Unable to add new file&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCC02 || 2 || 7910 || RomFs directory has no more child directories/files when iterating&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DD402 || 2 || 7914 || RomFs table: Path is file, not directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x803 || 3 || 4 || OS busy&lt;br /&gt;
|-&lt;br /&gt;
| 0xE03 || 3 || 7 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x1003 || 3 || 8 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1203 || 3 || 9 || Out of resources&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EA03 || 3 || 501 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE03 || 3 || 503 || Invalid memory mirror&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FE03 || 3 || 1023 || TLS slot is not allocated&lt;br /&gt;
|-&lt;br /&gt;
| 0xA05 || 5 || 5 || [[Content_Manager_services|NcaID]] not found. Returned when attempting to mount titles which exist that aren&#039;t *8XX titles, the same way *8XX titles are mounted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE05 || 5 || 7 || TitleId not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1805 || 5 || 12 || Invalid StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC05 || 5 || 110 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x17C05 || 5 || 190 || Gamecard not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F405 || 5 || 250 || Sdcard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x20805 || 5 || 260 || Storage not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0x806 || 6 || 4 || Converted from error 0xD401&lt;br /&gt;
|-&lt;br /&gt;
| 0x1006 || 6 || 8 || Converted from error 0xE401&lt;br /&gt;
|-&lt;br /&gt;
| 0x408 || 8 || 2 || Program location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x608 || 8 || 3 || Invalid context for control location&lt;br /&gt;
|-&lt;br /&gt;
| 0x808 || 8 || 4 || Storage not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA08 || 8 || 5 || Access denied&lt;br /&gt;
|-&lt;br /&gt;
| 0xC08 || 8 || 6 || Offline manual HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xE08 || 8 || 7 || Title is not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1008 || 8 || 8 || Control location entry for host not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1208 || 8 || 9 || Legal info HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1408 || 8 || 10 || Program location for debug entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x209 || 9 || 1 || Args too long.&lt;br /&gt;
|-&lt;br /&gt;
| 0x409 || 9 || 2 || Maximum processes loaded.&lt;br /&gt;
|-&lt;br /&gt;
| 0x609 || 9 || 3 || NPDM too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x19009 || 9 || 200 || Invalid access control sizes in NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x809 || 9 || 4 || Invalid NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0xA09 || 9 || 5 || Invalid files.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE09 || 9 || 7 || Already registered.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1009 || 9 || 8 || Title not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1209 || 9 || 9 || Title-id in ACI0 doesn&#039;t match range in ACID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6609 || 9 || 51 || Invalid memory state/permission&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A09 || 9 || 53 || Invalid NRR&lt;br /&gt;
|-&lt;br /&gt;
| 0xA209 || 9 || 81 || Unaligned NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xA409 || 9 || 82 || Bad NRR size&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA09 || 9 || 85 || Bad NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xAE09 || 9 || 87 || Bad initialization&lt;br /&gt;
|-&lt;br /&gt;
| 0xC809 || 9 || 100 || Unknown ACI0 descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE09 || 9 || 103 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD009 || 9 || 104 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;SyscallMask&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD409 || 9 || 106 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapIoOrNormalRange&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD609 || 9 || 107 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapNormalPage&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xDE09 || 9 || 111 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;InterruptPair&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE209 || 9 || 113 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;ApplicationType&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE409 || 9 || 114 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelReleaseVersion&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE609 || 9 || 115 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;HandleTableSize&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE809 || 9 || 116 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;DebugFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x1940A || 10 || 202 || Invalid CMIF header size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A60A || 10 || 211 || Invalid CMIF input header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A80A || 10 || 212 || Invalid CMIF output header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA0A || 10 || 221 || Invalid method dispatch ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D60A || 10 || 235 || Invalid in object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D80A || 10 || 236 || Invalid out object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0A || 10 || 301 || Out of domain entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20B || 11 || 1 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC0B || 11 || 102 || Out of server session memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x11A0B || 11 || 141 || Went past maximum during marshalling.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1900B || 11 || 200 || Session doesn&#039;t support domains.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0B || 11 || 301 || Remote process is dead.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3260B || 11 || 403 || Unknown request type&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D60B || 11 || 491 || IPC Query 1 failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20F || 15 || 1 || Pid not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x60F || 15 || 3 || Process has no pending events&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0F || 15 || 5 || Application already running&lt;br /&gt;
|-&lt;br /&gt;
| 0x410 || 16 || 2 || Title-id not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xF010 || 16 || 120 || Gamecard sysupdate not required&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F610 || 16 || 251 || Unexpected StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0x215 || 21 || 1 || Out of processes&lt;br /&gt;
|-&lt;br /&gt;
| 0x415 || 21 || 2 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x615 || 21 || 3 || Max sessions&lt;br /&gt;
|-&lt;br /&gt;
| 0x815 || 21 || 4 || Service already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xA15 || 21 || 5 || Out of services&lt;br /&gt;
|-&lt;br /&gt;
| 0xC15 || 21 || 6 || Invalid name (all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0xE15 || 21 || 7 || Service not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1015 || 21 || 8 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x1215 || 21 || 9 || Service Access Control too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x416 || 22 || 2 || Address space is full&lt;br /&gt;
|-&lt;br /&gt;
| 0x616 || 22 || 3 || NRO already loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x816 || 22 || 4 || Invalid NRO header values&lt;br /&gt;
|-&lt;br /&gt;
| 0xC16 || 22 || 6 || Bad NRR magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x1016 || 22 || 8 || Reached max NRR count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1216 || 22 || 9 || Unable to verify NRO hash or NRR signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x80216 || 22 || 1025 || Address not page-aligned&lt;br /&gt;
|-&lt;br /&gt;
| 0x80416 || 22 || 1026 || Incorrect NRO size&lt;br /&gt;
|-&lt;br /&gt;
| 0x80816 || 22 || 1028 || NRO not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80A16 || 22 || 1029 || NRR not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80C16 || 22 || 1030 || Already initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E16 || 22 || 1031 || Not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x21A || 26 || 1 || SMC is not implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x41A || 26 || 2 || SMC argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A || 26 || 3 || SMC is currently in progress/secmon is busy&lt;br /&gt;
|-&lt;br /&gt;
| 0x81A || 26 || 4 || Secmon not currently performing async operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xA1A || 26 || 5 || Invalid SMC async callback key&lt;br /&gt;
|-&lt;br /&gt;
| 0xC1A || 26 || 6 || SMC is blacklisted during current boot&lt;br /&gt;
|-&lt;br /&gt;
| 0xC81A || 26 || 100 || Invalid (buffer) size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Unknown SMC error&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Decryption failure&lt;br /&gt;
|-&lt;br /&gt;
| 0xD01A || 26 || 104 || No AES keyslots available&lt;br /&gt;
|-&lt;br /&gt;
| 0xD21A || 26 || 105 || Invalid AES keyslot&lt;br /&gt;
|-&lt;br /&gt;
| 0xD41A || 26 || 106 || BootReason already set&lt;br /&gt;
|-&lt;br /&gt;
| 0xD61A || 26 || 107 || BootReason not set&lt;br /&gt;
|-&lt;br /&gt;
| 0xD81A || 26 || 108 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x19269 || 105 || 201 || Null settings name&lt;br /&gt;
|-&lt;br /&gt;
| 0x19469 || 105 || 202 || Null settings key&lt;br /&gt;
|-&lt;br /&gt;
| 0x19669 || 105 || 203 || Null settings value&lt;br /&gt;
|-&lt;br /&gt;
| 0x19A69 || 105 || 205 || Null settings value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A069 || 105 || 208 || Null setting value size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A269 || 105 || 209 || Null debug mode flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA69 || 105 || 221 || Setting group name has zero length&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BC69 || 105 || 222 || Empty settings item key&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E269 || 105 || 241 || Setting group name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E469 || 105 || 242 || Setting name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x20A69 || 105 || 261 || Setting group name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x20C69 || 105 || 262 || Setting name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x4DA69 || 105 || 621 || Null language code buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4EE69 || 105 || 631 || Null network settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4F069 || 105 || 632 || Null network settings output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x50269 || 105 || 641 || Null backlight settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51669 || 105 || 651 || Null Bluetooth device setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51869 || 105 || 652 || Null Bluetooth device setting output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51A69 || 105 || 653 || Null Bluetooth enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51C69 || 105 || 654 || Null Bluetooth AFH enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51E69 || 105 || 655 || Null Bluetooth boost enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52069 || 105 || 656 || Null BLE pairing settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52269 || 105 || 657 || Null BLE pairing settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52A69 || 105 || 661 || Null external steady clock source ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52C69 || 105 || 662 || Null user system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52E69 || 105 || 663 || Null network system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53069 || 105 || 664 || Null user system clock automatic correction enabled flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53269 || 105 || 665 || Null shutdown RTC value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53469 || 105 || 666 || Null external steady clock internal offset buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53E69 || 105 || 671 || Null account settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55269 || 105 || 681 || Null audio volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55669 || 105 || 683 || Null ForceMuteOnHeadphoneRemoved buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55869 || 105 || 684 || Null headphone volume warning count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55E69 || 105 || 687 || Invalid audio output mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x56069 || 105 || 688 || Null headphone volume update flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x56669 || 105 || 691 || Null console information upload flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57A69 || 105 || 701 || Null automatic application download flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57C69 || 105 || 702 || Null notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57E69 || 105 || 703 || Null account notification settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58069 || 105 || 704 || Null account notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58E69 || 105 || 711 || Null vibration master volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59069 || 105 || 712 || Null NX controller settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59269 || 105 || 713 || Null NX controller settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59469 || 105 || 714 || Null USB full key enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A269 || 105 || 721 || Null TV settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A469 || 105 || 722 || Null EDID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5B669 || 105 || 731 || Null data deletion settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CA69 || 105 || 741 || Null initial system applet program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CC69 || 105 || 742 || Null overlay disp program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CE69 || 105 || 743 || Null IsInRepairProcess buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5D069 || 105 || 744 || Null RequiresRunRepairTimeReviser buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5DE69 || 105 || 751 || Null device timezone location name buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5F269 || 105 || 761 || Null primary album storage buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60669 || 105 || 771 || Null USB 3.0 enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60869 || 105 || 772 || Null USB Type-C power source circuit version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A69 || 105 || 781 || Null battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x62E69 || 105 || 791 || Null serial number buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64269 || 105 || 801 || Null lock screen flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64669 || 105 || 803 || Null color set ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64869 || 105 || 804 || Null quest flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64A69 || 105 || 805 || Null wireless certification file size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64C69 || 105 || 806 || Null wireless certification file buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64E69 || 105 || 807 || Null initial launch settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65069 || 105 || 808 || Null device nickname buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65269 || 105 || 809 || Null battery percentage flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65469 || 105 || 810 || Null applet launch flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7E869 || 105 || 1012 || Null wireless LAN enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FA69 || 105 || 1021 || Null product model buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E69 || 105 || 1031 || Null NFC enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82269 || 105 || 1041 || Null ECI device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82469 || 105 || 1042 || Null E-Ticket device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x83669 || 105 || 1051 || Null sleep settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84A69 || 105 || 1061 || Null EULA version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84C69 || 105 || 1062 || Null EULA version entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x85E69 || 105 || 1071 || Null LDN channel buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87269 || 105 || 1081 || Null SSL key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87469 || 105 || 1082 || Null SSL certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x88669 || 105 || 1091 || Null telemetry flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89A69 || 105 || 1101 || Null Gamecard key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89C69 || 105 || 1102 || Null Gamecard certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8AE69 || 105 || 1111 || Null PTM battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B069 || 105 || 1112 || Null PTM fuel gauge parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C269 || 105 || 1121 || Null ECI device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C469 || 105 || 1122 || Null E-Ticket device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D669 || 105 || 1131 || Null speaker parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EA69 || 105 || 1141 || Null firmware version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EC69 || 105 || 1142 || Null firmware version digest buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EE69 || 105 || 1143 || Null rebootless system update version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8FE69 || 105 || 1151 || Null Mii author ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x91269 || 105 || 1161 || Null fatal flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x92669 || 105 || 1171 || Null auto update enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x93A69 || 105 || 1181 || Null external RTC reset flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x94E69 || 105 || 1191 || Null push notification activity mode buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x96269 || 105 || 1201 || Null service discovery control setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x97669 || 105 || 1211 || Null error report share permission buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x98A69 || 105 || 1221 || Null LCD vendor ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x99E69 || 105 || 1231 || Null console SixAxis sensor acceleration bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A069 || 105 || 1232 || Null console SixAxis sensor angular velocity bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A269 || 105 || 1233 || Null console SixAxis sensor acceleration gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A469 || 105 || 1234 || Null console SixAxis sensor angular velocity gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A669 || 105 || 1235 || Null console SixAxis sensor angular velocity time bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A869 || 105 || 1236 || Null console SixAxis sensor angular acceleration buffer &lt;br /&gt;
|-&lt;br /&gt;
| 0x9B269 || 105 || 1241 || Null keyboard layout buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9BA69 || 105 || 1245 || Invalid keyboard layout&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C669 || 105 || 1251 || Null web inspector flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C869 || 105 || 1252 || Null allowed SSL hosts buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CA69 || 105 || 1253 || Null allowed SSL hosts entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CC69 || 105 || 1254 || Null host FS mount point buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9EE69 || 105 || 1271 || Null Amiibo key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F069 || 105 || 1272 || Null Amiibo ECQV certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F269 || 105 || 1273 || Null Amiibo ECDSA certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F469 || 105 || 1274 || Null Amiibo ECQV BLS key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F669 || 105 || 1275 || Null Amiibo ECQV BLS certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F869 || 105 || 1276 || Null Amiibo ECQV BLS root certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x272 || 114 || 1 || Generic error&lt;br /&gt;
|-&lt;br /&gt;
| 0xC72 || 114 || 6 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || 116 || 0 || Time service not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC74 || 116 || 102 || Time not set&lt;br /&gt;
|-&lt;br /&gt;
| 0x19074 || 116 || 200 || Invalid time comparison&lt;br /&gt;
|-&lt;br /&gt;
| 0x19274 || 116 || 201 || Signed overflow/underflow&lt;br /&gt;
|-&lt;br /&gt;
| 0x64274 || 116 || 801 || Memory allocation failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x70A74 || 116 || 901 || Null pointer&lt;br /&gt;
|-&lt;br /&gt;
| 0x70C74 || 116 || 902 || Value out of valid range&lt;br /&gt;
|-&lt;br /&gt;
| 0x70E74 || 116 || 903 || TimeZoneRule conversion failed&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BA74 || 116 || 989 || TimeZone location name not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BC74 || 116 || 990 || Unimplemented functionality&lt;br /&gt;
|-&lt;br /&gt;
| 0x27A || 122 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x47A || 122 || 2 || Object not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x67A || 122 || 3 || Object locked/in used&lt;br /&gt;
|-&lt;br /&gt;
| 0x87A || 122 || 4 || Target already mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0xA7A || 122 || 5 || Target not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0xC7A || 122 || 6 || Object already opened&lt;br /&gt;
|-&lt;br /&gt;
| 0xE7A || 122 || 7 || Object not opened&lt;br /&gt;
|-&lt;br /&gt;
| 0xA07A || 122 || 80 || Passphrase not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA27A || 122 || 81 || Data verification failed&lt;br /&gt;
|-&lt;br /&gt;
| 0xB47A || 122 || 90 || Invalid API call&lt;br /&gt;
|-&lt;br /&gt;
| 0xC47A || 122 || 98 || Invalid operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x287C || 124 || 20 || Argument is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C7C || 124 || 22 || Argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C7C || 124 || 30 || Bad input buffer size&lt;br /&gt;
|-&lt;br /&gt;
| 0x407C || 124 || 32 || Invalid input buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x27E || 126 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x87E || 126 || 4 || Entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE7E || 126 || 67 || Invalid database signature value (should be &amp;quot;NFDB&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0xD27E || 126 || 69 || Invalid database entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1987E || 126 || 204 || Development/debug-only behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x480 || 128 || 2 || IStorage not available.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4680 || 128 || 35 || Error while launching applet.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A80 || 128 || 37 || Title-ID not found. Caused by code 0x410 when applet launch fails&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E880 || 128 || 500 || Invalid IStorage size (negative?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EC80 || 128 || 502 || IStorage has already been opened by another accessor&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE80 || 128 || 503 || IStorage Read/Write out-of-bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x3FE80 || 128 || 511 || IStorage opened as wrong type (data opened as transfermem, transfermem opened as data)&lt;br /&gt;
|-&lt;br /&gt;
| 0x40080 || 128 || 512 || Unbalanced fatal section leave (returned when executing LeaveFatalSection without a preceding EnterFatalSection call)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B080 || 128 || 600 || Failed to allocate memory for IStorage&lt;br /&gt;
|-&lt;br /&gt;
| 0x59080 || 128 || 712 || Thread stack pool exhausted (out of memory)&lt;br /&gt;
|-&lt;br /&gt;
| 0x7A880 || 128 || 980 || &amp;lt;code&amp;gt;am.debug!dev_function&amp;lt;/code&amp;gt; setting needs to be set&lt;br /&gt;
|-&lt;br /&gt;
| 0xA83 || 131 || 5 || Unrecognized applet ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x485 || 133 || 2 || Invalid DVFS table ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x885 || 133 || 4 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x3CF089 || 137 || 7800 || Unknown/invalid libcurl error.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E8289-0x3F4089 || 137 || 8001-8096 || libcurl error 1-96. Some of the libcurl errors in the error-table map to the above unknown-libcurl-error however.&lt;br /&gt;
|-&lt;br /&gt;
| 0x68A || 138 || 3 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x668C || 140 || 51 || USB data-transfer in progress&lt;br /&gt;
|-&lt;br /&gt;
| 0xD48C || 140 || 106 || Invalid descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x1928C || 140 || 201 || USB device not bound / interface already enabled&lt;br /&gt;
|-&lt;br /&gt;
| 0x290 || 144 || 1 || Exited Abnormally ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Abormal)&lt;br /&gt;
|-&lt;br /&gt;
| 0x690 || 144 || 3 || Canceled ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Canceled)&lt;br /&gt;
|-&lt;br /&gt;
| 0x890 || 144 || 4 || Rejected&lt;br /&gt;
|-&lt;br /&gt;
| 0xA90 || 144 || 5 || Exited Unexpectedly ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Unexpected)&lt;br /&gt;
|-&lt;br /&gt;
| 0x299 || 153 || 1 || Invalid audio device&lt;br /&gt;
|-&lt;br /&gt;
| 0x499 || 153 || 2 || Operation couldn&#039;t complete successfully&lt;br /&gt;
|-&lt;br /&gt;
| 0x699 || 153 || 3 || Invalid sample rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x899 || 153 || 4 || Buffer size too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x1099 || 153 || 8 || Too many buffers are still unreleased&lt;br /&gt;
|-&lt;br /&gt;
| 0x1499 || 153 || 10 || Invalid channel count&lt;br /&gt;
|-&lt;br /&gt;
| 0x40299 || 153 || 513 || Invalid/Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0099 || 153 || 1536 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0899 || 153 || 1540 || Audio output was already started&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C9D || 157 || 30 || Address is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E9D || 157 || 31 || PID is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x549D || 157 || 42 || Already bound&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC9D || 157 || 102 || Invalid PID&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA3 || 163 ||  5 || System is booting up repair process without VOL+ held down.&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA3 || 163 || 6 || System is booting up repair process that requires RepairTimeReviser but does not have special cartridge inserted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8B2 || 178 || 100 || Invalid user ID&lt;br /&gt;
|-&lt;br /&gt;
| 0xCAB2 || 178 || 101 || User does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 0x12CB2 || 178 || 150 || Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| 0x190B2 || 178 || 200 || File storage failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x58ACA || 202 || 709 || Npad ID is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF0CD || 205 || 120 || IR image data not available/ready.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A8CD || 205 || 212 || IR camera handle pointer is null.&lt;br /&gt;
|-&lt;br /&gt;
| 0x198CD || 205 || 204 || IR camera invalid handle value.&lt;br /&gt;
|-&lt;br /&gt;
| 0x35B || 347 || 1 || Failed to init SM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x55B || 347 || 2 || Failed to init FS.&lt;br /&gt;
|-&lt;br /&gt;
| 0x75B || 347 || 3 || Failed to open NRO file. May also happen when SD card isn&#039;t inserted / SD mounting failed earlier.&lt;br /&gt;
|-&lt;br /&gt;
| 0x95B || 347 || 4 || Failed to read NRO header.&lt;br /&gt;
|-&lt;br /&gt;
| 0xB5B || 347 || 5 || Invalid NRO magic.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD5B || 347 || 6 || Invalid NRO segments.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF5B || 347 || 7 || Failed to read NRO.&lt;br /&gt;
|-&lt;br /&gt;
| 0x135B || 347 || 9 || Failed to allocate heap.&lt;br /&gt;
|-&lt;br /&gt;
| 0x255B || 347 || 18 || Failed to map code-binary memory.&lt;br /&gt;
|-&lt;br /&gt;
| 0x275B || 347 || 19 || Failed to map code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x295B || 347 || 20 || Failed to map code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B5B || 347 || 21 || Failed to map code memory (.data+.bss).&lt;br /&gt;
|-&lt;br /&gt;
| 0x315B || 347 || 24 || Failed to unmap code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x335B || 347 || 25 || Failed to unmap code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x355B || 347 || 26 || Failed to unmap code memory (.data+.bss).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FS Error Codes ==&lt;br /&gt;
The following are the error codes recognized by nn::fs::detail::LogErrorMessage found in some [[Factory Setup|factory]] titles:&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Description || Message&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 60 || Error: Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 106 || Error: Passed buffer is not usable for fs library.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 1001 || Error: Specified partition is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 1002 || Error: Specified target is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA002 - 0x138602 || 2000 - 2499 || Error: Failed to access SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x136802 - 0x176E02 || 2500 - 2999 || Error: Failed to access game card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 3001 || Error: Specified operation is not implemented.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177A02 || 3005 || Error: Specified value is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B5802 - 0x1F3E02 || 3500 - 3999 || Error: Failed to access MMC.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4202 - 0x219602 || 4001 - 4299 || Error: ROM is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x219A02 - 0x232602 || 4301 - 4499 || Error: Save data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x232A02 - 0x23EE02 || 4501 - 4599 || Error: NCA is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x23F202 - 0x243E02 || 4601 - 4639 || Error: Integrity verification failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x244202 - 0x246602 || 4641 - 4659 || Error: Partition FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x246A02 - 0x248E02 || 4661 - 4679 || Error: Built-in-storage is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249202 - 0x24B602 || 4681 - 4699 || Error: FAT FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24BA02 - 0x24DE02 || 4701 - 4719 || Error: HOST FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4002 - 0x270E02 || 4000, 4300, 4500, 4600, 4640, 4660, 4680, 4700, 4720-4999 || Error: Data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x271002 - 0x2EDE02 || 5000-5999 || Error: Unexpected failure occurred.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE402 - 0x2F1A02 || 6002-6029 || Error: Invalid path was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 6061 || Error: Invalid offset was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5C02 || 6062 || Error: Invalid size was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5E02 || 6063 || Error: Null pointer argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE002 || 6000 || Error: Precondition violation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 - 0x306E02 || 6001-6199 || Error: Invalid argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x307202 || 6201 || Error: OpenMode_AllowAppend is required for implicit extension of file size by WriteFile().&lt;br /&gt;
|-&lt;br /&gt;
| 0x307002 - 0x313602 || 6200, 6202 - 6299 || Error: Invalid operation for the open mode.&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 - 0x31FE02 || 6300-6399 || Error: Unsupported operation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 - 0x32C602 || 6400-6499 || Error: Permission denied.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346402 || 6706 || Error: Enough journal space is not left.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346A02 || 6709 || Error: The open count of files and directories reached the limitation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Fatal Errors =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Description&lt;br /&gt;
|-&lt;br /&gt;
| 2162-0002&lt;br /&gt;
| Can be triggered by running [[SVC|svcBreak]]. The svcBreak params have no effect on the value of the thrown error-code.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0000&lt;br /&gt;
| Userland ARM undefined instruction exception&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0001&lt;br /&gt;
| Userland ARM prefetch-abort due to PC set to non-executable region&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0002&lt;br /&gt;
| Userland ARM data abort. Also caused by abnormal process termination via [[SVC|svcExitProcess]]. Note: directly jumping to nnMain()-retaddr from non-main-thread has the same result.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0003&lt;br /&gt;
| Userland PC address not aligned to 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0008&lt;br /&gt;
| Can occur when attempting to call an svc outside the whitelist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Support Errors =&lt;br /&gt;
This section is for Support Errors displayed by the error-applet, separate from the normal Result errors.&lt;br /&gt;
&lt;br /&gt;
== Support Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [[Internet_Browser|General web-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 809 || [[Internet_Browser|WifiWebAuthApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [[Internet_Browser|Whitelisted-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 811 || [[Internet_Browser|ShopN]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
8XX is for/includes system applets.&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| {web-applets listed above}&lt;br /&gt;
| 2750&lt;br /&gt;
| MP4 parsing failed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Normal error-codes displayed by the system also use the same format as fatal-errors.&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=6992</id>
		<title>Error codes</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=6992"/>
		<updated>2019-06-09T18:06:24Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* Error codes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Structure =&lt;br /&gt;
These have been redesigned from the 3DS so that they fit within a Aarch64 MOV instruction immediate most of the time (without requiring the additional MOVK).&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Bits || Field&lt;br /&gt;
|-&lt;br /&gt;
| 8-0 || Module&lt;br /&gt;
|-&lt;br /&gt;
| 21-9 || Description&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When a fatal-error is received the error code is outputted using the following formatter:&lt;br /&gt;
  %04d-%04d&lt;br /&gt;
&lt;br /&gt;
.. where the first code is &amp;lt;code&amp;gt;2000 + Module&amp;lt;/code&amp;gt;, and the other being &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;. Bits &amp;gt;=22 from the error-code are unused when displaying fatal-errors, since the Description ends with bit21.&lt;br /&gt;
&lt;br /&gt;
= Modules =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Kernel&lt;br /&gt;
|-&lt;br /&gt;
| 2 || FS&lt;br /&gt;
|-&lt;br /&gt;
| 3 || OS (Memory, Thread, Mutex, NVIDIA)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || HTCS&lt;br /&gt;
|-&lt;br /&gt;
| 5 || NCM&lt;br /&gt;
|-&lt;br /&gt;
| 6 || DD&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Debug Monitor&lt;br /&gt;
|-&lt;br /&gt;
| 8 || LR&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Loader&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CMIF (IPC command interface)&lt;br /&gt;
|-&lt;br /&gt;
| 11 || HIPC (IPC)&lt;br /&gt;
|-&lt;br /&gt;
| 15 || PM&lt;br /&gt;
|-&lt;br /&gt;
| 16 || NS&lt;br /&gt;
|-&lt;br /&gt;
| 17 || Sockets&lt;br /&gt;
|-&lt;br /&gt;
| 18 || HTC&lt;br /&gt;
|-&lt;br /&gt;
| 20 || NCM Content&lt;br /&gt;
|-&lt;br /&gt;
| 21 || SM&lt;br /&gt;
|-&lt;br /&gt;
| 22 || RO userland&lt;br /&gt;
|-&lt;br /&gt;
| 24 || SDMMC&lt;br /&gt;
|-&lt;br /&gt;
| 25 || OVLN&lt;br /&gt;
|-&lt;br /&gt;
| 26 || SPL&lt;br /&gt;
|-&lt;br /&gt;
| 30 || Bus&lt;br /&gt;
|-&lt;br /&gt;
| 100 || ETHC&lt;br /&gt;
|-&lt;br /&gt;
| 101 || I2C&lt;br /&gt;
|-&lt;br /&gt;
| 102 || GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 103 || UART&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Settings&lt;br /&gt;
|-&lt;br /&gt;
| 107 || WLAN&lt;br /&gt;
|-&lt;br /&gt;
| 108 || XCD&lt;br /&gt;
|-&lt;br /&gt;
| 110 || NIFM&lt;br /&gt;
|-&lt;br /&gt;
| 111 || Hwopus&lt;br /&gt;
|-&lt;br /&gt;
| 113 || Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
| 114 || VI&lt;br /&gt;
|-&lt;br /&gt;
| 115 || NFP&lt;br /&gt;
|-&lt;br /&gt;
| 116 || Time&lt;br /&gt;
|-&lt;br /&gt;
| 117 || FGM&lt;br /&gt;
|-&lt;br /&gt;
| 118 || OE&lt;br /&gt;
|-&lt;br /&gt;
| 120 || PCIe&lt;br /&gt;
|-&lt;br /&gt;
| 121 || Friends&lt;br /&gt;
|-&lt;br /&gt;
| 122 || BCAT&lt;br /&gt;
|-&lt;br /&gt;
| 123 || SSL&lt;br /&gt;
|-&lt;br /&gt;
| 124 || Account&lt;br /&gt;
|-&lt;br /&gt;
| 125 || News&lt;br /&gt;
|-&lt;br /&gt;
| 126 || Mii&lt;br /&gt;
|-&lt;br /&gt;
| 127 || NFC&lt;br /&gt;
|-&lt;br /&gt;
| 128 || AM&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Play Report&lt;br /&gt;
|-&lt;br /&gt;
| 130 || AHID&lt;br /&gt;
|-&lt;br /&gt;
| 132 || Home Menu (Qlaunch)&lt;br /&gt;
|-&lt;br /&gt;
| 133 || PCV&lt;br /&gt;
|-&lt;br /&gt;
| 134 || OMM&lt;br /&gt;
|-&lt;br /&gt;
| 135 || BPC&lt;br /&gt;
|-&lt;br /&gt;
| 136 || PSM&lt;br /&gt;
|-&lt;br /&gt;
| 137 || NIM&lt;br /&gt;
|-&lt;br /&gt;
| 138 || PSC&lt;br /&gt;
|-&lt;br /&gt;
| 139 || TC&lt;br /&gt;
|-&lt;br /&gt;
| 140 || USB&lt;br /&gt;
|-&lt;br /&gt;
| 141 || NSD&lt;br /&gt;
|-&lt;br /&gt;
| 142 || PCTL&lt;br /&gt;
|-&lt;br /&gt;
| 143 || BTM&lt;br /&gt;
|-&lt;br /&gt;
| 144 || LA (Library Applet)&lt;br /&gt;
|-&lt;br /&gt;
| 145 || ETicket&lt;br /&gt;
|-&lt;br /&gt;
| 146 || NGC (Bad Words)&lt;br /&gt;
|-&lt;br /&gt;
| 147 || Error Report&lt;br /&gt;
|-&lt;br /&gt;
| 148 || APM&lt;br /&gt;
|-&lt;br /&gt;
| 149 || CEC&lt;br /&gt;
|-&lt;br /&gt;
| 150 || Profiler&lt;br /&gt;
|-&lt;br /&gt;
| 151 || Error Upload&lt;br /&gt;
|-&lt;br /&gt;
| 153 || Audio&lt;br /&gt;
|-&lt;br /&gt;
| 154 || NPNS&lt;br /&gt;
|-&lt;br /&gt;
| 155 || NPNS HTTP Stream&lt;br /&gt;
|-&lt;br /&gt;
| 157 || ARP&lt;br /&gt;
|-&lt;br /&gt;
| 158 || Updater&lt;br /&gt;
|-&lt;br /&gt;
| 159 || SWKBD&lt;br /&gt;
|-&lt;br /&gt;
| 161 || NFC Mifare&lt;br /&gt;
|-&lt;br /&gt;
| 162 || Userland assert&lt;br /&gt;
|-&lt;br /&gt;
| 163 || Fatal&lt;br /&gt;
|-&lt;br /&gt;
| 164 || NIM Shop&lt;br /&gt;
|-&lt;br /&gt;
| 165 || SPSM&lt;br /&gt;
|-&lt;br /&gt;
| 167 || BGTC&lt;br /&gt;
|-&lt;br /&gt;
| 168 || Userland crash&lt;br /&gt;
|-&lt;br /&gt;
| 178 || PDM&lt;br /&gt;
|-&lt;br /&gt;
| 179 || OLSC&lt;br /&gt;
|-&lt;br /&gt;
| 180 || SREPO&lt;br /&gt;
|-&lt;br /&gt;
| 181 || Dauth&lt;br /&gt;
|-&lt;br /&gt;
| 191 || RTC&lt;br /&gt;
|-&lt;br /&gt;
| 192 || Regulator&lt;br /&gt;
|-&lt;br /&gt;
| 197 || Clkrst&lt;br /&gt;
|-&lt;br /&gt;
| 202 || HID&lt;br /&gt;
|-&lt;br /&gt;
| 203 || LDN&lt;br /&gt;
|-&lt;br /&gt;
| 205 || Irsensor&lt;br /&gt;
|-&lt;br /&gt;
| 206 || Capture&lt;br /&gt;
|-&lt;br /&gt;
| 208 || Manu&lt;br /&gt;
|-&lt;br /&gt;
| 209 || ATK&lt;br /&gt;
|-&lt;br /&gt;
| 210 || Web&lt;br /&gt;
|-&lt;br /&gt;
| 211 ||&lt;br /&gt;
|-&lt;br /&gt;
| 212 || GRC&lt;br /&gt;
|-&lt;br /&gt;
| 216 || Migration&lt;br /&gt;
|-&lt;br /&gt;
| 217 || Migration Idc Server&lt;br /&gt;
|-&lt;br /&gt;
| 345 || libnx&lt;br /&gt;
|-&lt;br /&gt;
| 346 || [[Homebrew ABI]]&lt;br /&gt;
|-&lt;br /&gt;
| 347 || Homebrew Loader&lt;br /&gt;
|-&lt;br /&gt;
| 348 || libnx Nvidia errors&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Error codes =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E01 || 1 || 7 || Session count exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C01 || 1 || 14 || Invalid kernel capability descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x4201 || 1 || 33 || Not Implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x7601 || 1 || 59 || Thread terminated/termination requested&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C01 || 1 || 70 || No more debug events&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA01 || 1 || 101 || Invalid size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC01 || 1 || 102 || Invalid address&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE01 || 1 || 103 || Resource exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD001 || 1 || 104 || Memory exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD201 || 1 || 105 || Handle-table exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 1 || 106 || Invalid memory state / invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD801 || 1 || 108 || Invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC01 || 1 || 110 || Invalid memory range&lt;br /&gt;
|-&lt;br /&gt;
| 0xE001 || 1 || 112 || Invalid thread priority.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE201 || 1 || 113 || Invalid processor id.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE401 || 1 || 114 || Invalid handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE601 || 1 || 115 || Invalid pointer/Syscall copy from user failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE801 || 1 || 116 || Invalid combination&lt;br /&gt;
|-&lt;br /&gt;
| 0xEA01 || 1 || 117 || Time out. Also when you give 0 handles to svcWaitSynchronizationN.&lt;br /&gt;
|-&lt;br /&gt;
| 0xEC01 || 1 || 118 || Operation canceled&lt;br /&gt;
|-&lt;br /&gt;
| 0xEE01 || 1 || 119 || Out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0xF001 || 1 || 120 || Invalid enum&lt;br /&gt;
|-&lt;br /&gt;
| 0xF201 || 1 || 121 || No such entry&lt;br /&gt;
|-&lt;br /&gt;
| 0xF401 || 1 || 122 || Irq/DeviceAddressSpace/{...} already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xF601 || 1 || 123 || Port remote dead&lt;br /&gt;
|-&lt;br /&gt;
| 0xF801 || 1 || 124 || [Usermode] Unhandled interrupt/exception&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA01 || 1 || 125 || Process already started/Wrong memory permission?&lt;br /&gt;
|-&lt;br /&gt;
| 0xFC01 || 1 || 126 || Reserved value&lt;br /&gt;
|-&lt;br /&gt;
| 0xFE01 || 1 || 127 || Invalid hardware breakpoint&lt;br /&gt;
|-&lt;br /&gt;
| 0x10001 || 1 || 128 || [Usermode] Fatal exception&lt;br /&gt;
|-&lt;br /&gt;
| 0x10201 || 1 || 129 || Last thread didn&#039;t belong to your process&lt;br /&gt;
|-&lt;br /&gt;
| 0x10601 || 1 || 131 || Port closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x10801 || 1 || 132 || Resource limit exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x20801 || 1 || 260 || Command buffer too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x40A01 || 1 || 517 || Invalid process ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40C01 || 1 || 518 || Invalid thread ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40E01 || 1 || 519 || Invalid thread ID (used in svcGetDebugThreadParam).&lt;br /&gt;
|-&lt;br /&gt;
| 0x41001 || 1 || 520 || Process not being debugged&lt;br /&gt;
|-&lt;br /&gt;
| 0x202 || 2 || 1 || Path does not exist.&lt;br /&gt;
|-&lt;br /&gt;
| 0x402 || 2 || 2 || Path already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE02 || 2 || 7 || Resource already in use (file already opened, savedata filesystem already mounted).&lt;br /&gt;
|-&lt;br /&gt;
| 0x4602 || 2 || 35 || Not enough free space for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4802 || 2 || 36 || Not enough free space for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A02 || 2 || 37 || Not enough free space for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C02 || 2 || 38 || Not enough free space for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4E02 || 2 || 39 || Not enough free space on SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6402 || 2 || 50 || NCA is older than version 3, or NCA SDK version is older than 0.11.0.0&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 2 || 60 || Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 2 || 1001 || Process does not have RomFs &lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 2 || 1002 || Title-id not found / savedata not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA202 || 2 || 2001 || SD card not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13B002 || 2 || 2520 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13DA02 || 2 || 2541 || Version check failed when mounting gamecard sysupdate partition?&lt;br /&gt;
|-&lt;br /&gt;
| 0x171402 || 2 || 2954 || Invalid gamecard handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 2 || 3001 || Unimplemented behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x177602 || 2 || 3003 || File/Directory already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x190202 || 2 || 3201 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190602 || 2 || 3203 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190802 || 2 || 3204 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190A02 || 2 || 3205 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190C02 || 2 || 3206 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x191002 || 2 || 3208 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x195802 || 2 || 3244 || Allocation failure related to SD cards&lt;br /&gt;
|-&lt;br /&gt;
| 0x196002 || 2 || 3248 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x196202 || 2 || 3249 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A3E02 || 2 || 3359 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4002 || 2 || 3360 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4A02 || 2 || 3365 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x21BC02 || 2 || 4318 || Invalid save data filesystem magic (valid magic is SAVE in ASCII)&lt;br /&gt;
|-&lt;br /&gt;
| 0x234202 || 2 || 4513 || Error reading ACID section in NPDM&lt;br /&gt;
|-&lt;br /&gt;
| 0x234402 || 2 || 4514 || Invalid NPDM ACID section size&lt;br /&gt;
|-&lt;br /&gt;
| 0x234602 || 2 || 4515 || Last byte of the ACID modulus is zero&lt;br /&gt;
|-&lt;br /&gt;
| 0x234802 || 2 || 4516 || Invalid ACID fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234A02 || 2 || 4517 || Invalid NCA magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x234C02 || 2 || 4518 || Invalid NCA header fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234E02 || 2 || 4519 || Invalid NCA header ACID signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x235002 || 2 || 4520 || Invalid NCA header section hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x235202 || 2 || 4521 || Invalid NCA Key index&lt;br /&gt;
|-&lt;br /&gt;
| 0x235602 || 2 || 4523 || Invalid encryption type&lt;br /&gt;
|-&lt;br /&gt;
| 0x235802 || 2 || 4524 || Redirection BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235A02 || 2 || 4525 || Encryption BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235C02 || 2 || 4526 || Redirection BKTR table end offset is past the Encryption BKTR table start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x235E02 || 2 || 4527 || NCA-path used with the wrong titleID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x236002 || 2 || 4528 || NCA header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236202 || 2 || 4529 || NCA FS header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236802 || 2 || 4532 || PartitionFS hash block size is not a power of 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236A02 || 2 || 4533 || PartitionFS hash &amp;quot;always_2&amp;quot; field is not 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236C02 || 2 || 4534 || PartitionFS hash table is too small for main data&lt;br /&gt;
|-&lt;br /&gt;
| 0x236E02 || 2 || 4535 || Invalid PartitionFS block hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244402 || 2 || 4642 || Invalid Partition file hashed region bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x244602 || 2 || 4643 || Invalid Partition FS hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244802 || 2 || 4644 || Invalid PFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244A02 || 2 || 4645 || Invalid HFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244C02 || 2 || 4646 || Invalid name offset for Partition FS file entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x244E02 || 2 || 4647 || Calculated Partition FS header size changed between 2 consecutive reads&lt;br /&gt;
|-&lt;br /&gt;
| 0x249802 || 2 || 4684 || Invalid FAT file number.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249C02 || 2 || 4686 || Invalid FAT format for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249E02 || 2 || 4687 || Invalid FAT format for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A002 || 2 || 4688 || Invalid FAT format for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A202 || 2 || 4689 || Invalid FAT format for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x250E02 || 2 || 4743 || [[NAX0|Corrupted]] NAX0 header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x251002 || 2 || 4744 || Invalid [[NAX0]] magicnum.&lt;br /&gt;
|-&lt;br /&gt;
| 0x280202 || 2 || 5121 || Invalid FAT size&lt;br /&gt;
|-&lt;br /&gt;
| 0x280402 || 2 || 5122 || Invalid FAT BPB (BIOS Parameter Block)&lt;br /&gt;
|-&lt;br /&gt;
| 0x280602 || 2 || 5123 || Invalid FAT parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x280802 || 2 || 5124 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280A02 || 2 || 5125 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280C02 || 2 || 5126 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280E02 || 2 || 5127 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x296A02 || 2 || 5301 || Mountpoint not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 || 2 || 6001 || Invalid input&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE602 || 2 || 6003 || Path too long&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE802 || 2 || 6004 || Invalid character.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEA02 || 2 || 6005 || Invalid directory path.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEC02 || 2 || 6006 || Unable to retrieve directory from path&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 2 || 6061 || Offset outside storage&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 || 2 || 6300 || Operation not supported&lt;br /&gt;
|-&lt;br /&gt;
| 0x31AE02 || 2 || 6359 || Operation not supported in nn::fssystem::ConcatenationFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B002 || 2 || 6360 || Operation not supported in nn::fssystem::ConcatenationFile&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 || 2 || 6400 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x326602 || 2 || 6451 || Missing titlekey(?) required to mount content&lt;br /&gt;
|-&lt;br /&gt;
| 0x326E02 || 2 || 6455 || File not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327002 || 2 || 6456 || Directory not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327202 || 2 || 6457 || Writable file not closed when committing&lt;br /&gt;
|-&lt;br /&gt;
| 0x327402 || 2 || 6458 || FS allocators already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x327602 || 2 || 6459 || FS allocators already used&lt;br /&gt;
|-&lt;br /&gt;
| 0x327A02 || 2 || 6461 || FS allocator alignment violation&lt;br /&gt;
|-&lt;br /&gt;
| 0x339402 || 2 || 6602 || File not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x339602 || 2 || 6603 || Directory not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBC02 || 2 || 7902 || RomFs table: Entry not found in dictionary&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBE02 || 2 || 7903 || RomFs table: File not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC002 || 2 || 7904 || RomFs table: Directory not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC402 || 2 || 7906 || RomFs table: Entry already exists when trying to add a new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC602 || 2 || 7907 || RomFs table: Insufficient space to add new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC802 || 2 || 7908 || RomFs table: Unable to add new directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCA02 || 2 || 7909 || RomFs table: Unable to add new file&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCC02 || 2 || 7910 || RomFs directory has no more child directories/files when iterating&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DD402 || 2 || 7914 || RomFs table: Path is file, not directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x803 || 3 || 4 || OS busy&lt;br /&gt;
|-&lt;br /&gt;
| 0xE03 || 3 || 7 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x1003 || 3 || 8 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1203 || 3 || 9 || Out of resources&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EA03 || 3 || 501 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE03 || 3 || 503 || Invalid memory mirror&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FE03 || 3 || 1023 || TLS slot is not allocated&lt;br /&gt;
|-&lt;br /&gt;
| 0xA05 || 5 || 5 || [[Content_Manager_services|NcaID]] not found. Returned when attempting to mount titles which exist that aren&#039;t *8XX titles, the same way *8XX titles are mounted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE05 || 5 || 7 || TitleId not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1805 || 5 || 12 || Invalid StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC05 || 5 || 110 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x17C05 || 5 || 190 || Gamecard not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F405 || 5 || 250 || Sdcard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x20805 || 5 || 260 || Storage not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0x806 || 6 || 4 || Converted from error 0xD401&lt;br /&gt;
|-&lt;br /&gt;
| 0x1006 || 6 || 8 || Converted from error 0xE401&lt;br /&gt;
|-&lt;br /&gt;
| 0x408 || 8 || 2 || Program location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x608 || 8 || 3 || Invalid context for control location&lt;br /&gt;
|-&lt;br /&gt;
| 0x808 || 8 || 4 || Storage not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA08 || 8 || 5 || Access denied&lt;br /&gt;
|-&lt;br /&gt;
| 0xC08 || 8 || 6 || Offline manual HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xE08 || 8 || 7 || Title is not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1008 || 8 || 8 || Control location entry for host not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1208 || 8 || 9 || Legal info HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1408 || 8 || 10 || Program location for debug entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x209 || 9 || 1 || Args too long.&lt;br /&gt;
|-&lt;br /&gt;
| 0x409 || 9 || 2 || Maximum processes loaded.&lt;br /&gt;
|-&lt;br /&gt;
| 0x609 || 9 || 3 || NPDM too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x19009 || 9 || 200 || Invalid access control sizes in NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x809 || 9 || 4 || Invalid NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0xA09 || 9 || 5 || Invalid files.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE09 || 9 || 7 || Already registered.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1009 || 9 || 8 || Title not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1209 || 9 || 9 || Title-id in ACI0 doesn&#039;t match range in ACID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6609 || 9 || 51 || Invalid memory state/permission&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A09 || 9 || 53 || Invalid NRR&lt;br /&gt;
|-&lt;br /&gt;
| 0xA209 || 9 || 81 || Unaligned NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xA409 || 9 || 82 || Bad NRR size&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA09 || 9 || 85 || Bad NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xAE09 || 9 || 87 || Bad initialization&lt;br /&gt;
|-&lt;br /&gt;
| 0xC809 || 9 || 100 || Unknown ACI0 descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE09 || 9 || 103 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD009 || 9 || 104 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;SyscallMask&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD409 || 9 || 106 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapIoOrNormalRange&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD609 || 9 || 107 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapNormalPage&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xDE09 || 9 || 111 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;InterruptPair&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE209 || 9 || 113 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;ApplicationType&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE409 || 9 || 114 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelReleaseVersion&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE609 || 9 || 115 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;HandleTableSize&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE809 || 9 || 116 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;DebugFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x1940A || 10 || 202 || Invalid CMIF header size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A60A || 10 || 211 || Invalid CMIF input header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A80A || 10 || 212 || Invalid CMIF output header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA0A || 10 || 221 || Invalid method dispatch ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D60A || 10 || 235 || Invalid in object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D80A || 10 || 236 || Invalid out object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0A || 10 || 301 || Out of domain entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20B || 11 || 1 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC0B || 11 || 102 || Out of server session memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x11A0B || 11 || 141 || Went past maximum during marshalling.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1900B || 11 || 200 || Session doesn&#039;t support domains.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0B || 11 || 301 || Remote process is dead.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3260B || 11 || 403 || Unknown request type&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D60B || 11 || 491 || IPC Query 1 failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20F || 15 || 1 || Pid not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x60F || 15 || 3 || Process has no pending events&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0F || 15 || 5 || Application already running&lt;br /&gt;
|-&lt;br /&gt;
| 0x410 || 16 || 2 || Title-id not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xF010 || 16 || 120 || Gamecard sysupdate not required&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F610 || 16 || 251 || Unexpected StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0x215 || 21 || 1 || Out of processes&lt;br /&gt;
|-&lt;br /&gt;
| 0x415 || 21 || 2 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x615 || 21 || 3 || Max sessions&lt;br /&gt;
|-&lt;br /&gt;
| 0x815 || 21 || 4 || Service already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xA15 || 21 || 5 || Out of services&lt;br /&gt;
|-&lt;br /&gt;
| 0xC15 || 21 || 6 || Invalid name (all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0xE15 || 21 || 7 || Service not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1015 || 21 || 8 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x1215 || 21 || 9 || Service Access Control too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x416 || 22 || 2 || Address space is full&lt;br /&gt;
|-&lt;br /&gt;
| 0x616 || 22 || 3 || NRO already loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x816 || 22 || 4 || Invalid NRO header values&lt;br /&gt;
|-&lt;br /&gt;
| 0xC16 || 22 || 6 || Bad NRR magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x1016 || 22 || 8 || Reached max NRR count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1216 || 22 || 9 || Unable to verify NRO hash or NRR signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x80216 || 22 || 1025 || Address not page-aligned&lt;br /&gt;
|-&lt;br /&gt;
| 0x80416 || 22 || 1026 || Incorrect NRO size&lt;br /&gt;
|-&lt;br /&gt;
| 0x80816 || 22 || 1028 || NRO not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80A16 || 22 || 1029 || NRR not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80C16 || 22 || 1030 || Already initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E16 || 22 || 1031 || Not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x21A || 26 || 1 || SMC is not implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x41A || 26 || 2 || SMC argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A || 26 || 3 || SMC is currently in progress/secmon is busy&lt;br /&gt;
|-&lt;br /&gt;
| 0x81A || 26 || 4 || Secmon not currently performing async operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xA1A || 26 || 5 || Invalid SMC async callback key&lt;br /&gt;
|-&lt;br /&gt;
| 0xC1A || 26 || 6 || SMC is blacklisted during current boot&lt;br /&gt;
|-&lt;br /&gt;
| 0xC81A || 26 || 100 || Invalid (buffer) size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Unknown SMC error&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Decryption failure&lt;br /&gt;
|-&lt;br /&gt;
| 0xD01A || 26 || 104 || No AES keyslots available&lt;br /&gt;
|-&lt;br /&gt;
| 0xD21A || 26 || 105 || Invalid AES keyslot&lt;br /&gt;
|-&lt;br /&gt;
| 0xD41A || 26 || 106 || BootReason already set&lt;br /&gt;
|-&lt;br /&gt;
| 0xD61A || 26 || 107 || BootReason not set&lt;br /&gt;
|-&lt;br /&gt;
| 0xD81A || 26 || 108 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x19269 || 105 || 201 || Null settings name&lt;br /&gt;
|-&lt;br /&gt;
| 0x19469 || 105 || 202 || Null settings key&lt;br /&gt;
|-&lt;br /&gt;
| 0x19669 || 105 || 203 || Null settings value&lt;br /&gt;
|-&lt;br /&gt;
| 0x19A69 || 105 || 205 || Null settings value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A069 || 105 || 208 || Null setting value size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A269 || 105 || 209 || Null debug mode flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA69 || 105 || 221 || Setting group name has zero length&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BC69 || 105 || 222 || Empty settings item key&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E269 || 105 || 241 || Setting group name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E469 || 105 || 242 || Setting name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x20A69 || 105 || 261 || Setting group name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x20C69 || 105 || 262 || Setting name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x4DA69 || 105 || 621 || Null language code buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4EE69 || 105 || 631 || Null network settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4F069 || 105 || 632 || Null network settings output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x50269 || 105 || 641 || Null backlight settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51669 || 105 || 651 || Null Bluetooth device setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51869 || 105 || 652 || Null Bluetooth device setting output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51A69 || 105 || 653 || Null Bluetooth enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51C69 || 105 || 654 || Null Bluetooth AFH enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51E69 || 105 || 655 || Null Bluetooth boost enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52069 || 105 || 656 || Null BLE pairing settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52269 || 105 || 657 || Null BLE pairing settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52A69 || 105 || 661 || Null external steady clock source ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52C69 || 105 || 662 || Null user system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52E69 || 105 || 663 || Null network system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53069 || 105 || 664 || Null user system clock automatic correction enabled flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53269 || 105 || 665 || Null shutdown RTC value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53469 || 105 || 666 || Null external steady clock internal offset buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53E69 || 105 || 671 || Null account settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55269 || 105 || 681 || Null audio volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55669 || 105 || 683 || Null ForceMuteOnHeadphoneRemoved buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55869 || 105 || 684 || Null headphone volume warning count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55E69 || 105 || 687 || Invalid audio output mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x56069 || 105 || 688 || Null headphone volume update flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x56669 || 105 || 691 || Null console information upload flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57A69 || 105 || 701 || Null automatic application download flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57C69 || 105 || 702 || Null notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57E69 || 105 || 703 || Null account notification settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58069 || 105 || 704 || Null account notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58E69 || 105 || 711 || Null vibration master volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59069 || 105 || 712 || Null NX controller settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59269 || 105 || 713 || Null NX controller settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59469 || 105 || 714 || Null USB full key enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A269 || 105 || 721 || Null TV settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A469 || 105 || 722 || Null EDID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5B669 || 105 || 731 || Null data deletion settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CA69 || 105 || 741 || Null initial system applet program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CC69 || 105 || 742 || Null overlay disp program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CE69 || 105 || 743 || Null IsInRepairProcess buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5D069 || 105 || 744 || Null RequiresRunRepairTimeReviser buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5DE69 || 105 || 751 || Null device timezone location name buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5F269 || 105 || 761 || Null primary album storage buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60669 || 105 || 771 || Null USB 3.0 enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60869 || 105 || 772 || Null USB Type-C power source circuit version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A69 || 105 || 781 || Null battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x62E69 || 105 || 791 || Null serial number buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64269 || 105 || 801 || Null lock screen flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64669 || 105 || 803 || Null color set ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64869 || 105 || 804 || Null quest flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64A69 || 105 || 805 || Null wireless certification file size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64C69 || 105 || 806 || Null wireless certification file buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64E69 || 105 || 807 || Null initial launch settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65069 || 105 || 808 || Null device nickname buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65269 || 105 || 809 || Null battery percentage flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65469 || 105 || 810 || Null applet launch flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7E869 || 105 || 1012 || Null wireless LAN enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FA69 || 105 || 1021 || Null product model buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E69 || 105 || 1031 || Null NFC enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82269 || 105 || 1041 || Null ECI device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82469 || 105 || 1042 || Null E-Ticket device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x83669 || 105 || 1051 || Null sleep settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84A69 || 105 || 1061 || Null EULA version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84C69 || 105 || 1062 || Null EULA version entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x85E69 || 105 || 1071 || Null LDN channel buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87269 || 105 || 1081 || Null SSL key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87469 || 105 || 1082 || Null SSL certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x88669 || 105 || 1091 || Null telemetry flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89A69 || 105 || 1101 || Null Gamecard key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89C69 || 105 || 1102 || Null Gamecard certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8AE69 || 105 || 1111 || Null PTM battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B069 || 105 || 1112 || Null PTM fuel gauge parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C269 || 105 || 1121 || Null ECI device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C469 || 105 || 1122 || Null E-Ticket device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D669 || 105 || 1131 || Null speaker parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EA69 || 105 || 1141 || Null firmware version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EC69 || 105 || 1142 || Null firmware version digest buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EE69 || 105 || 1143 || Null rebootless system update version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8FE69 || 105 || 1151 || Null Mii author ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x91269 || 105 || 1161 || Null fatal flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x92669 || 105 || 1171 || Null auto update enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x93A69 || 105 || 1181 || Null external RTC reset flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x94E69 || 105 || 1191 || Null push notification activity mode buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x96269 || 105 || 1201 || Null service discovery control setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x97669 || 105 || 1211 || Null error report share permission buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x98A69 || 105 || 1221 || Null LCD vendor ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x99E69 || 105 || 1231 || Null console SixAxis sensor acceleration bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A069 || 105 || 1232 || Null console SixAxis sensor angular velocity bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A269 || 105 || 1233 || Null console SixAxis sensor acceleration gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A469 || 105 || 1234 || Null console SixAxis sensor angular velocity gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A669 || 105 || 1235 || Null console SixAxis sensor angular velocity time bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A869 || 105 || 1236 || Null console SixAxis sensor angular acceleration buffer &lt;br /&gt;
|-&lt;br /&gt;
| 0x9B269 || 105 || 1241 || Null keyboard layout buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9BA69 || 105 || 1245 || Invalid keyboard layout&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C669 || 105 || 1251 || Null web inspector flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C869 || 105 || 1252 || Null allowed SSL hosts buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CA69 || 105 || 1253 || Null allowed SSL hosts entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CC69 || 105 || 1254 || Null host FS mount point buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9EE69 || 105 || 1271 || Null Amiibo key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F069 || 105 || 1272 || Null Amiibo ECQV certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F269 || 105 || 1273 || Null Amiibo ECDSA certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F469 || 105 || 1274 || Null Amiibo ECQV BLS key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F669 || 105 || 1275 || Null Amiibo ECQV BLS certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F869 || 105 || 1276 || Null Amiibo ECQV BLS root certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x272 || 114 || 1 || Generic error&lt;br /&gt;
|-&lt;br /&gt;
| 0xC72 || 114 || 6 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || 116 || 0 || Time service not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC74 || 116 || 102 || Time not set&lt;br /&gt;
|-&lt;br /&gt;
| 0x19074 || 116 || 200 || Invalid time comparison&lt;br /&gt;
|-&lt;br /&gt;
| 0x19274 || 116 || 201 || Signed overflow/underflow&lt;br /&gt;
|-&lt;br /&gt;
| 0x64274 || 116 || 801 || Memory allocation failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x70A74 || 116 || 901 || Null pointer&lt;br /&gt;
|-&lt;br /&gt;
| 0x70C74 || 116 || 902 || Value out of valid range&lt;br /&gt;
|-&lt;br /&gt;
| 0x70E74 || 116 || 903 || TimeZoneRule conversion failed&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BA74 || 116 || 989 || TimeZone location name not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BC74 || 116 || 990 || Unimplemented functionality&lt;br /&gt;
|-&lt;br /&gt;
| 0x27A || 122 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x47A || 122 || 2 || Object not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x67A || 122 || 3 || Object locked/in used&lt;br /&gt;
|-&lt;br /&gt;
| 0x87A || 122 || 4 || Target already mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0xA7A || 122 || 5 || Target not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0xC7A || 122 || 6 || Object already opened&lt;br /&gt;
|-&lt;br /&gt;
| 0xE7A || 122 || 7 || Object not opened&lt;br /&gt;
|-&lt;br /&gt;
| 0xA07A || 122 || 80 || Passphrase not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA27A || 122 || 81 || Data verification failed&lt;br /&gt;
|-&lt;br /&gt;
| 0xB47A || 122 || 90 || Invalid API call&lt;br /&gt;
|-&lt;br /&gt;
| 0xC47A || 122 || 98 || Invalid operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x287C || 124 || 20 || Argument is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C7C || 124 || 22 || Argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C7C || 124 || 30 || Bad input buffer size&lt;br /&gt;
|-&lt;br /&gt;
| 0x407C || 124 || 32 || Invalid input buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x27E || 126 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x87E || 126 || 4 || Entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE7E || 126 || 67 || Invalid database signature value (should be &amp;quot;NFDB&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0xD27E || 126 || 69 || Invalid database entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1987E || 126 || 204 || Development/debug-only behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x480 || 128 || 2 || IStorage not available.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4680 || 128 || 35 || Error while launching applet.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A80 || 128 || 37 || Title-ID not found. Caused by code 0x410 when applet launch fails&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E880 || 128 || 500 || Invalid IStorage size (negative?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EC80 || 128 || 502 || IStorage has already been opened by another accessor&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE80 || 128 || 503 || IStorage Read/Write out-of-bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x3FE80 || 128 || 511 || IStorage opened as wrong type (data opened as transfermem, transfermem opened as data)&lt;br /&gt;
|-&lt;br /&gt;
| 0x40080 || 128 || 512 || Unbalanced fatal section leave (returned when executing LeaveFatalSection without a preceding EnterFatalSection call)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B080 || 128 || 600 || Failed to allocate memory for IStorage&lt;br /&gt;
|-&lt;br /&gt;
| 0x59080 || 128 || 712 || Thread stack pool exhausted (out of memory)&lt;br /&gt;
|-&lt;br /&gt;
| 0x7A880 || 128 || 980 || &amp;lt;code&amp;gt;am.debug!dev_function&amp;lt;/code&amp;gt; setting needs to be set&lt;br /&gt;
|-&lt;br /&gt;
| 0xA83 || 131 || 5 || Unrecognized applet ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x485 || 133 || 2 || Invalid DVFS table ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x885 || 133 || 4 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x3CF089 || 137 || 7800 || Unknown/invalid libcurl error.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E8289-0x3F4089 || 137 || 8001-8096 || libcurl error 1-96. Some of the libcurl errors in the error-table map to the above unknown-libcurl-error however.&lt;br /&gt;
|-&lt;br /&gt;
| 0x68A || 138 || 3 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x668C || 140 || 51 || USB data-transfer in progress&lt;br /&gt;
|-&lt;br /&gt;
| 0xD48C || 140 || 106 || Invalid descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x1928C || 140 || 201 || USB device not bound / interface already enabled&lt;br /&gt;
|-&lt;br /&gt;
| 0x290 || 144 || 1 || Exited Abnormally ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Abormal)&lt;br /&gt;
|-&lt;br /&gt;
| 0x690 || 144 || 3 || Canceled ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Canceled)&lt;br /&gt;
|-&lt;br /&gt;
| 0x890 || 144 || 4 || Rejected&lt;br /&gt;
|-&lt;br /&gt;
| 0xA90 || 144 || 5 || Exited Unexpectedly ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Unexpected)&lt;br /&gt;
|-&lt;br /&gt;
| 0x299 || 153 || 1 || Invalid audio device&lt;br /&gt;
|-&lt;br /&gt;
| 0x499 || 153 || 2 || Operation couldn&#039;t complete successfully&lt;br /&gt;
|-&lt;br /&gt;
| 0x699 || 153 || 3 || Invalid sample rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x899 || 153 || 4 || Buffer size too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x1099 || 153 || 8 || Too many buffers are still unreleased&lt;br /&gt;
|-&lt;br /&gt;
| 0x1499 || 153 || 10 || Invalid channel count&lt;br /&gt;
|-&lt;br /&gt;
| 0x40299 || 153 || 513 || Invalid/Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0099 || 153 || 1536 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0899 || 153 || 1540 || Audio output was already started&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C9D || 157 || 30 || Address is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E9D || 157 || 31 || PID is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x549D || 157 || 42 || Already bound&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC9D || 157 || 102 || Invalid PID&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA3 || 163 ||  5 || System is booting up repair process without VOL+ held down.&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA3 || 163 || 6 || System is booting up repair process that requires RepairTimeReviser but does not have special cartridge inserted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8B2 || 178 || 100 || Invalid user ID&lt;br /&gt;
|-&lt;br /&gt;
| 0xCAB2 || 178 || 101 || User does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 0x12CB2 || 178 || 150 || Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| 0x190B2 || 178 || 200 || File storage failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x58ACA || 202 || 709 || Npad ID is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF0CD || 205 || 120 || IR image data not available/ready.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A8CD || 205 || 212 || IR camera handle pointer is null.&lt;br /&gt;
|-&lt;br /&gt;
| 0x198CD || 205 || 204 || IR camera invalid handle value.&lt;br /&gt;
|-&lt;br /&gt;
| 0x35B || 347 || 1 || Failed to init SM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x55B || 347 || 2 || Failed to init FS.&lt;br /&gt;
|-&lt;br /&gt;
| 0x75B || 347 || 3 || Failed to open NRO file. May also happen when SD card isn&#039;t inserted / SD mounting failed earlier.&lt;br /&gt;
|-&lt;br /&gt;
| 0x95B || 347 || 4 || Failed to read NRO header.&lt;br /&gt;
|-&lt;br /&gt;
| 0xB5B || 347 || 5 || Invalid NRO magic.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD5B || 347 || 6 || Invalid NRO segments.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF5B || 347 || 7 || Failed to read NRO.&lt;br /&gt;
|-&lt;br /&gt;
| 0x135B || 347 || 9 || Failed to allocate heap.&lt;br /&gt;
|-&lt;br /&gt;
| 0x255B || 347 || 18 || Failed to map code-binary memory.&lt;br /&gt;
|-&lt;br /&gt;
| 0x275B || 347 || 19 || Failed to map code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x295B || 347 || 20 || Failed to map code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B5B || 347 || 21 || Failed to map code memory (.data+.bss).&lt;br /&gt;
|-&lt;br /&gt;
| 0x315B || 347 || 24 || Failed to unmap code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x335B || 347 || 25 || Failed to unmap code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x355B || 347 || 26 || Failed to unmap code memory (.data+.bss).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FS Error Codes ==&lt;br /&gt;
The following are the error codes recognized by nn::fs::detail::LogErrorMessage found in some [[Factory Setup|factory]] titles:&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Description || Message&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 60 || Error: Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 106 || Error: Passed buffer is not usable for fs library.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 1001 || Error: Specified partition is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 1002 || Error: Specified target is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA002 - 0x138602 || 2000 - 2499 || Error: Failed to access SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x136802 - 0x176E02 || 2500 - 2999 || Error: Failed to access game card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 3001 || Error: Specified operation is not implemented.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177A02 || 3005 || Error: Specified value is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B5802 - 0x1F3E02 || 3500 - 3999 || Error: Failed to access MMC.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4202 - 0x219602 || 4001 - 4299 || Error: ROM is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x219A02 - 0x232602 || 4301 - 4499 || Error: Save data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x232A02 - 0x23EE02 || 4501 - 4599 || Error: NCA is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x23F202 - 0x243E02 || 4601 - 4639 || Error: Integrity verification failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x244202 - 0x246602 || 4641 - 4659 || Error: Partition FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x246A02 - 0x248E02 || 4661 - 4679 || Error: Built-in-storage is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249202 - 0x24B602 || 4681 - 4699 || Error: FAT FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24BA02 - 0x24DE02 || 4701 - 4719 || Error: HOST FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4002 - 0x270E02 || 4000, 4300, 4500, 4600, 4640, 4660, 4680, 4700, 4720-4999 || Error: Data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x271002 - 0x2EDE02 || 5000-5999 || Error: Unexpected failure occurred.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE402 - 0x2F1A02 || 6002-6029 || Error: Invalid path was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 6061 || Error: Invalid offset was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5C02 || 6062 || Error: Invalid size was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5E02 || 6063 || Error: Null pointer argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE002 || 6000 || Error: Precondition violation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 - 0x306E02 || 6001-6199 || Error: Invalid argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x307202 || 6201 || Error: OpenMode_AllowAppend is required for implicit extension of file size by WriteFile().&lt;br /&gt;
|-&lt;br /&gt;
| 0x307002 - 0x313602 || 6200, 6202 - 6299 || Error: Invalid operation for the open mode.&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 - 0x31FE02 || 6300-6399 || Error: Unsupported operation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 - 0x32C602 || 6400-6499 || Error: Permission denied.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346402 || 6706 || Error: Enough journal space is not left.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346A02 || 6709 || Error: The open count of files and directories reached the limitation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Fatal Errors =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Description&lt;br /&gt;
|-&lt;br /&gt;
| 2162-0002&lt;br /&gt;
| Can be triggered by running [[SVC|svcBreak]]. The svcBreak params have no effect on the value of the thrown error-code.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0000&lt;br /&gt;
| Userland ARM undefined instruction exception&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0001&lt;br /&gt;
| Userland ARM prefetch-abort due to PC set to non-executable region&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0002&lt;br /&gt;
| Userland ARM data abort. Also caused by abnormal process termination via [[SVC|svcExitProcess]]. Note: directly jumping to nnMain()-retaddr from non-main-thread has the same result.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0003&lt;br /&gt;
| Userland PC address not aligned to 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0008&lt;br /&gt;
| Can occur when attempting to call an svc outside the whitelist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Support Errors =&lt;br /&gt;
This section is for Support Errors displayed by the error-applet, separate from the normal Result errors.&lt;br /&gt;
&lt;br /&gt;
== Support Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [[Internet_Browser|General web-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 809 || [[Internet_Browser|WifiWebAuthApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [[Internet_Browser|Whitelisted-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 811 || [[Internet_Browser|ShopN]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
8XX is for/includes system applets.&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| {web-applets listed above}&lt;br /&gt;
| 2750&lt;br /&gt;
| MP4 parsing failed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Normal error-codes displayed by the system also use the same format as fatal-errors.&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=6991</id>
		<title>Error codes</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=6991"/>
		<updated>2019-06-09T13:31:23Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* Error codes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Structure =&lt;br /&gt;
These have been redesigned from the 3DS so that they fit within a Aarch64 MOV instruction immediate most of the time (without requiring the additional MOVK).&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Bits || Field&lt;br /&gt;
|-&lt;br /&gt;
| 8-0 || Module&lt;br /&gt;
|-&lt;br /&gt;
| 21-9 || Description&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When a fatal-error is received the error code is outputted using the following formatter:&lt;br /&gt;
  %04d-%04d&lt;br /&gt;
&lt;br /&gt;
.. where the first code is &amp;lt;code&amp;gt;2000 + Module&amp;lt;/code&amp;gt;, and the other being &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;. Bits &amp;gt;=22 from the error-code are unused when displaying fatal-errors, since the Description ends with bit21.&lt;br /&gt;
&lt;br /&gt;
= Modules =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Kernel&lt;br /&gt;
|-&lt;br /&gt;
| 2 || FS&lt;br /&gt;
|-&lt;br /&gt;
| 3 || OS (Memory, Thread, Mutex, NVIDIA)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || HTCS&lt;br /&gt;
|-&lt;br /&gt;
| 5 || NCM&lt;br /&gt;
|-&lt;br /&gt;
| 6 || DD&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Debug Monitor&lt;br /&gt;
|-&lt;br /&gt;
| 8 || LR&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Loader&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CMIF (IPC command interface)&lt;br /&gt;
|-&lt;br /&gt;
| 11 || HIPC (IPC)&lt;br /&gt;
|-&lt;br /&gt;
| 15 || PM&lt;br /&gt;
|-&lt;br /&gt;
| 16 || NS&lt;br /&gt;
|-&lt;br /&gt;
| 17 || Sockets&lt;br /&gt;
|-&lt;br /&gt;
| 18 || HTC&lt;br /&gt;
|-&lt;br /&gt;
| 20 || NCM Content&lt;br /&gt;
|-&lt;br /&gt;
| 21 || SM&lt;br /&gt;
|-&lt;br /&gt;
| 22 || RO userland&lt;br /&gt;
|-&lt;br /&gt;
| 24 || SDMMC&lt;br /&gt;
|-&lt;br /&gt;
| 25 || OVLN&lt;br /&gt;
|-&lt;br /&gt;
| 26 || SPL&lt;br /&gt;
|-&lt;br /&gt;
| 30 || Bus&lt;br /&gt;
|-&lt;br /&gt;
| 100 || ETHC&lt;br /&gt;
|-&lt;br /&gt;
| 101 || I2C&lt;br /&gt;
|-&lt;br /&gt;
| 102 || GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 103 || UART&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Settings&lt;br /&gt;
|-&lt;br /&gt;
| 107 || WLAN&lt;br /&gt;
|-&lt;br /&gt;
| 108 || XCD&lt;br /&gt;
|-&lt;br /&gt;
| 110 || NIFM&lt;br /&gt;
|-&lt;br /&gt;
| 111 || Hwopus&lt;br /&gt;
|-&lt;br /&gt;
| 113 || Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
| 114 || VI&lt;br /&gt;
|-&lt;br /&gt;
| 115 || NFP&lt;br /&gt;
|-&lt;br /&gt;
| 116 || Time&lt;br /&gt;
|-&lt;br /&gt;
| 117 || FGM&lt;br /&gt;
|-&lt;br /&gt;
| 118 || OE&lt;br /&gt;
|-&lt;br /&gt;
| 120 || PCIe&lt;br /&gt;
|-&lt;br /&gt;
| 121 || Friends&lt;br /&gt;
|-&lt;br /&gt;
| 122 || BCAT&lt;br /&gt;
|-&lt;br /&gt;
| 123 || SSL&lt;br /&gt;
|-&lt;br /&gt;
| 124 || Account&lt;br /&gt;
|-&lt;br /&gt;
| 125 || News&lt;br /&gt;
|-&lt;br /&gt;
| 126 || Mii&lt;br /&gt;
|-&lt;br /&gt;
| 127 || NFC&lt;br /&gt;
|-&lt;br /&gt;
| 128 || AM&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Play Report&lt;br /&gt;
|-&lt;br /&gt;
| 130 || AHID&lt;br /&gt;
|-&lt;br /&gt;
| 132 || Home Menu (Qlaunch)&lt;br /&gt;
|-&lt;br /&gt;
| 133 || PCV&lt;br /&gt;
|-&lt;br /&gt;
| 134 || OMM&lt;br /&gt;
|-&lt;br /&gt;
| 135 || BPC&lt;br /&gt;
|-&lt;br /&gt;
| 136 || PSM&lt;br /&gt;
|-&lt;br /&gt;
| 137 || NIM&lt;br /&gt;
|-&lt;br /&gt;
| 138 || PSC&lt;br /&gt;
|-&lt;br /&gt;
| 139 || TC&lt;br /&gt;
|-&lt;br /&gt;
| 140 || USB&lt;br /&gt;
|-&lt;br /&gt;
| 141 || NSD&lt;br /&gt;
|-&lt;br /&gt;
| 142 || PCTL&lt;br /&gt;
|-&lt;br /&gt;
| 143 || BTM&lt;br /&gt;
|-&lt;br /&gt;
| 144 || LA (Library Applet)&lt;br /&gt;
|-&lt;br /&gt;
| 145 || ETicket&lt;br /&gt;
|-&lt;br /&gt;
| 146 || NGC (Bad Words)&lt;br /&gt;
|-&lt;br /&gt;
| 147 || Error Report&lt;br /&gt;
|-&lt;br /&gt;
| 148 || APM&lt;br /&gt;
|-&lt;br /&gt;
| 149 || CEC&lt;br /&gt;
|-&lt;br /&gt;
| 150 || Profiler&lt;br /&gt;
|-&lt;br /&gt;
| 151 || Error Upload&lt;br /&gt;
|-&lt;br /&gt;
| 153 || Audio&lt;br /&gt;
|-&lt;br /&gt;
| 154 || NPNS&lt;br /&gt;
|-&lt;br /&gt;
| 155 || NPNS HTTP Stream&lt;br /&gt;
|-&lt;br /&gt;
| 157 || ARP&lt;br /&gt;
|-&lt;br /&gt;
| 158 || Updater&lt;br /&gt;
|-&lt;br /&gt;
| 159 || SWKBD&lt;br /&gt;
|-&lt;br /&gt;
| 161 || NFC Mifare&lt;br /&gt;
|-&lt;br /&gt;
| 162 || Userland assert&lt;br /&gt;
|-&lt;br /&gt;
| 163 || Fatal&lt;br /&gt;
|-&lt;br /&gt;
| 164 || NIM Shop&lt;br /&gt;
|-&lt;br /&gt;
| 165 || SPSM&lt;br /&gt;
|-&lt;br /&gt;
| 167 || BGTC&lt;br /&gt;
|-&lt;br /&gt;
| 168 || Userland crash&lt;br /&gt;
|-&lt;br /&gt;
| 178 || PDM&lt;br /&gt;
|-&lt;br /&gt;
| 179 || OLSC&lt;br /&gt;
|-&lt;br /&gt;
| 180 || SREPO&lt;br /&gt;
|-&lt;br /&gt;
| 181 || Dauth&lt;br /&gt;
|-&lt;br /&gt;
| 191 || RTC&lt;br /&gt;
|-&lt;br /&gt;
| 192 || Regulator&lt;br /&gt;
|-&lt;br /&gt;
| 197 || Clkrst&lt;br /&gt;
|-&lt;br /&gt;
| 202 || HID&lt;br /&gt;
|-&lt;br /&gt;
| 203 || LDN&lt;br /&gt;
|-&lt;br /&gt;
| 205 || Irsensor&lt;br /&gt;
|-&lt;br /&gt;
| 206 || Capture&lt;br /&gt;
|-&lt;br /&gt;
| 208 || Manu&lt;br /&gt;
|-&lt;br /&gt;
| 209 || ATK&lt;br /&gt;
|-&lt;br /&gt;
| 210 || Web&lt;br /&gt;
|-&lt;br /&gt;
| 211 ||&lt;br /&gt;
|-&lt;br /&gt;
| 212 || GRC&lt;br /&gt;
|-&lt;br /&gt;
| 216 || Migration&lt;br /&gt;
|-&lt;br /&gt;
| 217 || Migration Idc Server&lt;br /&gt;
|-&lt;br /&gt;
| 345 || libnx&lt;br /&gt;
|-&lt;br /&gt;
| 346 || [[Homebrew ABI]]&lt;br /&gt;
|-&lt;br /&gt;
| 347 || Homebrew Loader&lt;br /&gt;
|-&lt;br /&gt;
| 348 || libnx Nvidia errors&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Error codes =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E01 || 1 || 7 || Session count exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C01 || 1 || 14 || Invalid kernel capability descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x4201 || 1 || 33 || Not Implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x7601 || 1 || 59 || Thread terminated/termination requested&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C01 || 1 || 70 || No more debug events&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA01 || 1 || 101 || Invalid size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC01 || 1 || 102 || Invalid address&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE01 || 1 || 103 || Resource exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD001 || 1 || 104 || Memory exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD201 || 1 || 105 || Handle-table exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 1 || 106 || Invalid memory state / invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD801 || 1 || 108 || Invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC01 || 1 || 110 || Invalid memory range&lt;br /&gt;
|-&lt;br /&gt;
| 0xE001 || 1 || 112 || Invalid thread priority.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE201 || 1 || 113 || Invalid processor id.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE401 || 1 || 114 || Invalid handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE601 || 1 || 115 || Invalid pointer/Syscall copy from user failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE801 || 1 || 116 || Invalid combination&lt;br /&gt;
|-&lt;br /&gt;
| 0xEA01 || 1 || 117 || Time out. Also when you give 0 handles to svcWaitSynchronizationN.&lt;br /&gt;
|-&lt;br /&gt;
| 0xEC01 || 1 || 118 || Operation canceled&lt;br /&gt;
|-&lt;br /&gt;
| 0xEE01 || 1 || 119 || Out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0xF001 || 1 || 120 || Invalid enum&lt;br /&gt;
|-&lt;br /&gt;
| 0xF201 || 1 || 121 || No such entry&lt;br /&gt;
|-&lt;br /&gt;
| 0xF401 || 1 || 122 || Irq/DeviceAddressSpace/{...} already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xF601 || 1 || 123 || Port remote dead&lt;br /&gt;
|-&lt;br /&gt;
| 0xF801 || 1 || 124 || [Usermode] Unhandled interrupt/exception&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA01 || 1 || 125 || Process already started/Wrong memory permission?&lt;br /&gt;
|-&lt;br /&gt;
| 0xFC01 || 1 || 126 || Reserved value&lt;br /&gt;
|-&lt;br /&gt;
| 0xFE01 || 1 || 127 || Invalid hardware breakpoint&lt;br /&gt;
|-&lt;br /&gt;
| 0x10001 || 1 || 128 || [Usermode] Fatal exception&lt;br /&gt;
|-&lt;br /&gt;
| 0x10201 || 1 || 129 || Last thread didn&#039;t belong to your process&lt;br /&gt;
|-&lt;br /&gt;
| 0x10601 || 1 || 131 || Port closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x10801 || 1 || 132 || Resource limit exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x20801 || 1 || 260 || Command buffer too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x40A01 || 1 || 517 || Invalid process ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40C01 || 1 || 518 || Invalid thread ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40E01 || 1 || 519 || Invalid thread ID (used in svcGetDebugThreadParam).&lt;br /&gt;
|-&lt;br /&gt;
| 0x41001 || 1 || 520 || Process not being debugged&lt;br /&gt;
|-&lt;br /&gt;
| 0x202 || 2 || 1 || Path does not exist.&lt;br /&gt;
|-&lt;br /&gt;
| 0x402 || 2 || 2 || Path already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE02 || 2 || 7 || Resource already in use (file already opened, savedata filesystem already mounted).&lt;br /&gt;
|-&lt;br /&gt;
| 0x4602 || 2 || 35 || Not enough free space for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4802 || 2 || 36 || Not enough free space for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A02 || 2 || 37 || Not enough free space for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C02 || 2 || 38 || Not enough free space for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4E02 || 2 || 39 || Not enough free space on SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6402 || 2 || 50 || NCA is older than version 3, or NCA SDK version is older than 0.11.0.0&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 2 || 60 || The specified [[NCA]]-type doesn&#039;t exist for this title.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 2 || 1001 || Process does not have RomFs &lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 2 || 1002 || Title-id not found / savedata not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA202 || 2 || 2001 || SD card not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13B002 || 2 || 2520 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13DA02 || 2 || 2541 || Version check failed when mounting gamecard sysupdate partition?&lt;br /&gt;
|-&lt;br /&gt;
| 0x171402 || 2 || 2954 || Invalid gamecard handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 2 || 3001 || Unimplemented behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x177602 || 2 || 3003 || File/Directory already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x190202 || 2 || 3201 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190602 || 2 || 3203 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190802 || 2 || 3204 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190A02 || 2 || 3205 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190C02 || 2 || 3206 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x191002 || 2 || 3208 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x195802 || 2 || 3244 || Allocation failure related to SD cards&lt;br /&gt;
|-&lt;br /&gt;
| 0x196002 || 2 || 3248 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x196202 || 2 || 3249 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A3E02 || 2 || 3359 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4002 || 2 || 3360 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4A02 || 2 || 3365 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x21BC02 || 2 || 4318 || Invalid save data filesystem magic (valid magic is SAVE in ASCII)&lt;br /&gt;
|-&lt;br /&gt;
| 0x234202 || 2 || 4513 || Error reading ACID section in NPDM&lt;br /&gt;
|-&lt;br /&gt;
| 0x234402 || 2 || 4514 || Invalid NPDM ACID section size&lt;br /&gt;
|-&lt;br /&gt;
| 0x234602 || 2 || 4515 || Last byte of the ACID modulus is zero&lt;br /&gt;
|-&lt;br /&gt;
| 0x234802 || 2 || 4516 || Invalid ACID fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234A02 || 2 || 4517 || Invalid NCA magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x234C02 || 2 || 4518 || Invalid NCA header fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234E02 || 2 || 4519 || Invalid NCA header ACID signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x235002 || 2 || 4520 || Invalid NCA header section hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x235202 || 2 || 4521 || Invalid NCA Key index&lt;br /&gt;
|-&lt;br /&gt;
| 0x235602 || 2 || 4523 || Invalid encryption type&lt;br /&gt;
|-&lt;br /&gt;
| 0x235802 || 2 || 4524 || Redirection BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235A02 || 2 || 4525 || Encryption BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235C02 || 2 || 4526 || Redirection BKTR table end offset is past the Encryption BKTR table start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x235E02 || 2 || 4527 || NCA-path used with the wrong titleID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x236002 || 2 || 4528 || NCA header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236202 || 2 || 4529 || NCA FS header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236802 || 2 || 4532 || PartitionFS hash block size is not a power of 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236A02 || 2 || 4533 || PartitionFS hash &amp;quot;always_2&amp;quot; field is not 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236C02 || 2 || 4534 || PartitionFS hash table is too small for main data&lt;br /&gt;
|-&lt;br /&gt;
| 0x236E02 || 2 || 4535 || Invalid PartitionFS block hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244402 || 2 || 4642 || Invalid Partition file hashed region bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x244602 || 2 || 4643 || Invalid Partition FS hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244802 || 2 || 4644 || Invalid PFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244A02 || 2 || 4645 || Invalid HFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244C02 || 2 || 4646 || Invalid name offset for Partition FS file entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x244E02 || 2 || 4647 || Calculated Partition FS header size changed between 2 consecutive reads&lt;br /&gt;
|-&lt;br /&gt;
| 0x249802 || 2 || 4684 || Invalid FAT file number.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249C02 || 2 || 4686 || Invalid FAT format for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249E02 || 2 || 4687 || Invalid FAT format for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A002 || 2 || 4688 || Invalid FAT format for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A202 || 2 || 4689 || Invalid FAT format for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x250E02 || 2 || 4743 || [[NAX0|Corrupted]] NAX0 header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x251002 || 2 || 4744 || Invalid [[NAX0]] magicnum.&lt;br /&gt;
|-&lt;br /&gt;
| 0x280202 || 2 || 5121 || Invalid FAT size&lt;br /&gt;
|-&lt;br /&gt;
| 0x280402 || 2 || 5122 || Invalid FAT BPB (BIOS Parameter Block)&lt;br /&gt;
|-&lt;br /&gt;
| 0x280602 || 2 || 5123 || Invalid FAT parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x280802 || 2 || 5124 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280A02 || 2 || 5125 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280C02 || 2 || 5126 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280E02 || 2 || 5127 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x296A02 || 2 || 5301 || Mountpoint not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 || 2 || 6001 || Invalid input&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE602 || 2 || 6003 || Path too long&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE802 || 2 || 6004 || Invalid character.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEA02 || 2 || 6005 || Invalid directory path.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEC02 || 2 || 6006 || Unable to retrieve directory from path&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 2 || 6061 || Offset outside storage&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 || 2 || 6300 || Operation not supported&lt;br /&gt;
|-&lt;br /&gt;
| 0x31AE02 || 2 || 6359 || Operation not supported in nn::fssystem::ConcatenationFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B002 || 2 || 6360 || Operation not supported in nn::fssystem::ConcatenationFile&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 || 2 || 6400 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x326602 || 2 || 6451 || Missing titlekey(?) required to mount content&lt;br /&gt;
|-&lt;br /&gt;
| 0x326E02 || 2 || 6455 || File not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327002 || 2 || 6456 || Directory not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327202 || 2 || 6457 || Writable file not closed when committing&lt;br /&gt;
|-&lt;br /&gt;
| 0x327402 || 2 || 6458 || FS allocators already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x327602 || 2 || 6459 || FS allocators already used&lt;br /&gt;
|-&lt;br /&gt;
| 0x327A02 || 2 || 6461 || FS allocator alignment violation&lt;br /&gt;
|-&lt;br /&gt;
| 0x339402 || 2 || 6602 || File not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x339602 || 2 || 6603 || Directory not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBC02 || 2 || 7902 || RomFs table: Entry not found in dictionary&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBE02 || 2 || 7903 || RomFs table: File not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC002 || 2 || 7904 || RomFs table: Directory not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC402 || 2 || 7906 || RomFs table: Entry already exists when trying to add a new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC602 || 2 || 7907 || RomFs table: Insufficient space to add new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC802 || 2 || 7908 || RomFs table: Unable to add new directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCA02 || 2 || 7909 || RomFs table: Unable to add new file&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCC02 || 2 || 7910 || RomFs directory has no more child directories/files when iterating&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DD402 || 2 || 7914 || RomFs table: Path is file, not directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x803 || 3 || 4 || OS busy&lt;br /&gt;
|-&lt;br /&gt;
| 0xE03 || 3 || 7 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x1003 || 3 || 8 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1203 || 3 || 9 || Out of resources&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EA03 || 3 || 501 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE03 || 3 || 503 || Invalid memory mirror&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FE03 || 3 || 1023 || TLS slot is not allocated&lt;br /&gt;
|-&lt;br /&gt;
| 0xA05 || 5 || 5 || [[Content_Manager_services|NcaID]] not found. Returned when attempting to mount titles which exist that aren&#039;t *8XX titles, the same way *8XX titles are mounted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE05 || 5 || 7 || TitleId not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1805 || 5 || 12 || Invalid StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC05 || 5 || 110 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x17C05 || 5 || 190 || Gamecard not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F405 || 5 || 250 || Sdcard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x20805 || 5 || 260 || Storage not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0x806 || 6 || 4 || Converted from error 0xD401&lt;br /&gt;
|-&lt;br /&gt;
| 0x1006 || 6 || 8 || Converted from error 0xE401&lt;br /&gt;
|-&lt;br /&gt;
| 0x408 || 8 || 2 || Program location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x608 || 8 || 3 || Invalid context for control location&lt;br /&gt;
|-&lt;br /&gt;
| 0x808 || 8 || 4 || Storage not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA08 || 8 || 5 || Access denied&lt;br /&gt;
|-&lt;br /&gt;
| 0xC08 || 8 || 6 || Offline manual HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xE08 || 8 || 7 || Title is not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1008 || 8 || 8 || Control location entry for host not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1208 || 8 || 9 || Legal info HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1408 || 8 || 10 || Program location for debug entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x209 || 9 || 1 || Args too long.&lt;br /&gt;
|-&lt;br /&gt;
| 0x409 || 9 || 2 || Maximum processes loaded.&lt;br /&gt;
|-&lt;br /&gt;
| 0x609 || 9 || 3 || NPDM too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x19009 || 9 || 200 || Invalid access control sizes in NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x809 || 9 || 4 || Invalid NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0xA09 || 9 || 5 || Invalid files.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE09 || 9 || 7 || Already registered.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1009 || 9 || 8 || Title not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1209 || 9 || 9 || Title-id in ACI0 doesn&#039;t match range in ACID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6609 || 9 || 51 || Invalid memory state/permission&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A09 || 9 || 53 || Invalid NRR&lt;br /&gt;
|-&lt;br /&gt;
| 0xA209 || 9 || 81 || Unaligned NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xA409 || 9 || 82 || Bad NRR size&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA09 || 9 || 85 || Bad NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xAE09 || 9 || 87 || Bad initialization&lt;br /&gt;
|-&lt;br /&gt;
| 0xC809 || 9 || 100 || Unknown ACI0 descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE09 || 9 || 103 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD009 || 9 || 104 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;SyscallMask&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD409 || 9 || 106 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapIoOrNormalRange&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD609 || 9 || 107 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapNormalPage&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xDE09 || 9 || 111 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;InterruptPair&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE209 || 9 || 113 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;ApplicationType&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE409 || 9 || 114 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelReleaseVersion&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE609 || 9 || 115 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;HandleTableSize&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE809 || 9 || 116 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;DebugFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x1940A || 10 || 202 || Invalid CMIF header size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A60A || 10 || 211 || Invalid CMIF input header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A80A || 10 || 212 || Invalid CMIF output header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA0A || 10 || 221 || Invalid method dispatch ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D60A || 10 || 235 || Invalid in object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D80A || 10 || 236 || Invalid out object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0A || 10 || 301 || Out of domain entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20B || 11 || 1 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC0B || 11 || 102 || Out of server session memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x11A0B || 11 || 141 || Went past maximum during marshalling.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1900B || 11 || 200 || Session doesn&#039;t support domains.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0B || 11 || 301 || Remote process is dead.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3260B || 11 || 403 || Unknown request type&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D60B || 11 || 491 || IPC Query 1 failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20F || 15 || 1 || Pid not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x60F || 15 || 3 || Process has no pending events&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0F || 15 || 5 || Application already running&lt;br /&gt;
|-&lt;br /&gt;
| 0x410 || 16 || 2 || Title-id not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xF010 || 16 || 120 || Gamecard sysupdate not required&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F610 || 16 || 251 || Unexpected StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0x215 || 21 || 1 || Out of processes&lt;br /&gt;
|-&lt;br /&gt;
| 0x415 || 21 || 2 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x615 || 21 || 3 || Max sessions&lt;br /&gt;
|-&lt;br /&gt;
| 0x815 || 21 || 4 || Service already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xA15 || 21 || 5 || Out of services&lt;br /&gt;
|-&lt;br /&gt;
| 0xC15 || 21 || 6 || Invalid name (all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0xE15 || 21 || 7 || Service not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1015 || 21 || 8 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x1215 || 21 || 9 || Service Access Control too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x416 || 22 || 2 || Address space is full&lt;br /&gt;
|-&lt;br /&gt;
| 0x616 || 22 || 3 || NRO already loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x816 || 22 || 4 || Invalid NRO header values&lt;br /&gt;
|-&lt;br /&gt;
| 0xC16 || 22 || 6 || Bad NRR magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x1016 || 22 || 8 || Reached max NRR count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1216 || 22 || 9 || Unable to verify NRO hash or NRR signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x80216 || 22 || 1025 || Address not page-aligned&lt;br /&gt;
|-&lt;br /&gt;
| 0x80416 || 22 || 1026 || Incorrect NRO size&lt;br /&gt;
|-&lt;br /&gt;
| 0x80816 || 22 || 1028 || NRO not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80A16 || 22 || 1029 || NRR not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80C16 || 22 || 1030 || Already initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E16 || 22 || 1031 || Not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x21A || 26 || 1 || SMC is not implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x41A || 26 || 2 || SMC argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A || 26 || 3 || SMC is currently in progress/secmon is busy&lt;br /&gt;
|-&lt;br /&gt;
| 0x81A || 26 || 4 || Secmon not currently performing async operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xA1A || 26 || 5 || Invalid SMC async callback key&lt;br /&gt;
|-&lt;br /&gt;
| 0xC1A || 26 || 6 || SMC is blacklisted during current boot&lt;br /&gt;
|-&lt;br /&gt;
| 0xC81A || 26 || 100 || Invalid (buffer) size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Unknown SMC error&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Decryption failure&lt;br /&gt;
|-&lt;br /&gt;
| 0xD01A || 26 || 104 || No AES keyslots available&lt;br /&gt;
|-&lt;br /&gt;
| 0xD21A || 26 || 105 || Invalid AES keyslot&lt;br /&gt;
|-&lt;br /&gt;
| 0xD41A || 26 || 106 || BootReason already set&lt;br /&gt;
|-&lt;br /&gt;
| 0xD61A || 26 || 107 || BootReason not set&lt;br /&gt;
|-&lt;br /&gt;
| 0xD81A || 26 || 108 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x19269 || 105 || 201 || Null settings name&lt;br /&gt;
|-&lt;br /&gt;
| 0x19469 || 105 || 202 || Null settings key&lt;br /&gt;
|-&lt;br /&gt;
| 0x19669 || 105 || 203 || Null settings value&lt;br /&gt;
|-&lt;br /&gt;
| 0x19A69 || 105 || 205 || Null settings value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A069 || 105 || 208 || Null setting value size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A269 || 105 || 209 || Null debug mode flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA69 || 105 || 221 || Setting group name has zero length&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BC69 || 105 || 222 || Empty settings item key&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E269 || 105 || 241 || Setting group name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E469 || 105 || 242 || Setting name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x20A69 || 105 || 261 || Setting group name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x20C69 || 105 || 262 || Setting name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x4DA69 || 105 || 621 || Null language code buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4EE69 || 105 || 631 || Null network settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4F069 || 105 || 632 || Null network settings output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x50269 || 105 || 641 || Null backlight settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51669 || 105 || 651 || Null Bluetooth device setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51869 || 105 || 652 || Null Bluetooth device setting output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51A69 || 105 || 653 || Null Bluetooth enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51C69 || 105 || 654 || Null Bluetooth AFH enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51E69 || 105 || 655 || Null Bluetooth boost enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52069 || 105 || 656 || Null BLE pairing settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52269 || 105 || 657 || Null BLE pairing settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52A69 || 105 || 661 || Null external steady clock source ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52C69 || 105 || 662 || Null user system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52E69 || 105 || 663 || Null network system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53069 || 105 || 664 || Null user system clock automatic correction enabled flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53269 || 105 || 665 || Null shutdown RTC value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53469 || 105 || 666 || Null external steady clock internal offset buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53E69 || 105 || 671 || Null account settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55269 || 105 || 681 || Null audio volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55669 || 105 || 683 || Null ForceMuteOnHeadphoneRemoved buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55869 || 105 || 684 || Null headphone volume warning count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55E69 || 105 || 687 || Invalid audio output mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x56069 || 105 || 688 || Null headphone volume update flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x56669 || 105 || 691 || Null console information upload flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57A69 || 105 || 701 || Null automatic application download flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57C69 || 105 || 702 || Null notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57E69 || 105 || 703 || Null account notification settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58069 || 105 || 704 || Null account notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58E69 || 105 || 711 || Null vibration master volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59069 || 105 || 712 || Null NX controller settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59269 || 105 || 713 || Null NX controller settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59469 || 105 || 714 || Null USB full key enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A269 || 105 || 721 || Null TV settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A469 || 105 || 722 || Null EDID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5B669 || 105 || 731 || Null data deletion settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CA69 || 105 || 741 || Null initial system applet program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CC69 || 105 || 742 || Null overlay disp program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CE69 || 105 || 743 || Null IsInRepairProcess buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5D069 || 105 || 744 || Null RequiresRunRepairTimeReviser buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5DE69 || 105 || 751 || Null device timezone location name buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5F269 || 105 || 761 || Null primary album storage buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60669 || 105 || 771 || Null USB 3.0 enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60869 || 105 || 772 || Null USB Type-C power source circuit version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A69 || 105 || 781 || Null battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x62E69 || 105 || 791 || Null serial number buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64269 || 105 || 801 || Null lock screen flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64669 || 105 || 803 || Null color set ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64869 || 105 || 804 || Null quest flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64A69 || 105 || 805 || Null wireless certification file size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64C69 || 105 || 806 || Null wireless certification file buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64E69 || 105 || 807 || Null initial launch settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65069 || 105 || 808 || Null device nickname buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65269 || 105 || 809 || Null battery percentage flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65469 || 105 || 810 || Null applet launch flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7E869 || 105 || 1012 || Null wireless LAN enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FA69 || 105 || 1021 || Null product model buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E69 || 105 || 1031 || Null NFC enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82269 || 105 || 1041 || Null ECI device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82469 || 105 || 1042 || Null E-Ticket device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x83669 || 105 || 1051 || Null sleep settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84A69 || 105 || 1061 || Null EULA version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84C69 || 105 || 1062 || Null EULA version entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x85E69 || 105 || 1071 || Null LDN channel buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87269 || 105 || 1081 || Null SSL key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87469 || 105 || 1082 || Null SSL certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x88669 || 105 || 1091 || Null telemetry flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89A69 || 105 || 1101 || Null Gamecard key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89C69 || 105 || 1102 || Null Gamecard certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8AE69 || 105 || 1111 || Null PTM battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B069 || 105 || 1112 || Null PTM fuel gauge parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C269 || 105 || 1121 || Null ECI device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C469 || 105 || 1122 || Null E-Ticket device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D669 || 105 || 1131 || Null speaker parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EA69 || 105 || 1141 || Null firmware version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EC69 || 105 || 1142 || Null firmware version digest buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EE69 || 105 || 1143 || Null rebootless system update version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8FE69 || 105 || 1151 || Null Mii author ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x91269 || 105 || 1161 || Null fatal flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x92669 || 105 || 1171 || Null auto update enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x93A69 || 105 || 1181 || Null external RTC reset flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x94E69 || 105 || 1191 || Null push notification activity mode buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x96269 || 105 || 1201 || Null service discovery control setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x97669 || 105 || 1211 || Null error report share permission buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x98A69 || 105 || 1221 || Null LCD vendor ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x99E69 || 105 || 1231 || Null console SixAxis sensor acceleration bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A069 || 105 || 1232 || Null console SixAxis sensor angular velocity bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A269 || 105 || 1233 || Null console SixAxis sensor acceleration gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A469 || 105 || 1234 || Null console SixAxis sensor angular velocity gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A669 || 105 || 1235 || Null console SixAxis sensor angular velocity time bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A869 || 105 || 1236 || Null console SixAxis sensor angular acceleration buffer &lt;br /&gt;
|-&lt;br /&gt;
| 0x9B269 || 105 || 1241 || Null keyboard layout buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9BA69 || 105 || 1245 || Invalid keyboard layout&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C669 || 105 || 1251 || Null web inspector flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C869 || 105 || 1252 || Null allowed SSL hosts buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CA69 || 105 || 1253 || Null allowed SSL hosts entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CC69 || 105 || 1254 || Null host FS mount point buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9EE69 || 105 || 1271 || Null Amiibo key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F069 || 105 || 1272 || Null Amiibo ECQV certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F269 || 105 || 1273 || Null Amiibo ECDSA certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F469 || 105 || 1274 || Null Amiibo ECQV BLS key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F669 || 105 || 1275 || Null Amiibo ECQV BLS certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F869 || 105 || 1276 || Null Amiibo ECQV BLS root certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x272 || 114 || 1 || Generic error&lt;br /&gt;
|-&lt;br /&gt;
| 0xC72 || 114 || 6 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || 116 || 0 || Time service not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC74 || 116 || 102 || Time not set&lt;br /&gt;
|-&lt;br /&gt;
| 0x19074 || 116 || 200 || Invalid time comparison&lt;br /&gt;
|-&lt;br /&gt;
| 0x19274 || 116 || 201 || Signed overflow/underflow&lt;br /&gt;
|-&lt;br /&gt;
| 0x64274 || 116 || 801 || Memory allocation failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x70A74 || 116 || 901 || Null pointer&lt;br /&gt;
|-&lt;br /&gt;
| 0x70C74 || 116 || 902 || Value out of valid range&lt;br /&gt;
|-&lt;br /&gt;
| 0x70E74 || 116 || 903 || TimeZoneRule conversion failed&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BA74 || 116 || 989 || TimeZone location name not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BC74 || 116 || 990 || Unimplemented functionality&lt;br /&gt;
|-&lt;br /&gt;
| 0x27A || 122 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x47A || 122 || 2 || Object not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x67A || 122 || 3 || Object locked/in used&lt;br /&gt;
|-&lt;br /&gt;
| 0x87A || 122 || 4 || Target already mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0xA7A || 122 || 5 || Target not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0xC7A || 122 || 6 || Object already opened&lt;br /&gt;
|-&lt;br /&gt;
| 0xE7A || 122 || 7 || Object not opened&lt;br /&gt;
|-&lt;br /&gt;
| 0xA07A || 122 || 80 || Passphrase not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA27A || 122 || 81 || Data verification failed&lt;br /&gt;
|-&lt;br /&gt;
| 0xB47A || 122 || 90 || Invalid API call&lt;br /&gt;
|-&lt;br /&gt;
| 0xC47A || 122 || 98 || Invalid operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x287C || 124 || 20 || Argument is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C7C || 124 || 22 || Argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C7C || 124 || 30 || Bad input buffer size&lt;br /&gt;
|-&lt;br /&gt;
| 0x407C || 124 || 32 || Invalid input buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x27E || 126 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x87E || 126 || 4 || Entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE7E || 126 || 67 || Invalid database signature value (should be &amp;quot;NFDB&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0xD27E || 126 || 69 || Invalid database entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1987E || 126 || 204 || Development/debug-only behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x480 || 128 || 2 || IStorage not available.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4680 || 128 || 35 || Error while launching applet.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A80 || 128 || 37 || Title-ID not found. Caused by code 0x410 when applet launch fails&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E880 || 128 || 500 || Invalid IStorage size (negative?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EC80 || 128 || 502 || IStorage has already been opened by another accessor&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE80 || 128 || 503 || IStorage Read/Write out-of-bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x3FE80 || 128 || 511 || IStorage opened as wrong type (data opened as transfermem, transfermem opened as data)&lt;br /&gt;
|-&lt;br /&gt;
| 0x40080 || 128 || 512 || Unbalanced fatal section leave (returned when executing LeaveFatalSection without a preceding EnterFatalSection call)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B080 || 128 || 600 || Failed to allocate memory for IStorage&lt;br /&gt;
|-&lt;br /&gt;
| 0x59080 || 128 || 712 || Thread stack pool exhausted (out of memory)&lt;br /&gt;
|-&lt;br /&gt;
| 0x7A880 || 128 || 980 || &amp;lt;code&amp;gt;am.debug!dev_function&amp;lt;/code&amp;gt; setting needs to be set&lt;br /&gt;
|-&lt;br /&gt;
| 0xA83 || 131 || 5 || Unrecognized applet ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x485 || 133 || 2 || Invalid DVFS table ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x885 || 133 || 4 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x3CF089 || 137 || 7800 || Unknown/invalid libcurl error.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E8289-0x3F4089 || 137 || 8001-8096 || libcurl error 1-96. Some of the libcurl errors in the error-table map to the above unknown-libcurl-error however.&lt;br /&gt;
|-&lt;br /&gt;
| 0x68A || 138 || 3 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x668C || 140 || 51 || USB data-transfer in progress&lt;br /&gt;
|-&lt;br /&gt;
| 0xD48C || 140 || 106 || Invalid descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x1928C || 140 || 201 || USB device not bound / interface already enabled&lt;br /&gt;
|-&lt;br /&gt;
| 0x290 || 144 || 1 || Exited Abnormally ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Abormal)&lt;br /&gt;
|-&lt;br /&gt;
| 0x690 || 144 || 3 || Canceled ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Canceled)&lt;br /&gt;
|-&lt;br /&gt;
| 0x890 || 144 || 4 || Rejected&lt;br /&gt;
|-&lt;br /&gt;
| 0xA90 || 144 || 5 || Exited Unexpectedly ([[Applet_Manager_services#LibraryAppletExitReason|ExitReason]] == Unexpected)&lt;br /&gt;
|-&lt;br /&gt;
| 0x299 || 153 || 1 || Invalid audio device&lt;br /&gt;
|-&lt;br /&gt;
| 0x499 || 153 || 2 || Operation couldn&#039;t complete successfully&lt;br /&gt;
|-&lt;br /&gt;
| 0x699 || 153 || 3 || Invalid sample rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x899 || 153 || 4 || Buffer size too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x1099 || 153 || 8 || Too many buffers are still unreleased&lt;br /&gt;
|-&lt;br /&gt;
| 0x1499 || 153 || 10 || Invalid channel count&lt;br /&gt;
|-&lt;br /&gt;
| 0x40299 || 153 || 513 || Invalid/Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0099 || 153 || 1536 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0899 || 153 || 1540 || Audio output was already started&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C9D || 157 || 30 || Address is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E9D || 157 || 31 || PID is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x549D || 157 || 42 || Already bound&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC9D || 157 || 102 || Invalid PID&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA3 || 163 ||  5 || System is booting up repair process without VOL+ held down.&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA3 || 163 || 6 || System is booting up repair process that requires RepairTimeReviser but does not have special cartridge inserted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8B2 || 178 || 100 || Invalid user ID&lt;br /&gt;
|-&lt;br /&gt;
| 0xCAB2 || 178 || 101 || User does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 0x12CB2 || 178 || 150 || Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| 0x190B2 || 178 || 200 || File storage failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x58ACA || 202 || 709 || Npad ID is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF0CD || 205 || 120 || IR image data not available/ready.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A8CD || 205 || 212 || IR camera handle pointer is null.&lt;br /&gt;
|-&lt;br /&gt;
| 0x198CD || 205 || 204 || IR camera invalid handle value.&lt;br /&gt;
|-&lt;br /&gt;
| 0x35B || 347 || 1 || Failed to init SM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x55B || 347 || 2 || Failed to init FS.&lt;br /&gt;
|-&lt;br /&gt;
| 0x75B || 347 || 3 || Failed to open NRO file. May also happen when SD card isn&#039;t inserted / SD mounting failed earlier.&lt;br /&gt;
|-&lt;br /&gt;
| 0x95B || 347 || 4 || Failed to read NRO header.&lt;br /&gt;
|-&lt;br /&gt;
| 0xB5B || 347 || 5 || Invalid NRO magic.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD5B || 347 || 6 || Invalid NRO segments.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF5B || 347 || 7 || Failed to read NRO.&lt;br /&gt;
|-&lt;br /&gt;
| 0x135B || 347 || 9 || Failed to allocate heap.&lt;br /&gt;
|-&lt;br /&gt;
| 0x255B || 347 || 18 || Failed to map code-binary memory.&lt;br /&gt;
|-&lt;br /&gt;
| 0x275B || 347 || 19 || Failed to map code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x295B || 347 || 20 || Failed to map code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B5B || 347 || 21 || Failed to map code memory (.data+.bss).&lt;br /&gt;
|-&lt;br /&gt;
| 0x315B || 347 || 24 || Failed to unmap code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x335B || 347 || 25 || Failed to unmap code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x355B || 347 || 26 || Failed to unmap code memory (.data+.bss).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FS Error Codes ==&lt;br /&gt;
The following are the error codes recognized by nn::fs::detail::LogErrorMessage found in some [[Factory Setup|factory]] titles:&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Description || Message&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 60 || Error: Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 106 || Error: Passed buffer is not usable for fs library.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 1001 || Error: Specified partition is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 1002 || Error: Specified target is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA002 - 0x138602 || 2000 - 2499 || Error: Failed to access SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x136802 - 0x176E02 || 2500 - 2999 || Error: Failed to access game card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 3001 || Error: Specified operation is not implemented.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177A02 || 3005 || Error: Specified value is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B5802 - 0x1F3E02 || 3500 - 3999 || Error: Failed to access MMC.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4202 - 0x219602 || 4001 - 4299 || Error: ROM is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x219A02 - 0x232602 || 4301 - 4499 || Error: Save data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x232A02 - 0x23EE02 || 4501 - 4599 || Error: NCA is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x23F202 - 0x243E02 || 4601 - 4639 || Error: Integrity verification failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x244202 - 0x246602 || 4641 - 4659 || Error: Partition FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x246A02 - 0x248E02 || 4661 - 4679 || Error: Built-in-storage is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249202 - 0x24B602 || 4681 - 4699 || Error: FAT FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24BA02 - 0x24DE02 || 4701 - 4719 || Error: HOST FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4002 - 0x270E02 || 4000, 4300, 4500, 4600, 4640, 4660, 4680, 4700, 4720-4999 || Error: Data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x271002 - 0x2EDE02 || 5000-5999 || Error: Unexpected failure occurred.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE402 - 0x2F1A02 || 6002-6029 || Error: Invalid path was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 6061 || Error: Invalid offset was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5C02 || 6062 || Error: Invalid size was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5E02 || 6063 || Error: Null pointer argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE002 || 6000 || Error: Precondition violation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 - 0x306E02 || 6001-6199 || Error: Invalid argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x307202 || 6201 || Error: OpenMode_AllowAppend is required for implicit extension of file size by WriteFile().&lt;br /&gt;
|-&lt;br /&gt;
| 0x307002 - 0x313602 || 6200, 6202 - 6299 || Error: Invalid operation for the open mode.&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 - 0x31FE02 || 6300-6399 || Error: Unsupported operation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 - 0x32C602 || 6400-6499 || Error: Permission denied.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346402 || 6706 || Error: Enough journal space is not left.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346A02 || 6709 || Error: The open count of files and directories reached the limitation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Fatal Errors =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Description&lt;br /&gt;
|-&lt;br /&gt;
| 2162-0002&lt;br /&gt;
| Can be triggered by running [[SVC|svcBreak]]. The svcBreak params have no effect on the value of the thrown error-code.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0000&lt;br /&gt;
| Userland ARM undefined instruction exception&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0001&lt;br /&gt;
| Userland ARM prefetch-abort due to PC set to non-executable region&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0002&lt;br /&gt;
| Userland ARM data abort. Also caused by abnormal process termination via [[SVC|svcExitProcess]]. Note: directly jumping to nnMain()-retaddr from non-main-thread has the same result.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0003&lt;br /&gt;
| Userland PC address not aligned to 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0008&lt;br /&gt;
| Can occur when attempting to call an svc outside the whitelist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Support Errors =&lt;br /&gt;
This section is for Support Errors displayed by the error-applet, separate from the normal Result errors.&lt;br /&gt;
&lt;br /&gt;
== Support Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [[Internet_Browser|General web-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 809 || [[Internet_Browser|WifiWebAuthApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [[Internet_Browser|Whitelisted-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 811 || [[Internet_Browser|ShopN]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
8XX is for/includes system applets.&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| {web-applets listed above}&lt;br /&gt;
| 2750&lt;br /&gt;
| MP4 parsing failed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Normal error-codes displayed by the system also use the same format as fatal-errors.&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=6947</id>
		<title>Filesystem services</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=6947"/>
		<updated>2019-05-24T16:09:26Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* FileSystemType */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= fsp-ldr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxyForLoader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Arguments || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || OpenCodeFileSystem || u64 TitleId + X descriptor [[#ContentPath]] || Returns an [[#IFileSystem]].&lt;br /&gt;
|-&lt;br /&gt;
| 1 || IsArchivedProgram || u64 ProcessId || Returns a bool (1 if the process id&#039;s [[#ContentPath]] ends in &amp;quot;.nca&amp;quot;).&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] SetCurrentProcess || PID descriptor ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= fsp-pr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IProgramRegistry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#RegisterProgram]] ||&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#UnregisterProgram]] ||&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] SetCurrentProcess ||&lt;br /&gt;
|-&lt;br /&gt;
| 256 || [[#SetEnabledProgramVerification]] ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== RegisterProgram ==&lt;br /&gt;
Takes a storageID, a pid, a titleID, a 0x1C type-A buffer for the [[NPDM#FS_Access_Header| FS Access Header]], and a 0x2C type-A buffer for the [[NPDM#FS_Access_Control| FS Access Control]]&lt;br /&gt;
&lt;br /&gt;
Final FS permissions are stored as (ACI0_perms &amp;amp; ACID_perms). Will panic(svcBreak) when buffer sizes from ipc-rawdata are invalid.&lt;br /&gt;
&lt;br /&gt;
== UnregisterProgram ==&lt;br /&gt;
Takes a pid. Removes registered FS permissions for that PID.&lt;br /&gt;
&lt;br /&gt;
== SetEnabledProgramVerification ==&lt;br /&gt;
Seems to sets a global flag to inputval &amp;amp; 1.&lt;br /&gt;
&lt;br /&gt;
When the flag is zero, it will set ret=0 instead of ret={error} when verifying the fixed-key [[NPDM]] ACID signature fails. This also skips verifying the [[NCA_Format|NCA Header]] signature using the ACID key. Note that if verifying the fixed-key ACID signature is successful, and verifying the ACID-key NCA header signature fails, it will throw an error and abort.&lt;br /&gt;
&lt;br /&gt;
= fsp-srv =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxy&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [1.0.0] [[#OpenFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#SetCurrentProcess]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || OpenDataFileSystemByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [2.0.0+] [[#OpenFileSystemWithPatch]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [2.0.0+] [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [3.0.0+] OpenDataFileSystemByApplicationId&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || InvalidateBisCache&lt;br /&gt;
|-&lt;br /&gt;
| 17 || OpenHostFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 18 || OpenSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 19 || [2.0.0+] FormatSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 21 || [[#DeleteSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 22 || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 23 || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 24 || RegisterSaveDataFileSystemAtomicDeletion&lt;br /&gt;
|-&lt;br /&gt;
| 25 || [2.0.0+] DeleteSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 26 || [2.0.0+] FormatSdCardDryRun&lt;br /&gt;
|-&lt;br /&gt;
| 27 || [2.0.0+] IsExFatSupported&lt;br /&gt;
|-&lt;br /&gt;
| 28 || [4.0.0+] DeleteSaveDataFileSystemBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 30 || [[#OpenGameCardStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 31 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [3.0.0+] ExtendSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [5.0.0+] DeleteCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [5.0.0+] GetCacheStorageSize&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] CreateSaveDataFileSystemByHashSalt (Unofficial name, takes a total of 0xB0-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 51 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 52 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 53 || [2.0.0+] OpenReadOnlySaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 57 || [3.0.0+] [[#ReadSaveDataFileSystemExtraDataBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 58 || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 59 || [2.0.0+] WriteSaveDataFileSystemExtraData&lt;br /&gt;
|-&lt;br /&gt;
| 60 || [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 61 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 62 || [5.0.0+] OpenCacheStorageList&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [5.0.0+] OpenSaveDataInternalStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [5.0.0+] UpdateSaveDataMacForDebug&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [5.0.0+] WriteSaveDataFileSystemExtraData2&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] FindSaveDataWithFilter (Takes a total of 0x50-bytes of input, returns 8-bytes of output, and a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] OpenSaveDataIterator (Takes a total of 0x50-bytes of input, returns an #ISaveDataInfoReader)&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [8.0.0+] ReadSaveDataFileSystemExtraDataBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [8.0.0+] WriteSaveDataFileSystemExtraDataBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 80 || OpenSaveDataMetaFile&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [4.0.0+] OpenSaveDataTransferManager (No input, returns an [[#ISaveDataTransferManager]])&lt;br /&gt;
|-&lt;br /&gt;
| 82 || [5.0.0+] OpenSaveDataTransferManagerVersion2 (No input, returns an [[#ISaveDataTransferManagerWithDivision]])&lt;br /&gt;
|-&lt;br /&gt;
| 83 || [6.0.0+] OpenSaveDataTransferProhibiterForCloudBackUp (Takes an input u64, returns an [[#ISaveDataTransferProhibiter]])&lt;br /&gt;
|-&lt;br /&gt;
| 84 || [6.0.0+] ListApplicationAccessibleSaveDataOwnerId (Takes a total of 0x10-bytes of input, returns 4-bytes of output, and a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 100 || OpenImageDirectoryFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 110 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 120 || [6.0.0+] OpenCloudBackupWorkStorageFileSystem (Takes 4-bytes of input, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 130 || [7.0.0+] OpenCustomStorageFileSystem (Takes 4-bytes of input, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 200 || OpenDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 201 || [3.0.0+] OpenDataStorageByProgramId&lt;br /&gt;
|-&lt;br /&gt;
| 202 || [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 203 || OpenPatchDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 204 || [7.0.0+] OpenDataFileSystemByProgramIndex (Takes an input u8, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 205 || [7.0.0+] OpenDataStorageByProgramIndex (Takes an input u8, returns an [[#IStorage]])&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [[#OpenDeviceOperator]]&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 510 || [5.0.0+] OpenSystemDataUpdateEventNotifier&lt;br /&gt;
|-&lt;br /&gt;
| 511 || [5.0.0+] NotifySystemDataUpdateEvent&lt;br /&gt;
|-&lt;br /&gt;
| 520 || [6.0.0+] SimulateGameCardDetectionEvent (Takes a total of 0xC-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 600 || [1.0.0-3.0.2] SetCurrentPosixTime&lt;br /&gt;
|-&lt;br /&gt;
| 601 || QuerySaveDataTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 602 || [[#VerifySaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 603 || CorruptSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 604 || CreatePaddingFile&lt;br /&gt;
|-&lt;br /&gt;
| 605 || DeleteAllPaddingFiles&lt;br /&gt;
|-&lt;br /&gt;
| 606 || [2.0.0+] GetRightsId&lt;br /&gt;
|-&lt;br /&gt;
| 607 || [2.0.0+] RegisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 608 || [2.0.0+] UnregisterAllExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 609 || [2.0.0+] GetRightsIdByPath&lt;br /&gt;
|-&lt;br /&gt;
| 610 || [3.0.0+] GetRightsIdAndKeyGenerationByPath&lt;br /&gt;
|-&lt;br /&gt;
| 611 || [4.0.0+] SetCurrentPosixTimeWithTimeDifference&lt;br /&gt;
|-&lt;br /&gt;
| 612 || [4.0.0+] GetFreeSpaceSizeForSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 613 || [4.0.0+] VerifySaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 614 || [4.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 615 || [5.0.0+] QuerySaveDataInternalStorageTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 616 || [6.0.0+] [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| 617 || [7.0.0+] UnregisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 620 || [2.0.0+] [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| 630 || [4.0.0+] SetSdCardAccessibility&lt;br /&gt;
|-&lt;br /&gt;
| 631 || [4.0.0+] IsSdCardAccessible&lt;br /&gt;
|-&lt;br /&gt;
| 640 || [4.0.0-7.0.1] IsSignedSystemPartitionOnSdCardValid&lt;br /&gt;
|-&lt;br /&gt;
| 700 || [5.0.0+] [[#OpenAccessFailureResolver]]&lt;br /&gt;
|-&lt;br /&gt;
| 701 || [5.0.0+] GetAccessFailureDetectionEvent&lt;br /&gt;
|-&lt;br /&gt;
| 702 || [5.0.0+] IsAccessFailureDetected&lt;br /&gt;
|-&lt;br /&gt;
| 710 || [5.0.0+] ResolveAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 720 || [5.0.0+] AbandonAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [2.0.0+] GetAndClearFileSystemProxyErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [7.0.0+] RegisterProgramIndexMapInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1000 || SetBisRootForHost&lt;br /&gt;
|-&lt;br /&gt;
| 1001 || [[#SetSaveDataSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1002 || [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| 1003 || DisableAutoSaveDataCreation&lt;br /&gt;
|-&lt;br /&gt;
| 1004 || [[#SetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1005 || [[#GetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1006 || [[#OutputAccessLogToSdCard]]&lt;br /&gt;
|-&lt;br /&gt;
| 1007 || [4.0.0+] RegisterUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1008 || [4.0.0+] OpenRegisteredUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1009 || [4.0.0+] GetAndClearMemoryReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1010 || [5.1.0-6.2.0] SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| 1011 || [7.0.0+] OutputAccessLogToSdCard2 (no input, returns two 32-bit values, second is &amp;quot;program_index&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 1100 || [4.0.0+] OverrideSaveDataTransferTokenSignVerificationKey&lt;br /&gt;
|-&lt;br /&gt;
| 1110 || [6.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId2&lt;br /&gt;
|-&lt;br /&gt;
| 1200 || [6.0.0+] OpenMultiCommitManager (No input, returns an output #IMultiCommitManager)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
Every time permissions are checked, the process registration [[#fsp-pr]] is loaded using the session processID. The permission data is populated with data from the [[NPDM]].&lt;br /&gt;
&lt;br /&gt;
If the processID is &amp;lt;= 6 (which happens only for built-in sysmodules), it will use a hardcoded registration data. The default mask in this case is 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
Note that the functions check whether or not at least one bit is set in the mask. This means that, you don&#039;t need to set 0xFFFFFFFFFFFFFFFF to get all permissions: it suffices to set 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
If the code were to request an invalid input type, panic. But this never happens.&lt;br /&gt;
&lt;br /&gt;
=== RwPermissions ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type(s) || Mask || Name || Value || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000801 || CanMountLogo || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000801 || CanMountContentMeta || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000801 || CanMountContentControl || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000801 || CanMountContentManual || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000801 || CanMountContentData || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000801 || CanMountApplicationPackage || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000000000 || CanMountSaveDataStorage || 3 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000800 || CanMountContentStorage || 3 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000001000 || CanMountImageAndVideoStorage || 3 || [[#OpenImageDirectoryFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanMountCloudBackupWorkStorage || 3 || OpenCloudBackupWorkStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000000000&amp;lt;br/&amp;gt;([7.0.0-7.0.1] 0x4000000000000000)&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000084)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountCustomStorage || 3 || OpenCustomStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000084&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000008080) || CanMountBisCalibrationFile || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-6.2.0] 0x8000000000008080) || CanMountBisSafeMode || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000008080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountBisUser || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000008080&amp;lt;br/&amp;gt;([3.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanMountBisSystem || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000010) || CanMountBisSystemProperEncryption || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000200000&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000040020) || CanMountBisSystemProperPartition || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0xC000000000200000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000028) || CanMountSdCard || 3 || [[#OpenSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000000010&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000020) || CanMountGameCard || 3 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0x8000000000040020&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000020) || CanMountDeviceSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x8000000000000028&amp;lt;br/&amp;gt;([3.0.0-6.2.0] 0x8000000000000020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010082) || CanMountSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0x8000000000000020&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanMountOthersSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0x8000000000000020&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanMountOthersSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0x8000000000010082&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010080)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition1Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x8000000000010080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition2Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010080) || CanOpenBisPartitionUserDataRoot || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part1 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part2 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part3 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part4 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part5 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || 0x8000000000010080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000084)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000080) || CanOpenBisPartitionBootConfigAndPackage2Part6 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x8000000000000084&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationBinary || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0x8000000000000084&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationFile || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0x8000000000000080 || CanOpenBisPartitionSafeMode || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanOpenBisPartitionUser || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000100) || CanOpenBisPartitionSystem || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000100008) || CanOpenBisPartitionSystemProperEncryption || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0x8000000000000080&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000400000) || CanOpenBisPartitionSystemProperPartition || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x27 || 0xC000000000200000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000100008) || CanOpenSdCardStorage || ||&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x28 || 0x8000000000000100&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000100008)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000400000) || CanOpenGameCardStorage || 3 || [[#OpenGameCardStorage]], [[#EraseGameCard]] (bit1), [[#WriteToGameCard]] (bit1), [[#GetGameCardErrorInfo]] (bit1), [[#EraseAndWriteParamDirectly]] (bit1), [[#ReadParamDirectly]] (bit1), [[#ForceEraseGameCard]] (bit1) &lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x29 || 0x8000000000100008&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0xC000000000400000)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010000) || CanMountSystemDataPrivate || 1 || [[#OpenFileSystem]], [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0xC000000000400000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000010000)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanMountHost || 3 || [[#OpenHostFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x2B || 0x8000000000010000&amp;lt;br/&amp;gt;([1.0.0-6.2.0]0x8000000000000000) || CanMountRegisteredUpdatePartition || 1 || [[#OpenRegisteredUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] 0x2C || 0x8000000000000000 || CanOpenSaveDataInternalStorage || 3 || [[#OpenSaveDataInternalStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] 0x2D || 0x0000000000000000 || CanNotMountCustomStorage || 3 || OpenCustomStorageFileSystem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BoolPermissions ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type(s) || Mask || Name || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000080 || CanInvalidateBisCache || [[#InvalidateBisCache]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000080 || CanEraseMmc || [[#EraseMmc]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000010 || CanGetGameCardDeviceCertificate || [[#GetGameCardDeviceCertificate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000010 || CanGetGameCardIdSet || [[#GetGameCardIdSet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000200 || CanFinalizeGameCardDriver || [[#FinalizeGameCardDriver]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000200 || CanGetGameCardAsicInfo || [[#GetGameCardAsicInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000002020 || CanCreateSaveData || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000060 || CanDeleteSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000000028 || CanCreateSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000000000020 || CanCreateOthersSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000004028 || CanDeleteSystemSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000060 || CanOpenSaveDataInfoReader || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000004020 || CanOpenSaveDataInfoReaderForSystem || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000000040&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000020000) || CanOpenSaveDataIterator || OpenSaveDataIterator&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000020000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000400) || CanOpenSaveDataMetaFile || [[#OpenSaveDataMetaFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000400&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000004060) || CanSetCurrentPosixTime || [[#SetCurrentPosixTime]], [[#SetCurrentPosixTimeWithTimeDifference]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000004060&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000080000) || CanReadSaveDataFileSystemExtraData || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x8000000000080000 || CanSetGlobalAccessLogMode || [[#SetGlobalAccessMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000080000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] Invalid) || CanSetSpeedEmulationMode || [[#SetSpeedEmulationMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || Invalid&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000800000) || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0xC000000000800000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000001000000) || CanFillBis || [[#CreatePaddingFile]], [[#DeleteAllPaddingFiles]] &lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0xC000000001000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000001000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0xC000000002000000) || CanCorruptSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x16 || 0x8000000001000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000004000000) || CanCorruptSystemSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x17 || 0x8000000000000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0xC000000002000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000008000000) || CanVerifySaveData || [[#VerifySaveDataFileSystem]], [[#VerifySaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x18 || 0xC000000002000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000004000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000010000000) || CanDebugSaveData || [[#CreateSaveDataFileSystem]], [[#OpenSaveDataFileSystem]], [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x19 || 0x8000000004000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000008000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000800) || CanFormatSdCard || [[#FormatSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x1A || 0x8000000008000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000010000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000004020) || CanGetRightsId || [[#GetRightsId]], [[#GetRightsIdAndKeyGenerationByPath]], [[#GetRightsIdByPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1B || 0x8000000010000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000800)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000002020) || CanRegisterExternalKey || [[#RegisterExternalKey]], [[#UnregisterAllExternalKey]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1C || 0x8000000000000800&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000004020)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000028) || CanSetEncryptionSeed || [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1D || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000020000000) || SaveDataExtraData_Write0 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1E || 0x8000000000004020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000002020)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000040000000) || CanWriteSaveDataFileSystemExtraDataFlags || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1F || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000000) || SaveDataExtraData_Write1 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x20 || 0x8000000000000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000020000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000000) || CanWriteSaveDataFileSystemExtraDataAll || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x21 || 0x8000000000002020&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanExtendSaveData || [[#ExtendSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x22 || 0x8000000000000028&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000002) || CanExtendSystemSaveData || [[#ExtendSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x23 || 0x8000000020000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanRegisterUpdatePartition || [[#RegisterUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x24 || 0x8000000040000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanOpenSaveDataTransferManager || [[#OpenSaveDataTransferManager]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x25 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanOpenSaveDataTransferManagerVersion2 || [[#OpenSaveDataTransferManagerVersion2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x26 || 0x8000000200002000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080000110) || CanOpenSaveDataTransferProhibiterForCloudBackUp || [[#OpenSaveDataTransferProhibiterForCloudBackUp]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x27 || 0x8000000240002000 &amp;lt;br/&amp;gt;([6.0.0-7.0.1] 0x8000000200002000)&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000100008) || CanListApplicationAccessibleSaveDataOwnerId || ListApplicationAccessibleSaveDataOwnerId&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x28 || 0x8000000000000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080010000) || CanControlMmcPatrol || [[#SuspendMmcPatrol]], [[#ResumeMmcPatrol]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x29 || 0x8000000000000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOverrideSaveDataTransferTokenSignVerificationKey || [[#OverrideSaveDataTransferTokenSignVerificationKey]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0x8000000080200000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSdCardDetectionEventNotifier || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2B || 0x8000000080000110&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenGameCardDetectionEventNotifier || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2C || 0x8000000000100008&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSystemDataUpdateEventNotifier || [[#OpenSystemDataUpdateEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2D || 0x8000000000010000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanNotifySystemDataUpdateEvent || [[#NotifySystemDataUpdateEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2E || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanOpenAccessFailureDetectionEventNotifier || [[#OpenAccessFailureResolver]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2F || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanGetAccessFailureDetectionEvent || [[#GetAccessFailureDetectionEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.1.0+] 0x30 || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080080000) || CanIsAccessFailureDetected || [[#IsAccessFailureDetected]] &lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x31 || 0x8000000100000000 || CanResolveAccessFailure || [[#ResolveAccessFailure]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x32 || 0x8000000100000000 || CanAbandonAccessFailure || [[#AbandonAccessFailure]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x33 || 0x8000000040000000 || CanQuerySaveDataInternalStorageTotalSize || [[#QuerySaveDataInternalStorageTotalSize]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x34 || 0x8000000200000020 || CanGetSaveDataCommitId || [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x35 || 0x8000000000200000 || CanSetSdCardAccessibility || [[#SetSdCardAccessibility]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x36 || 0x4000000000000000 || CanSimulateGameCardDetectionEvent || SimulateGameCardDetectionEvent, SetSimulationEvent, ClearSimulationEvent&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x37 || 0x8000000000000000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000080000) || CanSetDataStorageRedirectTarget || SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x38 || 0x8000000400000000&amp;lt;br/&amp;gt;([6.0.0-6.2.0] 0x8000000000000000) || || [[#CreateSaveDataFileSystem]], CreateSaveDataFileSystemByHashSalt&lt;br /&gt;
|-&lt;br /&gt;
| [8.0.0+] 0x39 || 0x8000000000000010 || CanChallengeCardExistence || ChallengeCardExistence&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer (ContentPath) and a [[#FileSystemType]] as parameters. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
[2.0.0+] This function was removed.&lt;br /&gt;
&lt;br /&gt;
== SetCurrentProcess ==&lt;br /&gt;
Takes a pid-descriptor.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithPatch ==&lt;br /&gt;
Takes an input [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Web-applet loads the [[#FileSystemType]] (which must be &#039;&#039;&#039;ContentManual&#039;&#039;&#039;) from u32_table[inparam].&lt;br /&gt;
&lt;br /&gt;
Note: web-applet strings refer to both this cmd and [[#OpenFileSystemWithId]] as &amp;quot;MountContent&amp;quot;, but official nn_sf_sync symbols use &amp;quot;OpenXX&amp;quot; names.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithId ==&lt;br /&gt;
Takes a type-0x19 input buffer, an [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
The [[#IFileSystem]] must be &#039;&#039;&#039;ContentMeta&#039;&#039;&#039; if the NCA type is 0 (control).&lt;br /&gt;
&lt;br /&gt;
The input buffer is the output string path from [[NS_Services#GetApplicationContentPath|GetApplicationContentPath]].&lt;br /&gt;
&lt;br /&gt;
May return errors when attempting to access NCA-paths for an update-title with a gamecard, when the gamecard isn&#039;t inserted. May return error 0x7D402 in some cases with update-titles. Non-val2 in32 values with NCA-type1 are unusable, even for normal titles.&lt;br /&gt;
&lt;br /&gt;
The official &amp;quot;MountApplicationPackage&amp;quot; func uses this with in64=0 and [[#FileSystemType]] &#039;&#039;&#039;ApplicationPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
After the [[#FileSystemType]] specific permissions are checked, it then gets the func retval for permissions-type 0x25 and func0.&lt;br /&gt;
&lt;br /&gt;
When [[#FileSystemType]] is &#039;&#039;&#039;ContentMeta&#039;&#039;&#039;, it uses in64=0xffffffffffffffff internally, otherwise it checks if in64 is set to 0xffffffffffffffff then throws an error if so. When the in64 used internally is not 0xffffffffffffffff, it&#039;s compared with the NCA titleID, then an error is thrown on mismatch.&lt;br /&gt;
&lt;br /&gt;
== OpenBisFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer string and a u32 [[Flash_Filesystem|Bis partitionID]]. Official user-process code sets instr[0] = 0 normally. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Only partitionIDs for FAT partitions are usable with this, otherwise error 0x2EE202 is returned. Seems to be about the same as [[#OpenBisStorage]] except this mounts the partition filesystem instead of allowing direct access to the partition sectors.&lt;br /&gt;
&lt;br /&gt;
== OpenBisStorage ==&lt;br /&gt;
Takes a u32 partition ID, returns 0x2EE202 for partitions which do not exist, 0x320002 for partitions which cannot be opened and a valid [[#IStorage]] handle otherwise.&lt;br /&gt;
&lt;br /&gt;
== InvalidateBisCache ==&lt;br /&gt;
Seems to invalidate the Bis cache for MBR/GPT after overwriting that data via the OpenBisStorage IStorage. Used by [[SystemInitializer]].&lt;br /&gt;
&lt;br /&gt;
== DeleteSaveDataFileSystem ==&lt;br /&gt;
Takes an input u64.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystem ==&lt;br /&gt;
Takes a 0x40-byte Save-struct entry, a 0x40-byte SaveCreate-struct entry, and a 0x10-byte input struct.&lt;br /&gt;
&lt;br /&gt;
Only the first 0x5-bytes in the 0x10-byte struct are initialized: all-zero when automatically creating savedata during savecommon mount by official user-processes. In the dedicated save-creation code in official user-processes: +0 u32 = 0x40060, +4 u8 = 1.&lt;br /&gt;
&lt;br /&gt;
Creates regular savedata.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes a 0x40-byte Save-struct entry and a 0x40-byte SaveCreate-struct entry.&lt;br /&gt;
&lt;br /&gt;
Creates savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardStorage ==&lt;br /&gt;
Takes two input u32s (gamecard handle, partition ID), and returns an [[#IStorage]] for the [[Gamecard_Format|partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardFileSystem ==&lt;br /&gt;
Takes two input u32s, with the second u32 located at +4 in rawdata after the first u32. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts a [[Gamecard_Partition|gamecard partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystem ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte Save-struct entry. Official user-process code is only known to use value 1 for the u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Permissions aren&#039;t checked until the specified save is successfully found.&lt;br /&gt;
&lt;br /&gt;
Only one process (specifically only one [[#IFileSystem]] session) can mount a given savedata at any given time (this includes SystemSaveData).&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte Save-struct entry. Web-applet only uses value0 for the input u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraDataBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an input u64 saveID, and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraData ==&lt;br /&gt;
Takes an input u64 saveID and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReader ==&lt;br /&gt;
No input, returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReaderBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenContentStorageFileSystem ==&lt;br /&gt;
Takes a [[#ContentStorageId]]. Invalid values return 0x2EE202.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]] with NCA files. The read data from these files is identical to the data read by [[NCM_services#ReadContentIdFile]].&lt;br /&gt;
&lt;br /&gt;
== OpenDataStorageByDataId ==&lt;br /&gt;
Takes a [[#StorageId]] and a TitleID.&lt;br /&gt;
&lt;br /&gt;
Returns a [[IPC_Marshalling#Domain_message|domain object ID]] implementing the [[#IStorage]] interface for data archives.&lt;br /&gt;
&lt;br /&gt;
== OpenDeviceOperator ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IDeviceOperator]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenSdCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== VerifySaveDataFileSystem ==&lt;br /&gt;
Takes an unknown input u64 and a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
The input u64 high-byte must be non-zero, otherwise an [[Error_codes|error]] is returned(0xE02).&lt;br /&gt;
&lt;br /&gt;
== GetSaveDataCommitId ==&lt;br /&gt;
Takes an input u8 and u64, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== SetSdCardEncryptionSeed ==&lt;br /&gt;
Takes in the 0x10 byte SD card encryption seed, and loads it into FS-module state.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]]-module reads the 0x10 bytes from SdCard:/Nintendo/Contents/private, and compares them to the first 0x10 bytes of the ns_appman:/private (in [[Flash_Filesystem#System_Savegames|system savedata]] 0x8000000000000043). If they match, NS calls this command using bytes 0x10-0x20 from ns_appman:/private. The rest of this file (0x1F0 bytes total) is (usually/always?) all-zero (however in some cases the byte at offset 0x20 is value 0x1).&lt;br /&gt;
&lt;br /&gt;
== OpenAccessFailureResolver ==&lt;br /&gt;
Takes 8-bytes of input and returns an [[#IEventNotifier]].&lt;br /&gt;
&lt;br /&gt;
[8.0.0+] Now takes an additional 8-bytes of input.&lt;br /&gt;
&lt;br /&gt;
== SetSaveDataSize ==&lt;br /&gt;
Takes two input u64s &amp;quot;size&amp;quot; and &amp;quot;journal_size&amp;quot;, and writes them to fsp-srv object member variables.&lt;br /&gt;
&lt;br /&gt;
These variables are normally initialized with 32 MiB (0x2000000) and 16 MiB (0x1000000), respectively.&lt;br /&gt;
&lt;br /&gt;
These variables don&#039;t seem to be actually used anywhere else (?)&lt;br /&gt;
&lt;br /&gt;
== SetSaveDataRootPath ==&lt;br /&gt;
Takes an input path, and does snprintf(&amp;lt;fsp-srv object&amp;gt;-&amp;gt;m_save_data_root_path, FS_MAX_PATH-1, &amp;quot;/%s&amp;quot;, input_path);&lt;br /&gt;
&lt;br /&gt;
This path is normally all-zero. When this path is non-zero, the internal OpenSaveDataFileSystem function will create a DirectorySaveDataFileSystem if the target save is a user-save + a directory exists, instead of the normal savedata filesystem object.&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== GetGlobalAccessLogMode ==&lt;br /&gt;
Returns an output u32.&lt;br /&gt;
&lt;br /&gt;
GlobalAccessLogMode is normally 0.&lt;br /&gt;
&lt;br /&gt;
== OutputAccessLogToSdCard ==&lt;br /&gt;
Takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
The input buffer is the string to output to the log. User-processes normally include a newline at the end.&lt;br /&gt;
&lt;br /&gt;
User-processes only use this when the value previously loaded from [[#GetGlobalAccessLogMode]] has bit1 set.&lt;br /&gt;
&lt;br /&gt;
When bit1 in GlobalAccessLogMode is clear, FS-module will just return 0 for OutputAccessLogToSdCard. However even with that set the log doesn&#039;t show up SD, unknown why.&lt;br /&gt;
&lt;br /&gt;
The input buffer is written to the &amp;quot;$FsAccessLog:/FsAccessLog.txt&amp;quot; file, where &amp;quot;$FsAccessLog&amp;quot; is the SD-card mount-name. It&#039;s written to the current end of the file(appended).&lt;br /&gt;
&lt;br /&gt;
= IStorage =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IStorage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This is the interface for a raw device, usually a block device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Arguments&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read || Takes a type-0x46 buffer, an offset and length &lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write || Takes a type-0x45 buffer, an offset and length &lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush || None&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize || Takes a size&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize || None&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFileSystem =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystem&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There are two main implementations of this interface:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RomFS&#039;&#039;&#039;: Filesystem implementation statically linked in the binary. Uses an [[#IStorage]] interface as underlying raw device.&lt;br /&gt;
* &#039;&#039;&#039;IPC proxy&#039;&#039;&#039;: Used for all non-RomFS filesystems. In this case, actual filesystem implementation is in the FS process.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || CreateFile&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DeleteFile&lt;br /&gt;
|-&lt;br /&gt;
| 2 || CreateDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeleteDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 4 || DeleteDirectoryRecursively&lt;br /&gt;
|-&lt;br /&gt;
| 5 || RenameFile&lt;br /&gt;
|-&lt;br /&gt;
| 6 || RenameDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [[#GetEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [[#OpenFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [[#OpenDirectory]]&lt;br /&gt;
|-&lt;br /&gt;
| 10 || [[#Commit]]&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#GetFreeSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#GetTotalSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || [3.0.0+] [[#CleanDirectoryRecursively]]&lt;br /&gt;
|-&lt;br /&gt;
| 14 || [3.0.0+] [[#GetFileTimeStampRaw]]&lt;br /&gt;
|-&lt;br /&gt;
| 15 || [4.0.0+] QueryEntry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetEntryType ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns [[#DirectoryEntryType]] as an output u32.&lt;br /&gt;
&lt;br /&gt;
== OpenFile ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path, and an u32 &#039;&#039;&#039;mode&#039;&#039;&#039;. &#039;&#039;&#039;mode&#039;&#039;&#039; controls how the file is opened, based on which bits are set:&lt;br /&gt;
&lt;br /&gt;
* When bit 0 is set, the file is Readable: you can use the Read operation.&lt;br /&gt;
* When bit 1 is set, the file is Writable: you can use the Write operation.&lt;br /&gt;
* When bit 2 is set, the file is Appendable: unless this bit is set, you will not be able to write beyond the end of a file (such writes will result in an error 0x307202)&lt;br /&gt;
&lt;br /&gt;
== OpenDirectory ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and an u64 &#039;&#039;&#039;filter_flags&#039;&#039;&#039;. &#039;&#039;&#039;filter_flags&#039;&#039;&#039; controls what type of entries are read by the [[#IDirectory]]: bitmask 0x1 = directories, bitmask 0x2 = files.&lt;br /&gt;
&lt;br /&gt;
== Commit ==&lt;br /&gt;
Like [https://3dbrew.org/wiki/FS:ControlArchive 3DS], this has to be used after writing to savedata for the changes to take affect.&lt;br /&gt;
&lt;br /&gt;
== GetFreeSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total free space with this FS.&lt;br /&gt;
&lt;br /&gt;
== GetTotalSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total space available with this FS(free+used).&lt;br /&gt;
&lt;br /&gt;
== CleanDirectoryRecursively ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and clears the contents of the directory specified in the path.&lt;br /&gt;
&lt;br /&gt;
== GetFileTimeStampRaw ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path and returns a 0x20-byte struct. This contains 3 u64s and an u8.&lt;br /&gt;
&lt;br /&gt;
= IDirectory =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDirectory&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Read]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetEntryCount]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Read ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64(?) for the total number of read entries, this is 0 when no more entries are available.&lt;br /&gt;
&lt;br /&gt;
The output buffer contains the read array of [[#DirectoryEntry]]. This doesn&#039;t include entries for &amp;quot;.&amp;quot; and &amp;quot;..&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== GetEntryCount ==&lt;br /&gt;
Returns an u64 for the total number of readable entries.&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntry =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x301 || Path&lt;br /&gt;
|-&lt;br /&gt;
| 0x301 || 0x1 || File attributes (bit 0 = is directory; bit 1 = archive bit)&lt;br /&gt;
|-&lt;br /&gt;
| 0x302 || 0x2 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x304 || 0x1 || [[#DirectoryEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x305 || 0x3 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x308 || 0x8 || Filesize, 0 for directories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntryType =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntryType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
An s8 value indicating a directory entry type. The current values are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Directory&lt;br /&gt;
|-&lt;br /&gt;
| 1 || File&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFile =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFile&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataInfoReader =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataInfoReader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#ReadSaveDataInfo]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataInfo ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64 for total output entries. This buffer contains an array of [[#SaveDataInfo]].&lt;br /&gt;
&lt;br /&gt;
This is used to get [[#SaveDataInfo]] for all savedata on the system (or all savedata for the current [[#SaveDataSpaceId]]). When used multiple times, it will resume reading where it left off, until no more entries are available (in that case the out u64 is value 0).&lt;br /&gt;
&lt;br /&gt;
= IDeviceOperator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDeviceOperator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || IsSdCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GetSdCardSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [2.0.0+] GetSdCardCid&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [2.0.0+] GetSdCardUserAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [2.0.0+] GetSdCardProtectedAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [2.0.0+] GetAndClearSdCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 100 || GetMmcCid&lt;br /&gt;
|-&lt;br /&gt;
| 101 || GetMmcSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 110 || EraseMmc&lt;br /&gt;
|-&lt;br /&gt;
| 111 || GetMmcPartitionSize&lt;br /&gt;
|-&lt;br /&gt;
| 112 || [2.0.0+] GetMmcPatrolCount&lt;br /&gt;
|-&lt;br /&gt;
| 113 || [2.0.0+] GetAndClearMmcErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 114 || [2.0.0+] GetMmcExtendedCsd&lt;br /&gt;
|-&lt;br /&gt;
| 115 || [4.0.0+] SuspendMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 116 || [4.0.0+] ResumeMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 200 || IsGameCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 201 || EraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 202 || GetGameCardHandle&lt;br /&gt;
|-&lt;br /&gt;
| 203 || [[#GetGameCardUpdatePartitionInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 204 || FinalizeGameCardDriver&lt;br /&gt;
|-&lt;br /&gt;
| 205 || GetGameCardAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 206 || GetGameCardDeviceCertificate&lt;br /&gt;
|-&lt;br /&gt;
| 207 || GetGameCardAsicInfo&lt;br /&gt;
|-&lt;br /&gt;
| 208 || GetGameCardIdSet&lt;br /&gt;
|-&lt;br /&gt;
| 209 || WriteToGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 210 || SetVerifyWriteEnalbleFlag&lt;br /&gt;
|-&lt;br /&gt;
| 211 || GetGameCardImageHash&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [2.0.0+] GetGameCardDeviceIdForProdCard&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [2.0.0+] EraseAndWriteParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [2.0.0+] ReadParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [2.0.0+] ForceEraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [2.0.0+] GetGameCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [2.1.0+] GetGameCardErrorReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [3.0.0+] GetGameCardDeviceId&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [8.0.0+] ChallengeCardExistence&lt;br /&gt;
|-&lt;br /&gt;
| 300 || SetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 301 || GetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [5.0.0+] SuspendSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 401 || [5.0.0+] ResumeSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 402 || [6.0.0+] GetSdmmcConnectionStatus (Takes a total of 4-bytes of input, returns a total of 8-bytes of output)&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [6.0.0+] SetSimulationEvent (Takes a total of 0x14-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [6.0.0+] ClearSimulationEvent (Takes a total of 4-bytes of input, no output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetGameCardUpdatePartitionInfo ==&lt;br /&gt;
Returns a titleID and the title-version for it.&lt;br /&gt;
&lt;br /&gt;
* Output u32 with ARMS-gamecard: title-version v131162. This is the title-version for [[2.1.0]], which is the sysupdate included with this gamecard. Launch-day gamecards return title-version v450.&lt;br /&gt;
* Output u64 with ARMS-gamecard: titleID 0100000000000816.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]] appears to only use this with [[Content_Manager_services#GetTitleIdInfo]] and [[Content_Manager_services#GetUpdateTitleList]] with storageid=nandsys, for checking whether a sysupdate is required.&lt;br /&gt;
&lt;br /&gt;
= IEventNotifier =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IEventNotifier&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || GetEventHandle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManager =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManager&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetToken]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataImporter]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== SetToken ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64, returns an [[#ISaveDataExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x10-byte userID, and a type-0x5 input buffer. Returns an output u64 and an [[#ISaveDataImporter]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Pull]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#PullInitialData]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataExporter constructor. This is used automatically after [[#OpenSaveDataExporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Pull ==&lt;br /&gt;
Takes a type-0x6 output buffer, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== PullInitialData ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Push]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#Finalize]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataImporter constructor. This is used automatically after [[#OpenSaveDataImporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Push ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== Finalize ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManagerWithDivision =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManagerWithDivision&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetKeySeedPackage]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataFullExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [[#OpenSaveDataDiffExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] [[#OpenSaveDataExporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataFullImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [[#OpenSaveDataDiffImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] [[#OpenSaveDataDuplicateDiffImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] [[#OpenSaveDataImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] [[#OpenSaveDataImporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [6.0.0+] [[#CancelSuspendingImport]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer containing the &#039;&#039;&#039;Challenge&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== SetKeySeedPackage ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer containing the &#039;&#039;&#039;KeySeedPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFullExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFullImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], a 0x10-byte userID, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]], returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDuplicateDiffImporter ==&lt;br /&gt;
Takes an input u8 and an u64, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8, an u8(bool), a 0x10-byte struct, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== CancelSuspendingImport ==&lt;br /&gt;
Takes an input u64 and a 0x10-byte struct, no output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SetDivisionCount (Takes an input u32, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [6.0.0+] GetSaveDataInfo (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || OpenSaveDataDiffChunkIterator (No input, returns an [[#ISaveDataChunkIterator]])&lt;br /&gt;
|-&lt;br /&gt;
| 48 || OpenSaveDataChunkExporter (Takes an input u32, returns an [[#ISaveDataChunkExporter]])&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] FinalizeFullExport (No input, returns two 0x10-byte output structs)&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [6.0.0+] FinalizeDiffExport (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] CancelExport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] SuspendExport (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [6.0.0+] GetKeySeed (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 71 || [6.0.0+] GetInitialDataMac (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 72 || [6.0.0+] FinalizeExport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] GetImportInitialDataAad (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [6.0.0+] SetExportInitialDataAad (Takes an input 0x20-byte struct, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 96 || [6.0.0+] GetReportInfo (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [6.0.0+] GetSaveDataInfo (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || OpenSaveDataDiffChunkIterator (No input, returns an [[#ISaveDataChunkIterator]])&lt;br /&gt;
|-&lt;br /&gt;
| 32 || InitializeImport (No input, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
| 33 || FinalizeImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] CancelImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] GetImportContext (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 36 || [6.0.0+] SuspendImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 48 || OpenSaveDataChunkImporter (Takes an input u32, returns an [[#ISaveDataChunkImporter]])&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] GetImportInitialDataAad (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] GetReportInfo (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkIterator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkIterator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Next (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || IsEnd (No input, returns an output u8)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || GetId (No input, returns an output u32)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Pull (Takes an input u64 and a type-0x6 output buffer, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [6.0.0+] GetRestRawDataSize (No input, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Push (Takes an input u64 and a type-0x5 input buffer, no output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferProhibiter =&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t seem to handle any commands (?).&lt;br /&gt;
&lt;br /&gt;
= IMultiCommitManager =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || ? (Takes an input [[#IFilesystem]], no output)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || ? (No input/output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
= FileSystemType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Code&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Data&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Logo&lt;br /&gt;
|-&lt;br /&gt;
| 3 || ContentControl&lt;br /&gt;
|-&lt;br /&gt;
| 4 || ContentManual&lt;br /&gt;
|-&lt;br /&gt;
| 5 || ContentMeta&lt;br /&gt;
|-&lt;br /&gt;
| 6 || ContentData&lt;br /&gt;
|-&lt;br /&gt;
| 7 || ApplicationPackage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= StorageId =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || None&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GameCard&lt;br /&gt;
|-&lt;br /&gt;
| 3 || NandSystem&lt;br /&gt;
|-&lt;br /&gt;
| 4 || NandUser&lt;br /&gt;
|-&lt;br /&gt;
| 5 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::ContentStorageId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataSpaceId =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataSpaceId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdSystem&lt;br /&gt;
|-&lt;br /&gt;
| 100 || [3.0.0+] ProperSystem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Determines the storage where the savedata is stored.&lt;br /&gt;
&lt;br /&gt;
= SaveDataType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SystemSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SaveData&lt;br /&gt;
|-&lt;br /&gt;
| 2 || BcatDeliveryCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeviceSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [3.0.0+] TemporaryStorage&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [3.0.0+] CacheStorage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ImageDirectoryId =&lt;br /&gt;
This is &amp;quot;nn::fs::ImageDirectoryId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= CloudBackupWorkStorageId =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentPath =&lt;br /&gt;
These are the 0x300 paths to NCA files for the various filesystems FS can access, beginning with @. They&#039;re passed via X descriptors, and returned via various [[Location Resolver services|ncm/lr]] commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Path || Notes&lt;br /&gt;
|-&lt;br /&gt;
| @SystemContent ||&lt;br /&gt;
|- &lt;br /&gt;
| @UserContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @SdCardContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @CalibFile ||&lt;br /&gt;
|-&lt;br /&gt;
| @Safe ||&lt;br /&gt;
|-&lt;br /&gt;
| @User ||&lt;br /&gt;
|-&lt;br /&gt;
| @System ||&lt;br /&gt;
|-&lt;br /&gt;
| @Sdcard ||&lt;br /&gt;
|-&lt;br /&gt;
| @Host ||&lt;br /&gt;
|-&lt;br /&gt;
| @GcApp || Gamecard App partition (Partition 2)&lt;br /&gt;
|-&lt;br /&gt;
| @GcS00000001 || Gamecard Contents.&lt;br /&gt;
|-&lt;br /&gt;
| @upp || Gamecard update partition (Partition 0)&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] @RegUpdate || Registered update partition&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Save Struct =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData. SaveData: 0 can be used for accessing the savedata associated with the current FS session titleID, otherwise when set this is the titleID associated with the savedata to access.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x10&lt;br /&gt;
| userID for user-specific savedata(saveuser) when set, otherwise when zero this indicates the common savedata(savecommon). This is loaded from [[Account_services]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| u64 [[Flash_Filesystem|saveID]]. 0 for SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21&lt;br /&gt;
| 0x1&lt;br /&gt;
| Save data &#039;rank&#039; or &#039;precedence&#039;. 0 if this save data is considered the primary save data. 1 if it&#039;s considered the secondary save data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x22&lt;br /&gt;
| 0x2&lt;br /&gt;
| Save data index&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
For DeviceSaveData, this struct is all-zero except for the [[#SaveDataType]] field.&lt;br /&gt;
&lt;br /&gt;
= SaveCreate Struct =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| [[Savegames|IVFC]] level4 size?&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Same as offset 0x0 normally? Hard-coded to 0x80000 for BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4000 for SystemSaveData/SaveData/DeviceSaveData/BcatSaveData. [[Savegames|IVFC]] level4 block-size in bytes?&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| Official user-processes only uses 0 here for SystemSaveData/SaveData. For the dedicated save-creation code with SaveData/DeviceSaveData, this value comes from an input param with official user-processes. For BcatSaveData, this is the hard-coded [[Title_list|titleID]] of the bcat-sysmodule.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4&lt;br /&gt;
| Written using an input param for official user-processes. Hard-coded 0 for BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x1&lt;br /&gt;
| Official user-processes only uses 0 here for SystemSaveData, 1 for SaveData/DeviceSaveData/BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x1A&lt;br /&gt;
| Not initialized for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
= DeviceSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8, the only difference compared to SaveData is the Save-struct.&lt;br /&gt;
&lt;br /&gt;
= BcatSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8. The Save-struct is the same as DeviceSaveData, except that the titleID field is set to &amp;lt;input titleID&amp;gt;. See above regarding SaveCreate-struct.&lt;br /&gt;
&lt;br /&gt;
The 0x10-byte struct passed to [[#CreateSaveDataFileSystem]] has the first 0x5-bytes set to all-zero.&lt;br /&gt;
&lt;br /&gt;
= SaveDataInfo =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Unknown saveID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA&lt;br /&gt;
| 0x6&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| userID&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x8&lt;br /&gt;
| saveID, 0 for regular SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| Application titleID, for regular SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| Raw saveimage size&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x2&lt;br /&gt;
| Save data index&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A&lt;br /&gt;
| 0x1&lt;br /&gt;
| Save data &#039;rank&#039; or &#039;precedence&#039;. 0 if this save data is considered the primary save data. 1 if it&#039;s considered the secondary save data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B&lt;br /&gt;
| 0x25&lt;br /&gt;
| Unknown. Usually zeros?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a 0x60-byte struct.&lt;br /&gt;
&lt;br /&gt;
= SaveDataFileSystemExtraData =&lt;br /&gt;
This is a 0x200-byte struct. Appears to match [[Savegames#Extra_data]].&lt;br /&gt;
&lt;br /&gt;
= InitialDataVersion2 =&lt;br /&gt;
This is a 0x8210-byte struct used by [[#ISaveDataTransferManagerWithDivision]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=6836</id>
		<title>Error codes</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=6836"/>
		<updated>2019-05-07T20:47:19Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* Error codes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Structure =&lt;br /&gt;
These have been redesigned from the 3DS so that they fit within a Aarch64 MOV instruction immediate most of the time (without requiring the additional MOVK).&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Bits || Field&lt;br /&gt;
|-&lt;br /&gt;
| 8-0 || Module&lt;br /&gt;
|-&lt;br /&gt;
| 21-9 || Description&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When a fatal-error is received the error code is outputted using the following formatter:&lt;br /&gt;
  %04d-%04d&lt;br /&gt;
&lt;br /&gt;
.. where the first code is &amp;lt;code&amp;gt;2000 + Module&amp;lt;/code&amp;gt;, and the other being &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;. Bits &amp;gt;=22 from the error-code are unused when displaying fatal-errors, since the Description ends with bit21.&lt;br /&gt;
&lt;br /&gt;
= Modules =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Kernel&lt;br /&gt;
|-&lt;br /&gt;
| 2 || FS&lt;br /&gt;
|-&lt;br /&gt;
| 3 || OS (Memory, Thread, Mutex, NVIDIA)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || HTCS&lt;br /&gt;
|-&lt;br /&gt;
| 5 || NCM&lt;br /&gt;
|-&lt;br /&gt;
| 6 || DD&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Debug Monitor&lt;br /&gt;
|-&lt;br /&gt;
| 8 || LR&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Loader&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CMIF (IPC command interface)&lt;br /&gt;
|-&lt;br /&gt;
| 11 || HIPC (IPC)&lt;br /&gt;
|-&lt;br /&gt;
| 15 || PM&lt;br /&gt;
|-&lt;br /&gt;
| 16 || NS&lt;br /&gt;
|-&lt;br /&gt;
| 17 || Sockets&lt;br /&gt;
|-&lt;br /&gt;
| 18 || HTC&lt;br /&gt;
|-&lt;br /&gt;
| 20 || NCM Content&lt;br /&gt;
|-&lt;br /&gt;
| 21 || SM&lt;br /&gt;
|-&lt;br /&gt;
| 22 || RO userland&lt;br /&gt;
|-&lt;br /&gt;
| 24 || SDMMC&lt;br /&gt;
|-&lt;br /&gt;
| 25 || OVLN&lt;br /&gt;
|-&lt;br /&gt;
| 26 || SPL&lt;br /&gt;
|-&lt;br /&gt;
| 30 || Bus&lt;br /&gt;
|-&lt;br /&gt;
| 100 || ETHC&lt;br /&gt;
|-&lt;br /&gt;
| 101 || I2C&lt;br /&gt;
|-&lt;br /&gt;
| 102 || GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 103 || UART&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Settings&lt;br /&gt;
|-&lt;br /&gt;
| 107 || WLAN&lt;br /&gt;
|-&lt;br /&gt;
| 108 || XCD&lt;br /&gt;
|-&lt;br /&gt;
| 110 || NIFM&lt;br /&gt;
|-&lt;br /&gt;
| 111 || Hwopus&lt;br /&gt;
|-&lt;br /&gt;
| 113 || Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
| 114 || VI&lt;br /&gt;
|-&lt;br /&gt;
| 115 || NFP&lt;br /&gt;
|-&lt;br /&gt;
| 116 || Time&lt;br /&gt;
|-&lt;br /&gt;
| 117 || FGM&lt;br /&gt;
|-&lt;br /&gt;
| 118 || OE&lt;br /&gt;
|-&lt;br /&gt;
| 120 || PCIe&lt;br /&gt;
|-&lt;br /&gt;
| 121 || Friends&lt;br /&gt;
|-&lt;br /&gt;
| 122 || BCAT&lt;br /&gt;
|-&lt;br /&gt;
| 123 || SSL&lt;br /&gt;
|-&lt;br /&gt;
| 124 || Account&lt;br /&gt;
|-&lt;br /&gt;
| 125 || News&lt;br /&gt;
|-&lt;br /&gt;
| 126 || Mii&lt;br /&gt;
|-&lt;br /&gt;
| 127 || NFC&lt;br /&gt;
|-&lt;br /&gt;
| 128 || AM&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Play Report&lt;br /&gt;
|-&lt;br /&gt;
| 130 || AHID&lt;br /&gt;
|-&lt;br /&gt;
| 132 || Home Menu (Qlaunch)&lt;br /&gt;
|-&lt;br /&gt;
| 133 || PCV&lt;br /&gt;
|-&lt;br /&gt;
| 134 || OMM&lt;br /&gt;
|-&lt;br /&gt;
| 135 || BPC&lt;br /&gt;
|-&lt;br /&gt;
| 136 || PSM&lt;br /&gt;
|-&lt;br /&gt;
| 137 || NIM&lt;br /&gt;
|-&lt;br /&gt;
| 138 || PSC&lt;br /&gt;
|-&lt;br /&gt;
| 139 || TC&lt;br /&gt;
|-&lt;br /&gt;
| 140 || USB&lt;br /&gt;
|-&lt;br /&gt;
| 141 || NSD&lt;br /&gt;
|-&lt;br /&gt;
| 142 || PCTL&lt;br /&gt;
|-&lt;br /&gt;
| 143 || BTM&lt;br /&gt;
|-&lt;br /&gt;
| 144 || EC (Shop)&lt;br /&gt;
|-&lt;br /&gt;
| 145 || ETicket&lt;br /&gt;
|-&lt;br /&gt;
| 146 || NGC (Bad Words)&lt;br /&gt;
|-&lt;br /&gt;
| 147 || Error Report&lt;br /&gt;
|-&lt;br /&gt;
| 148 || APM&lt;br /&gt;
|-&lt;br /&gt;
| 149 || CEC&lt;br /&gt;
|-&lt;br /&gt;
| 150 || Profiler&lt;br /&gt;
|-&lt;br /&gt;
| 151 || Error Upload&lt;br /&gt;
|-&lt;br /&gt;
| 153 || Audio&lt;br /&gt;
|-&lt;br /&gt;
| 154 || NPNS&lt;br /&gt;
|-&lt;br /&gt;
| 155 || NPNS HTTP Stream&lt;br /&gt;
|-&lt;br /&gt;
| 157 || ARP&lt;br /&gt;
|-&lt;br /&gt;
| 158 || Boot&lt;br /&gt;
|-&lt;br /&gt;
| 159 || SWKBD&lt;br /&gt;
|-&lt;br /&gt;
| 161 || NFC Mifare&lt;br /&gt;
|-&lt;br /&gt;
| 162 || Userland assert&lt;br /&gt;
|-&lt;br /&gt;
| 163 || Fatal&lt;br /&gt;
|-&lt;br /&gt;
| 164 || NIM Shop&lt;br /&gt;
|-&lt;br /&gt;
| 165 || SPSM&lt;br /&gt;
|-&lt;br /&gt;
| 167 || BGTC&lt;br /&gt;
|-&lt;br /&gt;
| 168 || Userland crash&lt;br /&gt;
|-&lt;br /&gt;
| 178 || PDM&lt;br /&gt;
|-&lt;br /&gt;
| 179 || OLSC&lt;br /&gt;
|-&lt;br /&gt;
| 180 || SREPO&lt;br /&gt;
|-&lt;br /&gt;
| 181 || Dauth&lt;br /&gt;
|-&lt;br /&gt;
| 191 || RTC&lt;br /&gt;
|-&lt;br /&gt;
| 192 || Regulator&lt;br /&gt;
|-&lt;br /&gt;
| 197 || Clkrst&lt;br /&gt;
|-&lt;br /&gt;
| 202 || HID&lt;br /&gt;
|-&lt;br /&gt;
| 203 || LDN&lt;br /&gt;
|-&lt;br /&gt;
| 205 || Irsensor&lt;br /&gt;
|-&lt;br /&gt;
| 206 || Capture&lt;br /&gt;
|-&lt;br /&gt;
| 208 || Manu&lt;br /&gt;
|-&lt;br /&gt;
| 209 || ATK&lt;br /&gt;
|-&lt;br /&gt;
| 210 || Web&lt;br /&gt;
|-&lt;br /&gt;
| 211 ||&lt;br /&gt;
|-&lt;br /&gt;
| 212 || GRC&lt;br /&gt;
|-&lt;br /&gt;
| 216 || Migration&lt;br /&gt;
|-&lt;br /&gt;
| 217 || Migration Idc Server&lt;br /&gt;
|-&lt;br /&gt;
| 345 || libnx&lt;br /&gt;
|-&lt;br /&gt;
| 346 || [[Homebrew ABI]]&lt;br /&gt;
|-&lt;br /&gt;
| 347 || Homebrew Loader&lt;br /&gt;
|-&lt;br /&gt;
| 348 || libnx Nvidia errors&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Error codes =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E01 || 1 || 7 || Session count exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C01 || 1 || 14 || Invalid kernel capability descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x4201 || 1 || 33 || Not Implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x7601 || 1 || 59 || Thread terminated/termination requested&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C01 || 1 || 70 || No more debug events&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA01 || 1 || 101 || Invalid size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC01 || 1 || 102 || Invalid address&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE01 || 1 || 103 || Resource exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD001 || 1 || 104 || Memory exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD201 || 1 || 105 || Handle-table exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 1 || 106 || Invalid memory state / invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD801 || 1 || 108 || Invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC01 || 1 || 110 || Invalid memory range&lt;br /&gt;
|-&lt;br /&gt;
| 0xE001 || 1 || 112 || Invalid thread priority.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE201 || 1 || 113 || Invalid processor id.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE401 || 1 || 114 || Invalid handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE601 || 1 || 115 || Invalid pointer/Syscall copy from user failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE801 || 1 || 116 || Invalid combination&lt;br /&gt;
|-&lt;br /&gt;
| 0xEA01 || 1 || 117 || Time out. Also when you give 0 handles to svcWaitSynchronizationN.&lt;br /&gt;
|-&lt;br /&gt;
| 0xEC01 || 1 || 118 || Operation canceled&lt;br /&gt;
|-&lt;br /&gt;
| 0xEE01 || 1 || 119 || Out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0xF001 || 1 || 120 || Invalid enum&lt;br /&gt;
|-&lt;br /&gt;
| 0xF201 || 1 || 121 || No such entry&lt;br /&gt;
|-&lt;br /&gt;
| 0xF401 || 1 || 122 || Irq/DeviceAddressSpace/{...} already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xF601 || 1 || 123 || Port remote dead&lt;br /&gt;
|-&lt;br /&gt;
| 0xF801 || 1 || 124 || [Usermode] Unhandled interrupt/exception&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA01 || 1 || 125 || Process already started/Wrong memory permission?&lt;br /&gt;
|-&lt;br /&gt;
| 0xFC01 || 1 || 126 || Reserved value&lt;br /&gt;
|-&lt;br /&gt;
| 0xFE01 || 1 || 127 || Invalid hardware breakpoint&lt;br /&gt;
|-&lt;br /&gt;
| 0x10001 || 1 || 128 || [Usermode] Fatal exception&lt;br /&gt;
|-&lt;br /&gt;
| 0x10201 || 1 || 129 || Last thread didn&#039;t belong to your process&lt;br /&gt;
|-&lt;br /&gt;
| 0x10601 || 1 || 131 || Port closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x10801 || 1 || 132 || Resource limit exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x20801 || 1 || 260 || Command buffer too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x40A01 || 1 || 517 || Invalid process ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40C01 || 1 || 518 || Invalid thread ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40E01 || 1 || 519 || Invalid thread ID (used in svcGetDebugThreadParam).&lt;br /&gt;
|-&lt;br /&gt;
| 0x41001 || 1 || 520 || Process not being debugged&lt;br /&gt;
|-&lt;br /&gt;
| 0x202 || 2 || 1 || Path does not exist.&lt;br /&gt;
|-&lt;br /&gt;
| 0x402 || 2 || 2 || Path already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE02 || 2 || 7 || Resource already in use (file already opened, savedata filesystem already mounted).&lt;br /&gt;
|-&lt;br /&gt;
| 0x4602 || 2 || 35 || Not enough free space for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4802 || 2 || 36 || Not enough free space for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A02 || 2 || 37 || Not enough free space for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C02 || 2 || 38 || Not enough free space for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4E02 || 2 || 39 || Not enough free space on SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6402 || 2 || 50 || NCA is older than version 3, or NCA SDK version is older than 0.11.0.0&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 2 || 60 || The specified [[NCA]]-type doesn&#039;t exist for this title.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 2 || 1001 || Process does not have RomFs &lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 2 || 1002 || Title-id not found / savedata not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA202 || 2 || 2001 || SD card not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13B002 || 2 || 2520 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13DA02 || 2 || 2541 || Version check failed when mounting gamecard sysupdate partition?&lt;br /&gt;
|-&lt;br /&gt;
| 0x171402 || 2 || 2954 || Invalid gamecard handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 2 || 3001 || Unimplemented behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x177602 || 2 || 3003 || File/Directory already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x190202 || 2 || 3201 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190602 || 2 || 3203 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190802 || 2 || 3204 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190A02 || 2 || 3205 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190C02 || 2 || 3206 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x191002 || 2 || 3208 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x195802 || 2 || 3244 || Allocation failure related to SD cards&lt;br /&gt;
|-&lt;br /&gt;
| 0x196002 || 2 || 3248 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x196202 || 2 || 3249 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A3E02 || 2 || 3359 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4002 || 2 || 3360 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4A02 || 2 || 3365 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x21BC02 || 2 || 4318 || Invalid save data filesystem magic (valid magic is SAVE in ASCII)&lt;br /&gt;
|-&lt;br /&gt;
| 0x234202 || 2 || 4513 || Error reading ACID section in NPDM&lt;br /&gt;
|-&lt;br /&gt;
| 0x234402 || 2 || 4514 || Invalid NPDM ACID section size&lt;br /&gt;
|-&lt;br /&gt;
| 0x234602 || 2 || 4515 || Last byte of the ACID modulus is zero&lt;br /&gt;
|-&lt;br /&gt;
| 0x234802 || 2 || 4516 || Invalid ACID fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234A02 || 2 || 4517 || Invalid NCA magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x234C02 || 2 || 4518 || Invalid NCA header fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234E02 || 2 || 4519 || Invalid NCA header ACID signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x235002 || 2 || 4520 || Invalid NCA header section hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x235202 || 2 || 4521 || Invalid NCA Key index&lt;br /&gt;
|-&lt;br /&gt;
| 0x235602 || 2 || 4523 || Invalid encryption type&lt;br /&gt;
|-&lt;br /&gt;
| 0x235802 || 2 || 4524 || Redirection BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235A02 || 2 || 4525 || Encryption BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235C02 || 2 || 4526 || Redirection BKTR table end offset is past the Encryption BKTR table start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x235E02 || 2 || 4527 || NCA-path used with the wrong titleID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x236002 || 2 || 4528 || NCA header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236202 || 2 || 4529 || NCA FS header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236802 || 2 || 4532 || PartitionFS hash block size is not a power of 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236A02 || 2 || 4533 || PartitionFS hash &amp;quot;always_2&amp;quot; field is not 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236C02 || 2 || 4534 || PartitionFS hash table is too small for main data&lt;br /&gt;
|-&lt;br /&gt;
| 0x236E02 || 2 || 4535 || Invalid PartitionFS block hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244402 || 2 || 4642 || Invalid Partition file hashed region bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x244602 || 2 || 4643 || Invalid Partition FS hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244802 || 2 || 4644 || Invalid PFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244A02 || 2 || 4645 || Invalid HFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244C02 || 2 || 4646 || Invalid name offset for Partition FS file entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x244E02 || 2 || 4647 || Calculated Partition FS header size changed between 2 consecutive reads&lt;br /&gt;
|-&lt;br /&gt;
| 0x249802 || 2 || 4684 || Invalid FAT file number.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249C02 || 2 || 4686 || Invalid FAT format for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249E02 || 2 || 4687 || Invalid FAT format for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A002 || 2 || 4688 || Invalid FAT format for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A202 || 2 || 4689 || Invalid FAT format for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x250E02 || 2 || 4743 || [[NAX0|Corrupted]] NAX0 header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x251002 || 2 || 4744 || Invalid [[NAX0]] magicnum.&lt;br /&gt;
|-&lt;br /&gt;
| 0x280202 || 2 || 5121 || Invalid FAT size&lt;br /&gt;
|-&lt;br /&gt;
| 0x280402 || 2 || 5122 || Invalid FAT BPB (BIOS Parameter Block)&lt;br /&gt;
|-&lt;br /&gt;
| 0x280602 || 2 || 5123 || Invalid FAT parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x280802 || 2 || 5124 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280A02 || 2 || 5125 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280C02 || 2 || 5126 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280E02 || 2 || 5127 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x296A02 || 2 || 5301 || Mountpoint not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 || 2 || 6001 || Invalid input&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE602 || 2 || 6003 || Path too long&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE802 || 2 || 6004 || Invalid character.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEA02 || 2 || 6005 || Invalid directory path.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEC02 || 2 || 6006 || Unable to retrieve directory from path&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 2 || 6061 || Offset outside storage&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 || 2 || 6300 || Operation not supported&lt;br /&gt;
|-&lt;br /&gt;
| 0x31AE02 || 2 || 6359 || Operation not supported in nn::fssystem::ConcatenationFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0x31B002 || 2 || 6360 || Operation not supported in nn::fssystem::ConcatenationFile&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 || 2 || 6400 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x326602 || 2 || 6451 || Missing titlekey(?) required to mount content&lt;br /&gt;
|-&lt;br /&gt;
| 0x326E02 || 2 || 6455 || File not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327002 || 2 || 6456 || Directory not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327402 || 2 || 6458 || FS allocators already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x327602 || 2 || 6459 || FS allocators already used&lt;br /&gt;
|-&lt;br /&gt;
| 0x327A02 || 2 || 6461 || FS allocator alignment violation&lt;br /&gt;
|-&lt;br /&gt;
| 0x339402 || 2 || 6602 || File not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x339602 || 2 || 6603 || Directory not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBC02 || 2 || 7902 || RomFs table: Entry not found in dictionary&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBE02 || 2 || 7903 || RomFs table: File not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC002 || 2 || 7904 || RomFs table: Directory not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC402 || 2 || 7906 || RomFs table: Entry already exists when trying to add a new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC602 || 2 || 7907 || RomFs table: Insufficient space to add new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC802 || 2 || 7908 || RomFs table: Unable to add new directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCA02 || 2 || 7909 || RomFs table: Unable to add new file&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCC02 || 2 || 7910 || RomFs directory has no more child directories/files when iterating&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DD402 || 2 || 7914 || RomFs table: Path is file, not directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x803 || 3 || 4 || OS busy&lt;br /&gt;
|-&lt;br /&gt;
| 0xE03 || 3 || 7 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x1003 || 3 || 8 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1203 || 3 || 9 || Out of resources&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EA03 || 3 || 501 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE03 || 3 || 503 || Invalid memory mirror&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FE03 || 3 || 1023 || TLS slot is not allocated&lt;br /&gt;
|-&lt;br /&gt;
| 0xA05 || 5 || 5 || [[Content_Manager_services|NcaID]] not found. Returned when attempting to mount titles which exist that aren&#039;t *8XX titles, the same way *8XX titles are mounted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE05 || 5 || 7 || TitleId not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1805 || 5 || 12 || Invalid StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC05 || 5 || 110 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x17C05 || 5 || 190 || Gamecard not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F405 || 5 || 250 || Sdcard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x20805 || 5 || 260 || Storage not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0x806 || 6 || 4 || Converted from error 0xD401&lt;br /&gt;
|-&lt;br /&gt;
| 0x1006 || 6 || 8 || Converted from error 0xE401&lt;br /&gt;
|-&lt;br /&gt;
| 0x408 || 8 || 2 || Program location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x608 || 8 || 3 || Invalid context for control location&lt;br /&gt;
|-&lt;br /&gt;
| 0x808 || 8 || 4 || Storage not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA08 || 8 || 5 || Access denied&lt;br /&gt;
|-&lt;br /&gt;
| 0xC08 || 8 || 6 || Offline manual HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xE08 || 8 || 7 || Title is not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1008 || 8 || 8 || Control location entry for host not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1208 || 8 || 9 || Legal info HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1408 || 8 || 10 || Program location for debug entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x209 || 9 || 1 || Args too long.&lt;br /&gt;
|-&lt;br /&gt;
| 0x409 || 9 || 2 || Maximum processes loaded.&lt;br /&gt;
|-&lt;br /&gt;
| 0x609 || 9 || 3 || NPDM too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x19009 || 9 || 200 || Invalid access control sizes in NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x809 || 9 || 4 || Invalid NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0xA09 || 9 || 5 || Invalid files.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE09 || 9 || 7 || Already registered.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1009 || 9 || 8 || Title not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1209 || 9 || 9 || Title-id in ACI0 doesn&#039;t match range in ACID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6609 || 9 || 51 || Invalid memory state/permission&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A09 || 9 || 53 || Invalid NRR&lt;br /&gt;
|-&lt;br /&gt;
| 0xA209 || 9 || 81 || Unaligned NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xA409 || 9 || 82 || Bad NRR size&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA09 || 9 || 85 || Bad NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xAE09 || 9 || 87 || Bad initialization&lt;br /&gt;
|-&lt;br /&gt;
| 0xC809 || 9 || 100 || Unknown ACI0 descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE09 || 9 || 103 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD009 || 9 || 104 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;SyscallMask&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD409 || 9 || 106 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapIoOrNormalRange&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD609 || 9 || 107 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapNormalPage&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xDE09 || 9 || 111 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;InterruptPair&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE209 || 9 || 113 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;ApplicationType&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE409 || 9 || 114 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelReleaseVersion&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE609 || 9 || 115 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;HandleTableSize&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE809 || 9 || 116 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;DebugFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x1940A || 10 || 202 || Invalid CMIF header size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A60A || 10 || 211 || Invalid CMIF input header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A80A || 10 || 212 || Invalid CMIF output header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA0A || 10 || 221 || Invalid method dispatch ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D60A || 10 || 235 || Invalid in object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D80A || 10 || 236 || Invalid out object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0A || 10 || 301 || Out of domain entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20B || 11 || 1 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC0B || 11 || 102 || Out of server session memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x11A0B || 11 || 141 || Went past maximum during marshalling.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1900B || 11 || 200 || Session doesn&#039;t support domains.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0B || 11 || 301 || Remote process is dead.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3260B || 11 || 403 || Unknown request type&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D60B || 11 || 491 || IPC Query 1 failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20F || 15 || 1 || Pid not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x60F || 15 || 3 || Process has no pending events&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0F || 15 || 5 || Application already running&lt;br /&gt;
|-&lt;br /&gt;
| 0x410 || 16 || 2 || Title-id not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xF010 || 16 || 120 || Gamecard sysupdate not required&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F610 || 16 || 251 || Unexpected StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0x215 || 21 || 1 || Out of processes&lt;br /&gt;
|-&lt;br /&gt;
| 0x415 || 21 || 2 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x615 || 21 || 3 || Max sessions&lt;br /&gt;
|-&lt;br /&gt;
| 0x815 || 21 || 4 || Service already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xA15 || 21 || 5 || Out of services&lt;br /&gt;
|-&lt;br /&gt;
| 0xC15 || 21 || 6 || Invalid name (all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0xE15 || 21 || 7 || Service not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1015 || 21 || 8 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x1215 || 21 || 9 || Service Access Control too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x416 || 22 || 2 || Address space is full&lt;br /&gt;
|-&lt;br /&gt;
| 0x616 || 22 || 3 || NRO already loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x816 || 22 || 4 || Invalid NRO header values&lt;br /&gt;
|-&lt;br /&gt;
| 0xC16 || 22 || 6 || Bad NRR magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x1016 || 22 || 8 || Reached max NRR count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1216 || 22 || 9 || Unable to verify NRO hash or NRR signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x80216 || 22 || 1025 || Address not page-aligned&lt;br /&gt;
|-&lt;br /&gt;
| 0x80416 || 22 || 1026 || Incorrect NRO size&lt;br /&gt;
|-&lt;br /&gt;
| 0x80816 || 22 || 1028 || NRO not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80A16 || 22 || 1029 || NRR not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80C16 || 22 || 1030 || Already initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E16 || 22 || 1031 || Not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x21A || 26 || 1 || SMC is not implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x41A || 26 || 2 || SMC argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A || 26 || 3 || SMC is currently in progress/secmon is busy&lt;br /&gt;
|-&lt;br /&gt;
| 0x81A || 26 || 4 || Secmon not currently performing async operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xA1A || 26 || 5 || Invalid SMC async callback key&lt;br /&gt;
|-&lt;br /&gt;
| 0xC1A || 26 || 6 || SMC is blacklisted during current boot&lt;br /&gt;
|-&lt;br /&gt;
| 0xC81A || 26 || 100 || Invalid (buffer) size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Unknown SMC error&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Decryption failure&lt;br /&gt;
|-&lt;br /&gt;
| 0xD01A || 26 || 104 || No AES keyslots available&lt;br /&gt;
|-&lt;br /&gt;
| 0xD21A || 26 || 105 || Invalid AES keyslot&lt;br /&gt;
|-&lt;br /&gt;
| 0xD41A || 26 || 106 || BootReason already set&lt;br /&gt;
|-&lt;br /&gt;
| 0xD61A || 26 || 107 || BootReason not set&lt;br /&gt;
|-&lt;br /&gt;
| 0xD81A || 26 || 108 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x19269 || 105 || 201 || Null settings name&lt;br /&gt;
|-&lt;br /&gt;
| 0x19469 || 105 || 202 || Null settings key&lt;br /&gt;
|-&lt;br /&gt;
| 0x19669 || 105 || 203 || Null settings value&lt;br /&gt;
|-&lt;br /&gt;
| 0x19A69 || 105 || 205 || Null settings value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A069 || 105 || 208 || Null setting value size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A269 || 105 || 209 || Null debug mode flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA69 || 105 || 221 || Setting group name has zero length&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BC69 || 105 || 222 || Empty settings item key&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E269 || 105 || 241 || Setting group name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E469 || 105 || 242 || Setting name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x20A69 || 105 || 261 || Setting group name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x20C69 || 105 || 262 || Setting name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x4DA69 || 105 || 621 || Null language code buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4EE69 || 105 || 631 || Null network settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4F069 || 105 || 632 || Null network settings output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x50269 || 105 || 641 || Null backlight settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51669 || 105 || 651 || Null Bluetooth device setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51869 || 105 || 652 || Null Bluetooth device setting output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51A69 || 105 || 653 || Null Bluetooth enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51C69 || 105 || 654 || Null Bluetooth AFH enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51E69 || 105 || 655 || Null Bluetooth boost enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52069 || 105 || 656 || Null BLE pairing settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52269 || 105 || 657 || Null BLE pairing settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52A69 || 105 || 661 || Null external steady clock source ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52C69 || 105 || 662 || Null user system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52E69 || 105 || 663 || Null network system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53069 || 105 || 664 || Null user system clock automatic correction enabled flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53269 || 105 || 665 || Null shutdown RTC value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53469 || 105 || 666 || Null external steady clock internal offset buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53E69 || 105 || 671 || Null account settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55269 || 105 || 681 || Null audio volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55669 || 105 || 683 || Null ForceMuteOnHeadphoneRemoved buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55869 || 105 || 684 || Null headphone volume warning count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55E69 || 105 || 687 || Invalid audio output mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x56069 || 105 || 688 || Null headphone volume update flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x56669 || 105 || 691 || Null console information upload flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57A69 || 105 || 701 || Null automatic application download flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57C69 || 105 || 702 || Null notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57E69 || 105 || 703 || Null account notification settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58069 || 105 || 704 || Null account notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58E69 || 105 || 711 || Null vibration master volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59069 || 105 || 712 || Null NX controller settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59269 || 105 || 713 || Null NX controller settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59469 || 105 || 714 || Null USB full key enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A269 || 105 || 721 || Null TV settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A469 || 105 || 722 || Null EDID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5B669 || 105 || 731 || Null data deletion settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CA69 || 105 || 741 || Null initial system applet program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CC69 || 105 || 742 || Null overlay disp program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CE69 || 105 || 743 || Null IsInRepairProcess buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5D069 || 105 || 744 || Null RequiresRunRepairTimeReviser buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5DE69 || 105 || 751 || Null device timezone location name buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5F269 || 105 || 761 || Null primary album storage buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60669 || 105 || 771 || Null USB 3.0 enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60869 || 105 || 772 || Null USB Type-C power source circuit version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A69 || 105 || 781 || Null battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x62E69 || 105 || 791 || Null serial number buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64269 || 105 || 801 || Null lock screen flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64669 || 105 || 803 || Null color set ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64869 || 105 || 804 || Null quest flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64A69 || 105 || 805 || Null wireless certification file size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64C69 || 105 || 806 || Null wireless certification file buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64E69 || 105 || 807 || Null initial launch settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65069 || 105 || 808 || Null device nickname buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65269 || 105 || 809 || Null battery percentage flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65469 || 105 || 810 || Null applet launch flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7E869 || 105 || 1012 || Null wireless LAN enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FA69 || 105 || 1021 || Null product model buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E69 || 105 || 1031 || Null NFC enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82269 || 105 || 1041 || Null ECI device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82469 || 105 || 1042 || Null E-Ticket device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x83669 || 105 || 1051 || Null sleep settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84A69 || 105 || 1061 || Null EULA version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84C69 || 105 || 1062 || Null EULA version entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x85E69 || 105 || 1071 || Null LDN channel buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87269 || 105 || 1081 || Null SSL key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87469 || 105 || 1082 || Null SSL certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x88669 || 105 || 1091 || Null telemetry flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89A69 || 105 || 1101 || Null Gamecard key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89C69 || 105 || 1102 || Null Gamecard certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8AE69 || 105 || 1111 || Null PTM battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B069 || 105 || 1112 || Null PTM fuel gauge parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C269 || 105 || 1121 || Null ECI device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C469 || 105 || 1122 || Null E-Ticket device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D669 || 105 || 1131 || Null speaker parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EA69 || 105 || 1141 || Null firmware version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EC69 || 105 || 1142 || Null firmware version digest buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EE69 || 105 || 1143 || Null rebootless system update version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8FE69 || 105 || 1151 || Null Mii author ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x91269 || 105 || 1161 || Null fatal flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x92669 || 105 || 1171 || Null auto update enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x93A69 || 105 || 1181 || Null external RTC reset flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x94E69 || 105 || 1191 || Null push notification activity mode buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x96269 || 105 || 1201 || Null service discovery control setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x97669 || 105 || 1211 || Null error report share permission buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x98A69 || 105 || 1221 || Null LCD vendor ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x99E69 || 105 || 1231 || Null console SixAxis sensor acceleration bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A069 || 105 || 1232 || Null console SixAxis sensor angular velocity bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A269 || 105 || 1233 || Null console SixAxis sensor acceleration gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A469 || 105 || 1234 || Null console SixAxis sensor angular velocity gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A669 || 105 || 1235 || Null console SixAxis sensor angular velocity time bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A869 || 105 || 1236 || Null console SixAxis sensor angular acceleration buffer &lt;br /&gt;
|-&lt;br /&gt;
| 0x9B269 || 105 || 1241 || Null keyboard layout buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9BA69 || 105 || 1245 || Invalid keyboard layout&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C669 || 105 || 1251 || Null web inspector flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C869 || 105 || 1252 || Null allowed SSL hosts buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CA69 || 105 || 1253 || Null allowed SSL hosts entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CC69 || 105 || 1254 || Null host FS mount point buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9EE69 || 105 || 1271 || Null Amiibo key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F069 || 105 || 1272 || Null Amiibo ECQV certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F269 || 105 || 1273 || Null Amiibo ECDSA certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F469 || 105 || 1274 || Null Amiibo ECQV BLS key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F669 || 105 || 1275 || Null Amiibo ECQV BLS certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F869 || 105 || 1276 || Null Amiibo ECQV BLS root certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x272 || 114 || 1 || Generic error&lt;br /&gt;
|-&lt;br /&gt;
| 0xC72 || 114 || 6 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || 116 || 0 || Time service not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC74 || 116 || 102 || Time not set&lt;br /&gt;
|-&lt;br /&gt;
| 0x19074 || 116 || 200 || Invalid time comparison&lt;br /&gt;
|-&lt;br /&gt;
| 0x19274 || 116 || 201 || Signed overflow/underflow&lt;br /&gt;
|-&lt;br /&gt;
| 0x64274 || 116 || 801 || Memory allocation failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x70A74 || 116 || 901 || Null pointer&lt;br /&gt;
|-&lt;br /&gt;
| 0x70C74 || 116 || 902 || Value out of valid range&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BA74 || 116 || 989 || Entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BC74 || 116 || 990 || Unimplemented functionality&lt;br /&gt;
|-&lt;br /&gt;
| 0x27A || 122 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x47A || 122 || 2 || Object not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x67A || 122 || 3 || Object locked/in used&lt;br /&gt;
|-&lt;br /&gt;
| 0x87A || 122 || 4 || Target already mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0xA7A || 122 || 5 || Target not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0xC7A || 122 || 6 || Object already opened&lt;br /&gt;
|-&lt;br /&gt;
| 0xE7A || 122 || 7 || Object not opened&lt;br /&gt;
|-&lt;br /&gt;
| 0x287C || 124 || 20 || Argument is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C7C || 124 || 22 || Argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C7C || 124 || 30 || Bad input buffer size&lt;br /&gt;
|-&lt;br /&gt;
| 0x407C || 124 || 32 || Invalid input buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x27E || 126 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x87E || 126 || 4 || Entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE7E || 126 || 67 || Invalid database signature value (should be &amp;quot;NFDB&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0xD27E || 126 || 69 || Invalid database entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1987E || 126 || 204 || Development/debug-only behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x480 || 128 || 2 || IStorage not available.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4680 || 128 || 35 || Error while launching applet.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A80 || 128 || 37 || Title-ID not found. Caused by code 0x410 when applet launch fails&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E880 || 128 || 500 || Invalid IStorage size (negative?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EC80 || 128 || 502 || IStorage has already been opened by another accessor&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE80 || 128 || 503 || IStorage Read/Write out-of-bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x3FE80 || 128 || 511 || IStorage opened as wrong type (data opened as transfermem, transfermem opened as data)&lt;br /&gt;
|-&lt;br /&gt;
| 0x40080 || 128 || 512 || Unbalanced fatal section leave (returned when executing LeaveFatalSection without a preceding EnterFatalSection call)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B080 || 128 || 600 || Failed to allocate memory for IStorage&lt;br /&gt;
|-&lt;br /&gt;
| 0x59080 || 128 || 712 || Thread stack pool exhausted (out of memory)&lt;br /&gt;
|-&lt;br /&gt;
| 0x7A880 || 128 || 980 || &amp;lt;code&amp;gt;am.debug!dev_function&amp;lt;/code&amp;gt; setting needs to be set&lt;br /&gt;
|-&lt;br /&gt;
| 0xA83 || 131 || 5 || Unrecognized applet ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x485 || 133 || 2 || Invalid DVFS table ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x885 || 133 || 4 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x3CF089 || 137 || 7800 || Unknown/invalid libcurl error.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E8289-0x3F4089 || 137 || 8001-8096 || libcurl error 1-96. Some of the libcurl errors in the error-table map to the above unknown-libcurl-error however.&lt;br /&gt;
|-&lt;br /&gt;
| 0x68A || 138 || 3 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x668C || 140 || 51 || USB data-transfer in progress&lt;br /&gt;
|-&lt;br /&gt;
| 0xD48C || 140 || 106 || Invalid descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x1928C || 140 || 201 || USB device not bound / interface already enabled&lt;br /&gt;
|-&lt;br /&gt;
| 0x299 || 153 || 1 || Invalid audio device&lt;br /&gt;
|-&lt;br /&gt;
| 0x499 || 153 || 2 || Operation couldn&#039;t complete successfully&lt;br /&gt;
|-&lt;br /&gt;
| 0x699 || 153 || 3 || Invalid sample rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x899 || 153 || 4 || Buffer size too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x1099 || 153 || 8 || Too many buffers are still unreleased&lt;br /&gt;
|-&lt;br /&gt;
| 0x1499 || 153 || 10 || Invalid channel count&lt;br /&gt;
|-&lt;br /&gt;
| 0x40299 || 153 || 513 || Invalid/Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0099 || 153 || 1536 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0899 || 153 || 1540 || Audio output was already started&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C9D || 157 || 30 || Address is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E9D || 157 || 31 || PID is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x549D || 157 || 42 || Already bound&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC9D || 157 || 102 || Invalid PID&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA3 || 163 ||  5 || System is booting up repair process without VOL+ held down.&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA3 || 163 || 6 || System is booting up repair process that requires RepairTimeReviser but does not have special cartridge inserted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8B2 || 178 || 100 || Invalid user ID&lt;br /&gt;
|-&lt;br /&gt;
| 0xCAB2 || 178 || 101 || User does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 0x12CB2 || 178 || 150 || Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| 0x190B2 || 178 || 200 || File storage failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x58ACA || 202 || 709 || Npad ID is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF0CD || 205 || 120 || IR image data not available/ready.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A8CD || 205 || 212 || IR camera handle pointer is null.&lt;br /&gt;
|-&lt;br /&gt;
| 0x198CD || 205 || 204 || IR camera invalid handle value.&lt;br /&gt;
|-&lt;br /&gt;
| 0x35B || 347 || 1 || Failed to init SM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x55B || 347 || 2 || Failed to init FS.&lt;br /&gt;
|-&lt;br /&gt;
| 0x75B || 347 || 3 || Failed to open NRO file. May also happen when SD card isn&#039;t inserted / SD mounting failed earlier.&lt;br /&gt;
|-&lt;br /&gt;
| 0x95B || 347 || 4 || Failed to read NRO header.&lt;br /&gt;
|-&lt;br /&gt;
| 0xB5B || 347 || 5 || Invalid NRO magic.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD5B || 347 || 6 || Invalid NRO segments.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF5B || 347 || 7 || Failed to read NRO.&lt;br /&gt;
|-&lt;br /&gt;
| 0x135B || 347 || 9 || Failed to allocate heap.&lt;br /&gt;
|-&lt;br /&gt;
| 0x255B || 347 || 18 || Failed to map code-binary memory.&lt;br /&gt;
|-&lt;br /&gt;
| 0x275B || 347 || 19 || Failed to map code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x295B || 347 || 20 || Failed to map code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B5B || 347 || 21 || Failed to map code memory (.data+.bss).&lt;br /&gt;
|-&lt;br /&gt;
| 0x315B || 347 || 24 || Failed to unmap code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x335B || 347 || 25 || Failed to unmap code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x355B || 347 || 26 || Failed to unmap code memory (.data+.bss).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FS Error Codes ==&lt;br /&gt;
The following are the error codes recognized by nn::fs::detail::LogErrorMessage found in some [[Factory Setup|factory]] titles:&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Description || Message&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 60 || Error: Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 106 || Error: Passed buffer is not usable for fs library.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 1001 || Error: Specified partition is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 1002 || Error: Specified target is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA002 - 0x138602 || 2000 - 2499 || Error: Failed to access SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x136802 - 0x176E02 || 2500 - 2999 || Error: Failed to access game card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 3001 || Error: Specified operation is not implemented.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177A02 || 3005 || Error: Specified value is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B5802 - 0x1F3E02 || 3500 - 3999 || Error: Failed to access MMC.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4202 - 0x219602 || 4001 - 4299 || Error: ROM is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x219A02 - 0x232602 || 4301 - 4499 || Error: Save data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x232A02 - 0x23EE02 || 4501 - 4599 || Error: NCA is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x23F202 - 0x243E02 || 4601 - 4639 || Error: Integrity verification failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x244202 - 0x246602 || 4641 - 4659 || Error: Partition FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x246A02 - 0x248E02 || 4661 - 4679 || Error: Built-in-storage is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249202 - 0x24B602 || 4681 - 4699 || Error: FAT FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24BA02 - 0x24DE02 || 4701 - 4719 || Error: HOST FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4002 - 0x270E02 || 4000, 4300, 4500, 4600, 4640, 4660, 4680, 4700, 4720-4999 || Error: Data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x271002 - 0x2EDE02 || 5000-5999 || Error: Unexpected failure occurred.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE402 - 0x2F1A02 || 6002-6029 || Error: Invalid path was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 6061 || Error: Invalid offset was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5C02 || 6062 || Error: Invalid size was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5E02 || 6063 || Error: Null pointer argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE002 || 6000 || Error: Precondition violation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 - 0x306E02 || 6001-6199 || Error: Invalid argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x307202 || 6201 || Error: OpenMode_AllowAppend is required for implicit extension of file size by WriteFile().&lt;br /&gt;
|-&lt;br /&gt;
| 0x307002 - 0x313602 || 6200, 6202 - 6299 || Error: Invalid operation for the open mode.&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 - 0x31FE02 || 6300-6399 || Error: Unsupported operation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 - 0x32C602 || 6400-6499 || Error: Permission denied.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346402 || 6706 || Error: Enough journal space is not left.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346A02 || 6709 || Error: The open count of files and directories reached the limitation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Fatal Errors =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Description&lt;br /&gt;
|-&lt;br /&gt;
| 2162-0002&lt;br /&gt;
| Can be triggered by running [[SVC|svcBreak]]. The svcBreak params have no effect on the value of the thrown error-code.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0000&lt;br /&gt;
| Userland ARM undefined instruction exception&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0001&lt;br /&gt;
| Userland ARM prefetch-abort due to PC set to non-executable region&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0002&lt;br /&gt;
| Userland ARM data abort. Also caused by abnormal process termination via [[SVC|svcExitProcess]]. Note: directly jumping to nnMain()-retaddr from non-main-thread has the same result.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0003&lt;br /&gt;
| Userland PC address not aligned to 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0008&lt;br /&gt;
| Can occur when attempting to call an svc outside the whitelist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Support Errors =&lt;br /&gt;
This section is for Support Errors displayed by the error-applet, separate from the normal Result errors.&lt;br /&gt;
&lt;br /&gt;
== Support Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [[Internet_Browser|General web-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 809 || [[Internet_Browser|WifiWebAuthApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [[Internet_Browser|Whitelisted-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 811 || [[Internet_Browser|ShopN]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
8XX is for/includes system applets.&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| {web-applets listed above}&lt;br /&gt;
| 2750&lt;br /&gt;
| MP4 parsing failed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Normal error-codes displayed by the system also use the same format as fatal-errors.&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=6816</id>
		<title>Error codes</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=6816"/>
		<updated>2019-05-06T21:08:51Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* Error codes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Structure =&lt;br /&gt;
These have been redesigned from the 3DS so that they fit within a Aarch64 MOV instruction immediate most of the time (without requiring the additional MOVK).&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Bits || Field&lt;br /&gt;
|-&lt;br /&gt;
| 8-0 || Module&lt;br /&gt;
|-&lt;br /&gt;
| 21-9 || Description&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When a fatal-error is received the error code is outputted using the following formatter:&lt;br /&gt;
  %04d-%04d&lt;br /&gt;
&lt;br /&gt;
.. where the first code is &amp;lt;code&amp;gt;2000 + Module&amp;lt;/code&amp;gt;, and the other being &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;. Bits &amp;gt;=22 from the error-code are unused when displaying fatal-errors, since the Description ends with bit21.&lt;br /&gt;
&lt;br /&gt;
= Modules =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Kernel&lt;br /&gt;
|-&lt;br /&gt;
| 2 || FS&lt;br /&gt;
|-&lt;br /&gt;
| 3 || OS (Memory, Thread, Mutex, NVIDIA)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || HTCS&lt;br /&gt;
|-&lt;br /&gt;
| 5 || NCM&lt;br /&gt;
|-&lt;br /&gt;
| 6 || DD&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Debug Monitor&lt;br /&gt;
|-&lt;br /&gt;
| 8 || LR&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Loader&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CMIF (IPC command interface)&lt;br /&gt;
|-&lt;br /&gt;
| 11 || HIPC (IPC)&lt;br /&gt;
|-&lt;br /&gt;
| 15 || PM&lt;br /&gt;
|-&lt;br /&gt;
| 16 || NS&lt;br /&gt;
|-&lt;br /&gt;
| 17 || Sockets&lt;br /&gt;
|-&lt;br /&gt;
| 18 || HTC&lt;br /&gt;
|-&lt;br /&gt;
| 20 || NCM Content&lt;br /&gt;
|-&lt;br /&gt;
| 21 || SM&lt;br /&gt;
|-&lt;br /&gt;
| 22 || RO userland&lt;br /&gt;
|-&lt;br /&gt;
| 24 || SDMMC&lt;br /&gt;
|-&lt;br /&gt;
| 25 || OVLN&lt;br /&gt;
|-&lt;br /&gt;
| 26 || SPL&lt;br /&gt;
|-&lt;br /&gt;
| 30 || Bus&lt;br /&gt;
|-&lt;br /&gt;
| 100 || ETHC&lt;br /&gt;
|-&lt;br /&gt;
| 101 || I2C&lt;br /&gt;
|-&lt;br /&gt;
| 102 || GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 103 || UART&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Settings&lt;br /&gt;
|-&lt;br /&gt;
| 107 || WLAN&lt;br /&gt;
|-&lt;br /&gt;
| 108 || XCD&lt;br /&gt;
|-&lt;br /&gt;
| 110 || NIFM&lt;br /&gt;
|-&lt;br /&gt;
| 111 || Hwopus&lt;br /&gt;
|-&lt;br /&gt;
| 113 || Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
| 114 || VI&lt;br /&gt;
|-&lt;br /&gt;
| 115 || NFP&lt;br /&gt;
|-&lt;br /&gt;
| 116 || Time&lt;br /&gt;
|-&lt;br /&gt;
| 117 || FGM&lt;br /&gt;
|-&lt;br /&gt;
| 118 || OE&lt;br /&gt;
|-&lt;br /&gt;
| 120 || PCIe&lt;br /&gt;
|-&lt;br /&gt;
| 121 || Friends&lt;br /&gt;
|-&lt;br /&gt;
| 122 || BCAT&lt;br /&gt;
|-&lt;br /&gt;
| 123 || SSL&lt;br /&gt;
|-&lt;br /&gt;
| 124 || Account&lt;br /&gt;
|-&lt;br /&gt;
| 125 || News&lt;br /&gt;
|-&lt;br /&gt;
| 126 || Mii&lt;br /&gt;
|-&lt;br /&gt;
| 127 || NFC&lt;br /&gt;
|-&lt;br /&gt;
| 128 || AM&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Play Report&lt;br /&gt;
|-&lt;br /&gt;
| 130 || AHID&lt;br /&gt;
|-&lt;br /&gt;
| 132 || Home Menu (Qlaunch)&lt;br /&gt;
|-&lt;br /&gt;
| 133 || PCV&lt;br /&gt;
|-&lt;br /&gt;
| 134 || OMM&lt;br /&gt;
|-&lt;br /&gt;
| 135 || BPC&lt;br /&gt;
|-&lt;br /&gt;
| 136 || PSM&lt;br /&gt;
|-&lt;br /&gt;
| 137 || NIM&lt;br /&gt;
|-&lt;br /&gt;
| 138 || PSC&lt;br /&gt;
|-&lt;br /&gt;
| 139 || TC&lt;br /&gt;
|-&lt;br /&gt;
| 140 || USB&lt;br /&gt;
|-&lt;br /&gt;
| 141 || NSD&lt;br /&gt;
|-&lt;br /&gt;
| 142 || PCTL&lt;br /&gt;
|-&lt;br /&gt;
| 143 || BTM&lt;br /&gt;
|-&lt;br /&gt;
| 144 || EC (Shop)&lt;br /&gt;
|-&lt;br /&gt;
| 145 || ETicket&lt;br /&gt;
|-&lt;br /&gt;
| 146 || NGC (Bad Words)&lt;br /&gt;
|-&lt;br /&gt;
| 147 || Error Report&lt;br /&gt;
|-&lt;br /&gt;
| 148 || APM&lt;br /&gt;
|-&lt;br /&gt;
| 149 || CEC&lt;br /&gt;
|-&lt;br /&gt;
| 150 || Profiler&lt;br /&gt;
|-&lt;br /&gt;
| 151 || Error Upload&lt;br /&gt;
|-&lt;br /&gt;
| 153 || Audio&lt;br /&gt;
|-&lt;br /&gt;
| 154 || NPNS&lt;br /&gt;
|-&lt;br /&gt;
| 155 || NPNS HTTP Stream&lt;br /&gt;
|-&lt;br /&gt;
| 157 || ARP&lt;br /&gt;
|-&lt;br /&gt;
| 158 || Boot&lt;br /&gt;
|-&lt;br /&gt;
| 159 || SWKBD&lt;br /&gt;
|-&lt;br /&gt;
| 161 || NFC Mifare&lt;br /&gt;
|-&lt;br /&gt;
| 162 || Userland assert&lt;br /&gt;
|-&lt;br /&gt;
| 163 || Fatal&lt;br /&gt;
|-&lt;br /&gt;
| 164 || NIM Shop&lt;br /&gt;
|-&lt;br /&gt;
| 165 || SPSM&lt;br /&gt;
|-&lt;br /&gt;
| 167 || BGTC&lt;br /&gt;
|-&lt;br /&gt;
| 168 || Userland crash&lt;br /&gt;
|-&lt;br /&gt;
| 178 || PDM&lt;br /&gt;
|-&lt;br /&gt;
| 179 || OLSC&lt;br /&gt;
|-&lt;br /&gt;
| 180 || SREPO&lt;br /&gt;
|-&lt;br /&gt;
| 181 || Dauth&lt;br /&gt;
|-&lt;br /&gt;
| 191 || RTC&lt;br /&gt;
|-&lt;br /&gt;
| 192 || Regulator&lt;br /&gt;
|-&lt;br /&gt;
| 197 || Clkrst&lt;br /&gt;
|-&lt;br /&gt;
| 202 || HID&lt;br /&gt;
|-&lt;br /&gt;
| 203 || LDN&lt;br /&gt;
|-&lt;br /&gt;
| 205 || Irsensor&lt;br /&gt;
|-&lt;br /&gt;
| 206 || Capture&lt;br /&gt;
|-&lt;br /&gt;
| 208 || Manu&lt;br /&gt;
|-&lt;br /&gt;
| 209 || ATK&lt;br /&gt;
|-&lt;br /&gt;
| 210 || Web&lt;br /&gt;
|-&lt;br /&gt;
| 211 ||&lt;br /&gt;
|-&lt;br /&gt;
| 212 || GRC&lt;br /&gt;
|-&lt;br /&gt;
| 216 || Migration&lt;br /&gt;
|-&lt;br /&gt;
| 217 || Migration Idc Server&lt;br /&gt;
|-&lt;br /&gt;
| 345 || libnx&lt;br /&gt;
|-&lt;br /&gt;
| 346 || [[Homebrew ABI]]&lt;br /&gt;
|-&lt;br /&gt;
| 347 || Homebrew Loader&lt;br /&gt;
|-&lt;br /&gt;
| 348 || libnx Nvidia errors&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Error codes =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E01 || 1 || 7 || Session count exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C01 || 1 || 14 || Invalid kernel capability descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x4201 || 1 || 33 || Not Implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x7601 || 1 || 59 || Thread terminated/termination requested&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C01 || 1 || 70 || No more debug events&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA01 || 1 || 101 || Invalid size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC01 || 1 || 102 || Invalid address&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE01 || 1 || 103 || Resource exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD001 || 1 || 104 || Memory exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD201 || 1 || 105 || Handle-table exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 1 || 106 || Invalid memory state / invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD801 || 1 || 108 || Invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC01 || 1 || 110 || Invalid memory range&lt;br /&gt;
|-&lt;br /&gt;
| 0xE001 || 1 || 112 || Invalid thread priority.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE201 || 1 || 113 || Invalid processor id.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE401 || 1 || 114 || Invalid handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE601 || 1 || 115 || Invalid pointer/Syscall copy from user failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE801 || 1 || 116 || Invalid combination&lt;br /&gt;
|-&lt;br /&gt;
| 0xEA01 || 1 || 117 || Time out. Also when you give 0 handles to svcWaitSynchronizationN.&lt;br /&gt;
|-&lt;br /&gt;
| 0xEC01 || 1 || 118 || Operation canceled&lt;br /&gt;
|-&lt;br /&gt;
| 0xEE01 || 1 || 119 || Out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0xF001 || 1 || 120 || Invalid enum&lt;br /&gt;
|-&lt;br /&gt;
| 0xF201 || 1 || 121 || No such entry&lt;br /&gt;
|-&lt;br /&gt;
| 0xF401 || 1 || 122 || Irq/DeviceAddressSpace/{...} already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xF601 || 1 || 123 || Port remote dead&lt;br /&gt;
|-&lt;br /&gt;
| 0xF801 || 1 || 124 || [Usermode] Unhandled interrupt/exception&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA01 || 1 || 125 || Process already started/Wrong memory permission?&lt;br /&gt;
|-&lt;br /&gt;
| 0xFC01 || 1 || 126 || Reserved value&lt;br /&gt;
|-&lt;br /&gt;
| 0xFE01 || 1 || 127 || Invalid hardware breakpoint&lt;br /&gt;
|-&lt;br /&gt;
| 0x10001 || 1 || 128 || [Usermode] Fatal exception&lt;br /&gt;
|-&lt;br /&gt;
| 0x10201 || 1 || 129 || Last thread didn&#039;t belong to your process&lt;br /&gt;
|-&lt;br /&gt;
| 0x10601 || 1 || 131 || Port closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x10801 || 1 || 132 || Resource limit exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x20801 || 1 || 260 || Command buffer too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x40A01 || 1 || 517 || Invalid process ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40C01 || 1 || 518 || Invalid thread ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40E01 || 1 || 519 || Invalid thread ID (used in svcGetDebugThreadParam).&lt;br /&gt;
|-&lt;br /&gt;
| 0x41001 || 1 || 520 || Process not being debugged&lt;br /&gt;
|-&lt;br /&gt;
| 0x202 || 2 || 1 || Path does not exist.&lt;br /&gt;
|-&lt;br /&gt;
| 0x402 || 2 || 2 || Path already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE02 || 2 || 7 || Resource already in use (file already opened, savedata filesystem already mounted).&lt;br /&gt;
|-&lt;br /&gt;
| 0x4602 || 2 || 35 || Not enough free space for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4802 || 2 || 36 || Not enough free space for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A02 || 2 || 37 || Not enough free space for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C02 || 2 || 38 || Not enough free space for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4E02 || 2 || 39 || Not enough free space on SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6402 || 2 || 50 || NCA is older than version 3, or NCA SDK version is older than 0.11.0.0&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 2 || 60 || The specified [[NCA]]-type doesn&#039;t exist for this title.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 2 || 1001 || Process does not have RomFs &lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 2 || 1002 || Title-id not found / savedata not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA202 || 2 || 2001 || SD card not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13B002 || 2 || 2520 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13DA02 || 2 || 2541 || Version check failed when mounting gamecard sysupdate partition?&lt;br /&gt;
|-&lt;br /&gt;
| 0x171402 || 2 || 2954 || Invalid gamecard handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 2 || 3001 || Unimplemented behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x177602 || 2 || 3003 || File/Directory already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x190202 || 2 || 3201 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190602 || 2 || 3203 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190802 || 2 || 3204 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190A02 || 2 || 3205 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190C02 || 2 || 3206 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x191002 || 2 || 3208 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x195802 || 2 || 3244 || Allocation failure related to SD cards&lt;br /&gt;
|-&lt;br /&gt;
| 0x196002 || 2 || 3248 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x196202 || 2 || 3249 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A3E02 || 2 || 3359 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4002 || 2 || 3360 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4A02 || 2 || 3365 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x21BC02 || 2 || 4318 || Invalid save data filesystem magic (valid magic is SAVE in ASCII)&lt;br /&gt;
|-&lt;br /&gt;
| 0x234202 || 2 || 4513 || Error reading ACID section in NPDM&lt;br /&gt;
|-&lt;br /&gt;
| 0x234402 || 2 || 4514 || Invalid NPDM ACID section size&lt;br /&gt;
|-&lt;br /&gt;
| 0x234602 || 2 || 4515 || Last byte of the ACID modulus is zero&lt;br /&gt;
|-&lt;br /&gt;
| 0x234802 || 2 || 4516 || Invalid ACID fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234A02 || 2 || 4517 || Invalid NCA magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x234C02 || 2 || 4518 || Invalid NCA header fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234E02 || 2 || 4519 || Invalid NCA header ACID signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x235002 || 2 || 4520 || Invalid NCA header section hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x235202 || 2 || 4521 || Invalid NCA Key index&lt;br /&gt;
|-&lt;br /&gt;
| 0x235602 || 2 || 4523 || Invalid encryption type&lt;br /&gt;
|-&lt;br /&gt;
| 0x235802 || 2 || 4524 || Redirection BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235A02 || 2 || 4525 || Encryption BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235C02 || 2 || 4526 || Redirection BKTR table end offset is past the Encryption BKTR table start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x235E02 || 2 || 4527 || NCA-path used with the wrong titleID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x236002 || 2 || 4528 || NCA header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236202 || 2 || 4529 || NCA FS header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236802 || 2 || 4532 || PartitionFS hash block size is not a power of 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236A02 || 2 || 4533 || PartitionFS hash &amp;quot;always_2&amp;quot; field is not 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236C02 || 2 || 4534 || PartitionFS hash table is too small for main data&lt;br /&gt;
|-&lt;br /&gt;
| 0x236E02 || 2 || 4535 || Invalid PartitionFS block hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244402 || 2 || 4642 || Invalid Partition file hashed region bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x244602 || 2 || 4643 || Invalid Partition FS hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244802 || 2 || 4644 || Invalid PFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244A02 || 2 || 4645 || Invalid HFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244C02 || 2 || 4646 || Invalid name offset for Partition FS file entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x244E02 || 2 || 4647 || Calculated Partition FS header size changed between 2 consecutive reads&lt;br /&gt;
|-&lt;br /&gt;
| 0x249802 || 2 || 4684 || Invalid FAT file number.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249C02 || 2 || 4686 || Invalid FAT format for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249E02 || 2 || 4687 || Invalid FAT format for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A002 || 2 || 4688 || Invalid FAT format for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A202 || 2 || 4689 || Invalid FAT format for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x250E02 || 2 || 4743 || [[NAX0|Corrupted]] NAX0 header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x251002 || 2 || 4744 || Invalid [[NAX0]] magicnum.&lt;br /&gt;
|-&lt;br /&gt;
| 0x280202 || 2 || 5121 || Invalid FAT size&lt;br /&gt;
|-&lt;br /&gt;
| 0x280402 || 2 || 5122 || Invalid FAT BPB (BIOS Parameter Block)&lt;br /&gt;
|-&lt;br /&gt;
| 0x280602 || 2 || 5123 || Invalid FAT parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x280802 || 2 || 5124 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280A02 || 2 || 5125 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280C02 || 2 || 5126 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280E02 || 2 || 5127 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x296A02 || 2 || 5301 || Mountpoint not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 || 2 || 6001 || Invalid input&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE602 || 2 || 6003 || Path too long&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE802 || 2 || 6004 || Invalid character.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEA02 || 2 || 6005 || Invalid directory path.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEC02 || 2 || 6006 || Unable to retrieve directory from path&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 2 || 6061 || Offset outside storage&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 || 2 || 6300 || Operation not supported&lt;br /&gt;
|-&lt;br /&gt;
| 0x31AE02 || 2 || 6359 || Query ID not supported&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 || 2 || 6400 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x326602 || 2 || 6451 || Missing titlekey(?) required to mount content&lt;br /&gt;
|-&lt;br /&gt;
| 0x326E02 || 2 || 6455 || File not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327002 || 2 || 6456 || Directory not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327402 || 2 || 6458 || FS allocators already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x327602 || 2 || 6459 || FS allocators already used&lt;br /&gt;
|-&lt;br /&gt;
| 0x327A02 || 2 || 6461 || FS allocator alignment violation&lt;br /&gt;
|-&lt;br /&gt;
| 0x339402 || 2 || 6602 || File not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x339602 || 2 || 6603 || Directory not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBC02 || 2 || 7902 || RomFs table: Entry not found in dictionary&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBE02 || 2 || 7903 || RomFs table: File not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC002 || 2 || 7904 || RomFs table: Directory not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC402 || 2 || 7906 || RomFs table: Entry already exists when trying to add a new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC602 || 2 || 7907 || RomFs table: Insufficient space to add new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC802 || 2 || 7908 || RomFs table: Unable to add new directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCA02 || 2 || 7909 || RomFs table: Unable to add new file&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCC02 || 2 || 7910 || RomFs directory has no more child directories/files when iterating&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DD402 || 2 || 7914 || RomFs table: Path is file, not directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x803 || 3 || 4 || OS busy&lt;br /&gt;
|-&lt;br /&gt;
| 0xE03 || 3 || 7 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x1003 || 3 || 8 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1203 || 3 || 9 || Out of resources&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EA03 || 3 || 501 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE03 || 3 || 503 || Invalid memory mirror&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FE03 || 3 || 1023 || TLS slot is not allocated&lt;br /&gt;
|-&lt;br /&gt;
| 0xA05 || 5 || 5 || [[Content_Manager_services|NcaID]] not found. Returned when attempting to mount titles which exist that aren&#039;t *8XX titles, the same way *8XX titles are mounted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE05 || 5 || 7 || TitleId not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1805 || 5 || 12 || Invalid StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC05 || 5 || 110 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x17C05 || 5 || 190 || Gamecard not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F405 || 5 || 250 || Sdcard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x20805 || 5 || 260 || Storage not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0x806 || 6 || 4 || Converted from error 0xD401&lt;br /&gt;
|-&lt;br /&gt;
| 0x1006 || 6 || 8 || Converted from error 0xE401&lt;br /&gt;
|-&lt;br /&gt;
| 0x408 || 8 || 2 || Program location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x608 || 8 || 3 || Invalid context for control location&lt;br /&gt;
|-&lt;br /&gt;
| 0x808 || 8 || 4 || Storage not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA08 || 8 || 5 || Access denied&lt;br /&gt;
|-&lt;br /&gt;
| 0xC08 || 8 || 6 || Offline manual HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xE08 || 8 || 7 || Title is not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1008 || 8 || 8 || Control location entry for host not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1208 || 8 || 9 || Legal info HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1408 || 8 || 10 || Program location for debug entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x209 || 9 || 1 || Args too long.&lt;br /&gt;
|-&lt;br /&gt;
| 0x409 || 9 || 2 || Maximum processes loaded.&lt;br /&gt;
|-&lt;br /&gt;
| 0x609 || 9 || 3 || NPDM too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x19009 || 9 || 200 || Invalid access control sizes in NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x809 || 9 || 4 || Invalid NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0xA09 || 9 || 5 || Invalid files.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE09 || 9 || 7 || Already registered.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1009 || 9 || 8 || Title not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1209 || 9 || 9 || Title-id in ACI0 doesn&#039;t match range in ACID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6609 || 9 || 51 || Invalid memory state/permission&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A09 || 9 || 53 || Invalid NRR&lt;br /&gt;
|-&lt;br /&gt;
| 0xA209 || 9 || 81 || Unaligned NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xA409 || 9 || 82 || Bad NRR size&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA09 || 9 || 85 || Bad NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xAE09 || 9 || 87 || Bad initialization&lt;br /&gt;
|-&lt;br /&gt;
| 0xC809 || 9 || 100 || Unknown ACI0 descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE09 || 9 || 103 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD009 || 9 || 104 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;SyscallMask&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD409 || 9 || 106 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapIoOrNormalRange&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD609 || 9 || 107 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapNormalPage&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xDE09 || 9 || 111 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;InterruptPair&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE209 || 9 || 113 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;ApplicationType&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE409 || 9 || 114 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelReleaseVersion&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE609 || 9 || 115 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;HandleTableSize&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE809 || 9 || 116 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;DebugFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x1940A || 10 || 202 || Invalid CMIF header size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A60A || 10 || 211 || Invalid CMIF input header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A80A || 10 || 212 || Invalid CMIF output header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA0A || 10 || 221 || Invalid method dispatch ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D60A || 10 || 235 || Invalid in object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D80A || 10 || 236 || Invalid out object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0A || 10 || 301 || Out of domain entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20B || 11 || 1 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC0B || 11 || 102 || Out of server session memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x11A0B || 11 || 141 || Went past maximum during marshalling.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1900B || 11 || 200 || Session doesn&#039;t support domains.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0B || 11 || 301 || Remote process is dead.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3260B || 11 || 403 || Unknown request type&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D60B || 11 || 491 || IPC Query 1 failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20F || 15 || 1 || Pid not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x60F || 15 || 3 || Process has no pending events&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0F || 15 || 5 || Application already running&lt;br /&gt;
|-&lt;br /&gt;
| 0x410 || 16 || 2 || Title-id not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xF010 || 16 || 120 || Gamecard sysupdate not required&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F610 || 16 || 251 || Unexpected StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0x215 || 21 || 1 || Out of processes&lt;br /&gt;
|-&lt;br /&gt;
| 0x415 || 21 || 2 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x615 || 21 || 3 || Max sessions&lt;br /&gt;
|-&lt;br /&gt;
| 0x815 || 21 || 4 || Service already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xA15 || 21 || 5 || Out of services&lt;br /&gt;
|-&lt;br /&gt;
| 0xC15 || 21 || 6 || Invalid name (all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0xE15 || 21 || 7 || Service not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1015 || 21 || 8 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x1215 || 21 || 9 || Service Access Control too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x416 || 22 || 2 || Address space is full&lt;br /&gt;
|-&lt;br /&gt;
| 0x616 || 22 || 3 || NRO already loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x816 || 22 || 4 || Invalid NRO header values&lt;br /&gt;
|-&lt;br /&gt;
| 0xC16 || 22 || 6 || Bad NRR magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x1016 || 22 || 8 || Reached max NRR count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1216 || 22 || 9 || Unable to verify NRO hash or NRR signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x80216 || 22 || 1025 || Address not page-aligned&lt;br /&gt;
|-&lt;br /&gt;
| 0x80416 || 22 || 1026 || Incorrect NRO size&lt;br /&gt;
|-&lt;br /&gt;
| 0x80816 || 22 || 1028 || NRO not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80A16 || 22 || 1029 || NRR not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80C16 || 22 || 1030 || Already initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E16 || 22 || 1031 || Not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x21A || 26 || 1 || SMC is not implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x41A || 26 || 2 || SMC argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A || 26 || 3 || SMC is currently in progress/secmon is busy&lt;br /&gt;
|-&lt;br /&gt;
| 0x81A || 26 || 4 || Secmon not currently performing async operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xA1A || 26 || 5 || Invalid SMC async callback key&lt;br /&gt;
|-&lt;br /&gt;
| 0xC1A || 26 || 6 || SMC is blacklisted during current boot&lt;br /&gt;
|-&lt;br /&gt;
| 0xC81A || 26 || 100 || Invalid (buffer) size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Unknown SMC error&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Decryption failure&lt;br /&gt;
|-&lt;br /&gt;
| 0xD01A || 26 || 104 || No AES keyslots available&lt;br /&gt;
|-&lt;br /&gt;
| 0xD21A || 26 || 105 || Invalid AES keyslot&lt;br /&gt;
|-&lt;br /&gt;
| 0xD41A || 26 || 106 || BootReason already set&lt;br /&gt;
|-&lt;br /&gt;
| 0xD61A || 26 || 107 || BootReason not set&lt;br /&gt;
|-&lt;br /&gt;
| 0xD81A || 26 || 108 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x19269 || 105 || 201 || Null settings name&lt;br /&gt;
|-&lt;br /&gt;
| 0x19469 || 105 || 202 || Null settings key&lt;br /&gt;
|-&lt;br /&gt;
| 0x19669 || 105 || 203 || Null settings value&lt;br /&gt;
|-&lt;br /&gt;
| 0x19A69 || 105 || 205 || Null settings value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A069 || 105 || 208 || Null setting value size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A269 || 105 || 209 || Null debug mode flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA69 || 105 || 221 || Setting group name has zero length&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BC69 || 105 || 222 || Empty settings item key&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E269 || 105 || 241 || Setting group name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E469 || 105 || 242 || Setting name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x20A69 || 105 || 261 || Setting group name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x20C69 || 105 || 262 || Setting name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x4DA69 || 105 || 621 || Null language code buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4EE69 || 105 || 631 || Null network settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4F069 || 105 || 632 || Null network settings output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x50269 || 105 || 641 || Null backlight settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51669 || 105 || 651 || Null Bluetooth device setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51869 || 105 || 652 || Null Bluetooth device setting output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51A69 || 105 || 653 || Null Bluetooth enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51C69 || 105 || 654 || Null Bluetooth AFH enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51E69 || 105 || 655 || Null Bluetooth boost enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52069 || 105 || 656 || Null BLE pairing settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52269 || 105 || 657 || Null BLE pairing settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52A69 || 105 || 661 || Null external steady clock source ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52C69 || 105 || 662 || Null user system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52E69 || 105 || 663 || Null network system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53069 || 105 || 664 || Null user system clock automatic correction enabled flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53269 || 105 || 665 || Null shutdown RTC value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53469 || 105 || 666 || Null external steady clock internal offset buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53E69 || 105 || 671 || Null account settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55269 || 105 || 681 || Null audio volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55669 || 105 || 683 || Null ForceMuteOnHeadphoneRemoved buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55869 || 105 || 684 || Null headphone volume warning count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55E69 || 105 || 687 || Invalid audio output mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x56069 || 105 || 688 || Null headphone volume update flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x56669 || 105 || 691 || Null console information upload flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57A69 || 105 || 701 || Null automatic application download flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57C69 || 105 || 702 || Null notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57E69 || 105 || 703 || Null account notification settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58069 || 105 || 704 || Null account notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58E69 || 105 || 711 || Null vibration master volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59069 || 105 || 712 || Null NX controller settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59269 || 105 || 713 || Null NX controller settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59469 || 105 || 714 || Null USB full key enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A269 || 105 || 721 || Null TV settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A469 || 105 || 722 || Null EDID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5B669 || 105 || 731 || Null data deletion settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CA69 || 105 || 741 || Null initial system applet program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CC69 || 105 || 742 || Null overlay disp program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CE69 || 105 || 743 || Null IsInRepairProcess buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5D069 || 105 || 744 || Null RequiresRunRepairTimeReviser buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5DE69 || 105 || 751 || Null device timezone location name buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5F269 || 105 || 761 || Null primary album storage buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60669 || 105 || 771 || Null USB 3.0 enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60869 || 105 || 772 || Null USB Type-C power source circuit version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A69 || 105 || 781 || Null battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x62E69 || 105 || 791 || Null serial number buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64269 || 105 || 801 || Null lock screen flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64669 || 105 || 803 || Null color set ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64869 || 105 || 804 || Null quest flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64A69 || 105 || 805 || Null wireless certification file size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64C69 || 105 || 806 || Null wireless certification file buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64E69 || 105 || 807 || Null initial launch settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65069 || 105 || 808 || Null device nickname buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65269 || 105 || 809 || Null battery percentage flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65469 || 105 || 810 || Null applet launch flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7E869 || 105 || 1012 || Null wireless LAN enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FA69 || 105 || 1021 || Null product model buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E69 || 105 || 1031 || Null NFC enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82269 || 105 || 1041 || Null ECI device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82469 || 105 || 1042 || Null E-Ticket device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x83669 || 105 || 1051 || Null sleep settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84A69 || 105 || 1061 || Null EULA version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84C69 || 105 || 1062 || Null EULA version entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x85E69 || 105 || 1071 || Null LDN channel buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87269 || 105 || 1081 || Null SSL key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87469 || 105 || 1082 || Null SSL certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x88669 || 105 || 1091 || Null telemetry flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89A69 || 105 || 1101 || Null Gamecard key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89C69 || 105 || 1102 || Null Gamecard certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8AE69 || 105 || 1111 || Null PTM battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B069 || 105 || 1112 || Null PTM fuel gauge parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C269 || 105 || 1121 || Null ECI device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C469 || 105 || 1122 || Null E-Ticket device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D669 || 105 || 1131 || Null speaker parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EA69 || 105 || 1141 || Null firmware version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EC69 || 105 || 1142 || Null firmware version digest buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EE69 || 105 || 1143 || Null rebootless system update version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8FE69 || 105 || 1151 || Null Mii author ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x91269 || 105 || 1161 || Null fatal flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x92669 || 105 || 1171 || Null auto update enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x93A69 || 105 || 1181 || Null external RTC reset flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x94E69 || 105 || 1191 || Null push notification activity mode buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x96269 || 105 || 1201 || Null service discovery control setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x97669 || 105 || 1211 || Null error report share permission buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x98A69 || 105 || 1221 || Null LCD vendor ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x99E69 || 105 || 1231 || Null console SixAxis sensor acceleration bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A069 || 105 || 1232 || Null console SixAxis sensor angular velocity bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A269 || 105 || 1233 || Null console SixAxis sensor acceleration gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A469 || 105 || 1234 || Null console SixAxis sensor angular velocity gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A669 || 105 || 1235 || Null console SixAxis sensor angular velocity time bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A869 || 105 || 1236 || Null console SixAxis sensor angular acceleration buffer &lt;br /&gt;
|-&lt;br /&gt;
| 0x9B269 || 105 || 1241 || Null keyboard layout buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9BA69 || 105 || 1245 || Invalid keyboard layout&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C669 || 105 || 1251 || Null web inspector flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C869 || 105 || 1252 || Null allowed SSL hosts buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CA69 || 105 || 1253 || Null allowed SSL hosts entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CC69 || 105 || 1254 || Null host FS mount point buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9EE69 || 105 || 1271 || Null Amiibo key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F069 || 105 || 1272 || Null Amiibo ECQV certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F269 || 105 || 1273 || Null Amiibo ECDSA certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F469 || 105 || 1274 || Null Amiibo ECQV BLS key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F669 || 105 || 1275 || Null Amiibo ECQV BLS certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F869 || 105 || 1276 || Null Amiibo ECQV BLS root certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x272 || 114 || 1 || Generic error&lt;br /&gt;
|-&lt;br /&gt;
| 0xC72 || 114 || 6 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || 116 || 0 || Time service not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC74 || 116 || 102 || Time not set&lt;br /&gt;
|-&lt;br /&gt;
| 0x19074 || 116 || 200 || Invalid time comparison&lt;br /&gt;
|-&lt;br /&gt;
| 0x19274 || 116 || 201 || Signed overflow/underflow&lt;br /&gt;
|-&lt;br /&gt;
| 0x64274 || 116 || 801 || Memory allocation failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x70A74 || 116 || 901 || Null pointer&lt;br /&gt;
|-&lt;br /&gt;
| 0x70C74 || 116 || 902 || Value out of valid range&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BA74 || 116 || 989 || Entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BC74 || 116 || 990 || Unimplemented functionality&lt;br /&gt;
|-&lt;br /&gt;
| 0x287C || 124 || 20 || Argument is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C7C || 124 || 22 || Argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C7C || 124 || 30 || Bad input buffer size&lt;br /&gt;
|-&lt;br /&gt;
| 0x407C || 124 || 32 || Invalid input buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x27E || 126 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x87E || 126 || 4 || Entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE7E || 126 || 67 || Invalid database signature value (should be &amp;quot;NFDB&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0xD27E || 126 || 69 || Invalid database entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1987E || 126 || 204 || Development/debug-only behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x480 || 128 || 2 || IStorage not available.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4680 || 128 || 35 || Error while launching applet.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A80 || 128 || 37 || Title-ID not found. Caused by code 0x410 when applet launch fails&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E880 || 128 || 500 || Invalid IStorage size (negative?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EC80 || 128 || 502 || IStorage has already been opened by another accessor&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE80 || 128 || 503 || IStorage Read/Write out-of-bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x3FE80 || 128 || 511 || IStorage opened as wrong type (data opened as transfermem, transfermem opened as data)&lt;br /&gt;
|-&lt;br /&gt;
| 0x40080 || 128 || 512 || Unbalanced fatal section leave (returned when executing LeaveFatalSection without a preceding EnterFatalSection call)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B080 || 128 || 600 || Failed to allocate memory for IStorage&lt;br /&gt;
|-&lt;br /&gt;
| 0x59080 || 128 || 712 || Thread stack pool exhausted (out of memory)&lt;br /&gt;
|-&lt;br /&gt;
| 0x7A880 || 128 || 980 || &amp;lt;code&amp;gt;am.debug!dev_function&amp;lt;/code&amp;gt; setting needs to be set&lt;br /&gt;
|-&lt;br /&gt;
| 0xA83 || 131 || 5 || Unrecognized applet ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x485 || 133 || 2 || Invalid DVFS table ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x885 || 133 || 4 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x3CF089 || 137 || 7800 || Unknown/invalid libcurl error.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E8289-0x3F4089 || 137 || 8001-8096 || libcurl error 1-96. Some of the libcurl errors in the error-table map to the above unknown-libcurl-error however.&lt;br /&gt;
|-&lt;br /&gt;
| 0x68A || 138 || 3 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x668C || 140 || 51 || USB data-transfer in progress&lt;br /&gt;
|-&lt;br /&gt;
| 0xD48C || 140 || 106 || Invalid descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x1928C || 140 || 201 || USB device not bound / interface already enabled&lt;br /&gt;
|-&lt;br /&gt;
| 0x299 || 153 || 1 || Invalid audio device&lt;br /&gt;
|-&lt;br /&gt;
| 0x499 || 153 || 2 || Operation couldn&#039;t complete successfully&lt;br /&gt;
|-&lt;br /&gt;
| 0x699 || 153 || 3 || Invalid sample rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x899 || 153 || 4 || Buffer size too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x1099 || 153 || 8 || Too many buffers are still unreleased&lt;br /&gt;
|-&lt;br /&gt;
| 0x1499 || 153 || 10 || Invalid channel count&lt;br /&gt;
|-&lt;br /&gt;
| 0x40299 || 153 || 513 || Invalid/Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0099 || 153 || 1536 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0899 || 153 || 1540 || Audio output was already started&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C9D || 157 || 30 || Address is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E9D || 157 || 31 || PID is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x549D || 157 || 42 || Already bound&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC9D || 157 || 102 || Invalid PID&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA3 || 163 ||  5 || System is booting up repair process without VOL+ held down.&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA3 || 163 || 6 || System is booting up repair process that requires RepairTimeReviser but does not have special cartridge inserted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8B2 || 178 || 100 || Invalid user ID&lt;br /&gt;
|-&lt;br /&gt;
| 0xCAB2 || 178 || 101 || User does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 0x12CB2 || 178 || 150 || Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| 0x190B2 || 178 || 200 || File storage failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x58ACA || 202 || 709 || Npad ID is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF0CD || 205 || 120 || IR image data not available/ready.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A8CD || 205 || 212 || IR camera handle pointer is null.&lt;br /&gt;
|-&lt;br /&gt;
| 0x198CD || 205 || 204 || IR camera invalid handle value.&lt;br /&gt;
|-&lt;br /&gt;
| 0x35B || 347 || 1 || Failed to init SM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x55B || 347 || 2 || Failed to init FS.&lt;br /&gt;
|-&lt;br /&gt;
| 0x75B || 347 || 3 || Failed to open NRO file. May also happen when SD card isn&#039;t inserted / SD mounting failed earlier.&lt;br /&gt;
|-&lt;br /&gt;
| 0x95B || 347 || 4 || Failed to read NRO header.&lt;br /&gt;
|-&lt;br /&gt;
| 0xB5B || 347 || 5 || Invalid NRO magic.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD5B || 347 || 6 || Invalid NRO segments.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF5B || 347 || 7 || Failed to read NRO.&lt;br /&gt;
|-&lt;br /&gt;
| 0x135B || 347 || 9 || Failed to allocate heap.&lt;br /&gt;
|-&lt;br /&gt;
| 0x255B || 347 || 18 || Failed to map code-binary memory.&lt;br /&gt;
|-&lt;br /&gt;
| 0x275B || 347 || 19 || Failed to map code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x295B || 347 || 20 || Failed to map code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B5B || 347 || 21 || Failed to map code memory (.data+.bss).&lt;br /&gt;
|-&lt;br /&gt;
| 0x315B || 347 || 24 || Failed to unmap code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x335B || 347 || 25 || Failed to unmap code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x355B || 347 || 26 || Failed to unmap code memory (.data+.bss).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FS Error Codes ==&lt;br /&gt;
The following are the error codes recognized by nn::fs::detail::LogErrorMessage found in some [[Factory Setup|factory]] titles:&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Description || Message&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 60 || Error: Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 106 || Error: Passed buffer is not usable for fs library.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 1001 || Error: Specified partition is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 1002 || Error: Specified target is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA002 - 0x138602 || 2000 - 2499 || Error: Failed to access SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x136802 - 0x176E02 || 2500 - 2999 || Error: Failed to access game card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 3001 || Error: Specified operation is not implemented.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177A02 || 3005 || Error: Specified value is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B5802 - 0x1F3E02 || 3500 - 3999 || Error: Failed to access MMC.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4202 - 0x219602 || 4001 - 4299 || Error: ROM is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x219A02 - 0x232602 || 4301 - 4499 || Error: Save data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x232A02 - 0x23EE02 || 4501 - 4599 || Error: NCA is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x23F202 - 0x243E02 || 4601 - 4639 || Error: Integrity verification failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x244202 - 0x246602 || 4641 - 4659 || Error: Partition FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x246A02 - 0x248E02 || 4661 - 4679 || Error: Built-in-storage is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249202 - 0x24B602 || 4681 - 4699 || Error: FAT FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24BA02 - 0x24DE02 || 4701 - 4719 || Error: HOST FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4002 - 0x270E02 || 4000, 4300, 4500, 4600, 4640, 4660, 4680, 4700, 4720-4999 || Error: Data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x271002 - 0x2EDE02 || 5000-5999 || Error: Unexpected failure occurred.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE402 - 0x2F1A02 || 6002-6029 || Error: Invalid path was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 6061 || Error: Invalid offset was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5C02 || 6062 || Error: Invalid size was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5E02 || 6063 || Error: Null pointer argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE002 || 6000 || Error: Precondition violation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 - 0x306E02 || 6001-6199 || Error: Invalid argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x307202 || 6201 || Error: OpenMode_AllowAppend is required for implicit extension of file size by WriteFile().&lt;br /&gt;
|-&lt;br /&gt;
| 0x307002 - 0x313602 || 6200, 6202 - 6299 || Error: Invalid operation for the open mode.&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 - 0x31FE02 || 6300-6399 || Error: Unsupported operation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 - 0x32C602 || 6400-6499 || Error: Permission denied.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346402 || 6706 || Error: Enough journal space is not left.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346A02 || 6709 || Error: The open count of files and directories reached the limitation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Fatal Errors =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Description&lt;br /&gt;
|-&lt;br /&gt;
| 2162-0002&lt;br /&gt;
| Can be triggered by running [[SVC|svcBreak]]. The svcBreak params have no effect on the value of the thrown error-code.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0000&lt;br /&gt;
| Userland ARM undefined instruction exception&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0001&lt;br /&gt;
| Userland ARM prefetch-abort due to PC set to non-executable region&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0002&lt;br /&gt;
| Userland ARM data abort. Also caused by abnormal process termination via [[SVC|svcExitProcess]]. Note: directly jumping to nnMain()-retaddr from non-main-thread has the same result.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0003&lt;br /&gt;
| Userland PC address not aligned to 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0008&lt;br /&gt;
| Can occur when attempting to call an svc outside the whitelist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Support Errors =&lt;br /&gt;
This section is for Support Errors displayed by the error-applet, separate from the normal Result errors.&lt;br /&gt;
&lt;br /&gt;
== Support Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [[Internet_Browser|General web-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 809 || [[Internet_Browser|WifiWebAuthApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [[Internet_Browser|Whitelisted-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 811 || [[Internet_Browser|ShopN]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
8XX is for/includes system applets.&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| {web-applets listed above}&lt;br /&gt;
| 2750&lt;br /&gt;
| MP4 parsing failed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Normal error-codes displayed by the system also use the same format as fatal-errors.&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Savegames&amp;diff=6490</id>
		<title>Savegames</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Savegames&amp;diff=6490"/>
		<updated>2019-04-02T19:41:42Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* AES CMAC header */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the format of save files contained in NAND. These files are stored as completely unencrypted, plaintext data. Save files are not cleared upon creation, resulting in possible garbage data in unused portions of the container.&lt;br /&gt;
&lt;br /&gt;
= Main header =&lt;br /&gt;
&lt;br /&gt;
The header is 0x4000 bytes long.&lt;br /&gt;
&lt;br /&gt;
There are 2 headers stored at 0x0 and 0x4000, presumably for commit and rollback purposes.&lt;br /&gt;
&lt;br /&gt;
Decimal versions are separated as Major, Minor, Micro, and Bugfix with each using one byte. e.g. version 3.4.5.6 would be 0x03040506.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Image offset&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x000&lt;br /&gt;
| 0x100&lt;br /&gt;
| AES-CMAC header&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 0x200&lt;br /&gt;
| DISF header&lt;br /&gt;
|-&lt;br /&gt;
| 0x300&lt;br /&gt;
| 0x44&lt;br /&gt;
| Duplex header&lt;br /&gt;
|-&lt;br /&gt;
| 0x344&lt;br /&gt;
| 0xC4&lt;br /&gt;
| Integrity verification header&lt;br /&gt;
|-&lt;br /&gt;
| 0x408&lt;br /&gt;
| 0x200&lt;br /&gt;
| Journal header&lt;br /&gt;
|-&lt;br /&gt;
| 0x608&lt;br /&gt;
| 0x48&lt;br /&gt;
| Save header&lt;br /&gt;
|-&lt;br /&gt;
| 0x650&lt;br /&gt;
| 0x40&lt;br /&gt;
| Main data remap header&lt;br /&gt;
|-&lt;br /&gt;
| 0x690&lt;br /&gt;
| 0x40&lt;br /&gt;
| Meta data remap header&lt;br /&gt;
|-&lt;br /&gt;
| 0x6D0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x6D8&lt;br /&gt;
| 0x200&lt;br /&gt;
| Extra data A&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D8&lt;br /&gt;
| 0x200&lt;br /&gt;
| Extra data B&lt;br /&gt;
|-&lt;br /&gt;
| 0xAD8&lt;br /&gt;
| 0x3528&lt;br /&gt;
| Additional storage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The additional storage at the end of the header is used to store any extra header data. This data&#039;s structure is determined by offsets stored in the main part of the header.&lt;br /&gt;
&lt;br /&gt;
== AES CMAC header ==&lt;br /&gt;
&lt;br /&gt;
This is internally referred to as MasterHeaderMac.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Image offset&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x10&lt;br /&gt;
| AES-CMAC over DISF header (size 0x200)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0xF0&lt;br /&gt;
| Zero padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The final CMAC key used for this is generated using GenerateAesKek with a kek source and the device key, along with and LoadAesKey and a set key seed.&lt;br /&gt;
&lt;br /&gt;
== DISF ==&lt;br /&gt;
&lt;br /&gt;
This section contains information about the structure of the save file.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x000&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;DISF&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x004&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Major version must be 4 or 5. Only system version 5.0.0+ can read version 5 save files)&lt;br /&gt;
|-&lt;br /&gt;
| 0x008&lt;br /&gt;
| 32&lt;br /&gt;
| Hash of start of DPFS to end of 0x4000 block (0x300-0x3FFF)&lt;br /&gt;
|-&lt;br /&gt;
| 0x028&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap mapping table offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x030&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap mapping table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x038&lt;br /&gt;
| 8&lt;br /&gt;
| Meta data remap mapping table offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x040&lt;br /&gt;
| 8&lt;br /&gt;
| Meta data remap mapping table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x048&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x050&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap size&lt;br /&gt;
|-&lt;br /&gt;
| 0x058&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 1 virtual offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x060&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 1 virtual offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x068&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x070&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 2 virtual offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x078&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 2 virtual offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x080&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x088&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x090&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage data size A&lt;br /&gt;
|-&lt;br /&gt;
| 0x098&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage data size B&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A0&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage journal size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A8&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex master bitmap offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B0&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex master bitmap offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B8&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex master bitmap size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C0&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC master hash offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C8&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC master hash offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D0&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC master hash size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D8&lt;br /&gt;
| 8&lt;br /&gt;
| Journal block table virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E0&lt;br /&gt;
| 8&lt;br /&gt;
| Journal block table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E8&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset of bitmap of modified physical journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F0&lt;br /&gt;
| 8&lt;br /&gt;
| Size of bitmap of modified physical journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F8&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset of bitmap of modified virtual journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 8&lt;br /&gt;
| Size of bitmap of modified virtual journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x108&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset of bitmap of free journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x110&lt;br /&gt;
| 8&lt;br /&gt;
| Size of bitmap of free journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x118&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 1 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x120&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x128&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 2 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x130&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x138&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 3 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x140&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 3 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x148&lt;br /&gt;
| 8&lt;br /&gt;
| File allocation table virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x150&lt;br /&gt;
| 8&lt;br /&gt;
| File allocation table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x158&lt;br /&gt;
| 1&lt;br /&gt;
| Index of the active duplex master bitmap&lt;br /&gt;
|-&lt;br /&gt;
| 0x160&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC master hash offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x168&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC master hash offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x170&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 1 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x178&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x180&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 2 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x188&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Integrity verification header ==&lt;br /&gt;
&lt;br /&gt;
* Offsets for levels 1-3 come from the metadata remap storage&lt;br /&gt;
* Offsets for level 4 comes from the main data remap storage&lt;br /&gt;
* This is the same header used in NCA files&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;IVFC&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (0.2.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 4&lt;br /&gt;
| Master hash size&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 4&lt;br /&gt;
| Number of levels (Unused in save files)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x18*6&lt;br /&gt;
| Level information for up to 6 levels&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0&lt;br /&gt;
| 32&lt;br /&gt;
| Salt seed&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Level information ===&lt;br /&gt;
&lt;br /&gt;
* 0x18 bytes long&lt;br /&gt;
* Block sizes are stored as powers of 2&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Block size power&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Journal header ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;JNGL&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Must be 0.0.x.x or 0.1.0.0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Total size (Incl. journal)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Journal size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 8&lt;br /&gt;
| Block size&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 16&lt;br /&gt;
| Journal map header&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Journal map header ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Stored as a normal 32-bit integer. Must be 0 or 1)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Main data block count&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 4&lt;br /&gt;
| Journal block count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Extra data ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x40&lt;br /&gt;
| [[Filesystem_services#Save_Struct|Save Struct]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 8&lt;br /&gt;
| Save owner ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x48&lt;br /&gt;
| 8&lt;br /&gt;
| Timestamp&lt;br /&gt;
|-&lt;br /&gt;
| 0x50&lt;br /&gt;
| 4&lt;br /&gt;
| Flags?&lt;br /&gt;
|-&lt;br /&gt;
| 0x54&lt;br /&gt;
| 4&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x58&lt;br /&gt;
| 8&lt;br /&gt;
| Size of usable save data&lt;br /&gt;
|-&lt;br /&gt;
| 0x60&lt;br /&gt;
| 8&lt;br /&gt;
| Journal size&lt;br /&gt;
|-&lt;br /&gt;
| 0x68&lt;br /&gt;
| 8&lt;br /&gt;
| Commit ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Remap Storage =&lt;br /&gt;
&lt;br /&gt;
Remap Storage is used to remap segments of data from virtual offsets to physical offsets. This allows extending the save file without having to relocate existing data.&lt;br /&gt;
&lt;br /&gt;
Each Remap Storage has three components: [[#Remap storage header|a header]], a remapping table, and the main data storage.&lt;br /&gt;
&lt;br /&gt;
A remap storage can contain a varying number of segments, each representing a chunk of contiguous virtual storage. A segment can be composed of one or more entries. Each of these entries are mapped from their virtual locations to their physical locations by entries in the remapping table. A physical offset corresponds to that offset in the main data storage.&lt;br /&gt;
&lt;br /&gt;
When a segment is extended a new remapping entry is appended to the physical storage, allowing expansion without relocating the existing entries.&lt;br /&gt;
&lt;br /&gt;
Each virtual offset has two parts, a segment index and an offset. The size of these sections is controlled by the remap header.&lt;br /&gt;
&lt;br /&gt;
Example: 0x3000000000000100&amp;lt;br /&amp;gt;&lt;br /&gt;
If 4 bits were reserved for the segment index, the offset would be split like this, representing offset 0x100 of segment 3.&amp;lt;br /&amp;gt;&lt;br /&gt;
Segment index: 0x3 Offset: 0x000000000000100&lt;br /&gt;
&lt;br /&gt;
== Remap storage header ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;RMAP&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Must be 0.0.x.x or 0.1.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 4&lt;br /&gt;
| Number of remapping entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 4&lt;br /&gt;
| Number of remapping segments&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Number of bits reserved for the segment index in virtual offsets&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Remapping Entry ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Physical offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 4&lt;br /&gt;
| Alignment&lt;br /&gt;
|-&lt;br /&gt;
| 0x1c&lt;br /&gt;
| 4&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Duplex Storage =&lt;br /&gt;
&lt;br /&gt;
A Duplex Storage contains four separate elements: [[#Duplex header|a header]], a bitmap, and two identically-sized chunks of data.&lt;br /&gt;
&lt;br /&gt;
As hinted by the name, a Duplex Storage contains two main chunks of data. To store X bytes, two chunks of data each with size X are required.&lt;br /&gt;
&lt;br /&gt;
== Bitmap ==&lt;br /&gt;
&lt;br /&gt;
This main data storage is split into blocks of the size indicated in the duplex header. The bitmap contains as many bits as the main data has blocks. If the main data is 0x40000 bytes long with a block size of 0x4000 bytes, the bitmap would contain 0x10 bits.&lt;br /&gt;
&lt;br /&gt;
The bitmap controls which data chunk is active for each block. e.g. If bit 3 of the bitmap is a 0 then block 3 of data chunk 0 is active and block 3 of data chunk 1 is inactive. This means that when data from block 3 is read, the data from chunk 0 will be returned and the data from chunk 1 will be completely ignored.&lt;br /&gt;
&lt;br /&gt;
== Hierarchical Duplex Storage ==&lt;br /&gt;
&lt;br /&gt;
Multiple Duplex Storages can be chained together to gain various benefits. With a Hierarchical Duplex Storage, the bitmap for the main data is stored inside another Duplex Storage.&lt;br /&gt;
&lt;br /&gt;
The bitmap for this second Duplex Storage is stored in a special Duplex Storage. The data of this top level contains a master bitmap that is typically 0x40 bytes long. A bit in the save file header controls which master bitmap is active.&lt;br /&gt;
&lt;br /&gt;
This allows for atomic operations on the Hierarchical Duplex Storage. When writing to the storage, data will be written to the inactive blocks and inactive bitmaps. When the data is committed the bit in the save file header is flipped, changing which master bitmap is active.&lt;br /&gt;
&lt;br /&gt;
== Duplex header ==&lt;br /&gt;
&lt;br /&gt;
* Block sizes are stored as powers of 2&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;DPFS&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (0.1.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Master bitmap offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Master bitmap size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 4&lt;br /&gt;
| Master bitmap block size power&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 8&lt;br /&gt;
| Level 1 offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 8&lt;br /&gt;
| Level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 4&lt;br /&gt;
| Level 1 block size power&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 8&lt;br /&gt;
| Level 2 offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 8&lt;br /&gt;
| Level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 4&lt;br /&gt;
| Level 2 block size power&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Save FS =&lt;br /&gt;
&lt;br /&gt;
== Save FS header ==&lt;br /&gt;
&lt;br /&gt;
* Structure is different than 3DS.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;SAVE&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (0.6.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Number of blocks. Does not change if save file is resized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Block Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x30&lt;br /&gt;
| FAT header&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== File allocation table ==&lt;br /&gt;
&lt;br /&gt;
The savedata FS uses an allocation table to keep track of block allocation. This FAT contains doubly-linked lists of the blocks allocated to each file. Each entry in the FAT is 8 bytes in size.&lt;br /&gt;
&lt;br /&gt;
FAT entry 0 is reserved for the list of free blocks. Because of this, the FAT entry for block n is found at FAT index n+1. The indexes stored in FAT entries refer the index of the next/previous FAT entry in the chain, not the index of the next/previous block.&lt;br /&gt;
&lt;br /&gt;
The FAT header is internally called AllocationTableControlArea. The FAT itself is called AllocationTableMeta. The actual save FS data is called AllocationTableData.&lt;br /&gt;
&lt;br /&gt;
=== File allocation table header ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Block size&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| FAT offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| FAT entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 8&lt;br /&gt;
| Data offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 4&lt;br /&gt;
| Data block count&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 4&lt;br /&gt;
| Directory table block index&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 4&lt;br /&gt;
| File table block index&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== File allocation table entry ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 (High bit)&lt;br /&gt;
| Set if entry is the first entry in the list.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 (Lower 31 bits)&lt;br /&gt;
| Previous entry index. First entry in list if 0.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 (High bit)&lt;br /&gt;
| Set if the allocation segment has multiple blocks.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 (Lower 31 bits)&lt;br /&gt;
| Next entry index. Last entry in list if 0.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the allocation segment has multiple blocks, the first entry will be followed by a range descriptor entry. The last entry in the segment will contain a duplicate of this entry.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 (High bit)&lt;br /&gt;
| Always set.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 (Lower 31 bits)&lt;br /&gt;
| First entry in this segment.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 (High bit)&lt;br /&gt;
| Never set.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 (Lower 31 bits)&lt;br /&gt;
| Last entry in this segment.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Save File Table ==&lt;br /&gt;
&lt;br /&gt;
The save file table is similar to the RomFS file table, except the save file table uses linked lists instead of dictionaries.&lt;br /&gt;
&lt;br /&gt;
The table contains a list of directory entries and a list of file entries. Their respective types are:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;SaveFsList&amp;lt;SaveFileTableEntry&amp;lt;SaveDirectoryInfo&amp;gt;&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;SaveFsList&amp;lt;SaveFileTableEntry&amp;lt;SaveFileInfo&amp;gt;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Save File Table Entry ===&lt;br /&gt;
&lt;br /&gt;
SaveFileTableEntry&amp;lt;class T&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Next entry index. A value of 0 indicates the end of the list.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| sizeof(T)&lt;br /&gt;
| Value of type T.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save File Info ===&lt;br /&gt;
&lt;br /&gt;
Holds the information of a single file.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Starting block index.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 8&lt;br /&gt;
| File length in bytes.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 8&lt;br /&gt;
| Reserved.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save Directory Info ===&lt;br /&gt;
&lt;br /&gt;
Holds the information of a single directory.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| First child directory index. 0 if none.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| First child file index. 0 if none.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 0xC&lt;br /&gt;
| Reserved.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Save FS List ==&lt;br /&gt;
&lt;br /&gt;
SaveFsList&amp;lt;class T&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a linked list that is used internally by &#039;&#039;&#039;Save File Table&#039;&#039;&#039; as a key-value store. Integer/string pairs are used as keys. The list is represented as a single array so that it can be easily stored and read from a file. Entry indexes 0 and 1 are reserved.&lt;br /&gt;
&lt;br /&gt;
Index 0 is the start of a list containing all free entries. When an item in the list is removed, the entry it was using is added to this list for future reuse.&lt;br /&gt;
&lt;br /&gt;
Index 1 is the start of a list containing all currently used entries.&lt;br /&gt;
&lt;br /&gt;
The first 8 bytes of the list are used as follows. Indexes 0 and 1 are included in these counts.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| The size of the list. Freed entries that have not been reused are included in the count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| The current capacity of the list based on the number of bytes allocated.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save FS List Key ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| 32-bit integer.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 0x40&lt;br /&gt;
| 0x40-byte string.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save FS List Entry ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x44&lt;br /&gt;
| Key.&lt;br /&gt;
|-&lt;br /&gt;
| 0x44&lt;br /&gt;
| sizeof(T)&lt;br /&gt;
| Value.&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 + sizeof(T)&lt;br /&gt;
| 4&lt;br /&gt;
| Next entry node index. A value of 0 indicates the end of the list.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Savegames&amp;diff=6489</id>
		<title>Savegames</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Savegames&amp;diff=6489"/>
		<updated>2019-04-02T19:36:50Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* File allocation table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the format of save files contained in NAND. These files are stored as completely unencrypted, plaintext data. Save files are not cleared upon creation, resulting in possible garbage data in unused portions of the container.&lt;br /&gt;
&lt;br /&gt;
= Main header =&lt;br /&gt;
&lt;br /&gt;
The header is 0x4000 bytes long.&lt;br /&gt;
&lt;br /&gt;
There are 2 headers stored at 0x0 and 0x4000, presumably for commit and rollback purposes.&lt;br /&gt;
&lt;br /&gt;
Decimal versions are separated as Major, Minor, Micro, and Bugfix with each using one byte. e.g. version 3.4.5.6 would be 0x03040506.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Image offset&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x000&lt;br /&gt;
| 0x100&lt;br /&gt;
| AES-CMAC header&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 0x200&lt;br /&gt;
| DISF header&lt;br /&gt;
|-&lt;br /&gt;
| 0x300&lt;br /&gt;
| 0x44&lt;br /&gt;
| Duplex header&lt;br /&gt;
|-&lt;br /&gt;
| 0x344&lt;br /&gt;
| 0xC4&lt;br /&gt;
| Integrity verification header&lt;br /&gt;
|-&lt;br /&gt;
| 0x408&lt;br /&gt;
| 0x200&lt;br /&gt;
| Journal header&lt;br /&gt;
|-&lt;br /&gt;
| 0x608&lt;br /&gt;
| 0x48&lt;br /&gt;
| Save header&lt;br /&gt;
|-&lt;br /&gt;
| 0x650&lt;br /&gt;
| 0x40&lt;br /&gt;
| Main data remap header&lt;br /&gt;
|-&lt;br /&gt;
| 0x690&lt;br /&gt;
| 0x40&lt;br /&gt;
| Meta data remap header&lt;br /&gt;
|-&lt;br /&gt;
| 0x6D0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x6D8&lt;br /&gt;
| 0x200&lt;br /&gt;
| Extra data A&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D8&lt;br /&gt;
| 0x200&lt;br /&gt;
| Extra data B&lt;br /&gt;
|-&lt;br /&gt;
| 0xAD8&lt;br /&gt;
| 0x3528&lt;br /&gt;
| Additional storage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The additional storage at the end of the header is used to store any extra header data. This data&#039;s structure is determined by offsets stored in the main part of the header.&lt;br /&gt;
&lt;br /&gt;
== AES CMAC header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Image offset&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x10&lt;br /&gt;
| AES-CMAC over DISF header (size 0x200)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0xF0&lt;br /&gt;
| Zero padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The final CMAC key used for this is generated using GenerateAesKek with a kek source and the device key, along with and LoadAesKey and a set key seed.&lt;br /&gt;
&lt;br /&gt;
== DISF ==&lt;br /&gt;
&lt;br /&gt;
This section contains information about the structure of the save file.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x000&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;DISF&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x004&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Major version must be 4 or 5. Only system version 5.0.0+ can read version 5 save files)&lt;br /&gt;
|-&lt;br /&gt;
| 0x008&lt;br /&gt;
| 32&lt;br /&gt;
| Hash of start of DPFS to end of 0x4000 block (0x300-0x3FFF)&lt;br /&gt;
|-&lt;br /&gt;
| 0x028&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap mapping table offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x030&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap mapping table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x038&lt;br /&gt;
| 8&lt;br /&gt;
| Meta data remap mapping table offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x040&lt;br /&gt;
| 8&lt;br /&gt;
| Meta data remap mapping table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x048&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x050&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap size&lt;br /&gt;
|-&lt;br /&gt;
| 0x058&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 1 virtual offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x060&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 1 virtual offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x068&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x070&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 2 virtual offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x078&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 2 virtual offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x080&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x088&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x090&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage data size A&lt;br /&gt;
|-&lt;br /&gt;
| 0x098&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage data size B&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A0&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage journal size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A8&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex master bitmap offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B0&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex master bitmap offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B8&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex master bitmap size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C0&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC master hash offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C8&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC master hash offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D0&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC master hash size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D8&lt;br /&gt;
| 8&lt;br /&gt;
| Journal block table virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E0&lt;br /&gt;
| 8&lt;br /&gt;
| Journal block table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E8&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset of bitmap of modified physical journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F0&lt;br /&gt;
| 8&lt;br /&gt;
| Size of bitmap of modified physical journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F8&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset of bitmap of modified virtual journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 8&lt;br /&gt;
| Size of bitmap of modified virtual journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x108&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset of bitmap of free journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x110&lt;br /&gt;
| 8&lt;br /&gt;
| Size of bitmap of free journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x118&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 1 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x120&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x128&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 2 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x130&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x138&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 3 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x140&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 3 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x148&lt;br /&gt;
| 8&lt;br /&gt;
| File allocation table virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x150&lt;br /&gt;
| 8&lt;br /&gt;
| File allocation table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x158&lt;br /&gt;
| 1&lt;br /&gt;
| Index of the active duplex master bitmap&lt;br /&gt;
|-&lt;br /&gt;
| 0x160&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC master hash offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x168&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC master hash offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x170&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 1 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x178&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x180&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 2 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x188&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Integrity verification header ==&lt;br /&gt;
&lt;br /&gt;
* Offsets for levels 1-3 come from the metadata remap storage&lt;br /&gt;
* Offsets for level 4 comes from the main data remap storage&lt;br /&gt;
* This is the same header used in NCA files&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;IVFC&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (0.2.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 4&lt;br /&gt;
| Master hash size&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 4&lt;br /&gt;
| Number of levels (Unused in save files)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x18*6&lt;br /&gt;
| Level information for up to 6 levels&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0&lt;br /&gt;
| 32&lt;br /&gt;
| Salt seed&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Level information ===&lt;br /&gt;
&lt;br /&gt;
* 0x18 bytes long&lt;br /&gt;
* Block sizes are stored as powers of 2&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Block size power&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Journal header ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;JNGL&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Must be 0.0.x.x or 0.1.0.0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Total size (Incl. journal)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Journal size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 8&lt;br /&gt;
| Block size&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 16&lt;br /&gt;
| Journal map header&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Journal map header ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Stored as a normal 32-bit integer. Must be 0 or 1)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Main data block count&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 4&lt;br /&gt;
| Journal block count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Extra data ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x40&lt;br /&gt;
| [[Filesystem_services#Save_Struct|Save Struct]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 8&lt;br /&gt;
| Save owner ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x48&lt;br /&gt;
| 8&lt;br /&gt;
| Timestamp&lt;br /&gt;
|-&lt;br /&gt;
| 0x50&lt;br /&gt;
| 4&lt;br /&gt;
| Flags?&lt;br /&gt;
|-&lt;br /&gt;
| 0x54&lt;br /&gt;
| 4&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x58&lt;br /&gt;
| 8&lt;br /&gt;
| Size of usable save data&lt;br /&gt;
|-&lt;br /&gt;
| 0x60&lt;br /&gt;
| 8&lt;br /&gt;
| Journal size&lt;br /&gt;
|-&lt;br /&gt;
| 0x68&lt;br /&gt;
| 8&lt;br /&gt;
| Commit ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Remap Storage =&lt;br /&gt;
&lt;br /&gt;
Remap Storage is used to remap segments of data from virtual offsets to physical offsets. This allows extending the save file without having to relocate existing data.&lt;br /&gt;
&lt;br /&gt;
Each Remap Storage has three components: [[#Remap storage header|a header]], a remapping table, and the main data storage.&lt;br /&gt;
&lt;br /&gt;
A remap storage can contain a varying number of segments, each representing a chunk of contiguous virtual storage. A segment can be composed of one or more entries. Each of these entries are mapped from their virtual locations to their physical locations by entries in the remapping table. A physical offset corresponds to that offset in the main data storage.&lt;br /&gt;
&lt;br /&gt;
When a segment is extended a new remapping entry is appended to the physical storage, allowing expansion without relocating the existing entries.&lt;br /&gt;
&lt;br /&gt;
Each virtual offset has two parts, a segment index and an offset. The size of these sections is controlled by the remap header.&lt;br /&gt;
&lt;br /&gt;
Example: 0x3000000000000100&amp;lt;br /&amp;gt;&lt;br /&gt;
If 4 bits were reserved for the segment index, the offset would be split like this, representing offset 0x100 of segment 3.&amp;lt;br /&amp;gt;&lt;br /&gt;
Segment index: 0x3 Offset: 0x000000000000100&lt;br /&gt;
&lt;br /&gt;
== Remap storage header ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;RMAP&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Must be 0.0.x.x or 0.1.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 4&lt;br /&gt;
| Number of remapping entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 4&lt;br /&gt;
| Number of remapping segments&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Number of bits reserved for the segment index in virtual offsets&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Remapping Entry ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Physical offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 4&lt;br /&gt;
| Alignment&lt;br /&gt;
|-&lt;br /&gt;
| 0x1c&lt;br /&gt;
| 4&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Duplex Storage =&lt;br /&gt;
&lt;br /&gt;
A Duplex Storage contains four separate elements: [[#Duplex header|a header]], a bitmap, and two identically-sized chunks of data.&lt;br /&gt;
&lt;br /&gt;
As hinted by the name, a Duplex Storage contains two main chunks of data. To store X bytes, two chunks of data each with size X are required.&lt;br /&gt;
&lt;br /&gt;
== Bitmap ==&lt;br /&gt;
&lt;br /&gt;
This main data storage is split into blocks of the size indicated in the duplex header. The bitmap contains as many bits as the main data has blocks. If the main data is 0x40000 bytes long with a block size of 0x4000 bytes, the bitmap would contain 0x10 bits.&lt;br /&gt;
&lt;br /&gt;
The bitmap controls which data chunk is active for each block. e.g. If bit 3 of the bitmap is a 0 then block 3 of data chunk 0 is active and block 3 of data chunk 1 is inactive. This means that when data from block 3 is read, the data from chunk 0 will be returned and the data from chunk 1 will be completely ignored.&lt;br /&gt;
&lt;br /&gt;
== Hierarchical Duplex Storage ==&lt;br /&gt;
&lt;br /&gt;
Multiple Duplex Storages can be chained together to gain various benefits. With a Hierarchical Duplex Storage, the bitmap for the main data is stored inside another Duplex Storage.&lt;br /&gt;
&lt;br /&gt;
The bitmap for this second Duplex Storage is stored in a special Duplex Storage. The data of this top level contains a master bitmap that is typically 0x40 bytes long. A bit in the save file header controls which master bitmap is active.&lt;br /&gt;
&lt;br /&gt;
This allows for atomic operations on the Hierarchical Duplex Storage. When writing to the storage, data will be written to the inactive blocks and inactive bitmaps. When the data is committed the bit in the save file header is flipped, changing which master bitmap is active.&lt;br /&gt;
&lt;br /&gt;
== Duplex header ==&lt;br /&gt;
&lt;br /&gt;
* Block sizes are stored as powers of 2&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;DPFS&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (0.1.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Master bitmap offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Master bitmap size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 4&lt;br /&gt;
| Master bitmap block size power&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 8&lt;br /&gt;
| Level 1 offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 8&lt;br /&gt;
| Level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 4&lt;br /&gt;
| Level 1 block size power&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 8&lt;br /&gt;
| Level 2 offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 8&lt;br /&gt;
| Level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 4&lt;br /&gt;
| Level 2 block size power&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Save FS =&lt;br /&gt;
&lt;br /&gt;
== Save FS header ==&lt;br /&gt;
&lt;br /&gt;
* Structure is different than 3DS.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;SAVE&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (0.6.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Number of blocks. Does not change if save file is resized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Block Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x30&lt;br /&gt;
| FAT header&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== File allocation table ==&lt;br /&gt;
&lt;br /&gt;
The savedata FS uses an allocation table to keep track of block allocation. This FAT contains doubly-linked lists of the blocks allocated to each file. Each entry in the FAT is 8 bytes in size.&lt;br /&gt;
&lt;br /&gt;
FAT entry 0 is reserved for the list of free blocks. Because of this, the FAT entry for block n is found at FAT index n+1. The indexes stored in FAT entries refer the index of the next/previous FAT entry in the chain, not the index of the next/previous block.&lt;br /&gt;
&lt;br /&gt;
The FAT header is internally called AllocationTableControlArea. The FAT itself is called AllocationTableMeta. The actual save FS data is called AllocationTableData.&lt;br /&gt;
&lt;br /&gt;
=== File allocation table header ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Block size&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| FAT offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| FAT entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 8&lt;br /&gt;
| Data offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 4&lt;br /&gt;
| Data block count&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 4&lt;br /&gt;
| Directory table block index&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 4&lt;br /&gt;
| File table block index&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== File allocation table entry ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 (High bit)&lt;br /&gt;
| Set if entry is the first entry in the list.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 (Lower 31 bits)&lt;br /&gt;
| Previous entry index. First entry in list if 0.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 (High bit)&lt;br /&gt;
| Set if the allocation segment has multiple blocks.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 (Lower 31 bits)&lt;br /&gt;
| Next entry index. Last entry in list if 0.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the allocation segment has multiple blocks, the first entry will be followed by a range descriptor entry. The last entry in the segment will contain a duplicate of this entry.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 (High bit)&lt;br /&gt;
| Always set.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 (Lower 31 bits)&lt;br /&gt;
| First entry in this segment.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 (High bit)&lt;br /&gt;
| Never set.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 (Lower 31 bits)&lt;br /&gt;
| Last entry in this segment.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Save File Table ==&lt;br /&gt;
&lt;br /&gt;
The save file table is similar to the RomFS file table, except the save file table uses linked lists instead of dictionaries.&lt;br /&gt;
&lt;br /&gt;
The table contains a list of directory entries and a list of file entries. Their respective types are:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;SaveFsList&amp;lt;SaveFileTableEntry&amp;lt;SaveDirectoryInfo&amp;gt;&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;SaveFsList&amp;lt;SaveFileTableEntry&amp;lt;SaveFileInfo&amp;gt;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Save File Table Entry ===&lt;br /&gt;
&lt;br /&gt;
SaveFileTableEntry&amp;lt;class T&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Next entry index. A value of 0 indicates the end of the list.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| sizeof(T)&lt;br /&gt;
| Value of type T.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save File Info ===&lt;br /&gt;
&lt;br /&gt;
Holds the information of a single file.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Starting block index.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 8&lt;br /&gt;
| File length in bytes.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 8&lt;br /&gt;
| Reserved.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save Directory Info ===&lt;br /&gt;
&lt;br /&gt;
Holds the information of a single directory.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| First child directory index. 0 if none.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| First child file index. 0 if none.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 0xC&lt;br /&gt;
| Reserved.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Save FS List ==&lt;br /&gt;
&lt;br /&gt;
SaveFsList&amp;lt;class T&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a linked list that is used internally by &#039;&#039;&#039;Save File Table&#039;&#039;&#039; as a key-value store. Integer/string pairs are used as keys. The list is represented as a single array so that it can be easily stored and read from a file. Entry indexes 0 and 1 are reserved.&lt;br /&gt;
&lt;br /&gt;
Index 0 is the start of a list containing all free entries. When an item in the list is removed, the entry it was using is added to this list for future reuse.&lt;br /&gt;
&lt;br /&gt;
Index 1 is the start of a list containing all currently used entries.&lt;br /&gt;
&lt;br /&gt;
The first 8 bytes of the list are used as follows. Indexes 0 and 1 are included in these counts.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| The size of the list. Freed entries that have not been reused are included in the count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| The current capacity of the list based on the number of bytes allocated.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save FS List Key ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| 32-bit integer.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 0x40&lt;br /&gt;
| 0x40-byte string.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save FS List Entry ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x44&lt;br /&gt;
| Key.&lt;br /&gt;
|-&lt;br /&gt;
| 0x44&lt;br /&gt;
| sizeof(T)&lt;br /&gt;
| Value.&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 + sizeof(T)&lt;br /&gt;
| 4&lt;br /&gt;
| Next entry node index. A value of 0 indicates the end of the list.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Savegames&amp;diff=6483</id>
		<title>Savegames</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Savegames&amp;diff=6483"/>
		<updated>2019-04-01T19:09:25Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* File allocation table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the format of save files contained in NAND. These files are stored as completely unencrypted, plaintext data. Save files are not cleared upon creation, resulting in possible garbage data in unused portions of the container.&lt;br /&gt;
&lt;br /&gt;
= Main header =&lt;br /&gt;
&lt;br /&gt;
The header is 0x4000 bytes long.&lt;br /&gt;
&lt;br /&gt;
There are 2 headers stored at 0x0 and 0x4000, presumably for commit and rollback purposes.&lt;br /&gt;
&lt;br /&gt;
Decimal versions are separated as Major, Minor, Micro, and Bugfix with each using one byte. e.g. version 3.4.5.6 would be 0x03040506.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Image offset&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x000&lt;br /&gt;
| 0x100&lt;br /&gt;
| AES-CMAC header&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 0x200&lt;br /&gt;
| DISF header&lt;br /&gt;
|-&lt;br /&gt;
| 0x300&lt;br /&gt;
| 0x44&lt;br /&gt;
| Duplex header&lt;br /&gt;
|-&lt;br /&gt;
| 0x344&lt;br /&gt;
| 0xC4&lt;br /&gt;
| Integrity verification header&lt;br /&gt;
|-&lt;br /&gt;
| 0x408&lt;br /&gt;
| 0x200&lt;br /&gt;
| Journal header&lt;br /&gt;
|-&lt;br /&gt;
| 0x608&lt;br /&gt;
| 0x48&lt;br /&gt;
| Save header&lt;br /&gt;
|-&lt;br /&gt;
| 0x650&lt;br /&gt;
| 0x40&lt;br /&gt;
| Main data remap header&lt;br /&gt;
|-&lt;br /&gt;
| 0x690&lt;br /&gt;
| 0x40&lt;br /&gt;
| Meta data remap header&lt;br /&gt;
|-&lt;br /&gt;
| 0x6D0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x6D8&lt;br /&gt;
| 0x200&lt;br /&gt;
| Extra data A&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D8&lt;br /&gt;
| 0x200&lt;br /&gt;
| Extra data B&lt;br /&gt;
|-&lt;br /&gt;
| 0xAD8&lt;br /&gt;
| 0x3528&lt;br /&gt;
| Additional storage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The additional storage at the end of the header is used to store any extra header data. This data&#039;s structure is determined by offsets stored in the main part of the header.&lt;br /&gt;
&lt;br /&gt;
== AES CMAC header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Image offset&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x10&lt;br /&gt;
| AES-CMAC over DISF header (size 0x200)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0xF0&lt;br /&gt;
| Zero padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The final CMAC key used for this is generated using GenerateAesKek with a kek source and the device key, along with and LoadAesKey and a set key seed.&lt;br /&gt;
&lt;br /&gt;
== DISF ==&lt;br /&gt;
&lt;br /&gt;
This section contains information about the structure of the save file.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x000&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;DISF&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x004&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Major version must be 4 or 5. Only system version 5.0.0+ can read version 5 save files)&lt;br /&gt;
|-&lt;br /&gt;
| 0x008&lt;br /&gt;
| 32&lt;br /&gt;
| Hash of start of DPFS to end of 0x4000 block (0x300-0x3FFF)&lt;br /&gt;
|-&lt;br /&gt;
| 0x028&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap mapping table offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x030&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap mapping table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x038&lt;br /&gt;
| 8&lt;br /&gt;
| Meta data remap mapping table offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x040&lt;br /&gt;
| 8&lt;br /&gt;
| Meta data remap mapping table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x048&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x050&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap size&lt;br /&gt;
|-&lt;br /&gt;
| 0x058&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 1 virtual offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x060&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 1 virtual offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x068&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x070&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 2 virtual offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x078&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 2 virtual offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x080&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x088&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x090&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage data size A&lt;br /&gt;
|-&lt;br /&gt;
| 0x098&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage data size B&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A0&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage journal size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A8&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex master bitmap offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B0&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex master bitmap offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B8&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex master bitmap size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C0&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC master hash offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C8&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC master hash offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D0&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC master hash size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D8&lt;br /&gt;
| 8&lt;br /&gt;
| Journal block table virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E0&lt;br /&gt;
| 8&lt;br /&gt;
| Journal block table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E8&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset of bitmap of modified physical journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F0&lt;br /&gt;
| 8&lt;br /&gt;
| Size of bitmap of modified physical journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F8&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset of bitmap of modified virtual journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 8&lt;br /&gt;
| Size of bitmap of modified virtual journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x108&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset of bitmap of free journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x110&lt;br /&gt;
| 8&lt;br /&gt;
| Size of bitmap of free journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x118&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 1 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x120&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x128&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 2 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x130&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x138&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 3 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x140&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 3 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x148&lt;br /&gt;
| 8&lt;br /&gt;
| File allocation table virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x150&lt;br /&gt;
| 8&lt;br /&gt;
| File allocation table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x158&lt;br /&gt;
| 1&lt;br /&gt;
| Index of the active duplex master bitmap&lt;br /&gt;
|-&lt;br /&gt;
| 0x160&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC master hash offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x168&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC master hash offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x170&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 1 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x178&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x180&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 2 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x188&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Integrity verification header ==&lt;br /&gt;
&lt;br /&gt;
* Offsets for levels 1-3 come from the metadata remap storage&lt;br /&gt;
* Offsets for level 4 comes from the main data remap storage&lt;br /&gt;
* This is the same header used in NCA files&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;IVFC&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (0.2.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 4&lt;br /&gt;
| Master hash size&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 4&lt;br /&gt;
| Number of levels (Unused in save files)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x18*6&lt;br /&gt;
| Level information for up to 6 levels&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0&lt;br /&gt;
| 32&lt;br /&gt;
| Salt seed&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Level information ===&lt;br /&gt;
&lt;br /&gt;
* 0x18 bytes long&lt;br /&gt;
* Block sizes are stored as powers of 2&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Block size power&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Journal header ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;JNGL&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Must be 0.0.x.x or 0.1.0.0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Total size (Incl. journal)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Journal size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 8&lt;br /&gt;
| Block size&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 16&lt;br /&gt;
| Journal map header&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Journal map header ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Stored as a normal 32-bit integer. Must be 0 or 1)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Main data block count&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 4&lt;br /&gt;
| Journal block count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Extra data ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x40&lt;br /&gt;
| [[Filesystem_services#Save_Struct|Save Struct]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 8&lt;br /&gt;
| Save owner ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x48&lt;br /&gt;
| 8&lt;br /&gt;
| Timestamp&lt;br /&gt;
|-&lt;br /&gt;
| 0x50&lt;br /&gt;
| 4&lt;br /&gt;
| Flags?&lt;br /&gt;
|-&lt;br /&gt;
| 0x54&lt;br /&gt;
| 4&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x58&lt;br /&gt;
| 8&lt;br /&gt;
| Size of usable save data&lt;br /&gt;
|-&lt;br /&gt;
| 0x60&lt;br /&gt;
| 8&lt;br /&gt;
| Journal size&lt;br /&gt;
|-&lt;br /&gt;
| 0x68&lt;br /&gt;
| 8&lt;br /&gt;
| Commit ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Remap Storage =&lt;br /&gt;
&lt;br /&gt;
Remap Storage is used to remap segments of data from virtual offsets to physical offsets. This allows extending the save file without having to relocate existing data.&lt;br /&gt;
&lt;br /&gt;
Each Remap Storage has three components: [[#Remap storage header|a header]], a remapping table, and the main data storage.&lt;br /&gt;
&lt;br /&gt;
A remap storage can contain a varying number of segments, each representing a chunk of contiguous virtual storage. A segment can be composed of one or more entries. Each of these entries are mapped from their virtual locations to their physical locations by entries in the remapping table. A physical offset corresponds to that offset in the main data storage.&lt;br /&gt;
&lt;br /&gt;
When a segment is extended a new remapping entry is appended to the physical storage, allowing expansion without relocating the existing entries.&lt;br /&gt;
&lt;br /&gt;
Each virtual offset has two parts, a segment index and an offset. The size of these sections is controlled by the remap header.&lt;br /&gt;
&lt;br /&gt;
Example: 0x3000000000000100&amp;lt;br /&amp;gt;&lt;br /&gt;
If 4 bits were reserved for the segment index, the offset would be split like this, representing offset 0x100 of segment 3.&amp;lt;br /&amp;gt;&lt;br /&gt;
Segment index: 0x3 Offset: 0x000000000000100&lt;br /&gt;
&lt;br /&gt;
== Remap storage header ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;RMAP&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Must be 0.0.x.x or 0.1.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 4&lt;br /&gt;
| Number of remapping entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 4&lt;br /&gt;
| Number of remapping segments&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Number of bits reserved for the segment index in virtual offsets&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Remapping Entry ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Physical offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 4&lt;br /&gt;
| Alignment&lt;br /&gt;
|-&lt;br /&gt;
| 0x1c&lt;br /&gt;
| 4&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Duplex Storage =&lt;br /&gt;
&lt;br /&gt;
A Duplex Storage contains four separate elements: [[#Duplex header|a header]], a bitmap, and two identically-sized chunks of data.&lt;br /&gt;
&lt;br /&gt;
As hinted by the name, a Duplex Storage contains two main chunks of data. To store X bytes, two chunks of data each with size X are required.&lt;br /&gt;
&lt;br /&gt;
== Bitmap ==&lt;br /&gt;
&lt;br /&gt;
This main data storage is split into blocks of the size indicated in the duplex header. The bitmap contains as many bits as the main data has blocks. If the main data is 0x40000 bytes long with a block size of 0x4000 bytes, the bitmap would contain 0x10 bits.&lt;br /&gt;
&lt;br /&gt;
The bitmap controls which data chunk is active for each block. e.g. If bit 3 of the bitmap is a 0 then block 3 of data chunk 0 is active and block 3 of data chunk 1 is inactive. This means that when data from block 3 is read, the data from chunk 0 will be returned and the data from chunk 1 will be completely ignored.&lt;br /&gt;
&lt;br /&gt;
== Hierarchical Duplex Storage ==&lt;br /&gt;
&lt;br /&gt;
Multiple Duplex Storages can be chained together to gain various benefits. With a Hierarchical Duplex Storage, the bitmap for the main data is stored inside another Duplex Storage.&lt;br /&gt;
&lt;br /&gt;
The bitmap for this second Duplex Storage is stored in a special Duplex Storage. The data of this top level contains a master bitmap that is typically 0x40 bytes long. A bit in the save file header controls which master bitmap is active.&lt;br /&gt;
&lt;br /&gt;
This allows for atomic operations on the Hierarchical Duplex Storage. When writing to the storage, data will be written to the inactive blocks and inactive bitmaps. When the data is committed the bit in the save file header is flipped, changing which master bitmap is active.&lt;br /&gt;
&lt;br /&gt;
== Duplex header ==&lt;br /&gt;
&lt;br /&gt;
* Block sizes are stored as powers of 2&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;DPFS&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (0.1.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Master bitmap offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Master bitmap size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 4&lt;br /&gt;
| Master bitmap block size power&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 8&lt;br /&gt;
| Level 1 offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 8&lt;br /&gt;
| Level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 4&lt;br /&gt;
| Level 1 block size power&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 8&lt;br /&gt;
| Level 2 offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 8&lt;br /&gt;
| Level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 4&lt;br /&gt;
| Level 2 block size power&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Save FS =&lt;br /&gt;
&lt;br /&gt;
== Save FS header ==&lt;br /&gt;
&lt;br /&gt;
* Structure is different than 3DS.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;SAVE&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (0.6.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Number of blocks. Does not change if save file is resized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Block Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x30&lt;br /&gt;
| FAT header&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== File allocation table ==&lt;br /&gt;
&lt;br /&gt;
The savedata FS uses an allocation table to keep track of block allocation. This FAT contains doubly-linked lists of the blocks allocated to each file. Each entry in the FAT is 8 bytes in size.&lt;br /&gt;
&lt;br /&gt;
FAT entry 0 is reserved for the list of free blocks. Because of this, the FAT entry for block n is found at FAT index n+1. The indexes stored in FAT entries refer the index of the next/previous FAT entry in the chain, not the index of the next/previous block.&lt;br /&gt;
&lt;br /&gt;
=== File allocation table header ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Block size&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| FAT offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| FAT entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 8&lt;br /&gt;
| Data offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 4&lt;br /&gt;
| Data block count&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 4&lt;br /&gt;
| Directory table block index&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 4&lt;br /&gt;
| File table block index&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== File allocation table entry ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 (High bit)&lt;br /&gt;
| Set if entry is the first entry in the list.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 (Lower 31 bits)&lt;br /&gt;
| Previous entry index. First entry in list if 0.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 (High bit)&lt;br /&gt;
| Set if the allocation segment has multiple blocks.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 (Lower 31 bits)&lt;br /&gt;
| Next entry index. Last entry in list if 0.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the allocation segment has multiple blocks, the first entry will be followed by a range descriptor entry. The last entry in the segment will contain a duplicate of this entry.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 (High bit)&lt;br /&gt;
| Always set.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 (Lower 31 bits)&lt;br /&gt;
| First entry in this segment.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 (High bit)&lt;br /&gt;
| Never set.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 (Lower 31 bits)&lt;br /&gt;
| Last entry in this segment.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Save File Table ==&lt;br /&gt;
&lt;br /&gt;
The save file table is similar to the RomFS file table, except the save file table uses linked lists instead of dictionaries.&lt;br /&gt;
&lt;br /&gt;
The table contains a list of directory entries and a list of file entries. Their respective types are:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;SaveFsList&amp;lt;SaveFileTableEntry&amp;lt;SaveDirectoryInfo&amp;gt;&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;SaveFsList&amp;lt;SaveFileTableEntry&amp;lt;SaveFileInfo&amp;gt;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Save File Table Entry ===&lt;br /&gt;
&lt;br /&gt;
SaveFileTableEntry&amp;lt;class T&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Next entry index. A value of 0 indicates the end of the list.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| sizeof(T)&lt;br /&gt;
| Value of type T.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save File Info ===&lt;br /&gt;
&lt;br /&gt;
Holds the information of a single file.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Starting block index.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 8&lt;br /&gt;
| File length in bytes.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 8&lt;br /&gt;
| Reserved.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save Directory Info ===&lt;br /&gt;
&lt;br /&gt;
Holds the information of a single directory.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| First child directory index. 0 if none.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| First child file index. 0 if none.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 0xC&lt;br /&gt;
| Reserved.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Save FS List ==&lt;br /&gt;
&lt;br /&gt;
SaveFsList&amp;lt;class T&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a linked list that is used internally by &#039;&#039;&#039;Save File Table&#039;&#039;&#039; as a key-value store. Integer/string pairs are used as keys. The list is represented as a single array so that it can be easily stored and read from a file. Entry indexes 0 and 1 are reserved.&lt;br /&gt;
&lt;br /&gt;
Index 0 is the start of a list containing all free entries. When an item in the list is removed, the entry it was using is added to this list for future reuse.&lt;br /&gt;
&lt;br /&gt;
Index 1 is the start of a list containing all currently used entries.&lt;br /&gt;
&lt;br /&gt;
The first 8 bytes of the list are used as follows. Indexes 0 and 1 are included in these counts.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| The size of the list. Freed entries that have not been reused are included in the count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| The current capacity of the list based on the number of bytes allocated.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save FS List Key ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| 32-bit integer.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 0x40&lt;br /&gt;
| 0x40-byte string.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save FS List Entry ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x44&lt;br /&gt;
| Key.&lt;br /&gt;
|-&lt;br /&gt;
| 0x44&lt;br /&gt;
| sizeof(T)&lt;br /&gt;
| Value.&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 + sizeof(T)&lt;br /&gt;
| 4&lt;br /&gt;
| Next entry node index. A value of 0 indicates the end of the list.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Savegames&amp;diff=6482</id>
		<title>Savegames</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Savegames&amp;diff=6482"/>
		<updated>2019-04-01T19:08:45Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the format of save files contained in NAND. These files are stored as completely unencrypted, plaintext data. Save files are not cleared upon creation, resulting in possible garbage data in unused portions of the container.&lt;br /&gt;
&lt;br /&gt;
= Main header =&lt;br /&gt;
&lt;br /&gt;
The header is 0x4000 bytes long.&lt;br /&gt;
&lt;br /&gt;
There are 2 headers stored at 0x0 and 0x4000, presumably for commit and rollback purposes.&lt;br /&gt;
&lt;br /&gt;
Decimal versions are separated as Major, Minor, Micro, and Bugfix with each using one byte. e.g. version 3.4.5.6 would be 0x03040506.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Image offset&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x000&lt;br /&gt;
| 0x100&lt;br /&gt;
| AES-CMAC header&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 0x200&lt;br /&gt;
| DISF header&lt;br /&gt;
|-&lt;br /&gt;
| 0x300&lt;br /&gt;
| 0x44&lt;br /&gt;
| Duplex header&lt;br /&gt;
|-&lt;br /&gt;
| 0x344&lt;br /&gt;
| 0xC4&lt;br /&gt;
| Integrity verification header&lt;br /&gt;
|-&lt;br /&gt;
| 0x408&lt;br /&gt;
| 0x200&lt;br /&gt;
| Journal header&lt;br /&gt;
|-&lt;br /&gt;
| 0x608&lt;br /&gt;
| 0x48&lt;br /&gt;
| Save header&lt;br /&gt;
|-&lt;br /&gt;
| 0x650&lt;br /&gt;
| 0x40&lt;br /&gt;
| Main data remap header&lt;br /&gt;
|-&lt;br /&gt;
| 0x690&lt;br /&gt;
| 0x40&lt;br /&gt;
| Meta data remap header&lt;br /&gt;
|-&lt;br /&gt;
| 0x6D0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x6D8&lt;br /&gt;
| 0x200&lt;br /&gt;
| Extra data A&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D8&lt;br /&gt;
| 0x200&lt;br /&gt;
| Extra data B&lt;br /&gt;
|-&lt;br /&gt;
| 0xAD8&lt;br /&gt;
| 0x3528&lt;br /&gt;
| Additional storage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The additional storage at the end of the header is used to store any extra header data. This data&#039;s structure is determined by offsets stored in the main part of the header.&lt;br /&gt;
&lt;br /&gt;
== AES CMAC header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Image offset&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x10&lt;br /&gt;
| AES-CMAC over DISF header (size 0x200)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0xF0&lt;br /&gt;
| Zero padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The final CMAC key used for this is generated using GenerateAesKek with a kek source and the device key, along with and LoadAesKey and a set key seed.&lt;br /&gt;
&lt;br /&gt;
== DISF ==&lt;br /&gt;
&lt;br /&gt;
This section contains information about the structure of the save file.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x000&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;DISF&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x004&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Major version must be 4 or 5. Only system version 5.0.0+ can read version 5 save files)&lt;br /&gt;
|-&lt;br /&gt;
| 0x008&lt;br /&gt;
| 32&lt;br /&gt;
| Hash of start of DPFS to end of 0x4000 block (0x300-0x3FFF)&lt;br /&gt;
|-&lt;br /&gt;
| 0x028&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap mapping table offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x030&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap mapping table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x038&lt;br /&gt;
| 8&lt;br /&gt;
| Meta data remap mapping table offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x040&lt;br /&gt;
| 8&lt;br /&gt;
| Meta data remap mapping table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x048&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x050&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap size&lt;br /&gt;
|-&lt;br /&gt;
| 0x058&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 1 virtual offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x060&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 1 virtual offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x068&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x070&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 2 virtual offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x078&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 2 virtual offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x080&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x088&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x090&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage data size A&lt;br /&gt;
|-&lt;br /&gt;
| 0x098&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage data size B&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A0&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage journal size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A8&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex master bitmap offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B0&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex master bitmap offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B8&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex master bitmap size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C0&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC master hash offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C8&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC master hash offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D0&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC master hash size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D8&lt;br /&gt;
| 8&lt;br /&gt;
| Journal block table virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E0&lt;br /&gt;
| 8&lt;br /&gt;
| Journal block table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E8&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset of bitmap of modified physical journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F0&lt;br /&gt;
| 8&lt;br /&gt;
| Size of bitmap of modified physical journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F8&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset of bitmap of modified virtual journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 8&lt;br /&gt;
| Size of bitmap of modified virtual journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x108&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset of bitmap of free journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x110&lt;br /&gt;
| 8&lt;br /&gt;
| Size of bitmap of free journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x118&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 1 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x120&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x128&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 2 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x130&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x138&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 3 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x140&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 3 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x148&lt;br /&gt;
| 8&lt;br /&gt;
| File allocation table virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x150&lt;br /&gt;
| 8&lt;br /&gt;
| File allocation table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x158&lt;br /&gt;
| 1&lt;br /&gt;
| Index of the active duplex master bitmap&lt;br /&gt;
|-&lt;br /&gt;
| 0x160&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC master hash offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x168&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC master hash offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x170&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 1 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x178&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x180&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 2 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x188&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Integrity verification header ==&lt;br /&gt;
&lt;br /&gt;
* Offsets for levels 1-3 come from the metadata remap storage&lt;br /&gt;
* Offsets for level 4 comes from the main data remap storage&lt;br /&gt;
* This is the same header used in NCA files&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;IVFC&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (0.2.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 4&lt;br /&gt;
| Master hash size&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 4&lt;br /&gt;
| Number of levels (Unused in save files)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x18*6&lt;br /&gt;
| Level information for up to 6 levels&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0&lt;br /&gt;
| 32&lt;br /&gt;
| Salt seed&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Level information ===&lt;br /&gt;
&lt;br /&gt;
* 0x18 bytes long&lt;br /&gt;
* Block sizes are stored as powers of 2&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Block size power&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Journal header ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;JNGL&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Must be 0.0.x.x or 0.1.0.0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Total size (Incl. journal)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Journal size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 8&lt;br /&gt;
| Block size&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 16&lt;br /&gt;
| Journal map header&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Journal map header ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Stored as a normal 32-bit integer. Must be 0 or 1)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Main data block count&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 4&lt;br /&gt;
| Journal block count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Extra data ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x40&lt;br /&gt;
| [[Filesystem_services#Save_Struct|Save Struct]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 8&lt;br /&gt;
| Save owner ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x48&lt;br /&gt;
| 8&lt;br /&gt;
| Timestamp&lt;br /&gt;
|-&lt;br /&gt;
| 0x50&lt;br /&gt;
| 4&lt;br /&gt;
| Flags?&lt;br /&gt;
|-&lt;br /&gt;
| 0x54&lt;br /&gt;
| 4&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x58&lt;br /&gt;
| 8&lt;br /&gt;
| Size of usable save data&lt;br /&gt;
|-&lt;br /&gt;
| 0x60&lt;br /&gt;
| 8&lt;br /&gt;
| Journal size&lt;br /&gt;
|-&lt;br /&gt;
| 0x68&lt;br /&gt;
| 8&lt;br /&gt;
| Commit ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Remap Storage =&lt;br /&gt;
&lt;br /&gt;
Remap Storage is used to remap segments of data from virtual offsets to physical offsets. This allows extending the save file without having to relocate existing data.&lt;br /&gt;
&lt;br /&gt;
Each Remap Storage has three components: [[#Remap storage header|a header]], a remapping table, and the main data storage.&lt;br /&gt;
&lt;br /&gt;
A remap storage can contain a varying number of segments, each representing a chunk of contiguous virtual storage. A segment can be composed of one or more entries. Each of these entries are mapped from their virtual locations to their physical locations by entries in the remapping table. A physical offset corresponds to that offset in the main data storage.&lt;br /&gt;
&lt;br /&gt;
When a segment is extended a new remapping entry is appended to the physical storage, allowing expansion without relocating the existing entries.&lt;br /&gt;
&lt;br /&gt;
Each virtual offset has two parts, a segment index and an offset. The size of these sections is controlled by the remap header.&lt;br /&gt;
&lt;br /&gt;
Example: 0x3000000000000100&amp;lt;br /&amp;gt;&lt;br /&gt;
If 4 bits were reserved for the segment index, the offset would be split like this, representing offset 0x100 of segment 3.&amp;lt;br /&amp;gt;&lt;br /&gt;
Segment index: 0x3 Offset: 0x000000000000100&lt;br /&gt;
&lt;br /&gt;
== Remap storage header ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;RMAP&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Must be 0.0.x.x or 0.1.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 4&lt;br /&gt;
| Number of remapping entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 4&lt;br /&gt;
| Number of remapping segments&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Number of bits reserved for the segment index in virtual offsets&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Remapping Entry ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Physical offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 4&lt;br /&gt;
| Alignment&lt;br /&gt;
|-&lt;br /&gt;
| 0x1c&lt;br /&gt;
| 4&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Duplex Storage =&lt;br /&gt;
&lt;br /&gt;
A Duplex Storage contains four separate elements: [[#Duplex header|a header]], a bitmap, and two identically-sized chunks of data.&lt;br /&gt;
&lt;br /&gt;
As hinted by the name, a Duplex Storage contains two main chunks of data. To store X bytes, two chunks of data each with size X are required.&lt;br /&gt;
&lt;br /&gt;
== Bitmap ==&lt;br /&gt;
&lt;br /&gt;
This main data storage is split into blocks of the size indicated in the duplex header. The bitmap contains as many bits as the main data has blocks. If the main data is 0x40000 bytes long with a block size of 0x4000 bytes, the bitmap would contain 0x10 bits.&lt;br /&gt;
&lt;br /&gt;
The bitmap controls which data chunk is active for each block. e.g. If bit 3 of the bitmap is a 0 then block 3 of data chunk 0 is active and block 3 of data chunk 1 is inactive. This means that when data from block 3 is read, the data from chunk 0 will be returned and the data from chunk 1 will be completely ignored.&lt;br /&gt;
&lt;br /&gt;
== Hierarchical Duplex Storage ==&lt;br /&gt;
&lt;br /&gt;
Multiple Duplex Storages can be chained together to gain various benefits. With a Hierarchical Duplex Storage, the bitmap for the main data is stored inside another Duplex Storage.&lt;br /&gt;
&lt;br /&gt;
The bitmap for this second Duplex Storage is stored in a special Duplex Storage. The data of this top level contains a master bitmap that is typically 0x40 bytes long. A bit in the save file header controls which master bitmap is active.&lt;br /&gt;
&lt;br /&gt;
This allows for atomic operations on the Hierarchical Duplex Storage. When writing to the storage, data will be written to the inactive blocks and inactive bitmaps. When the data is committed the bit in the save file header is flipped, changing which master bitmap is active.&lt;br /&gt;
&lt;br /&gt;
== Duplex header ==&lt;br /&gt;
&lt;br /&gt;
* Block sizes are stored as powers of 2&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;DPFS&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (0.1.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Master bitmap offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Master bitmap size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 4&lt;br /&gt;
| Master bitmap block size power&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 8&lt;br /&gt;
| Level 1 offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 8&lt;br /&gt;
| Level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 4&lt;br /&gt;
| Level 1 block size power&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 8&lt;br /&gt;
| Level 2 offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 8&lt;br /&gt;
| Level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 4&lt;br /&gt;
| Level 2 block size power&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Save FS =&lt;br /&gt;
&lt;br /&gt;
== Save FS header ==&lt;br /&gt;
&lt;br /&gt;
* Structure is different than 3DS.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;SAVE&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (0.6.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Number of blocks. Does not change if save file is resized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Block Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x30&lt;br /&gt;
| FAT header&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== File allocation table ==&lt;br /&gt;
&lt;br /&gt;
The savedata FS uses a fairly basic allocation table to keep track of block allocation. The FAT contains doubly-linked lists of the blocks allocated to each file. Each entry in the FAT is 8 bytes in size.&lt;br /&gt;
&lt;br /&gt;
FAT entry 0 is reserved for the list of free blocks. Because of this, the FAT entry for block n is found at FAT index n+1. The indexes stored in FAT entries refer the index of the next/previous FAT entry in the chain, not the index of the next/previous block.&lt;br /&gt;
&lt;br /&gt;
=== File allocation table header ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Block size&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| FAT offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| FAT entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 8&lt;br /&gt;
| Data offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 4&lt;br /&gt;
| Data block count&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 4&lt;br /&gt;
| Directory table block index&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 4&lt;br /&gt;
| File table block index&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== File allocation table entry ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 (High bit)&lt;br /&gt;
| Set if entry is the first entry in the list.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 (Lower 31 bits)&lt;br /&gt;
| Previous entry index. First entry in list if 0.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 (High bit)&lt;br /&gt;
| Set if the allocation segment has multiple blocks.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 (Lower 31 bits)&lt;br /&gt;
| Next entry index. Last entry in list if 0.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the allocation segment has multiple blocks, the first entry will be followed by a range descriptor entry. The last entry in the segment will contain a duplicate of this entry.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 (High bit)&lt;br /&gt;
| Always set.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 (Lower 31 bits)&lt;br /&gt;
| First entry in this segment.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 (High bit)&lt;br /&gt;
| Never set.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 (Lower 31 bits)&lt;br /&gt;
| Last entry in this segment.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Save File Table ==&lt;br /&gt;
&lt;br /&gt;
The save file table is similar to the RomFS file table, except the save file table uses linked lists instead of dictionaries.&lt;br /&gt;
&lt;br /&gt;
The table contains a list of directory entries and a list of file entries. Their respective types are:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;SaveFsList&amp;lt;SaveFileTableEntry&amp;lt;SaveDirectoryInfo&amp;gt;&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;SaveFsList&amp;lt;SaveFileTableEntry&amp;lt;SaveFileInfo&amp;gt;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Save File Table Entry ===&lt;br /&gt;
&lt;br /&gt;
SaveFileTableEntry&amp;lt;class T&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Next entry index. A value of 0 indicates the end of the list.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| sizeof(T)&lt;br /&gt;
| Value of type T.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save File Info ===&lt;br /&gt;
&lt;br /&gt;
Holds the information of a single file.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Starting block index.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 8&lt;br /&gt;
| File length in bytes.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 8&lt;br /&gt;
| Reserved.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save Directory Info ===&lt;br /&gt;
&lt;br /&gt;
Holds the information of a single directory.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| First child directory index. 0 if none.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| First child file index. 0 if none.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 0xC&lt;br /&gt;
| Reserved.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Save FS List ==&lt;br /&gt;
&lt;br /&gt;
SaveFsList&amp;lt;class T&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a linked list that is used internally by &#039;&#039;&#039;Save File Table&#039;&#039;&#039; as a key-value store. Integer/string pairs are used as keys. The list is represented as a single array so that it can be easily stored and read from a file. Entry indexes 0 and 1 are reserved.&lt;br /&gt;
&lt;br /&gt;
Index 0 is the start of a list containing all free entries. When an item in the list is removed, the entry it was using is added to this list for future reuse.&lt;br /&gt;
&lt;br /&gt;
Index 1 is the start of a list containing all currently used entries.&lt;br /&gt;
&lt;br /&gt;
The first 8 bytes of the list are used as follows. Indexes 0 and 1 are included in these counts.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| The size of the list. Freed entries that have not been reused are included in the count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| The current capacity of the list based on the number of bytes allocated.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save FS List Key ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| 32-bit integer.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 0x40&lt;br /&gt;
| 0x40-byte string.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save FS List Entry ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x44&lt;br /&gt;
| Key.&lt;br /&gt;
|-&lt;br /&gt;
| 0x44&lt;br /&gt;
| sizeof(T)&lt;br /&gt;
| Value.&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 + sizeof(T)&lt;br /&gt;
| 4&lt;br /&gt;
| Next entry node index. A value of 0 indicates the end of the list.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Savegames&amp;diff=6477</id>
		<title>Savegames</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Savegames&amp;diff=6477"/>
		<updated>2019-04-01T01:16:48Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the format of save files contained in NAND. These files are stored as completely unencrypted, plaintext data. Save files are not cleared upon creation, resulting in possible garbage data in unused portions of the container.&lt;br /&gt;
&lt;br /&gt;
= Main header =&lt;br /&gt;
&lt;br /&gt;
The header is 0x4000 bytes long.&lt;br /&gt;
&lt;br /&gt;
There are 2 headers stored at 0x0 and 0x4000, presumably for commit and rollback purposes.&lt;br /&gt;
&lt;br /&gt;
Decimal versions are separated as Major, Minor, Micro, and Bugfix with each using one byte. e.g. version 3.4.5.6 would be 0x03040506.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Image offset&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x000&lt;br /&gt;
| 0x100&lt;br /&gt;
| AES-CMAC header&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 0x200&lt;br /&gt;
| DISF header&lt;br /&gt;
|-&lt;br /&gt;
| 0x300&lt;br /&gt;
| 0x44&lt;br /&gt;
| Duplex header&lt;br /&gt;
|-&lt;br /&gt;
| 0x344&lt;br /&gt;
| 0xC4&lt;br /&gt;
| Integrity verification header&lt;br /&gt;
|-&lt;br /&gt;
| 0x408&lt;br /&gt;
| 0x200&lt;br /&gt;
| Journal header&lt;br /&gt;
|-&lt;br /&gt;
| 0x608&lt;br /&gt;
| 0x48&lt;br /&gt;
| Save header&lt;br /&gt;
|-&lt;br /&gt;
| 0x650&lt;br /&gt;
| 0x40&lt;br /&gt;
| Main data remap header&lt;br /&gt;
|-&lt;br /&gt;
| 0x690&lt;br /&gt;
| 0x40&lt;br /&gt;
| Meta data remap header&lt;br /&gt;
|-&lt;br /&gt;
| 0x6D0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x6D8&lt;br /&gt;
| 0x200&lt;br /&gt;
| Extra data A&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D8&lt;br /&gt;
| 0x200&lt;br /&gt;
| Extra data B&lt;br /&gt;
|-&lt;br /&gt;
| 0xAD8&lt;br /&gt;
| 0x3528&lt;br /&gt;
| Additional storage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The additional storage at the end of the header is used to store any extra header data. This data&#039;s structure is determined by offsets stored in the main part of the header.&lt;br /&gt;
&lt;br /&gt;
== AES CMAC header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Image offset&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x10&lt;br /&gt;
| AES-CMAC over DISF header (size 0x200)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0xF0&lt;br /&gt;
| Zero padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The final CMAC key used for this is generated using GenerateAesKek with a kek source and the device key, along with and LoadAesKey and a set key seed.&lt;br /&gt;
&lt;br /&gt;
== DISF ==&lt;br /&gt;
&lt;br /&gt;
This section contains information about the structure of the save file.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x000&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;DISF&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x004&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Major version must be 4 or 5. Only system version 5.0.0+ can read version 5 save files)&lt;br /&gt;
|-&lt;br /&gt;
| 0x008&lt;br /&gt;
| 32&lt;br /&gt;
| Hash of start of DPFS to end of 0x4000 block (0x300-0x3FFF)&lt;br /&gt;
|-&lt;br /&gt;
| 0x028&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap mapping table offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x030&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap mapping table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x038&lt;br /&gt;
| 8&lt;br /&gt;
| Meta data remap mapping table offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x040&lt;br /&gt;
| 8&lt;br /&gt;
| Meta data remap mapping table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x048&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x050&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap size&lt;br /&gt;
|-&lt;br /&gt;
| 0x058&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 1 virtual offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x060&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 1 virtual offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x068&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x070&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 2 virtual offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x078&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 2 virtual offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x080&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x088&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x090&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage data size A&lt;br /&gt;
|-&lt;br /&gt;
| 0x098&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage data size B&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A0&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage journal size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A8&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex master bitmap offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B0&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex master bitmap offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B8&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex master bitmap size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C0&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC master hash offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C8&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC master hash offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D0&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC master hash size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D8&lt;br /&gt;
| 8&lt;br /&gt;
| Journal block table virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E0&lt;br /&gt;
| 8&lt;br /&gt;
| Journal block table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E8&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset of bitmap of modified physical journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F0&lt;br /&gt;
| 8&lt;br /&gt;
| Size of bitmap of modified physical journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F8&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset of bitmap of modified virtual journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 8&lt;br /&gt;
| Size of bitmap of modified virtual journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x108&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset of bitmap of free journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x110&lt;br /&gt;
| 8&lt;br /&gt;
| Size of bitmap of free journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x118&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 1 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x120&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x128&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 2 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x130&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x138&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 3 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x140&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 3 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x148&lt;br /&gt;
| 8&lt;br /&gt;
| File allocation table virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x150&lt;br /&gt;
| 8&lt;br /&gt;
| File allocation table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x158&lt;br /&gt;
| 1&lt;br /&gt;
| Index of the active duplex master bitmap&lt;br /&gt;
|-&lt;br /&gt;
| 0x160&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC master hash offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x168&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC master hash offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x170&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 1 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x178&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x180&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 2 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x188&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Integrity verification header ==&lt;br /&gt;
&lt;br /&gt;
* Offsets for levels 1-3 come from the metadata remap storage&lt;br /&gt;
* Offsets for level 4 comes from the main data remap storage&lt;br /&gt;
* This is the same header used in NCA files&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;IVFC&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (0.2.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 4&lt;br /&gt;
| Master hash size&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 4&lt;br /&gt;
| Number of levels (Unused in save files)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x18*6&lt;br /&gt;
| Level information for up to 6 levels&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0&lt;br /&gt;
| 32&lt;br /&gt;
| Salt seed&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Level information ===&lt;br /&gt;
&lt;br /&gt;
* 0x18 bytes long&lt;br /&gt;
* Block sizes are stored as powers of 2&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Block size power&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Journal header ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;JNGL&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Must be 0.0.x.x or 0.1.0.0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Total size (Incl. journal)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Journal size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 8&lt;br /&gt;
| Block size&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 16&lt;br /&gt;
| Journal map header&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Journal map header ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Stored as a normal 32-bit integer. Must be 0 or 1)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Main data block count&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 4&lt;br /&gt;
| Journal block count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Extra data ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x40&lt;br /&gt;
| [[Filesystem_services#Save_Struct|Save Struct]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 8&lt;br /&gt;
| Save owner ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x48&lt;br /&gt;
| 8&lt;br /&gt;
| Timestamp&lt;br /&gt;
|-&lt;br /&gt;
| 0x50&lt;br /&gt;
| 4&lt;br /&gt;
| Flags?&lt;br /&gt;
|-&lt;br /&gt;
| 0x54&lt;br /&gt;
| 4&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x58&lt;br /&gt;
| 8&lt;br /&gt;
| Size of usable save data&lt;br /&gt;
|-&lt;br /&gt;
| 0x60&lt;br /&gt;
| 8&lt;br /&gt;
| Journal size&lt;br /&gt;
|-&lt;br /&gt;
| 0x68&lt;br /&gt;
| 8&lt;br /&gt;
| Commit ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Remap Storage =&lt;br /&gt;
&lt;br /&gt;
Remap Storage is used to remap segments of data from virtual offsets to physical offsets. This allows extending the save file without having to relocate existing data.&lt;br /&gt;
&lt;br /&gt;
Each Remap Storage has three components: [[#Remap storage header|a header]], a remapping table, and the main data storage.&lt;br /&gt;
&lt;br /&gt;
A remap storage can contain a varying number of segments, each representing a chunk of contiguous virtual storage. A segment can be composed of one or more entries. Each of these entries are mapped from their virtual locations to their physical locations by entries in the remapping table. A physical offset corresponds to that offset in the main data storage.&lt;br /&gt;
&lt;br /&gt;
When a segment is extended a new remapping entry is appended to the physical storage, allowing expansion without relocating the existing entries.&lt;br /&gt;
&lt;br /&gt;
Each virtual offset has two parts, a segment index and an offset. The size of these sections is controlled by the remap header.&lt;br /&gt;
&lt;br /&gt;
Example: 0x3000000000000100&amp;lt;br /&amp;gt;&lt;br /&gt;
If 4 bits were reserved for the segment index, the offset would be split like this, representing offset 0x100 of segment 3.&amp;lt;br /&amp;gt;&lt;br /&gt;
Segment index: 0x3 Offset: 0x000000000000100&lt;br /&gt;
&lt;br /&gt;
== Remap storage header ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;RMAP&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Must be 0.0.x.x or 0.1.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 4&lt;br /&gt;
| Number of remapping entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 4&lt;br /&gt;
| Number of remapping segments&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Number of bits reserved for the segment index in virtual offsets&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Remapping Entry ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Physical offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 4&lt;br /&gt;
| Alignment&lt;br /&gt;
|-&lt;br /&gt;
| 0x1c&lt;br /&gt;
| 4&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Duplex Storage =&lt;br /&gt;
&lt;br /&gt;
A Duplex Storage contains four separate elements: [[#Duplex header|a header]], a bitmap, and two identically-sized chunks of data.&lt;br /&gt;
&lt;br /&gt;
As hinted by the name, a Duplex Storage contains two main chunks of data. To store X bytes, two chunks of data each with size X are required.&lt;br /&gt;
&lt;br /&gt;
== Bitmap ==&lt;br /&gt;
&lt;br /&gt;
This main data storage is split into blocks of the size indicated in the duplex header. The bitmap contains as many bits as the main data has blocks. If the main data is 0x40000 bytes long with a block size of 0x4000 bytes, the bitmap would contain 0x10 bits.&lt;br /&gt;
&lt;br /&gt;
The bitmap controls which data chunk is active for each block. e.g. If bit 3 of the bitmap is a 0 then block 3 of data chunk 0 is active and block 3 of data chunk 1 is inactive. This means that when data from block 3 is read, the data from chunk 0 will be returned and the data from chunk 1 will be completely ignored.&lt;br /&gt;
&lt;br /&gt;
== Hierarchical Duplex Storage ==&lt;br /&gt;
&lt;br /&gt;
Multiple Duplex Storages can be chained together to gain various benefits. With a Hierarchical Duplex Storage, the bitmap for the main data is stored inside another Duplex Storage.&lt;br /&gt;
&lt;br /&gt;
The bitmap for this second Duplex Storage is stored in a special Duplex Storage. The data of this top level contains a master bitmap that is typically 0x40 bytes long. A bit in the save file header controls which master bitmap is active.&lt;br /&gt;
&lt;br /&gt;
This allows for atomic operations on the Hierarchical Duplex Storage. When writing to the storage, data will be written to the inactive blocks and inactive bitmaps. When the data is committed the bit in the save file header is flipped, changing which master bitmap is active.&lt;br /&gt;
&lt;br /&gt;
== Duplex header ==&lt;br /&gt;
&lt;br /&gt;
* Block sizes are stored as powers of 2&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;DPFS&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (0.1.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Master bitmap offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Master bitmap size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 4&lt;br /&gt;
| Master bitmap block size power&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 8&lt;br /&gt;
| Level 1 offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 8&lt;br /&gt;
| Level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 4&lt;br /&gt;
| Level 1 block size power&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 8&lt;br /&gt;
| Level 2 offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 8&lt;br /&gt;
| Level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 4&lt;br /&gt;
| Level 2 block size power&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Save FS =&lt;br /&gt;
&lt;br /&gt;
== Save FS header ==&lt;br /&gt;
&lt;br /&gt;
* Structure is different than 3DS.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;SAVE&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (0.6.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Number of blocks. Does not change if save file is resized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Block Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x30&lt;br /&gt;
| FAT header&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== File allocation table ==&lt;br /&gt;
&lt;br /&gt;
The savedata FS uses a fairly basic allocation table to keep track of block allocation. The FAT contains doubly-linked lists of the blocks allocated to each file. Each entry in the FAT is 8 bytes in size.&lt;br /&gt;
&lt;br /&gt;
FAT entry 0 is reserved for the list of free blocks. Because of this, the FAT entry for block n is found at FAT index n+1. The indexes stored in FAT entries refer the index of the next/previous FAT entry in the chain, not the index of the next/previous block.&lt;br /&gt;
&lt;br /&gt;
=== File allocation table header ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Block size&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| FAT offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| FAT entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 8&lt;br /&gt;
| Data offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 4&lt;br /&gt;
| Data block count&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 4&lt;br /&gt;
| Directory table block index&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 4&lt;br /&gt;
| File table block index&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Save File Table ==&lt;br /&gt;
&lt;br /&gt;
The save file table is similar to the RomFS file table, except the save file table uses linked lists instead of dictionaries.&lt;br /&gt;
&lt;br /&gt;
The table contains a list of directory entries and a list of file entries. Their respective types are:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;SaveFsList&amp;lt;SaveFileTableEntry&amp;lt;SaveDirectoryInfo&amp;gt;&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;SaveFsList&amp;lt;SaveFileTableEntry&amp;lt;SaveFileInfo&amp;gt;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Save File Table Entry ===&lt;br /&gt;
&lt;br /&gt;
SaveFileTableEntry&amp;lt;class T&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Next entry index. A value of 0 indicates the end of the list.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| sizeof(T)&lt;br /&gt;
| Value of type T.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save File Info ===&lt;br /&gt;
&lt;br /&gt;
Holds the information of a single file.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Starting block index.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 8&lt;br /&gt;
| File length in bytes.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 8&lt;br /&gt;
| Reserved.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save Directory Info ===&lt;br /&gt;
&lt;br /&gt;
Holds the information of a single directory.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| First child directory index. 0 if none.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| First child file index. 0 if none.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 0xC&lt;br /&gt;
| Reserved.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Save FS List ==&lt;br /&gt;
&lt;br /&gt;
SaveFsList&amp;lt;class T&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a linked list that is used internally by &#039;&#039;&#039;Save File Table&#039;&#039;&#039; as a key-value store. Integer/string pairs are used as keys. The list is represented as a single array so that it can be easily stored and read from a file. Entry indexes 0 and 1 are reserved.&lt;br /&gt;
&lt;br /&gt;
Index 0 is the start of a list containing all free entries. When an item in the list is removed, the entry it was using is added to this list for future reuse.&lt;br /&gt;
&lt;br /&gt;
Index 1 is the start of a list containing all currently used entries.&lt;br /&gt;
&lt;br /&gt;
The first 8 bytes of the list are used as follows. Indexes 0 and 1 are included in these counts.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| The size of the list. Freed entries that have not been reused are included in the count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| The current capacity of the list based on the number of bytes allocated.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save FS List Key ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| 32-bit integer.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 0x40&lt;br /&gt;
| 0x40-byte string.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save FS List Entry ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x44&lt;br /&gt;
| Key.&lt;br /&gt;
|-&lt;br /&gt;
| 0x44&lt;br /&gt;
| sizeof(T)&lt;br /&gt;
| Value.&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 + sizeof(T)&lt;br /&gt;
| 4&lt;br /&gt;
| Next entry node index. A value of 0 indicates the end of the list.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Savegames&amp;diff=6474</id>
		<title>Savegames</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Savegames&amp;diff=6474"/>
		<updated>2019-03-31T19:49:23Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the format of save files contained in NAND. These files are stored as completely unencrypted, plaintext data. Save files are not cleared upon creation, resulting in possible garbage data in unused portions of the container.&lt;br /&gt;
&lt;br /&gt;
= Main header =&lt;br /&gt;
&lt;br /&gt;
The header is 0x4000 bytes long.&lt;br /&gt;
&lt;br /&gt;
There are 2 headers stored at 0x0 and 0x4000, presumably for commit and rollback purposes.&lt;br /&gt;
&lt;br /&gt;
Decimal versions are separated as Major, Minor, Micro, and Bugfix with each using one byte. e.g. version 3.4.5.6 would be 0x03040506.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Image offset&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x000&lt;br /&gt;
| 0x100&lt;br /&gt;
| AES-CMAC header&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 0x200&lt;br /&gt;
| DISF header&lt;br /&gt;
|-&lt;br /&gt;
| 0x300&lt;br /&gt;
| 0x44&lt;br /&gt;
| Duplex header&lt;br /&gt;
|-&lt;br /&gt;
| 0x344&lt;br /&gt;
| 0xC4&lt;br /&gt;
| Integrity verification header&lt;br /&gt;
|-&lt;br /&gt;
| 0x408&lt;br /&gt;
| 0x200&lt;br /&gt;
| Journal header&lt;br /&gt;
|-&lt;br /&gt;
| 0x608&lt;br /&gt;
| 0x48&lt;br /&gt;
| Save header&lt;br /&gt;
|-&lt;br /&gt;
| 0x650&lt;br /&gt;
| 0x40&lt;br /&gt;
| Main data remap header&lt;br /&gt;
|-&lt;br /&gt;
| 0x690&lt;br /&gt;
| 0x40&lt;br /&gt;
| Meta data remap header&lt;br /&gt;
|-&lt;br /&gt;
| 0x6D0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x6D8&lt;br /&gt;
| 0x200&lt;br /&gt;
| Extra data A&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D8&lt;br /&gt;
| 0x200&lt;br /&gt;
| Extra data B&lt;br /&gt;
|-&lt;br /&gt;
| 0xAD8&lt;br /&gt;
| 0x3528&lt;br /&gt;
| Additional storage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The additional storage at the end of the header is used to store any extra header data. This data&#039;s structure is determined by offsets stored in the main part of the header.&lt;br /&gt;
&lt;br /&gt;
== AES CMAC header ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Image offset&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x10&lt;br /&gt;
| AES-CMAC over DISF header (size 0x200)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0xF0&lt;br /&gt;
| Zero padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The final CMAC key used for this is generated using GenerateAesKek with a kek source and the device key, along with and LoadAesKey and a set key seed.&lt;br /&gt;
&lt;br /&gt;
== DISF ==&lt;br /&gt;
&lt;br /&gt;
This section contains information about the structure of the save file.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x000&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;DISF&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x004&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Major version must be 4 or 5. Only system version 5.0.0+ can read version 5 save files)&lt;br /&gt;
|-&lt;br /&gt;
| 0x008&lt;br /&gt;
| 32&lt;br /&gt;
| Hash of start of DPFS to end of 0x4000 block (0x300-0x3FFF)&lt;br /&gt;
|-&lt;br /&gt;
| 0x028&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap mapping table offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x030&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap mapping table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x038&lt;br /&gt;
| 8&lt;br /&gt;
| Meta data remap mapping table offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x040&lt;br /&gt;
| 8&lt;br /&gt;
| Meta data remap mapping table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x048&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x050&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap size&lt;br /&gt;
|-&lt;br /&gt;
| 0x058&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 1 virtual offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x060&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 1 virtual offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x068&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x070&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 2 virtual offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x078&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 2 virtual offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x080&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x088&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x090&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage data size A&lt;br /&gt;
|-&lt;br /&gt;
| 0x098&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage data size B&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A0&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage journal size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A8&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex master bitmap offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B0&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex master bitmap offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B8&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex master bitmap size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C0&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC master hash offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C8&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC master hash offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D0&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC master hash size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D8&lt;br /&gt;
| 8&lt;br /&gt;
| Journal block table virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E0&lt;br /&gt;
| 8&lt;br /&gt;
| Journal block table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E8&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset of bitmap of modified physical journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F0&lt;br /&gt;
| 8&lt;br /&gt;
| Size of bitmap of modified physical journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F8&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset of bitmap of modified virtual journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 8&lt;br /&gt;
| Size of bitmap of modified virtual journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x108&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset of bitmap of free journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x110&lt;br /&gt;
| 8&lt;br /&gt;
| Size of bitmap of free journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x118&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 1 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x120&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x128&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 2 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x130&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x138&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 3 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x140&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 3 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x148&lt;br /&gt;
| 8&lt;br /&gt;
| File allocation table virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x150&lt;br /&gt;
| 8&lt;br /&gt;
| File allocation table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x158&lt;br /&gt;
| 1&lt;br /&gt;
| Index of the active duplex master bitmap&lt;br /&gt;
|-&lt;br /&gt;
| 0x160&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC master hash offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x168&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC master hash offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x170&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 1 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x178&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x180&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 2 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x188&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Integrity verification header ==&lt;br /&gt;
&lt;br /&gt;
* Offsets for levels 1-3 come from the metadata remap storage&lt;br /&gt;
* Offsets for level 4 comes from the main data remap storage&lt;br /&gt;
* This is the same header used in NCA files&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;IVFC&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (0.2.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 4&lt;br /&gt;
| Master hash size&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 4&lt;br /&gt;
| Number of levels (Unused in save files)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x18*6&lt;br /&gt;
| Level information for up to 6 levels&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0&lt;br /&gt;
| 32&lt;br /&gt;
| Salt seed&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Level information ===&lt;br /&gt;
&lt;br /&gt;
* 0x18 bytes long&lt;br /&gt;
* Block sizes are stored as powers of 2&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Block size power&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Journal header ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;JNGL&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Must be 0.0.x.x or 0.1.0.0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Total size (Incl. journal)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Journal size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 8&lt;br /&gt;
| Block size&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 16&lt;br /&gt;
| Journal map header&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Journal map header ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Stored as a normal 32-bit integer. Must be 0 or 1)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Main data block count&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 4&lt;br /&gt;
| Journal block count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Extra data ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x40&lt;br /&gt;
| [[Filesystem_services#Save_Struct|Save Struct]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 8&lt;br /&gt;
| Save owner ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x48&lt;br /&gt;
| 8&lt;br /&gt;
| Timestamp&lt;br /&gt;
|-&lt;br /&gt;
| 0x50&lt;br /&gt;
| 4&lt;br /&gt;
| Flags?&lt;br /&gt;
|-&lt;br /&gt;
| 0x54&lt;br /&gt;
| 4&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x58&lt;br /&gt;
| 8&lt;br /&gt;
| Size of usable save data&lt;br /&gt;
|-&lt;br /&gt;
| 0x60&lt;br /&gt;
| 8&lt;br /&gt;
| Journal size&lt;br /&gt;
|-&lt;br /&gt;
| 0x68&lt;br /&gt;
| 8&lt;br /&gt;
| Commit ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Remap Storage =&lt;br /&gt;
&lt;br /&gt;
Remap Storage is used to remap segments of data from virtual offsets to physical offsets. This allows extending the save file without having to relocate existing data.&lt;br /&gt;
&lt;br /&gt;
Each Remap Storage has three components: [[#Remap storage header|a header]], a remapping table, and the main data storage.&lt;br /&gt;
&lt;br /&gt;
A remap storage can contain a varying number of segments, each representing a chunk of contiguous virtual storage. A segment can be composed of one or more entries. Each of these entries are mapped from their virtual locations to their physical locations by entries in the remapping table. A physical offset corresponds to that offset in the main data storage.&lt;br /&gt;
&lt;br /&gt;
When a segment is extended a new remapping entry is appended to the physical storage, allowing expansion without relocating the existing entries.&lt;br /&gt;
&lt;br /&gt;
Each virtual offset has two parts, a segment index and an offset. The size of these sections is controlled by the remap header.&lt;br /&gt;
&lt;br /&gt;
Example: 0x3000000000000100&amp;lt;br /&amp;gt;&lt;br /&gt;
If 4 bits were reserved for the segment index, the offset would be split like this, representing offset 0x100 of segment 3.&amp;lt;br /&amp;gt;&lt;br /&gt;
Segment index: 0x3 Offset: 0x000000000000100&lt;br /&gt;
&lt;br /&gt;
== Remap storage header ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;RMAP&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Must be 0.0.x.x or 0.1.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 4&lt;br /&gt;
| Number of remapping entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 4&lt;br /&gt;
| Number of remapping segments&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Number of bits reserved for the segment index in virtual offsets&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Remapping Entry ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Physical offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 4&lt;br /&gt;
| Alignment&lt;br /&gt;
|-&lt;br /&gt;
| 0x1c&lt;br /&gt;
| 4&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Duplex Storage =&lt;br /&gt;
&lt;br /&gt;
A Duplex Storage contains four separate elements: [[#Duplex header|a header]], a bitmap, and two identically-sized chunks of data.&lt;br /&gt;
&lt;br /&gt;
As hinted by the name, a Duplex Storage contains two main chunks of data. To store X bytes, two chunks of data each with size X are required.&lt;br /&gt;
&lt;br /&gt;
== Bitmap ==&lt;br /&gt;
&lt;br /&gt;
This main data storage is split into blocks of the size indicated in the duplex header. The bitmap contains as many bits as the main data has blocks. If the main data is 0x40000 bytes long with a block size of 0x4000 bytes, the bitmap would contain 0x10 bits.&lt;br /&gt;
&lt;br /&gt;
The bitmap controls which data chunk is active for each block. e.g. If bit 3 of the bitmap is a 0 then block 3 of data chunk 0 is active and block 3 of data chunk 1 is inactive. This means that when data from block 3 is read, the data from chunk 0 will be returned and the data from chunk 1 will be completely ignored.&lt;br /&gt;
&lt;br /&gt;
== Hierarchical Duplex Storage ==&lt;br /&gt;
&lt;br /&gt;
Multiple Duplex Storages can be chained together to gain various benefits. With a Hierarchical Duplex Storage, the bitmap for the main data is stored inside another Duplex Storage.&lt;br /&gt;
&lt;br /&gt;
The bitmap for this second Duplex Storage is stored in a special Duplex Storage. The data of this top level contains a master bitmap that is typically 0x40 bytes long. A bit in the save file header controls which master bitmap is active.&lt;br /&gt;
&lt;br /&gt;
This allows for atomic operations on the Hierarchical Duplex Storage. When writing to the storage, data will be written to the inactive blocks and inactive bitmaps. When the data is committed the bit in the save file header is flipped, changing which master bitmap is active.&lt;br /&gt;
&lt;br /&gt;
== Duplex header ==&lt;br /&gt;
&lt;br /&gt;
* Block sizes are stored as powers of 2&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;DPFS&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (0.1.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Master bitmap offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Master bitmap size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 4&lt;br /&gt;
| Master bitmap block size power&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 8&lt;br /&gt;
| Level 1 offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 8&lt;br /&gt;
| Level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 4&lt;br /&gt;
| Level 1 block size power&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 8&lt;br /&gt;
| Level 2 offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 8&lt;br /&gt;
| Level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 4&lt;br /&gt;
| Level 2 block size power&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Save FS =&lt;br /&gt;
&lt;br /&gt;
== Save FS header ==&lt;br /&gt;
&lt;br /&gt;
* Structure is different than 3DS.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;SAVE&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (0.6.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Number of blocks. Does not change if save file is resized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Block Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x30&lt;br /&gt;
| FAT header&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== File allocation table header ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Block size&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| FAT offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| FAT entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 8&lt;br /&gt;
| Data offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 4&lt;br /&gt;
| Data block count&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 4&lt;br /&gt;
| Directory table block index&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 4&lt;br /&gt;
| File table block index&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Save File Table ==&lt;br /&gt;
&lt;br /&gt;
The save file table is similar to the RomFS file table, except the save file table uses linked lists instead of dictionaries.&lt;br /&gt;
&lt;br /&gt;
The table contains a list of directory entries and a list of file entries. Their respective types are:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;SaveFsList&amp;lt;SaveFileTableEntry&amp;lt;SaveDirectoryInfo&amp;gt;&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;SaveFsList&amp;lt;SaveFileTableEntry&amp;lt;SaveFileInfo&amp;gt;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Save File Table Entry ===&lt;br /&gt;
&lt;br /&gt;
SaveFileTableEntry&amp;lt;class T&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Next entry index. A value of 0 indicates the end of the list.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| sizeof(T)&lt;br /&gt;
| Value of type T.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save File Info ===&lt;br /&gt;
&lt;br /&gt;
Holds the information of a single file.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Starting block index.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 8&lt;br /&gt;
| File length in bytes.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 8&lt;br /&gt;
| Reserved.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save Directory Info ===&lt;br /&gt;
&lt;br /&gt;
Holds the information of a single directory.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| First child directory index. 0 if none.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| First child file index. 0 if none.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 0xC&lt;br /&gt;
| Reserved.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Save FS List ==&lt;br /&gt;
&lt;br /&gt;
SaveFsList&amp;lt;class T&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a linked list that is used internally by &#039;&#039;&#039;Save File Table&#039;&#039;&#039; as a key-value store. Integer/string pairs are used as keys. The list is represented as a single array so that it can be easily stored and read from a file. Entry indexes 0 and 1 are reserved.&lt;br /&gt;
&lt;br /&gt;
Index 0 is the start of a list containing all free entries. When an item in the list is removed, the entry it was using is added to this list for future reuse.&lt;br /&gt;
&lt;br /&gt;
Index 1 is the start of a list containing all currently used entries.&lt;br /&gt;
&lt;br /&gt;
The first 8 bytes of the list are used as follows. Indexes 0 and 1 are included in these counts.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| The size of the list. Freed entries that have not been reused are included in the count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| The current capacity of the list based on the number of bytes allocated.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save FS List Key ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| 32-bit integer.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 0x40&lt;br /&gt;
| 0x40-byte string.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save FS List Entry ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x44&lt;br /&gt;
| Key.&lt;br /&gt;
|-&lt;br /&gt;
| 0x44&lt;br /&gt;
| sizeof(T)&lt;br /&gt;
| Value.&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 + sizeof(T)&lt;br /&gt;
| 4&lt;br /&gt;
| Next entry node index. A value of 0 indicates the end of the list.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Savegames&amp;diff=6468</id>
		<title>Savegames</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Savegames&amp;diff=6468"/>
		<updated>2019-03-31T01:05:43Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: Core file system&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the format of save files contained in NAND. These files are stored as completely unencrypted, plaintext data. Save files are not cleared upon creation, resulting in possible garbage data in unused portions of the container.&lt;br /&gt;
&lt;br /&gt;
== Main header ==&lt;br /&gt;
&lt;br /&gt;
The header is 0x4000 bytes long.&lt;br /&gt;
&lt;br /&gt;
There are 2 headers stored at 0x0 and 0x4000, presumably for commit and rollback purposes.&lt;br /&gt;
&lt;br /&gt;
Decimal versions are separated as Major, Minor, Micro, and Bugfix with each using one byte. e.g. version 3.4.5.6 would be 0x03040506.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Image offset&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x000&lt;br /&gt;
| 0x100&lt;br /&gt;
| AES-CMAC header&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 0x200&lt;br /&gt;
| DISF header&lt;br /&gt;
|-&lt;br /&gt;
| 0x300&lt;br /&gt;
| 0x44&lt;br /&gt;
| Duplex header&lt;br /&gt;
|-&lt;br /&gt;
| 0x344&lt;br /&gt;
| 0xC4&lt;br /&gt;
| Integrity verification header&lt;br /&gt;
|-&lt;br /&gt;
| 0x408&lt;br /&gt;
| 0x200&lt;br /&gt;
| Journal header&lt;br /&gt;
|-&lt;br /&gt;
| 0x608&lt;br /&gt;
| 0x48&lt;br /&gt;
| Save header&lt;br /&gt;
|-&lt;br /&gt;
| 0x650&lt;br /&gt;
| 0x40&lt;br /&gt;
| Main data remap header&lt;br /&gt;
|-&lt;br /&gt;
| 0x690&lt;br /&gt;
| 0x40&lt;br /&gt;
| Meta data remap header&lt;br /&gt;
|-&lt;br /&gt;
| 0x6D0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x6D8&lt;br /&gt;
| 0x200&lt;br /&gt;
| Extra data A&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D8&lt;br /&gt;
| 0x200&lt;br /&gt;
| Extra data B&lt;br /&gt;
|-&lt;br /&gt;
| 0xAD8&lt;br /&gt;
| 0x3528&lt;br /&gt;
| Additional storage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The additional storage at the end of the header is used to store any extra header data. This data&#039;s structure is determined by offsets stored in the main part of the header.&lt;br /&gt;
&lt;br /&gt;
=== AES CMAC header ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Image offset&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x10&lt;br /&gt;
| AES-CMAC over DISF header (size 0x200)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0xF0&lt;br /&gt;
| Zero padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The final CMAC key used for this is generated using GenerateAesKek with a kek source and the device key, along with and LoadAesKey and a set key seed.&lt;br /&gt;
&lt;br /&gt;
=== DISF ===&lt;br /&gt;
&lt;br /&gt;
This section contains information about the structure of the save file.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x000&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;DISF&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x004&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Major version must be 4 or 5. Only system version 5.0.0+ can read version 5 save files)&lt;br /&gt;
|-&lt;br /&gt;
| 0x008&lt;br /&gt;
| 32&lt;br /&gt;
| Hash of start of DPFS to end of 0x4000 block (0x300-0x3FFF)&lt;br /&gt;
|-&lt;br /&gt;
| 0x028&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap mapping table offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x030&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap mapping table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x038&lt;br /&gt;
| 8&lt;br /&gt;
| Meta data remap mapping table offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x040&lt;br /&gt;
| 8&lt;br /&gt;
| Meta data remap mapping table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x048&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x050&lt;br /&gt;
| 8&lt;br /&gt;
| Main data remap size&lt;br /&gt;
|-&lt;br /&gt;
| 0x058&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 1 virtual offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x060&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 1 virtual offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x068&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x070&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 2 virtual offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x078&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 2 virtual offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x080&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x088&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x090&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage data size A&lt;br /&gt;
|-&lt;br /&gt;
| 0x098&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage data size B&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A0&lt;br /&gt;
| 8&lt;br /&gt;
| Journal storage journal size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A8&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex master bitmap offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B0&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex master bitmap offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B8&lt;br /&gt;
| 8&lt;br /&gt;
| Duplex master bitmap size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C0&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC master hash offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C8&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC master hash offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D0&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC master hash size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D8&lt;br /&gt;
| 8&lt;br /&gt;
| Journal block table virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E0&lt;br /&gt;
| 8&lt;br /&gt;
| Journal block table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E8&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset of bitmap of modified physical journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F0&lt;br /&gt;
| 8&lt;br /&gt;
| Size of bitmap of modified physical journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F8&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset of bitmap of modified virtual journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x100&lt;br /&gt;
| 8&lt;br /&gt;
| Size of bitmap of modified virtual journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x108&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset of bitmap of free journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x110&lt;br /&gt;
| 8&lt;br /&gt;
| Size of bitmap of free journal blocks&lt;br /&gt;
|-&lt;br /&gt;
| 0x118&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 1 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x120&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x128&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 2 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x130&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x138&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 3 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x140&lt;br /&gt;
| 8&lt;br /&gt;
| IVFC level 3 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x148&lt;br /&gt;
| 8&lt;br /&gt;
| File allocation table virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x150&lt;br /&gt;
| 8&lt;br /&gt;
| File allocation table size&lt;br /&gt;
|-&lt;br /&gt;
| 0x158&lt;br /&gt;
| 1&lt;br /&gt;
| Index of the active duplex master bitmap&lt;br /&gt;
|-&lt;br /&gt;
| 0x160&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC master hash offset A&lt;br /&gt;
|-&lt;br /&gt;
| 0x168&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC master hash offset B&lt;br /&gt;
|-&lt;br /&gt;
| 0x170&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 1 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x178&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x180&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 2 virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x188&lt;br /&gt;
| 8&lt;br /&gt;
| [5.0.0+] File allocation table IVFC level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Integrity verification header ===&lt;br /&gt;
&lt;br /&gt;
* Offsets for levels 1-3 come from the metadata remap storage&lt;br /&gt;
* Offsets for level 4 comes from the main data remap storage&lt;br /&gt;
* This is the same header used in NCA files&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;IVFC&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (0.2.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 4&lt;br /&gt;
| Master hash size&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 4&lt;br /&gt;
| Number of levels (Unused in save files)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x18*6&lt;br /&gt;
| Level information for up to 6 levels&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0&lt;br /&gt;
| 32&lt;br /&gt;
| Salt seed&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Level information ====&lt;br /&gt;
&lt;br /&gt;
* 0x18 bytes long&lt;br /&gt;
* Block sizes are stored as powers of 2&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Block size power&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Journal header ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;JNGL&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Must be 0.0.x.x or 0.1.0.0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Total size (Incl. journal)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Journal size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 8&lt;br /&gt;
| Block size&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 16&lt;br /&gt;
| Journal map header&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Journal map header ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Stored as a normal 32-bit integer. Must be 0 or 1)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Main data block count&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 4&lt;br /&gt;
| Journal block count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Extra data ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x40&lt;br /&gt;
| [[Filesystem_services#Save_Struct|Save Struct]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 8&lt;br /&gt;
| Save owner ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x48&lt;br /&gt;
| 8&lt;br /&gt;
| Timestamp&lt;br /&gt;
|-&lt;br /&gt;
| 0x50&lt;br /&gt;
| 4&lt;br /&gt;
| Flags?&lt;br /&gt;
|-&lt;br /&gt;
| 0x54&lt;br /&gt;
| 4&lt;br /&gt;
| Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x58&lt;br /&gt;
| 8&lt;br /&gt;
| Size of usable save data&lt;br /&gt;
|-&lt;br /&gt;
| 0x60&lt;br /&gt;
| 8&lt;br /&gt;
| Journal size&lt;br /&gt;
|-&lt;br /&gt;
| 0x68&lt;br /&gt;
| 8&lt;br /&gt;
| Commit ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Remap Storage ==&lt;br /&gt;
&lt;br /&gt;
Remap Storage is used to remap segments of data from virtual offsets to physical offsets. This allows extending the save file without having to relocate existing data.&lt;br /&gt;
&lt;br /&gt;
Each Remap Storage has three components: [[#Remap storage header|a header]], a remapping table, and the main data storage.&lt;br /&gt;
&lt;br /&gt;
A remap storage can contain a varying number of segments, each representing a chunk of contiguous virtual storage. A segment can be composed of one or more entries. Each of these entries are mapped from their virtual locations to their physical locations by entries in the remapping table. A physical offset corresponds to that offset in the main data storage.&lt;br /&gt;
&lt;br /&gt;
When a segment is extended a new remapping entry is appended to the physical storage, allowing expansion without relocating the existing entries.&lt;br /&gt;
&lt;br /&gt;
Each virtual offset has two parts, a segment index and an offset. The size of these sections is controlled by the remap header.&lt;br /&gt;
&lt;br /&gt;
Example: 0x3000000000000100&amp;lt;br /&amp;gt;&lt;br /&gt;
If 4 bits were reserved for the segment index, the offset would be split like this, representing offset 0x100 of segment 3.&amp;lt;br /&amp;gt;&lt;br /&gt;
Segment index: 0x3 Offset: 0x000000000000100&lt;br /&gt;
&lt;br /&gt;
=== Remap storage header ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;RMAP&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (Must be 0.0.x.x or 0.1.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 4&lt;br /&gt;
| Number of remapping entries&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 4&lt;br /&gt;
| Number of remapping segments&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| Number of bits reserved for the segment index in virtual offsets&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| &lt;br /&gt;
| End&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Remapping Entry ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Virtual offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Physical offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 4&lt;br /&gt;
| Alignment&lt;br /&gt;
|-&lt;br /&gt;
| 0x1c&lt;br /&gt;
| 4&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Duplex Storage ==&lt;br /&gt;
&lt;br /&gt;
A Duplex Storage contains four separate elements: [[#Duplex header|a header]], a bitmap, and two identically-sized chunks of data.&lt;br /&gt;
&lt;br /&gt;
As hinted by the name, a Duplex Storage contains two main chunks of data. To store X bytes, two chunks of data each with size X are required.&lt;br /&gt;
&lt;br /&gt;
=== Bitmap ===&lt;br /&gt;
&lt;br /&gt;
This main data storage is split into blocks of the size indicated in the duplex header. The bitmap contains as many bits as the main data has blocks. If the main data is 0x40000 bytes long with a block size of 0x4000 bytes, the bitmap would contain 0x10 bits.&lt;br /&gt;
&lt;br /&gt;
The bitmap controls which data chunk is active for each block. e.g. If bit 3 of the bitmap is a 0 then block 3 of data chunk 0 is active and block 3 of data chunk 1 is inactive. This means that when data from block 3 is read, the data from chunk 0 will be returned and the data from chunk 1 will be completely ignored.&lt;br /&gt;
&lt;br /&gt;
=== Hierarchical Duplex Storage ===&lt;br /&gt;
&lt;br /&gt;
Multiple Duplex Storages can be chained together to gain various benefits. With a Hierarchical Duplex Storage, the bitmap for the main data is stored inside another Duplex Storage.&lt;br /&gt;
&lt;br /&gt;
The bitmap for this second Duplex Storage is stored in a special Duplex Storage. The data of this top level contains a master bitmap that is typically 0x40 bytes long. A bit in the save file header controls which master bitmap is active.&lt;br /&gt;
&lt;br /&gt;
This allows for atomic operations on the Hierarchical Duplex Storage. When writing to the storage, data will be written to the inactive blocks and inactive bitmaps. When the data is committed the bit in the save file header is flipped, changing which master bitmap is active.&lt;br /&gt;
&lt;br /&gt;
=== Duplex header ===&lt;br /&gt;
&lt;br /&gt;
* Block sizes are stored as powers of 2&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;DPFS&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (0.1.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Master bitmap offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Master bitmap size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 4&lt;br /&gt;
| Master bitmap block size power&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 8&lt;br /&gt;
| Level 1 offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 8&lt;br /&gt;
| Level 1 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 4&lt;br /&gt;
| Level 1 block size power&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 8&lt;br /&gt;
| Level 2 offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 8&lt;br /&gt;
| Level 2 size&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 4&lt;br /&gt;
| Level 2 block size power&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Save FS ==&lt;br /&gt;
&lt;br /&gt;
=== Save FS header ===&lt;br /&gt;
&lt;br /&gt;
* Structure is different than 3DS.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Magic (&amp;quot;SAVE&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| Version (0.6.x.x)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| Number of blocks. Does not change if save file is resized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 8&lt;br /&gt;
| Block Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x30&lt;br /&gt;
| FAT header&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== File allocation table header ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 8&lt;br /&gt;
| Block size&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 8&lt;br /&gt;
| FAT offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 4&lt;br /&gt;
| FAT entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 8&lt;br /&gt;
| Data offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 4&lt;br /&gt;
| Data block count&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 4&lt;br /&gt;
| Directory table block index&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C&lt;br /&gt;
| 4&lt;br /&gt;
| File table block index&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save File Table ===&lt;br /&gt;
&lt;br /&gt;
The save file table is similar to the RomFS file table, except the save file table uses linked lists instead of dictionaries.&lt;br /&gt;
&lt;br /&gt;
The table contains a list of directory entries and a list of file entries. Their respective types are:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;SaveFsList&amp;lt;SaveFileTableEntry&amp;lt;SaveDirectoryInfo&amp;gt;&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;SaveFsList&amp;lt;SaveFileTableEntry&amp;lt;SaveFileInfo&amp;gt;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Save File Table Entry ====&lt;br /&gt;
&lt;br /&gt;
SaveFileTableEntry&amp;lt;class T&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Next entry index. A value of 0 indicates the end of the list.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| sizeof(T)&lt;br /&gt;
| Value of type T.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Save File Info ====&lt;br /&gt;
&lt;br /&gt;
Holds the information of a single file.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| Starting block index.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 8&lt;br /&gt;
| File length in bytes.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| 8&lt;br /&gt;
| Reserved.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Save Directory Info ====&lt;br /&gt;
&lt;br /&gt;
Holds the information of a single directory.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| First child directory index. 0 if none.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| First child file index. 0 if none.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| 0xC&lt;br /&gt;
| Reserved.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Save FS List ===&lt;br /&gt;
&lt;br /&gt;
SaveFsList&amp;lt;class T&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a linked list that is used internally by &#039;&#039;&#039;Save File Table&#039;&#039;&#039; as a key-value store. Integer/string pairs are used as keys. The list is represented as a single array so that it can be easily stored and read from a file. Entry indexes 0 and 1 are reserved.&lt;br /&gt;
&lt;br /&gt;
Index 0 is the start of a list containing all free entries. When an item in the list is removed, the entry it was using is added to this list for future reuse.&lt;br /&gt;
&lt;br /&gt;
Index 1 is the start of a list containing all currently used entries.&lt;br /&gt;
&lt;br /&gt;
The first 8 bytes of the list are used as follows. Indexes 0 and 1 are included in these counts.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| The size of the list. Freed entries that have not been reused are included in the count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 4&lt;br /&gt;
| The current capacity of the list based on the number of bytes allocated.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Save FS List Key ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 4&lt;br /&gt;
| 32-bit integer.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| 0x40&lt;br /&gt;
| 0x40-byte string.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Save FS List Entry ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x44&lt;br /&gt;
| Key.&lt;br /&gt;
|-&lt;br /&gt;
| 0x44&lt;br /&gt;
| sizeof(T)&lt;br /&gt;
| Value.&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 + sizeof(T)&lt;br /&gt;
| 4&lt;br /&gt;
| Next entry node index. A value of 0 indicates the end of the list.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=6390</id>
		<title>Error codes</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=6390"/>
		<updated>2019-03-22T22:16:10Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* Error codes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Structure =&lt;br /&gt;
These have been redesigned from the 3DS so that they fit within a Aarch64 MOV instruction immediate most of the time (without requiring the additional MOVK).&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Bits || Field&lt;br /&gt;
|-&lt;br /&gt;
| 8-0 || Module&lt;br /&gt;
|-&lt;br /&gt;
| 21-9 || Description&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When a fatal-error is received the error code is outputted using the following formatter:&lt;br /&gt;
  %04d-%04d&lt;br /&gt;
&lt;br /&gt;
.. where the first code is &amp;lt;code&amp;gt;2000 + Module&amp;lt;/code&amp;gt;, and the other being &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;. Bits &amp;gt;=22 from the error-code are unused when displaying fatal-errors, since the Description ends with bit21.&lt;br /&gt;
&lt;br /&gt;
= Modules =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Kernel&lt;br /&gt;
|-&lt;br /&gt;
| 2 || FS&lt;br /&gt;
|-&lt;br /&gt;
| 3 || OS (Memory, Thread, Mutex, NVIDIA)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || HTCS&lt;br /&gt;
|-&lt;br /&gt;
| 5 || NCM&lt;br /&gt;
|-&lt;br /&gt;
| 6 || DD&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Debug Monitor&lt;br /&gt;
|-&lt;br /&gt;
| 8 || LR&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Loader&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CMIF (IPC command interface)&lt;br /&gt;
|-&lt;br /&gt;
| 11 || HIPC (IPC)&lt;br /&gt;
|-&lt;br /&gt;
| 15 || PM&lt;br /&gt;
|-&lt;br /&gt;
| 16 || NS&lt;br /&gt;
|-&lt;br /&gt;
| 17 || Sockets&lt;br /&gt;
|-&lt;br /&gt;
| 18 || HTC&lt;br /&gt;
|-&lt;br /&gt;
| 20 || NCM Content&lt;br /&gt;
|-&lt;br /&gt;
| 21 || SM&lt;br /&gt;
|-&lt;br /&gt;
| 22 || RO userland&lt;br /&gt;
|-&lt;br /&gt;
| 24 || SDMMC&lt;br /&gt;
|-&lt;br /&gt;
| 25 || OVLN&lt;br /&gt;
|-&lt;br /&gt;
| 26 || SPL&lt;br /&gt;
|-&lt;br /&gt;
| 100 || ETHC&lt;br /&gt;
|-&lt;br /&gt;
| 101 || I2C&lt;br /&gt;
|-&lt;br /&gt;
| 102 || GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 103 || UART&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Settings&lt;br /&gt;
|-&lt;br /&gt;
| 107 || WLAN&lt;br /&gt;
|-&lt;br /&gt;
| 108 || XCD&lt;br /&gt;
|-&lt;br /&gt;
| 110 || NIFM&lt;br /&gt;
|-&lt;br /&gt;
| 111 || Hwopus&lt;br /&gt;
|-&lt;br /&gt;
| 113 || Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
| 114 || VI&lt;br /&gt;
|-&lt;br /&gt;
| 115 || NFP&lt;br /&gt;
|-&lt;br /&gt;
| 116 || Time&lt;br /&gt;
|-&lt;br /&gt;
| 117 || FGM&lt;br /&gt;
|-&lt;br /&gt;
| 118 || OE&lt;br /&gt;
|-&lt;br /&gt;
| 120 || PCIe&lt;br /&gt;
|-&lt;br /&gt;
| 121 || Friends&lt;br /&gt;
|-&lt;br /&gt;
| 122 || BCAT&lt;br /&gt;
|-&lt;br /&gt;
| 123 || SSL&lt;br /&gt;
|-&lt;br /&gt;
| 124 || Account&lt;br /&gt;
|-&lt;br /&gt;
| 125 || News&lt;br /&gt;
|-&lt;br /&gt;
| 126 || Mii&lt;br /&gt;
|-&lt;br /&gt;
| 127 || NFC&lt;br /&gt;
|-&lt;br /&gt;
| 128 || AM&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Play Report&lt;br /&gt;
|-&lt;br /&gt;
| 130 || AHID&lt;br /&gt;
|-&lt;br /&gt;
| 132 || Home Menu (Qlaunch)&lt;br /&gt;
|-&lt;br /&gt;
| 133 || PCV&lt;br /&gt;
|-&lt;br /&gt;
| 134 || OMM&lt;br /&gt;
|-&lt;br /&gt;
| 135 || BPC&lt;br /&gt;
|-&lt;br /&gt;
| 136 || PSM&lt;br /&gt;
|-&lt;br /&gt;
| 137 || NIM&lt;br /&gt;
|-&lt;br /&gt;
| 138 || PSC&lt;br /&gt;
|-&lt;br /&gt;
| 139 || TC&lt;br /&gt;
|-&lt;br /&gt;
| 140 || USB&lt;br /&gt;
|-&lt;br /&gt;
| 141 || NSD&lt;br /&gt;
|-&lt;br /&gt;
| 142 || PCTL&lt;br /&gt;
|-&lt;br /&gt;
| 143 || BTM&lt;br /&gt;
|-&lt;br /&gt;
| 144 || EC (Shop)&lt;br /&gt;
|-&lt;br /&gt;
| 145 || ETicket&lt;br /&gt;
|-&lt;br /&gt;
| 146 || NGC (Bad Words)&lt;br /&gt;
|-&lt;br /&gt;
| 147 || Error Report&lt;br /&gt;
|-&lt;br /&gt;
| 148 || APM&lt;br /&gt;
|-&lt;br /&gt;
| 150 || Profiler&lt;br /&gt;
|-&lt;br /&gt;
| 151 || Error Upload&lt;br /&gt;
|-&lt;br /&gt;
| 153 || Audio&lt;br /&gt;
|-&lt;br /&gt;
| 154 || NPNS&lt;br /&gt;
|-&lt;br /&gt;
| 155 || NPNS HTTP Stream&lt;br /&gt;
|-&lt;br /&gt;
| 157 || ARP&lt;br /&gt;
|-&lt;br /&gt;
| 158 || Boot&lt;br /&gt;
|-&lt;br /&gt;
| 159 || SWKBD&lt;br /&gt;
|-&lt;br /&gt;
| 161 || NFC Mifare&lt;br /&gt;
|-&lt;br /&gt;
| 162 || Userland assert&lt;br /&gt;
|-&lt;br /&gt;
| 163 || Fatal&lt;br /&gt;
|-&lt;br /&gt;
| 164 || NIM Shop&lt;br /&gt;
|-&lt;br /&gt;
| 165 || SPSM&lt;br /&gt;
|-&lt;br /&gt;
| 167 || BGTC&lt;br /&gt;
|-&lt;br /&gt;
| 168 || Userland crash&lt;br /&gt;
|-&lt;br /&gt;
| 178 || PDM&lt;br /&gt;
|-&lt;br /&gt;
| 179 || OLSC&lt;br /&gt;
|-&lt;br /&gt;
| 180 || SREPO&lt;br /&gt;
|-&lt;br /&gt;
| 181 || Dauth&lt;br /&gt;
|-&lt;br /&gt;
| 202 || HID&lt;br /&gt;
|-&lt;br /&gt;
| 203 || LDN&lt;br /&gt;
|-&lt;br /&gt;
| 205 || Irsensor&lt;br /&gt;
|-&lt;br /&gt;
| 206 || Capture&lt;br /&gt;
|-&lt;br /&gt;
| 208 || Manu&lt;br /&gt;
|-&lt;br /&gt;
| 209 || ATK&lt;br /&gt;
|-&lt;br /&gt;
| 210 || Web&lt;br /&gt;
|-&lt;br /&gt;
| 211 ||&lt;br /&gt;
|-&lt;br /&gt;
| 212 || GRC&lt;br /&gt;
|-&lt;br /&gt;
| 216 || Migration&lt;br /&gt;
|-&lt;br /&gt;
| 217 || Migration Idc Server&lt;br /&gt;
|-&lt;br /&gt;
| 345 || libnx&lt;br /&gt;
|-&lt;br /&gt;
| 346 || [[Homebrew ABI]]&lt;br /&gt;
|-&lt;br /&gt;
| 347 || Homebrew Loader&lt;br /&gt;
|-&lt;br /&gt;
| 348 || libnx Nvidia errors&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Error codes =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E01 || 1 || 7 || Session count exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C01 || 1 || 14 || Invalid kernel capability descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x4201 || 1 || 33 || Not Implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x7601 || 1 || 59 || Thread terminated/termination requested&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C01 || 1 || 70 || No more debug events&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA01 || 1 || 101 || Invalid size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC01 || 1 || 102 || Invalid address&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE01 || 1 || 103 || Resource exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD001 || 1 || 104 || Memory exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD201 || 1 || 105 || Handle-table exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 1 || 106 || Invalid memory state / invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD801 || 1 || 108 || Invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC01 || 1 || 110 || Invalid memory range&lt;br /&gt;
|-&lt;br /&gt;
| 0xE001 || 1 || 112 || Invalid thread priority.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE201 || 1 || 113 || Invalid processor id.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE401 || 1 || 114 || Invalid handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE601 || 1 || 115 || Invalid pointer/Syscall copy from user failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE801 || 1 || 116 || Invalid combination&lt;br /&gt;
|-&lt;br /&gt;
| 0xEA01 || 1 || 117 || Time out. Also when you give 0 handles to svcWaitSynchronizationN.&lt;br /&gt;
|-&lt;br /&gt;
| 0xEC01 || 1 || 118 || Canceled/interrupted [?]&lt;br /&gt;
|-&lt;br /&gt;
| 0xEE01 || 1 || 119 || Out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0xF001 || 1 || 120 || Invalid enum&lt;br /&gt;
|-&lt;br /&gt;
| 0xF201 || 1 || 121 || No such entry&lt;br /&gt;
|-&lt;br /&gt;
| 0xF401 || 1 || 122 || Irq/DeviceAddressSpace/{...} already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xF601 || 1 || 123 || Port remote dead&lt;br /&gt;
|-&lt;br /&gt;
| 0xF801 || 1 || 124 || [Usermode] Unhandled interrupt/exception&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA01 || 1 || 125 || Process already started/Wrong memory permission?&lt;br /&gt;
|-&lt;br /&gt;
| 0xFC01 || 1 || 126 || Reserved value&lt;br /&gt;
|-&lt;br /&gt;
| 0xFE01 || 1 || 127 || Invalid hardware breakpoint&lt;br /&gt;
|-&lt;br /&gt;
| 0x10001 || 1 || 128 || [Usermode] Fatal exception&lt;br /&gt;
|-&lt;br /&gt;
| 0x10201 || 1 || 129 || Last thread didn&#039;t belong to your process&lt;br /&gt;
|-&lt;br /&gt;
| 0x10601 || 1 || 131 || Port closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x10801 || 1 || 132 || Resource limit exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x20801 || 1 || 260 || Command buffer too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x40a01 || 1 || 517 || No such process&lt;br /&gt;
|-&lt;br /&gt;
| 0x41001 || 1 || 520 || Process not being debugged&lt;br /&gt;
|-&lt;br /&gt;
| 0x202 || 2 || 1 || Path does not exist.&lt;br /&gt;
|-&lt;br /&gt;
| 0x402 || 2 || 2 || Path already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE02 || 2 || 7 || Resource already in use (file already opened, savedata filesystem already mounted).&lt;br /&gt;
|-&lt;br /&gt;
| 0x4602 || 2 || 35 || Not enough free space for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4802 || 2 || 36 || Not enough free space for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A02 || 2 || 37 || Not enough free space for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C02 || 2 || 38 || Not enough free space for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4E02 || 2 || 39 || Not enough free space on SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6402 || 2 || 50 || NCA is older than version 3, or NCA SDK version is older than 0.11.0.0&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 2 || 60 || The specified [[NCA]]-type doesn&#039;t exist for this title.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 2 || 1001 || Process does not have RomFs &lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 2 || 1002 || Title-id not found / savedata not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA202 || 2 || 2001 || SD card not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13B002 || 2 || 2520 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13DA02 || 2 || 2541 || Version check failed when mounting gamecard sysupdate partition?&lt;br /&gt;
|-&lt;br /&gt;
| 0x171402 || 2 || 2954 || Invalid gamecard handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 2 || 3001 || Unimplemented behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x177602 || 2 || 3003 || File/Directory already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x190202 || 2 || 3201 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190602 || 2 || 3203 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190802 || 2 || 3204 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190A02 || 2 || 3205 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190C02 || 2 || 3206 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x191002 || 2 || 3208 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x195802 || 2 || 3244 || Allocation failure related to SD cards&lt;br /&gt;
|-&lt;br /&gt;
| 0x196002 || 2 || 3248 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x196202 || 2 || 3249 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A3E02 || 2 || 3359 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4002 || 2 || 3360 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4A02 || 2 || 3365 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x21BC02 || 2 || 4318 || Invalid save data filesystem magic (valid magic is SAVE in ASCII)&lt;br /&gt;
|-&lt;br /&gt;
| 0x234202 || 2 || 4513 || Error reading ACID section in NPDM&lt;br /&gt;
|-&lt;br /&gt;
| 0x234402 || 2 || 4514 || Invalid NPDM ACID section size&lt;br /&gt;
|-&lt;br /&gt;
| 0x234602 || 2 || 4515 || Last byte of the ACID modulus is zero&lt;br /&gt;
|-&lt;br /&gt;
| 0x234802 || 2 || 4516 || Invalid ACID fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234A02 || 2 || 4517 || Invalid NCA magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x234C02 || 2 || 4518 || Invalid NCA header fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234E02 || 2 || 4519 || Invalid NCA header ACID signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x235002 || 2 || 4520 || Invalid NCA header section hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x235202 || 2 || 4521 || Invalid NCA Key index&lt;br /&gt;
|-&lt;br /&gt;
| 0x235602 || 2 || 4523 || Invalid encryption type&lt;br /&gt;
|-&lt;br /&gt;
| 0x235802 || 2 || 4524 || Redirection BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235A02 || 2 || 4525 || Encryption BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235C02 || 2 || 4526 || Redirection BKTR table end offset is past the Encryption BKTR table start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x235E02 || 2 || 4527 || NCA-path used with the wrong titleID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x236002 || 2 || 4528 || NCA header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236202 || 2 || 4529 || NCA FS header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236802 || 2 || 4532 || PartitionFS hash block size is not a power of 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236A02 || 2 || 4533 || PartitionFS hash &amp;quot;always_2&amp;quot; field is not 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236C02 || 2 || 4534 || PartitionFS hash table is too small for main data&lt;br /&gt;
|-&lt;br /&gt;
| 0x236E02 || 2 || 4535 || Invalid PartitionFS block hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244402 || 2 || 4642 || Invalid Partition file hashed region bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x244602 || 2 || 4643 || Invalid Partition FS hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244802 || 2 || 4644 || Invalid PFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244A02 || 2 || 4645 || Invalid HFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244C02 || 2 || 4646 || Invalid name offset for Partition FS file entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x244E02 || 2 || 4647 || Calculated Partition FS header size changed between 2 consecutive reads&lt;br /&gt;
|-&lt;br /&gt;
| 0x249802 || 2 || 4684 || Invalid FAT file number.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249C02 || 2 || 4686 || Invalid FAT format for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249E02 || 2 || 4687 || Invalid FAT format for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A002 || 2 || 4688 || Invalid FAT format for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A202 || 2 || 4689 || Invalid FAT format for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x250E02 || 2 || 4743 || [[NAX0|Corrupted]] NAX0 header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x251002 || 2 || 4744 || Invalid [[NAX0]] magicnum.&lt;br /&gt;
|-&lt;br /&gt;
| 0x280202 || 2 || 5121 || Invalid FAT size&lt;br /&gt;
|-&lt;br /&gt;
| 0x280402 || 2 || 5122 || Invalid FAT BPB (BIOS Parameter Block)&lt;br /&gt;
|-&lt;br /&gt;
| 0x280602 || 2 || 5123 || Invalid FAT parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x280802 || 2 || 5124 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280A02 || 2 || 5125 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280C02 || 2 || 5126 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280E02 || 2 || 5127 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x296A02 || 2 || 5301 || Mountpoint not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 || 2 || 6001 || Invalid input&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE602 || 2 || 6003 || Path too long&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE802 || 2 || 6004 || Invalid character.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEA02 || 2 || 6005 || Invalid directory path.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEC02 || 2 || 6006 || Unable to retrieve directory from path&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 2 || 6061 || Offset outside storage&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 || 2 || 6300 || Operation not supported&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 || 2 || 6400 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x326602 || 2 || 6451 || Missing titlekey(?) required to mount content&lt;br /&gt;
|-&lt;br /&gt;
| 0x326E02 || 2 || 6455 || File not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327002 || 2 || 6456 || Directory not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327402 || 2 || 6458 || FS allocators already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x327602 || 2 || 6459 || FS allocators already used&lt;br /&gt;
|-&lt;br /&gt;
| 0x327A02 || 2 || 6461 || FS allocator alignment violation&lt;br /&gt;
|-&lt;br /&gt;
| 0x339402 || 2 || 6602 || File not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x339602 || 2 || 6603 || Directory not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBC02 || 2 || 7902 || RomFs table: Entry not found in dictionary&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBE02 || 2 || 7903 || RomFs table: File not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC002 || 2 || 7904 || RomFs table: Directory not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC402 || 2 || 7906 || RomFs table: Entry already exists when trying to add a new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC602 || 2 || 7907 || RomFs table: Insufficient space to add new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC802 || 2 || 7908 || RomFs table: Unable to add new directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCA02 || 2 || 7909 || RomFs table: Unable to add new file&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCC02 || 2 || 7910 || RomFs directory has no more child directories/files when iterating&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DD402 || 2 || 7914 || RomFs table: Path is file, not directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x803 || 3 || 4 || OS busy&lt;br /&gt;
|-&lt;br /&gt;
| 0xE03 || 3 || 7 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x1003 || 3 || 8 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1203 || 3 || 9 || Out of resources&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EA03 || 3 || 501 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE03 || 3 || 503 || Invalid memory mirror&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FE03 || 3 || 1023 || TLS slot is not allocated&lt;br /&gt;
|-&lt;br /&gt;
| 0xA05 || 5 || 5 || [[Content_Manager_services|NcaID]] not found. Returned when attempting to mount titles which exist that aren&#039;t *8XX titles, the same way *8XX titles are mounted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE05 || 5 || 7 || TitleId not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1805 || 5 || 12 || Invalid StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC05 || 5 || 110 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x17C05 || 5 || 190 || Gamecard not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F405 || 5 || 250 || Sdcard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x20805 || 5 || 260 || Storage not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0x806 || 6 || 4 || Converted from error 0xD401&lt;br /&gt;
|-&lt;br /&gt;
| 0x1006 || 6 || 8 || Converted from error 0xE401&lt;br /&gt;
|-&lt;br /&gt;
| 0x408 || 8 || 2 || Program location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x608 || 8 || 3 || Invalid context for control location&lt;br /&gt;
|-&lt;br /&gt;
| 0x808 || 8 || 4 || Storage not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA08 || 8 || 5 || Access denied&lt;br /&gt;
|-&lt;br /&gt;
| 0xC08 || 8 || 6 || Offline manual HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xE08 || 8 || 7 || Title is not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1008 || 8 || 8 || Control location entry for host not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1208 || 8 || 9 || Legal info HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x209 || 9 || 1 || Args too long.&lt;br /&gt;
|-&lt;br /&gt;
| 0x409 || 9 || 2 || Maximum processes loaded.&lt;br /&gt;
|-&lt;br /&gt;
| 0x609 || 9 || 3 || NPDM too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x19009 || 9 || 200 || Invalid access control sizes in NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x809 || 9 || 4 || Invalid NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0xA09 || 9 || 5 || Invalid files.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE09 || 9 || 7 || Already registered.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1009 || 9 || 8 || Title not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1209 || 9 || 9 || Title-id in ACI0 doesn&#039;t match range in ACID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6609 || 9 || 51 || Invalid memory state/permission&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A09 || 9 || 53 || Invalid NRR&lt;br /&gt;
|-&lt;br /&gt;
| 0xA209 || 9 || 81 || Unaligned NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xA409 || 9 || 82 || Bad NRR size&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA09 || 9 || 85 || Bad NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xAE09 || 9 || 87 || Bad initialization&lt;br /&gt;
|-&lt;br /&gt;
| 0xC809 || 9 || 100 || Unknown ACI0 descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE09 || 9 || 103 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD009 || 9 || 104 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;SyscallMask&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD409 || 9 || 106 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapIoOrNormalRange&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD609 || 9 || 107 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapNormalPage&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xDE09 || 9 || 111 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;InterruptPair&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE209 || 9 || 113 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;ApplicationType&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE409 || 9 || 114 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelReleaseVersion&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE609 || 9 || 115 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;HandleTableSize&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE809 || 9 || 116 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;DebugFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x1940A || 10 || 202 || Invalid CMIF header size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A60A || 10 || 211 || Invalid CMIF input header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A80A || 10 || 212 || Invalid CMIF output header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA0A || 10 || 221 || Invalid method dispatch ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D60A || 10 || 235 || Invalid in object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D80A || 10 || 236 || Invalid out object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0A || 10 || 301 || Out of domain entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20B || 11 || 1 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC0B || 11 || 102 || Out of server session memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x11A0B || 11 || 141 || Went past maximum during marshalling.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1900B || 11 || 200 || Session doesn&#039;t support domains.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0B || 11 || 301 || Remote process is dead.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3260B || 11 || 403 || Unknown request type&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D60B || 11 || 491 || IPC Query 1 failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20F || 15 || 1 || Pid not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x60F || 15 || 3 || Process has no pending events&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0F || 15 || 5 || Application already running&lt;br /&gt;
|-&lt;br /&gt;
| 0x410 || 16 || 2 || Title-id not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xF010 || 16 || 120 || Gamecard sysupdate not required&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F610 || 16 || 251 || Unexpected StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0x215 || 21 || 1 || Out of processes&lt;br /&gt;
|-&lt;br /&gt;
| 0x415 || 21 || 2 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x615 || 21 || 3 || Max sessions&lt;br /&gt;
|-&lt;br /&gt;
| 0x815 || 21 || 4 || Service already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xA15 || 21 || 5 || Out of services&lt;br /&gt;
|-&lt;br /&gt;
| 0xC15 || 21 || 6 || Invalid name (all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0xE15 || 21 || 7 || Service not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1015 || 21 || 8 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x1215 || 21 || 9 || Service Access Control too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x416 || 22 || 2 || Address space is full&lt;br /&gt;
|-&lt;br /&gt;
| 0x616 || 22 || 3 || NRO already loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x816 || 22 || 4 || Invalid NRO header values&lt;br /&gt;
|-&lt;br /&gt;
| 0xC16 || 22 || 6 || Bad NRR magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x1016 || 22 || 8 || Reached max NRR count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1216 || 22 || 9 || Unable to verify NRO hash or NRR signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x80216 || 22 || 1025 || Address not page-aligned&lt;br /&gt;
|-&lt;br /&gt;
| 0x80416 || 22 || 1026 || Incorrect NRO size&lt;br /&gt;
|-&lt;br /&gt;
| 0x80816 || 22 || 1028 || NRO not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80A16 || 22 || 1029 || NRR not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80C16 || 22 || 1030 || Already initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E16 || 22 || 1031 || Not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x41A || 26 || 2 || Argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0xC81A || 26 || 100 || Incorrect buffer size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Unknown TZ error&lt;br /&gt;
|-&lt;br /&gt;
| 0xD01A || 26 || 104 || All AES engines busy&lt;br /&gt;
|-&lt;br /&gt;
| 0xD21A || 26 || 105 || Invalid AES engine-id&lt;br /&gt;
|-&lt;br /&gt;
| 0x19269 || 105 || 201 || Null settings name&lt;br /&gt;
|-&lt;br /&gt;
| 0x19469 || 105 || 202 || Null settings key&lt;br /&gt;
|-&lt;br /&gt;
| 0x19669 || 105 || 203 || Null settings value&lt;br /&gt;
|-&lt;br /&gt;
| 0x19A69 || 105 || 205 || Null settings value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A069 || 105 || 208 || Null setting value size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A269 || 105 || 209 || Null debug mode flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA69 || 105 || 221 || Setting group name has zero length&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BC69 || 105 || 222 || Empty settings item key&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E269 || 105 || 241 || Setting group name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E469 || 105 || 242 || Setting name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x20A69 || 105 || 261 || Setting group name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x20C69 || 105 || 262 || Setting name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x4DA69 || 105 || 621 || Null language code buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4EE69 || 105 || 631 || Null network settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4F069 || 105 || 632 || Null network settings output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x50269 || 105 || 641 || Null backlight settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51669 || 105 || 651 || Null Bluetooth device setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51869 || 105 || 652 || Null Bluetooth device setting output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51A69 || 105 || 653 || Null Bluetooth enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51C69 || 105 || 654 || Null Bluetooth AFH enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51E69 || 105 || 655 || Null Bluetooth boost enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52069 || 105 || 656 || Null BLE pairing settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52269 || 105 || 657 || Null BLE pairing settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52A69 || 105 || 661 || Null external steady clock source ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52C69 || 105 || 662 || Null user system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52E69 || 105 || 663 || Null network system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53069 || 105 || 664 || Null user system clock automatic correction enabled flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53269 || 105 || 665 || Null shutdown RTC value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53469 || 105 || 666 || Null external steady clock internal offset buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53E69 || 105 || 671 || Null account settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55269 || 105 || 681 || Null audio volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55669 || 105 || 683 || Null ForceMuteOnHeadphoneRemoved buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55869 || 105 || 684 || Null headphone volume warning count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55E69 || 105 || 687 || Invalid audio output mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x56069 || 105 || 688 || Null headphone volume update flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x56669 || 105 || 691 || Null console information upload flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57A69 || 105 || 701 || Null automatic application download flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57C69 || 105 || 702 || Null notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57E69 || 105 || 703 || Null account notification settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58069 || 105 || 704 || Null account notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58E69 || 105 || 711 || Null vibration master volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59069 || 105 || 712 || Null NX controller settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59269 || 105 || 713 || Null NX controller settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59469 || 105 || 714 || Null USB full key enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A269 || 105 || 721 || Null TV settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A469 || 105 || 722 || Null EDID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5B669 || 105 || 731 || Null data deletion settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CA69 || 105 || 741 || Null initial system applet program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CC69 || 105 || 742 || Null overlay disp program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CE69 || 105 || 743 || Null IsInRepairProcess buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5D069 || 105 || 744 || Null RequiresRunRepairTimeReviser buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5DE69 || 105 || 751 || Null device timezone location name buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5F269 || 105 || 761 || Null primary album storage buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60669 || 105 || 771 || Null USB 3.0 enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60869 || 105 || 772 || Null USB Type-C power source circuit version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A69 || 105 || 781 || Null battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x62E69 || 105 || 791 || Null serial number buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64269 || 105 || 801 || Null lock screen flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64669 || 105 || 803 || Null color set ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64869 || 105 || 804 || Null quest flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64A69 || 105 || 805 || Null wireless certification file size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64C69 || 105 || 806 || Null wireless certification file buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64E69 || 105 || 807 || Null initial launch settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65069 || 105 || 808 || Null device nickname buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65269 || 105 || 809 || Null battery percentage flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65469 || 105 || 810 || Null applet launch flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7E869 || 105 || 1012 || Null wireless LAN enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FA69 || 105 || 1021 || Null product model buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E69 || 105 || 1031 || Null NFC enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82269 || 105 || 1041 || Null ECI device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82469 || 105 || 1042 || Null E-Ticket device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x83669 || 105 || 1051 || Null sleep settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84A69 || 105 || 1061 || Null EULA version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84C69 || 105 || 1062 || Null EULA version entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x85E69 || 105 || 1071 || Null LDN channel buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87269 || 105 || 1081 || Null SSL key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87469 || 105 || 1082 || Null SSL certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x88669 || 105 || 1091 || Null telemetry flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89A69 || 105 || 1101 || Null Gamecard key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89C69 || 105 || 1102 || Null Gamecard certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8AE69 || 105 || 1111 || Null PTM battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B069 || 105 || 1112 || Null PTM fuel gauge parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C269 || 105 || 1121 || Null ECI device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C469 || 105 || 1122 || Null E-Ticket device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D669 || 105 || 1131 || Null speaker parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EA69 || 105 || 1141 || Null firmware version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EC69 || 105 || 1142 || Null firmware version digest buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EE69 || 105 || 1143 || Null rebootless system update version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8FE69 || 105 || 1151 || Null Mii author ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x91269 || 105 || 1161 || Null fatal flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x92669 || 105 || 1171 || Null auto update enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x93A69 || 105 || 1181 || Null external RTC reset flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x94E69 || 105 || 1191 || Null push notification activity mode buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x96269 || 105 || 1201 || Null service discovery control setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x97669 || 105 || 1211 || Null error report share permission buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x98A69 || 105 || 1221 || Null LCD vendor ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x99E69 || 105 || 1231 || Null console SixAxis sensor acceleration bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A069 || 105 || 1232 || Null console SixAxis sensor angular velocity bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A269 || 105 || 1233 || Null console SixAxis sensor acceleration gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A469 || 105 || 1234 || Null console SixAxis sensor angular velocity gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A669 || 105 || 1235 || Null console SixAxis sensor angular velocity time bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A869 || 105 || 1236 || Null console SixAxis sensor angular acceleration buffer &lt;br /&gt;
|-&lt;br /&gt;
| 0x9B269 || 105 || 1241 || Null keyboard layout buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9BA69 || 105 || 1245 || Invalid keyboard layout&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C669 || 105 || 1251 || Null web inspector flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C869 || 105 || 1252 || Null allowed SSL hosts buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CA69 || 105 || 1253 || Null allowed SSL hosts entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CC69 || 105 || 1254 || Null host FS mount point buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9EE69 || 105 || 1271 || Null Amiibo key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F069 || 105 || 1272 || Null Amiibo ECQV certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F269 || 105 || 1273 || Null Amiibo ECDSA certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F469 || 105 || 1274 || Null Amiibo ECQV BLS key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F669 || 105 || 1275 || Null Amiibo ECQV BLS certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F869 || 105 || 1276 || Null Amiibo ECQV BLS root certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x272 || 114 || 1 || Generic error&lt;br /&gt;
|-&lt;br /&gt;
| 0xC72 || 114 || 6 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || 116 || 0 || Time service not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC74 || 116 || 102 || Time not set&lt;br /&gt;
|-&lt;br /&gt;
| 0x19074 || 116 || 200 || Invalid time comparison&lt;br /&gt;
|-&lt;br /&gt;
| 0x19274 || 116 || 201 || Signed overflow/underflow&lt;br /&gt;
|-&lt;br /&gt;
| 0x64274 || 116 || 801 || Memory allocation failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x70A74 || 116 || 901 || Null pointer&lt;br /&gt;
|-&lt;br /&gt;
| 0x70C74 || 116 || 902 || Value out of valid range&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BA74 || 116 || 989 || Entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BC74 || 116 || 990 || Unimplemented functionality&lt;br /&gt;
|-&lt;br /&gt;
| 0x287C || 124 || 20 || Argument is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C7C || 124 || 22 || Argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C7C || 124 || 30 || Bad input buffer size&lt;br /&gt;
|-&lt;br /&gt;
| 0x407C || 124 || 32 || Invalid input buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x27E || 126 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x87E || 126 || 4 || Entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE7E || 126 || 67 || Invalid database signature value (should be &amp;quot;NFDB&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0xD27E || 126 || 69 || Invalid database entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1987E || 126 || 204 || Development/debug-only behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x480 || 128 || 2 || IStorage not available.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4680 || 128 || 35 || Error while launching applet.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A80 || 128 || 37 || Title-ID not found. Caused by code 0x410 when applet launch fails&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E880 || 128 || 500 || Invalid IStorage size (negative?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EC80 || 128 || 502 || IStorage has already been opened by another accessor&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE80 || 128 || 503 || IStorage Read/Write out-of-bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x3FE80 || 128 || 511 || IStorage opened as wrong type (data opened as transfermem, transfermem opened as data)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B080 || 128 || 600 || Failed to allocate memory for IStorage&lt;br /&gt;
|-&lt;br /&gt;
| 0x59080 || 128 || 712 || Thread stack pool exhausted (out of memory)&lt;br /&gt;
|-&lt;br /&gt;
| 0x7A880 || 128 || 980 || &amp;lt;code&amp;gt;am.debug!dev_function&amp;lt;/code&amp;gt; setting needs to be set&lt;br /&gt;
|-&lt;br /&gt;
| 0xA83 || 131 || 5 || Unrecognized applet ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x485 || 133 || 2 || Invalid DVFS table ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x885 || 133 || 4 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x3CF089 || 137 || 7800 || Unknown/invalid libcurl error.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E8289-0x3F4089 || 137 || 8001-8096 || libcurl error 1-96. Some of the libcurl errors in the error-table map to the above unknown-libcurl-error however.&lt;br /&gt;
|-&lt;br /&gt;
| 0x68A || 138 || 3 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x668C || 140 || 51 || USB data-transfer in progress&lt;br /&gt;
|-&lt;br /&gt;
| 0xD48C || 140 || 106 || Invalid descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x1928C || 140 || 201 || USB device not bound / interface already enabled&lt;br /&gt;
|-&lt;br /&gt;
| 0x299 || 153 || 1 || Invalid audio device&lt;br /&gt;
|-&lt;br /&gt;
| 0x499 || 153 || 2 || Operation couldn&#039;t complete successfully&lt;br /&gt;
|-&lt;br /&gt;
| 0x699 || 153 || 3 || Invalid sample rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x899 || 153 || 4 || Buffer size too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x1099 || 153 || 8 || Too many buffers are still unreleased&lt;br /&gt;
|-&lt;br /&gt;
| 0x1499 || 153 || 10 || Invalid channel count&lt;br /&gt;
|-&lt;br /&gt;
| 0x40299 || 153 || 513 || Invalid/Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0099 || 153 || 1536 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0899 || 153 || 1540 || Audio output was already started&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C9D || 157 || 30 || Address is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E9D || 157 || 31 || PID is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x549D || 157 || 42 || Already bound&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC9D || 157 || 102 || Invalid PID&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA3 || 163 ||  5 || System is booting up repair process without VOL+ held down.&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA3 || 163 || 6 || System is booting up repair process that requires RepairTimeReviser but does not have special cartridge inserted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8B2 || 178 || 100 || Invalid user ID&lt;br /&gt;
|-&lt;br /&gt;
| 0xCAB2 || 178 || 101 || User does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 0x12CB2 || 178 || 150 || Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| 0x190B2 || 178 || 200 || File storage failure&lt;br /&gt;
|-&lt;br /&gt;
| 0xF0CD || 205 || 120 || IR image data not available/ready.&lt;br /&gt;
|-&lt;br /&gt;
| 0x35B || 347 || 1 || Failed to init SM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x55B || 347 || 2 || Failed to init FS.&lt;br /&gt;
|-&lt;br /&gt;
| 0x75B || 347 || 3 || Failed to open NRO file. May also happen when SD card isn&#039;t inserted / SD mounting failed earlier.&lt;br /&gt;
|-&lt;br /&gt;
| 0x95B || 347 || 4 || Failed to read NRO header.&lt;br /&gt;
|-&lt;br /&gt;
| 0xB5B || 347 || 5 || Invalid NRO magic.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD5B || 347 || 6 || Invalid NRO segments.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF5B || 347 || 7 || Failed to read NRO.&lt;br /&gt;
|-&lt;br /&gt;
| 0x135B || 347 || 9 || Failed to allocate heap.&lt;br /&gt;
|-&lt;br /&gt;
| 0x255B || 347 || 18 || Failed to map code-binary memory.&lt;br /&gt;
|-&lt;br /&gt;
| 0x275B || 347 || 19 || Failed to map code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x295B || 347 || 20 || Failed to map code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B5B || 347 || 21 || Failed to map code memory (.data+.bss).&lt;br /&gt;
|-&lt;br /&gt;
| 0x315B || 347 || 24 || Failed to unmap code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x335B || 347 || 25 || Failed to unmap code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x355B || 347 || 26 || Failed to unmap code memory (.data+.bss).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FS Error Codes ==&lt;br /&gt;
The following are the error codes recognized by nn::fs::detail::LogErrorMessage found in some [[Factory Setup|factory]] titles:&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Description || Message&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 60 || Error: Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 106 || Error: Passed buffer is not usable for fs library.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 1001 || Error: Specified partition is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 1002 || Error: Specified target is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA002 - 0x138602 || 2000 - 2499 || Error: Failed to access SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x136802 - 0x176E02 || 2500 - 2999 || Error: Failed to access game card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 3001 || Error: Specified operation is not implemented.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177A02 || 3005 || Error: Specified value is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B5802 - 0x1F3E02 || 3500 - 3999 || Error: Failed to access MMC.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4202 - 0x219602 || 4001 - 4299 || Error: ROM is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x219A02 - 0x232602 || 4301 - 4499 || Error: Save data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x232A02 - 0x23EE02 || 4501 - 4599 || Error: NCA is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x23F202 - 0x243E02 || 4601 - 4639 || Error: Integrity verification failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x244202 - 0x246602 || 4641 - 4659 || Error: Partition FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x246A02 - 0x248E02 || 4661 - 4679 || Error: Built-in-storage is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249202 - 0x24B602 || 4681 - 4699 || Error: FAT FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24BA02 - 0x24DE02 || 4701 - 4719 || Error: HOST FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4002 - 0x270E02 || 4000, 4300, 4500, 4600, 4640, 4660, 4680, 4700, 4720-4999 || Error: Data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x271002 - 0x2EDE02 || 5000-5999 || Error: Unexpected failure occurred.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE402 - 0x2F1A02 || 6002-6029 || Error: Invalid path was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 6061 || Error: Invalid offset was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5C02 || 6062 || Error: Invalid size was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5E02 || 6063 || Error: Null pointer argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE002 || 6000 || Error: Precondition violation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 - 0x306E02 || 6001-6199 || Error: Invalid argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x307202 || 6201 || Error: OpenMode_AllowAppend is required for implicit extension of file size by WriteFile().&lt;br /&gt;
|-&lt;br /&gt;
| 0x307002 - 0x313602 || 6200, 6202 - 6299 || Error: Invalid operation for the open mode.&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 - 0x31FE02 || 6300-6399 || Error: Unsupported operation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 - 0x32C602 || 6400-6499 || Error: Permission denied.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346402 || 6706 || Error: Enough journal space is not left.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346A02 || 6709 || Error: The open count of files and directories reached the limitation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Fatal Errors =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Description&lt;br /&gt;
|-&lt;br /&gt;
| 2162-0002&lt;br /&gt;
| Can be triggered by running [[SVC|svcBreak]]. The svcBreak params have no effect on the value of the thrown error-code.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0000&lt;br /&gt;
| Userland ARM undefined instruction exception&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0001&lt;br /&gt;
| Userland ARM prefetch-abort due to PC set to non-executable region&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0002&lt;br /&gt;
| Userland ARM data abort. Also caused by abnormal process termination via [[SVC|svcExitProcess]]. Note: directly jumping to nnMain()-retaddr from non-main-thread has the same result.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0003&lt;br /&gt;
| Userland PC address not aligned to 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0008&lt;br /&gt;
| Can occur when attempting to call an svc outside the whitelist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Support Errors =&lt;br /&gt;
This section is for Support Errors displayed by the error-applet, separate from the normal Result errors.&lt;br /&gt;
&lt;br /&gt;
== Support Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [[Internet_Browser|General web-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 809 || [[Internet_Browser|WifiWebAuthApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [[Internet_Browser|Whitelisted-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 811 || [[Internet_Browser|ShopN]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
8XX is for/includes system applets.&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| {web-applets listed above}&lt;br /&gt;
| 2750&lt;br /&gt;
| MP4 parsing failed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Normal error-codes displayed by the system also use the same format as fatal-errors.&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=6341</id>
		<title>Filesystem services</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=6341"/>
		<updated>2019-03-05T01:27:58Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* DirectoryEntry */ File attributes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= fsp-ldr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxyForLoader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Arguments || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || OpenCodeFileSystem || u64 TitleId + X descriptor [[#ContentPath]] || Returns an [[#IFileSystem]].&lt;br /&gt;
|-&lt;br /&gt;
| 1 || IsArchivedProgram || u64 ProcessId || Returns a bool (1 if the process id&#039;s [[#ContentPath]] ends in &amp;quot;.nca&amp;quot;).&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] SetCurrentProcess || PID descriptor ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= fsp-pr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IProgramRegistry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#RegisterProgram]] ||&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#UnregisterProgram]] ||&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] SetCurrentProcess ||&lt;br /&gt;
|-&lt;br /&gt;
| 256 || [[#SetEnabledProgramVerification]] ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== RegisterProgram ==&lt;br /&gt;
Takes a storageID, a pid, a titleID, a 0x1C type-A buffer for the [[NPDM#FS_Access_Header| FS Access Header]], and a 0x2C type-A buffer for the [[NPDM#FS_Access_Control| FS Access Control]]&lt;br /&gt;
&lt;br /&gt;
Final FS permissions are stored as (ACI0_perms &amp;amp; ACID_perms). Will panic(svcBreak) when buffer sizes from ipc-rawdata are invalid.&lt;br /&gt;
&lt;br /&gt;
== UnregisterProgram ==&lt;br /&gt;
Takes a pid. Removes registered FS permissions for that PID.&lt;br /&gt;
&lt;br /&gt;
== SetEnabledProgramVerification ==&lt;br /&gt;
Seems to sets a global flag to inputval &amp;amp; 1.&lt;br /&gt;
&lt;br /&gt;
When the flag is zero, it will set ret=0 instead of ret={error} when verifying the fixed-key [[NPDM]] ACID signature fails. This also skips verifying the [[NCA_Format|NCA Header]] signature using the ACID key. Note that if verifying the fixed-key ACID signature is successful, and verifying the ACID-key NCA header signature fails, it will throw an error and abort.&lt;br /&gt;
&lt;br /&gt;
= fsp-srv =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxy&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [1.0.0] [[#OpenFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#SetCurrentProcess]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || OpenDataFileSystemByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [2.0.0+] [[#OpenFileSystemWithPatch]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [2.0.0+] [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [3.0.0+] OpenDataFileSystemByApplicationId&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || InvalidateBisCache&lt;br /&gt;
|-&lt;br /&gt;
| 17 || OpenHostFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 18 || OpenSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 19 || [2.0.0+] FormatSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 21 || [[#DeleteSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 22 || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 23 || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 24 || RegisterSaveDataFileSystemAtomicDeletion&lt;br /&gt;
|-&lt;br /&gt;
| 25 || [2.0.0+] DeleteSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 26 || [2.0.0+] FormatSdCardDryRun&lt;br /&gt;
|-&lt;br /&gt;
| 27 || [2.0.0+] IsExFatSupported&lt;br /&gt;
|-&lt;br /&gt;
| 28 || [4.0.0+] DeleteSaveDataFileSystemBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 30 || [[#OpenGameCardStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 31 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [3.0.0+] ExtendSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [5.0.0+] DeleteCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [5.0.0+] GetCacheStorageSize&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] CreateSaveDataFileSystemByHashSalt (Unofficial name, takes a total of 0xB0-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 51 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 52 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 53 || [2.0.0+] OpenReadOnlySaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 57 || [3.0.0+] [[#ReadSaveDataFileSystemExtraDataBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 58 || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 59 || [2.0.0+] WriteSaveDataFileSystemExtraData&lt;br /&gt;
|-&lt;br /&gt;
| 60 || [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 61 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 62 || [5.0.0+] OpenCacheStorageList&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [5.0.0+] OpenSaveDataInternalStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [5.0.0+] UpdateSaveDataMacForDebug&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [5.0.0+] WriteSaveDataFileSystemExtraData2&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] FindSaveDataWithFilter (Takes a total of 0x50-bytes of input, returns 8-bytes of output, and a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] OpenSaveDataInfoReaderBySaveDataFilter (Unofficial name, takes a total of 0x50-bytes of input, returns an #ISaveDataInfoReader)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || OpenSaveDataMetaFile&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [4.0.0+] OpenSaveDataTransferManager (No input, returns an [[#ISaveDataTransferManager]])&lt;br /&gt;
|-&lt;br /&gt;
| 82 || [5.0.0+] OpenSaveDataTransferManagerVersion2 (No input, returns an [[#ISaveDataTransferManagerWithDivision]])&lt;br /&gt;
|-&lt;br /&gt;
| 83 || [6.0.0+] OpenSaveDataTransferProhibiterForCloudBackUp (Takes an input u64, returns an [[#ISaveDataTransferProhibiter]])&lt;br /&gt;
|-&lt;br /&gt;
| 84 || [6.0.0+] ListApplicationAccessibleSaveDataOwnerId (Takes a total of 0x10-bytes of input, returns 4-bytes of output, and a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 100 || OpenImageDirectoryFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 110 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 120 || [6.0.0+] OpenCloudBackupWorkStorageFileSystem (Takes 4-bytes of input, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 130 || [7.0.0+] OpenCustomStorageFileSystem (Takes 4-bytes of input, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 200 || OpenDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 201 || [3.0.0+] OpenDataStorageByProgramId&lt;br /&gt;
|-&lt;br /&gt;
| 202 || [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 203 || OpenPatchDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 204 || [7.0.0+] ? (Takes an input u8, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 205 || [7.0.0+] ? (Takes an input u8, returns an [[#IStorage]])&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [[#OpenDeviceOperator]]&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 510 || [5.0.0+] OpenSystemDataUpdateEventNotifier&lt;br /&gt;
|-&lt;br /&gt;
| 511 || [5.0.0+] NotifySystemDataUpdateEvent&lt;br /&gt;
|-&lt;br /&gt;
| 520 || [6.0.0+] SimulateGameCardDetectionEvent (Takes a total of 0xC-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 600 || [1.0.0-3.0.2] SetCurrentPosixTime&lt;br /&gt;
|-&lt;br /&gt;
| 601 || QuerySaveDataTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 602 || [[#VerifySaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 603 || CorruptSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 604 || CreatePaddingFile&lt;br /&gt;
|-&lt;br /&gt;
| 605 || DeleteAllPaddingFiles&lt;br /&gt;
|-&lt;br /&gt;
| 606 || [2.0.0+] GetRightsId&lt;br /&gt;
|-&lt;br /&gt;
| 607 || [2.0.0+] RegisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 608 || [2.0.0+] UnregisterAllExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 609 || [2.0.0+] GetRightsIdByPath&lt;br /&gt;
|-&lt;br /&gt;
| 610 || [3.0.0+] GetRightsIdAndKeyGenerationByPath&lt;br /&gt;
|-&lt;br /&gt;
| 611 || [4.0.0+] SetCurrentPosixTimeWithTimeDifference&lt;br /&gt;
|-&lt;br /&gt;
| 612 || [4.0.0+] GetFreeSpaceSizeForSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 613 || [4.0.0+] VerifySaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 614 || [4.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 615 || [5.0.0+] QuerySaveDataInternalStorageTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 616 || [6.0.0+] [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| 617 || [7.0.0+] UnregisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 620 || [2.0.0+] [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| 630 || [4.0.0+] SetSdCardAccessibility&lt;br /&gt;
|-&lt;br /&gt;
| 631 || [4.0.0+] IsSdCardAccessible&lt;br /&gt;
|-&lt;br /&gt;
| 640 || [4.0.0+] IsSignedSystemPartitionOnSdCardValid&lt;br /&gt;
|-&lt;br /&gt;
| 700 || [5.0.0+] OpenAccessFailureResolver&lt;br /&gt;
|-&lt;br /&gt;
| 701 || [5.0.0+] GetAccessFailureDetectionEvent&lt;br /&gt;
|-&lt;br /&gt;
| 702 || [5.0.0+] IsAccessFailureDetected&lt;br /&gt;
|-&lt;br /&gt;
| 710 || [5.0.0+] ResolveAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 720 || [5.0.0+] AbandonAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [2.0.0+] GetAndClearFileSystemProxyErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [7.0.0+] RegisterProgramIndexMapInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1000 || SetBisRootForHost&lt;br /&gt;
|-&lt;br /&gt;
| 1001 || SetSaveDataSize&lt;br /&gt;
|-&lt;br /&gt;
| 1002 || SetSaveDataRootPath&lt;br /&gt;
|-&lt;br /&gt;
| 1003 || DisableAutoSaveDataCreation&lt;br /&gt;
|-&lt;br /&gt;
| 1004 || [[#SetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1005 || [[#GetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1006 || [[#OutputAccessLogToSdCard]]&lt;br /&gt;
|-&lt;br /&gt;
| 1007 || [4.0.0+] RegisterUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1008 || [4.0.0+] OpenRegisteredUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1009 || [4.0.0+] GetAndClearMemoryReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1010 || [5.1.0-6.2.0] SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| 1011 || [7.0.0+] (no input, returns two 32-bit values, second is &amp;quot;program_index&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 1100 || [4.0.0+] OverrideSaveDataTransferTokenSignVerificationKey&lt;br /&gt;
|-&lt;br /&gt;
| 1110 || [6.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId2&lt;br /&gt;
|-&lt;br /&gt;
| 1200 || [6.0.0+] OpenMultiCommitManager (No input, returns an output #IMultiCommitManager)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
Every time permissions are checked, the process registration [[#fsp-pr]] is loaded using the session processID. The permission data is populated with data from the [[NPDM]].&lt;br /&gt;
&lt;br /&gt;
If the processID is &amp;lt;= 6 (which happens only for built-in sysmodules), it will use a hardcoded registration data. The default mask in this case is 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
Note that the functions check whether or not at least one bit is set in the mask. This means that, you don&#039;t need to set 0xFFFFFFFFFFFFFFFF to get all permissions: it suffices to set 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
If the code were to request an invalid input type, panic. But this never happens.&lt;br /&gt;
&lt;br /&gt;
=== RwPermissions ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type(s) || Mask || Name || Value || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000801 || CanMountLogo || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000801 || CanMountContentMeta || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000801 || CanMountContentControl || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000801 || CanMountContentManual || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000801 || CanMountContentData || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000801 || CanMountApplicationPackage || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000000000 || CanMountSaveDataStorage || 3 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000800 || CanMountContentStorage || 3 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000001000 || CanMountImageAndVideoStorage || 3 || [[#OpenImageDirectoryFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanMountCloudBackupWorkStorage || 3 || OpenCloudBackupWorkStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000000084&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountBisCalibrationFile || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000008080) || CanMountBisSafeMode || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000008080 || CanMountBisUser || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000008080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountBisSystem || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanMountBisSystemProperEncryption || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000010) || CanMountBisSystemProperPartition || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0xC000000000200000&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000040020) || CanMountSdCard || 3 || [[#OpenSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x8000000000000010&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000028) || CanMountGameCard || 3 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000040020&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000020) || CanMountDeviceSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0x8000000000000028&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000020) || CanMountSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x8000000000000020&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010082) || CanMountOthersSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0x8000000000000020&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanMountOthersSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0x8000000000010082&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition1Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0x8000000000010080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition2Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanOpenBisPartitionUserDataRoot || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part1 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part2 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part3 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part4 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part5 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part6 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || 0x8000000000000084&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationBinary || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x8000000000000084&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationFile || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0x8000000000000080 || CanOpenBisPartitionSafeMode || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0x8000000000000080 || CanOpenBisPartitionUser || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanOpenBisPartitionSystem || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000100) || CanOpenBisPartitionSystemProperEncryption || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000100008) || CanOpenBisPartitionSystemProperPartition || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0xC000000000200000&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000400000) || CanOpenSdCardStorage || ||&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x27 || 0x8000000000000100&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000100008) || CanOpenGameCardStorage || 3 || [[#OpenGameCardStorage]],  [[#EraseGameCard]] (bit1), [[#WriteToGameCard]] (bit1), [[#GetGameCardErrorInfo]] (bit1), [[#EraseAndWriteParamDirectly]] (bit1), [[#ReadParamDirectly]] (bit1), [[#ForceEraseGameCard]] (bit1)&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x28 || 0x8000000000100008&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000400000) || CanMountSystemDataPrivate || 1 || [[#OpenFileSystem]], [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x29 || 0xC000000000400000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010000) || CanMountHost || 3 || [[#OpenHostFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0x8000000000010000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanMountRegisteredUpdatePartition || 1 || [[#OpenRegisteredUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x2B || 0x8000000000000000 || CanOpenSaveDataInternalStorage || 3 || [[#OpenSaveDataInternalStorageFileSystem]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BoolPermissions ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type(s) || Mask || Name || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000080 || CanInvalidateBisCache || [[#InvalidateBisCache]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000080 || CanEraseMmc || [[#EraseMmc]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000010 || CanGetGameCardDeviceCertificate || [[#GetGameCardDeviceCertificate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000010 || CanGetGameCardIdSet || [[#GetGameCardIdSet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000200 || CanFinalizeGameCardDriver || [[#FinalizeGameCardDriver]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000200 || CanGetGameCardAsicInfo || [[#GetGameCardAsicInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000002020 || CanCreateSaveData || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000060 || CanDeleteSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000000028 || CanCreateSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000000000020 || CanCreateOthersSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000004028 || CanDeleteSystemSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000060 || CanOpenSaveDataInfoReader || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000004020 || CanOpenSaveDataInfoReaderForSystem || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000000040&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000020000) || || OpenSaveDataInfoReaderBySaveDataFilter&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000020000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000400) || CanOpenSaveDataMetaFile || [[#OpenSaveDataMetaFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000400&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000004060) || CanSetCurrentPosixTime || [[#SetCurrentPosixTime]], [[#SetCurrentPosixTimeWithTimeDifference]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000004060&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000080000) || CanReadSaveDataFileSystemExtraData || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x8000000000080000 || CanSetGlobalAccessLogMode || [[#SetGlobalAccessMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000080000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] Invalid) || CanSetSpeedEmulationMode || [[#SetSpeedEmulationMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || Invalid&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000800000) || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0xC000000000800000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000001000000) || CanFillBis || [[#CreatePaddingFile]], [[#DeleteAllPaddingFiles]] &lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0xC000000001000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000001000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0xC000000002000000) || CanCorruptSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x16 || 0x8000000001000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000004000000) || CanCorruptSystemSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x17 || 0x8000000000000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0xC000000002000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000008000000) || CanVerifySaveData || [[#VerifySaveDataFileSystem]], [[#VerifySaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x18 || 0xC000000002000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000004000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000010000000) || CanDebugSaveData || [[#CreateSaveDataFileSystem]], [[#OpenSaveDataFileSystem]], [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x19 || 0x8000000004000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000008000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000800) || CanFormatSdCard || [[#FormatSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x1A || 0x8000000008000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000010000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000004020) || CanGetRightsId || [[#GetRightsId]], [[#GetRightsIdAndKeyGenerationByPath]], [[#GetRightsIdByPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1B || 0x8000000010000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000800)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000002020) || CanRegisterExternalKey || [[#RegisterExternalKey]], [[#UnregisterAllExternalKey]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1C || 0x8000000000000800&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000004020)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000028) || CanSetEncryptionSeed || [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1D || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000020000000) || SaveDataExtraData_Write0 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1E || 0x8000000000004020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000002020)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000040000000) || CanWriteSaveDataFileSystemExtraDataFlags || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1F || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000000) || SaveDataExtraData_Write1 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x20 || 0x8000000000000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000020000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000000) || CanWriteSaveDataFileSystemExtraDataAll || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x21 || 0x8000000000002020&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanExtendSaveData || [[#ExtendSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x22 || 0x8000000000000028&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000002) || CanExtendSystemSaveData || [[#ExtendSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x23 || 0x8000000020000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanRegisterUpdatePartition || [[#RegisterUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x24 || 0x8000000040000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanOpenSaveDataTransferManager || [[#OpenSaveDataTransferManager]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x25 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanOpenSaveDataTransferManagerVersion2 || [[#OpenSaveDataTransferManagerVersion2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x26 || 0x8000000200002000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080000110) || CanOpenSaveDataTransferProhibiterForCloudBackUp || [[#OpenSaveDataTransferProhibiterForCloudBackUp]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x27 || 0x8000000200002000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000100008) || CanListApplicationAccessibleSaveDataOwnerId || ListApplicationAccessibleSaveDataOwnerId&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x28 || 0x8000000000000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080010000) || CanControlMmcPatrol || [[#SuspendMmcPatrol]], [[#ResumeMmcPatrol]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x29 || 0x8000000000000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOverrideSaveDataTransferTokenSignVerificationKey || [[#OverrideSaveDataTransferTokenSignVerificationKey]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0x8000000080200000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSdCardDetectionEventNotifier || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2B || 0x8000000080000110&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenGameCardDetectionEventNotifier || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2C || 0x8000000000100008&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSystemDataUpdateEventNotifier || [[#OpenSystemDataUpdateEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2D || 0x8000000000010000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanNotifySystemDataUpdateEvent || [[#NotifySystemDataUpdateEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2E || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanOpenAccessFailureDetectionEventNotifier || [[#OpenAccessFailureResolver]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2F || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanGetAccessFailureDetectionEvent || [[#GetAccessFailureDetectionEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.1.0+] 0x30 || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080080000) || CanIsAccessFailureDetected || [[#IsAccessFailureDetected]] &lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x31 || 0x8000000100000000 || CanResolveAccessFailure || [[#ResolveAccessFailure]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x32 || 0x8000000100000000 || CanAbandonAccessFailure || [[#AbandonAccessFailure]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x33 || 0x8000000040000000 || CanQuerySaveDataInternalStorageTotalSize || [[#QuerySaveDataInternalStorageTotalSize]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x34 || 0x8000000200000020 || CanGetSaveDataCommitId || [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x35 || 0x8000000000200000 || CanSetSdCardAccessibility || [[#SetSdCardAccessibility]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x36 || 0x4000000000000000 || || SimulateGameCardDetectionEvent, SetGameCardSimulationEvent, ClearGameCardSimulationEvent&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x37 || 0x8000000000080000 || CanSetDataStorageRedirectTarget || SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x38 || 0x8000000000000000 || || [[#CreateSaveDataFileSystem]], CreateSaveDataFileSystemByHashSalt&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer (ContentPath) and a [[#FileSystemType]] as parameters. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
[2.0.0+] This function was removed.&lt;br /&gt;
&lt;br /&gt;
== SetCurrentProcess ==&lt;br /&gt;
Takes a pid-descriptor.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithPatch ==&lt;br /&gt;
Takes an input [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Web-applet loads the [[#FileSystemType]] (which must be &#039;&#039;&#039;ContentManual&#039;&#039;&#039;) from u32_table[inparam].&lt;br /&gt;
&lt;br /&gt;
Note: web-applet strings refer to both this cmd and [[#OpenFileSystemWithId]] as &amp;quot;MountContent&amp;quot;, but official nn_sf_sync symbols use &amp;quot;OpenXX&amp;quot; names.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithId ==&lt;br /&gt;
Takes a type-0x19 input buffer, an [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
The [[#IFileSystem]] must be &#039;&#039;&#039;ContentMeta&#039;&#039;&#039; if the NCA type is 0 (control).&lt;br /&gt;
&lt;br /&gt;
The input buffer is the output string path from [[NS_Services#GetApplicationContentPath|GetApplicationContentPath]].&lt;br /&gt;
&lt;br /&gt;
May return errors when attempting to access NCA-paths for an update-title with a gamecard, when the gamecard isn&#039;t inserted. May return error 0x7D402 in some cases with update-titles. Non-val2 in32 values with NCA-type1 are unusable, even for normal titles.&lt;br /&gt;
&lt;br /&gt;
The official &amp;quot;MountApplicationPackage&amp;quot; func uses this with in64=0 and [[#FileSystemType]] &#039;&#039;&#039;ApplicationPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
After the [[#FileSystemType]] specific permissions are checked, it then gets the func retval for permissions-type 0x25 and func0.&lt;br /&gt;
&lt;br /&gt;
When [[#FileSystemType]] is &#039;&#039;&#039;ContentMeta&#039;&#039;&#039;, it uses in64=0xffffffffffffffff internally, otherwise it checks if in64 is set to 0xffffffffffffffff then throws an error if so. When the in64 used internally is not 0xffffffffffffffff, it&#039;s compared with the NCA titleID, then an error is thrown on mismatch.&lt;br /&gt;
&lt;br /&gt;
== OpenBisFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer string and a u32 [[Flash_Filesystem|Bis partitionID]]. Official user-process code sets instr[0] = 0 normally. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Only partitionIDs for FAT partitions are usable with this, otherwise error 0x2EE202 is returned. Seems to be about the same as [[#OpenBisStorage]] except this mounts the partition filesystem instead of allowing direct access to the partition sectors.&lt;br /&gt;
&lt;br /&gt;
== OpenBisStorage ==&lt;br /&gt;
Takes a u32 partition ID, returns 0x2EE202 for partitions which do not exist, 0x320002 for partitions which cannot be opened and a valid [[#IStorage]] handle otherwise.&lt;br /&gt;
&lt;br /&gt;
== InvalidateBisCache ==&lt;br /&gt;
Seems to invalidate the Bis cache for MBR/GPT after overwriting that data via the OpenBisStorage IStorage. Used by [[SystemInitializer]].&lt;br /&gt;
&lt;br /&gt;
== DeleteSaveDataFileSystem ==&lt;br /&gt;
Takes an input u64.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystem ==&lt;br /&gt;
Takes a 0x40-byte Save-struct entry, a 0x40-byte SaveCreate-struct entry, and a 0x10-byte input struct.&lt;br /&gt;
&lt;br /&gt;
Only the first 0x5-bytes in the 0x10-byte struct are initialized: all-zero when automatically creating savedata during savecommon mount by official user-processes. In the dedicated save-creation code in official user-processes: +0 u32 = 0x40060, +4 u8 = 1.&lt;br /&gt;
&lt;br /&gt;
Creates regular savedata.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes a 0x40-byte Save-struct entry and a 0x40-byte SaveCreate-struct entry.&lt;br /&gt;
&lt;br /&gt;
Creates savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardStorage ==&lt;br /&gt;
Takes two input u32s (gamecard handle, partition ID), and returns an [[#IStorage]] for the [[Gamecard_Format|partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardFileSystem ==&lt;br /&gt;
Takes two input u32s, with the second u32 located at +4 in rawdata after the first u32. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts a [[Gamecard_Partition|gamecard partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystem ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte Save-struct entry. Official user-process code is only known to use value 1 for the u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Permissions aren&#039;t checked until the specified save is successfully found.&lt;br /&gt;
&lt;br /&gt;
Only one process (specifically only one [[#IFileSystem]] session) can mount a given savedata at any given time (this includes SystemSaveData).&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte Save-struct entry. Web-applet only uses value0 for the input u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraDataBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an input u64 saveID, and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraData ==&lt;br /&gt;
Takes an input u64 saveID and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReader ==&lt;br /&gt;
No input, returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReaderBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenContentStorageFileSystem ==&lt;br /&gt;
Takes a [[#ContentStorageId]]. Invalid values return 0x2EE202.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]] with NCA files. The read data from these files is identical to the data read by [[NCM_services#ReadContentIdFile]].&lt;br /&gt;
&lt;br /&gt;
== OpenDataStorageByDataId ==&lt;br /&gt;
Takes a [[#StorageId]] and a TitleID.&lt;br /&gt;
&lt;br /&gt;
Returns a [[IPC_Marshalling#Domain_message|domain object ID]] implementing the [[#IStorage]] interface for data archives.&lt;br /&gt;
&lt;br /&gt;
== OpenDeviceOperator ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IDeviceOperator]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenSdCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== VerifySaveDataFileSystem ==&lt;br /&gt;
Takes an unknown input u64 and a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
The input u64 high-byte must be non-zero, otherwise an [[Error_codes|error]] is returned(0xE02).&lt;br /&gt;
&lt;br /&gt;
== GetSaveDataCommitId ==&lt;br /&gt;
Takes an input u8 and u64, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== SetSdCardEncryptionSeed ==&lt;br /&gt;
Takes in the 0x10 byte SD card encryption seed, and loads it into FS-module state.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]]-module reads the 0x10 bytes from SdCard:/Nintendo/Contents/private, and compares them to the first 0x10 bytes of the ns_appman:/private (in [[Flash_Filesystem#System_Savegames|system savedata]] 0x8000000000000043). If they match, NS calls this command using bytes 0x10-0x20 from ns_appman:/private. The rest of this file (0x1F0 bytes total) is (usually/always?) all-zero (however in some cases the byte at offset 0x20 is value 0x1).&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== GetGlobalAccessLogMode ==&lt;br /&gt;
Returns an output u32.&lt;br /&gt;
&lt;br /&gt;
GlobalAccessLogMode is normally 0.&lt;br /&gt;
&lt;br /&gt;
== OutputAccessLogToSdCard ==&lt;br /&gt;
Takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
The input buffer is the string to output to the log. User-processes normally include a newline at the end.&lt;br /&gt;
&lt;br /&gt;
User-processes only use this when the value previously loaded from [[#GetGlobalAccessLogMode]] has bit1 set.&lt;br /&gt;
&lt;br /&gt;
When bit1 in GlobalAccessLogMode is clear, FS-module will just return 0 for OutputAccessLogToSdCard. However even with that set the log doesn&#039;t show up SD, unknown why.&lt;br /&gt;
&lt;br /&gt;
The input buffer is written to the &amp;quot;$FsAccessLog:/FsAccessLog.txt&amp;quot; file, where &amp;quot;$FsAccessLog&amp;quot; is the SD-card mount-name. It&#039;s written to the current end of the file(appended).&lt;br /&gt;
&lt;br /&gt;
= IStorage =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IStorage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This is the interface for a raw device, usually a block device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Arguments&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read || Takes a type-0x46 buffer, an offset and length &lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write || Takes a type-0x45 buffer, an offset and length &lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush || None&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize || Takes a size&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize || None&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFileSystem =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystem&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There are two main implementations of this interface:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RomFS&#039;&#039;&#039;: Filesystem implementation statically linked in the binary. Uses an [[#IStorage]] interface as underlying raw device.&lt;br /&gt;
* &#039;&#039;&#039;IPC proxy&#039;&#039;&#039;: Used for all non-RomFS filesystems. In this case, actual filesystem implementation is in the FS process.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || CreateFile&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DeleteFile&lt;br /&gt;
|-&lt;br /&gt;
| 2 || CreateDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeleteDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 4 || DeleteDirectoryRecursively&lt;br /&gt;
|-&lt;br /&gt;
| 5 || RenameFile&lt;br /&gt;
|-&lt;br /&gt;
| 6 || RenameDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [[#GetEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [[#OpenFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [[#OpenDirectory]]&lt;br /&gt;
|-&lt;br /&gt;
| 10 || [[#Commit]]&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#GetFreeSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#GetTotalSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || [3.0.0+] [[#CleanDirectoryRecursively]]&lt;br /&gt;
|-&lt;br /&gt;
| 14 || [3.0.0+] [[#GetFileTimeStampRaw]]&lt;br /&gt;
|-&lt;br /&gt;
| 15 || [4.0.0+] QueryEntry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetEntryType ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns [[#DirectoryEntryType]] as an output u32.&lt;br /&gt;
&lt;br /&gt;
== OpenFile ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path, and an u32 &#039;&#039;&#039;mode&#039;&#039;&#039;. &#039;&#039;&#039;mode&#039;&#039;&#039; controls how the file is opened, based on which bits are set:&lt;br /&gt;
&lt;br /&gt;
* When bit 0 is set, the file is Readable: you can use the Read operation.&lt;br /&gt;
* When bit 1 is set, the file is Writable: you can use the Write operation.&lt;br /&gt;
* When bit 2 is set, the file is Appendable: unless this bit is set, you will not be able to write beyond the end of a file (such writes will result in an error 0x307202)&lt;br /&gt;
&lt;br /&gt;
== OpenDirectory ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and an u64 &#039;&#039;&#039;filter_flags&#039;&#039;&#039;. &#039;&#039;&#039;filter_flags&#039;&#039;&#039; controls what type of entries are read by the [[#IDirectory]]: bitmask 0x1 = directories, bitmask 0x2 = files.&lt;br /&gt;
&lt;br /&gt;
== Commit ==&lt;br /&gt;
Like [https://3dbrew.org/wiki/FS:ControlArchive 3DS], this has to be used after writing to savedata for the changes to take affect.&lt;br /&gt;
&lt;br /&gt;
== GetFreeSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total free space with this FS.&lt;br /&gt;
&lt;br /&gt;
== GetTotalSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total space available with this FS(free+used).&lt;br /&gt;
&lt;br /&gt;
== CleanDirectoryRecursively ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and clears the contents of the directory specified in the path.&lt;br /&gt;
&lt;br /&gt;
== GetFileTimeStampRaw ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path and returns a 0x20-byte struct. This contains 3 u64s and an u8.&lt;br /&gt;
&lt;br /&gt;
= IDirectory =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDirectory&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Read]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetEntryCount]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Read ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64(?) for the total number of read entries, this is 0 when no more entries are available.&lt;br /&gt;
&lt;br /&gt;
The output buffer contains the read array of [[#DirectoryEntry]]. This doesn&#039;t include entries for &amp;quot;.&amp;quot; and &amp;quot;..&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== GetEntryCount ==&lt;br /&gt;
Returns an u64 for the total number of readable entries.&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntry =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x301 || Path&lt;br /&gt;
|-&lt;br /&gt;
| 0x301 || 0x1 || File attributes (bit 0 = is directory; bit 1 = archive bit)&lt;br /&gt;
|-&lt;br /&gt;
| 0x302 || 0x2 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x304 || 0x1 || [[#DirectoryEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x305 || 0x3 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x308 || 0x8 || Filesize, 0 for directories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntryType =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntryType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
An s8 value indicating a directory entry type. The current values are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Directory&lt;br /&gt;
|-&lt;br /&gt;
| 1 || File&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFile =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFile&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataInfoReader =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataInfoReader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#ReadSaveDataInfo]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataInfo ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64 for total output entries. This buffer contains an array of [[#SaveDataInfo]].&lt;br /&gt;
&lt;br /&gt;
This is used to get [[#SaveDataInfo]] for all savedata on the system (or all savedata for the current [[#SaveDataSpaceId]]). When used multiple times, it will resume reading where it left off, until no more entries are available (in that case the out u64 is value 0).&lt;br /&gt;
&lt;br /&gt;
= IDeviceOperator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDeviceOperator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || IsSdCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GetSdCardSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [2.0.0+] GetSdCardCid&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [2.0.0+] GetSdCardUserAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [2.0.0+] GetSdCardProtectedAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [2.0.0+] GetAndClearSdCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 100 || GetMmcCid&lt;br /&gt;
|-&lt;br /&gt;
| 101 || GetMmcSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 110 || EraseMmc&lt;br /&gt;
|-&lt;br /&gt;
| 111 || GetMmcPartitionSize&lt;br /&gt;
|-&lt;br /&gt;
| 112 || [2.0.0+] GetMmcPatrolCount&lt;br /&gt;
|-&lt;br /&gt;
| 113 || [2.0.0+] GetAndClearMmcErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 114 || [2.0.0+] GetMmcExtendedCsd&lt;br /&gt;
|-&lt;br /&gt;
| 115 || [4.0.0+] SuspendMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 116 || [4.0.0+] ResumeMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 200 || IsGameCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 201 || EraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 202 || GetGameCardHandle&lt;br /&gt;
|-&lt;br /&gt;
| 203 || [[#GetGameCardUpdatePartitionInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 204 || FinalizeGameCardDriver&lt;br /&gt;
|-&lt;br /&gt;
| 205 || GetGameCardAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 206 || GetGameCardDeviceCertificate&lt;br /&gt;
|-&lt;br /&gt;
| 207 || GetGameCardAsicInfo&lt;br /&gt;
|-&lt;br /&gt;
| 208 || GetGameCardIdSet&lt;br /&gt;
|-&lt;br /&gt;
| 209 || WriteToGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 210 || SetVerifyWriteEnalbleFlag&lt;br /&gt;
|-&lt;br /&gt;
| 211 || GetGameCardImageHash&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [2.0.0+] GetGameCardDeviceIdForProdCard&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [2.0.0+] EraseAndWriteParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [2.0.0+] ReadParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [2.0.0+] ForceEraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [2.0.0+] GetGameCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [2.1.0+] GetGameCardErrorReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [3.0.0+] GetGameCardDeviceId&lt;br /&gt;
|-&lt;br /&gt;
| 300 || SetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 301 || GetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [5.0.0+] SuspendSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 401 || [5.0.0+] ResumeSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 402 || [6.0.0+] GetSdmmcConnectionStatus (Takes a total of 4-bytes of input, returns a total of 8-bytes of output)&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [6.0.0+] SetSimulationEvent (Takes a total of 0x14-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [6.0.0+] ClearSimulationEvent (Takes a total of 4-bytes of input, no output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetGameCardUpdatePartitionInfo ==&lt;br /&gt;
Returns a titleID and the title-version for it.&lt;br /&gt;
&lt;br /&gt;
* Output u32 with ARMS-gamecard: title-version v131162. This is the title-version for [[2.1.0]], which is the sysupdate included with this gamecard. Launch-day gamecards return title-version v450.&lt;br /&gt;
* Output u64 with ARMS-gamecard: titleID 0100000000000816.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]] appears to only use this with [[Content_Manager_services#GetTitleIdInfo]] and [[Content_Manager_services#GetUpdateTitleList]] with storageid=nandsys, for checking whether a sysupdate is required.&lt;br /&gt;
&lt;br /&gt;
= IEventNotifier =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IEventNotifier&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || GetEventHandle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManager =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManager&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetToken]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataImporter]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== SetToken ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64, returns an [[#ISaveDataExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x10-byte userID, and a type-0x5 input buffer. Returns an output u64 and an [[#ISaveDataImporter]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Pull]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#PullInitialData]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataExporter constructor. This is used automatically after [[#OpenSaveDataExporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Pull ==&lt;br /&gt;
Takes a type-0x6 output buffer, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== PullInitialData ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Push]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#Finalize]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataImporter constructor. This is used automatically after [[#OpenSaveDataImporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Push ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== Finalize ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManagerWithDivision =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManagerWithDivision&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetKeySeedPackage]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataFullExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [[#OpenSaveDataDiffExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] [[#OpenSaveDataExporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataFullImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [[#OpenSaveDataDiffImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] [[#OpenSaveDataDuplicateDiffImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] [[#OpenSaveDataImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] [[#OpenSaveDataImporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [6.0.0+] [[#CancelSuspendingImport]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer containing the &#039;&#039;&#039;Challenge&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== SetKeySeedPackage ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer containing the &#039;&#039;&#039;KeySeedPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFullExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFullImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], a 0x10-byte userID, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]], returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDuplicateDiffImporter ==&lt;br /&gt;
Takes an input u8 and an u64, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8, an u8(bool), a 0x10-byte struct, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== CancelSuspendingImport ==&lt;br /&gt;
Takes an input u64 and a 0x10-byte struct, no output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SetDivisionCount (Takes an input u32, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [6.0.0+] GetSaveDataInfo (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || OpenSaveDataDiffChunkIterator (No input, returns an [[#ISaveDataChunkIterator]])&lt;br /&gt;
|-&lt;br /&gt;
| 48 || OpenSaveDataChunkExporter (Takes an input u32, returns an [[#ISaveDataChunkExporter]])&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] FinalizeFullExport (No input, returns two 0x10-byte output structs)&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [6.0.0+] FinalizeDiffExport (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] CancelExport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] SuspendExport (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [6.0.0+] GetKeySeed (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 71 || [6.0.0+] GetInitialDataMac (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 72 || [6.0.0+] FinalizeExport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] GetImportInitialDataAad (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [6.0.0+] SetExportInitialDataAad (Takes an input 0x20-byte struct, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 96 || [6.0.0+] GetReportInfo (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [6.0.0+] GetSaveDataInfo (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || OpenSaveDataDiffChunkIterator (No input, returns an [[#ISaveDataChunkIterator]])&lt;br /&gt;
|-&lt;br /&gt;
| 32 || InitializeImport (No input, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
| 33 || FinalizeImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] CancelImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] GetImportContext (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 36 || [6.0.0+] SuspendImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 48 || OpenSaveDataChunkImporter (Takes an input u32, returns an [[#ISaveDataChunkImporter]])&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] GetImportInitialDataAad (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] GetReportInfo (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkIterator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkIterator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Next (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || IsEnd (No input, returns an output u8)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || GetId (No input, returns an output u32)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Pull (Takes an input u64 and a type-0x6 output buffer, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [6.0.0+] GetRestRawDataSize (No input, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Push (Takes an input u64 and a type-0x5 input buffer, no output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferProhibiter =&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t seem to handle any commands (?).&lt;br /&gt;
&lt;br /&gt;
= IMultiCommitManager =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || ? (Takes an input [[#IFilesystem]], no output)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || ? (No input/output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
= FileSystemType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Invalid&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Invalid&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Logo&lt;br /&gt;
|-&lt;br /&gt;
| 3 || ContentControl&lt;br /&gt;
|-&lt;br /&gt;
| 4 || ContentManual&lt;br /&gt;
|-&lt;br /&gt;
| 5 || ContentMeta&lt;br /&gt;
|-&lt;br /&gt;
| 6 || ContentData&lt;br /&gt;
|-&lt;br /&gt;
| 7 || ApplicationPackage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= StorageId =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || None&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GameCard&lt;br /&gt;
|-&lt;br /&gt;
| 3 || NandSystem&lt;br /&gt;
|-&lt;br /&gt;
| 4 || NandUser&lt;br /&gt;
|-&lt;br /&gt;
| 5 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::ContentStorageId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataSpaceId =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataSpaceId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdSystem&lt;br /&gt;
|-&lt;br /&gt;
| 100 || [3.0.0+] ProperSystem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Determines the storage where the savedata is stored.&lt;br /&gt;
&lt;br /&gt;
= SaveDataType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SystemSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SaveData&lt;br /&gt;
|-&lt;br /&gt;
| 2 || BcatDeliveryCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeviceSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [3.0.0+] TemporaryStorage&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [3.0.0+] CacheStorage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ImageDirectoryId =&lt;br /&gt;
This is &amp;quot;nn::fs::ImageDirectoryId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= CloudBackupWorkStorageId =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentPath =&lt;br /&gt;
These are the 0x300 paths to NCA files for the various filesystems FS can access, beginning with @. They&#039;re passed via X descriptors, and returned via various [[Location Resolver services|ncm/lr]] commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Path || Notes&lt;br /&gt;
|-&lt;br /&gt;
| @SystemContent ||&lt;br /&gt;
|- &lt;br /&gt;
| @UserContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @SdCardContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @CalibFile ||&lt;br /&gt;
|-&lt;br /&gt;
| @Safe ||&lt;br /&gt;
|-&lt;br /&gt;
| @User ||&lt;br /&gt;
|-&lt;br /&gt;
| @System ||&lt;br /&gt;
|-&lt;br /&gt;
| @Sdcard ||&lt;br /&gt;
|-&lt;br /&gt;
| @Host ||&lt;br /&gt;
|-&lt;br /&gt;
| @GcApp || Gamecard App partition (Partition 2)&lt;br /&gt;
|-&lt;br /&gt;
| @GcS00000001 || Gamecard Contents.&lt;br /&gt;
|-&lt;br /&gt;
| @upp || Gamecard update partition (Partition 0)&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] @RegUpdate || Registered update partition&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Save Struct =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData. SaveData: 0 can be used for accessing the savedata associated with the current FS session titleID, otherwise when set this is the titleID associated with the savedata to access.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x10&lt;br /&gt;
| userID for user-specific savedata(saveuser) when set, otherwise when zero this indicates the common savedata(savecommon). This is loaded from [[Account_services]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| u64 [[Flash_Filesystem|saveID]]. 0 for SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21&lt;br /&gt;
| 0x1&lt;br /&gt;
| Save data &#039;rank&#039; or &#039;precedence&#039;. 0 if this save data is considered the primary save data. 1 if it&#039;s considered the secondary save data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x22&lt;br /&gt;
| 0x2&lt;br /&gt;
| Save data index&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
For DeviceSaveData, this struct is all-zero except for the [[#SaveDataType]] field.&lt;br /&gt;
&lt;br /&gt;
= SaveCreate Struct =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| [[Savegames|IVFC]] level4 size?&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Same as offset 0x0 normally? Hard-coded to 0x80000 for BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4000 for SystemSaveData/SaveData/DeviceSaveData/BcatSaveData. [[Savegames|IVFC]] level4 block-size in bytes?&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| Official user-processes only uses 0 here for SystemSaveData/SaveData. For the dedicated save-creation code with SaveData/DeviceSaveData, this value comes from an input param with official user-processes. For BcatSaveData, this is the hard-coded [[Title_list|titleID]] of the bcat-sysmodule.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4&lt;br /&gt;
| Written using an input param for official user-processes. Hard-coded 0 for BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x1&lt;br /&gt;
| Official user-processes only uses 0 here for SystemSaveData, 1 for SaveData/DeviceSaveData/BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x1A&lt;br /&gt;
| Not initialized for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
= DeviceSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8, the only difference compared to SaveData is the Save-struct.&lt;br /&gt;
&lt;br /&gt;
= BcatSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8. The Save-struct is the same as DeviceSaveData, except that the titleID field is set to &amp;lt;input titleID&amp;gt;. See above regarding SaveCreate-struct.&lt;br /&gt;
&lt;br /&gt;
The 0x10-byte struct passed to [[#CreateSaveDataFileSystem]] has the first 0x5-bytes set to all-zero.&lt;br /&gt;
&lt;br /&gt;
= SaveDataInfo =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Unknown saveID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA&lt;br /&gt;
| 0x6&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| userID&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x8&lt;br /&gt;
| saveID, 0 for regular SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| Application titleID, for regular SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| Raw saveimage size&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x2&lt;br /&gt;
| Save data index&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 0x1&lt;br /&gt;
| Save data &#039;rank&#039; or &#039;precedence&#039;. 0 if this save data is considered the primary save data. 1 if it&#039;s considered the secondary save data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x41&lt;br /&gt;
| 0x25&lt;br /&gt;
| Unknown. Usually zeros?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a 0x60-byte struct.&lt;br /&gt;
&lt;br /&gt;
= SaveDataFileSystemExtraData =&lt;br /&gt;
This is a 0x200-byte struct. Appears to match [[Savegames#Extra_data]].&lt;br /&gt;
&lt;br /&gt;
= InitialDataVersion2 =&lt;br /&gt;
This is a 0x8210-byte struct used by [[#ISaveDataTransferManagerWithDivision]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=6338</id>
		<title>Filesystem services</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=6338"/>
		<updated>2019-03-04T22:49:46Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= fsp-ldr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxyForLoader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Arguments || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || OpenCodeFileSystem || u64 TitleId + X descriptor [[#ContentPath]] || Returns an [[#IFileSystem]].&lt;br /&gt;
|-&lt;br /&gt;
| 1 || IsArchivedProgram || u64 ProcessId || Returns a bool (1 if the process id&#039;s [[#ContentPath]] ends in &amp;quot;.nca&amp;quot;).&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] SetCurrentProcess || PID descriptor ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= fsp-pr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IProgramRegistry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#RegisterProgram]] ||&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#UnregisterProgram]] ||&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] SetCurrentProcess ||&lt;br /&gt;
|-&lt;br /&gt;
| 256 || [[#SetEnabledProgramVerification]] ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== RegisterProgram ==&lt;br /&gt;
Takes a storageID, a pid, a titleID, a 0x1C type-A buffer for the [[NPDM#FS_Access_Header| FS Access Header]], and a 0x2C type-A buffer for the [[NPDM#FS_Access_Control| FS Access Control]]&lt;br /&gt;
&lt;br /&gt;
Final FS permissions are stored as (ACI0_perms &amp;amp; ACID_perms). Will panic(svcBreak) when buffer sizes from ipc-rawdata are invalid.&lt;br /&gt;
&lt;br /&gt;
== UnregisterProgram ==&lt;br /&gt;
Takes a pid. Removes registered FS permissions for that PID.&lt;br /&gt;
&lt;br /&gt;
== SetEnabledProgramVerification ==&lt;br /&gt;
Seems to sets a global flag to inputval &amp;amp; 1.&lt;br /&gt;
&lt;br /&gt;
When the flag is zero, it will set ret=0 instead of ret={error} when verifying the fixed-key [[NPDM]] ACID signature fails. This also skips verifying the [[NCA_Format|NCA Header]] signature using the ACID key. Note that if verifying the fixed-key ACID signature is successful, and verifying the ACID-key NCA header signature fails, it will throw an error and abort.&lt;br /&gt;
&lt;br /&gt;
= fsp-srv =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxy&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [1.0.0] [[#OpenFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#SetCurrentProcess]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || OpenDataFileSystemByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [2.0.0+] [[#OpenFileSystemWithPatch]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [2.0.0+] [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [3.0.0+] OpenDataFileSystemByApplicationId&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || InvalidateBisCache&lt;br /&gt;
|-&lt;br /&gt;
| 17 || OpenHostFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 18 || OpenSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 19 || [2.0.0+] FormatSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 21 || [[#DeleteSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 22 || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 23 || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 24 || RegisterSaveDataFileSystemAtomicDeletion&lt;br /&gt;
|-&lt;br /&gt;
| 25 || [2.0.0+] DeleteSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 26 || [2.0.0+] FormatSdCardDryRun&lt;br /&gt;
|-&lt;br /&gt;
| 27 || [2.0.0+] IsExFatSupported&lt;br /&gt;
|-&lt;br /&gt;
| 28 || [4.0.0+] DeleteSaveDataFileSystemBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 30 || [[#OpenGameCardStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 31 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [3.0.0+] ExtendSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [5.0.0+] DeleteCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [5.0.0+] GetCacheStorageSize&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] CreateSaveDataFileSystemByHashSalt (Unofficial name, takes a total of 0xB0-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 51 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 52 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 53 || [2.0.0+] OpenReadOnlySaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 57 || [3.0.0+] [[#ReadSaveDataFileSystemExtraDataBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 58 || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 59 || [2.0.0+] WriteSaveDataFileSystemExtraData&lt;br /&gt;
|-&lt;br /&gt;
| 60 || [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 61 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 62 || [5.0.0+] OpenCacheStorageList&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [5.0.0+] OpenSaveDataInternalStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [5.0.0+] UpdateSaveDataMacForDebug&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [5.0.0+] WriteSaveDataFileSystemExtraData2&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] FindSaveDataWithFilter (Takes a total of 0x50-bytes of input, returns 8-bytes of output, and a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] OpenSaveDataInfoReaderBySaveDataFilter (Unofficial name, takes a total of 0x50-bytes of input, returns an #ISaveDataInfoReader)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || OpenSaveDataMetaFile&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [4.0.0+] OpenSaveDataTransferManager (No input, returns an [[#ISaveDataTransferManager]])&lt;br /&gt;
|-&lt;br /&gt;
| 82 || [5.0.0+] OpenSaveDataTransferManagerVersion2 (No input, returns an [[#ISaveDataTransferManagerWithDivision]])&lt;br /&gt;
|-&lt;br /&gt;
| 83 || [6.0.0+] OpenSaveDataTransferProhibiterForCloudBackUp (Takes an input u64, returns an [[#ISaveDataTransferProhibiter]])&lt;br /&gt;
|-&lt;br /&gt;
| 84 || [6.0.0+] ListApplicationAccessibleSaveDataOwnerId (Takes a total of 0x10-bytes of input, returns 4-bytes of output, and a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 100 || OpenImageDirectoryFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 110 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 120 || [6.0.0+] OpenCloudBackupWorkStorageFileSystem (Takes 4-bytes of input, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 130 || [7.0.0+] OpenCustomStorageFileSystem (Takes 4-bytes of input, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 200 || OpenDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 201 || [3.0.0+] OpenDataStorageByProgramId&lt;br /&gt;
|-&lt;br /&gt;
| 202 || [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 203 || OpenPatchDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 204 || [7.0.0+] ? (Takes an input u8, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 205 || [7.0.0+] ? (Takes an input u8, returns an [[#IStorage]])&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [[#OpenDeviceOperator]]&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 510 || [5.0.0+] OpenSystemDataUpdateEventNotifier&lt;br /&gt;
|-&lt;br /&gt;
| 511 || [5.0.0+] NotifySystemDataUpdateEvent&lt;br /&gt;
|-&lt;br /&gt;
| 520 || [6.0.0+] SimulateGameCardDetectionEvent (Takes a total of 0xC-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 600 || [1.0.0-3.0.2] SetCurrentPosixTime&lt;br /&gt;
|-&lt;br /&gt;
| 601 || QuerySaveDataTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 602 || [[#VerifySaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 603 || CorruptSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 604 || CreatePaddingFile&lt;br /&gt;
|-&lt;br /&gt;
| 605 || DeleteAllPaddingFiles&lt;br /&gt;
|-&lt;br /&gt;
| 606 || [2.0.0+] GetRightsId&lt;br /&gt;
|-&lt;br /&gt;
| 607 || [2.0.0+] RegisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 608 || [2.0.0+] UnregisterAllExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 609 || [2.0.0+] GetRightsIdByPath&lt;br /&gt;
|-&lt;br /&gt;
| 610 || [3.0.0+] GetRightsIdAndKeyGenerationByPath&lt;br /&gt;
|-&lt;br /&gt;
| 611 || [4.0.0+] SetCurrentPosixTimeWithTimeDifference&lt;br /&gt;
|-&lt;br /&gt;
| 612 || [4.0.0+] GetFreeSpaceSizeForSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 613 || [4.0.0+] VerifySaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 614 || [4.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 615 || [5.0.0+] QuerySaveDataInternalStorageTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 616 || [6.0.0+] [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| 617 || [7.0.0+] UnregisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 620 || [2.0.0+] [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| 630 || [4.0.0+] SetSdCardAccessibility&lt;br /&gt;
|-&lt;br /&gt;
| 631 || [4.0.0+] IsSdCardAccessible&lt;br /&gt;
|-&lt;br /&gt;
| 640 || [4.0.0+] IsSignedSystemPartitionOnSdCardValid&lt;br /&gt;
|-&lt;br /&gt;
| 700 || [5.0.0+] OpenAccessFailureResolver&lt;br /&gt;
|-&lt;br /&gt;
| 701 || [5.0.0+] GetAccessFailureDetectionEvent&lt;br /&gt;
|-&lt;br /&gt;
| 702 || [5.0.0+] IsAccessFailureDetected&lt;br /&gt;
|-&lt;br /&gt;
| 710 || [5.0.0+] ResolveAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 720 || [5.0.0+] AbandonAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [2.0.0+] GetAndClearFileSystemProxyErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [7.0.0+] RegisterProgramIndexMapInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1000 || SetBisRootForHost&lt;br /&gt;
|-&lt;br /&gt;
| 1001 || SetSaveDataSize&lt;br /&gt;
|-&lt;br /&gt;
| 1002 || SetSaveDataRootPath&lt;br /&gt;
|-&lt;br /&gt;
| 1003 || DisableAutoSaveDataCreation&lt;br /&gt;
|-&lt;br /&gt;
| 1004 || [[#SetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1005 || [[#GetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1006 || [[#OutputAccessLogToSdCard]]&lt;br /&gt;
|-&lt;br /&gt;
| 1007 || [4.0.0+] RegisterUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1008 || [4.0.0+] OpenRegisteredUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1009 || [4.0.0+] GetAndClearMemoryReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1010 || [5.1.0-6.2.0] SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| 1011 || [7.0.0+] (no input, returns two 32-bit values, second is &amp;quot;program_index&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 1100 || [4.0.0+] OverrideSaveDataTransferTokenSignVerificationKey&lt;br /&gt;
|-&lt;br /&gt;
| 1110 || [6.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId2&lt;br /&gt;
|-&lt;br /&gt;
| 1200 || [6.0.0+] OpenMultiCommitManager (No input, returns an output #IMultiCommitManager)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
Every time permissions are checked, the process registration [[#fsp-pr]] is loaded using the session processID. The permission data is populated with data from the [[NPDM]].&lt;br /&gt;
&lt;br /&gt;
If the processID is &amp;lt;= 6 (which happens only for built-in sysmodules), it will use a hardcoded registration data. The default mask in this case is 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
Note that the functions check whether or not at least one bit is set in the mask. This means that, you don&#039;t need to set 0xFFFFFFFFFFFFFFFF to get all permissions: it suffices to set 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
If the code were to request an invalid input type, panic. But this never happens.&lt;br /&gt;
&lt;br /&gt;
=== RwPermissions ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type(s) || Mask || Name || Value || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000801 || CanMountLogo || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000801 || CanMountContentMeta || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000801 || CanMountContentControl || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000801 || CanMountContentManual || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000801 || CanMountContentData || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000801 || CanMountApplicationPackage || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000000000 || CanMountSaveDataStorage || 3 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000800 || CanMountContentStorage || 3 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000001000 || CanMountImageAndVideoStorage || 3 || [[#OpenImageDirectoryFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanMountCloudBackupWorkStorage || 3 || OpenCloudBackupWorkStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000000084&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountBisCalibrationFile || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000008080) || CanMountBisSafeMode || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000008080 || CanMountBisUser || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000008080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountBisSystem || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanMountBisSystemProperEncryption || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000010) || CanMountBisSystemProperPartition || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0xC000000000200000&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000040020) || CanMountSdCard || 3 || [[#OpenSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x8000000000000010&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000028) || CanMountGameCard || 3 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000040020&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000020) || CanMountDeviceSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0x8000000000000028&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000020) || CanMountSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x8000000000000020&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010082) || CanMountOthersSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0x8000000000000020&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanMountOthersSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0x8000000000010082&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition1Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0x8000000000010080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition2Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanOpenBisPartitionUserDataRoot || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part1 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part2 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part3 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part4 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part5 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part6 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || 0x8000000000000084&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationBinary || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x8000000000000084&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationFile || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0x8000000000000080 || CanOpenBisPartitionSafeMode || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0x8000000000000080 || CanOpenBisPartitionUser || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanOpenBisPartitionSystem || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000100) || CanOpenBisPartitionSystemProperEncryption || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000100008) || CanOpenBisPartitionSystemProperPartition || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0xC000000000200000&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000400000) || CanOpenSdCardStorage || ||&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x27 || 0x8000000000000100&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000100008) || CanOpenGameCardStorage || 3 || [[#OpenGameCardStorage]],  [[#EraseGameCard]] (bit1), [[#WriteToGameCard]] (bit1), [[#GetGameCardErrorInfo]] (bit1), [[#EraseAndWriteParamDirectly]] (bit1), [[#ReadParamDirectly]] (bit1), [[#ForceEraseGameCard]] (bit1)&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x28 || 0x8000000000100008&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000400000) || CanMountSystemDataPrivate || 1 || [[#OpenFileSystem]], [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x29 || 0xC000000000400000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010000) || CanMountHost || 3 || [[#OpenHostFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0x8000000000010000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanMountRegisteredUpdatePartition || 1 || [[#OpenRegisteredUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x2B || 0x8000000000000000 || CanOpenSaveDataInternalStorage || 3 || [[#OpenSaveDataInternalStorageFileSystem]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BoolPermissions ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type(s) || Mask || Name || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000080 || CanInvalidateBisCache || [[#InvalidateBisCache]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000080 || CanEraseMmc || [[#EraseMmc]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000010 || CanGetGameCardDeviceCertificate || [[#GetGameCardDeviceCertificate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000010 || CanGetGameCardIdSet || [[#GetGameCardIdSet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000200 || CanFinalizeGameCardDriver || [[#FinalizeGameCardDriver]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000200 || CanGetGameCardAsicInfo || [[#GetGameCardAsicInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000002020 || CanCreateSaveData || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000060 || CanDeleteSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000000028 || CanCreateSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000000000020 || CanCreateOthersSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000004028 || CanDeleteSystemSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000060 || CanOpenSaveDataInfoReader || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000004020 || CanOpenSaveDataInfoReaderForSystem || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000000040&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000020000) || || OpenSaveDataInfoReaderBySaveDataFilter&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000020000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000400) || CanOpenSaveDataMetaFile || [[#OpenSaveDataMetaFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000400&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000004060) || CanSetCurrentPosixTime || [[#SetCurrentPosixTime]], [[#SetCurrentPosixTimeWithTimeDifference]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000004060&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000080000) || CanReadSaveDataFileSystemExtraData || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x8000000000080000 || CanSetGlobalAccessLogMode || [[#SetGlobalAccessMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000080000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] Invalid) || CanSetSpeedEmulationMode || [[#SetSpeedEmulationMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || Invalid&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000800000) || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0xC000000000800000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000001000000) || CanFillBis || [[#CreatePaddingFile]], [[#DeleteAllPaddingFiles]] &lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0xC000000001000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000001000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0xC000000002000000) || CanCorruptSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x16 || 0x8000000001000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000004000000) || CanCorruptSystemSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x17 || 0x8000000000000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0xC000000002000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000008000000) || CanVerifySaveData || [[#VerifySaveDataFileSystem]], [[#VerifySaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x18 || 0xC000000002000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000004000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000010000000) || CanDebugSaveData || [[#CreateSaveDataFileSystem]], [[#OpenSaveDataFileSystem]], [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x19 || 0x8000000004000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000008000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000800) || CanFormatSdCard || [[#FormatSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x1A || 0x8000000008000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000010000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000004020) || CanGetRightsId || [[#GetRightsId]], [[#GetRightsIdAndKeyGenerationByPath]], [[#GetRightsIdByPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1B || 0x8000000010000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000800)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000002020) || CanRegisterExternalKey || [[#RegisterExternalKey]], [[#UnregisterAllExternalKey]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1C || 0x8000000000000800&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000004020)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000028) || CanSetEncryptionSeed || [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1D || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000020000000) || SaveDataExtraData_Write0 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1E || 0x8000000000004020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000002020)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000040000000) || CanWriteSaveDataFileSystemExtraDataFlags || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1F || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000000) || SaveDataExtraData_Write1 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x20 || 0x8000000000000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000020000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000000) || CanWriteSaveDataFileSystemExtraDataAll || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x21 || 0x8000000000002020&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanExtendSaveData || [[#ExtendSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x22 || 0x8000000000000028&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000002) || CanExtendSystemSaveData || [[#ExtendSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x23 || 0x8000000020000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanRegisterUpdatePartition || [[#RegisterUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x24 || 0x8000000040000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanOpenSaveDataTransferManager || [[#OpenSaveDataTransferManager]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x25 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanOpenSaveDataTransferManagerVersion2 || [[#OpenSaveDataTransferManagerVersion2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x26 || 0x8000000200002000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080000110) || CanOpenSaveDataTransferProhibiterForCloudBackUp || [[#OpenSaveDataTransferProhibiterForCloudBackUp]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x27 || 0x8000000200002000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000100008) || CanListApplicationAccessibleSaveDataOwnerId || ListApplicationAccessibleSaveDataOwnerId&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x28 || 0x8000000000000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080010000) || CanControlMmcPatrol || [[#SuspendMmcPatrol]], [[#ResumeMmcPatrol]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x29 || 0x8000000000000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOverrideSaveDataTransferTokenSignVerificationKey || [[#OverrideSaveDataTransferTokenSignVerificationKey]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0x8000000080200000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSdCardDetectionEventNotifier || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2B || 0x8000000080000110&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenGameCardDetectionEventNotifier || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2C || 0x8000000000100008&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSystemDataUpdateEventNotifier || [[#OpenSystemDataUpdateEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2D || 0x8000000000010000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanNotifySystemDataUpdateEvent || [[#NotifySystemDataUpdateEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2E || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanOpenAccessFailureDetectionEventNotifier || [[#OpenAccessFailureResolver]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2F || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanGetAccessFailureDetectionEvent || [[#GetAccessFailureDetectionEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.1.0+] 0x30 || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080080000) || CanIsAccessFailureDetected || [[#IsAccessFailureDetected]] &lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x31 || 0x8000000100000000 || CanResolveAccessFailure || [[#ResolveAccessFailure]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x32 || 0x8000000100000000 || CanAbandonAccessFailure || [[#AbandonAccessFailure]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x33 || 0x8000000040000000 || CanQuerySaveDataInternalStorageTotalSize || [[#QuerySaveDataInternalStorageTotalSize]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x34 || 0x8000000200000020 || CanGetSaveDataCommitId || [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x35 || 0x8000000000200000 || CanSetSdCardAccessibility || [[#SetSdCardAccessibility]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x36 || 0x4000000000000000 || || SimulateGameCardDetectionEvent, SetGameCardSimulationEvent, ClearGameCardSimulationEvent&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x37 || 0x8000000000080000 || CanSetDataStorageRedirectTarget || SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x38 || 0x8000000000000000 || || [[#CreateSaveDataFileSystem]], CreateSaveDataFileSystemByHashSalt&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer (ContentPath) and a [[#FileSystemType]] as parameters. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
[2.0.0+] This function was removed.&lt;br /&gt;
&lt;br /&gt;
== SetCurrentProcess ==&lt;br /&gt;
Takes a pid-descriptor.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithPatch ==&lt;br /&gt;
Takes an input [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Web-applet loads the [[#FileSystemType]] (which must be &#039;&#039;&#039;ContentManual&#039;&#039;&#039;) from u32_table[inparam].&lt;br /&gt;
&lt;br /&gt;
Note: web-applet strings refer to both this cmd and [[#OpenFileSystemWithId]] as &amp;quot;MountContent&amp;quot;, but official nn_sf_sync symbols use &amp;quot;OpenXX&amp;quot; names.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithId ==&lt;br /&gt;
Takes a type-0x19 input buffer, an [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
The [[#IFileSystem]] must be &#039;&#039;&#039;ContentMeta&#039;&#039;&#039; if the NCA type is 0 (control).&lt;br /&gt;
&lt;br /&gt;
The input buffer is the output string path from [[NS_Services#GetApplicationContentPath|GetApplicationContentPath]].&lt;br /&gt;
&lt;br /&gt;
May return errors when attempting to access NCA-paths for an update-title with a gamecard, when the gamecard isn&#039;t inserted. May return error 0x7D402 in some cases with update-titles. Non-val2 in32 values with NCA-type1 are unusable, even for normal titles.&lt;br /&gt;
&lt;br /&gt;
The official &amp;quot;MountApplicationPackage&amp;quot; func uses this with in64=0 and [[#FileSystemType]] &#039;&#039;&#039;ApplicationPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
After the [[#FileSystemType]] specific permissions are checked, it then gets the func retval for permissions-type 0x25 and func0.&lt;br /&gt;
&lt;br /&gt;
When [[#FileSystemType]] is &#039;&#039;&#039;ContentMeta&#039;&#039;&#039;, it uses in64=0xffffffffffffffff internally, otherwise it checks if in64 is set to 0xffffffffffffffff then throws an error if so. When the in64 used internally is not 0xffffffffffffffff, it&#039;s compared with the NCA titleID, then an error is thrown on mismatch.&lt;br /&gt;
&lt;br /&gt;
== OpenBisFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer string and a u32 [[Flash_Filesystem|Bis partitionID]]. Official user-process code sets instr[0] = 0 normally. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Only partitionIDs for FAT partitions are usable with this, otherwise error 0x2EE202 is returned. Seems to be about the same as [[#OpenBisStorage]] except this mounts the partition filesystem instead of allowing direct access to the partition sectors.&lt;br /&gt;
&lt;br /&gt;
== OpenBisStorage ==&lt;br /&gt;
Takes a u32 partition ID, returns 0x2EE202 for partitions which do not exist, 0x320002 for partitions which cannot be opened and a valid [[#IStorage]] handle otherwise.&lt;br /&gt;
&lt;br /&gt;
== InvalidateBisCache ==&lt;br /&gt;
Seems to invalidate the Bis cache for MBR/GPT after overwriting that data via the OpenBisStorage IStorage. Used by [[SystemInitializer]].&lt;br /&gt;
&lt;br /&gt;
== DeleteSaveDataFileSystem ==&lt;br /&gt;
Takes an input u64.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystem ==&lt;br /&gt;
Takes a 0x40-byte Save-struct entry, a 0x40-byte SaveCreate-struct entry, and a 0x10-byte input struct.&lt;br /&gt;
&lt;br /&gt;
Only the first 0x5-bytes in the 0x10-byte struct are initialized: all-zero when automatically creating savedata during savecommon mount by official user-processes. In the dedicated save-creation code in official user-processes: +0 u32 = 0x40060, +4 u8 = 1.&lt;br /&gt;
&lt;br /&gt;
Creates regular savedata.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes a 0x40-byte Save-struct entry and a 0x40-byte SaveCreate-struct entry.&lt;br /&gt;
&lt;br /&gt;
Creates savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardStorage ==&lt;br /&gt;
Takes two input u32s (gamecard handle, partition ID), and returns an [[#IStorage]] for the [[Gamecard_Format|partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardFileSystem ==&lt;br /&gt;
Takes two input u32s, with the second u32 located at +4 in rawdata after the first u32. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts a [[Gamecard_Partition|gamecard partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystem ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte Save-struct entry. Official user-process code is only known to use value 1 for the u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Permissions aren&#039;t checked until the specified save is successfully found.&lt;br /&gt;
&lt;br /&gt;
Only one process (specifically only one [[#IFileSystem]] session) can mount a given savedata at any given time (this includes SystemSaveData).&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte Save-struct entry. Web-applet only uses value0 for the input u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraDataBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an input u64 saveID, and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraData ==&lt;br /&gt;
Takes an input u64 saveID and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReader ==&lt;br /&gt;
No input, returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReaderBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenContentStorageFileSystem ==&lt;br /&gt;
Takes a [[#ContentStorageId]]. Invalid values return 0x2EE202.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]] with NCA files. The read data from these files is identical to the data read by [[NCM_services#ReadContentIdFile]].&lt;br /&gt;
&lt;br /&gt;
== OpenDataStorageByDataId ==&lt;br /&gt;
Takes a [[#StorageId]] and a TitleID.&lt;br /&gt;
&lt;br /&gt;
Returns a [[IPC_Marshalling#Domain_message|domain object ID]] implementing the [[#IStorage]] interface for data archives.&lt;br /&gt;
&lt;br /&gt;
== OpenDeviceOperator ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IDeviceOperator]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenSdCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== VerifySaveDataFileSystem ==&lt;br /&gt;
Takes an unknown input u64 and a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
The input u64 high-byte must be non-zero, otherwise an [[Error_codes|error]] is returned(0xE02).&lt;br /&gt;
&lt;br /&gt;
== GetSaveDataCommitId ==&lt;br /&gt;
Takes an input u8 and u64, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== SetSdCardEncryptionSeed ==&lt;br /&gt;
Takes in the 0x10 byte SD card encryption seed, and loads it into FS-module state.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]]-module reads the 0x10 bytes from SdCard:/Nintendo/Contents/private, and compares them to the first 0x10 bytes of the ns_appman:/private (in [[Flash_Filesystem#System_Savegames|system savedata]] 0x8000000000000043). If they match, NS calls this command using bytes 0x10-0x20 from ns_appman:/private. The rest of this file (0x1F0 bytes total) is (usually/always?) all-zero (however in some cases the byte at offset 0x20 is value 0x1).&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== GetGlobalAccessLogMode ==&lt;br /&gt;
Returns an output u32.&lt;br /&gt;
&lt;br /&gt;
GlobalAccessLogMode is normally 0.&lt;br /&gt;
&lt;br /&gt;
== OutputAccessLogToSdCard ==&lt;br /&gt;
Takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
The input buffer is the string to output to the log. User-processes normally include a newline at the end.&lt;br /&gt;
&lt;br /&gt;
User-processes only use this when the value previously loaded from [[#GetGlobalAccessLogMode]] has bit1 set.&lt;br /&gt;
&lt;br /&gt;
When bit1 in GlobalAccessLogMode is clear, FS-module will just return 0 for OutputAccessLogToSdCard. However even with that set the log doesn&#039;t show up SD, unknown why.&lt;br /&gt;
&lt;br /&gt;
The input buffer is written to the &amp;quot;$FsAccessLog:/FsAccessLog.txt&amp;quot; file, where &amp;quot;$FsAccessLog&amp;quot; is the SD-card mount-name. It&#039;s written to the current end of the file(appended).&lt;br /&gt;
&lt;br /&gt;
= IStorage =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IStorage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This is the interface for a raw device, usually a block device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Arguments&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read || Takes a type-0x46 buffer, an offset and length &lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write || Takes a type-0x45 buffer, an offset and length &lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush || None&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize || Takes a size&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize || None&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFileSystem =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystem&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There are two main implementations of this interface:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RomFS&#039;&#039;&#039;: Filesystem implementation statically linked in the binary. Uses an [[#IStorage]] interface as underlying raw device.&lt;br /&gt;
* &#039;&#039;&#039;IPC proxy&#039;&#039;&#039;: Used for all non-RomFS filesystems. In this case, actual filesystem implementation is in the FS process.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || CreateFile&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DeleteFile&lt;br /&gt;
|-&lt;br /&gt;
| 2 || CreateDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeleteDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 4 || DeleteDirectoryRecursively&lt;br /&gt;
|-&lt;br /&gt;
| 5 || RenameFile&lt;br /&gt;
|-&lt;br /&gt;
| 6 || RenameDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [[#GetEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [[#OpenFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [[#OpenDirectory]]&lt;br /&gt;
|-&lt;br /&gt;
| 10 || [[#Commit]]&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#GetFreeSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#GetTotalSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || [3.0.0+] [[#CleanDirectoryRecursively]]&lt;br /&gt;
|-&lt;br /&gt;
| 14 || [3.0.0+] [[#GetFileTimeStampRaw]]&lt;br /&gt;
|-&lt;br /&gt;
| 15 || [4.0.0+] QueryEntry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetEntryType ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns [[#DirectoryEntryType]] as an output u32.&lt;br /&gt;
&lt;br /&gt;
== OpenFile ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path, and an u32 &#039;&#039;&#039;mode&#039;&#039;&#039;. &#039;&#039;&#039;mode&#039;&#039;&#039; controls how the file is opened, based on which bits are set:&lt;br /&gt;
&lt;br /&gt;
* When bit 0 is set, the file is Readable: you can use the Read operation.&lt;br /&gt;
* When bit 1 is set, the file is Writable: you can use the Write operation.&lt;br /&gt;
* When bit 2 is set, the file is Appendable: unless this bit is set, you will not be able to write beyond the end of a file (such writes will result in an error 0x307202)&lt;br /&gt;
&lt;br /&gt;
== OpenDirectory ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and an u64 &#039;&#039;&#039;filter_flags&#039;&#039;&#039;. &#039;&#039;&#039;filter_flags&#039;&#039;&#039; controls what type of entries are read by the [[#IDirectory]]: bitmask 0x1 = directories, bitmask 0x2 = files.&lt;br /&gt;
&lt;br /&gt;
== Commit ==&lt;br /&gt;
Like [https://3dbrew.org/wiki/FS:ControlArchive 3DS], this has to be used after writing to savedata for the changes to take affect.&lt;br /&gt;
&lt;br /&gt;
== GetFreeSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total free space with this FS.&lt;br /&gt;
&lt;br /&gt;
== GetTotalSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total space available with this FS(free+used).&lt;br /&gt;
&lt;br /&gt;
== CleanDirectoryRecursively ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and clears the contents of the directory specified in the path.&lt;br /&gt;
&lt;br /&gt;
== GetFileTimeStampRaw ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path and returns a 0x20-byte struct. This contains 3 u64s and an u8.&lt;br /&gt;
&lt;br /&gt;
= IDirectory =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDirectory&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Read]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetEntryCount]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Read ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64(?) for the total number of read entries, this is 0 when no more entries are available.&lt;br /&gt;
&lt;br /&gt;
The output buffer contains the read array of [[#DirectoryEntry]]. This doesn&#039;t include entries for &amp;quot;.&amp;quot; and &amp;quot;..&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== GetEntryCount ==&lt;br /&gt;
Returns an u64 for the total number of readable entries.&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntry =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x301 || Path&lt;br /&gt;
|-&lt;br /&gt;
| 0x301 || 0x3 || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x304 || 0x1 || [[#DirectoryEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x305 || 0x3 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x308 || 0x8 || Filesize, 0 for directories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntryType =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntryType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
An s8 value indicating a directory entry type. The current values are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Directory&lt;br /&gt;
|-&lt;br /&gt;
| 1 || File&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFile =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFile&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataInfoReader =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataInfoReader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#ReadSaveDataInfo]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataInfo ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64 for total output entries. This buffer contains an array of [[#SaveDataInfo]].&lt;br /&gt;
&lt;br /&gt;
This is used to get [[#SaveDataInfo]] for all savedata on the system (or all savedata for the current [[#SaveDataSpaceId]]). When used multiple times, it will resume reading where it left off, until no more entries are available (in that case the out u64 is value 0).&lt;br /&gt;
&lt;br /&gt;
= IDeviceOperator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDeviceOperator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || IsSdCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GetSdCardSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [2.0.0+] GetSdCardCid&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [2.0.0+] GetSdCardUserAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [2.0.0+] GetSdCardProtectedAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [2.0.0+] GetAndClearSdCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 100 || GetMmcCid&lt;br /&gt;
|-&lt;br /&gt;
| 101 || GetMmcSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 110 || EraseMmc&lt;br /&gt;
|-&lt;br /&gt;
| 111 || GetMmcPartitionSize&lt;br /&gt;
|-&lt;br /&gt;
| 112 || [2.0.0+] GetMmcPatrolCount&lt;br /&gt;
|-&lt;br /&gt;
| 113 || [2.0.0+] GetAndClearMmcErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 114 || [2.0.0+] GetMmcExtendedCsd&lt;br /&gt;
|-&lt;br /&gt;
| 115 || [4.0.0+] SuspendMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 116 || [4.0.0+] ResumeMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 200 || IsGameCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 201 || EraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 202 || GetGameCardHandle&lt;br /&gt;
|-&lt;br /&gt;
| 203 || [[#GetGameCardUpdatePartitionInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 204 || FinalizeGameCardDriver&lt;br /&gt;
|-&lt;br /&gt;
| 205 || GetGameCardAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 206 || GetGameCardDeviceCertificate&lt;br /&gt;
|-&lt;br /&gt;
| 207 || GetGameCardAsicInfo&lt;br /&gt;
|-&lt;br /&gt;
| 208 || GetGameCardIdSet&lt;br /&gt;
|-&lt;br /&gt;
| 209 || WriteToGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 210 || SetVerifyWriteEnalbleFlag&lt;br /&gt;
|-&lt;br /&gt;
| 211 || GetGameCardImageHash&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [2.0.0+] GetGameCardDeviceIdForProdCard&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [2.0.0+] EraseAndWriteParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [2.0.0+] ReadParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [2.0.0+] ForceEraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [2.0.0+] GetGameCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [2.1.0+] GetGameCardErrorReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [3.0.0+] GetGameCardDeviceId&lt;br /&gt;
|-&lt;br /&gt;
| 300 || SetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 301 || GetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [5.0.0+] SuspendSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 401 || [5.0.0+] ResumeSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 402 || [6.0.0+] GetSdmmcConnectionStatus (Takes a total of 4-bytes of input, returns a total of 8-bytes of output)&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [6.0.0+] SetSimulationEvent (Takes a total of 0x14-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [6.0.0+] ClearSimulationEvent (Takes a total of 4-bytes of input, no output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetGameCardUpdatePartitionInfo ==&lt;br /&gt;
Returns a titleID and the title-version for it.&lt;br /&gt;
&lt;br /&gt;
* Output u32 with ARMS-gamecard: title-version v131162. This is the title-version for [[2.1.0]], which is the sysupdate included with this gamecard. Launch-day gamecards return title-version v450.&lt;br /&gt;
* Output u64 with ARMS-gamecard: titleID 0100000000000816.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]] appears to only use this with [[Content_Manager_services#GetTitleIdInfo]] and [[Content_Manager_services#GetUpdateTitleList]] with storageid=nandsys, for checking whether a sysupdate is required.&lt;br /&gt;
&lt;br /&gt;
= IEventNotifier =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IEventNotifier&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || GetEventHandle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManager =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManager&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetToken]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataImporter]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== SetToken ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64, returns an [[#ISaveDataExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x10-byte userID, and a type-0x5 input buffer. Returns an output u64 and an [[#ISaveDataImporter]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Pull]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#PullInitialData]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataExporter constructor. This is used automatically after [[#OpenSaveDataExporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Pull ==&lt;br /&gt;
Takes a type-0x6 output buffer, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== PullInitialData ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Push]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#Finalize]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataImporter constructor. This is used automatically after [[#OpenSaveDataImporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Push ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== Finalize ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManagerWithDivision =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataTransferManagerWithDivision&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetKeySeedPackage]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataFullExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [[#OpenSaveDataDiffExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] [[#OpenSaveDataExporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataFullImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [[#OpenSaveDataDiffImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] [[#OpenSaveDataDuplicateDiffImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] [[#OpenSaveDataImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] [[#OpenSaveDataImporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [6.0.0+] [[#CancelSuspendingImport]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer containing the &#039;&#039;&#039;Challenge&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== SetKeySeedPackage ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer containing the &#039;&#039;&#039;KeySeedPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFullExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFullImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], a 0x10-byte userID, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]], returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDuplicateDiffImporter ==&lt;br /&gt;
Takes an input u8 and an u64, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8, an u8(bool), a 0x10-byte struct, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== CancelSuspendingImport ==&lt;br /&gt;
Takes an input u64 and a 0x10-byte struct, no output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SetDivisionCount (Takes an input u32, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [6.0.0+] GetSaveDataInfo (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || OpenSaveDataDiffChunkIterator (No input, returns an [[#ISaveDataChunkIterator]])&lt;br /&gt;
|-&lt;br /&gt;
| 48 || OpenSaveDataChunkExporter (Takes an input u32, returns an [[#ISaveDataChunkExporter]])&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] FinalizeFullExport (No input, returns two 0x10-byte output structs)&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [6.0.0+] FinalizeDiffExport (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] CancelExport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] SuspendExport (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [6.0.0+] GetKeySeed (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 71 || [6.0.0+] GetInitialDataMac (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 72 || [6.0.0+] FinalizeExport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] GetImportInitialDataAad (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [6.0.0+] SetExportInitialDataAad (Takes an input 0x20-byte struct, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 96 || [6.0.0+] GetReportInfo (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataDivisionImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [6.0.0+] GetSaveDataInfo (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || OpenSaveDataDiffChunkIterator (No input, returns an [[#ISaveDataChunkIterator]])&lt;br /&gt;
|-&lt;br /&gt;
| 32 || InitializeImport (No input, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
| 33 || FinalizeImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] CancelImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] GetImportContext (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 36 || [6.0.0+] SuspendImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 48 || OpenSaveDataChunkImporter (Takes an input u32, returns an [[#ISaveDataChunkImporter]])&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] GetImportInitialDataAad (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] GetReportInfo (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkIterator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkIterator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Next (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || IsEnd (No input, returns an output u8)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || GetId (No input, returns an output u32)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkExporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkExporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Pull (Takes an input u64 and a type-0x6 output buffer, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [6.0.0+] GetRestRawDataSize (No input, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkImporter =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataChunkImporter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Push (Takes an input u64 and a type-0x5 input buffer, no output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferProhibiter =&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t seem to handle any commands (?).&lt;br /&gt;
&lt;br /&gt;
= IMultiCommitManager =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || ? (Takes an input [[#IFilesystem]], no output)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || ? (No input/output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
= FileSystemType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Invalid&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Invalid&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Logo&lt;br /&gt;
|-&lt;br /&gt;
| 3 || ContentControl&lt;br /&gt;
|-&lt;br /&gt;
| 4 || ContentManual&lt;br /&gt;
|-&lt;br /&gt;
| 5 || ContentMeta&lt;br /&gt;
|-&lt;br /&gt;
| 6 || ContentData&lt;br /&gt;
|-&lt;br /&gt;
| 7 || ApplicationPackage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= StorageId =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || None&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GameCard&lt;br /&gt;
|-&lt;br /&gt;
| 3 || NandSystem&lt;br /&gt;
|-&lt;br /&gt;
| 4 || NandUser&lt;br /&gt;
|-&lt;br /&gt;
| 5 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentStorageId =&lt;br /&gt;
This is &amp;quot;nn::fs::ContentStorageId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataSpaceId =&lt;br /&gt;
This is &amp;quot;nn::fs::SaveDataSpaceId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdSystem&lt;br /&gt;
|-&lt;br /&gt;
| 100 || [3.0.0+] ProperSystem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Determines the storage where the savedata is stored.&lt;br /&gt;
&lt;br /&gt;
= SaveDataType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SystemSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SaveData&lt;br /&gt;
|-&lt;br /&gt;
| 2 || BcatDeliveryCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeviceSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [3.0.0+] TemporaryStorage&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [3.0.0+] CacheStorage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ImageDirectoryId =&lt;br /&gt;
This is &amp;quot;nn::fs::ImageDirectoryId&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= CloudBackupWorkStorageId =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentPath =&lt;br /&gt;
These are the 0x300 paths to NCA files for the various filesystems FS can access, beginning with @. They&#039;re passed via X descriptors, and returned via various [[Location Resolver services|ncm/lr]] commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Path || Notes&lt;br /&gt;
|-&lt;br /&gt;
| @SystemContent ||&lt;br /&gt;
|- &lt;br /&gt;
| @UserContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @SdCardContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @CalibFile ||&lt;br /&gt;
|-&lt;br /&gt;
| @Safe ||&lt;br /&gt;
|-&lt;br /&gt;
| @User ||&lt;br /&gt;
|-&lt;br /&gt;
| @System ||&lt;br /&gt;
|-&lt;br /&gt;
| @Sdcard ||&lt;br /&gt;
|-&lt;br /&gt;
| @Host ||&lt;br /&gt;
|-&lt;br /&gt;
| @GcApp || Gamecard App partition (Partition 2)&lt;br /&gt;
|-&lt;br /&gt;
| @GcS00000001 || Gamecard Contents.&lt;br /&gt;
|-&lt;br /&gt;
| @upp || Gamecard update partition (Partition 0)&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] @RegUpdate || Registered update partition&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Save Struct =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData. SaveData: 0 can be used for accessing the savedata associated with the current FS session titleID, otherwise when set this is the titleID associated with the savedata to access.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x10&lt;br /&gt;
| userID for user-specific savedata(saveuser) when set, otherwise when zero this indicates the common savedata(savecommon). This is loaded from [[Account_services]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| u64 [[Flash_Filesystem|saveID]]. 0 for SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21&lt;br /&gt;
| 0x1&lt;br /&gt;
| Save data &#039;rank&#039; or &#039;precedence&#039;. 0 if this save data is considered the primary save data. 1 if it&#039;s considered the secondary save data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x22&lt;br /&gt;
| 0x2&lt;br /&gt;
| Save data index&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
For DeviceSaveData, this struct is all-zero except for the [[#SaveDataType]] field.&lt;br /&gt;
&lt;br /&gt;
= SaveCreate Struct =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| [[Savegames|IVFC]] level4 size?&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Same as offset 0x0 normally? Hard-coded to 0x80000 for BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4000 for SystemSaveData/SaveData/DeviceSaveData/BcatSaveData. [[Savegames|IVFC]] level4 block-size in bytes?&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| Official user-processes only uses 0 here for SystemSaveData/SaveData. For the dedicated save-creation code with SaveData/DeviceSaveData, this value comes from an input param with official user-processes. For BcatSaveData, this is the hard-coded [[Title_list|titleID]] of the bcat-sysmodule.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4&lt;br /&gt;
| Written using an input param for official user-processes. Hard-coded 0 for BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x1&lt;br /&gt;
| Official user-processes only uses 0 here for SystemSaveData, 1 for SaveData/DeviceSaveData/BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x1A&lt;br /&gt;
| Not initialized for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
= DeviceSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8, the only difference compared to SaveData is the Save-struct.&lt;br /&gt;
&lt;br /&gt;
= BcatSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8. The Save-struct is the same as DeviceSaveData, except that the titleID field is set to &amp;lt;input titleID&amp;gt;. See above regarding SaveCreate-struct.&lt;br /&gt;
&lt;br /&gt;
The 0x10-byte struct passed to [[#CreateSaveDataFileSystem]] has the first 0x5-bytes set to all-zero.&lt;br /&gt;
&lt;br /&gt;
= SaveDataInfo =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Unknown saveID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA&lt;br /&gt;
| 0x6&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| userID&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x8&lt;br /&gt;
| saveID, 0 for regular SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| Application titleID, for regular SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| Raw saveimage size&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x2&lt;br /&gt;
| Save data index&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 0x1&lt;br /&gt;
| Save data &#039;rank&#039; or &#039;precedence&#039;. 0 if this save data is considered the primary save data. 1 if it&#039;s considered the secondary save data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x41&lt;br /&gt;
| 0x25&lt;br /&gt;
| Unknown. Usually zeros?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a 0x60-byte struct.&lt;br /&gt;
&lt;br /&gt;
= SaveDataFileSystemExtraData =&lt;br /&gt;
This is a 0x200-byte struct. Appears to match [[Savegames#Extra_data]].&lt;br /&gt;
&lt;br /&gt;
= InitialDataVersion2 =&lt;br /&gt;
This is a 0x8210-byte struct used by [[#ISaveDataTransferManagerWithDivision]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=6337</id>
		<title>Filesystem services</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=6337"/>
		<updated>2019-03-04T22:34:18Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* DirectoryEntryType */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= fsp-ldr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxyForLoader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Arguments || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || OpenCodeFileSystem || u64 TitleId + X descriptor [[#ContentPath]] || Returns an [[#IFileSystem]].&lt;br /&gt;
|-&lt;br /&gt;
| 1 || IsArchivedProgram || u64 ProcessId || Returns a bool (1 if the process id&#039;s [[#ContentPath]] ends in &amp;quot;.nca&amp;quot;).&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] SetCurrentProcess || PID descriptor ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= fsp-pr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IProgramRegistry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#RegisterProgram]] ||&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#UnregisterProgram]] ||&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] SetCurrentProcess ||&lt;br /&gt;
|-&lt;br /&gt;
| 256 || [[#SetEnabledProgramVerification]] ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== RegisterProgram ==&lt;br /&gt;
Takes a storageID, a pid, a titleID, a 0x1C type-A buffer for the [[NPDM#FS_Access_Header| FS Access Header]], and a 0x2C type-A buffer for the [[NPDM#FS_Access_Control| FS Access Control]]&lt;br /&gt;
&lt;br /&gt;
Final FS permissions are stored as (ACI0_perms &amp;amp; ACID_perms). Will panic(svcBreak) when buffer sizes from ipc-rawdata are invalid.&lt;br /&gt;
&lt;br /&gt;
== UnregisterProgram ==&lt;br /&gt;
Takes a pid. Removes registered FS permissions for that PID.&lt;br /&gt;
&lt;br /&gt;
== SetEnabledProgramVerification ==&lt;br /&gt;
Seems to sets a global flag to inputval &amp;amp; 1.&lt;br /&gt;
&lt;br /&gt;
When the flag is zero, it will set ret=0 instead of ret={error} when verifying the fixed-key [[NPDM]] ACID signature fails. This also skips verifying the [[NCA_Format|NCA Header]] signature using the ACID key. Note that if verifying the fixed-key ACID signature is successful, and verifying the ACID-key NCA header signature fails, it will throw an error and abort.&lt;br /&gt;
&lt;br /&gt;
= fsp-srv =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxy&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [1.0.0] [[#OpenFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#SetCurrentProcess]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || OpenDataFileSystemByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [2.0.0+] [[#OpenFileSystemWithPatch]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [2.0.0+] [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [3.0.0+] OpenDataFileSystemByApplicationId&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || InvalidateBisCache&lt;br /&gt;
|-&lt;br /&gt;
| 17 || OpenHostFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 18 || OpenSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 19 || [2.0.0+] FormatSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 21 || [[#DeleteSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 22 || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 23 || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 24 || RegisterSaveDataFileSystemAtomicDeletion&lt;br /&gt;
|-&lt;br /&gt;
| 25 || [2.0.0+] DeleteSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 26 || [2.0.0+] FormatSdCardDryRun&lt;br /&gt;
|-&lt;br /&gt;
| 27 || [2.0.0+] IsExFatSupported&lt;br /&gt;
|-&lt;br /&gt;
| 28 || [4.0.0+] DeleteSaveDataFileSystemBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 30 || [[#OpenGameCardStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 31 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [3.0.0+] ExtendSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [5.0.0+] DeleteCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [5.0.0+] GetCacheStorageSize&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] CreateSaveDataFileSystemByHashSalt (Unofficial name, takes a total of 0xB0-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 51 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 52 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 53 || [2.0.0+] OpenReadOnlySaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 57 || [3.0.0+] [[#ReadSaveDataFileSystemExtraDataBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 58 || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 59 || [2.0.0+] WriteSaveDataFileSystemExtraData&lt;br /&gt;
|-&lt;br /&gt;
| 60 || [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 61 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 62 || [5.0.0+] OpenCacheStorageList&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [5.0.0+] OpenSaveDataInternalStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [5.0.0+] UpdateSaveDataMacForDebug&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [5.0.0+] WriteSaveDataFileSystemExtraData2&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] FindSaveDataWithFilter (Takes a total of 0x50-bytes of input, returns 8-bytes of output, and a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] OpenSaveDataInfoReaderBySaveDataFilter (Unofficial name, takes a total of 0x50-bytes of input, returns an #ISaveDataInfoReader)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || OpenSaveDataMetaFile&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [4.0.0+] OpenSaveDataTransferManager (No input, returns an [[#ISaveDataTransferManager]])&lt;br /&gt;
|-&lt;br /&gt;
| 82 || [5.0.0+] OpenSaveDataTransferManagerVersion2 (No input, returns an [[#ISaveDataTransferManagerWithDivision]])&lt;br /&gt;
|-&lt;br /&gt;
| 83 || [6.0.0+] OpenSaveDataTransferProhibiterForCloudBackUp (Takes an input u64, returns an [[#ISaveDataTransferProhibiter]])&lt;br /&gt;
|-&lt;br /&gt;
| 84 || [6.0.0+] ListApplicationAccessibleSaveDataOwnerId (Takes a total of 0x10-bytes of input, returns 4-bytes of output, and a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 100 || OpenImageDirectoryFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 110 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 120 || [6.0.0+] OpenCloudBackupWorkStorageFileSystem (Takes 4-bytes of input, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 130 || [7.0.0+] OpenCustomStorageFileSystem (Takes 4-bytes of input, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 200 || OpenDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 201 || [3.0.0+] OpenDataStorageByProgramId&lt;br /&gt;
|-&lt;br /&gt;
| 202 || [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 203 || OpenPatchDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 204 || [7.0.0+] ? (Takes an input u8, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 205 || [7.0.0+] ? (Takes an input u8, returns an [[#IStorage]])&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [[#OpenDeviceOperator]]&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 510 || [5.0.0+] OpenSystemDataUpdateEventNotifier&lt;br /&gt;
|-&lt;br /&gt;
| 511 || [5.0.0+] NotifySystemDataUpdateEvent&lt;br /&gt;
|-&lt;br /&gt;
| 520 || [6.0.0+] SimulateGameCardDetectionEvent (Takes a total of 0xC-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 600 || [1.0.0-3.0.2] SetCurrentPosixTime&lt;br /&gt;
|-&lt;br /&gt;
| 601 || QuerySaveDataTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 602 || [[#VerifySaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 603 || CorruptSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 604 || CreatePaddingFile&lt;br /&gt;
|-&lt;br /&gt;
| 605 || DeleteAllPaddingFiles&lt;br /&gt;
|-&lt;br /&gt;
| 606 || [2.0.0+] GetRightsId&lt;br /&gt;
|-&lt;br /&gt;
| 607 || [2.0.0+] RegisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 608 || [2.0.0+] UnregisterAllExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 609 || [2.0.0+] GetRightsIdByPath&lt;br /&gt;
|-&lt;br /&gt;
| 610 || [3.0.0+] GetRightsIdAndKeyGenerationByPath&lt;br /&gt;
|-&lt;br /&gt;
| 611 || [4.0.0+] SetCurrentPosixTimeWithTimeDifference&lt;br /&gt;
|-&lt;br /&gt;
| 612 || [4.0.0+] GetFreeSpaceSizeForSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 613 || [4.0.0+] VerifySaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 614 || [4.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 615 || [5.0.0+] QuerySaveDataInternalStorageTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 616 || [6.0.0+] [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| 617 || [7.0.0+] UnregisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 620 || [2.0.0+] [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| 630 || [4.0.0+] SetSdCardAccessibility&lt;br /&gt;
|-&lt;br /&gt;
| 631 || [4.0.0+] IsSdCardAccessible&lt;br /&gt;
|-&lt;br /&gt;
| 640 || [4.0.0+] IsSignedSystemPartitionOnSdCardValid&lt;br /&gt;
|-&lt;br /&gt;
| 700 || [5.0.0+] OpenAccessFailureResolver&lt;br /&gt;
|-&lt;br /&gt;
| 701 || [5.0.0+] GetAccessFailureDetectionEvent&lt;br /&gt;
|-&lt;br /&gt;
| 702 || [5.0.0+] IsAccessFailureDetected&lt;br /&gt;
|-&lt;br /&gt;
| 710 || [5.0.0+] ResolveAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 720 || [5.0.0+] AbandonAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [2.0.0+] GetAndClearFileSystemProxyErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [7.0.0+] RegisterProgramIndexMapInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1000 || SetBisRootForHost&lt;br /&gt;
|-&lt;br /&gt;
| 1001 || SetSaveDataSize&lt;br /&gt;
|-&lt;br /&gt;
| 1002 || SetSaveDataRootPath&lt;br /&gt;
|-&lt;br /&gt;
| 1003 || DisableAutoSaveDataCreation&lt;br /&gt;
|-&lt;br /&gt;
| 1004 || [[#SetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1005 || [[#GetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1006 || [[#OutputAccessLogToSdCard]]&lt;br /&gt;
|-&lt;br /&gt;
| 1007 || [4.0.0+] RegisterUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1008 || [4.0.0+] OpenRegisteredUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1009 || [4.0.0+] GetAndClearMemoryReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1010 || [5.1.0-6.2.0] SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| 1011 || [7.0.0+] (no input, returns two 32-bit values, second is &amp;quot;program_index&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 1100 || [4.0.0+] OverrideSaveDataTransferTokenSignVerificationKey&lt;br /&gt;
|-&lt;br /&gt;
| 1110 || [6.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId2&lt;br /&gt;
|-&lt;br /&gt;
| 1200 || [6.0.0+] OpenMultiCommitManager (No input, returns an output #IMultiCommitManager)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
Every time permissions are checked, the process registration [[#fsp-pr]] is loaded using the session processID. The permission data is populated with data from the [[NPDM]].&lt;br /&gt;
&lt;br /&gt;
If the processID is &amp;lt;= 6 (which happens only for built-in sysmodules), it will use a hardcoded registration data. The default mask in this case is 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
Note that the functions check whether or not at least one bit is set in the mask. This means that, you don&#039;t need to set 0xFFFFFFFFFFFFFFFF to get all permissions: it suffices to set 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
If the code were to request an invalid input type, panic. But this never happens.&lt;br /&gt;
&lt;br /&gt;
=== RwPermissions ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type(s) || Mask || Name || Value || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000801 || CanMountLogo || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000801 || CanMountContentMeta || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000801 || CanMountContentControl || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000801 || CanMountContentManual || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000801 || CanMountContentData || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000801 || CanMountApplicationPackage || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000000000 || CanMountSaveDataStorage || 3 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000800 || CanMountContentStorage || 3 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000001000 || CanMountImageAndVideoStorage || 3 || [[#OpenImageDirectoryFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanMountCloudBackupWorkStorage || 3 || OpenCloudBackupWorkStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000000084&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountBisCalibrationFile || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000008080) || CanMountBisSafeMode || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000008080 || CanMountBisUser || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000008080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountBisSystem || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanMountBisSystemProperEncryption || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000010) || CanMountBisSystemProperPartition || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0xC000000000200000&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000040020) || CanMountSdCard || 3 || [[#OpenSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x8000000000000010&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000028) || CanMountGameCard || 3 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000040020&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000020) || CanMountDeviceSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0x8000000000000028&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000020) || CanMountSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x8000000000000020&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010082) || CanMountOthersSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0x8000000000000020&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanMountOthersSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0x8000000000010082&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition1Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0x8000000000010080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition2Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanOpenBisPartitionUserDataRoot || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part1 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part2 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part3 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part4 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part5 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part6 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || 0x8000000000000084&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationBinary || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x8000000000000084&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationFile || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0x8000000000000080 || CanOpenBisPartitionSafeMode || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0x8000000000000080 || CanOpenBisPartitionUser || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanOpenBisPartitionSystem || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000100) || CanOpenBisPartitionSystemProperEncryption || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000100008) || CanOpenBisPartitionSystemProperPartition || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0xC000000000200000&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000400000) || CanOpenSdCardStorage || ||&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x27 || 0x8000000000000100&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000100008) || CanOpenGameCardStorage || 3 || [[#OpenGameCardStorage]],  [[#EraseGameCard]] (bit1), [[#WriteToGameCard]] (bit1), [[#GetGameCardErrorInfo]] (bit1), [[#EraseAndWriteParamDirectly]] (bit1), [[#ReadParamDirectly]] (bit1), [[#ForceEraseGameCard]] (bit1)&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x28 || 0x8000000000100008&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000400000) || CanMountSystemDataPrivate || 1 || [[#OpenFileSystem]], [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x29 || 0xC000000000400000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010000) || CanMountHost || 3 || [[#OpenHostFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0x8000000000010000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanMountRegisteredUpdatePartition || 1 || [[#OpenRegisteredUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x2B || 0x8000000000000000 || CanOpenSaveDataInternalStorage || 3 || [[#OpenSaveDataInternalStorageFileSystem]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BoolPermissions ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type(s) || Mask || Name || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000080 || CanInvalidateBisCache || [[#InvalidateBisCache]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000080 || CanEraseMmc || [[#EraseMmc]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000010 || CanGetGameCardDeviceCertificate || [[#GetGameCardDeviceCertificate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000010 || CanGetGameCardIdSet || [[#GetGameCardIdSet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000200 || CanFinalizeGameCardDriver || [[#FinalizeGameCardDriver]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000200 || CanGetGameCardAsicInfo || [[#GetGameCardAsicInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000002020 || CanCreateSaveData || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000060 || CanDeleteSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000000028 || CanCreateSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000000000020 || CanCreateOthersSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000004028 || CanDeleteSystemSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000060 || CanOpenSaveDataInfoReader || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000004020 || CanOpenSaveDataInfoReaderForSystem || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000000040&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000020000) || || OpenSaveDataInfoReaderBySaveDataFilter&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000020000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000400) || CanOpenSaveDataMetaFile || [[#OpenSaveDataMetaFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000400&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000004060) || CanSetCurrentPosixTime || [[#SetCurrentPosixTime]], [[#SetCurrentPosixTimeWithTimeDifference]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000004060&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000080000) || CanReadSaveDataFileSystemExtraData || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x8000000000080000 || CanSetGlobalAccessLogMode || [[#SetGlobalAccessMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000080000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] Invalid) || CanSetSpeedEmulationMode || [[#SetSpeedEmulationMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || Invalid&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000800000) || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0xC000000000800000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000001000000) || CanFillBis || [[#CreatePaddingFile]], [[#DeleteAllPaddingFiles]] &lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0xC000000001000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000001000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0xC000000002000000) || CanCorruptSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x16 || 0x8000000001000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000004000000) || CanCorruptSystemSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x17 || 0x8000000000000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0xC000000002000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000008000000) || CanVerifySaveData || [[#VerifySaveDataFileSystem]], [[#VerifySaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x18 || 0xC000000002000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000004000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000010000000) || CanDebugSaveData || [[#CreateSaveDataFileSystem]], [[#OpenSaveDataFileSystem]], [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x19 || 0x8000000004000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000008000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000800) || CanFormatSdCard || [[#FormatSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x1A || 0x8000000008000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000010000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000004020) || CanGetRightsId || [[#GetRightsId]], [[#GetRightsIdAndKeyGenerationByPath]], [[#GetRightsIdByPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1B || 0x8000000010000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000800)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000002020) || CanRegisterExternalKey || [[#RegisterExternalKey]], [[#UnregisterAllExternalKey]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1C || 0x8000000000000800&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000004020)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000028) || CanSetEncryptionSeed || [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1D || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000020000000) || SaveDataExtraData_Write0 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1E || 0x8000000000004020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000002020)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000040000000) || CanWriteSaveDataFileSystemExtraDataFlags || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1F || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000000) || SaveDataExtraData_Write1 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x20 || 0x8000000000000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000020000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000000) || CanWriteSaveDataFileSystemExtraDataAll || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x21 || 0x8000000000002020&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanExtendSaveData || [[#ExtendSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x22 || 0x8000000000000028&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000002) || CanExtendSystemSaveData || [[#ExtendSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x23 || 0x8000000020000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanRegisterUpdatePartition || [[#RegisterUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x24 || 0x8000000040000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanOpenSaveDataTransferManager || [[#OpenSaveDataTransferManager]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x25 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanOpenSaveDataTransferManagerVersion2 || [[#OpenSaveDataTransferManagerVersion2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x26 || 0x8000000200002000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080000110) || CanOpenSaveDataTransferProhibiterForCloudBackUp || [[#OpenSaveDataTransferProhibiterForCloudBackUp]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x27 || 0x8000000200002000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000100008) || CanListApplicationAccessibleSaveDataOwnerId || ListApplicationAccessibleSaveDataOwnerId&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x28 || 0x8000000000000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080010000) || CanControlMmcPatrol || [[#SuspendMmcPatrol]], [[#ResumeMmcPatrol]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x29 || 0x8000000000000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOverrideSaveDataTransferTokenSignVerificationKey || [[#OverrideSaveDataTransferTokenSignVerificationKey]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0x8000000080200000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSdCardDetectionEventNotifier || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2B || 0x8000000080000110&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenGameCardDetectionEventNotifier || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2C || 0x8000000000100008&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSystemDataUpdateEventNotifier || [[#OpenSystemDataUpdateEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2D || 0x8000000000010000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanNotifySystemDataUpdateEvent || [[#NotifySystemDataUpdateEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2E || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanOpenAccessFailureDetectionEventNotifier || [[#OpenAccessFailureResolver]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2F || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanGetAccessFailureDetectionEvent || [[#GetAccessFailureDetectionEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.1.0+] 0x30 || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080080000) || CanIsAccessFailureDetected || [[#IsAccessFailureDetected]] &lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x31 || 0x8000000100000000 || CanResolveAccessFailure || [[#ResolveAccessFailure]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x32 || 0x8000000100000000 || CanAbandonAccessFailure || [[#AbandonAccessFailure]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x33 || 0x8000000040000000 || CanQuerySaveDataInternalStorageTotalSize || [[#QuerySaveDataInternalStorageTotalSize]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x34 || 0x8000000200000020 || CanGetSaveDataCommitId || [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x35 || 0x8000000000200000 || CanSetSdCardAccessibility || [[#SetSdCardAccessibility]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x36 || 0x4000000000000000 || || SimulateGameCardDetectionEvent, SetGameCardSimulationEvent, ClearGameCardSimulationEvent&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x37 || 0x8000000000080000 || CanSetDataStorageRedirectTarget || SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x38 || 0x8000000000000000 || || [[#CreateSaveDataFileSystem]], CreateSaveDataFileSystemByHashSalt&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer (ContentPath) and a [[#FileSystemType]] as parameters. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
[2.0.0+] This function was removed.&lt;br /&gt;
&lt;br /&gt;
== SetCurrentProcess ==&lt;br /&gt;
Takes a pid-descriptor.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithPatch ==&lt;br /&gt;
Takes an input [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Web-applet loads the [[#FileSystemType]] (which must be &#039;&#039;&#039;ContentManual&#039;&#039;&#039;) from u32_table[inparam].&lt;br /&gt;
&lt;br /&gt;
Note: web-applet strings refer to both this cmd and [[#OpenFileSystemWithId]] as &amp;quot;MountContent&amp;quot;, but official nn_sf_sync symbols use &amp;quot;OpenXX&amp;quot; names.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithId ==&lt;br /&gt;
Takes a type-0x19 input buffer, an [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
The [[#IFileSystem]] must be &#039;&#039;&#039;ContentMeta&#039;&#039;&#039; if the NCA type is 0 (control).&lt;br /&gt;
&lt;br /&gt;
The input buffer is the output string path from [[NS_Services#GetApplicationContentPath|GetApplicationContentPath]].&lt;br /&gt;
&lt;br /&gt;
May return errors when attempting to access NCA-paths for an update-title with a gamecard, when the gamecard isn&#039;t inserted. May return error 0x7D402 in some cases with update-titles. Non-val2 in32 values with NCA-type1 are unusable, even for normal titles.&lt;br /&gt;
&lt;br /&gt;
The official &amp;quot;MountApplicationPackage&amp;quot; func uses this with in64=0 and [[#FileSystemType]] &#039;&#039;&#039;ApplicationPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
After the [[#FileSystemType]] specific permissions are checked, it then gets the func retval for permissions-type 0x25 and func0.&lt;br /&gt;
&lt;br /&gt;
When [[#FileSystemType]] is &#039;&#039;&#039;ContentMeta&#039;&#039;&#039;, it uses in64=0xffffffffffffffff internally, otherwise it checks if in64 is set to 0xffffffffffffffff then throws an error if so. When the in64 used internally is not 0xffffffffffffffff, it&#039;s compared with the NCA titleID, then an error is thrown on mismatch.&lt;br /&gt;
&lt;br /&gt;
== OpenBisFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer string and a u32 [[Flash_Filesystem|Bis partitionID]]. Official user-process code sets instr[0] = 0 normally. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Only partitionIDs for FAT partitions are usable with this, otherwise error 0x2EE202 is returned. Seems to be about the same as [[#OpenBisStorage]] except this mounts the partition filesystem instead of allowing direct access to the partition sectors.&lt;br /&gt;
&lt;br /&gt;
== OpenBisStorage ==&lt;br /&gt;
Takes a u32 partition ID, returns 0x2EE202 for partitions which do not exist, 0x320002 for partitions which cannot be opened and a valid [[#IStorage]] handle otherwise.&lt;br /&gt;
&lt;br /&gt;
== InvalidateBisCache ==&lt;br /&gt;
Seems to invalidate the Bis cache for MBR/GPT after overwriting that data via the OpenBisStorage IStorage. Used by [[SystemInitializer]].&lt;br /&gt;
&lt;br /&gt;
== DeleteSaveDataFileSystem ==&lt;br /&gt;
Takes an input u64.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystem ==&lt;br /&gt;
Takes a 0x40-byte Save-struct entry, a 0x40-byte SaveCreate-struct entry, and a 0x10-byte input struct.&lt;br /&gt;
&lt;br /&gt;
Only the first 0x5-bytes in the 0x10-byte struct are initialized: all-zero when automatically creating savedata during savecommon mount by official user-processes. In the dedicated save-creation code in official user-processes: +0 u32 = 0x40060, +4 u8 = 1.&lt;br /&gt;
&lt;br /&gt;
Creates regular savedata.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes a 0x40-byte Save-struct entry and a 0x40-byte SaveCreate-struct entry.&lt;br /&gt;
&lt;br /&gt;
Creates savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardStorage ==&lt;br /&gt;
Takes two input u32s (gamecard handle, partition ID), and returns an [[#IStorage]] for the [[Gamecard_Format|partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardFileSystem ==&lt;br /&gt;
Takes two input u32s, with the second u32 located at +4 in rawdata after the first u32. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts a [[Gamecard_Partition|gamecard partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystem ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte Save-struct entry. Official user-process code is only known to use value 1 for the u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Permissions aren&#039;t checked until the specified save is successfully found.&lt;br /&gt;
&lt;br /&gt;
Only one process (specifically only one [[#IFileSystem]] session) can mount a given savedata at any given time (this includes SystemSaveData).&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte Save-struct entry. Web-applet only uses value0 for the input u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraDataBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an input u64 saveID, and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraData ==&lt;br /&gt;
Takes an input u64 saveID and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReader ==&lt;br /&gt;
No input, returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReaderBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenContentStorageFileSystem ==&lt;br /&gt;
Takes a [[#ContentStorageId]]. Invalid values return 0x2EE202.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]] with NCA files. The read data from these files is identical to the data read by [[NCM_services#ReadContentIdFile]].&lt;br /&gt;
&lt;br /&gt;
== OpenDataStorageByDataId ==&lt;br /&gt;
Takes a [[#StorageId]] and a TitleID.&lt;br /&gt;
&lt;br /&gt;
Returns a [[IPC_Marshalling#Domain_message|domain object ID]] implementing the [[#IStorage]] interface for data archives.&lt;br /&gt;
&lt;br /&gt;
== OpenDeviceOperator ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IDeviceOperator]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenSdCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== VerifySaveDataFileSystem ==&lt;br /&gt;
Takes an unknown input u64 and a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
The input u64 high-byte must be non-zero, otherwise an [[Error_codes|error]] is returned(0xE02).&lt;br /&gt;
&lt;br /&gt;
== GetSaveDataCommitId ==&lt;br /&gt;
Takes an input u8 and u64, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== SetSdCardEncryptionSeed ==&lt;br /&gt;
Takes in the 0x10 byte SD card encryption seed, and loads it into FS-module state.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]]-module reads the 0x10 bytes from SdCard:/Nintendo/Contents/private, and compares them to the first 0x10 bytes of the ns_appman:/private (in [[Flash_Filesystem#System_Savegames|system savedata]] 0x8000000000000043). If they match, NS calls this command using bytes 0x10-0x20 from ns_appman:/private. The rest of this file (0x1F0 bytes total) is (usually/always?) all-zero (however in some cases the byte at offset 0x20 is value 0x1).&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== GetGlobalAccessLogMode ==&lt;br /&gt;
Returns an output u32.&lt;br /&gt;
&lt;br /&gt;
GlobalAccessLogMode is normally 0.&lt;br /&gt;
&lt;br /&gt;
== OutputAccessLogToSdCard ==&lt;br /&gt;
Takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
The input buffer is the string to output to the log. User-processes normally include a newline at the end.&lt;br /&gt;
&lt;br /&gt;
User-processes only use this when the value previously loaded from [[#GetGlobalAccessLogMode]] has bit1 set.&lt;br /&gt;
&lt;br /&gt;
When bit1 in GlobalAccessLogMode is clear, FS-module will just return 0 for OutputAccessLogToSdCard. However even with that set the log doesn&#039;t show up SD, unknown why.&lt;br /&gt;
&lt;br /&gt;
The input buffer is written to the &amp;quot;$FsAccessLog:/FsAccessLog.txt&amp;quot; file, where &amp;quot;$FsAccessLog&amp;quot; is the SD-card mount-name. It&#039;s written to the current end of the file(appended).&lt;br /&gt;
&lt;br /&gt;
= IStorage =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IStorage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This is the interface for a raw device, usually a block device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Arguments&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read || Takes a type-0x46 buffer, an offset and length &lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write || Takes a type-0x45 buffer, an offset and length &lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush || None&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize || Takes a size&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize || None&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFileSystem =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystem&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There are two main implementations of this interface:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RomFS&#039;&#039;&#039;: Filesystem implementation statically linked in the binary. Uses an [[#IStorage]] interface as underlying raw device.&lt;br /&gt;
* &#039;&#039;&#039;IPC proxy&#039;&#039;&#039;: Used for all non-RomFS filesystems. In this case, actual filesystem implementation is in the FS process.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || CreateFile&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DeleteFile&lt;br /&gt;
|-&lt;br /&gt;
| 2 || CreateDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeleteDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 4 || DeleteDirectoryRecursively&lt;br /&gt;
|-&lt;br /&gt;
| 5 || RenameFile&lt;br /&gt;
|-&lt;br /&gt;
| 6 || RenameDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [[#GetEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [[#OpenFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [[#OpenDirectory]]&lt;br /&gt;
|-&lt;br /&gt;
| 10 || [[#Commit]]&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#GetFreeSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#GetTotalSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || [3.0.0+] [[#CleanDirectoryRecursively]]&lt;br /&gt;
|-&lt;br /&gt;
| 14 || [3.0.0+] [[#GetFileTimeStampRaw]]&lt;br /&gt;
|-&lt;br /&gt;
| 15 || [4.0.0+] QueryEntry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetEntryType ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns [[#DirectoryEntryType]] as an output u32.&lt;br /&gt;
&lt;br /&gt;
== OpenFile ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path, and an u32 &#039;&#039;&#039;mode&#039;&#039;&#039;. &#039;&#039;&#039;mode&#039;&#039;&#039; controls how the file is opened, based on which bits are set:&lt;br /&gt;
&lt;br /&gt;
* When bit 0 is set, the file is Readable: you can use the Read operation.&lt;br /&gt;
* When bit 1 is set, the file is Writable: you can use the Write operation.&lt;br /&gt;
* When bit 2 is set, the file is Appendable: unless this bit is set, you will not be able to write beyond the end of a file (such writes will result in an error 0x307202)&lt;br /&gt;
&lt;br /&gt;
== OpenDirectory ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and an u64 &#039;&#039;&#039;filter_flags&#039;&#039;&#039;. &#039;&#039;&#039;filter_flags&#039;&#039;&#039; controls what type of entries are read by the [[#IDirectory]]: bitmask 0x1 = directories, bitmask 0x2 = files.&lt;br /&gt;
&lt;br /&gt;
== Commit ==&lt;br /&gt;
Like [https://3dbrew.org/wiki/FS:ControlArchive 3DS], this has to be used after writing to savedata for the changes to take affect.&lt;br /&gt;
&lt;br /&gt;
== GetFreeSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total free space with this FS.&lt;br /&gt;
&lt;br /&gt;
== GetTotalSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total space available with this FS(free+used).&lt;br /&gt;
&lt;br /&gt;
== CleanDirectoryRecursively ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and clears the contents of the directory specified in the path.&lt;br /&gt;
&lt;br /&gt;
== GetFileTimeStampRaw ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path and returns a 0x20-byte struct. This contains 3 u64s and an u8.&lt;br /&gt;
&lt;br /&gt;
= IDirectory =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDirectory&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Read]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetEntryCount]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Read ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64(?) for the total number of read entries, this is 0 when no more entries are available.&lt;br /&gt;
&lt;br /&gt;
The output buffer contains the read array of [[#DirectoryEntry]]. This doesn&#039;t include entries for &amp;quot;.&amp;quot; and &amp;quot;..&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== GetEntryCount ==&lt;br /&gt;
Returns an u64 for the total number of readable entries.&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntry =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x301 || Path&lt;br /&gt;
|-&lt;br /&gt;
| 0x301 || 0x3 || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x304 || 0x1 || [[#DirectoryEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x305 || 0x3 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x308 || 0x8 || Filesize, 0 for directories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntryType =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntryType&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
An s8 value indicating a directory entry type. The current values are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Directory&lt;br /&gt;
|-&lt;br /&gt;
| 1 || File&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFile =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFile&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataInfoReader =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataInfoReader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#ReadSaveDataInfo]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataInfo ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64 for total output entries. This buffer contains an array of [[#SaveDataInfo]].&lt;br /&gt;
&lt;br /&gt;
This is used to get [[#SaveDataInfo]] for all savedata on the system (or all savedata for the current [[#SaveDataSpaceId]]). When used multiple times, it will resume reading where it left off, until no more entries are available (in that case the out u64 is value 0).&lt;br /&gt;
&lt;br /&gt;
= IDeviceOperator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDeviceOperator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || IsSdCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GetSdCardSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [2.0.0+] GetSdCardCid&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [2.0.0+] GetSdCardUserAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [2.0.0+] GetSdCardProtectedAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [2.0.0+] GetAndClearSdCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 100 || GetMmcCid&lt;br /&gt;
|-&lt;br /&gt;
| 101 || GetMmcSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 110 || EraseMmc&lt;br /&gt;
|-&lt;br /&gt;
| 111 || GetMmcPartitionSize&lt;br /&gt;
|-&lt;br /&gt;
| 112 || [2.0.0+] GetMmcPatrolCount&lt;br /&gt;
|-&lt;br /&gt;
| 113 || [2.0.0+] GetAndClearMmcErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 114 || [2.0.0+] GetMmcExtendedCsd&lt;br /&gt;
|-&lt;br /&gt;
| 115 || [4.0.0+] SuspendMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 116 || [4.0.0+] ResumeMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 200 || IsGameCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 201 || EraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 202 || GetGameCardHandle&lt;br /&gt;
|-&lt;br /&gt;
| 203 || [[#GetGameCardUpdatePartitionInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 204 || FinalizeGameCardDriver&lt;br /&gt;
|-&lt;br /&gt;
| 205 || GetGameCardAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 206 || GetGameCardDeviceCertificate&lt;br /&gt;
|-&lt;br /&gt;
| 207 || GetGameCardAsicInfo&lt;br /&gt;
|-&lt;br /&gt;
| 208 || GetGameCardIdSet&lt;br /&gt;
|-&lt;br /&gt;
| 209 || WriteToGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 210 || SetVerifyWriteEnalbleFlag&lt;br /&gt;
|-&lt;br /&gt;
| 211 || GetGameCardImageHash&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [2.0.0+] GetGameCardDeviceIdForProdCard&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [2.0.0+] EraseAndWriteParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [2.0.0+] ReadParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [2.0.0+] ForceEraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [2.0.0+] GetGameCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [2.1.0+] GetGameCardErrorReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [3.0.0+] GetGameCardDeviceId&lt;br /&gt;
|-&lt;br /&gt;
| 300 || SetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 301 || GetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [5.0.0+] SuspendSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 401 || [5.0.0+] ResumeSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 402 || [6.0.0+] GetSdmmcConnectionStatus (Takes a total of 4-bytes of input, returns a total of 8-bytes of output)&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [6.0.0+] SetSimulationEvent (Takes a total of 0x14-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [6.0.0+] ClearSimulationEvent (Takes a total of 4-bytes of input, no output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetGameCardUpdatePartitionInfo ==&lt;br /&gt;
Returns a titleID and the title-version for it.&lt;br /&gt;
&lt;br /&gt;
* Output u32 with ARMS-gamecard: title-version v131162. This is the title-version for [[2.1.0]], which is the sysupdate included with this gamecard. Launch-day gamecards return title-version v450.&lt;br /&gt;
* Output u64 with ARMS-gamecard: titleID 0100000000000816.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]] appears to only use this with [[Content_Manager_services#GetTitleIdInfo]] and [[Content_Manager_services#GetUpdateTitleList]] with storageid=nandsys, for checking whether a sysupdate is required.&lt;br /&gt;
&lt;br /&gt;
= IEventNotifier =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IEventNotifier&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || GetEventHandle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManager =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetToken]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataImporter]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== SetToken ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64, returns an [[#ISaveDataExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x10-byte userID, and a type-0x5 input buffer. Returns an output u64 and an [[#ISaveDataImporter]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataExporter =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Pull]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#PullInitialData]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataExporter constructor. This is used automatically after [[#OpenSaveDataExporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Pull ==&lt;br /&gt;
Takes a type-0x6 output buffer, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== PullInitialData ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataImporter =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Push]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#Finalize]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataImporter constructor. This is used automatically after [[#OpenSaveDataImporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Push ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== Finalize ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManagerWithDivision =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetKeySeedPackage]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataFullExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [[#OpenSaveDataDiffExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] [[#OpenSaveDataExporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataFullImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [[#OpenSaveDataDiffImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] [[#OpenSaveDataDuplicateDiffImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] [[#OpenSaveDataImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] [[#OpenSaveDataImporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [6.0.0+] [[#CancelSuspendingImport]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer containing the &#039;&#039;&#039;Challenge&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== SetKeySeedPackage ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer containing the &#039;&#039;&#039;KeySeedPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFullExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFullImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], a 0x10-byte userID, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]], returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDuplicateDiffImporter ==&lt;br /&gt;
Takes an input u8 and an u64, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8, an u8(bool), a 0x10-byte struct, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== CancelSuspendingImport ==&lt;br /&gt;
Takes an input u64 and a 0x10-byte struct, no output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionExporter =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SetDivisionCount (Takes an input u32, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [6.0.0+] GetSaveDataInfo (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || OpenSaveDataDiffChunkIterator (No input, returns an [[#ISaveDataChunkIterator]])&lt;br /&gt;
|-&lt;br /&gt;
| 48 || OpenSaveDataChunkExporter (Takes an input u32, returns an [[#ISaveDataChunkExporter]])&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] FinalizeFullExport (No input, returns two 0x10-byte output structs)&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [6.0.0+] FinalizeDiffExport (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] CancelExport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] SuspendExport (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [6.0.0+] GetKeySeed (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 71 || [6.0.0+] GetInitialDataMac (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 72 || [6.0.0+] FinalizeExport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] GetImportInitialDataAad (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [6.0.0+] SetExportInitialDataAad (Takes an input 0x20-byte struct, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 96 || [6.0.0+] GetReportInfo (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionImporter =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [6.0.0+] GetSaveDataInfo (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || OpenSaveDataDiffChunkIterator (No input, returns an [[#ISaveDataChunkIterator]])&lt;br /&gt;
|-&lt;br /&gt;
| 32 || InitializeImport (No input, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
| 33 || FinalizeImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] CancelImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] GetImportContext (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 36 || [6.0.0+] SuspendImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 48 || OpenSaveDataChunkImporter (Takes an input u32, returns an [[#ISaveDataChunkImporter]])&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] GetImportInitialDataAad (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] GetReportInfo (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkIterator =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Next (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || IsEnd (No input, returns an output u8)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || GetId (No input, returns an output u32)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkExporter =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Pull (Takes an input u64 and a type-0x6 output buffer, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [6.0.0+] GetRestRawDataSize (No input, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkImporter =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Push (Takes an input u64 and a type-0x5 input buffer, no output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferProhibiter =&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t seem to handle any commands (?).&lt;br /&gt;
&lt;br /&gt;
= IMultiCommitManager =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || ? (Takes an input [[#IFilesystem]], no output)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || ? (No input/output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
= FileSystemType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Invalid&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Invalid&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Logo&lt;br /&gt;
|-&lt;br /&gt;
| 3 || ContentControl&lt;br /&gt;
|-&lt;br /&gt;
| 4 || ContentManual&lt;br /&gt;
|-&lt;br /&gt;
| 5 || ContentMeta&lt;br /&gt;
|-&lt;br /&gt;
| 6 || ContentData&lt;br /&gt;
|-&lt;br /&gt;
| 7 || ApplicationPackage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= StorageId =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || None&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GameCard&lt;br /&gt;
|-&lt;br /&gt;
| 3 || NandSystem&lt;br /&gt;
|-&lt;br /&gt;
| 4 || NandUser&lt;br /&gt;
|-&lt;br /&gt;
| 5 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentStorageId =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataSpaceId =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdSystem&lt;br /&gt;
|-&lt;br /&gt;
| 100 || [3.0.0+] ProperSystem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Determines the storage where the savedata is stored.&lt;br /&gt;
&lt;br /&gt;
= SaveDataType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SystemSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SaveData&lt;br /&gt;
|-&lt;br /&gt;
| 2 || BcatDeliveryCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeviceSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [3.0.0+] TemporaryStorage&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [3.0.0+] CacheStorage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ImageDirectoryId =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= CloudBackupWorkStorageId =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentPath =&lt;br /&gt;
These are the 0x300 paths to NCA files for the various filesystems FS can access, beginning with @. They&#039;re passed via X descriptors, and returned via various [[Location Resolver services|ncm/lr]] commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Path || Notes&lt;br /&gt;
|-&lt;br /&gt;
| @SystemContent ||&lt;br /&gt;
|- &lt;br /&gt;
| @UserContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @SdCardContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @CalibFile ||&lt;br /&gt;
|-&lt;br /&gt;
| @Safe ||&lt;br /&gt;
|-&lt;br /&gt;
| @User ||&lt;br /&gt;
|-&lt;br /&gt;
| @System ||&lt;br /&gt;
|-&lt;br /&gt;
| @Sdcard ||&lt;br /&gt;
|-&lt;br /&gt;
| @Host ||&lt;br /&gt;
|-&lt;br /&gt;
| @GcApp || Gamecard App partition (Partition 2)&lt;br /&gt;
|-&lt;br /&gt;
| @GcS00000001 || Gamecard Contents.&lt;br /&gt;
|-&lt;br /&gt;
| @upp || Gamecard update partition (Partition 0)&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] @RegUpdate || Registered update partition&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Save Struct =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData. SaveData: 0 can be used for accessing the savedata associated with the current FS session titleID, otherwise when set this is the titleID associated with the savedata to access.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x10&lt;br /&gt;
| userID for user-specific savedata(saveuser) when set, otherwise when zero this indicates the common savedata(savecommon). This is loaded from [[Account_services]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| u64 [[Flash_Filesystem|saveID]]. 0 for SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21&lt;br /&gt;
| 0x1&lt;br /&gt;
| Save data &#039;rank&#039; or &#039;precedence&#039;. 0 if this save data is considered the primary save data. 1 if it&#039;s considered the secondary save data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x22&lt;br /&gt;
| 0x2&lt;br /&gt;
| Save data index&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
For DeviceSaveData, this struct is all-zero except for the [[#SaveDataType]] field.&lt;br /&gt;
&lt;br /&gt;
= SaveCreate Struct =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| [[Savegames|IVFC]] level4 size?&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Same as offset 0x0 normally? Hard-coded to 0x80000 for BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4000 for SystemSaveData/SaveData/DeviceSaveData/BcatSaveData. [[Savegames|IVFC]] level4 block-size in bytes?&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| Official user-processes only uses 0 here for SystemSaveData/SaveData. For the dedicated save-creation code with SaveData/DeviceSaveData, this value comes from an input param with official user-processes. For BcatSaveData, this is the hard-coded [[Title_list|titleID]] of the bcat-sysmodule.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4&lt;br /&gt;
| Written using an input param for official user-processes. Hard-coded 0 for BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x1&lt;br /&gt;
| Official user-processes only uses 0 here for SystemSaveData, 1 for SaveData/DeviceSaveData/BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x1A&lt;br /&gt;
| Not initialized for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
= DeviceSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8, the only difference compared to SaveData is the Save-struct.&lt;br /&gt;
&lt;br /&gt;
= BcatSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8. The Save-struct is the same as DeviceSaveData, except that the titleID field is set to &amp;lt;input titleID&amp;gt;. See above regarding SaveCreate-struct.&lt;br /&gt;
&lt;br /&gt;
The 0x10-byte struct passed to [[#CreateSaveDataFileSystem]] has the first 0x5-bytes set to all-zero.&lt;br /&gt;
&lt;br /&gt;
= SaveDataInfo =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Unknown saveID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA&lt;br /&gt;
| 0x6&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| userID&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x8&lt;br /&gt;
| saveID, 0 for regular SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| Application titleID, for regular SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| Raw saveimage size&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x2&lt;br /&gt;
| Save data index&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 0x1&lt;br /&gt;
| Save data &#039;rank&#039; or &#039;precedence&#039;. 0 if this save data is considered the primary save data. 1 if it&#039;s considered the secondary save data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x41&lt;br /&gt;
| 0x25&lt;br /&gt;
| Unknown. Usually zeros?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a 0x60-byte struct.&lt;br /&gt;
&lt;br /&gt;
= SaveDataFileSystemExtraData =&lt;br /&gt;
This is a 0x200-byte struct. Appears to match [[Savegames#Extra_data]].&lt;br /&gt;
&lt;br /&gt;
= InitialDataVersion2 =&lt;br /&gt;
This is a 0x8210-byte struct used by [[#ISaveDataTransferManagerWithDivision]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=6336</id>
		<title>Filesystem services</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Filesystem_services&amp;diff=6336"/>
		<updated>2019-03-04T22:33:25Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* DirectoryEntry */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= fsp-ldr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxyForLoader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Arguments || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || OpenCodeFileSystem || u64 TitleId + X descriptor [[#ContentPath]] || Returns an [[#IFileSystem]].&lt;br /&gt;
|-&lt;br /&gt;
| 1 || IsArchivedProgram || u64 ProcessId || Returns a bool (1 if the process id&#039;s [[#ContentPath]] ends in &amp;quot;.nca&amp;quot;).&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] SetCurrentProcess || PID descriptor ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= fsp-pr =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IProgramRegistry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#RegisterProgram]] ||&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#UnregisterProgram]] ||&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [4.0.0+] SetCurrentProcess ||&lt;br /&gt;
|-&lt;br /&gt;
| 256 || [[#SetEnabledProgramVerification]] ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== RegisterProgram ==&lt;br /&gt;
Takes a storageID, a pid, a titleID, a 0x1C type-A buffer for the [[NPDM#FS_Access_Header| FS Access Header]], and a 0x2C type-A buffer for the [[NPDM#FS_Access_Control| FS Access Control]]&lt;br /&gt;
&lt;br /&gt;
Final FS permissions are stored as (ACI0_perms &amp;amp; ACID_perms). Will panic(svcBreak) when buffer sizes from ipc-rawdata are invalid.&lt;br /&gt;
&lt;br /&gt;
== UnregisterProgram ==&lt;br /&gt;
Takes a pid. Removes registered FS permissions for that PID.&lt;br /&gt;
&lt;br /&gt;
== SetEnabledProgramVerification ==&lt;br /&gt;
Seems to sets a global flag to inputval &amp;amp; 1.&lt;br /&gt;
&lt;br /&gt;
When the flag is zero, it will set ret=0 instead of ret={error} when verifying the fixed-key [[NPDM]] ACID signature fails. This also skips verifying the [[NCA_Format|NCA Header]] signature using the ACID key. Note that if verifying the fixed-key ACID signature is successful, and verifying the ACID-key NCA header signature fails, it will throw an error and abort.&lt;br /&gt;
&lt;br /&gt;
= fsp-srv =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystemProxy&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [1.0.0] [[#OpenFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#SetCurrentProcess]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || OpenDataFileSystemByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [2.0.0+] [[#OpenFileSystemWithPatch]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [2.0.0+] [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [3.0.0+] OpenDataFileSystemByApplicationId&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || InvalidateBisCache&lt;br /&gt;
|-&lt;br /&gt;
| 17 || OpenHostFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 18 || OpenSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 19 || [2.0.0+] FormatSdCardFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 21 || [[#DeleteSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 22 || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 23 || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 24 || RegisterSaveDataFileSystemAtomicDeletion&lt;br /&gt;
|-&lt;br /&gt;
| 25 || [2.0.0+] DeleteSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 26 || [2.0.0+] FormatSdCardDryRun&lt;br /&gt;
|-&lt;br /&gt;
| 27 || [2.0.0+] IsExFatSupported&lt;br /&gt;
|-&lt;br /&gt;
| 28 || [4.0.0+] DeleteSaveDataFileSystemBySaveDataAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 30 || [[#OpenGameCardStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 31 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [3.0.0+] ExtendSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [5.0.0+] DeleteCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [5.0.0+] GetCacheStorageSize&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] CreateSaveDataFileSystemByHashSalt (Unofficial name, takes a total of 0xB0-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 51 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 52 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 53 || [2.0.0+] OpenReadOnlySaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 57 || [3.0.0+] [[#ReadSaveDataFileSystemExtraDataBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 58 || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 59 || [2.0.0+] WriteSaveDataFileSystemExtraData&lt;br /&gt;
|-&lt;br /&gt;
| 60 || [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 61 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 62 || [5.0.0+] OpenCacheStorageList&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [5.0.0+] OpenSaveDataInternalStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [5.0.0+] UpdateSaveDataMacForDebug&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [5.0.0+] WriteSaveDataFileSystemExtraData2&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] FindSaveDataWithFilter (Takes a total of 0x50-bytes of input, returns 8-bytes of output, and a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] OpenSaveDataInfoReaderBySaveDataFilter (Unofficial name, takes a total of 0x50-bytes of input, returns an #ISaveDataInfoReader)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || OpenSaveDataMetaFile&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [4.0.0+] OpenSaveDataTransferManager (No input, returns an [[#ISaveDataTransferManager]])&lt;br /&gt;
|-&lt;br /&gt;
| 82 || [5.0.0+] OpenSaveDataTransferManagerVersion2 (No input, returns an [[#ISaveDataTransferManagerWithDivision]])&lt;br /&gt;
|-&lt;br /&gt;
| 83 || [6.0.0+] OpenSaveDataTransferProhibiterForCloudBackUp (Takes an input u64, returns an [[#ISaveDataTransferProhibiter]])&lt;br /&gt;
|-&lt;br /&gt;
| 84 || [6.0.0+] ListApplicationAccessibleSaveDataOwnerId (Takes a total of 0x10-bytes of input, returns 4-bytes of output, and a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 100 || OpenImageDirectoryFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 110 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 120 || [6.0.0+] OpenCloudBackupWorkStorageFileSystem (Takes 4-bytes of input, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 130 || [7.0.0+] OpenCustomStorageFileSystem (Takes 4-bytes of input, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 200 || OpenDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 201 || [3.0.0+] OpenDataStorageByProgramId&lt;br /&gt;
|-&lt;br /&gt;
| 202 || [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 203 || OpenPatchDataStorageByCurrentProcess&lt;br /&gt;
|-&lt;br /&gt;
| 204 || [7.0.0+] ? (Takes an input u8, returns an [[#IFileSystem]])&lt;br /&gt;
|-&lt;br /&gt;
| 205 || [7.0.0+] ? (Takes an input u8, returns an [[#IStorage]])&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [[#OpenDeviceOperator]]&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| 510 || [5.0.0+] OpenSystemDataUpdateEventNotifier&lt;br /&gt;
|-&lt;br /&gt;
| 511 || [5.0.0+] NotifySystemDataUpdateEvent&lt;br /&gt;
|-&lt;br /&gt;
| 520 || [6.0.0+] SimulateGameCardDetectionEvent (Takes a total of 0xC-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 600 || [1.0.0-3.0.2] SetCurrentPosixTime&lt;br /&gt;
|-&lt;br /&gt;
| 601 || QuerySaveDataTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 602 || [[#VerifySaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 603 || CorruptSaveDataFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 604 || CreatePaddingFile&lt;br /&gt;
|-&lt;br /&gt;
| 605 || DeleteAllPaddingFiles&lt;br /&gt;
|-&lt;br /&gt;
| 606 || [2.0.0+] GetRightsId&lt;br /&gt;
|-&lt;br /&gt;
| 607 || [2.0.0+] RegisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 608 || [2.0.0+] UnregisterAllExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 609 || [2.0.0+] GetRightsIdByPath&lt;br /&gt;
|-&lt;br /&gt;
| 610 || [3.0.0+] GetRightsIdAndKeyGenerationByPath&lt;br /&gt;
|-&lt;br /&gt;
| 611 || [4.0.0+] SetCurrentPosixTimeWithTimeDifference&lt;br /&gt;
|-&lt;br /&gt;
| 612 || [4.0.0+] GetFreeSpaceSizeForSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 613 || [4.0.0+] VerifySaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 614 || [4.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId&lt;br /&gt;
|-&lt;br /&gt;
| 615 || [5.0.0+] QuerySaveDataInternalStorageTotalSize&lt;br /&gt;
|-&lt;br /&gt;
| 616 || [6.0.0+] [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| 617 || [7.0.0+] UnregisterExternalKey&lt;br /&gt;
|-&lt;br /&gt;
| 620 || [2.0.0+] [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| 630 || [4.0.0+] SetSdCardAccessibility&lt;br /&gt;
|-&lt;br /&gt;
| 631 || [4.0.0+] IsSdCardAccessible&lt;br /&gt;
|-&lt;br /&gt;
| 640 || [4.0.0+] IsSignedSystemPartitionOnSdCardValid&lt;br /&gt;
|-&lt;br /&gt;
| 700 || [5.0.0+] OpenAccessFailureResolver&lt;br /&gt;
|-&lt;br /&gt;
| 701 || [5.0.0+] GetAccessFailureDetectionEvent&lt;br /&gt;
|-&lt;br /&gt;
| 702 || [5.0.0+] IsAccessFailureDetected&lt;br /&gt;
|-&lt;br /&gt;
| 710 || [5.0.0+] ResolveAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 720 || [5.0.0+] AbandonAccessFailure&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [2.0.0+] GetAndClearFileSystemProxyErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [7.0.0+] RegisterProgramIndexMapInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1000 || SetBisRootForHost&lt;br /&gt;
|-&lt;br /&gt;
| 1001 || SetSaveDataSize&lt;br /&gt;
|-&lt;br /&gt;
| 1002 || SetSaveDataRootPath&lt;br /&gt;
|-&lt;br /&gt;
| 1003 || DisableAutoSaveDataCreation&lt;br /&gt;
|-&lt;br /&gt;
| 1004 || [[#SetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1005 || [[#GetGlobalAccessLogMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 1006 || [[#OutputAccessLogToSdCard]]&lt;br /&gt;
|-&lt;br /&gt;
| 1007 || [4.0.0+] RegisterUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1008 || [4.0.0+] OpenRegisteredUpdatePartition&lt;br /&gt;
|-&lt;br /&gt;
| 1009 || [4.0.0+] GetAndClearMemoryReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 1010 || [5.1.0-6.2.0] SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| 1011 || [7.0.0+] (no input, returns two 32-bit values, second is &amp;quot;program_index&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 1100 || [4.0.0+] OverrideSaveDataTransferTokenSignVerificationKey&lt;br /&gt;
|-&lt;br /&gt;
| 1110 || [6.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId2&lt;br /&gt;
|-&lt;br /&gt;
| 1200 || [6.0.0+] OpenMultiCommitManager (No input, returns an output #IMultiCommitManager)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
Every time permissions are checked, the process registration [[#fsp-pr]] is loaded using the session processID. The permission data is populated with data from the [[NPDM]].&lt;br /&gt;
&lt;br /&gt;
If the processID is &amp;lt;= 6 (which happens only for built-in sysmodules), it will use a hardcoded registration data. The default mask in this case is 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
Note that the functions check whether or not at least one bit is set in the mask. This means that, you don&#039;t need to set 0xFFFFFFFFFFFFFFFF to get all permissions: it suffices to set 0x8000000000000000.&lt;br /&gt;
&lt;br /&gt;
If the code were to request an invalid input type, panic. But this never happens.&lt;br /&gt;
&lt;br /&gt;
=== RwPermissions ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type(s) || Mask || Name || Value || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000801 || CanMountLogo || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000801 || CanMountContentMeta || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000801 || CanMountContentControl || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000801 || CanMountContentManual || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000801 || CanMountContentData || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000801 || CanMountApplicationPackage || 1 || [[#OpenFileSystem]], [[#OpenFileSystemWithPatch]], [[#OpenFileSystemWithId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000000000 || CanMountSaveDataStorage || 3 ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000800 || CanMountContentStorage || 3 || [[#OpenContentStorageFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000001000 || CanMountImageAndVideoStorage || 3 || [[#OpenImageDirectoryFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanMountCloudBackupWorkStorage || 3 || OpenCloudBackupWorkStorageFileSystem&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000000084&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountBisCalibrationFile || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000008080) || CanMountBisSafeMode || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000008080 || CanMountBisUser || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000008080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanMountBisSystem || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanMountBisSystemProperEncryption || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000010) || CanMountBisSystemProperPartition || 3 || [[#OpenBisFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0xC000000000200000&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000010)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000040020) || CanMountSdCard || 3 || [[#OpenSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x8000000000000010&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000040020)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000028) || CanMountGameCard || 3 || [[#OpenGameCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000040020&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000020) || CanMountDeviceSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0x8000000000000028&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000020) || CanMountSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x8000000000000020&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010082) || CanMountOthersSaveData || 3 || [[#OpenSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0x8000000000000020&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000010082)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanMountOthersSystemSaveData || 3 || [[#OpenSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0x8000000000010082&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition1Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0x8000000000010080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000080)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000010080) || CanOpenBisPartitionBootPartition2Root || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010080) || CanOpenBisPartitionUserDataRoot || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part1 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part2 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part3 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x8000000000010080 || CanOpenBisPartitionBootConfigAndPackage2Part4 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part5 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x8000000000010080&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000084) || CanOpenBisPartitionBootConfigAndPackage2Part6 || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || 0x8000000000000084&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationBinary || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x8000000000000084&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000080) || CanOpenBisPartitionCalibrationFile || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0x8000000000000080 || CanOpenBisPartitionSafeMode || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0x8000000000000080 || CanOpenBisPartitionUser || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000200000) || CanOpenBisPartitionSystem || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x8000000000000080&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000000100) || CanOpenBisPartitionSystemProperEncryption || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0x8000000000000080&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0xC000000000200000)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0x8000000000100008) || CanOpenBisPartitionSystemProperPartition || 3 || [[#OpenBisStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0xC000000000200000&amp;lt;br/&amp;gt;([3.0.0-5.1.0] 0x8000000000000100)&amp;lt;br/&amp;gt;([1.0.0-2.3.0] 0xC000000000400000) || CanOpenSdCardStorage || ||&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x27 || 0x8000000000000100&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000100008) || CanOpenGameCardStorage || 3 || [[#OpenGameCardStorage]],  [[#EraseGameCard]] (bit1), [[#WriteToGameCard]] (bit1), [[#GetGameCardErrorInfo]] (bit1), [[#EraseAndWriteParamDirectly]] (bit1), [[#ReadParamDirectly]] (bit1), [[#ForceEraseGameCard]] (bit1)&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x28 || 0x8000000000100008&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000400000) || CanMountSystemDataPrivate || 1 || [[#OpenFileSystem]], [[#OpenDataStorageByDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x29 || 0xC000000000400000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000010000) || CanMountHost || 3 || [[#OpenHostFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0x8000000000010000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanMountRegisteredUpdatePartition || 1 || [[#OpenRegisteredUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x2B || 0x8000000000000000 || CanOpenSaveDataInternalStorage || 3 || [[#OpenSaveDataInternalStorageFileSystem]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BoolPermissions ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type(s) || Mask || Name || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8000000000000080 || CanInvalidateBisCache || [[#InvalidateBisCache]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x8000000000000080 || CanEraseMmc || [[#EraseMmc]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x8000000000000010 || CanGetGameCardDeviceCertificate || [[#GetGameCardDeviceCertificate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x8000000000000010 || CanGetGameCardIdSet || [[#GetGameCardIdSet]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x8000000000000200 || CanFinalizeGameCardDriver || [[#FinalizeGameCardDriver]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x8000000000000200 || CanGetGameCardAsicInfo || [[#GetGameCardAsicInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x8000000000002020 || CanCreateSaveData || [[#CreateSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x8000000000000060 || CanDeleteSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8000000000000028 || CanCreateSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x8000000000000020 || CanCreateOthersSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x8000000000004028 || CanDeleteSystemSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x8000000000000060 || CanOpenSaveDataInfoReader || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x8000000000004020 || CanOpenSaveDataInfoReaderForSystem || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x8000000000000040&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000020000) || || OpenSaveDataInfoReaderBySaveDataFilter&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x8000000000020000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000400) || CanOpenSaveDataMetaFile || [[#OpenSaveDataMetaFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x8000000000000400&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000004060) || CanSetCurrentPosixTime || [[#SetCurrentPosixTime]], [[#SetCurrentPosixTimeWithTimeDifference]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8000000000004060&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000080000) || CanReadSaveDataFileSystemExtraData || [[#ReadSaveDataFileSystemExtraData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x8000000000080000 || CanSetGlobalAccessLogMode || [[#SetGlobalAccessMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x8000000000080000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] Invalid) || CanSetSpeedEmulationMode || [[#SetSpeedEmulationMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || Invalid&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000000800000) || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0xC000000000800000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0xC000000001000000) || CanFillBis || [[#CreatePaddingFile]], [[#DeleteAllPaddingFiles]] &lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0xC000000001000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000001000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0xC000000002000000) || CanCorruptSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x16 || 0x8000000001000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000060)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000004000000) || CanCorruptSystemSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x17 || 0x8000000000000060&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0xC000000002000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000008000000) || CanVerifySaveData || [[#VerifySaveDataFileSystem]], [[#VerifySaveDataFileSystemBySaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x18 || 0xC000000002000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000004000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000010000000) || CanDebugSaveData || [[#CreateSaveDataFileSystem]], [[#OpenSaveDataFileSystem]], [[#SetSaveDataRootPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x19 || 0x8000000004000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000008000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000800) || CanFormatSdCard || [[#FormatSdCardFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x1A || 0x8000000008000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000010000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000004020) || CanGetRightsId || [[#GetRightsId]], [[#GetRightsIdAndKeyGenerationByPath]], [[#GetRightsIdByPath]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1B || 0x8000000010000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000800)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000002020) || CanRegisterExternalKey || [[#RegisterExternalKey]], [[#UnregisterAllExternalKey]]&lt;br /&gt;
|-&lt;br /&gt;
| [3.0.0+] 0x1C || 0x8000000000000800&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000004020)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000028) || CanSetEncryptionSeed || [[#SetSdCardEncryptionSeed]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1D || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000020000000) || SaveDataExtraData_Write0 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1E || 0x8000000000004020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000002020)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000040000000) || CanWriteSaveDataFileSystemExtraDataFlags || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x1F || 0x8000000000000020&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000000000028)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000000) || SaveDataExtraData_Write1 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 0x20 || 0x8000000000000000&amp;lt;br/&amp;gt;([5.0.0-5.1.0] 0x8000000020000000)&amp;lt;br/&amp;gt;([1.0.0-4.1.0] 0x8000000000000000) || CanWriteSaveDataFileSystemExtraDataAll || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x21 || 0x8000000000002020&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanExtendSaveData || [[#ExtendSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x22 || 0x8000000000000028&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000002) || CanExtendSystemSaveData || [[#ExtendSaveDataFileSystem]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x23 || 0x8000000020000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanRegisterUpdatePartition || [[#RegisterUpdatePartition]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x24 || 0x8000000040000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000000000) || CanOpenSaveDataTransferManager || [[#OpenSaveDataTransferManager]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x25 || 0x8000000200000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanOpenSaveDataTransferManagerVersion2 || [[#OpenSaveDataTransferManagerVersion2]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x26 || 0x8000000200002000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080000110) || CanOpenSaveDataTransferProhibiterForCloudBackUp || [[#OpenSaveDataTransferProhibiterForCloudBackUp]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x27 || 0x8000000200002000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000000100008) || CanListApplicationAccessibleSaveDataOwnerId || ListApplicationAccessibleSaveDataOwnerId&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x28 || 0x8000000000000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080010000) || CanControlMmcPatrol || [[#SuspendMmcPatrol]], [[#ResumeMmcPatrol]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x29 || 0x8000000000000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOverrideSaveDataTransferTokenSignVerificationKey || [[#OverrideSaveDataTransferTokenSignVerificationKey]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2A || 0x8000000080200000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSdCardDetectionEventNotifier || [[#OpenSdCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2B || 0x8000000080000110&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenGameCardDetectionEventNotifier || [[#OpenGameCardDetectionEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2C || 0x8000000000100008&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSystemDataUpdateEventNotifier || [[#OpenSystemDataUpdateEventNotifier]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2D || 0x8000000000010000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x0000000080000001) || CanNotifySystemDataUpdateEvent || [[#NotifySystemDataUpdateEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2E || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000040000000) || CanOpenAccessFailureDetectionEventNotifier || [[#OpenAccessFailureResolver]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x2F || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080200000) || CanGetAccessFailureDetectionEvent || [[#GetAccessFailureDetectionEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| [5.1.0+] 0x30 || 0x8000000100000000&amp;lt;br/&amp;gt;([1.0.0-5.1.0] 0x8000000080080000) || CanIsAccessFailureDetected || [[#IsAccessFailureDetected]] &lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x31 || 0x8000000100000000 || CanResolveAccessFailure || [[#ResolveAccessFailure]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x32 || 0x8000000100000000 || CanAbandonAccessFailure || [[#AbandonAccessFailure]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x33 || 0x8000000040000000 || CanQuerySaveDataInternalStorageTotalSize || [[#QuerySaveDataInternalStorageTotalSize]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x34 || 0x8000000200000020 || CanGetSaveDataCommitId || [[#GetSaveDataCommitId]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x35 || 0x8000000000200000 || CanSetSdCardAccessibility || [[#SetSdCardAccessibility]]&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x36 || 0x4000000000000000 || || SimulateGameCardDetectionEvent, SetGameCardSimulationEvent, ClearGameCardSimulationEvent&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x37 || 0x8000000000080000 || CanSetDataStorageRedirectTarget || SetDataStorageRedirectTarget&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x38 || 0x8000000000000000 || || [[#CreateSaveDataFileSystem]], CreateSaveDataFileSystemByHashSalt&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer (ContentPath) and a [[#FileSystemType]] as parameters. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
[2.0.0+] This function was removed.&lt;br /&gt;
&lt;br /&gt;
== SetCurrentProcess ==&lt;br /&gt;
Takes a pid-descriptor.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithPatch ==&lt;br /&gt;
Takes an input [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Web-applet loads the [[#FileSystemType]] (which must be &#039;&#039;&#039;ContentManual&#039;&#039;&#039;) from u32_table[inparam].&lt;br /&gt;
&lt;br /&gt;
Note: web-applet strings refer to both this cmd and [[#OpenFileSystemWithId]] as &amp;quot;MountContent&amp;quot;, but official nn_sf_sync symbols use &amp;quot;OpenXX&amp;quot; names.&lt;br /&gt;
&lt;br /&gt;
== OpenFileSystemWithId ==&lt;br /&gt;
Takes a type-0x19 input buffer, an [[#FileSystemType]] and an u64 title-id. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
The [[#IFileSystem]] must be &#039;&#039;&#039;ContentMeta&#039;&#039;&#039; if the NCA type is 0 (control).&lt;br /&gt;
&lt;br /&gt;
The input buffer is the output string path from [[NS_Services#GetApplicationContentPath|GetApplicationContentPath]].&lt;br /&gt;
&lt;br /&gt;
May return errors when attempting to access NCA-paths for an update-title with a gamecard, when the gamecard isn&#039;t inserted. May return error 0x7D402 in some cases with update-titles. Non-val2 in32 values with NCA-type1 are unusable, even for normal titles.&lt;br /&gt;
&lt;br /&gt;
The official &amp;quot;MountApplicationPackage&amp;quot; func uses this with in64=0 and [[#FileSystemType]] &#039;&#039;&#039;ApplicationPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
After the [[#FileSystemType]] specific permissions are checked, it then gets the func retval for permissions-type 0x25 and func0.&lt;br /&gt;
&lt;br /&gt;
When [[#FileSystemType]] is &#039;&#039;&#039;ContentMeta&#039;&#039;&#039;, it uses in64=0xffffffffffffffff internally, otherwise it checks if in64 is set to 0xffffffffffffffff then throws an error if so. When the in64 used internally is not 0xffffffffffffffff, it&#039;s compared with the NCA titleID, then an error is thrown on mismatch.&lt;br /&gt;
&lt;br /&gt;
== OpenBisFileSystem ==&lt;br /&gt;
Takes a type-0x19 input buffer string and a u32 [[Flash_Filesystem|Bis partitionID]]. Official user-process code sets instr[0] = 0 normally. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Only partitionIDs for FAT partitions are usable with this, otherwise error 0x2EE202 is returned. Seems to be about the same as [[#OpenBisStorage]] except this mounts the partition filesystem instead of allowing direct access to the partition sectors.&lt;br /&gt;
&lt;br /&gt;
== OpenBisStorage ==&lt;br /&gt;
Takes a u32 partition ID, returns 0x2EE202 for partitions which do not exist, 0x320002 for partitions which cannot be opened and a valid [[#IStorage]] handle otherwise.&lt;br /&gt;
&lt;br /&gt;
== InvalidateBisCache ==&lt;br /&gt;
Seems to invalidate the Bis cache for MBR/GPT after overwriting that data via the OpenBisStorage IStorage. Used by [[SystemInitializer]].&lt;br /&gt;
&lt;br /&gt;
== DeleteSaveDataFileSystem ==&lt;br /&gt;
Takes an input u64.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystem ==&lt;br /&gt;
Takes a 0x40-byte Save-struct entry, a 0x40-byte SaveCreate-struct entry, and a 0x10-byte input struct.&lt;br /&gt;
&lt;br /&gt;
Only the first 0x5-bytes in the 0x10-byte struct are initialized: all-zero when automatically creating savedata during savecommon mount by official user-processes. In the dedicated save-creation code in official user-processes: +0 u32 = 0x40060, +4 u8 = 1.&lt;br /&gt;
&lt;br /&gt;
Creates regular savedata.&lt;br /&gt;
&lt;br /&gt;
== CreateSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes a 0x40-byte Save-struct entry and a 0x40-byte SaveCreate-struct entry.&lt;br /&gt;
&lt;br /&gt;
Creates savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardStorage ==&lt;br /&gt;
Takes two input u32s (gamecard handle, partition ID), and returns an [[#IStorage]] for the [[Gamecard_Format|partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardFileSystem ==&lt;br /&gt;
Takes two input u32s, with the second u32 located at +4 in rawdata after the first u32. Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts a [[Gamecard_Partition|gamecard partition]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystem ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte Save-struct entry. Official user-process code is only known to use value 1 for the u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Permissions aren&#039;t checked until the specified save is successfully found.&lt;br /&gt;
&lt;br /&gt;
Only one process (specifically only one [[#IFileSystem]] session) can mount a given savedata at any given time (this includes SystemSaveData).&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFileSystemBySystemSaveDataId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x40-byte Save-struct entry. Web-applet only uses value0 for the input u8.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]].&lt;br /&gt;
&lt;br /&gt;
Mounts savedata in the SYSTEM [[Flash_Filesystem|NAND]] partition.&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraDataBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an input u64 saveID, and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataFileSystemExtraData ==&lt;br /&gt;
Takes an input u64 saveID and a type-0x6 output buffer containing the [[#SaveDataFileSystemExtraData]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReader ==&lt;br /&gt;
No input, returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataInfoReaderBySaveDataSpaceId ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], returns an output [[#ISaveDataInfoReader]].&lt;br /&gt;
&lt;br /&gt;
== OpenContentStorageFileSystem ==&lt;br /&gt;
Takes a [[#ContentStorageId]]. Invalid values return 0x2EE202.&lt;br /&gt;
&lt;br /&gt;
Returns an [[#IFileSystem]] with NCA files. The read data from these files is identical to the data read by [[NCM_services#ReadContentIdFile]].&lt;br /&gt;
&lt;br /&gt;
== OpenDataStorageByDataId ==&lt;br /&gt;
Takes a [[#StorageId]] and a TitleID.&lt;br /&gt;
&lt;br /&gt;
Returns a [[IPC_Marshalling#Domain_message|domain object ID]] implementing the [[#IStorage]] interface for data archives.&lt;br /&gt;
&lt;br /&gt;
== OpenDeviceOperator ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IDeviceOperator]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenSdCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== OpenGameCardDetectionEventNotifier ==&lt;br /&gt;
This command returns a session to a port implementing the [[#IEventNotifier]] interface.&lt;br /&gt;
&lt;br /&gt;
== VerifySaveDataFileSystem ==&lt;br /&gt;
Takes an unknown input u64 and a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
The input u64 high-byte must be non-zero, otherwise an [[Error_codes|error]] is returned(0xE02).&lt;br /&gt;
&lt;br /&gt;
== GetSaveDataCommitId ==&lt;br /&gt;
Takes an input u8 and u64, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== SetSdCardEncryptionSeed ==&lt;br /&gt;
Takes in the 0x10 byte SD card encryption seed, and loads it into FS-module state.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]]-module reads the 0x10 bytes from SdCard:/Nintendo/Contents/private, and compares them to the first 0x10 bytes of the ns_appman:/private (in [[Flash_Filesystem#System_Savegames|system savedata]] 0x8000000000000043). If they match, NS calls this command using bytes 0x10-0x20 from ns_appman:/private. The rest of this file (0x1F0 bytes total) is (usually/always?) all-zero (however in some cases the byte at offset 0x20 is value 0x1).&lt;br /&gt;
&lt;br /&gt;
== SetGlobalAccessLogMode ==&lt;br /&gt;
Takes an input u32.&lt;br /&gt;
&lt;br /&gt;
== GetGlobalAccessLogMode ==&lt;br /&gt;
Returns an output u32.&lt;br /&gt;
&lt;br /&gt;
GlobalAccessLogMode is normally 0.&lt;br /&gt;
&lt;br /&gt;
== OutputAccessLogToSdCard ==&lt;br /&gt;
Takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
The input buffer is the string to output to the log. User-processes normally include a newline at the end.&lt;br /&gt;
&lt;br /&gt;
User-processes only use this when the value previously loaded from [[#GetGlobalAccessLogMode]] has bit1 set.&lt;br /&gt;
&lt;br /&gt;
When bit1 in GlobalAccessLogMode is clear, FS-module will just return 0 for OutputAccessLogToSdCard. However even with that set the log doesn&#039;t show up SD, unknown why.&lt;br /&gt;
&lt;br /&gt;
The input buffer is written to the &amp;quot;$FsAccessLog:/FsAccessLog.txt&amp;quot; file, where &amp;quot;$FsAccessLog&amp;quot; is the SD-card mount-name. It&#039;s written to the current end of the file(appended).&lt;br /&gt;
&lt;br /&gt;
= IStorage =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IStorage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This is the interface for a raw device, usually a block device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name || Arguments&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read || Takes a type-0x46 buffer, an offset and length &lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write || Takes a type-0x45 buffer, an offset and length &lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush || None&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize || Takes a size&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize || None&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFileSystem =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFileSystem&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There are two main implementations of this interface:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RomFS&#039;&#039;&#039;: Filesystem implementation statically linked in the binary. Uses an [[#IStorage]] interface as underlying raw device.&lt;br /&gt;
* &#039;&#039;&#039;IPC proxy&#039;&#039;&#039;: Used for all non-RomFS filesystems. In this case, actual filesystem implementation is in the FS process.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || CreateFile&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DeleteFile&lt;br /&gt;
|-&lt;br /&gt;
| 2 || CreateDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeleteDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 4 || DeleteDirectoryRecursively&lt;br /&gt;
|-&lt;br /&gt;
| 5 || RenameFile&lt;br /&gt;
|-&lt;br /&gt;
| 6 || RenameDirectory&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [[#GetEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [[#OpenFile]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [[#OpenDirectory]]&lt;br /&gt;
|-&lt;br /&gt;
| 10 || [[#Commit]]&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[#GetFreeSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#GetTotalSpaceSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || [3.0.0+] [[#CleanDirectoryRecursively]]&lt;br /&gt;
|-&lt;br /&gt;
| 14 || [3.0.0+] [[#GetFileTimeStampRaw]]&lt;br /&gt;
|-&lt;br /&gt;
| 15 || [4.0.0+] QueryEntry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetEntryType ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns [[#DirectoryEntryType]] as an output u32.&lt;br /&gt;
&lt;br /&gt;
== OpenFile ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path, and an u32 &#039;&#039;&#039;mode&#039;&#039;&#039;. &#039;&#039;&#039;mode&#039;&#039;&#039; controls how the file is opened, based on which bits are set:&lt;br /&gt;
&lt;br /&gt;
* When bit 0 is set, the file is Readable: you can use the Read operation.&lt;br /&gt;
* When bit 1 is set, the file is Writable: you can use the Write operation.&lt;br /&gt;
* When bit 2 is set, the file is Appendable: unless this bit is set, you will not be able to write beyond the end of a file (such writes will result in an error 0x307202)&lt;br /&gt;
&lt;br /&gt;
== OpenDirectory ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and an u64 &#039;&#039;&#039;filter_flags&#039;&#039;&#039;. &#039;&#039;&#039;filter_flags&#039;&#039;&#039; controls what type of entries are read by the [[#IDirectory]]: bitmask 0x1 = directories, bitmask 0x2 = files.&lt;br /&gt;
&lt;br /&gt;
== Commit ==&lt;br /&gt;
Like [https://3dbrew.org/wiki/FS:ControlArchive 3DS], this has to be used after writing to savedata for the changes to take affect.&lt;br /&gt;
&lt;br /&gt;
== GetFreeSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total free space with this FS.&lt;br /&gt;
&lt;br /&gt;
== GetTotalSpaceSize ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and returns an output byte-size u64 for the total space available with this FS(free+used).&lt;br /&gt;
&lt;br /&gt;
== CleanDirectoryRecursively ==&lt;br /&gt;
Takes a type-0x9 input buffer for the path and clears the contents of the directory specified in the path.&lt;br /&gt;
&lt;br /&gt;
== GetFileTimeStampRaw ==&lt;br /&gt;
Takes a type-0x19 input buffer for the path and returns a 0x20-byte struct. This contains 3 u64s and an u8.&lt;br /&gt;
&lt;br /&gt;
= IDirectory =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDirectory&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Read]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetEntryCount]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Read ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64(?) for the total number of read entries, this is 0 when no more entries are available.&lt;br /&gt;
&lt;br /&gt;
The output buffer contains the read array of [[#DirectoryEntry]]. This doesn&#039;t include entries for &amp;quot;.&amp;quot; and &amp;quot;..&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== GetEntryCount ==&lt;br /&gt;
Returns an u64 for the total number of readable entries.&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntry =&lt;br /&gt;
This is &amp;quot;nn::fs::DirectoryEntry&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset || Size || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x301 || Path&lt;br /&gt;
|-&lt;br /&gt;
| 0x301 || 0x3 || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x304 || 0x1 || [[#DirectoryEntryType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x305 || 0x3 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x308 || 0x8 || Filesize, 0 for directories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= DirectoryEntryType =&lt;br /&gt;
&lt;br /&gt;
An s8 value indicating a directory entry type. The current values are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Directory&lt;br /&gt;
|-&lt;br /&gt;
| 1 || File&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= IFile =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IFile&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Read&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Flush&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SetSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [4.0.0+] OperateRange&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataInfoReader =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::ISaveDataInfoReader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#ReadSaveDataInfo]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ReadSaveDataInfo ==&lt;br /&gt;
Takes a type-0x6 output buffer. Returns an output u64 for total output entries. This buffer contains an array of [[#SaveDataInfo]].&lt;br /&gt;
&lt;br /&gt;
This is used to get [[#SaveDataInfo]] for all savedata on the system (or all savedata for the current [[#SaveDataSpaceId]]). When used multiple times, it will resume reading where it left off, until no more entries are available (in that case the out u64 is value 0).&lt;br /&gt;
&lt;br /&gt;
= IDeviceOperator =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IDeviceOperator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || IsSdCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GetSdCardSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [2.0.0+] GetSdCardCid&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [2.0.0+] GetSdCardUserAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [2.0.0+] GetSdCardProtectedAreaSize&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [2.0.0+] GetAndClearSdCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 100 || GetMmcCid&lt;br /&gt;
|-&lt;br /&gt;
| 101 || GetMmcSpeedMode&lt;br /&gt;
|-&lt;br /&gt;
| 110 || EraseMmc&lt;br /&gt;
|-&lt;br /&gt;
| 111 || GetMmcPartitionSize&lt;br /&gt;
|-&lt;br /&gt;
| 112 || [2.0.0+] GetMmcPatrolCount&lt;br /&gt;
|-&lt;br /&gt;
| 113 || [2.0.0+] GetAndClearMmcErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 114 || [2.0.0+] GetMmcExtendedCsd&lt;br /&gt;
|-&lt;br /&gt;
| 115 || [4.0.0+] SuspendMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 116 || [4.0.0+] ResumeMmcPatrol&lt;br /&gt;
|-&lt;br /&gt;
| 200 || IsGameCardInserted&lt;br /&gt;
|-&lt;br /&gt;
| 201 || EraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 202 || GetGameCardHandle&lt;br /&gt;
|-&lt;br /&gt;
| 203 || [[#GetGameCardUpdatePartitionInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 204 || FinalizeGameCardDriver&lt;br /&gt;
|-&lt;br /&gt;
| 205 || GetGameCardAttribute&lt;br /&gt;
|-&lt;br /&gt;
| 206 || GetGameCardDeviceCertificate&lt;br /&gt;
|-&lt;br /&gt;
| 207 || GetGameCardAsicInfo&lt;br /&gt;
|-&lt;br /&gt;
| 208 || GetGameCardIdSet&lt;br /&gt;
|-&lt;br /&gt;
| 209 || WriteToGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 210 || SetVerifyWriteEnalbleFlag&lt;br /&gt;
|-&lt;br /&gt;
| 211 || GetGameCardImageHash&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [2.0.0+] GetGameCardDeviceIdForProdCard&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [2.0.0+] EraseAndWriteParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [2.0.0+] ReadParamDirectly&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [2.0.0+] ForceEraseGameCard&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [2.0.0+] GetGameCardErrorInfo&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [2.1.0+] GetGameCardErrorReportInfo&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [3.0.0+] GetGameCardDeviceId&lt;br /&gt;
|-&lt;br /&gt;
| 300 || SetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 301 || GetSpeedEmulationMode&lt;br /&gt;
|-&lt;br /&gt;
| 400 || [5.0.0+] SuspendSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 401 || [5.0.0+] ResumeSdmmcControl&lt;br /&gt;
|-&lt;br /&gt;
| 402 || [6.0.0+] GetSdmmcConnectionStatus (Takes a total of 4-bytes of input, returns a total of 8-bytes of output)&lt;br /&gt;
|-&lt;br /&gt;
| 500 || [6.0.0+] SetSimulationEvent (Takes a total of 0x14-bytes of input, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 501 || [6.0.0+] ClearSimulationEvent (Takes a total of 4-bytes of input, no output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GetGameCardUpdatePartitionInfo ==&lt;br /&gt;
Returns a titleID and the title-version for it.&lt;br /&gt;
&lt;br /&gt;
* Output u32 with ARMS-gamecard: title-version v131162. This is the title-version for [[2.1.0]], which is the sysupdate included with this gamecard. Launch-day gamecards return title-version v450.&lt;br /&gt;
* Output u64 with ARMS-gamecard: titleID 0100000000000816.&lt;br /&gt;
&lt;br /&gt;
[[NS_Services|NS]] appears to only use this with [[Content_Manager_services#GetTitleIdInfo]] and [[Content_Manager_services#GetUpdateTitleList]] with storageid=nandsys, for checking whether a sysupdate is required.&lt;br /&gt;
&lt;br /&gt;
= IEventNotifier =&lt;br /&gt;
This is &amp;quot;nn::fssrv::sf::IEventNotifier&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || GetEventHandle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManager =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetToken]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataImporter]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
== SetToken ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64, returns an [[#ISaveDataExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and a 0x10-byte userID, and a type-0x5 input buffer. Returns an output u64 and an [[#ISaveDataImporter]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataExporter =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Pull]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#PullInitialData]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataExporter constructor. This is used automatically after [[#OpenSaveDataExporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Pull ==&lt;br /&gt;
Takes a type-0x6 output buffer, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== PullInitialData ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataImporter =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Initialize]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetRestSize]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#Push]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[#Finalize]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[4.0.0]].&lt;br /&gt;
&lt;br /&gt;
== Initialize ==&lt;br /&gt;
No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer.&lt;br /&gt;
&lt;br /&gt;
The actual name for this is the SaveDataImporter constructor. This is used automatically after [[#OpenSaveDataImporter]] by official sw.&lt;br /&gt;
&lt;br /&gt;
== GetRestSize ==&lt;br /&gt;
No input, returns an output u64.&lt;br /&gt;
&lt;br /&gt;
== Push ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer.&lt;br /&gt;
&lt;br /&gt;
== Finalize ==&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferManagerWithDivision =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#GetChallenge]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[#SetKeySeedPackage]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[#OpenSaveDataFullExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [[#OpenSaveDataDiffExporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] [[#OpenSaveDataExporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[#OpenSaveDataFullImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [[#OpenSaveDataDiffImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] [[#OpenSaveDataDuplicateDiffImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] [[#OpenSaveDataImporter]]&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [6.0.0+] [[#OpenSaveDataImporterByContext]]&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [6.0.0+] [[#CancelSuspendingImport]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
== GetChallenge ==&lt;br /&gt;
No input/output, takes a type-0x6 output buffer containing the &#039;&#039;&#039;Challenge&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== SetKeySeedPackage ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer containing the &#039;&#039;&#039;KeySeedPackage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFullExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]] and u64. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffExporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataExporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionExporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataFullImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], a 0x10-byte userID, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDiffImporter ==&lt;br /&gt;
Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]], returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataDuplicateDiffImporter ==&lt;br /&gt;
Takes an input u8 and an u64, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporter ==&lt;br /&gt;
Takes an input u8, an u8(bool), a 0x10-byte struct, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== OpenSaveDataImporterByContext ==&lt;br /&gt;
No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]].&lt;br /&gt;
&lt;br /&gt;
== CancelSuspendingImport ==&lt;br /&gt;
Takes an input u64 and a 0x10-byte struct, no output.&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionExporter =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SetDivisionCount (Takes an input u32, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [6.0.0+] GetSaveDataInfo (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || OpenSaveDataDiffChunkIterator (No input, returns an [[#ISaveDataChunkIterator]])&lt;br /&gt;
|-&lt;br /&gt;
| 48 || OpenSaveDataChunkExporter (Takes an input u32, returns an [[#ISaveDataChunkExporter]])&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] FinalizeFullExport (No input, returns two 0x10-byte output structs)&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [6.0.0+] FinalizeDiffExport (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [6.0.0+] CancelExport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [6.0.0+] SuspendExport (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [6.0.0+] GetKeySeed (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 71 || [6.0.0+] GetInitialDataMac (No input, returns an output 0x10-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 72 || [6.0.0+] FinalizeExport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] GetImportInitialDataAad (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [6.0.0+] SetExportInitialDataAad (Takes an input 0x20-byte struct, no output)&lt;br /&gt;
|-&lt;br /&gt;
| 96 || [6.0.0+] GetReportInfo (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataDivisionImporter =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [6.0.0+] GetSaveDataInfo (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || OpenSaveDataDiffChunkIterator (No input, returns an [[#ISaveDataChunkIterator]])&lt;br /&gt;
|-&lt;br /&gt;
| 32 || InitializeImport (No input, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
| 33 || FinalizeImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [6.0.0+] CancelImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [6.0.0+] GetImportContext (No input/output, takes a type-0x6 output buffer)&lt;br /&gt;
|-&lt;br /&gt;
| 36 || [6.0.0+] SuspendImport (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 48 || OpenSaveDataChunkImporter (Takes an input u32, returns an [[#ISaveDataChunkImporter]])&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [6.0.0+] GetImportInitialDataAad (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [6.0.0+] GetReportInfo (No input, returns an output 0x20-byte struct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkIterator =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Next (No input/output)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || IsEnd (No input, returns an output u8)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || GetId (No input, returns an output u32)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkExporter =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Pull (Takes an input u64 and a type-0x6 output buffer, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [6.0.0+] GetRestRawDataSize (No input, returns an output u64)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataChunkImporter =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Push (Takes an input u64 and a type-0x5 input buffer, no output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[5.0.0]].&lt;br /&gt;
&lt;br /&gt;
= ISaveDataTransferProhibiter =&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t seem to handle any commands (?).&lt;br /&gt;
&lt;br /&gt;
= IMultiCommitManager =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || ? (Takes an input [[#IFilesystem]], no output)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || ? (No input/output)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This was added with [[6.0.0]].&lt;br /&gt;
&lt;br /&gt;
= FileSystemType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Invalid&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Invalid&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Logo&lt;br /&gt;
|-&lt;br /&gt;
| 3 || ContentControl&lt;br /&gt;
|-&lt;br /&gt;
| 4 || ContentManual&lt;br /&gt;
|-&lt;br /&gt;
| 5 || ContentMeta&lt;br /&gt;
|-&lt;br /&gt;
| 6 || ContentData&lt;br /&gt;
|-&lt;br /&gt;
| 7 || ApplicationPackage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= StorageId =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || None&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GameCard&lt;br /&gt;
|-&lt;br /&gt;
| 3 || NandSystem&lt;br /&gt;
|-&lt;br /&gt;
| 4 || NandUser&lt;br /&gt;
|-&lt;br /&gt;
| 5 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentStorageId =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SaveDataSpaceId =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || System&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SdSystem&lt;br /&gt;
|-&lt;br /&gt;
| 100 || [3.0.0+] ProperSystem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Determines the storage where the savedata is stored.&lt;br /&gt;
&lt;br /&gt;
= SaveDataType =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SystemSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SaveData&lt;br /&gt;
|-&lt;br /&gt;
| 2 || BcatDeliveryCacheStorage&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DeviceSaveData&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [3.0.0+] TemporaryStorage&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [3.0.0+] CacheStorage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ImageDirectoryId =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= CloudBackupWorkStorageId =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nand&lt;br /&gt;
|-&lt;br /&gt;
| 1 || SdCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ContentPath =&lt;br /&gt;
These are the 0x300 paths to NCA files for the various filesystems FS can access, beginning with @. They&#039;re passed via X descriptors, and returned via various [[Location Resolver services|ncm/lr]] commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Path || Notes&lt;br /&gt;
|-&lt;br /&gt;
| @SystemContent ||&lt;br /&gt;
|- &lt;br /&gt;
| @UserContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @SdCardContent ||&lt;br /&gt;
|-&lt;br /&gt;
| @CalibFile ||&lt;br /&gt;
|-&lt;br /&gt;
| @Safe ||&lt;br /&gt;
|-&lt;br /&gt;
| @User ||&lt;br /&gt;
|-&lt;br /&gt;
| @System ||&lt;br /&gt;
|-&lt;br /&gt;
| @Sdcard ||&lt;br /&gt;
|-&lt;br /&gt;
| @Host ||&lt;br /&gt;
|-&lt;br /&gt;
| @GcApp || Gamecard App partition (Partition 2)&lt;br /&gt;
|-&lt;br /&gt;
| @GcS00000001 || Gamecard Contents.&lt;br /&gt;
|-&lt;br /&gt;
| @upp || Gamecard update partition (Partition 0)&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] @RegUpdate || Registered update partition&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Save Struct =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData. SaveData: 0 can be used for accessing the savedata associated with the current FS session titleID, otherwise when set this is the titleID associated with the savedata to access.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x10&lt;br /&gt;
| userID for user-specific savedata(saveuser) when set, otherwise when zero this indicates the common savedata(savecommon). This is loaded from [[Account_services]].&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| u64 [[Flash_Filesystem|saveID]]. 0 for SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x21&lt;br /&gt;
| 0x1&lt;br /&gt;
| Save data &#039;rank&#039; or &#039;precedence&#039;. 0 if this save data is considered the primary save data. 1 if it&#039;s considered the secondary save data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x22&lt;br /&gt;
| 0x2&lt;br /&gt;
| Save data index&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x4&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
For DeviceSaveData, this struct is all-zero except for the [[#SaveDataType]] field.&lt;br /&gt;
&lt;br /&gt;
= SaveCreate Struct =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| [[Savegames|IVFC]] level4 size?&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x8&lt;br /&gt;
| Same as offset 0x0 normally? Hard-coded to 0x80000 for BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4000 for SystemSaveData/SaveData/DeviceSaveData/BcatSaveData. [[Savegames|IVFC]] level4 block-size in bytes?&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x8&lt;br /&gt;
| Official user-processes only uses 0 here for SystemSaveData/SaveData. For the dedicated save-creation code with SaveData/DeviceSaveData, this value comes from an input param with official user-processes. For BcatSaveData, this is the hard-coded [[Title_list|titleID]] of the bcat-sysmodule.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4&lt;br /&gt;
| Written using an input param for official user-processes. Hard-coded 0 for BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x1&lt;br /&gt;
| Official user-processes only uses 0 here for SystemSaveData, 1 for SaveData/DeviceSaveData/BcatSaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0 for SystemSaveData/SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x26&lt;br /&gt;
| 0x1A&lt;br /&gt;
| Not initialized for SystemSaveData/SaveData.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size is 0x40-bytes.&lt;br /&gt;
&lt;br /&gt;
= DeviceSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8, the only difference compared to SaveData is the Save-struct.&lt;br /&gt;
&lt;br /&gt;
= BcatSaveData =&lt;br /&gt;
This is accessed using the same commands for SaveData with the same input u8. The Save-struct is the same as DeviceSaveData, except that the titleID field is set to &amp;lt;input titleID&amp;gt;. See above regarding SaveCreate-struct.&lt;br /&gt;
&lt;br /&gt;
The 0x10-byte struct passed to [[#CreateSaveDataFileSystem]] has the first 0x5-bytes set to all-zero.&lt;br /&gt;
&lt;br /&gt;
= SaveDataInfo =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Unknown saveID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataSpaceId]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x9&lt;br /&gt;
| 0x1&lt;br /&gt;
| [[#SaveDataType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA&lt;br /&gt;
| 0x6&lt;br /&gt;
| Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| userID&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x8&lt;br /&gt;
| saveID, 0 for regular SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x8&lt;br /&gt;
| Application titleID, for regular SaveData.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30&lt;br /&gt;
| 0x8&lt;br /&gt;
| Raw saveimage size&lt;br /&gt;
|-&lt;br /&gt;
| 0x38&lt;br /&gt;
| 0x2&lt;br /&gt;
| Save data index&lt;br /&gt;
|-&lt;br /&gt;
| 0x40&lt;br /&gt;
| 0x1&lt;br /&gt;
| Save data &#039;rank&#039; or &#039;precedence&#039;. 0 if this save data is considered the primary save data. 1 if it&#039;s considered the secondary save data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x41&lt;br /&gt;
| 0x25&lt;br /&gt;
| Unknown. Usually zeros?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a 0x60-byte struct.&lt;br /&gt;
&lt;br /&gt;
= SaveDataFileSystemExtraData =&lt;br /&gt;
This is a 0x200-byte struct. Appears to match [[Savegames#Extra_data]].&lt;br /&gt;
&lt;br /&gt;
= InitialDataVersion2 =&lt;br /&gt;
This is a 0x8210-byte struct used by [[#ISaveDataTransferManagerWithDivision]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=6142</id>
		<title>Error codes</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=6142"/>
		<updated>2019-01-29T21:48:51Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* Error codes */ Add some codes used by nn::fs::HierarchicalRomFileTable&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Structure =&lt;br /&gt;
These have been redesigned from the 3DS so that they fit within a Aarch64 MOV instruction immediate most of the time (without requiring the additional MOVK).&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Bits || Field&lt;br /&gt;
|-&lt;br /&gt;
| 8-0 || Module&lt;br /&gt;
|-&lt;br /&gt;
| 21-9 || Description&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When a fatal-error is received the error code is outputted using the following formatter:&lt;br /&gt;
  %04d-%04d&lt;br /&gt;
&lt;br /&gt;
.. where the first code is &amp;lt;code&amp;gt;2000 + Module&amp;lt;/code&amp;gt;, and the other being &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;. Bits &amp;gt;=22 from the error-code are unused when displaying fatal-errors, since the Description ends with bit21.&lt;br /&gt;
&lt;br /&gt;
= Modules =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Kernel&lt;br /&gt;
|-&lt;br /&gt;
| 2 || FS&lt;br /&gt;
|-&lt;br /&gt;
| 3 || OS (Memory, Thread, Mutex, NVIDIA)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || HTCS&lt;br /&gt;
|-&lt;br /&gt;
| 5 || NCM&lt;br /&gt;
|-&lt;br /&gt;
| 6 || DD&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Debug Monitor&lt;br /&gt;
|-&lt;br /&gt;
| 8 || LR&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Loader&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CMIF (IPC command interface)&lt;br /&gt;
|-&lt;br /&gt;
| 11 || HIPC (IPC)&lt;br /&gt;
|-&lt;br /&gt;
| 15 || PM&lt;br /&gt;
|-&lt;br /&gt;
| 16 || NS&lt;br /&gt;
|-&lt;br /&gt;
| 17 || Sockets&lt;br /&gt;
|-&lt;br /&gt;
| 18 || HTC&lt;br /&gt;
|-&lt;br /&gt;
| 20 || NCM Content&lt;br /&gt;
|-&lt;br /&gt;
| 21 || SM&lt;br /&gt;
|-&lt;br /&gt;
| 22 || RO userland&lt;br /&gt;
|-&lt;br /&gt;
| 24 || SDMMC&lt;br /&gt;
|-&lt;br /&gt;
| 25 || OVLN&lt;br /&gt;
|-&lt;br /&gt;
| 26 || SPL&lt;br /&gt;
|-&lt;br /&gt;
| 100 || ETHC&lt;br /&gt;
|-&lt;br /&gt;
| 101 || I2C&lt;br /&gt;
|-&lt;br /&gt;
| 102 || GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 103 || UART&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Settings&lt;br /&gt;
|-&lt;br /&gt;
| 107 || WLAN&lt;br /&gt;
|-&lt;br /&gt;
| 108 || XCD&lt;br /&gt;
|-&lt;br /&gt;
| 110 || NIFM&lt;br /&gt;
|-&lt;br /&gt;
| 111 || Hwopus&lt;br /&gt;
|-&lt;br /&gt;
| 113 || Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
| 114 || VI&lt;br /&gt;
|-&lt;br /&gt;
| 115 || NFP&lt;br /&gt;
|-&lt;br /&gt;
| 116 || Time&lt;br /&gt;
|-&lt;br /&gt;
| 117 || FGM&lt;br /&gt;
|-&lt;br /&gt;
| 118 || OE&lt;br /&gt;
|-&lt;br /&gt;
| 120 || PCIe&lt;br /&gt;
|-&lt;br /&gt;
| 121 || Friends&lt;br /&gt;
|-&lt;br /&gt;
| 122 || BCAT&lt;br /&gt;
|-&lt;br /&gt;
| 123 || SSL&lt;br /&gt;
|-&lt;br /&gt;
| 124 || Account&lt;br /&gt;
|-&lt;br /&gt;
| 125 || News&lt;br /&gt;
|-&lt;br /&gt;
| 126 || Mii&lt;br /&gt;
|-&lt;br /&gt;
| 127 || NFC&lt;br /&gt;
|-&lt;br /&gt;
| 128 || AM&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Play Report&lt;br /&gt;
|-&lt;br /&gt;
| 130 || AHID&lt;br /&gt;
|-&lt;br /&gt;
| 132 || Home Menu (Qlaunch)&lt;br /&gt;
|-&lt;br /&gt;
| 133 || PCV&lt;br /&gt;
|-&lt;br /&gt;
| 134 || OMM&lt;br /&gt;
|-&lt;br /&gt;
| 135 || BPC&lt;br /&gt;
|-&lt;br /&gt;
| 136 || PSM&lt;br /&gt;
|-&lt;br /&gt;
| 137 || NIM&lt;br /&gt;
|-&lt;br /&gt;
| 138 || PSC&lt;br /&gt;
|-&lt;br /&gt;
| 139 || TC&lt;br /&gt;
|-&lt;br /&gt;
| 140 || USB&lt;br /&gt;
|-&lt;br /&gt;
| 141 || NSD&lt;br /&gt;
|-&lt;br /&gt;
| 142 || PCTL&lt;br /&gt;
|-&lt;br /&gt;
| 143 || BTM&lt;br /&gt;
|-&lt;br /&gt;
| 144 || EC (Shop)&lt;br /&gt;
|-&lt;br /&gt;
| 145 || ETicket&lt;br /&gt;
|-&lt;br /&gt;
| 146 || NGC (Bad Words)&lt;br /&gt;
|-&lt;br /&gt;
| 147 || Error Report&lt;br /&gt;
|-&lt;br /&gt;
| 148 || APM&lt;br /&gt;
|-&lt;br /&gt;
| 150 || Profiler&lt;br /&gt;
|-&lt;br /&gt;
| 151 || Error Upload&lt;br /&gt;
|-&lt;br /&gt;
| 153 || Audio&lt;br /&gt;
|-&lt;br /&gt;
| 154 || NPNS&lt;br /&gt;
|-&lt;br /&gt;
| 155 || NPNS HTTP Stream&lt;br /&gt;
|-&lt;br /&gt;
| 157 || ARP&lt;br /&gt;
|-&lt;br /&gt;
| 158 || Boot&lt;br /&gt;
|-&lt;br /&gt;
| 159 || SWKBD&lt;br /&gt;
|-&lt;br /&gt;
| 161 || NFC Mifare&lt;br /&gt;
|-&lt;br /&gt;
| 162 || Userland assert&lt;br /&gt;
|-&lt;br /&gt;
| 163 || Fatal&lt;br /&gt;
|-&lt;br /&gt;
| 164 || NIM Shop&lt;br /&gt;
|-&lt;br /&gt;
| 165 || SPSM&lt;br /&gt;
|-&lt;br /&gt;
| 167 || BGTC&lt;br /&gt;
|-&lt;br /&gt;
| 168 || Userland crash&lt;br /&gt;
|-&lt;br /&gt;
| 178 || PDM&lt;br /&gt;
|-&lt;br /&gt;
| 179 || OLSC&lt;br /&gt;
|-&lt;br /&gt;
| 180 || SREPO&lt;br /&gt;
|-&lt;br /&gt;
| 181 || Dauth&lt;br /&gt;
|-&lt;br /&gt;
| 202 || HID&lt;br /&gt;
|-&lt;br /&gt;
| 203 || LDN&lt;br /&gt;
|-&lt;br /&gt;
| 205 || Irsensor&lt;br /&gt;
|-&lt;br /&gt;
| 206 || Capture&lt;br /&gt;
|-&lt;br /&gt;
| 208 || Manu&lt;br /&gt;
|-&lt;br /&gt;
| 209 || ATK&lt;br /&gt;
|-&lt;br /&gt;
| 210 || Web&lt;br /&gt;
|-&lt;br /&gt;
| 211 ||&lt;br /&gt;
|-&lt;br /&gt;
| 212 || GRC&lt;br /&gt;
|-&lt;br /&gt;
| 216 || Migration&lt;br /&gt;
|-&lt;br /&gt;
| 217 || Migration Idc Server&lt;br /&gt;
|-&lt;br /&gt;
| 345 || libnx&lt;br /&gt;
|-&lt;br /&gt;
| 346 || [[Homebrew ABI]]&lt;br /&gt;
|-&lt;br /&gt;
| 347 || Homebrew Loader&lt;br /&gt;
|-&lt;br /&gt;
| 348 || libnx Nvidia errors&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Error codes =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E01 || 1 || 7 || Session count exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C01 || 1 || 14 || Invalid kernel capability descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x4201 || 1 || 33 || Not Implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x7601 || 1 || 59 || Thread terminated/termination requested&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C01 || 1 || 70 || No more debug events&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA01 || 1 || 101 || Invalid size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC01 || 1 || 102 || Invalid address&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE01 || 1 || 103 || Resource exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD001 || 1 || 104 || Memory exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD201 || 1 || 105 || Handle-table exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 1 || 106 || Invalid memory state / invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD801 || 1 || 108 || Invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC01 || 1 || 110 || Invalid memory range&lt;br /&gt;
|-&lt;br /&gt;
| 0xE001 || 1 || 112 || Invalid thread priority.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE201 || 1 || 113 || Invalid processor id.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE401 || 1 || 114 || Invalid handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE601 || 1 || 115 || Invalid pointer/Syscall copy from user failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE801 || 1 || 116 || Invalid combination&lt;br /&gt;
|-&lt;br /&gt;
| 0xEA01 || 1 || 117 || Time out. Also when you give 0 handles to svcWaitSynchronizationN.&lt;br /&gt;
|-&lt;br /&gt;
| 0xEC01 || 1 || 118 || Canceled/interrupted [?]&lt;br /&gt;
|-&lt;br /&gt;
| 0xEE01 || 1 || 119 || Out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0xF001 || 1 || 120 || Invalid enum&lt;br /&gt;
|-&lt;br /&gt;
| 0xF201 || 1 || 121 || No such entry&lt;br /&gt;
|-&lt;br /&gt;
| 0xF401 || 1 || 122 || Irq/DeviceAddressSpace/{...} already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xF601 || 1 || 123 || Port remote dead&lt;br /&gt;
|-&lt;br /&gt;
| 0xF801 || 1 || 124 || [Usermode] Unhandled interrupt/exception&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA01 || 1 || 125 || Process already started/Wrong memory permission?&lt;br /&gt;
|-&lt;br /&gt;
| 0xFC01 || 1 || 126 || Reserved value&lt;br /&gt;
|-&lt;br /&gt;
| 0xFE01 || 1 || 127 || Invalid hardware breakpoint&lt;br /&gt;
|-&lt;br /&gt;
| 0x10001 || 1 || 128 || [Usermode] Fatal exception&lt;br /&gt;
|-&lt;br /&gt;
| 0x10201 || 1 || 129 || Last thread didn&#039;t belong to your process&lt;br /&gt;
|-&lt;br /&gt;
| 0x10601 || 1 || 131 || Port closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x10801 || 1 || 132 || Resource limit exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x20801 || 1 || 260 || Command buffer too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x40a01 || 1 || 517 || No such process&lt;br /&gt;
|-&lt;br /&gt;
| 0x41001 || 1 || 520 || Process not being debugged&lt;br /&gt;
|-&lt;br /&gt;
| 0x202 || 2 || 1 || Path does not exist.&lt;br /&gt;
|-&lt;br /&gt;
| 0x402 || 2 || 2 || Path already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE02 || 2 || 7 || Resource already in use (file already opened, savedata filesystem already mounted).&lt;br /&gt;
|-&lt;br /&gt;
| 0x4602 || 2 || 35 || Not enough free space for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4802 || 2 || 36 || Not enough free space for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A02 || 2 || 37 || Not enough free space for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C02 || 2 || 38 || Not enough free space for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4E02 || 2 || 39 || Not enough free space on SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 2 || 60 || The specified [[NCA]]-type doesn&#039;t exist for this title.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 2 || 1001 || Process does not have RomFs &lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 2 || 1002 || Title-id not found / savedata not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA202 || 2 || 2001 || SD card not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13B002 || 2 || 2520 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13DA02 || 2 || 2541 || Version check failed when mounting gamecard sysupdate partition?&lt;br /&gt;
|-&lt;br /&gt;
| 0x171402 || 2 || 2954 || Invalid gamecard handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 2 || 3001 || Unimplemented behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x177602 || 2 || 3003 || File/Directory already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x190202 || 2 || 3201 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190602 || 2 || 3203 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190802 || 2 || 3204 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190A02 || 2 || 3205 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190C02 || 2 || 3206 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x191002 || 2 || 3208 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x195802 || 2 || 3244 || Allocation failure related to SD cards&lt;br /&gt;
|-&lt;br /&gt;
| 0x196002 || 2 || 3248 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x196202 || 2 || 3249 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A3E02 || 2 || 3359 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4002 || 2 || 3360 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4A02 || 2 || 3365 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x21BC02 || 2 || 4318 || Invalid save data filesystem magic (valid magic is SAVE in ASCII)&lt;br /&gt;
|-&lt;br /&gt;
| 0x234202 || 2 || 4513 || Error reading ACID section in NPDM&lt;br /&gt;
|-&lt;br /&gt;
| 0x234402 || 2 || 4514 || Invalid NPDM ACID section size&lt;br /&gt;
|-&lt;br /&gt;
| 0x234602 || 2 || 4515 || Last byte of the ACID modulus is zero&lt;br /&gt;
|-&lt;br /&gt;
| 0x234802 || 2 || 4516 || Invalid ACID fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234A02 || 2 || 4517 || Invalid NCA magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x234C02 || 2 || 4518 || Invalid NCA header fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234E02 || 2 || 4519 || Invalid NCA header ACID signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x235002 || 2 || 4520 || Invalid NCA header section hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x235202 || 2 || 4521 || Invalid NCA Key index&lt;br /&gt;
|-&lt;br /&gt;
| 0x235602 || 2 || 4523 || Invalid encryption type&lt;br /&gt;
|-&lt;br /&gt;
| 0x235802 || 2 || 4524 || Redirection BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235A02 || 2 || 4525 || Encryption BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235C02 || 2 || 4526 || Redirection BKTR table end offset is past the Encryption BKTR table start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x235E02 || 2 || 4527 || NCA-path used with the wrong titleID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x236002 || 2 || 4528 || NCA header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236202 || 2 || 4529 || NCA FS header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236802 || 2 || 4532 || PartitionFS hash block size is not a power of 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236A02 || 2 || 4533 || PartitionFS hash &amp;quot;always_2&amp;quot; field is not 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236C02 || 2 || 4534 || PartitionFS hash table is too small for main data&lt;br /&gt;
|-&lt;br /&gt;
| 0x236E02 || 2 || 4535 || Invalid PartitionFS block hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244402 || 2 || 4642 || Invalid Partition file hashed region bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x244602 || 2 || 4643 || Invalid Partition FS hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244802 || 2 || 4644 || Invalid PFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244A02 || 2 || 4645 || Invalid HFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244C02 || 2 || 4646 || Invalid name offset for Partition FS file entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x244E02 || 2 || 4647 || Calculated Partition FS header size changed between 2 consecutive reads&lt;br /&gt;
|-&lt;br /&gt;
| 0x249802 || 2 || 4684 || Invalid FAT file number.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249C02 || 2 || 4686 || Invalid FAT format for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249E02 || 2 || 4687 || Invalid FAT format for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A002 || 2 || 4688 || Invalid FAT format for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A202 || 2 || 4689 || Invalid FAT format for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x250E02 || 2 || 4743 || [[NAX0|Corrupted]] NAX0 header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x251002 || 2 || 4744 || Invalid [[NAX0]] magicnum.&lt;br /&gt;
|-&lt;br /&gt;
| 0x280202 || 2 || 5121 || Invalid FAT size&lt;br /&gt;
|-&lt;br /&gt;
| 0x280402 || 2 || 5122 || Invalid FAT BPB (BIOS Parameter Block)&lt;br /&gt;
|-&lt;br /&gt;
| 0x280602 || 2 || 5123 || Invalid FAT parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x280802 || 2 || 5124 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280A02 || 2 || 5125 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280C02 || 2 || 5126 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280E02 || 2 || 5127 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x296A02 || 2 || 5301 || Mountpoint not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 || 2 || 6001 || Invalid input&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE602 || 2 || 6003 || Path too long&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE802 || 2 || 6004 || Invalid character.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEA02 || 2 || 6005 || Invalid directory path.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEC02 || 2 || 6006 || Unable to retrieve directory from path&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 2 || 6061 || Offset outside storage&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 || 2 || 6300 || Operation not supported&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 || 2 || 6400 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x326602 || 2 || 6451 || Missing titlekey(?) required to mount content&lt;br /&gt;
|-&lt;br /&gt;
| 0x326E02 || 2 || 6455 || File not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327002 || 2 || 6456 || Directory not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327402 || 2 || 6458 || FS allocators already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x327602 || 2 || 6459 || FS allocators already used&lt;br /&gt;
|-&lt;br /&gt;
| 0x327A02 || 2 || 6461 || FS allocator alignment violation&lt;br /&gt;
|-&lt;br /&gt;
| 0x339402 || 2 || 6602 || File not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x339602 || 2 || 6603 || Directory not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBC02 || 2 || 7902 || RomFs table: Entry not found in dictionary&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DBE02 || 2 || 7903 || RomFs table: File not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC002 || 2 || 7904 || RomFs table: Directory not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC402 || 2 || 7906 || RomFs table: Entry already exists when trying to add a new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC602 || 2 || 7907 || RomFs table: Insufficient space to add new entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC802 || 2 || 7908 || RomFs table: Unable to add new directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCA02 || 2 || 7909 || RomFs table: Unable to add new file&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCC02 || 2 || 7910 || RomFs directory has no more child directories/files when iterating&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DD402 || 2 || 7914 || RomFs table: Path is file, not directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x803 || 3 || 4 || OS busy&lt;br /&gt;
|-&lt;br /&gt;
| 0xE03 || 3 || 7 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x1003 || 3 || 8 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1203 || 3 || 9 || Out of resources&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EA03 || 3 || 501 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE03 || 3 || 503 || Invalid memory mirror&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FE03 || 3 || 1023 || TLS slot is not allocated&lt;br /&gt;
|-&lt;br /&gt;
| 0xA05 || 5 || 5 || [[Content_Manager_services|NcaID]] not found. Returned when attempting to mount titles which exist that aren&#039;t *8XX titles, the same way *8XX titles are mounted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE05 || 5 || 7 || TitleId not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1805 || 5 || 12 || Invalid StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC05 || 5 || 110 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x17C05 || 5 || 190 || Gamecard not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F405 || 5 || 250 || Sdcard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x20805 || 5 || 260 || Storage not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0x806 || 6 || 4 || Converted from error 0xD401&lt;br /&gt;
|-&lt;br /&gt;
| 0x1006 || 6 || 8 || Converted from error 0xE401&lt;br /&gt;
|-&lt;br /&gt;
| 0x408 || 8 || 2 || Program location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x608 || 8 || 3 || Invalid context for control location&lt;br /&gt;
|-&lt;br /&gt;
| 0x808 || 8 || 4 || Storage not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA08 || 8 || 5 || Access denied&lt;br /&gt;
|-&lt;br /&gt;
| 0xC08 || 8 || 6 || Offline manual HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xE08 || 8 || 7 || Title is not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1008 || 8 || 8 || Control location entry for host not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1208 || 8 || 9 || Legal info HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x209 || 9 || 1 || Args too long.&lt;br /&gt;
|-&lt;br /&gt;
| 0x409 || 9 || 2 || Maximum processes loaded.&lt;br /&gt;
|-&lt;br /&gt;
| 0x609 || 9 || 3 || NPDM too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x19009 || 9 || 200 || Invalid access control sizes in NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x809 || 9 || 4 || Invalid NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0xA09 || 9 || 5 || Invalid files.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE09 || 9 || 7 || Already registered.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1009 || 9 || 8 || Title not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1209 || 9 || 9 || Title-id in ACI0 doesn&#039;t match range in ACID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6609 || 9 || 51 || Invalid memory state/permission&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A09 || 9 || 53 || Invalid NRR&lt;br /&gt;
|-&lt;br /&gt;
| 0xA209 || 9 || 81 || Unaligned NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xA409 || 9 || 82 || Bad NRR size&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA09 || 9 || 85 || Bad NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xAE09 || 9 || 87 || Bad initialization&lt;br /&gt;
|-&lt;br /&gt;
| 0xC809 || 9 || 100 || Unknown ACI0 descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE09 || 9 || 103 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD009 || 9 || 104 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;SyscallMask&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD409 || 9 || 106 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapIoOrNormalRange&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD609 || 9 || 107 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapNormalPage&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xDE09 || 9 || 111 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;InterruptPair&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE209 || 9 || 113 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;ApplicationType&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE409 || 9 || 114 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelReleaseVersion&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE609 || 9 || 115 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;HandleTableSize&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE809 || 9 || 116 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;DebugFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x1940A || 10 || 202 || Invalid CMIF header size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A60A || 10 || 211 || Invalid CMIF input header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A80A || 10 || 212 || Invalid CMIF output header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA0A || 10 || 221 || Invalid method dispatch ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D60A || 10 || 235 || Invalid in object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D80A || 10 || 236 || Invalid out object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0A || 10 || 301 || Out of domain entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20B || 11 || 1 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC0B || 11 || 102 || Out of server session memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x11A0B || 11 || 141 || Went past maximum during marshalling.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1900B || 11 || 200 || Session doesn&#039;t support domains.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0B || 11 || 301 || Remote process is dead.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3260B || 11 || 403 || Unknown request type&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D60B || 11 || 491 || IPC Query 1 failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20F || 15 || 1 || Pid not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x60F || 15 || 3 || Process has no pending events&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0F || 15 || 5 || Application already running&lt;br /&gt;
|-&lt;br /&gt;
| 0x410 || 16 || 2 || Title-id not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xF010 || 16 || 120 || Gamecard sysupdate not required&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F610 || 16 || 251 || Unexpected StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0x215 || 21 || 1 || Out of processes&lt;br /&gt;
|-&lt;br /&gt;
| 0x415 || 21 || 2 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x615 || 21 || 3 || Max sessions&lt;br /&gt;
|-&lt;br /&gt;
| 0x815 || 21 || 4 || Service already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xA15 || 21 || 5 || Out of services&lt;br /&gt;
|-&lt;br /&gt;
| 0xC15 || 21 || 6 || Invalid name (all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0xE15 || 21 || 7 || Service not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1015 || 21 || 8 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x1215 || 21 || 9 || Service Access Control too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x416 || 22 || 2 || Address space is full&lt;br /&gt;
|-&lt;br /&gt;
| 0x616 || 22 || 3 || NRO already loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x816 || 22 || 4 || Invalid NRO header values&lt;br /&gt;
|-&lt;br /&gt;
| 0xC16 || 22 || 6 || Bad NRR magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x1016 || 22 || 8 || Reached max NRR count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1216 || 22 || 9 || Unable to verify NRO hash or NRR signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x80216 || 22 || 1025 || Address not page-aligned&lt;br /&gt;
|-&lt;br /&gt;
| 0x80416 || 22 || 1026 || Incorrect NRO size&lt;br /&gt;
|-&lt;br /&gt;
| 0x80816 || 22 || 1028 || NRO not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80A16 || 22 || 1029 || NRR not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80C16 || 22 || 1030 || Already initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E16 || 22 || 1031 || Not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x41A || 26 || 2 || Argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0xC81A || 26 || 100 || Incorrect buffer size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Unknown TZ error&lt;br /&gt;
|-&lt;br /&gt;
| 0xD01A || 26 || 104 || All AES engines busy&lt;br /&gt;
|-&lt;br /&gt;
| 0xD21A || 26 || 105 || Invalid AES engine-id&lt;br /&gt;
|-&lt;br /&gt;
| 0x19269 || 105 || 201 || Null settings name&lt;br /&gt;
|-&lt;br /&gt;
| 0x19469 || 105 || 202 || Null settings key&lt;br /&gt;
|-&lt;br /&gt;
| 0x19669 || 105 || 203 || Null settings value&lt;br /&gt;
|-&lt;br /&gt;
| 0x19A69 || 105 || 205 || Null settings value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A069 || 105 || 208 || Null setting value size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A269 || 105 || 209 || Null debug mode flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA69 || 105 || 221 || Setting group name has zero length&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BC69 || 105 || 222 || Empty settings item key&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E269 || 105 || 241 || Setting group name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E469 || 105 || 242 || Setting name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x20A69 || 105 || 261 || Setting group name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x20C69 || 105 || 262 || Setting name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x4DA69 || 105 || 621 || Null language code buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4EE69 || 105 || 631 || Null network settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4F069 || 105 || 632 || Null network settings output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x50269 || 105 || 641 || Null backlight settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51669 || 105 || 651 || Null Bluetooth device setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51869 || 105 || 652 || Null Bluetooth device setting output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51A69 || 105 || 653 || Null Bluetooth enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51C69 || 105 || 654 || Null Bluetooth AFH enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51E69 || 105 || 655 || Null Bluetooth boost enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52069 || 105 || 656 || Null BLE pairing settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52269 || 105 || 657 || Null BLE pairing settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52A69 || 105 || 661 || Null external steady clock source ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52C69 || 105 || 662 || Null user system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52E69 || 105 || 663 || Null network system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53069 || 105 || 664 || Null user system clock automatic correction enabled flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53269 || 105 || 665 || Null shutdown RTC value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53469 || 105 || 666 || Null external steady clock internal offset buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53E69 || 105 || 671 || Null account settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55269 || 105 || 681 || Null audio volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55669 || 105 || 683 || Null ForceMuteOnHeadphoneRemoved buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55869 || 105 || 684 || Null headphone volume warning count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55E69 || 105 || 687 || Invalid audio output mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x56069 || 105 || 688 || Null headphone volume update flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x56669 || 105 || 691 || Null console information upload flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57A69 || 105 || 701 || Null automatic application download flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57C69 || 105 || 702 || Null notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57E69 || 105 || 703 || Null account notification settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58069 || 105 || 704 || Null account notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58E69 || 105 || 711 || Null vibration master volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59069 || 105 || 712 || Null NX controller settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59269 || 105 || 713 || Null NX controller settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59469 || 105 || 714 || Null USB full key enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A269 || 105 || 721 || Null TV settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A469 || 105 || 722 || Null EDID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5B669 || 105 || 731 || Null data deletion settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CA69 || 105 || 741 || Null initial system applet program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CC69 || 105 || 742 || Null overlay disp program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CE69 || 105 || 743 || Null IsInRepairProcess buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5D069 || 105 || 744 || Null RequiresRunRepairTimeReviser buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5DE69 || 105 || 751 || Null device timezone location name buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5F269 || 105 || 761 || Null primary album storage buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60669 || 105 || 771 || Null USB 3.0 enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60869 || 105 || 772 || Null USB Type-C power source circuit version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A69 || 105 || 781 || Null battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x62E69 || 105 || 791 || Null serial number buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64269 || 105 || 801 || Null lock screen flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64669 || 105 || 803 || Null color set ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64869 || 105 || 804 || Null quest flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64A69 || 105 || 805 || Null wireless certification file size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64C69 || 105 || 806 || Null wireless certification file buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64E69 || 105 || 807 || Null initial launch settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65069 || 105 || 808 || Null device nickname buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65269 || 105 || 809 || Null battery percentage flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65469 || 105 || 810 || Null applet launch flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7E869 || 105 || 1012 || Null wireless LAN enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FA69 || 105 || 1021 || Null product model buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E69 || 105 || 1031 || Null NFC enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82269 || 105 || 1041 || Null ECI device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82469 || 105 || 1042 || Null E-Ticket device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x83669 || 105 || 1051 || Null sleep settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84A69 || 105 || 1061 || Null EULA version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84C69 || 105 || 1062 || Null EULA version entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x85E69 || 105 || 1071 || Null LDN channel buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87269 || 105 || 1081 || Null SSL key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87469 || 105 || 1082 || Null SSL certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x88669 || 105 || 1091 || Null telemetry flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89A69 || 105 || 1101 || Null Gamecard key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89C69 || 105 || 1102 || Null Gamecard certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8AE69 || 105 || 1111 || Null PTM battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B069 || 105 || 1112 || Null PTM fuel gauge parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C269 || 105 || 1121 || Null ECI device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C469 || 105 || 1122 || Null E-Ticket device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D669 || 105 || 1131 || Null speaker parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EA69 || 105 || 1141 || Null firmware version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EC69 || 105 || 1142 || Null firmware version digest buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EE69 || 105 || 1143 || Null rebootless system update version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8FE69 || 105 || 1151 || Null Mii author ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x91269 || 105 || 1161 || Null fatal flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x92669 || 105 || 1171 || Null auto update enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x93A69 || 105 || 1181 || Null external RTC reset flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x94E69 || 105 || 1191 || Null push notification activity mode buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x96269 || 105 || 1201 || Null service discovery control setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x97669 || 105 || 1211 || Null error report share permission buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x98A69 || 105 || 1221 || Null LCD vendor ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x99E69 || 105 || 1231 || Null console SixAxis sensor acceleration bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A069 || 105 || 1232 || Null console SixAxis sensor angular velocity bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A269 || 105 || 1233 || Null console SixAxis sensor acceleration gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A469 || 105 || 1234 || Null console SixAxis sensor angular velocity gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A669 || 105 || 1235 || Null console SixAxis sensor angular velocity time bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A869 || 105 || 1236 || Null console SixAxis sensor angular acceleration buffer &lt;br /&gt;
|-&lt;br /&gt;
| 0x9B269 || 105 || 1241 || Null keyboard layout buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9BA69 || 105 || 1245 || Invalid keyboard layout&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C669 || 105 || 1251 || Null web inspector flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C869 || 105 || 1252 || Null allowed SSL hosts buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CA69 || 105 || 1253 || Null allowed SSL hosts entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CC69 || 105 || 1254 || Null host FS mount point buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9EE69 || 105 || 1271 || Null Amiibo key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F069 || 105 || 1272 || Null Amiibo ECQV certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F269 || 105 || 1273 || Null Amiibo ECDSA certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F469 || 105 || 1274 || Null Amiibo ECQV BLS key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F669 || 105 || 1275 || Null Amiibo ECQV BLS certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F869 || 105 || 1276 || Null Amiibo ECQV BLS root certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x272 || 114 || 1 || Generic error&lt;br /&gt;
|-&lt;br /&gt;
| 0xC72 || 114 || 6 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || 116 || 0 || Time service not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC74 || 116 || 102 || Time not set&lt;br /&gt;
|-&lt;br /&gt;
| 0x19074 || 116 || 200 || Invalid time comparison&lt;br /&gt;
|-&lt;br /&gt;
| 0x19274 || 116 || 201 || Signed overflow/underflow&lt;br /&gt;
|-&lt;br /&gt;
| 0x64274 || 116 || 801 || Memory allocation failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x70A74 || 116 || 901 || Null pointer&lt;br /&gt;
|-&lt;br /&gt;
| 0x70C74 || 116 || 902 || Value out of valid range&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BA74 || 116 || 989 || Entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BC74 || 116 || 990 || Unimplemented functionality&lt;br /&gt;
|-&lt;br /&gt;
| 0x287C || 124 || 20 || Argument is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C7C || 124 || 22 || Argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C7C || 124 || 30 || Bad input buffer size&lt;br /&gt;
|-&lt;br /&gt;
| 0x407C || 124 || 32 || Invalid input buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x27E || 126 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x87E || 126 || 4 || Entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE7E || 126 || 67 || Invalid database signature value (should be &amp;quot;NFDB&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0xD27E || 126 || 69 || Invalid database entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1987E || 126 || 204 || Development/debug-only behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x480 || 128 || 2 || IStorage not available.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4680 || 128 || 35 || Error while launching applet.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A80 || 128 || 37 || Title-ID not found. Caused by code 0x410 when applet launch fails&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E880 || 128 || 500 || Invalid IStorage size (negative?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EC80 || 128 || 502 || IStorage has already been opened by another accessor&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE80 || 128 || 503 || IStorage Read/Write out-of-bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x3FE80 || 128 || 511 || IStorage opened as wrong type (data opened as transfermem, transfermem opened as data)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B080 || 128 || 600 || Failed to allocate memory for IStorage&lt;br /&gt;
|-&lt;br /&gt;
| 0x59080 || 128 || 712 || Thread stack pool exhausted (out of memory)&lt;br /&gt;
|-&lt;br /&gt;
| 0x7A880 || 128 || 980 || &amp;lt;code&amp;gt;am.debug!dev_function&amp;lt;/code&amp;gt; setting needs to be set&lt;br /&gt;
|-&lt;br /&gt;
| 0xA83 || 131 || 5 || Unrecognized applet ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x485 || 133 || 2 || Invalid DVFS table ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x885 || 133 || 4 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x3CF089 || 137 || 7800 || Unknown/invalid libcurl error.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E8289-0x3F4089 || 137 || 8001-8096 || libcurl error 1-96. Some of the libcurl errors in the error-table map to the above unknown-libcurl-error however.&lt;br /&gt;
|-&lt;br /&gt;
| 0x68A || 138 || 3 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x668C || 140 || 51 || USB data-transfer in progress&lt;br /&gt;
|-&lt;br /&gt;
| 0xD48C || 140 || 106 || Invalid descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x1928C || 140 || 201 || USB device not bound / interface already enabled&lt;br /&gt;
|-&lt;br /&gt;
| 0x299 || 153 || 1 || Invalid audio device&lt;br /&gt;
|-&lt;br /&gt;
| 0x499 || 153 || 2 || Operation couldn&#039;t complete successfully&lt;br /&gt;
|-&lt;br /&gt;
| 0x699 || 153 || 3 || Invalid sample rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x899 || 153 || 4 || Buffer size too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x1099 || 153 || 8 || Too many buffers are still unreleased&lt;br /&gt;
|-&lt;br /&gt;
| 0x1499 || 153 || 10 || Invalid channel count&lt;br /&gt;
|-&lt;br /&gt;
| 0x40299 || 153 || 513 || Invalid/Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0099 || 153 || 1536 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0899 || 153 || 1540 || Audio output was already started&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C9D || 157 || 30 || Address is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E9D || 157 || 31 || PID is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x549D || 157 || 42 || Already bound&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC9D || 157 || 102 || Invalid PID&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA3 || 163 ||  5 || System is booting up repair process without VOL+ held down.&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA3 || 163 || 6 || System is booting up repair process that requires RepairTimeReviser but does not have special cartridge inserted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8B2 || 178 || 100 || Invalid user ID&lt;br /&gt;
|-&lt;br /&gt;
| 0xCAB2 || 178 || 101 || User does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 0x12CB2 || 178 || 150 || Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| 0x190B2 || 178 || 200 || File storage failure&lt;br /&gt;
|-&lt;br /&gt;
| 0xF0CD || 205 || 120 || IR image data not available/ready.&lt;br /&gt;
|-&lt;br /&gt;
| 0x35B || 347 || 1 || Failed to init SM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x55B || 347 || 2 || Failed to init FS.&lt;br /&gt;
|-&lt;br /&gt;
| 0x75B || 347 || 3 || Failed to to open NRO file. May also happen when SD card isn&#039;t inserted / SD mounting failed earlier.&lt;br /&gt;
|-&lt;br /&gt;
| 0x95B || 347 || 4 || Failed to read NRO header.&lt;br /&gt;
|-&lt;br /&gt;
| 0xB5B || 347 || 5 || Invalid NRO magic.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD5B || 347 || 6 || Invalid NRO segments.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF5B || 347 || 7 || Failed to read NRO.&lt;br /&gt;
|-&lt;br /&gt;
| 0x135B || 347 || 9 || Failed to allocate heap.&lt;br /&gt;
|-&lt;br /&gt;
| 0x255B || 347 || 18 || Failed to map code-binary memory.&lt;br /&gt;
|-&lt;br /&gt;
| 0x275B || 347 || 19 || Failed to map code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x295B || 347 || 20 || Failed to map code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B5B || 347 || 21 || Failed to map code memory (.data+.bss).&lt;br /&gt;
|-&lt;br /&gt;
| 0x315B || 347 || 24 || Failed to unmap code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x335B || 347 || 25 || Failed to unmap code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x355B || 347 || 26 || Failed to unmap code memory (.data+.bss).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FS Error Codes ==&lt;br /&gt;
The following are the error codes recognized by nn::fs::detail::LogErrorMessage found in some [[Factory Setup|factory]] titles:&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Description || Message&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 60 || Error: Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 106 || Error: Passed buffer is not usable for fs library.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 1001 || Error: Specified partition is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 1002 || Error: Specified target is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA002 - 0x138602 || 2000 - 2499 || Error: Failed to access SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x136802 - 0x176E02 || 2500 - 2999 || Error: Failed to access game card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 3001 || Error: Specified operation is not implemented.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177A02 || 3005 || Error: Specified value is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B5802 - 0x1F3E02 || 3500 - 3999 || Error: Failed to access MMC.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4202 - 0x219602 || 4001 - 4299 || Error: ROM is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x219A02 - 0x232602 || 4301 - 4499 || Error: Save data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x232A02 - 0x23EE02 || 4501 - 4599 || Error: NCA is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x23F202 - 0x243E02 || 4601 - 4639 || Error: Integrity verification failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x244202 - 0x246602 || 4641 - 4659 || Error: Partition FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x246A02 - 0x248E02 || 4661 - 4679 || Error: Built-in-storage is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249202 - 0x24B602 || 4681 - 4699 || Error: FAT FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24BA02 - 0x24DE02 || 4701 - 4719 || Error: HOST FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4002 - 0x270E02 || 4000, 4300, 4500, 4600, 4640, 4660, 4680, 4700, 4720-4999 || Error: Data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x271002 - 0x2EDE02 || 5000-5999 || Error: Unexpected failure occurred.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE402 - 0x2F1A02 || 6002-6029 || Error: Invalid path was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 6061 || Error: Invalid offset was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5C02 || 6062 || Error: Invalid size was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5E02 || 6063 || Error: Null pointer argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE002 || 6000 || Error: Precondition violation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 - 0x306E02 || 6001-6199 || Error: Invalid argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x307202 || 6201 || Error: OpenMode_AllowAppend is required for implicit extension of file size by WriteFile().&lt;br /&gt;
|-&lt;br /&gt;
| 0x307002 - 0x313602 || 6200, 6202 - 6299 || Error: Invalid operation for the open mode.&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 - 0x31FE02 || 6300-6399 || Error: Unsupported operation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 - 0x32C602 || 6400-6499 || Error: Permission denied.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346402 || 6706 || Error: Enough journal space is not left.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346A02 || 6709 || Error: The open count of files and directories reached the limitation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Fatal Errors =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Description&lt;br /&gt;
|-&lt;br /&gt;
| 2162-0002&lt;br /&gt;
| Can be triggered by running [[SVC|svcBreak]]. The svcBreak params have no effect on the value of the thrown error-code.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0000&lt;br /&gt;
| Userland ARM undefined instruction exception&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0001&lt;br /&gt;
| Userland ARM prefetch-abort due to PC set to non-executable region&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0002&lt;br /&gt;
| Userland ARM data abort. Also caused by abnormal process termination via [[SVC|svcExitProcess]]. Note: directly jumping to nnMain()-retaddr from non-main-thread has the same result.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0003&lt;br /&gt;
| Userland PC address not aligned to 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0008&lt;br /&gt;
| Can occur when attempting to call an svc outside the whitelist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Support Errors =&lt;br /&gt;
This section is for Support Errors displayed by the error-applet, separate from the normal Result errors.&lt;br /&gt;
&lt;br /&gt;
== Support Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [[Internet_Browser|General web-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 809 || [[Internet_Browser|WifiWebAuthApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [[Internet_Browser|Whitelisted-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 811 || [[Internet_Browser|ShopN]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
8XX is for/includes system applets.&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| {web-applets listed above}&lt;br /&gt;
| 2750&lt;br /&gt;
| MP4 parsing failed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Normal error-codes displayed by the system also use the same format as fatal-errors.&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=6139</id>
		<title>Error codes</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=6139"/>
		<updated>2019-01-29T21:26:29Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* Error codes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Structure =&lt;br /&gt;
These have been redesigned from the 3DS so that they fit within a Aarch64 MOV instruction immediate most of the time (without requiring the additional MOVK).&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Bits || Field&lt;br /&gt;
|-&lt;br /&gt;
| 8-0 || Module&lt;br /&gt;
|-&lt;br /&gt;
| 21-9 || Description&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When a fatal-error is received the error code is outputted using the following formatter:&lt;br /&gt;
  %04d-%04d&lt;br /&gt;
&lt;br /&gt;
.. where the first code is &amp;lt;code&amp;gt;2000 + Module&amp;lt;/code&amp;gt;, and the other being &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;. Bits &amp;gt;=22 from the error-code are unused when displaying fatal-errors, since the Description ends with bit21.&lt;br /&gt;
&lt;br /&gt;
= Modules =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Kernel&lt;br /&gt;
|-&lt;br /&gt;
| 2 || FS&lt;br /&gt;
|-&lt;br /&gt;
| 3 || OS (Memory, Thread, Mutex, NVIDIA)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || HTCS&lt;br /&gt;
|-&lt;br /&gt;
| 5 || NCM&lt;br /&gt;
|-&lt;br /&gt;
| 6 || DD&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Debug Monitor&lt;br /&gt;
|-&lt;br /&gt;
| 8 || LR&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Loader&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CMIF (IPC command interface)&lt;br /&gt;
|-&lt;br /&gt;
| 11 || HIPC (IPC)&lt;br /&gt;
|-&lt;br /&gt;
| 15 || PM&lt;br /&gt;
|-&lt;br /&gt;
| 16 || NS&lt;br /&gt;
|-&lt;br /&gt;
| 17 || Sockets&lt;br /&gt;
|-&lt;br /&gt;
| 18 || HTC&lt;br /&gt;
|-&lt;br /&gt;
| 20 || NCM Content&lt;br /&gt;
|-&lt;br /&gt;
| 21 || SM&lt;br /&gt;
|-&lt;br /&gt;
| 22 || RO userland&lt;br /&gt;
|-&lt;br /&gt;
| 24 || SDMMC&lt;br /&gt;
|-&lt;br /&gt;
| 25 || OVLN&lt;br /&gt;
|-&lt;br /&gt;
| 26 || SPL&lt;br /&gt;
|-&lt;br /&gt;
| 100 || ETHC&lt;br /&gt;
|-&lt;br /&gt;
| 101 || I2C&lt;br /&gt;
|-&lt;br /&gt;
| 102 || GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 103 || UART&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Settings&lt;br /&gt;
|-&lt;br /&gt;
| 107 || WLAN&lt;br /&gt;
|-&lt;br /&gt;
| 108 || XCD&lt;br /&gt;
|-&lt;br /&gt;
| 110 || NIFM&lt;br /&gt;
|-&lt;br /&gt;
| 111 || Hwopus&lt;br /&gt;
|-&lt;br /&gt;
| 113 || Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
| 114 || VI&lt;br /&gt;
|-&lt;br /&gt;
| 115 || NFP&lt;br /&gt;
|-&lt;br /&gt;
| 116 || Time&lt;br /&gt;
|-&lt;br /&gt;
| 117 || FGM&lt;br /&gt;
|-&lt;br /&gt;
| 118 || OE&lt;br /&gt;
|-&lt;br /&gt;
| 120 || PCIe&lt;br /&gt;
|-&lt;br /&gt;
| 121 || Friends&lt;br /&gt;
|-&lt;br /&gt;
| 122 || BCAT&lt;br /&gt;
|-&lt;br /&gt;
| 123 || SSL&lt;br /&gt;
|-&lt;br /&gt;
| 124 || Account&lt;br /&gt;
|-&lt;br /&gt;
| 125 || News&lt;br /&gt;
|-&lt;br /&gt;
| 126 || Mii&lt;br /&gt;
|-&lt;br /&gt;
| 127 || NFC&lt;br /&gt;
|-&lt;br /&gt;
| 128 || AM&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Play Report&lt;br /&gt;
|-&lt;br /&gt;
| 130 || AHID&lt;br /&gt;
|-&lt;br /&gt;
| 132 || Home Menu (Qlaunch)&lt;br /&gt;
|-&lt;br /&gt;
| 133 || PCV&lt;br /&gt;
|-&lt;br /&gt;
| 134 || OMM&lt;br /&gt;
|-&lt;br /&gt;
| 135 || BPC&lt;br /&gt;
|-&lt;br /&gt;
| 136 || PSM&lt;br /&gt;
|-&lt;br /&gt;
| 137 || NIM&lt;br /&gt;
|-&lt;br /&gt;
| 138 || PSC&lt;br /&gt;
|-&lt;br /&gt;
| 139 || TC&lt;br /&gt;
|-&lt;br /&gt;
| 140 || USB&lt;br /&gt;
|-&lt;br /&gt;
| 141 || NSD&lt;br /&gt;
|-&lt;br /&gt;
| 142 || PCTL&lt;br /&gt;
|-&lt;br /&gt;
| 143 || BTM&lt;br /&gt;
|-&lt;br /&gt;
| 144 || EC (Shop)&lt;br /&gt;
|-&lt;br /&gt;
| 145 || ETicket&lt;br /&gt;
|-&lt;br /&gt;
| 146 || NGC (Bad Words)&lt;br /&gt;
|-&lt;br /&gt;
| 147 || Error Report&lt;br /&gt;
|-&lt;br /&gt;
| 148 || APM&lt;br /&gt;
|-&lt;br /&gt;
| 150 || Profiler&lt;br /&gt;
|-&lt;br /&gt;
| 151 || Error Upload&lt;br /&gt;
|-&lt;br /&gt;
| 153 || Audio&lt;br /&gt;
|-&lt;br /&gt;
| 154 || NPNS&lt;br /&gt;
|-&lt;br /&gt;
| 155 || NPNS HTTP Stream&lt;br /&gt;
|-&lt;br /&gt;
| 157 || ARP&lt;br /&gt;
|-&lt;br /&gt;
| 158 || Boot&lt;br /&gt;
|-&lt;br /&gt;
| 159 || SWKBD&lt;br /&gt;
|-&lt;br /&gt;
| 161 || NFC Mifare&lt;br /&gt;
|-&lt;br /&gt;
| 162 || Userland assert&lt;br /&gt;
|-&lt;br /&gt;
| 163 || Fatal&lt;br /&gt;
|-&lt;br /&gt;
| 164 || NIM Shop&lt;br /&gt;
|-&lt;br /&gt;
| 165 || SPSM&lt;br /&gt;
|-&lt;br /&gt;
| 167 || BGTC&lt;br /&gt;
|-&lt;br /&gt;
| 168 || Userland crash&lt;br /&gt;
|-&lt;br /&gt;
| 178 || PDM&lt;br /&gt;
|-&lt;br /&gt;
| 179 || OLSC&lt;br /&gt;
|-&lt;br /&gt;
| 180 || SREPO&lt;br /&gt;
|-&lt;br /&gt;
| 181 || Dauth&lt;br /&gt;
|-&lt;br /&gt;
| 202 || HID&lt;br /&gt;
|-&lt;br /&gt;
| 203 || LDN&lt;br /&gt;
|-&lt;br /&gt;
| 205 || Irsensor&lt;br /&gt;
|-&lt;br /&gt;
| 206 || Capture&lt;br /&gt;
|-&lt;br /&gt;
| 208 || Manu&lt;br /&gt;
|-&lt;br /&gt;
| 209 || ATK&lt;br /&gt;
|-&lt;br /&gt;
| 210 || Web&lt;br /&gt;
|-&lt;br /&gt;
| 211 ||&lt;br /&gt;
|-&lt;br /&gt;
| 212 || GRC&lt;br /&gt;
|-&lt;br /&gt;
| 216 || Migration&lt;br /&gt;
|-&lt;br /&gt;
| 217 || Migration Idc Server&lt;br /&gt;
|-&lt;br /&gt;
| 345 || libnx&lt;br /&gt;
|-&lt;br /&gt;
| 346 || [[Homebrew ABI]]&lt;br /&gt;
|-&lt;br /&gt;
| 347 || Homebrew Loader&lt;br /&gt;
|-&lt;br /&gt;
| 348 || libnx Nvidia errors&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Error codes =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E01 || 1 || 7 || Session count exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C01 || 1 || 14 || Invalid kernel capability descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x4201 || 1 || 33 || Not Implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x7601 || 1 || 59 || Thread terminated/termination requested&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C01 || 1 || 70 || No more debug events&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA01 || 1 || 101 || Invalid size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC01 || 1 || 102 || Invalid address&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE01 || 1 || 103 || Resource exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD001 || 1 || 104 || Memory exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD201 || 1 || 105 || Handle-table exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 1 || 106 || Invalid memory state / invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD801 || 1 || 108 || Invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC01 || 1 || 110 || Invalid memory range&lt;br /&gt;
|-&lt;br /&gt;
| 0xE001 || 1 || 112 || Invalid thread priority.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE201 || 1 || 113 || Invalid processor id.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE401 || 1 || 114 || Invalid handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE601 || 1 || 115 || Invalid pointer/Syscall copy from user failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE801 || 1 || 116 || Invalid combination&lt;br /&gt;
|-&lt;br /&gt;
| 0xEA01 || 1 || 117 || Time out. Also when you give 0 handles to svcWaitSynchronizationN.&lt;br /&gt;
|-&lt;br /&gt;
| 0xEC01 || 1 || 118 || Canceled/interrupted [?]&lt;br /&gt;
|-&lt;br /&gt;
| 0xEE01 || 1 || 119 || Out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0xF001 || 1 || 120 || Invalid enum&lt;br /&gt;
|-&lt;br /&gt;
| 0xF201 || 1 || 121 || No such entry&lt;br /&gt;
|-&lt;br /&gt;
| 0xF401 || 1 || 122 || Irq/DeviceAddressSpace/{...} already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xF601 || 1 || 123 || Port remote dead&lt;br /&gt;
|-&lt;br /&gt;
| 0xF801 || 1 || 124 || [Usermode] Unhandled interrupt/exception&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA01 || 1 || 125 || Process already started/Wrong memory permission?&lt;br /&gt;
|-&lt;br /&gt;
| 0xFC01 || 1 || 126 || Reserved value&lt;br /&gt;
|-&lt;br /&gt;
| 0xFE01 || 1 || 127 || Invalid hardware breakpoint&lt;br /&gt;
|-&lt;br /&gt;
| 0x10001 || 1 || 128 || [Usermode] Fatal exception&lt;br /&gt;
|-&lt;br /&gt;
| 0x10201 || 1 || 129 || Last thread didn&#039;t belong to your process&lt;br /&gt;
|-&lt;br /&gt;
| 0x10601 || 1 || 131 || Port closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x10801 || 1 || 132 || Resource limit exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x20801 || 1 || 260 || Command buffer too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x40a01 || 1 || 517 || No such process&lt;br /&gt;
|-&lt;br /&gt;
| 0x41001 || 1 || 520 || Process not being debugged&lt;br /&gt;
|-&lt;br /&gt;
| 0x202 || 2 || 1 || Path does not exist.&lt;br /&gt;
|-&lt;br /&gt;
| 0x402 || 2 || 2 || Path already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE02 || 2 || 7 || Resource already in use (file already opened, savedata filesystem already mounted).&lt;br /&gt;
|-&lt;br /&gt;
| 0x4602 || 2 || 35 || Not enough free space for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4802 || 2 || 36 || Not enough free space for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A02 || 2 || 37 || Not enough free space for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C02 || 2 || 38 || Not enough free space for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4E02 || 2 || 39 || Not enough free space on SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 2 || 60 || The specified [[NCA]]-type doesn&#039;t exist for this title.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 2 || 1001 || Process does not have RomFs &lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 2 || 1002 || Title-id not found / savedata not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA202 || 2 || 2001 || SD card not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13B002 || 2 || 2520 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13DA02 || 2 || 2541 || Version check failed when mounting gamecard sysupdate partition?&lt;br /&gt;
|-&lt;br /&gt;
| 0x171402 || 2 || 2954 || Invalid gamecard handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 2 || 3001 || Unimplemented behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x177602 || 2 || 3003 || File/Directory already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x190202 || 2 || 3201 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190602 || 2 || 3203 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190802 || 2 || 3204 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190A02 || 2 || 3205 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190C02 || 2 || 3206 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x191002 || 2 || 3208 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x195802 || 2 || 3244 || Allocation failure related to SD cards&lt;br /&gt;
|-&lt;br /&gt;
| 0x196002 || 2 || 3248 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x196202 || 2 || 3249 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A3E02 || 2 || 3359 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4002 || 2 || 3360 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4A02 || 2 || 3365 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x21BC02 || 2 || 4318 || Invalid save data filesystem magic (valid magic is SAVE in ASCII)&lt;br /&gt;
|-&lt;br /&gt;
| 0x234202 || 2 || 4513 || Error reading ACID section in NPDM&lt;br /&gt;
|-&lt;br /&gt;
| 0x234402 || 2 || 4514 || Invalid NPDM ACID section size&lt;br /&gt;
|-&lt;br /&gt;
| 0x234602 || 2 || 4515 || Last byte of the ACID modulus is zero&lt;br /&gt;
|-&lt;br /&gt;
| 0x234802 || 2 || 4516 || Invalid ACID fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234A02 || 2 || 4517 || Invalid NCA magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x234C02 || 2 || 4518 || Invalid NCA header fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234E02 || 2 || 4519 || Invalid NCA header ACID signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x235002 || 2 || 4520 || Invalid NCA header section hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x235202 || 2 || 4521 || Invalid NCA Key index&lt;br /&gt;
|-&lt;br /&gt;
| 0x235602 || 2 || 4523 || Invalid encryption type&lt;br /&gt;
|-&lt;br /&gt;
| 0x235802 || 2 || 4524 || Redirection BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235A02 || 2 || 4525 || Encryption BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235C02 || 2 || 4526 || Redirection BKTR table end offset is past the Encryption BKTR table start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x235E02 || 2 || 4527 || NCA-path used with the wrong titleID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x236002 || 2 || 4528 || NCA header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236202 || 2 || 4529 || NCA FS header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236802 || 2 || 4532 || PartitionFS hash block size is not a power of 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236A02 || 2 || 4533 || PartitionFS hash &amp;quot;always_2&amp;quot; field is not 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236C02 || 2 || 4534 || PartitionFS hash table is too small for main data&lt;br /&gt;
|-&lt;br /&gt;
| 0x236E02 || 2 || 4535 || Invalid PartitionFS block hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244402 || 2 || 4642 || Invalid Partition file hashed region bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x244602 || 2 || 4643 || Invalid Partition FS hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244802 || 2 || 4644 || Invalid PFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244A02 || 2 || 4645 || Invalid HFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244C02 || 2 || 4646 || Invalid name offset for Partition FS file entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x244E02 || 2 || 4647 || Calculated Partition FS header size changed between 2 consecutive reads&lt;br /&gt;
|-&lt;br /&gt;
| 0x249802 || 2 || 4684 || Invalid FAT file number.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249C02 || 2 || 4686 || Invalid FAT format for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249E02 || 2 || 4687 || Invalid FAT format for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A002 || 2 || 4688 || Invalid FAT format for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A202 || 2 || 4689 || Invalid FAT format for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x250E02 || 2 || 4743 || [[NAX0|Corrupted]] NAX0 header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x251002 || 2 || 4744 || Invalid [[NAX0]] magicnum.&lt;br /&gt;
|-&lt;br /&gt;
| 0x280202 || 2 || 5121 || Invalid FAT size&lt;br /&gt;
|-&lt;br /&gt;
| 0x280402 || 2 || 5122 || Invalid FAT BPB (BIOS Parameter Block)&lt;br /&gt;
|-&lt;br /&gt;
| 0x280602 || 2 || 5123 || Invalid FAT parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x280802 || 2 || 5124 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280A02 || 2 || 5125 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280C02 || 2 || 5126 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280E02 || 2 || 5127 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x296A02 || 2 || 5301 || Mountpoint not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 || 2 || 6001 || Invalid input&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE602 || 2 || 6003 || Path too long&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE802 || 2 || 6004 || Invalid character.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEA02 || 2 || 6005 || Invalid directory path.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEC02 || 2 || 6006 || Unable to retrieve directory from path&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 2 || 6061 || Offset outside storage&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 || 2 || 6300 || Operation not supported&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 || 2 || 6400 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x326602 || 2 || 6451 || Missing titlekey(?) required to mount content&lt;br /&gt;
|-&lt;br /&gt;
| 0x326E02 || 2 || 6455 || File not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327002 || 2 || 6456 || Directory not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327402 || 2 || 6458 || FS allocators already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x327602 || 2 || 6459 || FS allocators already used&lt;br /&gt;
|-&lt;br /&gt;
| 0x327A02 || 2 || 6461 || FS allocator alignment violation&lt;br /&gt;
|-&lt;br /&gt;
| 0x339402 || 2 || 6602 || File not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x339602 || 2 || 6603 || Directory not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DC402 || 2 || 7906 || RomFs table contains the given entry. (Not an error)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCC02 || 2 || 7910 || RomFs directory has no more child directories/files when iterating&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DD402 || 2 || 7914 || RomFs table: Path is file, not directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x803 || 3 || 4 || OS busy&lt;br /&gt;
|-&lt;br /&gt;
| 0xE03 || 3 || 7 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x1003 || 3 || 8 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1203 || 3 || 9 || Out of resources&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EA03 || 3 || 501 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE03 || 3 || 503 || Invalid memory mirror&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FE03 || 3 || 1023 || TLS slot is not allocated&lt;br /&gt;
|-&lt;br /&gt;
| 0xA05 || 5 || 5 || [[Content_Manager_services|NcaID]] not found. Returned when attempting to mount titles which exist that aren&#039;t *8XX titles, the same way *8XX titles are mounted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE05 || 5 || 7 || TitleId not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1805 || 5 || 12 || Invalid StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC05 || 5 || 110 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x17C05 || 5 || 190 || Gamecard not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F405 || 5 || 250 || Sdcard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x20805 || 5 || 260 || Storage not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0x806 || 6 || 4 || Converted from error 0xD401&lt;br /&gt;
|-&lt;br /&gt;
| 0x1006 || 6 || 8 || Converted from error 0xE401&lt;br /&gt;
|-&lt;br /&gt;
| 0x408 || 8 || 2 || Program location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x608 || 8 || 3 || Invalid context for control location&lt;br /&gt;
|-&lt;br /&gt;
| 0x808 || 8 || 4 || Storage not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA08 || 8 || 5 || Access denied&lt;br /&gt;
|-&lt;br /&gt;
| 0xC08 || 8 || 6 || Offline manual HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xE08 || 8 || 7 || Title is not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1008 || 8 || 8 || Control location entry for host not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1208 || 8 || 9 || Legal info HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x209 || 9 || 1 || Args too long.&lt;br /&gt;
|-&lt;br /&gt;
| 0x409 || 9 || 2 || Maximum processes loaded.&lt;br /&gt;
|-&lt;br /&gt;
| 0x609 || 9 || 3 || NPDM too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x19009 || 9 || 200 || Invalid access control sizes in NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x809 || 9 || 4 || Invalid NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0xA09 || 9 || 5 || Invalid files.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE09 || 9 || 7 || Already registered.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1009 || 9 || 8 || Title not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1209 || 9 || 9 || Title-id in ACI0 doesn&#039;t match range in ACID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6609 || 9 || 51 || Invalid memory state/permission&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A09 || 9 || 53 || Invalid NRR&lt;br /&gt;
|-&lt;br /&gt;
| 0xA209 || 9 || 81 || Unaligned NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xA409 || 9 || 82 || Bad NRR size&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA09 || 9 || 85 || Bad NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xAE09 || 9 || 87 || Bad initialization&lt;br /&gt;
|-&lt;br /&gt;
| 0xC809 || 9 || 100 || Unknown ACI0 descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE09 || 9 || 103 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD009 || 9 || 104 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;SyscallMask&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD409 || 9 || 106 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapIoOrNormalRange&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD609 || 9 || 107 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapNormalPage&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xDE09 || 9 || 111 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;InterruptPair&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE209 || 9 || 113 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;ApplicationType&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE409 || 9 || 114 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelReleaseVersion&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE609 || 9 || 115 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;HandleTableSize&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE809 || 9 || 116 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;DebugFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x1940A || 10 || 202 || Invalid CMIF header size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A60A || 10 || 211 || Invalid CMIF input header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A80A || 10 || 212 || Invalid CMIF output header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA0A || 10 || 221 || Invalid method dispatch ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D60A || 10 || 235 || Invalid in object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D80A || 10 || 236 || Invalid out object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0A || 10 || 301 || Out of domain entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20B || 11 || 1 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC0B || 11 || 102 || Out of server session memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x11A0B || 11 || 141 || Went past maximum during marshalling.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1900B || 11 || 200 || Session doesn&#039;t support domains.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0B || 11 || 301 || Remote process is dead.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3260B || 11 || 403 || Unknown request type&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D60B || 11 || 491 || IPC Query 1 failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20F || 15 || 1 || Pid not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x60F || 15 || 3 || Process has no pending events&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0F || 15 || 5 || Application already running&lt;br /&gt;
|-&lt;br /&gt;
| 0x410 || 16 || 2 || Title-id not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xF010 || 16 || 120 || Gamecard sysupdate not required&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F610 || 16 || 251 || Unexpected StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0x215 || 21 || 1 || Out of processes&lt;br /&gt;
|-&lt;br /&gt;
| 0x415 || 21 || 2 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x615 || 21 || 3 || Max sessions&lt;br /&gt;
|-&lt;br /&gt;
| 0x815 || 21 || 4 || Service already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xA15 || 21 || 5 || Out of services&lt;br /&gt;
|-&lt;br /&gt;
| 0xC15 || 21 || 6 || Invalid name (all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0xE15 || 21 || 7 || Service not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1015 || 21 || 8 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x1215 || 21 || 9 || Service Access Control too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x416 || 22 || 2 || Address space is full&lt;br /&gt;
|-&lt;br /&gt;
| 0x616 || 22 || 3 || NRO already loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x816 || 22 || 4 || Invalid NRO header values&lt;br /&gt;
|-&lt;br /&gt;
| 0xC16 || 22 || 6 || Bad NRR magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x1016 || 22 || 8 || Reached max NRR count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1216 || 22 || 9 || Unable to verify NRO hash or NRR signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x80216 || 22 || 1025 || Address not page-aligned&lt;br /&gt;
|-&lt;br /&gt;
| 0x80416 || 22 || 1026 || Incorrect NRO size&lt;br /&gt;
|-&lt;br /&gt;
| 0x80816 || 22 || 1028 || NRO not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80A16 || 22 || 1029 || NRR not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80C16 || 22 || 1030 || Already initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E16 || 22 || 1031 || Not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x41A || 26 || 2 || Argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0xC81A || 26 || 100 || Incorrect buffer size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Unknown TZ error&lt;br /&gt;
|-&lt;br /&gt;
| 0xD01A || 26 || 104 || All AES engines busy&lt;br /&gt;
|-&lt;br /&gt;
| 0xD21A || 26 || 105 || Invalid AES engine-id&lt;br /&gt;
|-&lt;br /&gt;
| 0x19269 || 105 || 201 || Null settings name&lt;br /&gt;
|-&lt;br /&gt;
| 0x19469 || 105 || 202 || Null settings key&lt;br /&gt;
|-&lt;br /&gt;
| 0x19669 || 105 || 203 || Null settings value&lt;br /&gt;
|-&lt;br /&gt;
| 0x19A69 || 105 || 205 || Null settings value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A069 || 105 || 208 || Null setting value size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A269 || 105 || 209 || Null debug mode flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA69 || 105 || 221 || Setting group name has zero length&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BC69 || 105 || 222 || Empty settings item key&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E269 || 105 || 241 || Setting group name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E469 || 105 || 242 || Setting name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x20A69 || 105 || 261 || Setting group name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x20C69 || 105 || 262 || Setting name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x4DA69 || 105 || 621 || Null language code buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4EE69 || 105 || 631 || Null network settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4F069 || 105 || 632 || Null network settings output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x50269 || 105 || 641 || Null backlight settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51669 || 105 || 651 || Null Bluetooth device setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51869 || 105 || 652 || Null Bluetooth device setting output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51A69 || 105 || 653 || Null Bluetooth enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51C69 || 105 || 654 || Null Bluetooth AFH enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51E69 || 105 || 655 || Null Bluetooth boost enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52069 || 105 || 656 || Null BLE pairing settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52269 || 105 || 657 || Null BLE pairing settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52A69 || 105 || 661 || Null external steady clock source ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52C69 || 105 || 662 || Null user system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52E69 || 105 || 663 || Null network system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53069 || 105 || 664 || Null user system clock automatic correction enabled flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53269 || 105 || 665 || Null shutdown RTC value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53469 || 105 || 666 || Null external steady clock internal offset buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53E69 || 105 || 671 || Null account settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55269 || 105 || 681 || Null audio volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55669 || 105 || 683 || Null ForceMuteOnHeadphoneRemoved buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55869 || 105 || 684 || Null headphone volume warning count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55E69 || 105 || 687 || Invalid audio output mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x56069 || 105 || 688 || Null headphone volume update flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x56669 || 105 || 691 || Null console information upload flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57A69 || 105 || 701 || Null automatic application download flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57C69 || 105 || 702 || Null notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57E69 || 105 || 703 || Null account notification settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58069 || 105 || 704 || Null account notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58E69 || 105 || 711 || Null vibration master volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59069 || 105 || 712 || Null NX controller settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59269 || 105 || 713 || Null NX controller settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59469 || 105 || 714 || Null USB full key enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A269 || 105 || 721 || Null TV settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A469 || 105 || 722 || Null EDID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5B669 || 105 || 731 || Null data deletion settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CA69 || 105 || 741 || Null initial system applet program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CC69 || 105 || 742 || Null overlay disp program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CE69 || 105 || 743 || Null IsInRepairProcess buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5D069 || 105 || 744 || Null RequiresRunRepairTimeReviser buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5DE69 || 105 || 751 || Null device timezone location name buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5F269 || 105 || 761 || Null primary album storage buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60669 || 105 || 771 || Null USB 3.0 enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60869 || 105 || 772 || Null USB Type-C power source circuit version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A69 || 105 || 781 || Null battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x62E69 || 105 || 791 || Null serial number buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64269 || 105 || 801 || Null lock screen flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64669 || 105 || 803 || Null color set ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64869 || 105 || 804 || Null quest flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64A69 || 105 || 805 || Null wireless certification file size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64C69 || 105 || 806 || Null wireless certification file buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64E69 || 105 || 807 || Null initial launch settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65069 || 105 || 808 || Null device nickname buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65269 || 105 || 809 || Null battery percentage flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65469 || 105 || 810 || Null applet launch flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7E869 || 105 || 1012 || Null wireless LAN enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FA69 || 105 || 1021 || Null product model buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E69 || 105 || 1031 || Null NFC enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82269 || 105 || 1041 || Null ECI device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82469 || 105 || 1042 || Null E-Ticket device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x83669 || 105 || 1051 || Null sleep settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84A69 || 105 || 1061 || Null EULA version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84C69 || 105 || 1062 || Null EULA version entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x85E69 || 105 || 1071 || Null LDN channel buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87269 || 105 || 1081 || Null SSL key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87469 || 105 || 1082 || Null SSL certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x88669 || 105 || 1091 || Null telemetry flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89A69 || 105 || 1101 || Null Gamecard key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89C69 || 105 || 1102 || Null Gamecard certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8AE69 || 105 || 1111 || Null PTM battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B069 || 105 || 1112 || Null PTM fuel gauge parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C269 || 105 || 1121 || Null ECI device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C469 || 105 || 1122 || Null E-Ticket device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D669 || 105 || 1131 || Null speaker parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EA69 || 105 || 1141 || Null firmware version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EC69 || 105 || 1142 || Null firmware version digest buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EE69 || 105 || 1143 || Null rebootless system update version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8FE69 || 105 || 1151 || Null Mii author ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x91269 || 105 || 1161 || Null fatal flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x92669 || 105 || 1171 || Null auto update enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x93A69 || 105 || 1181 || Null external RTC reset flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x94E69 || 105 || 1191 || Null push notification activity mode buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x96269 || 105 || 1201 || Null service discovery control setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x97669 || 105 || 1211 || Null error report share permission buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x98A69 || 105 || 1221 || Null LCD vendor ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x99E69 || 105 || 1231 || Null console SixAxis sensor acceleration bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A069 || 105 || 1232 || Null console SixAxis sensor angular velocity bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A269 || 105 || 1233 || Null console SixAxis sensor acceleration gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A469 || 105 || 1234 || Null console SixAxis sensor angular velocity gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A669 || 105 || 1235 || Null console SixAxis sensor angular velocity time bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A869 || 105 || 1236 || Null console SixAxis sensor angular acceleration buffer &lt;br /&gt;
|-&lt;br /&gt;
| 0x9B269 || 105 || 1241 || Null keyboard layout buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9BA69 || 105 || 1245 || Invalid keyboard layout&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C669 || 105 || 1251 || Null web inspector flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C869 || 105 || 1252 || Null allowed SSL hosts buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CA69 || 105 || 1253 || Null allowed SSL hosts entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CC69 || 105 || 1254 || Null host FS mount point buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9EE69 || 105 || 1271 || Null Amiibo key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F069 || 105 || 1272 || Null Amiibo ECQV certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F269 || 105 || 1273 || Null Amiibo ECDSA certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F469 || 105 || 1274 || Null Amiibo ECQV BLS key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F669 || 105 || 1275 || Null Amiibo ECQV BLS certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F869 || 105 || 1276 || Null Amiibo ECQV BLS root certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x272 || 114 || 1 || Generic error&lt;br /&gt;
|-&lt;br /&gt;
| 0xC72 || 114 || 6 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || 116 || 0 || Time service not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC74 || 116 || 102 || Time not set&lt;br /&gt;
|-&lt;br /&gt;
| 0x19074 || 116 || 200 || Invalid time comparison&lt;br /&gt;
|-&lt;br /&gt;
| 0x19274 || 116 || 201 || Signed overflow/underflow&lt;br /&gt;
|-&lt;br /&gt;
| 0x64274 || 116 || 801 || Memory allocation failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x70A74 || 116 || 901 || Null pointer&lt;br /&gt;
|-&lt;br /&gt;
| 0x70C74 || 116 || 902 || Value out of valid range&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BA74 || 116 || 989 || Entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BC74 || 116 || 990 || Unimplemented functionality&lt;br /&gt;
|-&lt;br /&gt;
| 0x287C || 124 || 20 || Argument is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C7C || 124 || 22 || Argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C7C || 124 || 30 || Bad input buffer size&lt;br /&gt;
|-&lt;br /&gt;
| 0x407C || 124 || 32 || Invalid input buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x27E || 126 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x87E || 126 || 4 || Entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE7E || 126 || 67 || Invalid database signature value (should be &amp;quot;NFDB&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0xD27E || 126 || 69 || Invalid database entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1987E || 126 || 204 || Development/debug-only behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x480 || 128 || 2 || IStorage not available.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4680 || 128 || 35 || Error while launching applet.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A80 || 128 || 37 || Title-ID not found. Caused by code 0x410 when applet launch fails&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E880 || 128 || 500 || Invalid IStorage size (negative?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EC80 || 128 || 502 || IStorage has already been opened by another accessor&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE80 || 128 || 503 || IStorage Read/Write out-of-bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x3FE80 || 128 || 511 || IStorage opened as wrong type (data opened as transfermem, transfermem opened as data)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B080 || 128 || 600 || Failed to allocate memory for IStorage&lt;br /&gt;
|-&lt;br /&gt;
| 0x59080 || 128 || 712 || Thread stack pool exhausted (out of memory)&lt;br /&gt;
|-&lt;br /&gt;
| 0x7A880 || 128 || 980 || &amp;lt;code&amp;gt;am.debug!dev_function&amp;lt;/code&amp;gt; setting needs to be set&lt;br /&gt;
|-&lt;br /&gt;
| 0xA83 || 131 || 5 || Unrecognized applet ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x485 || 133 || 2 || Invalid DVFS table ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x885 || 133 || 4 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x3CF089 || 137 || 7800 || Unknown/invalid libcurl error.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E8289-0x3F4089 || 137 || 8001-8096 || libcurl error 1-96. Some of the libcurl errors in the error-table map to the above unknown-libcurl-error however.&lt;br /&gt;
|-&lt;br /&gt;
| 0x68A || 138 || 3 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x668C || 140 || 51 || USB data-transfer in progress&lt;br /&gt;
|-&lt;br /&gt;
| 0xD48C || 140 || 106 || Invalid descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x1928C || 140 || 201 || USB device not bound / interface already enabled&lt;br /&gt;
|-&lt;br /&gt;
| 0x299 || 153 || 1 || Invalid audio device&lt;br /&gt;
|-&lt;br /&gt;
| 0x499 || 153 || 2 || Operation couldn&#039;t complete successfully&lt;br /&gt;
|-&lt;br /&gt;
| 0x699 || 153 || 3 || Invalid sample rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x899 || 153 || 4 || Buffer size too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x1099 || 153 || 8 || Too many buffers are still unreleased&lt;br /&gt;
|-&lt;br /&gt;
| 0x1499 || 153 || 10 || Invalid channel count&lt;br /&gt;
|-&lt;br /&gt;
| 0x40299 || 153 || 513 || Invalid/Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0099 || 153 || 1536 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0899 || 153 || 1540 || Audio output was already started&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C9D || 157 || 30 || Address is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E9D || 157 || 31 || PID is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x549D || 157 || 42 || Already bound&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC9D || 157 || 102 || Invalid PID&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA3 || 163 ||  5 || System is booting up repair process without VOL+ held down.&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA3 || 163 || 6 || System is booting up repair process that requires RepairTimeReviser but does not have special cartridge inserted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8B2 || 178 || 100 || Invalid user ID&lt;br /&gt;
|-&lt;br /&gt;
| 0xCAB2 || 178 || 101 || User does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 0x12CB2 || 178 || 150 || Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| 0x190B2 || 178 || 200 || File storage failure&lt;br /&gt;
|-&lt;br /&gt;
| 0xF0CD || 205 || 120 || IR image data not available/ready.&lt;br /&gt;
|-&lt;br /&gt;
| 0x35B || 347 || 1 || Failed to init SM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x55B || 347 || 2 || Failed to init FS.&lt;br /&gt;
|-&lt;br /&gt;
| 0x75B || 347 || 3 || Failed to to open NRO file. May also happen when SD card isn&#039;t inserted / SD mounting failed earlier.&lt;br /&gt;
|-&lt;br /&gt;
| 0x95B || 347 || 4 || Failed to read NRO header.&lt;br /&gt;
|-&lt;br /&gt;
| 0xB5B || 347 || 5 || Invalid NRO magic.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD5B || 347 || 6 || Invalid NRO segments.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF5B || 347 || 7 || Failed to read NRO.&lt;br /&gt;
|-&lt;br /&gt;
| 0x135B || 347 || 9 || Failed to allocate heap.&lt;br /&gt;
|-&lt;br /&gt;
| 0x255B || 347 || 18 || Failed to map code-binary memory.&lt;br /&gt;
|-&lt;br /&gt;
| 0x275B || 347 || 19 || Failed to map code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x295B || 347 || 20 || Failed to map code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B5B || 347 || 21 || Failed to map code memory (.data+.bss).&lt;br /&gt;
|-&lt;br /&gt;
| 0x315B || 347 || 24 || Failed to unmap code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x335B || 347 || 25 || Failed to unmap code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x355B || 347 || 26 || Failed to unmap code memory (.data+.bss).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FS Error Codes ==&lt;br /&gt;
The following are the error codes recognized by nn::fs::detail::LogErrorMessage found in some [[Factory Setup|factory]] titles:&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Description || Message&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 60 || Error: Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 106 || Error: Passed buffer is not usable for fs library.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 1001 || Error: Specified partition is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 1002 || Error: Specified target is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA002 - 0x138602 || 2000 - 2499 || Error: Failed to access SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x136802 - 0x176E02 || 2500 - 2999 || Error: Failed to access game card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 3001 || Error: Specified operation is not implemented.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177A02 || 3005 || Error: Specified value is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B5802 - 0x1F3E02 || 3500 - 3999 || Error: Failed to access MMC.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4202 - 0x219602 || 4001 - 4299 || Error: ROM is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x219A02 - 0x232602 || 4301 - 4499 || Error: Save data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x232A02 - 0x23EE02 || 4501 - 4599 || Error: NCA is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x23F202 - 0x243E02 || 4601 - 4639 || Error: Integrity verification failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x244202 - 0x246602 || 4641 - 4659 || Error: Partition FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x246A02 - 0x248E02 || 4661 - 4679 || Error: Built-in-storage is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249202 - 0x24B602 || 4681 - 4699 || Error: FAT FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24BA02 - 0x24DE02 || 4701 - 4719 || Error: HOST FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4002 - 0x270E02 || 4000, 4300, 4500, 4600, 4640, 4660, 4680, 4700, 4720-4999 || Error: Data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x271002 - 0x2EDE02 || 5000-5999 || Error: Unexpected failure occurred.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE402 - 0x2F1A02 || 6002-6029 || Error: Invalid path was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 6061 || Error: Invalid offset was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5C02 || 6062 || Error: Invalid size was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5E02 || 6063 || Error: Null pointer argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE002 || 6000 || Error: Precondition violation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 - 0x306E02 || 6001-6199 || Error: Invalid argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x307202 || 6201 || Error: OpenMode_AllowAppend is required for implicit extension of file size by WriteFile().&lt;br /&gt;
|-&lt;br /&gt;
| 0x307002 - 0x313602 || 6200, 6202 - 6299 || Error: Invalid operation for the open mode.&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 - 0x31FE02 || 6300-6399 || Error: Unsupported operation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 - 0x32C602 || 6400-6499 || Error: Permission denied.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346402 || 6706 || Error: Enough journal space is not left.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346A02 || 6709 || Error: The open count of files and directories reached the limitation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Fatal Errors =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Description&lt;br /&gt;
|-&lt;br /&gt;
| 2162-0002&lt;br /&gt;
| Can be triggered by running [[SVC|svcBreak]]. The svcBreak params have no effect on the value of the thrown error-code.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0000&lt;br /&gt;
| Userland ARM undefined instruction exception&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0001&lt;br /&gt;
| Userland ARM prefetch-abort due to PC set to non-executable region&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0002&lt;br /&gt;
| Userland ARM data abort. Also caused by abnormal process termination via [[SVC|svcExitProcess]]. Note: directly jumping to nnMain()-retaddr from non-main-thread has the same result.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0003&lt;br /&gt;
| Userland PC address not aligned to 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0008&lt;br /&gt;
| Can occur when attempting to call an svc outside the whitelist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Support Errors =&lt;br /&gt;
This section is for Support Errors displayed by the error-applet, separate from the normal Result errors.&lt;br /&gt;
&lt;br /&gt;
== Support Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [[Internet_Browser|General web-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 809 || [[Internet_Browser|WifiWebAuthApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [[Internet_Browser|Whitelisted-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 811 || [[Internet_Browser|ShopN]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
8XX is for/includes system applets.&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| {web-applets listed above}&lt;br /&gt;
| 2750&lt;br /&gt;
| MP4 parsing failed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Normal error-codes displayed by the system also use the same format as fatal-errors.&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=6097</id>
		<title>Error codes</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=6097"/>
		<updated>2019-01-29T02:07:47Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* Error codes */ Partition FS codes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Structure =&lt;br /&gt;
These have been redesigned from the 3DS so that they fit within a Aarch64 MOV instruction immediate most of the time (without requiring the additional MOVK).&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Bits || Field&lt;br /&gt;
|-&lt;br /&gt;
| 8-0 || Module&lt;br /&gt;
|-&lt;br /&gt;
| 21-9 || Description&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When a fatal-error is received the error code is outputted using the following formatter:&lt;br /&gt;
  %04d-%04d&lt;br /&gt;
&lt;br /&gt;
.. where the first code is &amp;lt;code&amp;gt;2000 + Module&amp;lt;/code&amp;gt;, and the other being &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;. Bits &amp;gt;=22 from the error-code are unused when displaying fatal-errors, since the Description ends with bit21.&lt;br /&gt;
&lt;br /&gt;
= Modules =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Kernel&lt;br /&gt;
|-&lt;br /&gt;
| 2 || FS&lt;br /&gt;
|-&lt;br /&gt;
| 3 || OS (Memory, Thread, Mutex, NVIDIA)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || HTCS&lt;br /&gt;
|-&lt;br /&gt;
| 5 || NCM&lt;br /&gt;
|-&lt;br /&gt;
| 6 || DD&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Debug Monitor&lt;br /&gt;
|-&lt;br /&gt;
| 8 || LR&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Loader&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CMIF (IPC command interface)&lt;br /&gt;
|-&lt;br /&gt;
| 11 || HIPC (IPC)&lt;br /&gt;
|-&lt;br /&gt;
| 15 || PM&lt;br /&gt;
|-&lt;br /&gt;
| 16 || NS&lt;br /&gt;
|-&lt;br /&gt;
| 17 || Sockets&lt;br /&gt;
|-&lt;br /&gt;
| 18 || HTC&lt;br /&gt;
|-&lt;br /&gt;
| 20 || NCM Content&lt;br /&gt;
|-&lt;br /&gt;
| 21 || SM&lt;br /&gt;
|-&lt;br /&gt;
| 22 || RO userland&lt;br /&gt;
|-&lt;br /&gt;
| 24 || SDMMC&lt;br /&gt;
|-&lt;br /&gt;
| 25 || OVLN&lt;br /&gt;
|-&lt;br /&gt;
| 26 || SPL&lt;br /&gt;
|-&lt;br /&gt;
| 100 || ETHC&lt;br /&gt;
|-&lt;br /&gt;
| 101 || I2C&lt;br /&gt;
|-&lt;br /&gt;
| 102 || GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 103 || UART&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Settings&lt;br /&gt;
|-&lt;br /&gt;
| 107 || WLAN&lt;br /&gt;
|-&lt;br /&gt;
| 108 || XCD&lt;br /&gt;
|-&lt;br /&gt;
| 110 || NIFM&lt;br /&gt;
|-&lt;br /&gt;
| 111 || Hwopus&lt;br /&gt;
|-&lt;br /&gt;
| 113 || Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
| 114 || VI&lt;br /&gt;
|-&lt;br /&gt;
| 115 || NFP&lt;br /&gt;
|-&lt;br /&gt;
| 116 || Time&lt;br /&gt;
|-&lt;br /&gt;
| 117 || FGM&lt;br /&gt;
|-&lt;br /&gt;
| 118 || OE&lt;br /&gt;
|-&lt;br /&gt;
| 120 || PCIe&lt;br /&gt;
|-&lt;br /&gt;
| 121 || Friends&lt;br /&gt;
|-&lt;br /&gt;
| 122 || BCAT&lt;br /&gt;
|-&lt;br /&gt;
| 123 || SSL&lt;br /&gt;
|-&lt;br /&gt;
| 124 || Account&lt;br /&gt;
|-&lt;br /&gt;
| 125 || News&lt;br /&gt;
|-&lt;br /&gt;
| 126 || Mii&lt;br /&gt;
|-&lt;br /&gt;
| 127 || NFC&lt;br /&gt;
|-&lt;br /&gt;
| 128 || AM&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Play Report&lt;br /&gt;
|-&lt;br /&gt;
| 130 || AHID&lt;br /&gt;
|-&lt;br /&gt;
| 132 || Home Menu (Qlaunch)&lt;br /&gt;
|-&lt;br /&gt;
| 133 || PCV&lt;br /&gt;
|-&lt;br /&gt;
| 134 || OMM&lt;br /&gt;
|-&lt;br /&gt;
| 135 || BPC&lt;br /&gt;
|-&lt;br /&gt;
| 136 || PSM&lt;br /&gt;
|-&lt;br /&gt;
| 137 || NIM&lt;br /&gt;
|-&lt;br /&gt;
| 138 || PSC&lt;br /&gt;
|-&lt;br /&gt;
| 139 || TC&lt;br /&gt;
|-&lt;br /&gt;
| 140 || USB&lt;br /&gt;
|-&lt;br /&gt;
| 141 || NSD&lt;br /&gt;
|-&lt;br /&gt;
| 142 || PCTL&lt;br /&gt;
|-&lt;br /&gt;
| 143 || BTM&lt;br /&gt;
|-&lt;br /&gt;
| 144 || EC (Shop)&lt;br /&gt;
|-&lt;br /&gt;
| 145 || ETicket&lt;br /&gt;
|-&lt;br /&gt;
| 146 || NGC (Bad Words)&lt;br /&gt;
|-&lt;br /&gt;
| 147 || Error Report&lt;br /&gt;
|-&lt;br /&gt;
| 148 || APM&lt;br /&gt;
|-&lt;br /&gt;
| 150 || Profiler&lt;br /&gt;
|-&lt;br /&gt;
| 151 || Error Upload&lt;br /&gt;
|-&lt;br /&gt;
| 153 || Audio&lt;br /&gt;
|-&lt;br /&gt;
| 154 || NPNS&lt;br /&gt;
|-&lt;br /&gt;
| 155 || NPNS HTTP Stream&lt;br /&gt;
|-&lt;br /&gt;
| 157 || ARP&lt;br /&gt;
|-&lt;br /&gt;
| 158 || Boot&lt;br /&gt;
|-&lt;br /&gt;
| 159 || SWKBD&lt;br /&gt;
|-&lt;br /&gt;
| 161 || NFC Mifare&lt;br /&gt;
|-&lt;br /&gt;
| 162 || Userland assert&lt;br /&gt;
|-&lt;br /&gt;
| 163 || Fatal&lt;br /&gt;
|-&lt;br /&gt;
| 164 || NIM Shop&lt;br /&gt;
|-&lt;br /&gt;
| 165 || SPSM&lt;br /&gt;
|-&lt;br /&gt;
| 167 || BGTC&lt;br /&gt;
|-&lt;br /&gt;
| 168 || Userland crash&lt;br /&gt;
|-&lt;br /&gt;
| 178 || PDM&lt;br /&gt;
|-&lt;br /&gt;
| 179 || OLSC&lt;br /&gt;
|-&lt;br /&gt;
| 180 || SREPO&lt;br /&gt;
|-&lt;br /&gt;
| 181 || Dauth&lt;br /&gt;
|-&lt;br /&gt;
| 202 || HID&lt;br /&gt;
|-&lt;br /&gt;
| 203 || LDN&lt;br /&gt;
|-&lt;br /&gt;
| 205 || Irsensor&lt;br /&gt;
|-&lt;br /&gt;
| 206 || Capture&lt;br /&gt;
|-&lt;br /&gt;
| 208 || Manu&lt;br /&gt;
|-&lt;br /&gt;
| 209 || ATK&lt;br /&gt;
|-&lt;br /&gt;
| 210 || Web&lt;br /&gt;
|-&lt;br /&gt;
| 211 ||&lt;br /&gt;
|-&lt;br /&gt;
| 212 || GRC&lt;br /&gt;
|-&lt;br /&gt;
| 216 || Migration&lt;br /&gt;
|-&lt;br /&gt;
| 217 || Migration Idc Server&lt;br /&gt;
|-&lt;br /&gt;
| 345 || libnx&lt;br /&gt;
|-&lt;br /&gt;
| 346 || [[Homebrew ABI]]&lt;br /&gt;
|-&lt;br /&gt;
| 347 || Homebrew Loader&lt;br /&gt;
|-&lt;br /&gt;
| 348 || libnx Nvidia errors&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Error codes =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E01 || 1 || 7 || Session count exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C01 || 1 || 14 || Invalid kernel capability descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x4201 || 1 || 33 || Not Implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x7601 || 1 || 59 || Thread terminated/termination requested&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C01 || 1 || 70 || No more debug events&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA01 || 1 || 101 || Invalid size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC01 || 1 || 102 || Invalid address&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE01 || 1 || 103 || Resource exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD001 || 1 || 104 || Memory exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD201 || 1 || 105 || Handle-table exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 1 || 106 || Invalid memory state / invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD801 || 1 || 108 || Invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC01 || 1 || 110 || Invalid memory range&lt;br /&gt;
|-&lt;br /&gt;
| 0xE001 || 1 || 112 || Invalid thread priority.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE201 || 1 || 113 || Invalid processor id.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE401 || 1 || 114 || Invalid handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE601 || 1 || 115 || Invalid pointer/Syscall copy from user failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE801 || 1 || 116 || Invalid combination&lt;br /&gt;
|-&lt;br /&gt;
| 0xEA01 || 1 || 117 || Time out. Also when you give 0 handles to svcWaitSynchronizationN.&lt;br /&gt;
|-&lt;br /&gt;
| 0xEC01 || 1 || 118 || Canceled/interrupted [?]&lt;br /&gt;
|-&lt;br /&gt;
| 0xEE01 || 1 || 119 || Out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0xF001 || 1 || 120 || Invalid enum&lt;br /&gt;
|-&lt;br /&gt;
| 0xF201 || 1 || 121 || No such entry&lt;br /&gt;
|-&lt;br /&gt;
| 0xF401 || 1 || 122 || Irq/DeviceAddressSpace/{...} already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xF601 || 1 || 123 || Port remote dead&lt;br /&gt;
|-&lt;br /&gt;
| 0xF801 || 1 || 124 || [Usermode] Unhandled interrupt/exception&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA01 || 1 || 125 || Process already started/Wrong memory permission?&lt;br /&gt;
|-&lt;br /&gt;
| 0xFC01 || 1 || 126 || Reserved value&lt;br /&gt;
|-&lt;br /&gt;
| 0xFE01 || 1 || 127 || Invalid hardware breakpoint&lt;br /&gt;
|-&lt;br /&gt;
| 0x10001 || 1 || 128 || [Usermode] Fatal exception&lt;br /&gt;
|-&lt;br /&gt;
| 0x10201 || 1 || 129 || Last thread didn&#039;t belong to your process&lt;br /&gt;
|-&lt;br /&gt;
| 0x10601 || 1 || 131 || Port closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x10801 || 1 || 132 || Resource limit exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x20801 || 1 || 260 || Command buffer too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x40a01 || 1 || 517 || No such process&lt;br /&gt;
|-&lt;br /&gt;
| 0x41001 || 1 || 520 || Process not being debugged&lt;br /&gt;
|-&lt;br /&gt;
| 0x202 || 2 || 1 || Path does not exist.&lt;br /&gt;
|-&lt;br /&gt;
| 0x402 || 2 || 2 || Path already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE02 || 2 || 7 || Resource already in use (file already opened, savedata filesystem already mounted).&lt;br /&gt;
|-&lt;br /&gt;
| 0x4602 || 2 || 35 || Not enough free space for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4802 || 2 || 36 || Not enough free space for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A02 || 2 || 37 || Not enough free space for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C02 || 2 || 38 || Not enough free space for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4E02 || 2 || 39 || Not enough free space on SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 2 || 60 || The specified [[NCA]]-type doesn&#039;t exist for this title.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 2 || 1001 || Process does not have RomFs &lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 2 || 1002 || Title-id not found / savedata not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA202 || 2 || 2001 || SD card not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13B002 || 2 || 2520 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13DA02 || 2 || 2541 || Version check failed when mounting gamecard sysupdate partition?&lt;br /&gt;
|-&lt;br /&gt;
| 0x171402 || 2 || 2954 || Invalid gamecard handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 2 || 3001 || Unimplemented behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x177602 || 2 || 3003 || File/Directory already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x190202 || 2 || 3201 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190602 || 2 || 3203 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190802 || 2 || 3204 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190A02 || 2 || 3205 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190C02 || 2 || 3206 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x191002 || 2 || 3208 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x195802 || 2 || 3244 || Allocation failure related to SD cards&lt;br /&gt;
|-&lt;br /&gt;
| 0x196002 || 2 || 3248 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x196202 || 2 || 3249 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A3E02 || 2 || 3359 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4002 || 2 || 3360 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4A02 || 2 || 3365 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x21BC02 || 2 || 4318 || Invalid save data filesystem magic (valid magic is SAVE in ASCII)&lt;br /&gt;
|-&lt;br /&gt;
| 0x234202 || 2 || 4513 || Error reading ACID section in NPDM&lt;br /&gt;
|-&lt;br /&gt;
| 0x234402 || 2 || 4514 || Invalid NPDM ACID section size&lt;br /&gt;
|-&lt;br /&gt;
| 0x234602 || 2 || 4515 || Last byte of the ACID modulus is zero&lt;br /&gt;
|-&lt;br /&gt;
| 0x234802 || 2 || 4516 || Invalid ACID fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234A02 || 2 || 4517 || Invalid NCA magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x234C02 || 2 || 4518 || Invalid NCA header fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234E02 || 2 || 4519 || Invalid NCA header ACID signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x235002 || 2 || 4520 || Invalid NCA header section hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x235202 || 2 || 4521 || Invalid NCA Key index&lt;br /&gt;
|-&lt;br /&gt;
| 0x235602 || 2 || 4523 || Invalid encryption type&lt;br /&gt;
|-&lt;br /&gt;
| 0x235802 || 2 || 4524 || Redirection BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235A02 || 2 || 4525 || Encryption BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235C02 || 2 || 4526 || Redirection BKTR table end offset is past the Encryption BKTR table start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x235E02 || 2 || 4527 || NCA-path used with the wrong titleID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x236002 || 2 || 4528 || NCA header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236202 || 2 || 4529 || NCA FS header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236802 || 2 || 4532 || PartitionFS hash block size is not a power of 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236A02 || 2 || 4533 || PartitionFS hash &amp;quot;always_2&amp;quot; field is not 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236C02 || 2 || 4534 || PartitionFS hash table is too small for main data&lt;br /&gt;
|-&lt;br /&gt;
| 0x236E02 || 2 || 4535 || Invalid PartitionFS block hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244402 || 2 || 4642 || Invalid Partition file hashed region bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x244602 || 2 || 4643 || Invalid Partition FS hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x244802 || 2 || 4644 || Invalid PFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244A02 || 2 || 4645 || Invalid HFS0 magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x244C02 || 2 || 4646 || Invalid name offset for Partition FS file entry&lt;br /&gt;
|-&lt;br /&gt;
| 0x244E02 || 2 || 4647 || Calculated Partition FS header size changed between 2 consecutive reads&lt;br /&gt;
|-&lt;br /&gt;
| 0x249802 || 2 || 4684 || Invalid FAT file number.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249C02 || 2 || 4686 || Invalid FAT format for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249E02 || 2 || 4687 || Invalid FAT format for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A002 || 2 || 4688 || Invalid FAT format for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A202 || 2 || 4689 || Invalid FAT format for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x250E02 || 2 || 4743 || [[NAX0|Corrupted]] NAX0 header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x251002 || 2 || 4744 || Invalid [[NAX0]] magicnum.&lt;br /&gt;
|-&lt;br /&gt;
| 0x280202 || 2 || 5121 || Invalid FAT size&lt;br /&gt;
|-&lt;br /&gt;
| 0x280402 || 2 || 5122 || Invalid FAT BPB (BIOS Parameter Block)&lt;br /&gt;
|-&lt;br /&gt;
| 0x280602 || 2 || 5123 || Invalid FAT parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x280802 || 2 || 5124 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280A02 || 2 || 5125 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280C02 || 2 || 5126 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280E02 || 2 || 5127 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x296A02 || 2 || 5301 || Mountpoint not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 || 2 || 6001 || Invalid input&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE602 || 2 || 6003 || Path too long&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE802 || 2 || 6004 || Invalid character.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEA02 || 2 || 6005 || Invalid directory path.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEC02 || 2 || 6006 || Unable to retrieve directory from path&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 2 || 6061 || Offset outside storage&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 || 2 || 6300 || Operation not supported&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 || 2 || 6400 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x326602 || 2 || 6451 || Missing titlekey(?) required to mount content&lt;br /&gt;
|-&lt;br /&gt;
| 0x326E02 || 2 || 6455 || File not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327002 || 2 || 6456 || Directory not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327402 || 2 || 6458 || FS allocators already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x327602 || 2 || 6459 || FS allocators already used&lt;br /&gt;
|-&lt;br /&gt;
| 0x327A02 || 2 || 6461 || FS allocator alignment violation&lt;br /&gt;
|-&lt;br /&gt;
| 0x339402 || 2 || 6602 || File not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x339602 || 2 || 6603 || Directory not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCC02 || 2 || 7910 || RomFs directory has no more child directories/files when iterating&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DD402 || 2 || 7914 || RomFs table: Path is file, not directory&lt;br /&gt;
|-&lt;br /&gt;
| 0x803 || 3 || 4 || OS busy&lt;br /&gt;
|-&lt;br /&gt;
| 0xE03 || 3 || 7 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x1003 || 3 || 8 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1203 || 3 || 9 || Out of resources&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EA03 || 3 || 501 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE03 || 3 || 503 || Invalid memory mirror&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FE03 || 3 || 1023 || TLS slot is not allocated&lt;br /&gt;
|-&lt;br /&gt;
| 0xA05 || 5 || 5 || [[Content_Manager_services|NcaID]] not found. Returned when attempting to mount titles which exist that aren&#039;t *8XX titles, the same way *8XX titles are mounted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE05 || 5 || 7 || TitleId not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1805 || 5 || 12 || Invalid StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC05 || 5 || 110 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x17C05 || 5 || 190 || Gamecard not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F405 || 5 || 250 || Sdcard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x20805 || 5 || 260 || Storage not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0x806 || 6 || 4 || Converted from error 0xD401&lt;br /&gt;
|-&lt;br /&gt;
| 0x1006 || 6 || 8 || Converted from error 0xE401&lt;br /&gt;
|-&lt;br /&gt;
| 0x408 || 8 || 2 || Program location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x608 || 8 || 3 || Invalid context for control location&lt;br /&gt;
|-&lt;br /&gt;
| 0x808 || 8 || 4 || Storage not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA08 || 8 || 5 || Access denied&lt;br /&gt;
|-&lt;br /&gt;
| 0xC08 || 8 || 6 || Offline manual HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xE08 || 8 || 7 || Title is not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1008 || 8 || 8 || Control location entry for host not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1208 || 8 || 9 || Legal info HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x209 || 9 || 1 || Args too long.&lt;br /&gt;
|-&lt;br /&gt;
| 0x409 || 9 || 2 || Maximum processes loaded.&lt;br /&gt;
|-&lt;br /&gt;
| 0x609 || 9 || 3 || NPDM too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x19009 || 9 || 200 || Invalid access control sizes in NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x809 || 9 || 4 || Invalid NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0xA09 || 9 || 5 || Invalid files.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE09 || 9 || 7 || Already registered.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1009 || 9 || 8 || Title not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1209 || 9 || 9 || Title-id in ACI0 doesn&#039;t match range in ACID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6609 || 9 || 51 || Invalid memory state/permission&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A09 || 9 || 53 || Invalid NRR&lt;br /&gt;
|-&lt;br /&gt;
| 0xA209 || 9 || 81 || Unaligned NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xA409 || 9 || 82 || Bad NRR size&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA09 || 9 || 85 || Bad NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xAE09 || 9 || 87 || Bad initialization&lt;br /&gt;
|-&lt;br /&gt;
| 0xC809 || 9 || 100 || Unknown ACI0 descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE09 || 9 || 103 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD009 || 9 || 104 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;SyscallMask&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD409 || 9 || 106 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapIoOrNormalRange&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD609 || 9 || 107 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapNormalPage&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xDE09 || 9 || 111 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;InterruptPair&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE209 || 9 || 113 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;ApplicationType&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE409 || 9 || 114 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelReleaseVersion&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE609 || 9 || 115 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;HandleTableSize&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE809 || 9 || 116 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;DebugFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x1940A || 10 || 202 || Invalid CMIF header size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A60A || 10 || 211 || Invalid CMIF input header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A80A || 10 || 212 || Invalid CMIF output header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA0A || 10 || 221 || Invalid method dispatch ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D60A || 10 || 235 || Invalid in object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D80A || 10 || 236 || Invalid out object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0A || 10 || 301 || Out of domain entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20B || 11 || 1 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC0B || 11 || 102 || Out of server session memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x11A0B || 11 || 141 || Went past maximum during marshalling.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1900B || 11 || 200 || Session doesn&#039;t support domains.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0B || 11 || 301 || Remote process is dead.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3260B || 11 || 403 || Unknown request type&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D60B || 11 || 491 || IPC Query 1 failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20F || 15 || 1 || Pid not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x60F || 15 || 3 || Process has no pending events&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0F || 15 || 5 || Application already running&lt;br /&gt;
|-&lt;br /&gt;
| 0x410 || 16 || 2 || Title-id not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xF010 || 16 || 120 || Gamecard sysupdate not required&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F610 || 16 || 251 || Unexpected StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0x215 || 21 || 1 || Out of processes&lt;br /&gt;
|-&lt;br /&gt;
| 0x415 || 21 || 2 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x615 || 21 || 3 || Max sessions&lt;br /&gt;
|-&lt;br /&gt;
| 0x815 || 21 || 4 || Service already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xA15 || 21 || 5 || Out of services&lt;br /&gt;
|-&lt;br /&gt;
| 0xC15 || 21 || 6 || Invalid name (all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0xE15 || 21 || 7 || Service not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1015 || 21 || 8 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x1215 || 21 || 9 || Service Access Control too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x416 || 22 || 2 || Address space is full&lt;br /&gt;
|-&lt;br /&gt;
| 0x616 || 22 || 3 || NRO already loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x816 || 22 || 4 || Invalid NRO header values&lt;br /&gt;
|-&lt;br /&gt;
| 0xC16 || 22 || 6 || Bad NRR magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x1016 || 22 || 8 || Reached max NRR count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1216 || 22 || 9 || Unable to verify NRO hash or NRR signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x80216 || 22 || 1025 || Address not page-aligned&lt;br /&gt;
|-&lt;br /&gt;
| 0x80416 || 22 || 1026 || Incorrect NRO size&lt;br /&gt;
|-&lt;br /&gt;
| 0x80816 || 22 || 1028 || NRO not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80A16 || 22 || 1029 || NRR not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80C16 || 22 || 1030 || Already initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E16 || 22 || 1031 || Not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x41A || 26 || 2 || Argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0xC81A || 26 || 100 || Incorrect buffer size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Unknown TZ error&lt;br /&gt;
|-&lt;br /&gt;
| 0xD01A || 26 || 104 || All AES engines busy&lt;br /&gt;
|-&lt;br /&gt;
| 0xD21A || 26 || 105 || Invalid AES engine-id&lt;br /&gt;
|-&lt;br /&gt;
| 0x19269 || 105 || 201 || Null settings name&lt;br /&gt;
|-&lt;br /&gt;
| 0x19469 || 105 || 202 || Null settings key&lt;br /&gt;
|-&lt;br /&gt;
| 0x19669 || 105 || 203 || Null settings value&lt;br /&gt;
|-&lt;br /&gt;
| 0x19A69 || 105 || 205 || Null settings value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A069 || 105 || 208 || Null setting value size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A269 || 105 || 209 || Null debug mode flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA69 || 105 || 221 || Setting group name has zero length&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BC69 || 105 || 222 || Empty settings item key&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E269 || 105 || 241 || Setting group name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E469 || 105 || 242 || Setting name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x20A69 || 105 || 261 || Setting group name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x20C69 || 105 || 262 || Setting name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x4DA69 || 105 || 621 || Null language code buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4EE69 || 105 || 631 || Null network settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4F069 || 105 || 632 || Null network settings output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x50269 || 105 || 641 || Null backlight settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51669 || 105 || 651 || Null Bluetooth device setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51869 || 105 || 652 || Null Bluetooth device setting output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51A69 || 105 || 653 || Null Bluetooth enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51C69 || 105 || 654 || Null Bluetooth AFH enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51E69 || 105 || 655 || Null Bluetooth boost enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52069 || 105 || 656 || Null BLE pairing settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52269 || 105 || 657 || Null BLE pairing settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52A69 || 105 || 661 || Null external steady clock source ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52C69 || 105 || 662 || Null user system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52E69 || 105 || 663 || Null network system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53069 || 105 || 664 || Null user system clock automatic correction enabled flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53269 || 105 || 665 || Null shutdown RTC value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53469 || 105 || 666 || Null external steady clock internal offset buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53E69 || 105 || 671 || Null account settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55269 || 105 || 681 || Null audio volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55669 || 105 || 683 || Null ForceMuteOnHeadphoneRemoved buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55869 || 105 || 684 || Null headphone volume warning count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55E69 || 105 || 687 || Invalid audio output mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x56069 || 105 || 688 || Null headphone volume update flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x56669 || 105 || 691 || Null console information upload flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57A69 || 105 || 701 || Null automatic application download flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57C69 || 105 || 702 || Null notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57E69 || 105 || 703 || Null account notification settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58069 || 105 || 704 || Null account notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58E69 || 105 || 711 || Null vibration master volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59069 || 105 || 712 || Null NX controller settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59269 || 105 || 713 || Null NX controller settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59469 || 105 || 714 || Null USB full key enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A269 || 105 || 721 || Null TV settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A469 || 105 || 722 || Null EDID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5B669 || 105 || 731 || Null data deletion settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CA69 || 105 || 741 || Null initial system applet program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CC69 || 105 || 742 || Null overlay disp program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CE69 || 105 || 743 || Null IsInRepairProcess buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5D069 || 105 || 744 || Null RequiresRunRepairTimeReviser buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5DE69 || 105 || 751 || Null device timezone location name buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5F269 || 105 || 761 || Null primary album storage buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60669 || 105 || 771 || Null USB 3.0 enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60869 || 105 || 772 || Null USB Type-C power source circuit version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A69 || 105 || 781 || Null battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x62E69 || 105 || 791 || Null serial number buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64269 || 105 || 801 || Null lock screen flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64669 || 105 || 803 || Null color set ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64869 || 105 || 804 || Null quest flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64A69 || 105 || 805 || Null wireless certification file size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64C69 || 105 || 806 || Null wireless certification file buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64E69 || 105 || 807 || Null initial launch settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65069 || 105 || 808 || Null device nickname buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65269 || 105 || 809 || Null battery percentage flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65469 || 105 || 810 || Null applet launch flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7E869 || 105 || 1012 || Null wireless LAN enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FA69 || 105 || 1021 || Null product model buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E69 || 105 || 1031 || Null NFC enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82269 || 105 || 1041 || Null ECI device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82469 || 105 || 1042 || Null E-Ticket device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x83669 || 105 || 1051 || Null sleep settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84A69 || 105 || 1061 || Null EULA version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84C69 || 105 || 1062 || Null EULA version entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x85E69 || 105 || 1071 || Null LDN channel buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87269 || 105 || 1081 || Null SSL key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87469 || 105 || 1082 || Null SSL certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x88669 || 105 || 1091 || Null telemetry flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89A69 || 105 || 1101 || Null Gamecard key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89C69 || 105 || 1102 || Null Gamecard certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8AE69 || 105 || 1111 || Null PTM battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B069 || 105 || 1112 || Null PTM fuel gauge parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C269 || 105 || 1121 || Null ECI device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C469 || 105 || 1122 || Null E-Ticket device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D669 || 105 || 1131 || Null speaker parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EA69 || 105 || 1141 || Null firmware version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EC69 || 105 || 1142 || Null firmware version digest buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EE69 || 105 || 1143 || Null rebootless system update version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8FE69 || 105 || 1151 || Null Mii author ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x91269 || 105 || 1161 || Null fatal flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x92669 || 105 || 1171 || Null auto update enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x93A69 || 105 || 1181 || Null external RTC reset flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x94E69 || 105 || 1191 || Null push notification activity mode buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x96269 || 105 || 1201 || Null service discovery control setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x97669 || 105 || 1211 || Null error report share permission buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x98A69 || 105 || 1221 || Null LCD vendor ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x99E69 || 105 || 1231 || Null console SixAxis sensor acceleration bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A069 || 105 || 1232 || Null console SixAxis sensor angular velocity bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A269 || 105 || 1233 || Null console SixAxis sensor acceleration gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A469 || 105 || 1234 || Null console SixAxis sensor angular velocity gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A669 || 105 || 1235 || Null console SixAxis sensor angular velocity time bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A869 || 105 || 1236 || Null console SixAxis sensor angular acceleration buffer &lt;br /&gt;
|-&lt;br /&gt;
| 0x9B269 || 105 || 1241 || Null keyboard layout buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9BA69 || 105 || 1245 || Invalid keyboard layout&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C669 || 105 || 1251 || Null web inspector flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C869 || 105 || 1252 || Null allowed SSL hosts buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CA69 || 105 || 1253 || Null allowed SSL hosts entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CC69 || 105 || 1254 || Null host FS mount point buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9EE69 || 105 || 1271 || Null Amiibo key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F069 || 105 || 1272 || Null Amiibo ECQV certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F269 || 105 || 1273 || Null Amiibo ECDSA certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F469 || 105 || 1274 || Null Amiibo ECQV BLS key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F669 || 105 || 1275 || Null Amiibo ECQV BLS certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F869 || 105 || 1276 || Null Amiibo ECQV BLS root certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x272 || 114 || 1 || Generic error&lt;br /&gt;
|-&lt;br /&gt;
| 0xC72 || 114 || 6 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || 116 || 0 || Time service not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC74 || 116 || 102 || Time not set&lt;br /&gt;
|-&lt;br /&gt;
| 0x19074 || 116 || 200 || Invalid time comparison&lt;br /&gt;
|-&lt;br /&gt;
| 0x19274 || 116 || 201 || Signed overflow/underflow&lt;br /&gt;
|-&lt;br /&gt;
| 0x64274 || 116 || 801 || Memory allocation failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x70A74 || 116 || 901 || Null pointer&lt;br /&gt;
|-&lt;br /&gt;
| 0x70C74 || 116 || 902 || Value out of valid range&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BA74 || 116 || 989 || Entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BC74 || 116 || 990 || Unimplemented functionality&lt;br /&gt;
|-&lt;br /&gt;
| 0x287C || 124 || 20 || Argument is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C7C || 124 || 22 || Argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C7C || 124 || 30 || Bad input buffer size&lt;br /&gt;
|-&lt;br /&gt;
| 0x407C || 124 || 32 || Invalid input buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x27E || 126 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x87E || 126 || 4 || Entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE7E || 126 || 67 || Invalid database signature value (should be &amp;quot;NFDB&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0xD27E || 126 || 69 || Invalid database entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1987E || 126 || 204 || Development/debug-only behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x480 || 128 || 2 || IStorage not available.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4680 || 128 || 35 || Error while launching applet.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A80 || 128 || 37 || Title-ID not found. Caused by code 0x410 when applet launch fails&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E880 || 128 || 500 || Invalid IStorage size (negative?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EC80 || 128 || 502 || IStorage has already been opened by another accessor&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE80 || 128 || 503 || IStorage Read/Write out-of-bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x3FE80 || 128 || 511 || IStorage opened as wrong type (data opened as transfermem, transfermem opened as data)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B080 || 128 || 600 || Failed to allocate memory for IStorage&lt;br /&gt;
|-&lt;br /&gt;
| 0x59080 || 128 || 712 || Thread stack pool exhausted (out of memory)&lt;br /&gt;
|-&lt;br /&gt;
| 0x7A880 || 128 || 980 || &amp;lt;code&amp;gt;am.debug!dev_function&amp;lt;/code&amp;gt; setting needs to be set&lt;br /&gt;
|-&lt;br /&gt;
| 0xA83 || 131 || 5 || Unrecognized applet ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x485 || 133 || 2 || Invalid DVFS table ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x885 || 133 || 4 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x3CF089 || 137 || 7800 || Unknown/invalid libcurl error.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E8289-0x3F4089 || 137 || 8001-8096 || libcurl error 1-96. Some of the libcurl errors in the error-table map to the above unknown-libcurl-error however.&lt;br /&gt;
|-&lt;br /&gt;
| 0x68A || 138 || 3 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x668C || 140 || 51 || USB data-transfer in progress&lt;br /&gt;
|-&lt;br /&gt;
| 0xD48C || 140 || 106 || Invalid descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x1928C || 140 || 201 || USB device not bound / interface already enabled&lt;br /&gt;
|-&lt;br /&gt;
| 0x299 || 153 || 1 || Invalid audio device&lt;br /&gt;
|-&lt;br /&gt;
| 0x499 || 153 || 2 || Operation couldn&#039;t complete successfully&lt;br /&gt;
|-&lt;br /&gt;
| 0x699 || 153 || 3 || Invalid sample rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x899 || 153 || 4 || Buffer size too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x1099 || 153 || 8 || Too many buffers are still unreleased&lt;br /&gt;
|-&lt;br /&gt;
| 0x1499 || 153 || 10 || Invalid channel count&lt;br /&gt;
|-&lt;br /&gt;
| 0x40299 || 153 || 513 || Invalid/Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0099 || 153 || 1536 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0899 || 153 || 1540 || Audio output was already started&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C9D || 157 || 30 || Address is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E9D || 157 || 31 || PID is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x549D || 157 || 42 || Already bound&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC9D || 157 || 102 || Invalid PID&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA3 || 163 ||  5 || System is booting up repair process without VOL+ held down.&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA3 || 163 || 6 || System is booting up repair process that requires RepairTimeReviser but does not have special cartridge inserted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8B2 || 178 || 100 || Invalid user ID&lt;br /&gt;
|-&lt;br /&gt;
| 0xCAB2 || 178 || 101 || User does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 0x12CB2 || 178 || 150 || Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| 0x190B2 || 178 || 200 || File storage failure&lt;br /&gt;
|-&lt;br /&gt;
| 0xF0CD || 205 || 120 || IR image data not available/ready.&lt;br /&gt;
|-&lt;br /&gt;
| 0x35B || 347 || 1 || Failed to init SM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x55B || 347 || 2 || Failed to init FS.&lt;br /&gt;
|-&lt;br /&gt;
| 0x75B || 347 || 3 || Failed to to open NRO file. May also happen when SD card isn&#039;t inserted / SD mounting failed earlier.&lt;br /&gt;
|-&lt;br /&gt;
| 0x95B || 347 || 4 || Failed to read NRO header.&lt;br /&gt;
|-&lt;br /&gt;
| 0xB5B || 347 || 5 || Invalid NRO magic.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD5B || 347 || 6 || Invalid NRO segments.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF5B || 347 || 7 || Failed to read NRO.&lt;br /&gt;
|-&lt;br /&gt;
| 0x135B || 347 || 9 || Failed to allocate heap.&lt;br /&gt;
|-&lt;br /&gt;
| 0x255B || 347 || 18 || Failed to map code-binary memory.&lt;br /&gt;
|-&lt;br /&gt;
| 0x275B || 347 || 19 || Failed to map code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x295B || 347 || 20 || Failed to map code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B5B || 347 || 21 || Failed to map code memory (.data+.bss).&lt;br /&gt;
|-&lt;br /&gt;
| 0x315B || 347 || 24 || Failed to unmap code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x335B || 347 || 25 || Failed to unmap code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x355B || 347 || 26 || Failed to unmap code memory (.data+.bss).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FS Error Codes ==&lt;br /&gt;
The following are the error codes recognized by nn::fs::detail::LogErrorMessage found in some [[Factory Setup|factory]] titles:&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Description || Message&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 60 || Error: Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 106 || Error: Passed buffer is not usable for fs library.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 1001 || Error: Specified partition is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 1002 || Error: Specified target is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA002 - 0x138602 || 2000 - 2499 || Error: Failed to access SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x136802 - 0x176E02 || 2500 - 2999 || Error: Failed to access game card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 3001 || Error: Specified operation is not implemented.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177A02 || 3005 || Error: Specified value is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B5802 - 0x1F3E02 || 3500 - 3999 || Error: Failed to access MMC.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4202 - 0x219602 || 4001 - 4299 || Error: ROM is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x219A02 - 0x232602 || 4301 - 4499 || Error: Save data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x232A02 - 0x23EE02 || 4501 - 4599 || Error: NCA is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x23F202 - 0x243E02 || 4601 - 4639 || Error: Integrity verification failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x244202 - 0x246602 || 4641 - 4659 || Error: Partition FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x246A02 - 0x248E02 || 4661 - 4679 || Error: Built-in-storage is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249202 - 0x24B602 || 4681 - 4699 || Error: FAT FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24BA02 - 0x24DE02 || 4701 - 4719 || Error: HOST FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4002 - 0x270E02 || 4000, 4300, 4500, 4600, 4640, 4660, 4680, 4700, 4720-4999 || Error: Data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x271002 - 0x2EDE02 || 5000-5999 || Error: Unexpected failure occurred.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE402 - 0x2F1A02 || 6002-6029 || Error: Invalid path was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 6061 || Error: Invalid offset was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5C02 || 6062 || Error: Invalid size was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5E02 || 6063 || Error: Null pointer argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE002 || 6000 || Error: Precondition violation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 - 0x306E02 || 6001-6199 || Error: Invalid argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x307202 || 6201 || Error: OpenMode_AllowAppend is required for implicit extension of file size by WriteFile().&lt;br /&gt;
|-&lt;br /&gt;
| 0x307002 - 0x313602 || 6200, 6202 - 6299 || Error: Invalid operation for the open mode.&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 - 0x31FE02 || 6300-6399 || Error: Unsupported operation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 - 0x32C602 || 6400-6499 || Error: Permission denied.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346402 || 6706 || Error: Enough journal space is not left.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346A02 || 6709 || Error: The open count of files and directories reached the limitation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Fatal Errors =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Description&lt;br /&gt;
|-&lt;br /&gt;
| 2162-0002&lt;br /&gt;
| Can be triggered by running [[SVC|svcBreak]]. The svcBreak params have no effect on the value of the thrown error-code.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0000&lt;br /&gt;
| Userland ARM undefined instruction exception&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0001&lt;br /&gt;
| Userland ARM prefetch-abort due to PC set to non-executable region&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0002&lt;br /&gt;
| Userland ARM data abort. Also caused by abnormal process termination via [[SVC|svcExitProcess]]. Note: directly jumping to nnMain()-retaddr from non-main-thread has the same result.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0003&lt;br /&gt;
| Userland PC address not aligned to 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0008&lt;br /&gt;
| Can occur when attempting to call an svc outside the whitelist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Support Errors =&lt;br /&gt;
This section is for Support Errors displayed by the error-applet, separate from the normal Result errors.&lt;br /&gt;
&lt;br /&gt;
== Support Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [[Internet_Browser|General web-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 809 || [[Internet_Browser|WifiWebAuthApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [[Internet_Browser|Whitelisted-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 811 || [[Internet_Browser|ShopN]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
8XX is for/includes system applets.&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| {web-applets listed above}&lt;br /&gt;
| 2750&lt;br /&gt;
| MP4 parsing failed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Normal error-codes displayed by the system also use the same format as fatal-errors.&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=6024</id>
		<title>Error codes</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Error_codes&amp;diff=6024"/>
		<updated>2019-01-11T22:45:25Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* Fatal Errors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Structure =&lt;br /&gt;
These have been redesigned from the 3DS so that they fit within a Aarch64 MOV instruction immediate most of the time (without requiring the additional MOVK).&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Bits || Field&lt;br /&gt;
|-&lt;br /&gt;
| 8-0 || Module&lt;br /&gt;
|-&lt;br /&gt;
| 21-9 || Description&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When a fatal-error is received the error code is outputted using the following formatter:&lt;br /&gt;
  %04d-%04d&lt;br /&gt;
&lt;br /&gt;
.. where the first code is &amp;lt;code&amp;gt;2000 + Module&amp;lt;/code&amp;gt;, and the other being &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;. Bits &amp;gt;=22 from the error-code are unused when displaying fatal-errors, since the Description ends with bit21.&lt;br /&gt;
&lt;br /&gt;
= Modules =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Kernel&lt;br /&gt;
|-&lt;br /&gt;
| 2 || FS&lt;br /&gt;
|-&lt;br /&gt;
| 3 || OS (Memory, Thread, Mutex, NVIDIA)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || HTCS&lt;br /&gt;
|-&lt;br /&gt;
| 5 || NCM&lt;br /&gt;
|-&lt;br /&gt;
| 6 || DD&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Debug Monitor&lt;br /&gt;
|-&lt;br /&gt;
| 8 || LR&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Loader&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CMIF (IPC command interface)&lt;br /&gt;
|-&lt;br /&gt;
| 11 || HIPC (IPC)&lt;br /&gt;
|-&lt;br /&gt;
| 15 || PM&lt;br /&gt;
|-&lt;br /&gt;
| 16 || NS&lt;br /&gt;
|-&lt;br /&gt;
| 17 || Sockets&lt;br /&gt;
|-&lt;br /&gt;
| 18 || HTC&lt;br /&gt;
|-&lt;br /&gt;
| 20 || NCM Content&lt;br /&gt;
|-&lt;br /&gt;
| 21 || SM&lt;br /&gt;
|-&lt;br /&gt;
| 22 || RO userland&lt;br /&gt;
|-&lt;br /&gt;
| 24 || SDMMC&lt;br /&gt;
|-&lt;br /&gt;
| 25 || OVLN&lt;br /&gt;
|-&lt;br /&gt;
| 26 || SPL&lt;br /&gt;
|-&lt;br /&gt;
| 100 || ETHC&lt;br /&gt;
|-&lt;br /&gt;
| 101 || I2C&lt;br /&gt;
|-&lt;br /&gt;
| 102 || GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 103 || UART&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Settings&lt;br /&gt;
|-&lt;br /&gt;
| 107 || WLAN&lt;br /&gt;
|-&lt;br /&gt;
| 108 || XCD&lt;br /&gt;
|-&lt;br /&gt;
| 110 || NIFM&lt;br /&gt;
|-&lt;br /&gt;
| 111 || Hwopus&lt;br /&gt;
|-&lt;br /&gt;
| 113 || Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
| 114 || VI&lt;br /&gt;
|-&lt;br /&gt;
| 115 || NFP&lt;br /&gt;
|-&lt;br /&gt;
| 116 || Time&lt;br /&gt;
|-&lt;br /&gt;
| 117 || FGM&lt;br /&gt;
|-&lt;br /&gt;
| 118 || OE&lt;br /&gt;
|-&lt;br /&gt;
| 120 || PCIe&lt;br /&gt;
|-&lt;br /&gt;
| 121 || Friends&lt;br /&gt;
|-&lt;br /&gt;
| 122 || BCAT&lt;br /&gt;
|-&lt;br /&gt;
| 123 || SSL&lt;br /&gt;
|-&lt;br /&gt;
| 124 || Account&lt;br /&gt;
|-&lt;br /&gt;
| 125 || News&lt;br /&gt;
|-&lt;br /&gt;
| 126 || Mii&lt;br /&gt;
|-&lt;br /&gt;
| 127 || NFC&lt;br /&gt;
|-&lt;br /&gt;
| 128 || AM&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Play Report&lt;br /&gt;
|-&lt;br /&gt;
| 130 || AHID&lt;br /&gt;
|-&lt;br /&gt;
| 132 || Home Menu (Qlaunch)&lt;br /&gt;
|-&lt;br /&gt;
| 133 || PCV&lt;br /&gt;
|-&lt;br /&gt;
| 134 || OMM&lt;br /&gt;
|-&lt;br /&gt;
| 135 || BPC&lt;br /&gt;
|-&lt;br /&gt;
| 136 || PSM&lt;br /&gt;
|-&lt;br /&gt;
| 137 || NIM&lt;br /&gt;
|-&lt;br /&gt;
| 138 || PSC&lt;br /&gt;
|-&lt;br /&gt;
| 139 || TC&lt;br /&gt;
|-&lt;br /&gt;
| 140 || USB&lt;br /&gt;
|-&lt;br /&gt;
| 141 || NSD&lt;br /&gt;
|-&lt;br /&gt;
| 142 || PCTL&lt;br /&gt;
|-&lt;br /&gt;
| 143 || BTM&lt;br /&gt;
|-&lt;br /&gt;
| 144 || EC (Shop)&lt;br /&gt;
|-&lt;br /&gt;
| 145 || ETicket&lt;br /&gt;
|-&lt;br /&gt;
| 146 || NGC (Bad Words)&lt;br /&gt;
|-&lt;br /&gt;
| 147 || Error Report&lt;br /&gt;
|-&lt;br /&gt;
| 148 || APM&lt;br /&gt;
|-&lt;br /&gt;
| 150 || Profiler&lt;br /&gt;
|-&lt;br /&gt;
| 151 || Error Upload&lt;br /&gt;
|-&lt;br /&gt;
| 153 || Audio&lt;br /&gt;
|-&lt;br /&gt;
| 154 || NPNS&lt;br /&gt;
|-&lt;br /&gt;
| 155 || NPNS HTTP Stream&lt;br /&gt;
|-&lt;br /&gt;
| 157 || ARP&lt;br /&gt;
|-&lt;br /&gt;
| 158 || Boot&lt;br /&gt;
|-&lt;br /&gt;
| 159 || SWKBD&lt;br /&gt;
|-&lt;br /&gt;
| 161 || NFC Mifare&lt;br /&gt;
|-&lt;br /&gt;
| 162 || Userland assert&lt;br /&gt;
|-&lt;br /&gt;
| 163 || Fatal&lt;br /&gt;
|-&lt;br /&gt;
| 164 || NIM Shop&lt;br /&gt;
|-&lt;br /&gt;
| 165 || SPSM&lt;br /&gt;
|-&lt;br /&gt;
| 167 || BGTC&lt;br /&gt;
|-&lt;br /&gt;
| 168 || Userland crash&lt;br /&gt;
|-&lt;br /&gt;
| 178 || PDM&lt;br /&gt;
|-&lt;br /&gt;
| 179 || OLSC&lt;br /&gt;
|-&lt;br /&gt;
| 180 || SREPO&lt;br /&gt;
|-&lt;br /&gt;
| 181 || Dauth&lt;br /&gt;
|-&lt;br /&gt;
| 202 || HID&lt;br /&gt;
|-&lt;br /&gt;
| 203 || LDN&lt;br /&gt;
|-&lt;br /&gt;
| 205 || Irsensor&lt;br /&gt;
|-&lt;br /&gt;
| 206 || Capture&lt;br /&gt;
|-&lt;br /&gt;
| 208 || Manu&lt;br /&gt;
|-&lt;br /&gt;
| 209 || ATK&lt;br /&gt;
|-&lt;br /&gt;
| 210 || Web&lt;br /&gt;
|-&lt;br /&gt;
| 211 ||&lt;br /&gt;
|-&lt;br /&gt;
| 212 || GRC&lt;br /&gt;
|-&lt;br /&gt;
| 216 || Migration&lt;br /&gt;
|-&lt;br /&gt;
| 217 || Migration Idc Server&lt;br /&gt;
|-&lt;br /&gt;
| 345 || libnx&lt;br /&gt;
|-&lt;br /&gt;
| 346 || [[Homebrew ABI]]&lt;br /&gt;
|-&lt;br /&gt;
| 347 || Homebrew Loader&lt;br /&gt;
|-&lt;br /&gt;
| 348 || libnx Nvidia errors&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Error codes =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E01 || 1 || 7 || Session count exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C01 || 1 || 14 || Invalid kernel capability descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x4201 || 1 || 33 || Not Implemented&lt;br /&gt;
|-&lt;br /&gt;
| 0x7601 || 1 || 59 || Thread terminated/termination requested&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C01 || 1 || 70 || No more debug events&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA01 || 1 || 101 || Invalid size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC01 || 1 || 102 || Invalid address&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE01 || 1 || 103 || Resource exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD001 || 1 || 104 || Memory exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD201 || 1 || 105 || Handle-table exhaustion&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 1 || 106 || Invalid memory state / invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD801 || 1 || 108 || Invalid memory permissions.&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC01 || 1 || 110 || Invalid memory range&lt;br /&gt;
|-&lt;br /&gt;
| 0xE001 || 1 || 112 || Invalid thread priority.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE201 || 1 || 113 || Invalid processor id.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE401 || 1 || 114 || Invalid handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE601 || 1 || 115 || Invalid pointer/Syscall copy from user failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE801 || 1 || 116 || Invalid combination&lt;br /&gt;
|-&lt;br /&gt;
| 0xEA01 || 1 || 117 || Time out. Also when you give 0 handles to svcWaitSynchronizationN.&lt;br /&gt;
|-&lt;br /&gt;
| 0xEC01 || 1 || 118 || Canceled/interrupted [?]&lt;br /&gt;
|-&lt;br /&gt;
| 0xEE01 || 1 || 119 || Out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0xF001 || 1 || 120 || Invalid enum&lt;br /&gt;
|-&lt;br /&gt;
| 0xF201 || 1 || 121 || No such entry&lt;br /&gt;
|-&lt;br /&gt;
| 0xF401 || 1 || 122 || Irq/DeviceAddressSpace/{...} already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xF601 || 1 || 123 || Port remote dead&lt;br /&gt;
|-&lt;br /&gt;
| 0xF801 || 1 || 124 || [Usermode] Unhandled interrupt/exception&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA01 || 1 || 125 || Process already started/Wrong memory permission?&lt;br /&gt;
|-&lt;br /&gt;
| 0xFC01 || 1 || 126 || Reserved value&lt;br /&gt;
|-&lt;br /&gt;
| 0xFE01 || 1 || 127 || Invalid hardware breakpoint&lt;br /&gt;
|-&lt;br /&gt;
| 0x10001 || 1 || 128 || [Usermode] Fatal exception&lt;br /&gt;
|-&lt;br /&gt;
| 0x10201 || 1 || 129 || Last thread didn&#039;t belong to your process&lt;br /&gt;
|-&lt;br /&gt;
| 0x10601 || 1 || 131 || Port closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x10801 || 1 || 132 || Resource limit exceeded&lt;br /&gt;
|-&lt;br /&gt;
| 0x20801 || 1 || 260 || Command buffer too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x40a01 || 1 || 517 || No such process&lt;br /&gt;
|-&lt;br /&gt;
| 0x41001 || 1 || 520 || Process not being debugged&lt;br /&gt;
|-&lt;br /&gt;
| 0x202 || 2 || 1 || Path does not exist.&lt;br /&gt;
|-&lt;br /&gt;
| 0x402 || 2 || 2 || Path already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE02 || 2 || 7 || Resource already in use (file already opened, savedata filesystem already mounted).&lt;br /&gt;
|-&lt;br /&gt;
| 0x4602 || 2 || 35 || Not enough free space for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4802 || 2 || 36 || Not enough free space for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A02 || 2 || 37 || Not enough free space for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C02 || 2 || 38 || Not enough free space for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4E02 || 2 || 39 || Not enough free space on SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 2 || 60 || The specified [[NCA]]-type doesn&#039;t exist for this title.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 2 || 1001 || Process does not have RomFs &lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 2 || 1002 || Title-id not found / savedata not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA202 || 2 || 2001 || SD card not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13B002 || 2 || 2520 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x13DA02 || 2 || 2541 || Version check failed when mounting gamecard sysupdate partition?&lt;br /&gt;
|-&lt;br /&gt;
| 0x171402 || 2 || 2954 || Invalid gamecard handle.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 2 || 3001 || Unimplemented behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x177602 || 2 || 3003 || File/Directory already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x190202 || 2 || 3201 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190602 || 2 || 3203 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190802 || 2 || 3204 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190A02 || 2 || 3205 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x190C02 || 2 || 3206 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x191002 || 2 || 3208 || Memory allocation failure related to FAT filesystem code&lt;br /&gt;
|-&lt;br /&gt;
| 0x195802 || 2 || 3244 || Allocation failure related to SD cards&lt;br /&gt;
|-&lt;br /&gt;
| 0x196002 || 2 || 3248 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x196202 || 2 || 3249 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A3E02 || 2 || 3359 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4002 || 2 || 3360 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A4A02 || 2 || 3365 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x21BC02 || 2 || 4318 || Invalid save data filesystem magic (valid magic is SAVE in ASCII)&lt;br /&gt;
|-&lt;br /&gt;
| 0x234202 || 2 || 4513 || Error reading ACID section in NPDM&lt;br /&gt;
|-&lt;br /&gt;
| 0x234402 || 2 || 4514 || Invalid NPDM ACID section size&lt;br /&gt;
|-&lt;br /&gt;
| 0x234602 || 2 || 4515 || Last byte of the ACID modulus is zero&lt;br /&gt;
|-&lt;br /&gt;
| 0x234802 || 2 || 4516 || Invalid ACID fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234A02 || 2 || 4517 || Invalid NCA magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x234C02 || 2 || 4518 || Invalid NCA header fixed key signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x234E02 || 2 || 4519 || Invalid NCA header ACID signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x235002 || 2 || 4520 || Invalid NCA header section hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x235202 || 2 || 4521 || Invalid NCA Key index&lt;br /&gt;
|-&lt;br /&gt;
| 0x235602 || 2 || 4523 || Invalid encryption type&lt;br /&gt;
|-&lt;br /&gt;
| 0x235802 || 2 || 4524 || Redirection BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235A02 || 2 || 4525 || Encryption BKTR table size is negative&lt;br /&gt;
|-&lt;br /&gt;
| 0x235C02 || 2 || 4526 || Redirection BKTR table end offset is past the Encryption BKTR table start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x235E02 || 2 || 4527 || NCA-path used with the wrong titleID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x236002 || 2 || 4528 || NCA header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236202 || 2 || 4529 || NCA FS header value is out of range&lt;br /&gt;
|-&lt;br /&gt;
| 0x236802 || 2 || 4532 || PartitionFS hash block size is not a power of 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236A02 || 2 || 4533 || PartitionFS hash &amp;quot;always_2&amp;quot; field is not 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x236C02 || 2 || 4534 || PartitionFS hash table is too small for main data&lt;br /&gt;
|-&lt;br /&gt;
| 0x236E02 || 2 || 4535 || Invalid PartitionFS block hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x249802 || 2 || 4684 || Invalid FAT file number.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249C02 || 2 || 4686 || Invalid FAT format for BIS User partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249E02 || 2 || 4687 || Invalid FAT format for BIS System partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A002 || 2 || 4688 || Invalid FAT format for BIS Safe partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24A202 || 2 || 4689 || Invalid FAT format for BIS Calibration partition.&lt;br /&gt;
|-&lt;br /&gt;
| 0x250E02 || 2 || 4743 || [[NAX0|Corrupted]] NAX0 header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x251002 || 2 || 4744 || Invalid [[NAX0]] magicnum.&lt;br /&gt;
|-&lt;br /&gt;
| 0x280202 || 2 || 5121 || Invalid FAT size&lt;br /&gt;
|-&lt;br /&gt;
| 0x280402 || 2 || 5122 || Invalid FAT BPB (BIOS Parameter Block)&lt;br /&gt;
|-&lt;br /&gt;
| 0x280602 || 2 || 5123 || Invalid FAT parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x280802 || 2 || 5124 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280A02 || 2 || 5125 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280C02 || 2 || 5126 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x280E02 || 2 || 5127 || Invalid FAT sector&lt;br /&gt;
|-&lt;br /&gt;
| 0x296A02 || 2 || 5301 || Mountpoint not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 || 2 || 6001 || Invalid input&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE602 || 2 || 6003 || Path too long&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE802 || 2 || 6004 || Invalid character.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEA02 || 2 || 6005 || Invalid directory path.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EEC02 || 2 || 6006 || Unable to retrieve directory from path&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 2 || 6061 || Offset outside storage&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 || 2 || 6300 || Operation not supported&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 || 2 || 6400 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x326602 || 2 || 6451 || Missing titlekey(?) required to mount content&lt;br /&gt;
|-&lt;br /&gt;
| 0x326E02 || 2 || 6455 || File not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327002 || 2 || 6456 || Directory not closed&lt;br /&gt;
|-&lt;br /&gt;
| 0x327402 || 2 || 6458 || FS allocators already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x327602 || 2 || 6459 || FS allocators already used&lt;br /&gt;
|-&lt;br /&gt;
| 0x327A02 || 2 || 6461 || FS allocator alignment violation&lt;br /&gt;
|-&lt;br /&gt;
| 0x339402 || 2 || 6602 || File not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x339602 || 2 || 6603 || Directory not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3DCC02 || 2 || 7910 || RomFs directory has no more child directories/files when iterating&lt;br /&gt;
|-&lt;br /&gt;
| 0x803 || 3 || 4 || OS busy&lt;br /&gt;
|-&lt;br /&gt;
| 0xE03 || 3 || 7 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x1003 || 3 || 8 || Out of memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x1203 || 3 || 9 || Out of resources&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EA03 || 3 || 501 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE03 || 3 || 503 || Invalid memory mirror&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FE03 || 3 || 1023 || TLS slot is not allocated&lt;br /&gt;
|-&lt;br /&gt;
| 0xA05 || 5 || 5 || [[Content_Manager_services|NcaID]] not found. Returned when attempting to mount titles which exist that aren&#039;t *8XX titles, the same way *8XX titles are mounted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE05 || 5 || 7 || TitleId not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1805 || 5 || 12 || Invalid StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0xDC05 || 5 || 110 || Gamecard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x17C05 || 5 || 190 || Gamecard not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F405 || 5 || 250 || Sdcard not inserted&lt;br /&gt;
|-&lt;br /&gt;
| 0x20805 || 5 || 260 || Storage not mounted&lt;br /&gt;
|-&lt;br /&gt;
| 0x806 || 6 || 4 || Converted from error 0xD401&lt;br /&gt;
|-&lt;br /&gt;
| 0x1006 || 6 || 8 || Converted from error 0xE401&lt;br /&gt;
|-&lt;br /&gt;
| 0x408 || 8 || 2 || Program location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x608 || 8 || 3 || Invalid context for control location&lt;br /&gt;
|-&lt;br /&gt;
| 0x808 || 8 || 4 || Storage not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xA08 || 8 || 5 || Access denied&lt;br /&gt;
|-&lt;br /&gt;
| 0xC08 || 8 || 6 || Offline manual HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xE08 || 8 || 7 || Title is not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1008 || 8 || 8 || Control location entry for host not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x1208 || 8 || 9 || Legal info HTML location entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x209 || 9 || 1 || Args too long.&lt;br /&gt;
|-&lt;br /&gt;
| 0x409 || 9 || 2 || Maximum processes loaded.&lt;br /&gt;
|-&lt;br /&gt;
| 0x609 || 9 || 3 || NPDM too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x19009 || 9 || 200 || Invalid access control sizes in NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x809 || 9 || 4 || Invalid NPDM.&lt;br /&gt;
|-&lt;br /&gt;
| 0xA09 || 9 || 5 || Invalid files.&lt;br /&gt;
|-&lt;br /&gt;
| 0xE09 || 9 || 7 || Already registered.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1009 || 9 || 8 || Title not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1209 || 9 || 9 || Title-id in ACI0 doesn&#039;t match range in ACID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x6609 || 9 || 51 || Invalid memory state/permission&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A09 || 9 || 53 || Invalid NRR&lt;br /&gt;
|-&lt;br /&gt;
| 0xA209 || 9 || 81 || Unaligned NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xA409 || 9 || 82 || Bad NRR size&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA09 || 9 || 85 || Bad NRR address&lt;br /&gt;
|-&lt;br /&gt;
| 0xAE09 || 9 || 87 || Bad initialization&lt;br /&gt;
|-&lt;br /&gt;
| 0xC809 || 9 || 100 || Unknown ACI0 descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE09 || 9 || 103 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD009 || 9 || 104 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;SyscallMask&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD409 || 9 || 106 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapIoOrNormalRange&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xD609 || 9 || 107 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;MapNormalPage&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xDE09 || 9 || 111 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;InterruptPair&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE209 || 9 || 113 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;ApplicationType&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE409 || 9 || 114 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;KernelReleaseVersion&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE609 || 9 || 115 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;HandleTableSize&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0xE809 || 9 || 116 || ACID/ACI0 don&#039;t match for descriptor &amp;quot;DebugFlags&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x1940A || 10 || 202 || Invalid CMIF header size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A60A || 10 || 211 || Invalid CMIF input header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A80A || 10 || 212 || Invalid CMIF output header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA0A || 10 || 221 || Invalid method dispatch ID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D60A || 10 || 235 || Invalid in object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D80A || 10 || 236 || Invalid out object count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0A || 10 || 301 || Out of domain entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20B || 11 || 1 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC0B || 11 || 102 || Out of server session memory&lt;br /&gt;
|-&lt;br /&gt;
| 0x11A0B || 11 || 141 || Went past maximum during marshalling.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1900B || 11 || 200 || Session doesn&#039;t support domains.&lt;br /&gt;
|-&lt;br /&gt;
| 0x25A0B || 11 || 301 || Remote process is dead.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3260B || 11 || 403 || Unknown request type&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D60B || 11 || 491 || IPC Query 1 failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20F || 15 || 1 || Pid not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x60F || 15 || 3 || Process has no pending events&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0F || 15 || 5 || Application already running&lt;br /&gt;
|-&lt;br /&gt;
| 0x410 || 16 || 2 || Title-id not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xF010 || 16 || 120 || Gamecard sysupdate not required&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F610 || 16 || 251 || Unexpected StorageId&lt;br /&gt;
|-&lt;br /&gt;
| 0x215 || 21 || 1 || Out of processes&lt;br /&gt;
|-&lt;br /&gt;
| 0x415 || 21 || 2 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x615 || 21 || 3 || Max sessions&lt;br /&gt;
|-&lt;br /&gt;
| 0x815 || 21 || 4 || Service already registered&lt;br /&gt;
|-&lt;br /&gt;
| 0xA15 || 21 || 5 || Out of services&lt;br /&gt;
|-&lt;br /&gt;
| 0xC15 || 21 || 6 || Invalid name (all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0xE15 || 21 || 7 || Service not registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1015 || 21 || 8 || Permission denied&lt;br /&gt;
|-&lt;br /&gt;
| 0x1215 || 21 || 9 || Service Access Control too big.&lt;br /&gt;
|-&lt;br /&gt;
| 0x416 || 22 || 2 || Address space is full&lt;br /&gt;
|-&lt;br /&gt;
| 0x616 || 22 || 3 || NRO already loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x816 || 22 || 4 || Invalid NRO header values&lt;br /&gt;
|-&lt;br /&gt;
| 0xC16 || 22 || 6 || Bad NRR magic&lt;br /&gt;
|-&lt;br /&gt;
| 0x1016 || 22 || 8 || Reached max NRR count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1216 || 22 || 9 || Unable to verify NRO hash or NRR signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x80216 || 22 || 1025 || Address not page-aligned&lt;br /&gt;
|-&lt;br /&gt;
| 0x80416 || 22 || 1026 || Incorrect NRO size&lt;br /&gt;
|-&lt;br /&gt;
| 0x80816 || 22 || 1028 || NRO not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80A16 || 22 || 1029 || NRR not loaded&lt;br /&gt;
|-&lt;br /&gt;
| 0x80C16 || 22 || 1030 || Already initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E16 || 22 || 1031 || Not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0x41A || 26 || 2 || Argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0xC81A || 26 || 100 || Incorrect buffer size&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA1A || 26 || 101 || Unknown TZ error&lt;br /&gt;
|-&lt;br /&gt;
| 0xD01A || 26 || 104 || All AES engines busy&lt;br /&gt;
|-&lt;br /&gt;
| 0xD21A || 26 || 105 || Invalid AES engine-id&lt;br /&gt;
|-&lt;br /&gt;
| 0x19269 || 105 || 201 || Null settings name&lt;br /&gt;
|-&lt;br /&gt;
| 0x19469 || 105 || 202 || Null settings key&lt;br /&gt;
|-&lt;br /&gt;
| 0x19669 || 105 || 203 || Null settings value&lt;br /&gt;
|-&lt;br /&gt;
| 0x19A69 || 105 || 205 || Null settings value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A069 || 105 || 208 || Null setting value size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A269 || 105 || 209 || Null debug mode flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BA69 || 105 || 221 || Setting group name has zero length&lt;br /&gt;
|-&lt;br /&gt;
| 0x1BC69 || 105 || 222 || Empty settings item key&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E269 || 105 || 241 || Setting group name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E469 || 105 || 242 || Setting name is too long (64 character limit?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x20A69 || 105 || 261 || Setting group name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x20C69 || 105 || 262 || Setting name ends with &#039;.&#039; or contains invalid characters (allowed: [a-z0-9_\-.])&lt;br /&gt;
|-&lt;br /&gt;
| 0x4DA69 || 105 || 621 || Null language code buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4EE69 || 105 || 631 || Null network settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x4F069 || 105 || 632 || Null network settings output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x50269 || 105 || 641 || Null backlight settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51669 || 105 || 651 || Null Bluetooth device setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51869 || 105 || 652 || Null Bluetooth device setting output count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51A69 || 105 || 653 || Null Bluetooth enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51C69 || 105 || 654 || Null Bluetooth AFH enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x51E69 || 105 || 655 || Null Bluetooth boost enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52069 || 105 || 656 || Null BLE pairing settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52269 || 105 || 657 || Null BLE pairing settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52A69 || 105 || 661 || Null external steady clock source ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52C69 || 105 || 662 || Null user system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x52E69 || 105 || 663 || Null network system clock context buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53069 || 105 || 664 || Null user system clock automatic correction enabled flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53269 || 105 || 665 || Null shutdown RTC value buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53469 || 105 || 666 || Null external steady clock internal offset buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x53E69 || 105 || 671 || Null account settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55269 || 105 || 681 || Null audio volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55669 || 105 || 683 || Null ForceMuteOnHeadphoneRemoved buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55869 || 105 || 684 || Null headphone volume warning count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x55E69 || 105 || 687 || Invalid audio output mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x56069 || 105 || 688 || Null headphone volume update flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x56669 || 105 || 691 || Null console information upload flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57A69 || 105 || 701 || Null automatic application download flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57C69 || 105 || 702 || Null notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x57E69 || 105 || 703 || Null account notification settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58069 || 105 || 704 || Null account notification settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x58E69 || 105 || 711 || Null vibration master volume buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59069 || 105 || 712 || Null NX controller settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59269 || 105 || 713 || Null NX controller settings entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x59469 || 105 || 714 || Null USB full key enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A269 || 105 || 721 || Null TV settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A469 || 105 || 722 || Null EDID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5B669 || 105 || 731 || Null data deletion settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CA69 || 105 || 741 || Null initial system applet program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CC69 || 105 || 742 || Null overlay disp program ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5CE69 || 105 || 743 || Null IsInRepairProcess buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5D069 || 105 || 744 || Null RequiresRunRepairTimeReviser buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5DE69 || 105 || 751 || Null device timezone location name buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x5F269 || 105 || 761 || Null primary album storage buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60669 || 105 || 771 || Null USB 3.0 enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x60869 || 105 || 772 || Null USB Type-C power source circuit version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x61A69 || 105 || 781 || Null battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x62E69 || 105 || 791 || Null serial number buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64269 || 105 || 801 || Null lock screen flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64669 || 105 || 803 || Null color set ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64869 || 105 || 804 || Null quest flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64A69 || 105 || 805 || Null wireless certification file size buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64C69 || 105 || 806 || Null wireless certification file buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x64E69 || 105 || 807 || Null initial launch settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65069 || 105 || 808 || Null device nickname buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65269 || 105 || 809 || Null battery percentage flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x65469 || 105 || 810 || Null applet launch flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7E869 || 105 || 1012 || Null wireless LAN enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x7FA69 || 105 || 1021 || Null product model buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x80E69 || 105 || 1031 || Null NFC enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82269 || 105 || 1041 || Null ECI device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x82469 || 105 || 1042 || Null E-Ticket device certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x83669 || 105 || 1051 || Null sleep settings buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84A69 || 105 || 1061 || Null EULA version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x84C69 || 105 || 1062 || Null EULA version entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x85E69 || 105 || 1071 || Null LDN channel buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87269 || 105 || 1081 || Null SSL key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x87469 || 105 || 1082 || Null SSL certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x88669 || 105 || 1091 || Null telemetry flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89A69 || 105 || 1101 || Null Gamecard key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x89C69 || 105 || 1102 || Null Gamecard certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8AE69 || 105 || 1111 || Null PTM battery lot buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B069 || 105 || 1112 || Null PTM fuel gauge parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C269 || 105 || 1121 || Null ECI device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C469 || 105 || 1122 || Null E-Ticket device key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D669 || 105 || 1131 || Null speaker parameter buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EA69 || 105 || 1141 || Null firmware version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EC69 || 105 || 1142 || Null firmware version digest buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8EE69 || 105 || 1143 || Null rebootless system update version buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x8FE69 || 105 || 1151 || Null Mii author ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x91269 || 105 || 1161 || Null fatal flags buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x92669 || 105 || 1171 || Null auto update enable flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x93A69 || 105 || 1181 || Null external RTC reset flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x94E69 || 105 || 1191 || Null push notification activity mode buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x96269 || 105 || 1201 || Null service discovery control setting buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x97669 || 105 || 1211 || Null error report share permission buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x98A69 || 105 || 1221 || Null LCD vendor ID buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x99E69 || 105 || 1231 || Null console SixAxis sensor acceleration bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A069 || 105 || 1232 || Null console SixAxis sensor angular velocity bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A269 || 105 || 1233 || Null console SixAxis sensor acceleration gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A469 || 105 || 1234 || Null console SixAxis sensor angular velocity gain buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A669 || 105 || 1235 || Null console SixAxis sensor angular velocity time bias buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9A869 || 105 || 1236 || Null console SixAxis sensor angular acceleration buffer &lt;br /&gt;
|-&lt;br /&gt;
| 0x9B269 || 105 || 1241 || Null keyboard layout buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9BA69 || 105 || 1245 || Invalid keyboard layout&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C669 || 105 || 1251 || Null web inspector flag buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9C869 || 105 || 1252 || Null allowed SSL hosts buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CA69 || 105 || 1253 || Null allowed SSL hosts entry count buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9CC69 || 105 || 1254 || Null host FS mount point buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9EE69 || 105 || 1271 || Null Amiibo key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F069 || 105 || 1272 || Null Amiibo ECQV certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F269 || 105 || 1273 || Null Amiibo ECDSA certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F469 || 105 || 1274 || Null Amiibo ECQV BLS key buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F669 || 105 || 1275 || Null Amiibo ECQV BLS certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F869 || 105 || 1276 || Null Amiibo ECQV BLS root certificate buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x272 || 114 || 1 || Generic error&lt;br /&gt;
|-&lt;br /&gt;
| 0xC72 || 114 || 6 || Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || 116 || 0 || Time service not initialized&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC74 || 116 || 102 || Time not set&lt;br /&gt;
|-&lt;br /&gt;
| 0x19074 || 116 || 200 || Invalid time comparison&lt;br /&gt;
|-&lt;br /&gt;
| 0x19274 || 116 || 201 || Signed overflow/underflow&lt;br /&gt;
|-&lt;br /&gt;
| 0x64274 || 116 || 801 || Memory allocation failure&lt;br /&gt;
|-&lt;br /&gt;
| 0x70A74 || 116 || 901 || Null pointer&lt;br /&gt;
|-&lt;br /&gt;
| 0x70C74 || 116 || 902 || Value out of valid range&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BA74 || 116 || 989 || Entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0x7BC74 || 116 || 990 || Unimplemented functionality&lt;br /&gt;
|-&lt;br /&gt;
| 0x287C || 124 || 20 || Argument is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C7C || 124 || 22 || Argument is invalid&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C7C || 124 || 30 || Bad input buffer size&lt;br /&gt;
|-&lt;br /&gt;
| 0x407C || 124 || 32 || Invalid input buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x27E || 126 || 1 || Invalid argument&lt;br /&gt;
|-&lt;br /&gt;
| 0x87E || 126 || 4 || Entry not found&lt;br /&gt;
|-&lt;br /&gt;
| 0xCE7E || 126 || 67 || Invalid database signature value (should be &amp;quot;NFDB&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0xD27E || 126 || 69 || Invalid database entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x1987E || 126 || 204 || Development/debug-only behavior&lt;br /&gt;
|-&lt;br /&gt;
| 0x480 || 128 || 2 || IStorage not available.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4680 || 128 || 35 || Error while launching applet.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A80 || 128 || 37 || Title-ID not found. Caused by code 0x410 when applet launch fails&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E880 || 128 || 500 || Invalid IStorage size (negative?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EC80 || 128 || 502 || IStorage has already been opened by another accessor&lt;br /&gt;
|-&lt;br /&gt;
| 0x3EE80 || 128 || 503 || IStorage Read/Write out-of-bounds&lt;br /&gt;
|-&lt;br /&gt;
| 0x3FE80 || 128 || 511 || IStorage opened as wrong type (data opened as transfermem, transfermem opened as data)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B080 || 128 || 600 || Failed to allocate memory for IStorage&lt;br /&gt;
|-&lt;br /&gt;
| 0x59080 || 128 || 712 || Thread stack pool exhausted (out of memory)&lt;br /&gt;
|-&lt;br /&gt;
| 0x7A880 || 128 || 980 || &amp;lt;code&amp;gt;am.debug!dev_function&amp;lt;/code&amp;gt; setting needs to be set&lt;br /&gt;
|-&lt;br /&gt;
| 0xA83 || 131 || 5 || Unrecognized applet ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x485 || 133 || 2 || Invalid DVFS table ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x885 || 133 || 4 || Invalid parameter&lt;br /&gt;
|-&lt;br /&gt;
| 0x3CF089 || 137 || 7800 || Unknown/invalid libcurl error.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E8289-0x3F4089 || 137 || 8001-8096 || libcurl error 1-96. Some of the libcurl errors in the error-table map to the above unknown-libcurl-error however.&lt;br /&gt;
|-&lt;br /&gt;
| 0x68A || 138 || 3 || Not initialized.&lt;br /&gt;
|-&lt;br /&gt;
| 0x668C || 140 || 51 || USB data-transfer in progress&lt;br /&gt;
|-&lt;br /&gt;
| 0xD48C || 140 || 106 || Invalid descriptor&lt;br /&gt;
|-&lt;br /&gt;
| 0x1928C || 140 || 201 || USB device not bound / interface already enabled&lt;br /&gt;
|-&lt;br /&gt;
| 0x299 || 153 || 1 || Invalid audio device&lt;br /&gt;
|-&lt;br /&gt;
| 0x499 || 153 || 2 || Operation couldn&#039;t complete successfully&lt;br /&gt;
|-&lt;br /&gt;
| 0x699 || 153 || 3 || Invalid sample rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x899 || 153 || 4 || Buffer size too small&lt;br /&gt;
|-&lt;br /&gt;
| 0x1099 || 153 || 8 || Too many buffers are still unreleased&lt;br /&gt;
|-&lt;br /&gt;
| 0x1499 || 153 || 10 || Invalid channel count&lt;br /&gt;
|-&lt;br /&gt;
| 0x40299 || 153 || 513 || Invalid/Unsupported operation&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0099 || 153 || 1536 || Invalid handle&lt;br /&gt;
|-&lt;br /&gt;
| 0xC0899 || 153 || 1540 || Audio output was already started&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C9D || 157 || 30 || Address is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E9D || 157 || 31 || PID is NULL&lt;br /&gt;
|-&lt;br /&gt;
| 0x549D || 157 || 42 || Already bound&lt;br /&gt;
|-&lt;br /&gt;
| 0xCC9D || 157 || 102 || Invalid PID&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA3 || 163 ||  5 || System is booting up repair process without VOL+ held down.&lt;br /&gt;
|-&lt;br /&gt;
| 0xCA3 || 163 || 6 || System is booting up repair process that requires RepairTimeReviser but does not have special cartridge inserted.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8B2 || 178 || 100 || Invalid user ID&lt;br /&gt;
|-&lt;br /&gt;
| 0xCAB2 || 178 || 101 || User does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 0x12CB2 || 178 || 150 || Service unavailable&lt;br /&gt;
|-&lt;br /&gt;
| 0x190B2 || 178 || 200 || File storage failure&lt;br /&gt;
|-&lt;br /&gt;
| 0xF0CD || 205 || 120 || IR image data not available/ready.&lt;br /&gt;
|-&lt;br /&gt;
| 0x35B || 347 || 1 || Failed to init SM.&lt;br /&gt;
|-&lt;br /&gt;
| 0x55B || 347 || 2 || Failed to init FS.&lt;br /&gt;
|-&lt;br /&gt;
| 0x75B || 347 || 3 || Failed to to open NRO file. May also happen when SD card isn&#039;t inserted / SD mounting failed earlier.&lt;br /&gt;
|-&lt;br /&gt;
| 0x95B || 347 || 4 || Failed to read NRO header.&lt;br /&gt;
|-&lt;br /&gt;
| 0xB5B || 347 || 5 || Invalid NRO magic.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD5B || 347 || 6 || Invalid NRO segments.&lt;br /&gt;
|-&lt;br /&gt;
| 0xF5B || 347 || 7 || Failed to read NRO.&lt;br /&gt;
|-&lt;br /&gt;
| 0x135B || 347 || 9 || Failed to allocate heap.&lt;br /&gt;
|-&lt;br /&gt;
| 0x255B || 347 || 18 || Failed to map code-binary memory.&lt;br /&gt;
|-&lt;br /&gt;
| 0x275B || 347 || 19 || Failed to map code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x295B || 347 || 20 || Failed to map code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B5B || 347 || 21 || Failed to map code memory (.data+.bss).&lt;br /&gt;
|-&lt;br /&gt;
| 0x315B || 347 || 24 || Failed to unmap code memory (.text).&lt;br /&gt;
|-&lt;br /&gt;
| 0x335B || 347 || 25 || Failed to unmap code memory (.rodata).&lt;br /&gt;
|-&lt;br /&gt;
| 0x355B || 347 || 26 || Failed to unmap code memory (.data+.bss).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FS Error Codes ==&lt;br /&gt;
The following are the error codes recognized by nn::fs::detail::LogErrorMessage found in some [[Factory Setup|factory]] titles:&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Description || Message&lt;br /&gt;
|-&lt;br /&gt;
| 0x7802 || 60 || Error: Specified mount name already exists.&lt;br /&gt;
|-&lt;br /&gt;
| 0xD401 || 106 || Error: Passed buffer is not usable for fs library.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D202 || 1001 || Error: Specified partition is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D402 || 1002 || Error: Specified target is not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xFA002 - 0x138602 || 2000 - 2499 || Error: Failed to access SD card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x136802 - 0x176E02 || 2500 - 2999 || Error: Failed to access game card.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177202 || 3001 || Error: Specified operation is not implemented.&lt;br /&gt;
|-&lt;br /&gt;
| 0x177A02 || 3005 || Error: Specified value is out of range.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B5802 - 0x1F3E02 || 3500 - 3999 || Error: Failed to access MMC.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4202 - 0x219602 || 4001 - 4299 || Error: ROM is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x219A02 - 0x232602 || 4301 - 4499 || Error: Save data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x232A02 - 0x23EE02 || 4501 - 4599 || Error: NCA is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x23F202 - 0x243E02 || 4601 - 4639 || Error: Integrity verification failed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x244202 - 0x246602 || 4641 - 4659 || Error: Partition FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x246A02 - 0x248E02 || 4661 - 4679 || Error: Built-in-storage is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x249202 - 0x24B602 || 4681 - 4699 || Error: FAT FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24BA02 - 0x24DE02 || 4701 - 4719 || Error: HOST FS is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F4002 - 0x270E02 || 4000, 4300, 4500, 4600, 4640, 4660, 4680, 4700, 4720-4999 || Error: Data is corrupted.&lt;br /&gt;
|-&lt;br /&gt;
| 0x271002 - 0x2EDE02 || 5000-5999 || Error: Unexpected failure occurred.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE402 - 0x2F1A02 || 6002-6029 || Error: Invalid path was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5A02 || 6061 || Error: Invalid offset was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5C02 || 6062 || Error: Invalid size was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F5E02 || 6063 || Error: Null pointer argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE002 || 6000 || Error: Precondition violation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2EE202 - 0x306E02 || 6001-6199 || Error: Invalid argument was specified.&lt;br /&gt;
|-&lt;br /&gt;
| 0x307202 || 6201 || Error: OpenMode_AllowAppend is required for implicit extension of file size by WriteFile().&lt;br /&gt;
|-&lt;br /&gt;
| 0x307002 - 0x313602 || 6200, 6202 - 6299 || Error: Invalid operation for the open mode.&lt;br /&gt;
|-&lt;br /&gt;
| 0x313802 - 0x31FE02 || 6300-6399 || Error: Unsupported operation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x320002 - 0x32C602 || 6400-6499 || Error: Permission denied.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346402 || 6706 || Error: Enough journal space is not left.&lt;br /&gt;
|-&lt;br /&gt;
| 0x346A02 || 6709 || Error: The open count of files and directories reached the limitation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Fatal Errors =&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Description&lt;br /&gt;
|-&lt;br /&gt;
| 2162-0002&lt;br /&gt;
| Can be triggered by running [[SVC|svcBreak]]. The svcBreak params have no effect on the value of the thrown error-code.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0000&lt;br /&gt;
| Userland ARM undefined instruction exception&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0001&lt;br /&gt;
| Userland ARM prefetch-abort due to PC set to non-executable region&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0002&lt;br /&gt;
| Userland ARM data abort. Also caused by abnormal process termination via [[SVC|svcExitProcess]]. Note: directly jumping to nnMain()-retaddr from non-main-thread has the same result.&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0003&lt;br /&gt;
| Userland PC address not aligned to 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 2168-0008&lt;br /&gt;
| Can occur when attempting to call an svc outside the whitelist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Support Errors =&lt;br /&gt;
This section is for Support Errors displayed by the error-applet, separate from the normal Result errors.&lt;br /&gt;
&lt;br /&gt;
== Support Modules ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Value || Name&lt;br /&gt;
|-&lt;br /&gt;
| 800 || [[Internet_Browser|General web-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 809 || [[Internet_Browser|WifiWebAuthApplet]]&lt;br /&gt;
|-&lt;br /&gt;
| 810 || [[Internet_Browser|Whitelisted-applet]]&lt;br /&gt;
|-&lt;br /&gt;
| 811 || [[Internet_Browser|ShopN]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
8XX is for/includes system applets.&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Error || Module || Description || Notes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| {web-applets listed above}&lt;br /&gt;
| 2750&lt;br /&gt;
| MP4 parsing failed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Normal error-codes displayed by the system also use the same format as fatal-errors.&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Flash_Filesystem&amp;diff=5907</id>
		<title>Flash Filesystem</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Flash_Filesystem&amp;diff=5907"/>
		<updated>2018-12-30T00:39:09Z</updated>

		<summary type="html">&lt;p&gt;Moosehunter: /* System Savegames */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= NAND structure =&lt;br /&gt;
The Switch&#039;s eMMC storage features a large user area, two smaller boot partitions and a replay-protected memory block which is unused (no authentication key is programmed).&lt;br /&gt;
&lt;br /&gt;
All official partition names come from [[SystemInitializer]].&lt;br /&gt;
&lt;br /&gt;
== Boot Partitions ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Boot Partition 0 (0 of 1)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The official name for this partition is &amp;quot;BootPartition1Root&amp;quot; and it has [[Filesystem_services|Bis]] Partition ID == 0.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
|  0x000000&lt;br /&gt;
|  0x4000&lt;br /&gt;
|  Normal Firmware [[BCT|BCT]] from [[Title_list#System_Data_Archives|Title 0100000000000819]]&lt;br /&gt;
|-&lt;br /&gt;
|  0x004000&lt;br /&gt;
|  0x4000&lt;br /&gt;
|  SafeMode Firmware [[BCT|BCT]] from [[Title_list#System_Data_Archives|Title 010000000000081A]]&lt;br /&gt;
|-&lt;br /&gt;
|  0x008000&lt;br /&gt;
|  0x4000&lt;br /&gt;
|  Normal Firmware [[BCT|BCT]] from [[Title_list#System_Data_Archives|Title 0100000000000819]] (backup)&lt;br /&gt;
|-&lt;br /&gt;
|  0x00C000&lt;br /&gt;
|  0x4000&lt;br /&gt;
|  SafeMode Firmware [[BCT|BCT]] from [[Title_list#System_Data_Archives|Title 010000000000081A]] (backup)&lt;br /&gt;
|-&lt;br /&gt;
|  0x010000&lt;br /&gt;
|  0xEC000&lt;br /&gt;
|  59 additional BCTs, normally unused/empty on retail systems.&lt;br /&gt;
|-&lt;br /&gt;
|  0x0FC000&lt;br /&gt;
|  0x4000&lt;br /&gt;
|  [[#System Update Control|System Update Control area]]&lt;br /&gt;
|-&lt;br /&gt;
|  0x100000&lt;br /&gt;
|  0x40000&lt;br /&gt;
|  Normal Firmware [[Package1|package1]] from [[Title_list#System_Data_Archives|Title 0100000000000819]]&lt;br /&gt;
|-&lt;br /&gt;
|  0x140000&lt;br /&gt;
|  0x40000&lt;br /&gt;
|  Normal Firmware [[Package1|package1]] from [[Title_list#System_Data_Archives|Title 0100000000000819]] (backup)&lt;br /&gt;
|-&lt;br /&gt;
|  0x180000&lt;br /&gt;
|  0x4000&lt;br /&gt;
|  [[#Keyblob|Keyblob area]]&lt;br /&gt;
|-&lt;br /&gt;
|  0x184000&lt;br /&gt;
|  0x200&lt;br /&gt;
|  [2.0.0+] [[#NAND Patrol|NAND Patrol area]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Boot Partition 1 (1 of 1)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The official name for this partition is &amp;quot;BootPartition2Root&amp;quot; and it has [[Filesystem_services|Bis]] Partition ID == 10.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
|  0x000000&lt;br /&gt;
|  0x40000&lt;br /&gt;
|  SafeMode Firmware [[Package1|package1]] from [[Title_list#System_Data_Archives|Title 010000000000081A]]&lt;br /&gt;
|-&lt;br /&gt;
|  0x040000&lt;br /&gt;
|  0x40000&lt;br /&gt;
|  SafeMode Firmware [[Package1|package1]] from [[Title_list#System_Data_Archives|Title 010000000000081A]] (backup)&lt;br /&gt;
|-&lt;br /&gt;
|  0x080000&lt;br /&gt;
|  0x40000&lt;br /&gt;
|  Reserved&lt;br /&gt;
|-&lt;br /&gt;
|  0x0C0000&lt;br /&gt;
|  0x40000&lt;br /&gt;
|  Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== System Update Control ===&lt;br /&gt;
The 0x4000 bytes at offset 0xFC000 are used by [[NS_Services|NS]] and [[Boot|boot]] for keeping track of the status of a system update. This area is used by the [[NS_Services#ns:su|ISystemUpdateControl]] commands &amp;quot;ApplyDownloadedUpdate&amp;quot;, &amp;quot;ApplyCardUpdate&amp;quot; and &amp;quot;ApplyReceivedUpdate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x1&lt;br /&gt;
| BootImages status. Set to 1 by [[NS_Services|NS]] during a system update and cleared by [[Boot|boot]] after restarting.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x1&lt;br /&gt;
| BootImagesSafe status. Set to 1 by [[NS_Services|NS]] during a system update and cleared by [[Boot|boot]] after restarting.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Keyblob ===&lt;br /&gt;
Starting at offset 0x180000 is an array of 0x200-byte entries, for a total of 32 keyblobs. Each one is unique compared to the others and they are all console unique. This is officially known as the &amp;quot;EKS&amp;quot; (encryption key source) area.&lt;br /&gt;
&lt;br /&gt;
From each 0x200-byte entry only the first 0xB0 bytes effectively form the keyblob as below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x10&lt;br /&gt;
| Keyblob AES-CMAC over the next 0xA0 bytes (safe against timing attacks)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x10&lt;br /&gt;
| Keyblob AES CTR&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x90&lt;br /&gt;
| Keyblob encrypted payload&lt;br /&gt;
|-&lt;br /&gt;
| 0xB0&lt;br /&gt;
| 0x150&lt;br /&gt;
| Unused, all-zero.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The active bootloader&#039;s version (offset 0x2330 in the BCT) acts as an index to control which keyblob should be installed into the system.&lt;br /&gt;
[[NS_Services|NS]] uses this during system updates to install the keyblob into the [[BCT#customer_data|customer data]] section in BCTs (offset 0x450).&lt;br /&gt;
&lt;br /&gt;
[[Boot]] also uses this index for repairing corrupt sectors.&lt;br /&gt;
&lt;br /&gt;
The currently active keyblob is officially known as &amp;quot;SecureInfo&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== NAND Patrol ===&lt;br /&gt;
The 0x200 bytes at offset 0x184000 are used by [[Filesystem_services|FS]] for keeping track of NAND patrolling.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x20&lt;br /&gt;
| HMAC-SHA-256 over the next 0x1E0 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| 0x4&lt;br /&gt;
| Last patrolled NAND block&#039;s offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| 0x4&lt;br /&gt;
| NAND patrol count&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| 0x1D8&lt;br /&gt;
| Unused, all-zero.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== User Partitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Partition name&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  [[Filesystem_services|Bis]] Partition ID&lt;br /&gt;
!  Encrypted&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
|  N/A&lt;br /&gt;
|  0x0&lt;br /&gt;
|  &lt;br /&gt;
|  20&lt;br /&gt;
|  No&lt;br /&gt;
|  GPT header, Bis-storage also allows raw access to the entire NAND eMMC sectors starting at sector0. The official name for this partition is &amp;quot;UserDataRoot&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  [[Calibration|PRODINFO]]&lt;br /&gt;
|  0x00004400&lt;br /&gt;
|  0x003FBC00&lt;br /&gt;
|  27&lt;br /&gt;
|  Yes (Bis key 0)&lt;br /&gt;
|  &amp;quot;CAL0&amp;quot; raw partition containing set:cal data. The official name for this partition is &amp;quot;CalibrationBinary&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  [[Calibration|PRODINFOF]]&lt;br /&gt;
|  0x00400000&lt;br /&gt;
|  0x00400000&lt;br /&gt;
|  28&lt;br /&gt;
|  Yes (Bis key 0)&lt;br /&gt;
|  FAT12 filesystem, additional calibration. The official name for this partition is &amp;quot;CalibrationFile&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  BCPKG2-1-Normal-Main&lt;br /&gt;
|  0x00800000&lt;br /&gt;
|  0x00800000&lt;br /&gt;
|  21&lt;br /&gt;
|  No&lt;br /&gt;
|  Raw partition where the first 0x4000 bytes (usually empty) contain the [[BootConfig]] and the remaining space contains the [[Package2|package2]] image from [[Title_list#System_Data_Archives|Title 0100000000000819]] by default. With the exFAT update installed, the [[Package2|package2]] image is switched to the one from [[Title_list#System_Data_Archives|Title 010000000000081B]]. The official name for this partition is &amp;quot;BootConfigAndPackage2Part1&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  BCPKG2-2-Normal-Sub&lt;br /&gt;
|  0x01000000&lt;br /&gt;
|  0x00800000&lt;br /&gt;
|  22&lt;br /&gt;
|  No&lt;br /&gt;
|  Backup partition for BCPKG2-1-Normal-Main. The official name for this partition is &amp;quot;BootConfigAndPackage2Part2&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  BCPKG2-3-SafeMode-Main&lt;br /&gt;
|  0x01800000&lt;br /&gt;
|  0x00800000&lt;br /&gt;
|  23&lt;br /&gt;
|  No&lt;br /&gt;
|  Raw partition where the first 0x4000 bytes (usually empty) contain the [[BootConfig]] and the remaining space contains the [[Package2|package2]] image from [[Title_list#System_Data_Archives|Title 010000000000081A]] by default. On [4.0.0+] and with the exFAT update installed, the [[Package2|package2]] image is switched to the one from [[Title_list#System_Data_Archives|Title 010000000000081C]]. The official name for this partition is &amp;quot;BootConfigAndPackage2Part3&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  BCPKG2-4-SafeMode-Sub&lt;br /&gt;
|  0x02000000&lt;br /&gt;
|  0x00800000&lt;br /&gt;
|  24&lt;br /&gt;
|  No&lt;br /&gt;
|  Backup partition for BCPKG2-3-SafeMode-Main. The official name for this partition is &amp;quot;BootConfigAndPackage2Part4&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  BCPKG2-5-Repair-Main&lt;br /&gt;
|  0x02800000&lt;br /&gt;
|  0x00800000&lt;br /&gt;
|  25&lt;br /&gt;
|  No&lt;br /&gt;
|  Installed at the factory, never written afterwards on retail. In one case this is identical to normal [[1.0.0]] [[Package2|package2]], except this has encrypted data at the end padded for 0x1000-byte alignment. The official name for this partition is &amp;quot;BootConfigAndPackage2Part5&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  BCPKG2-6-Repair-Sub&lt;br /&gt;
|  0x03000000&lt;br /&gt;
|  0x00800000&lt;br /&gt;
|  26&lt;br /&gt;
|  No&lt;br /&gt;
|  Backup partition for BCPKG2-5-Repair-Main. The official name for this partition is &amp;quot;BootConfigAndPackage2Part6&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  SAFE&lt;br /&gt;
|  0x03800000&lt;br /&gt;
|  0x04000000&lt;br /&gt;
|  29&lt;br /&gt;
|  Yes (Bis key 1)&lt;br /&gt;
|  FAT32 filesystem. The official name for this partition is &amp;quot;SafeMode&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  SYSTEM&lt;br /&gt;
|  0x07800000 &lt;br /&gt;
|  0xA0000000&lt;br /&gt;
|  31, 32 and 33&lt;br /&gt;
|  Yes (Bis key 2)&lt;br /&gt;
|  FAT32 filesystem. The official names for these partitions are &amp;quot;System&amp;quot;, &amp;quot;SystemProperEncryption&amp;quot; and &amp;quot;SystemProperPartition&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|  USER&lt;br /&gt;
|  0xA7800000&lt;br /&gt;
|  0x680000000&lt;br /&gt;
|  30&lt;br /&gt;
|  Yes (Bis key 3)&lt;br /&gt;
|  FAT32 filesystem.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 0x747BFFE00&lt;br /&gt;
| 0x200&lt;br /&gt;
| &lt;br /&gt;
|  No&lt;br /&gt;
|  This is the backup GPT header specified by the main GPT header. This is also the last sector readable with Bis-storage paritionID 20.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the client process lacks the relevant permission for any of the above partition IDs, error 0x2EE202 is returned.&lt;br /&gt;
&lt;br /&gt;
[[NCA]]s stored in NAND are raw, identical to the data readable with [[NCM_services#ReadContentIdFile]].&lt;br /&gt;
&lt;br /&gt;
The filenames for saveimages is just &amp;quot;&amp;lt;lower-case hex u64 saveID&amp;gt;&amp;quot;. SYSTEM-partition saveIDs are specified by [[Filesystem_services|FS]] commands, while USER-partition saveIDs are determined by FS-module internally. The high u32 of the saveID is normally either 0x00000000 or 0x80000000.&lt;br /&gt;
&lt;br /&gt;
Encrypted partitions use AES-XTS using the same non-standard tweak (tweak[0] = sectorIdx[MSB] .. tweak[15] = sectorIdx[LSB], if using 32bit sectorIdx that means tweak[0]..tweak[11] are 0, with tweak[12]..tweak[15] containing big-endian sectorIdx) as other Nintendo AES-XTS code, initial_sector = 0, and sector size 0x4000. All encrypted partitions use console unique keydata.&lt;br /&gt;
&lt;br /&gt;
=== PRODINFOF ===&lt;br /&gt;
 PRODINFOF&lt;br /&gt;
 ├── Certifications&lt;br /&gt;
 │   └── WirelessCertification.png&lt;br /&gt;
 └── ptd&lt;br /&gt;
     ├── DeviceIdWithEmsBit.dat&lt;br /&gt;
     ├── Ecid.dat&lt;br /&gt;
     ├── prodCode.dat&lt;br /&gt;
     └── log&lt;br /&gt;
         ├── Process_asm1.log&lt;br /&gt;
         ├── Process_board1.log&lt;br /&gt;
         ├── TestFlagLine.log&lt;br /&gt;
         ├── TestFlagQc.log&lt;br /&gt;
         ├── AGING&lt;br /&gt;
         │   └── Sequence.log&lt;br /&gt;
         ├── BOARD_TEST&lt;br /&gt;
         │   └── Sequence.log&lt;br /&gt;
         ├── BOARD_WIRELESS&lt;br /&gt;
         │   └── Sequence.log&lt;br /&gt;
         ├── FINAL_CHECK&lt;br /&gt;
         │   └── Sequence.log&lt;br /&gt;
         ├── LCD_AND_KEY&lt;br /&gt;
         │   └── Sequence.log&lt;br /&gt;
         └── USB_AND_HP&lt;br /&gt;
             └── Sequence.log&lt;br /&gt;
&lt;br /&gt;
==== DeviceIdWithEmsBit.dat ====&lt;br /&gt;
Contains a 0x10-byte uppercase hex string, identical to the DeviceId in the [[Settings_services|DeviceCert]].&lt;br /&gt;
&lt;br /&gt;
=== SYSTEM ===&lt;br /&gt;
 SYSTEM&lt;br /&gt;
 ├── PRF2SAFE.RCV&lt;br /&gt;
 ├── Contents&lt;br /&gt;
 │   ├── registered&lt;br /&gt;
 │   │   └── ... [[NCA]]&lt;br /&gt;
 │   └── placehld&lt;br /&gt;
 │       └── ... [[NCA]]&lt;br /&gt;
 ├── [[Savegames|save]]&lt;br /&gt;
 │   └── ...&lt;br /&gt;
 └── saveMeta&lt;br /&gt;
     └── ... (empty?)&lt;br /&gt;
&lt;br /&gt;
The saves stored under this partition are only for system-titles / etc.&lt;br /&gt;
&lt;br /&gt;
=== USER ===&lt;br /&gt;
 USER&lt;br /&gt;
 ├── PRF2SAFE.RCV&lt;br /&gt;
 ├── Album (Same layout as [[SD_Filesystem|SD]])&lt;br /&gt;
 ├── Contents&lt;br /&gt;
 │   ├── registered&lt;br /&gt;
 │   │   └── ... [[NCA]]&lt;br /&gt;
 │   └── placehld&lt;br /&gt;
 │       └── ... [[NCA]]&lt;br /&gt;
 ├── [[Savegames|save]]&lt;br /&gt;
 │   └── ...&lt;br /&gt;
 ├── saveMeta&lt;br /&gt;
 │   └── ... &lt;br /&gt;
 └── temp &lt;br /&gt;
&lt;br /&gt;
The saves for all non-system applications, regardless of where the application is located(storageID), is stored here. Each user account which has savedata has a separate saveimage. Save-common for an application is presumably a separate saveimage too. Every saveimage here is &#039;&#039;only&#039;&#039; for applications.&lt;br /&gt;
&lt;br /&gt;
=== SAFE ===&lt;br /&gt;
 SAFE&lt;br /&gt;
 ├── PRF2SAFE.RCV&lt;br /&gt;
 ├── Contents&lt;br /&gt;
 │   ├── registered&lt;br /&gt;
 │   │   └── ... [[NCA]] (nothing installed?)&lt;br /&gt;
 │   └── placehld&lt;br /&gt;
 │       └── ... [[NCA]]&lt;br /&gt;
 └── [[Savegames|save]]&lt;br /&gt;
     ├── 8000000000000000&lt;br /&gt;
     └── 8000000000000120&lt;br /&gt;
&lt;br /&gt;
On a v2.1 system with MountBis, the only thing under here is &amp;quot;PRF2SAFE.RCV&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= System Savegames =&lt;br /&gt;
&lt;br /&gt;
This is a listing of known System Savedata and what titles they correspond to.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! SaveID || Owner || Mount || Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000000 || fs || &amp;lt;nowiki&amp;gt;saveDataIxrDb:/&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;saveDataIxrDbSf:/&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;saveDataIxrDbPr:/&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;saveDataIxrDbSd:/&amp;lt;/nowiki&amp;gt; || Contains [[IMKV|imkvdb.arc]] and &amp;quot;lastPublishedId&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000010 || account || &amp;lt;nowiki&amp;gt;account:/&amp;lt;/nowiki&amp;gt; || Account database.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000011 || account || &amp;lt;nowiki&amp;gt;idgen:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000020 || nfc || &amp;lt;nowiki&amp;gt;data:/&amp;lt;/nowiki&amp;gt; || NFC data and backups.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000030 || ns || &amp;lt;nowiki&amp;gt;mii:/&amp;lt;/nowiki&amp;gt; || Mii database.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000031 || ns || &amp;lt;nowiki&amp;gt;mii:/&amp;lt;/nowiki&amp;gt; || Mii test mode database.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000040 || ns || &amp;lt;nowiki&amp;gt;apprecdb:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000041 || ns || &amp;lt;nowiki&amp;gt;nsaccache:/&amp;lt;/nowiki&amp;gt; || Home menu icondata/lru list for recently played games.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000043 || ns || &amp;lt;nowiki&amp;gt;ns_appman:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000044 || ns || &amp;lt;nowiki&amp;gt;ns_sysup:/&amp;lt;/nowiki&amp;gt; || Content update context.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000045 || ns || &amp;lt;nowiki&amp;gt;vmdb:/&amp;lt;/nowiki&amp;gt; || Version List/Required Version List storage.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000046 || ns || &amp;lt;nowiki&amp;gt;dtlman:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000047 || ns || &amp;lt;nowiki&amp;gt;ns_exfat:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000048 || ns || &amp;lt;nowiki&amp;gt;ns_systemseed:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000049 || ns || &amp;lt;nowiki&amp;gt;ns_ssversion:/&amp;lt;/nowiki&amp;gt; || Safe System version.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000050 || settings || &amp;lt;nowiki&amp;gt;SystemSettings:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000051 || settings || &amp;lt;nowiki&amp;gt;FwdbgSettingsS:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000052 || settings || &amp;lt;nowiki&amp;gt;PrivateSettings:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000053 || settings || &amp;lt;nowiki&amp;gt;DeviceSettings:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000054 || settings || &amp;lt;nowiki&amp;gt;ApplnSettings:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000060 || ssl || &amp;lt;nowiki&amp;gt;SslSave:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000070 || nim || &amp;lt;nowiki&amp;gt;nim_sys:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000071 || nim || &amp;lt;nowiki&amp;gt;nim_net:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000072 || nim || &amp;lt;nowiki&amp;gt;nim_tmp:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000073 || nim || &amp;lt;nowiki&amp;gt;nim_dac:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000074 || nim || &amp;lt;nowiki&amp;gt;nim_delta:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000075 || nim || &amp;lt;nowiki&amp;gt;nim_vac:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000076 || nim || &amp;lt;nowiki&amp;gt;nim_local:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000077 || nim || &amp;lt;nowiki&amp;gt;nim_lsys:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000078 || nim || &amp;lt;nowiki&amp;gt;nim_eca_dbg:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000080 || friends || &amp;lt;nowiki&amp;gt;friends:/&amp;lt;/nowiki&amp;gt; || Per-user savedata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000081 || friends || &amp;lt;nowiki&amp;gt;friends-sys:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000082 || friends || &amp;lt;nowiki&amp;gt;friends-image:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000090 || bcat || &amp;lt;nowiki&amp;gt;news:/&amp;lt;/nowiki&amp;gt; || Actual news msgpack archives.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000091 || bcat || &amp;lt;nowiki&amp;gt;news-sys:/&amp;lt;/nowiki&amp;gt; || News metadata, tasklist, history, database, required system version, etc.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000092 || bcat || &amp;lt;nowiki&amp;gt;news-dl:/&amp;lt;/nowiki&amp;gt; || Storage for newly(?) downloaded news list/data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000A0 || bcat || &amp;lt;nowiki&amp;gt;prepo-sys:/&amp;lt;/nowiki&amp;gt; || Play Report system information.&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000A1 || bcat || &amp;lt;nowiki&amp;gt;prepo:/&amp;lt;/nowiki&amp;gt; || Play Report msgpack archives.&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000A2 || bcat || &amp;lt;nowiki&amp;gt;prepo-ap:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000B0 || bsdsockets || &amp;lt;nowiki&amp;gt;nsdsave:/&amp;lt;/nowiki&amp;gt; || Socket configuration saved data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000C1 || bcat || &amp;lt;nowiki&amp;gt;bcat-sys:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000C2 || bcat || &amp;lt;nowiki&amp;gt;bcat-dl:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000D1 || erpt || &amp;lt;nowiki&amp;gt;save:/&amp;lt;/nowiki&amp;gt; || Contains &amp;quot;/journal&amp;quot; report listing + actual crash reports (&amp;quot;/%08x-%04x-%04x-%02x%02x-%04x%08x&amp;quot;), which are serialized via [http://msgpack.org/ MsgPack].&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000E0 || es || &amp;lt;nowiki&amp;gt;escertificate:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000E1 || es || &amp;lt;nowiki&amp;gt;escommon:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000E2 || es || &amp;lt;nowiki&amp;gt;espersonalized:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000E3 || es || &amp;lt;nowiki&amp;gt;esmetarecord:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000E4 || es || &amp;lt;nowiki&amp;gt;eselicense:/&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000000F0 || ns || &amp;lt;nowiki&amp;gt;pdm:/&amp;lt;/nowiki&amp;gt; || Play Data log. Per-user savedata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000100 || pctl || &amp;lt;nowiki&amp;gt;pctlss:/&amp;lt;/nowiki&amp;gt; || Parental Control settings.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000110 || npns || &amp;lt;nowiki&amp;gt;npns_save:/&amp;lt;/nowiki&amp;gt; || Push notifications persistent storage.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000120 || ncm || ? || meta/[[IMKV|imkvdb.arc]] for system partition. Cache of data extracted from the [[NCA|.cnmt]] for installed titles?(Including 816)&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000121 || ncm || ? || meta/[[IMKV|imkvdb.arc]] for sd partition. In some cases this save only contains a &amp;quot;meta/&amp;quot; directory without any file.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000122 || || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000130 || migration || &amp;lt;nowiki&amp;gt;state:/&amp;lt;/nowiki&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000131 || migration || &amp;lt;nowiki&amp;gt;context:/&amp;lt;/nowiki&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000000140 || capsrv || &amp;lt;nowiki&amp;gt;TM:/&amp;lt;/nowiki&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001010 || qlaunch || || Contains &amp;quot;savedata.dat&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001020 || swkbd || || Per-user savedata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001040 || miiEdit || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001050 || miiEdit || || Contains &amp;quot;database.dat&amp;quot;. Possibly Mii data and Mii texture data?&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001060 || shop || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001061 || shop || || Per-user savedata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001070 || web || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001071 || web || || Per-user savedata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8000000000001091 || loginShare || || Per-user savedata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000010B0 || playerSelect || || Contains &amp;quot;savedata.dat&amp;quot;. Per-user savedata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000000010C0 || myPage || || Per-user savedata.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Moosehunter</name></author>
	</entry>
</feed>