Filesystem Services PXI

Filesystem Services PXI

Post 3.x #

Command Header, starting with 3.0.0-5Available since system versionDescription
0x000101C21.0.0-0OpenFile
0x000201421.0.0-0DeleteFile
0x000302441.0.0-0RenameFile
0x000401421.0.0-0DeleteDirectory
0x000502021.0.0-0CreateFile
0x000601821.0.0-0CreateDirectory
0x000702441.0.0-0RenameDirectory
0x000801021.0.0-0OpenDirectory
0x000901421.0.0-0ReadFile
0x000A00C21.0.0-0CalculateFileHashSHA256
0x000B01821.0.0-0WriteFile
0x000C01041.0.0-0CalcSavegameMAC
0x000D00801.0.0-0GetFileSize
0x000E01001.0.0-0SetFileSize
0x000F00801.0.0-0CloseFile
0x001000C21.0.0-0ReadDirectory
0x001100801.0.0-0CloseDirectory
0x001200C21.0.0-0OpenArchive
0x001301021.0.0-0HasFile
0x001401021.0.0-0HasDirectory
0x001500C01.0.0-0CommitSaveData
0x001600801.0.0-0CloseArchive
0x001700801.0.0-0LockArchive (archivehandlelo, archivehandlehi)
0x001800001.0.0-0GetCardType
0x001900001.0.0-0GetSdmcArchiveResource
0x001A00001.0.0-0GetNandArchiveResource
0x001B00001.0.0-0GetSdmcFatFsError
0x001C00001.0.0-0IsSdmcDetected
0x001D00001.0.0-0IsSdmcWritable
0x001E00421.0.0-0GetSdmcCid
0x001F00421.0.0-0GetNandCid
0x002000001.0.0-0GetSdmcSpeedInfo
0x002100001.0.0-0GetNandSpeedInfo
0x002200421.0.0-0GetSdmcLog
0x002300421.0.0-0GetNandLog
0x002400001.0.0-0ClearSdmcLog
0x002500001.0.0-0ClearNandLog
0x002600001.0.0-0CardSlotIsInserted
0x002700001.0.0-0CardSlotPowerOn
0x002800001.0.0-0CardSlotPowerOff
0x002900001.0.0-0CardSlotGetIFPowerStatus
0x002A00401.0.0-0CardNorDirectCommand
0x002B00801.0.0-0CardNorDirectCommandWithAddress
0x002C00821.0.0-0CardNorDirectRead
0x002D00C21.0.0-0CardNorDirectReadWithAddress
0x002E00821.0.0-0CardNorDirectWrite
0x002F00C21.0.0-0CardNorDirectWriteWithAddress
0x003000C21.0.0-0CardNorDirectRead_4xIO
0x003100821.0.0-0CardNorDirectCpuWriteWithoutVerify
0x003200401.0.0-0CardNorDirectSectorEraseWithoutVerify
0x003300801.0.0-0GetProductInfo
0x003400401.0.0-0SetCardSpiBaudrate
0x003500401.0.0-0SetCardSpiBusMode
0x003600401.0.0-0SendInitializeInfoTo9
0x003701001.0.0-0CreateExtSaveData
0x003801001.0.0-0DeleteExtSaveData
0x003901021.0.0-0EnumerateExtSaveData
0x003A01001.0.0-0GetSpecialContentIndex
0x003B00C21.0.0-0GetLegacyRomHeader
0x003C01021.0.0-0GetLegacyBannerData
0x003D0040?FormatCardNorDevice
0x003E00003.0.0-5DeleteSdmcRoot
0x003F00403.0.0-5DeleteAllExtSaveDataOnNand
0x004000003.0.0-5InitializeCtrFilesystem
0x004100003.0.0-5CreateSeed
0x004200423.0.0-5GetSdmcCtrRootPath
0x004300403.0.0-5GetArchiveResource
0x004400023.0.0-5ExportIntegrityVerificationSeed
0x004500023.0.0-5ImportIntegrityVerificationSeed
0x004601023.0.0-5GetLegacySubBannerData
0x004700423.0.0-5GenerateRandomBytes
0x004800C23.0.0-5GetFileLastModified
0x004901023.0.0-5ReadSpecialFile
0x004A00403.0.0-5GetSpecialFileSize
0x004B00003.0.0-5StartDeviceMoveAsSource
0x004C02403.0.0-5StartDeviceMoveAsDestination
0x004D01C43.0.0-5ReadFileSHA256
0x004E02043.0.0-5WriteFileSHA256
0x004F00803.0.0-5SetCtrCardLatencyParameter (u64)
0x005000403.0.0-5SetPriority
0x005100403.0.0-5SwitchCleanupInvalidSaveData
0x005200423.0.0-5EnumerateSystemSaveData
0x005300003.0.0-5Stubbed with 4.0.0-7.
0x005400004.0.0-7Stubbed with 4.0.0-7.
0x005500824.0.0-7ReadNandReport
0x005601029.6.0-X?

Pre 3.x #

Command Header, prior to 3.0.0-5Available since system versionDescription
0x003E….?This was removed with 3.0.0-5.
0x003F00001.0.0-0DeleteSdmcRoot
0x004000401.0.0-0DeleteAllExtSaveDataOnNand
0x004100001.0.0-0InitializeCtrFilesystem
0x004200001.0.0-0CreateSeed
0x004300422.0.0-2GetSdmcCtrRootPath
0x004400402.0.0-2GetArchiveResource
0x004500022.0.0-2ExportIntegrityVerificationSeed
0x004600022.0.0-2ImportIntegrityVerificationSeed
0x004700822.0.0-2This was removed with 3.0.0-5.
0x004801022.0.0-2GetLegacySubBannerData
0x004900422.0.0-2?
0x004A00C22.0.0-2GetFileLastModified
0x004B01022.0.0-2ReadSpecialFile
0x004C00402.0.0-2GetSpecialFileSize

Commands listed in the previous chart marked as available since 1.0.0-0 that are not shown in this chart are the same between both.

Errors #

Error-codeDescription
0xC82044BEObject does already exist/failed to create object.
0xC86044D2Failed to write file. Partition is full.
0xC8804471Attempted to open a file under a directory which doesn’t exist.
0xC8804478Object doesn’t exist / failed to open object(file). Or: The specified title does not exist in the database.
0xC880448DFSPXI: Gamecard not inserted when attempting to use the gamecard.
0xC88044ABSDMC/NAND bus error, REG_SDSTATUS: TMIO_STAT_CMD_BUSY or TMIO_STAT_TXUNDERRUN
0xC88044ACSDMC/NAND bus error, REG_SDSTATUS: TMIO_STAT_ILL_FUNC
0xC92044E6Operation not allowed with the current file openflags/file already in use (if file was previously opened for writing).
0xC92044E7Resource locked.
0xC9204509SDMC/NAND bus error, REG_SDSTATUS: TMIO_STAT_CMDTIMEOUT
0xC960454BSDMC/NAND bus error, when an error-bit in REG_SDSTATUS separate from the above errors is set. This can also indicate that the TWL partition table in the NAND sector0 is invalid, or that the sector signature for sector0 at offset 0x1FE is invalid?
0xC960454CSDMC/NAND bus error, REG_SDSTATUS: TMIO_STAT_STOPBIT_ERR
0xC960F401SDMC/NAND bus error, REG_SDSTATUS: Bit23 (0x00800000)
0xD8604664FSUSER: Returned when attempting to create a file in savedata when the current total number of files is already the maximum.
0xD9004587FSPXI: Hash verification failure (only for NCCH region hashes?).
0xD9004588FSPXI/FSUSER: Verification failure for RSA or hashes. FSUSER: Verification failed for savegame AES-MAC.
0xD900458BInvalid RomFS / savedata block hash.
0xD9004676FSUSER: The specified service-command / archive is not accessible, due to the currently used exheader accessinfo not having the required bit(s) set. (This error can also indicate that the required ARM9 access-control mount flag is not enabled, in the exheader for any of the running ARM11 processes)
0xE0C046F9FSPXI: Specified read-size doesn’t match the actual filesize, when accessing ExeFS.
0xE0E046BEInvalid lowpath. This can also indicate that the specified archive-id does not exist, or that the specified archive-id is not accessible over FSPXI. In certain cases this can also be caused by attempting to open a FSUSER archive where none of the required bit(s) for the archive are set in the user-process exheader accessinfo.
0xE0E046C1File-reading returns this when the input 64bit file-pos is negative, or when the file-pos is larger than the filesize.
0xE0E046D1Failed to write to file because it would exceed the file size limit of the file system.
0xE160F402SDMC/NAND bus error, REG_SDSTATUS: TMIO_STAT_RXRDY
0xE160F403SDMC/NAND bus error, REG_SDSTATUS: Bit28 (0x10000000)
0xE160F404SDMC/NAND bus error, REG_SDSTATUS: Bit27 (0x08000000)