Line 16: |
Line 16: |
| Takes a type-0x19 input buffer containing a [[#FspPath]] and an input [[NCM_services#ProgramId|ProgramId]]. Returns an [[#IFileSystem]]. | | Takes a type-0x19 input buffer containing a [[#FspPath]] and an input [[NCM_services#ProgramId|ProgramId]]. Returns an [[#IFileSystem]]. |
| | | |
− | [10.0.0+] This now takes an additional type-0x1A output buffer. | + | [10.0.0+] Now takes an additional type-0x1A output buffer. |
| | | |
− | [16.0.0+] This now takes an additional input [[#ContentAttributes]]. | + | [16.0.0+] Now takes an additional input [[#ContentAttributes]]. |
| | | |
− | [17.0.0+] This now takes a type-0x6 output buffer instead of a type-0x1A output buffer. | + | [17.0.0+] Now takes a type-0x6 output buffer instead of a type-0x1A output buffer. |
| + | |
| + | [20.0.0+] Now no longer takes a type-0x19 input buffer containing a [[#FspPath]] and instead takes an input [[NCM_services#StorageId|StorageId]]. |
| | | |
| == IsArchivedProgram == | | == IsArchivedProgram == |
Line 107: |
Line 109: |
| |- | | |- |
| | 28 || [4.0.0+] DeleteSaveDataFileSystemBySaveDataAttribute | | | 28 || [4.0.0+] DeleteSaveDataFileSystemBySaveDataAttribute |
| + | |- |
| + | | 29 || [19.0.0+] IsInitializationMode |
| |- | | |- |
| | 30 || [[#OpenGameCardStorage]] | | | 30 || [[#OpenGameCardStorage]] |
Line 123: |
Line 127: |
| |- | | |- |
| | 37 || [14.0.0+] CreateSaveDataFileSystemWithCreationInfo2 | | | 37 || [14.0.0+] CreateSaveDataFileSystemWithCreationInfo2 |
| + | |- |
| + | | 38 || [20.0.0+] DetachSdCard |
| |- | | |- |
| | 51 || [[#OpenSaveDataFileSystem]] | | | 51 || [[#OpenSaveDataFileSystem]] |
Line 207: |
Line 213: |
| |- | | |- |
| | 501 || [[#OpenGameCardDetectionEventNotifier]] | | | 501 || [[#OpenGameCardDetectionEventNotifier]] |
| + | |- |
| + | | 502 || [20.0.0+] OpenSdCardAwakenReadyEventNotifier |
| + | |- |
| + | | 503 || [19.0.0+] OpenGameCardAwakenReadyEventNotifier |
| |- | | |- |
| | 510 || [5.0.0+] OpenSystemDataUpdateEventNotifier | | | 510 || [5.0.0+] OpenSystemDataUpdateEventNotifier |
Line 257: |
Line 267: |
| |- | | |- |
| | 631 || [4.0.0+] IsSdCardAccessible | | | 631 || [4.0.0+] IsSdCardAccessible |
| + | |- |
| + | | 632 || [19.0.0+] TestExternalKey |
| |- | | |- |
| | 640 || [4.0.0-7.0.1] IsSignedSystemPartitionOnSdCardValid | | | 640 || [4.0.0-7.0.1] IsSignedSystemPartitionOnSdCardValid |
Line 273: |
Line 285: |
| |- | | |- |
| | 810 || [7.0.0+] RegisterProgramIndexMapInfo | | | 810 || [7.0.0+] RegisterProgramIndexMapInfo |
| + | |- |
| + | | 820 || [19.0.0+] GetContentStorageInfoIndex |
| |- | | |- |
| | 1000 || [1.0.0-9.2.0] SetBisRootForHost | | | 1000 || [1.0.0-9.2.0] SetBisRootForHost |
Line 431: |
Line 445: |
| | [6.0.0+] 0x2B || CanMountRegisteredUpdatePartition || 0x8000000000010000 || R- || [[#OpenRegisteredUpdatePartition]] | | | [6.0.0+] 0x2B || CanMountRegisteredUpdatePartition || 0x8000000000010000 || R- || [[#OpenRegisteredUpdatePartition]] |
| |- | | |- |
− | | [7.0.0+] 0x2C || CanOpenSaveDataInternalStorage || 0x8000000000000000 || RW || [[#OpenSaveDataInternalStorageFileSystem]] | + | | [7.0.0+] 0x2C || CanOpenSaveDataInternalStorage || [-19.0.0] 0x8000000000000000 [20.0.0+] 0x8000000000000020 || RW || [[#OpenSaveDataInternalStorageFileSystem]] |
| |- | | |- |
| | [7.0.0+] 0x2D || CanMountTemporaryDirectory || 0xC000000000000000 || RW || | | | [7.0.0+] 0x2D || CanMountTemporaryDirectory || 0xC000000000000000 || RW || |
Line 449: |
Line 463: |
| | 0x1 || CanEraseMmc || 0x8000000000000080 || EraseMmc | | | 0x1 || CanEraseMmc || 0x8000000000000080 || EraseMmc |
| |- | | |- |
− | | 0x2 || CanGetGameCardDeviceCertificate || 0x8000000000000010 || GetGameCardDeviceCertificate | + | | [20.0.0+] 0x2 || || 0x8000100000000080 || |
| + | |- |
| + | | [-19.0.0] 0x2 [20.0.0+] 0x3 || CanGetGameCardDeviceCertificate || 0x8000000000000010 || GetGameCardDeviceCertificate |
| + | |- |
| + | | [-19.0.0] 0x3 [20.0.0+] 0x4 || CanGetGameCardIdSet || 0x8000000000000010 || GetGameCardIdSet |
| + | |- |
| + | | [-19.0.0] 0x4 [20.0.0+] 0x5 || CanFinalizeGameCardDriver || 0x8000000000000200 || FinalizeGameCardDriver |
| + | |- |
| + | | [-19.0.0] 0x5 [20.0.0+] 0x6 || CanGetGameCardAsicInfo || 0x8000000000000200 || GetGameCardAsicInfo |
| + | |- |
| + | | [-19.0.0] 0x6 [20.0.0+] 0x7 || CanGetGameCardAsicCertificate || 0x8000000000000200 || GetGameCardAsicCertificate |
| + | |- |
| + | | [20.0.0+] 0x8 || || 0x8000100000000080 || |
| + | |- |
| + | | [20.0.0+] 0x9 || || 0x8000100000000080 || |
| + | |- |
| + | | [20.0.0+] 0xA || || 0x8000080000000000 || |
| + | |- |
| + | | [20.0.0+] 0xB || || 0x8000000000000010 || |
| + | |- |
| + | | [20.0.0+] 0xC || || 0x8000100000000080 || |
| + | |- |
| + | | [-19.0.0] 0x7 [20.0.0+] 0xD || CanCreateSaveData || 0x8000000000002020 || [[#CreateSaveDataFileSystem]] |
| |- | | |- |
− | | 0x3 || CanGetGameCardIdSet || 0x8000000000000010 || GetGameCardIdSet | + | | [-19.0.0] 0x8 [20.0.0+] 0xE || CanDeleteSaveData || 0x8000000000000060 || [[#DeleteSaveDataFileSystem]], RegisterSaveDataFileSystemAtomicDeletion |
| |- | | |- |
− | | 0x4 || CanFinalizeGameCardDriver || 0x8000000000000200 || FinalizeGameCardDriver | + | | [-19.0.0] 0x9 [20.0.0+] 0xF || CanCreateSystemSaveData || 0x8000000000000028 || CreateSaveDataFileSystemBySystemSaveDataId |
| |- | | |- |
− | | 0x5 || CanGetGameCardAsicInfo || 0x8000000000000200 || GetGameCardAsicInfo | + | | [-19.0.0] 0xA [20.0.0+] 0x10 || CanCreateOthersSystemSaveData || 0x8000000000000020 || CreateSaveDataFileSystemBySystemSaveDataId |
| |- | | |- |
− | | 0x6 || CanGetGameCardAsicCertificate || 0x8000000000000200 || GetGameCardAsicCertificate | + | | [-19.0.0] 0xB [20.0.0+] 0x11 || CanDeleteSystemSaveData || 0x8000000000004028 || [[#DeleteSaveDataFileSystem]], RegisterSaveDataFileSystemAtomicDeletion |
| |- | | |- |
− | | 0x7 || CanCreateSaveData || 0x8000000000002020 || [[#CreateSaveDataFileSystem]] | + | | [-19.0.0] 0xC [20.0.0+] 0x12 || CanOpenSaveDataInfoReader || 0x8000000000000060 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]] |
| |- | | |- |
− | | 0x8 || CanDeleteSaveData || 0x8000000000000060 || [[#DeleteSaveDataFileSystem]], RegisterSaveDataFileSystemAtomicDeletion | + | | [-19.0.0] 0xD [20.0.0+] 0x13 || CanOpenSaveDataInfoReaderForSystem || 0x8000000000004020 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]] |
| |- | | |- |
− | | 0x9 || CanCreateSystemSaveData || 0x8000000000000028 || CreateSaveDataFileSystemBySystemSaveDataId | + | | [-19.0.0] 0xE [20.0.0+] 0x14 || CanOpenSaveDataInfoReaderForInternal || 0x8000000000000040 || [[#OpenSaveDataInfoReaderWithFilter]] |
| |- | | |- |
− | | 0xA || CanCreateOthersSystemSaveData || 0x8000000000000020 || CreateSaveDataFileSystemBySystemSaveDataId | + | | [-19.0.0] 0xF [20.0.0+] 0x15 || CanOpenSaveDataMetaFile || 0x8000000000020000 || OpenSaveDataMetaFile |
| |- | | |- |
− | | 0xB || CanDeleteSystemSaveData || 0x8000000000004028 || [[#DeleteSaveDataFileSystem]], RegisterSaveDataFileSystemAtomicDeletion | + | | [-19.0.0] 0x10 [20.0.0+] 0x16 || CanSetCurrentPosixTime || 0x8000000000000400 || SetCurrentPosixTime, SetCurrentPosixTimeWithTimeDifference |
| |- | | |- |
− | | 0xC || CanOpenSaveDataInfoReader || 0x8000000000000060 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]] | + | | [-19.0.0] 0x11 [20.0.0+] 0x17 || CanReadSaveDataFileSystemExtraData || 0x8000000000004060 || [[#ReadSaveDataFileSystemExtraData]] |
| |- | | |- |
− | | 0xD || CanOpenSaveDataInfoReaderForSystem || 0x8000000000004020 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]] | + | | [-19.0.0] 0x12 [20.0.0+] 0x18 || CanSetGlobalAccessLogMode || 0x8000000000080000 || [[#SetGlobalAccessLogMode]] |
| |- | | |- |
− | | 0xE || CanOpenSaveDataInfoReaderForInternal || 0x8000000000000040 || [[#OpenSaveDataInfoReaderWithFilter]] | + | | [-19.0.0] 0x13 [20.0.0+] 0x19 || CanSetSpeedEmulationMode || 0x8000000000080000 || SetSpeedEmulationMode |
| |- | | |- |
− | | 0xF || CanOpenSaveDataMetaFile || 0x8000000000020000 || OpenSaveDataMetaFile | + | | [20.0.0+] 0x1A || || 0x8000000400080000 || |
| |- | | |- |
− | | 0x10 || CanSetCurrentPosixTime || 0x8000000000000400 || SetCurrentPosixTime, SetCurrentPosixTimeWithTimeDifference | + | | [20.0.0+] 0x1B || || 0x8000000400080000 || |
| |- | | |- |
− | | 0x11 || CanReadSaveDataFileSystemExtraData || 0x8000000000004060 || [[#ReadSaveDataFileSystemExtraData]] | + | | [-19.0.0] 0x14 [20.0.0+] 0x1C || CanDebug || 0xC000000000000000 || |
| |- | | |- |
− | | 0x12 || CanSetGlobalAccessLogMode || 0x8000000000080000 || [[#SetGlobalAccessLogMode]] | + | | [-19.0.0] 0x15 [20.0.0+] 0x1D || CanFillBis || 0xC000000000800000 || CreatePaddingFile, DeleteAllPaddingFiles |
| |- | | |- |
− | | 0x13 || CanSetSpeedEmulationMode || 0x8000000000080000 || SetSpeedEmulationMode | + | | [2.0.0-19.0.0] 0x16 [20.0.0+] 0x1E || CanCorruptSaveData || 0xC000000001000000 || CorruptSaveDataFileSystem, CorruptSaveDataFileSystemBySaveDataSpaceId |
| |- | | |- |
− | | 0x14 || CanDebug || 0xC000000000000000 || | + | | [2.0.0-19.0.0] 0x17 [20.0.0+] 0x1F || CanCorruptSystemSaveData || 0x8000000001000060 || CorruptSaveDataFileSystem, CorruptSaveDataFileSystemBySaveDataSpaceId |
| |- | | |- |
− | | 0x15 || CanFillBis || 0xC000000000800000 || CreatePaddingFile, DeleteAllPaddingFiles | + | | [2.0.0-19.0.0] 0x18 [20.0.0+] 0x20 || CanVerifySaveData || 0x8000000000000060 || [[#VerifySaveDataFileSystem]], VerifySaveDataFileSystemBySaveDataSpaceId |
| |- | | |- |
− | | [2.0.0+] 0x16 || CanCorruptSaveData || 0xC000000001000000 || CorruptSaveDataFileSystem, CorruptSaveDataFileSystemBySaveDataSpaceId | + | | [2.0.0-19.0.0] 0x19 [20.0.0+] 0x21 || CanDebugSaveData || 0xC000000002000000 || [[#CreateSaveDataFileSystem]], [[#OpenSaveDataFileSystem]], [[#SetSaveDataRootPath]] |
| |- | | |- |
− | | [2.0.0+] 0x17 || CanCorruptSystemSaveData || 0x8000000001000060 || CorruptSaveDataFileSystem, CorruptSaveDataFileSystemBySaveDataSpaceId | + | | [2.0.0-19.0.0] 0x1A [20.0.0+] 0x22 || CanFormatSdCard || 0x8000000004000000 || FormatSdCardFileSystem |
| |- | | |- |
− | | [2.0.0+] 0x18 || CanVerifySaveData || 0x8000000000000060 || [[#VerifySaveDataFileSystem]], VerifySaveDataFileSystemBySaveDataSpaceId | + | | [3.0.0-19.0.0] 0x1B [20.0.0+] 0x23 || CanGetRightsId || 0x8000000008000000 || GetRightsId, GetRightsIdAndKeyGenerationByPath, GetRightsIdByPath |
| |- | | |- |
− | | [2.0.0+] 0x19 || CanDebugSaveData || 0xC000000002000000 || [[#CreateSaveDataFileSystem]], [[#OpenSaveDataFileSystem]], [[#SetSaveDataRootPath]] | + | | [3.0.0-19.0.0] 0x1C [20.0.0+] 0x24 || CanRegisterExternalKey || 0x8000000010000000 || RegisterExternalKey, UnregisterAllExternalKey |
| |- | | |- |
− | | [2.0.0+] 0x1A || CanFormatSdCard || 0x8000000004000000 || FormatSdCardFileSystem | + | | [4.0.0-19.0.0] 0x1D [20.0.0+] 0x25 || CanSetEncryptionSeed || 0x8000000000000800 || [[#SetSdCardEncryptionSeed]] |
| |- | | |- |
− | | [3.0.0+] 0x1B || CanGetRightsId || 0x8000000008000000 || GetRightsId, GetRightsIdAndKeyGenerationByPath, GetRightsIdByPath | + | | [4.0.0-19.0.0] 0x1E [20.0.0+] 0x26 || CanWriteSaveDataFileSystemExtraDataTimeStamp || 0x8000000000000020 || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask |
| |- | | |- |
− | | [3.0.0+] 0x1C || CanRegisterExternalKey || 0x8000000010000000 || RegisterExternalKey, UnregisterAllExternalKey | + | | [4.0.0-19.0.0] 0x1F [20.0.0+] 0x27 || CanWriteSaveDataFileSystemExtraDataFlags || 0x8000000000004020 || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask |
| |- | | |- |
− | | [4.0.0+] 0x1D || CanSetEncryptionSeed || 0x8000000000000800 || [[#SetSdCardEncryptionSeed]] | + | | [4.0.0-19.0.0] 0x20 [20.0.0+] 0x28 || CanWriteSaveDataFileSystemExtraDataCommitId || 0x8000000000000020 || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask |
| |- | | |- |
− | | [4.0.0+] 0x1E || CanWriteSaveDataFileSystemExtraDataTimeStamp || 0x8000000000000020 || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask | + | | [5.0.0-19.0.0] 0x21 [20.0.0+] 0x29 || CanWriteSaveDataFileSystemExtraDataAll || 0x8000000000000000 || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask |
| |- | | |- |
− | | [4.0.0+] 0x1F || CanWriteSaveDataFileSystemExtraDataFlags || 0x8000000000004020 || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask | + | | [5.0.0-19.0.0] 0x22 [20.0.0+] 0x2A || CanExtendSaveData || 0x8000000000002020 || ExtendSaveDataFileSystem |
| |- | | |- |
− | | [4.0.0+] 0x20 || CanWriteSaveDataFileSystemExtraDataCommitId || 0x8000000000000020 || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask | + | | [5.0.0-19.0.0] 0x23 [20.0.0+] 0x2B || CanExtendSystemSaveData || 0x8000000000000028 || ExtendSaveDataFileSystem |
| |- | | |- |
− | | [5.0.0+] 0x21 || CanWriteSaveDataFileSystemExtraDataAll || 0x8000000000000000 || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask | + | | [5.0.0-19.0.0] 0x24 [20.0.0+] 0x2C || CanExtendOthersSystemSaveData || 0x8000000000000020 || ExtendSaveDataFileSystem |
| |- | | |- |
− | | [5.0.0+] 0x22 || CanExtendSaveData || 0x8000000000002020 || ExtendSaveDataFileSystem | + | | [5.0.0-19.0.0] 0x25 [20.0.0+] 0x2D || CanRegisterUpdatePartition || 0x8000000020000000 || RegisterUpdatePartition |
| |- | | |- |
− | | [5.0.0+] 0x23 || CanExtendSystemSaveData || 0x8000000000000028 || ExtendSaveDataFileSystem | + | | [5.0.0-19.0.0] 0x26 [20.0.0+] 0x2E || CanOpenSaveDataTransferManager || 0x8000000040000000 || [[#OpenSaveDataTransferManager]] |
| |- | | |- |
− | | [5.0.0+] 0x24 || CanExtendOthersSystemSaveData || 0x8000000000000020 || ExtendSaveDataFileSystem | + | | [5.0.0-19.0.0] 0x27 [20.0.0+] 0x2F || CanOpenSaveDataTransferManagerVersion2 || 0x8000000200000000 || [[#OpenSaveDataTransferManagerVersion2]] |
| |- | | |- |
− | | [5.0.0+] 0x25 || CanRegisterUpdatePartition || 0x8000000020000000 || RegisterUpdatePartition | + | | [5.0.0-19.0.0] 0x28 [20.0.0+] 0x30 || CanOpenSaveDataTransferManagerForSaveDataRepair || 0x8000000200000000 || OpenSaveDataTransferManagerForSaveDataRepair |
| |- | | |- |
− | | [5.0.0+] 0x26 || CanOpenSaveDataTransferManager || 0x8000000040000000 || [[#OpenSaveDataTransferManager]] | + | | [5.0.0-19.0.0] 0x29 [20.0.0+] 0x31 || CanOpenSaveDataTransferManagerForSaveDataRepairTool || 0x8000000000000000 || OpenSaveDataTransferManagerForSaveDataRepair |
| |- | | |- |
− | | [5.0.0+] 0x27 || CanOpenSaveDataTransferManagerVersion2 || 0x8000000200000000 || [[#OpenSaveDataTransferManagerVersion2]] | + | | [5.0.0-19.0.0] 0x2A [20.0.0+] 0x32 || CanOpenOpenSaveDataTransferProhibiter || 0x8000000200002000 || [[#OpenSaveDataTransferProhibiter]] |
| |- | | |- |
− | | [5.0.0+] 0x28 || CanOpenSaveDataTransferManagerForSaveDataRepair || 0x8000000200000000 || OpenSaveDataTransferManagerForSaveDataRepair | + | | [5.0.0-19.0.0] 0x2B [20.0.0+] 0x33 || CanOpenSaveDataMover || 0x8000001000000000 || [[#OpenSaveDataMover]] |
| |- | | |- |
− | | [5.0.0+] 0x29 || CanOpenSaveDataTransferManagerForSaveDataRepairTool || 0x8000000000000000 || OpenSaveDataTransferManagerForSaveDataRepair | + | | [5.0.0-19.0.0] 0x2C [20.0.0+] 0x34 || CanOpenBisWiper || 0x8000000000000800 || [[#OpenBisWiper]] |
| |- | | |- |
− | | [5.0.0+] 0x2A || CanOpenOpenSaveDataTransferProhibiter || 0x8000000200002000 || [[#OpenSaveDataTransferProhibiter]] | + | | [5.0.0-19.0.0] 0x2D [20.0.0+] 0x35 || CanListAccessibleSaveDataOwnerId || 0x8000000240002000 || [[#ListAccessibleSaveDataOwnerId]] |
| |- | | |- |
− | | [5.0.0+] 0x2B || CanOpenSaveDataMover || 0x8000001000000000 || [[#OpenSaveDataMover]] | + | | [5.0.0-19.0.0] 0x2E [20.0.0+] 0x36 || CanControlMmcPatrol || 0x8000000000000000 || SuspendMmcPatrol, ResumeMmcPatrol |
| |- | | |- |
− | | [5.0.0+] 0x2C || CanOpenBisWiper || 0x8000000000000800 || [[#OpenBisWiper]] | + | | [5.0.0-19.0.0] 0x2F [20.0.0+] 0x37 || CanOverrideSaveDataTransferTokenSignVerificationKey || 0x8000000000000000 || OverrideSaveDataTransferTokenSignVerificationKey |
| |- | | |- |
− | | [5.0.0+] 0x2D || CanListAccessibleSaveDataOwnerId || 0x8000000240002000 || [[#ListAccessibleSaveDataOwnerId]] | + | | [5.1.0-19.0.0] 0x30 [20.0.0+] 0x38 || CanOpenSdCardDetectionEventNotifier || 0x8000000080200000 || [[#OpenSdCardDetectionEventNotifier]] |
| |- | | |- |
− | | [5.0.0+] 0x2E || CanControlMmcPatrol || 0x8000000000000000 || SuspendMmcPatrol, ResumeMmcPatrol | + | | [20.0.0+] 0x39 || || 0x8000000000200000 || |
| |- | | |- |
− | | [5.0.0+] 0x2F || CanOverrideSaveDataTransferTokenSignVerificationKey || 0x8000000000000000 || OverrideSaveDataTransferTokenSignVerificationKey | + | | [6.0.0-19.0.0] 0x31 [20.0.0+] 0x3A || CanOpenGameCardDetectionEventNotifier || 0x8000000080000110 || [[#OpenGameCardDetectionEventNotifier]] |
| |- | | |- |
− | | [5.1.0+] 0x30 || CanOpenSdCardDetectionEventNotifier || 0x8000000080200000 || [[#OpenSdCardDetectionEventNotifier]] | + | | [20.0.0+] 0x3B || CanOpenGameCardAwakenReadyEventNotifier || 0x8000000080000110 || OpenGameCardAwakenReadyEventNotifier |
| |- | | |- |
− | | [6.0.0+] 0x31 || CanOpenGameCardDetectionEventNotifier || 0x8000000080000110 || [[#OpenGameCardDetectionEventNotifier]] | + | | [6.0.0-19.0.0] 0x32 [20.0.0+] 0x3C || CanOpenSystemDataUpdateEventNotifier || 0x8000000000100008 || OpenSystemDataUpdateEventNotifier |
| |- | | |- |
− | | [6.0.0+] 0x32 || CanOpenSystemDataUpdateEventNotifier || 0x8000000000100008 || OpenSystemDataUpdateEventNotifier | + | | [6.0.0-19.0.0] 0x33 [20.0.0+] 0x3D || CanNotifySystemDataUpdateEvent || 0x8000000000010000 || NotifySystemDataUpdateEvent |
| |- | | |- |
− | | [6.0.0+] 0x33 || CanNotifySystemDataUpdateEvent || 0x8000000000010000 || NotifySystemDataUpdateEvent | + | | [6.0.0-19.0.0] 0x34 [20.0.0+] 0x3E || CanOpenAccessFailureDetectionEventNotifier || 0x8000000100000000 || [[#OpenAccessFailureDetectionEventNotifier]] |
| |- | | |- |
− | | [6.0.0+] 0x34 || CanOpenAccessFailureDetectionEventNotifier || 0x8000000100000000 || [[#OpenAccessFailureDetectionEventNotifier]] | + | | [6.0.0-19.0.0] 0x35 [20.0.0+] 0x3F || CanGetAccessFailureDetectionEvent || 0x8000000100000000 || GetAccessFailureDetectionEvent |
| |- | | |- |
− | | [6.0.0+] 0x35 || CanGetAccessFailureDetectionEvent || 0x8000000100000000 || GetAccessFailureDetectionEvent | + | | [6.0.0-19.0.0] 0x36 [20.0.0+] 0x40 || CanIsAccessFailureDetected || 0x8000000100000000 || IsAccessFailureDetected |
| |- | | |- |
− | | [6.0.0+] 0x36 || CanIsAccessFailureDetected || 0x8000000100000000 || IsAccessFailureDetected | + | | [6.0.0-19.0.0] 0x37 [20.0.0+] 0x41 || CanResolveAccessFailure || 0x8000000100000000 || ResolveAccessFailure |
| |- | | |- |
− | | [6.0.0+] 0x37 || CanResolveAccessFailure || 0x8000000100000000 || ResolveAccessFailure | + | | [6.0.0-19.0.0] 0x38 [20.0.0+] 0x42 || CanAbandonAccessFailure || 0x8000000100000000 || AbandonAccessFailure |
| |- | | |- |
− | | [6.0.0+] 0x38 || CanAbandonAccessFailure || 0x8000000100000000 || AbandonAccessFailure | + | | [8.0.0-19.0.0] 0x39 [20.0.0+] 0x43 || CanQuerySaveDataInternalStorageTotalSize || 0x8000000040000000 || QuerySaveDataInternalStorageTotalSize |
| |- | | |- |
− | | [8.0.0+] 0x39 || CanQuerySaveDataInternalStorageTotalSize || 0x8000000040000000 || QuerySaveDataInternalStorageTotalSize | + | | [9.0.0-19.0.0] 0x3A [20.0.0+] 0x44 || CanGetSaveDataCommitId || 0x8000000200000020 || [[#GetSaveDataCommitId]] |
| |- | | |- |
− | | [9.0.0+] 0x3A || CanGetSaveDataCommitId || 0x8000000200000020 || [[#GetSaveDataCommitId]] | + | | [20.0.0+] 0x45 || || 0x8000000000200000 || |
| |- | | |- |
− | | [9.0.0+] 0x3B || CanSetSdCardAccessibility || 0x8000000000200000 || SetSdCardAccessibility | + | | [9.0.0-19.0.0] 0x3B [20.0.0+] 0x46 || CanSetSdCardAccessibility || 0x8000000000200000 || SetSdCardAccessibility |
| |- | | |- |
− | | [9.0.0+] 0x3C || CanSimulateDevice || 0x4000000000000000 || SimulateDeviceDetectionEvent, SetSimulationEvent, ClearSimulationEvent | + | | [9.0.0-19.0.0] 0x3C [20.0.0+] 0x47 || CanSimulateDevice || 0x4000000000000000 || SimulateDeviceDetectionEvent, SetSimulationEvent, ClearSimulationEvent |
| |- | | |- |
− | | [9.0.0+] 0x3D || CanCreateSaveDataWithHashSalt || 0x8000000000000000 || [[#CreateSaveDataFileSystem]], [[#CreateSaveDataFileSystemWithHashSalt]] | + | | [9.0.0-19.0.0] 0x3D [20.0.0+] 0x48 || CanCreateSaveDataWithHashSalt || 0x8000000000000000 || [[#CreateSaveDataFileSystem]], [[#CreateSaveDataFileSystemWithHashSalt]] |
| |- | | |- |
− | | [9.0.0+] 0x3E || CanRegisterProgramIndexMapInfo || 0x8000000400000000 || RegisterProgramIndexMapInfo | + | | [9.0.0-19.0.0] 0x3E [20.0.0+] 0x49 || CanRegisterProgramIndexMapInfo || 0x8000000400000000 || RegisterProgramIndexMapInfo |
| |- | | |- |
− | | [9.0.0+] 0x3F || CanChallengeCardExistence || 0x8000000000000010 || ChallengeCardExistence | + | | [9.0.0-19.0.0] 0x3F [20.0.0+] 0x4A || CanChallengeCardExistence || 0x8000000000000010 || ChallengeCardExistence |
| |- | | |- |
− | | [9.0.0+] 0x40 || CanCreateOwnSaveData || 0x8000000800000000 || [[#CreateSaveDataFileSystem]], CreateSaveDataFileSystemWithHashSalt | + | | [9.0.0-19.0.0] 0x40 [20.0.0+] 0x4B || CanCreateOwnSaveData || 0x8000000800000000 || [[#CreateSaveDataFileSystem]], CreateSaveDataFileSystemWithHashSalt |
| |- | | |- |
− | | [9.0.0+] 0x41 || CanDeleteOwnSaveData || 0x8000000800000000 || [[#DeleteSaveDataFileSystem]] | + | | [9.0.0-19.0.0] 0x41 [20.0.0+] 0x4C || CanDeleteOwnSaveData || 0x8000000800000000 || [[#DeleteSaveDataFileSystem]] |
| |- | | |- |
− | | [10.0.0+] 0x42 || CanReadOwnSaveDataFileSystemExtraData || 0x8000000800000000 || [[#ReadSaveDataFileSystemExtraData]] | + | | [10.0.0-19.0.0] 0x42 [20.0.0+] 0x4D || CanReadOwnSaveDataFileSystemExtraData || 0x8000000800000000 || [[#ReadSaveDataFileSystemExtraData]] |
| |- | | |- |
− | | [10.0.0+] 0x43 || CanExtendOwnSaveData || 0x8000000800000000 || ExtendSaveDataFileSystem | + | | [10.0.0-19.0.0] 0x43 [20.0.0+] 0x4E || CanExtendOwnSaveData || 0x8000000800000000 || ExtendSaveDataFileSystem |
| |- | | |- |
− | | [10.2.0+] 0x44 || CanOpenOwnSaveDataTransferProhibiter || 0x8000000800000000 || [[#OpenSaveDataTransferProhibiter]] | + | | [10.2.0-19.0.0] 0x44 [20.0.0+] 0x4F || CanOpenOwnSaveDataTransferProhibiter || 0x8000000800000000 || [[#OpenSaveDataTransferProhibiter]] |
| |- | | |- |
− | | [11.0.0+] 0x45 || CanFindOwnSaveDataWithFilter || 0x8000000800000000 || [[#FindSaveDataWithFilter]] | + | | [11.0.0-19.0.0] 0x45 [20.0.0+] 0x50 || CanFindOwnSaveDataWithFilter || 0x8000000800000000 || [[#FindSaveDataWithFilter]] |
| |- | | |- |
− | | [13.0.0+] 0x46 || CanOpenSaveDataTransferManagerForRepair || 0x8000000000000020 || [[#OpenSaveDataTransferManagerForRepair]] | + | | [13.0.0-19.0.0] 0x46 [20.0.0+] 0x51 || CanOpenSaveDataTransferManagerForRepair || 0x8000000000000020 || [[#OpenSaveDataTransferManagerForRepair]] |
| |- | | |- |
− | | [13.0.0+] 0x47 || CanSetDebugConfiguration || 0x8000000000000000 || SetDebugOption, UnsetDebugOption | + | | [13.0.0-19.0.0] 0x47 [20.0.0+] 0x52 || CanSetDebugConfiguration || 0x8000000000000000 || SetDebugOption, UnsetDebugOption |
| |- | | |- |
− | | [15.0.0+] 0x48 || CanOpenDataStorageByPath || 0x8000000000000000 || OpenDataStorageByPath | + | | [15.0.0-19.0.0] 0x48 [20.0.0+] 0x53 || CanOpenDataStorageByPath || 0x8000000000000000 || OpenDataStorageByPath |
| |- | | |- |
− | | [17.0.0+] 0x49 || CanNotifyErrorContextServiceReady || 0x8000004000000000 || NotifyErrorContextServiceReady | + | | [17.0.0-19.0.0] 0x49 [20.0.0+] 0x54|| CanNotifyErrorContextServiceReady || 0x8000004000000000 || NotifyErrorContextServiceReady |
| |- | | |- |
− | | [17.0.0+] 0x4A || CanGetProgramId || 0x8000000008000000 || GetProgramId | + | | [17.0.0-19.0.0] 0x4A || CanGetProgramId || 0x8000000008000000 || GetProgramId, Removed in 20.0.0 |
| + | |- |
| + | | [20.0.0+] 0x55 || || 0x8000000000000800 || |
| + | |- |
| + | | [20.0.0+] 0x56 || || 0x8000000004000000 || |
| + | |- |
| + | | [20.0.0+] 0x57 || || 0x8000000004000000 || |
| |} | | |} |
| | | |
Line 1,055: |
Line 1,097: |
| | 5 || [2.0.0+] [[#GetAndClearSdCardErrorInfo]] | | | 5 || [2.0.0+] [[#GetAndClearSdCardErrorInfo]] |
| |- | | |- |
− | | 6 || [17.0.0+] GetSdCardHostControllerStatus | + | | 6 || [17.0.0+] [[#GetSdCardHostControllerStatus]] |
| + | |- |
| + | | 7 || [20.0.0+] SetSdCardActivationMode |
| + | |- |
| + | | 8 || [20.0.0+] TryGetSdCardInfo |
| |- | | |- |
| | 100 || [[#GetMmcCid]] | | | 100 || [[#GetMmcCid]] |
Line 1,075: |
Line 1,121: |
| | 116 || [4.0.0+] [[#ResumeMmcPatrol]] | | | 116 || [4.0.0+] [[#ResumeMmcPatrol]] |
| |- | | |- |
− | | 117 || [17.0.0+] EraseMmcWithRange | + | | 117 || [17.0.0+] [[#EraseMmcWithRange]] |
| + | |- |
| + | | 118 || [20.0.0+] MarkBeforeEraseMmcPartitionUserData |
| + | |- |
| + | | 119 || [20.0.0+] CheckAfterEraseMmcPartitionUserData |
| |- | | |- |
| | 200 || [[#IsGameCardInserted]] | | | 200 || [[#IsGameCardInserted]] |
Line 1,122: |
Line 1,172: |
| |- | | |- |
| | 222 || [18.0.0+] [[#GetGameCardCardHeader]] | | | 222 || [18.0.0+] [[#GetGameCardCardHeader]] |
| + | |- |
| + | | 223 || [19.0.0+] [[#SetGameCardSessionCreationDelay]] |
| + | |- |
| + | | 224 || [19.0.0+] [[#GetGameCardApplicationIdList]] |
| + | |- |
| + | | 225 || [20.0.0+] RegisterGameCardConfigurationData |
| + | |- |
| + | | 226 || [20.0.0+] GetGameCardDetailedErrorReportInfo |
| |- | | |- |
| | 300 || [[#SetSpeedEmulationMode]] | | | 300 || [[#SetSpeedEmulationMode]] |
Line 1,127: |
Line 1,185: |
| | 301 || [[#GetSpeedEmulationMode]] | | | 301 || [[#GetSpeedEmulationMode]] |
| |- | | |- |
− | | 302 || [18.0.0+] SetApplicationStorageSpeed | + | | 302 || [18.0.0+] [[#SetApplicationStorageSpeed]] |
| + | |- |
| + | | 303 || [20.0.0+] SetGameCardClockRateForSpeedEmulation |
| + | |- |
| + | | 304 || [20.0.0+] ClearGameCardClockRateForSpeedEmulation |
| |- | | |- |
| | 400 || [5.0.0+] [[#SuspendSdmmcControl]] | | | 400 || [5.0.0+] [[#SuspendSdmmcControl]] |
Line 1,157: |
Line 1,219: |
| == GetAndClearSdCardErrorInfo == | | == GetAndClearSdCardErrorInfo == |
| Takes a type-0x6 output buffer '''LogBuffer''' and an input s64 '''LogBufferSize'''. Returns an output [[#StorageErrorInfo]] and an output s64 '''LogSize'''. | | Takes a type-0x6 output buffer '''LogBuffer''' and an input s64 '''LogBufferSize'''. Returns an output [[#StorageErrorInfo]] and an output s64 '''LogSize'''. |
| + | |
| + | == GetSdCardHostControllerStatus == |
| + | No input. Returns an output [[#HostControllerStatus]]. |
| | | |
| == GetMmcCid == | | == GetMmcCid == |
Line 1,184: |
Line 1,249: |
| == ResumeMmcPatrol == | | == ResumeMmcPatrol == |
| No input/output. | | No input/output. |
| + | |
| + | == EraseMmcWithRange == |
| + | Takes an input [[#MmcPartition]] and two input u64s. No output. |
| | | |
| == IsGameCardInserted == | | == IsGameCardInserted == |
Line 1,205: |
Line 1,273: |
| == GetGameCardDeviceCertificate == | | == GetGameCardDeviceCertificate == |
| Takes a type-0x6 output buffer, an input s64 '''BufferSize''' and an input [[#GameCardHandle]]. No output. | | Takes a type-0x6 output buffer, an input s64 '''BufferSize''' and an input [[#GameCardHandle]]. No output. |
| + | |
| + | [19.0.0+] Now returns an output s64 '''OutSize''' which can be 0x200 or 0x400. |
| | | |
| == GetGameCardAsicInfo == | | == GetGameCardAsicInfo == |
Line 1,255: |
Line 1,325: |
| == GetGameCardCardHeader == | | == GetGameCardCardHeader == |
| Takes a type-0x6 output buffer, an input s64 '''BufferSize''' and an input [[#GameCardHandle]]. No output. | | Takes a type-0x6 output buffer, an input s64 '''BufferSize''' and an input [[#GameCardHandle]]. No output. |
| + | |
| + | == SetGameCardSessionCreationDelay == |
| + | Takes two input bools and an input u32. No output. |
| + | |
| + | == GetGameCardApplicationIdList == |
| + | Takes a type-0x6 output buffer, an input s64 '''BufferSize''' and an input [[#GameCardHandle]]. Returns an output u16. |
| | | |
| == SetSpeedEmulationMode == | | == SetSpeedEmulationMode == |
Line 1,261: |
Line 1,337: |
| == GetSpeedEmulationMode == | | == GetSpeedEmulationMode == |
| No input. Returns an output [[#SpeedEmulationMode]]. | | No input. Returns an output [[#SpeedEmulationMode]]. |
| + | |
| + | == SetApplicationStorageSpeed == |
| + | Takes an input s32. No output. |
| | | |
| == SuspendSdmmcControl == | | == SuspendSdmmcControl == |
Line 1,494: |
Line 1,573: |
| |- | | |- |
| | 16 || [[#SetKeySeedPackage]] | | | 16 || [[#SetKeySeedPackage]] |
| + | |- |
| + | | 17 || [20.0.0+] SetLocalKeySeedPackage |
| |- | | |- |
| | 32 || [[#OpenSaveDataExporter]] | | | 32 || [[#OpenSaveDataExporter]] |
Line 1,587: |
Line 1,668: |
| |- | | |- |
| | 74 || [18.0.0+] [[#GetKeySeed]] | | | 74 || [18.0.0+] [[#GetKeySeed]] |
| + | |- |
| + | | 75 || [20.0.0+] GetLocalKeySeedPackage |
| |- | | |- |
| | 80 || [6.0.0+] [[#GetImportInitialDataAad]] | | | 80 || [6.0.0+] [[#GetImportInitialDataAad]] |
Line 2,242: |
Line 2,325: |
| |- | | |- |
| | 2 || BootPartition2 | | | 2 || BootPartition2 |
| + | |} |
| + | |
| + | = HostControllerStatus = |
| + | This is "nn::sdcard::HostControllerStatus". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 |
| + | | 0xC |
| + | | |
| |} | | |} |
| | | |
Line 2,613: |
Line 2,710: |
| | 0x3 | | | 0x3 |
| | 0x1 | | | 0x1 |
− | | MemoryType | + | | [[#MemoryType|MemoryType]] |
| |} | | |} |
| | | |
Line 2,627: |
Line 2,724: |
| | 0x0 | | | 0x0 |
| | 0x1 | | | 0x1 |
− | | CardSecurityNumber | + | | [[#CardSecurityNumber|CardSecurityNumber]] |
| |- | | |- |
| | 0x1 | | | 0x1 |
| | 0x1 | | | 0x1 |
− | | CardType | + | | [[#CardType|CardType]] |
| |- | | |- |
| | 0x2 | | | 0x2 |
Line 2,684: |
Line 2,781: |
| |- | | |- |
| | 0xE2 || 32GB | | | 0xE2 || 32GB |
| + | |} |
| + | |
| + | = MemoryType = |
| + | This is "nn::gc::detail::MemoryType". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Value || Name |
| + | |- |
| + | | 0x1 || T1RomFast |
| + | |- |
| + | | 0x2 || T2RomFast |
| + | |- |
| + | | 0x9 || T1NandFast |
| + | |- |
| + | | 0xA || T2NandFast |
| + | |- |
| + | | 0x21 || T1RomLate |
| + | |- |
| + | | 0x22 || T2RomLate |
| + | |- |
| + | | 0x29 || T1NandLate |
| + | |- |
| + | | 0x2A || T2NandLate |
| + | |} |
| + | |
| + | = CardSecurityNumber = |
| + | This is "nn::gc::detail::CardSecurityNumber". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Value || Name |
| + | |- |
| + | | 0 || 0 |
| + | |- |
| + | | 1 || 1 |
| + | |- |
| + | | 2 || 2 |
| + | |- |
| + | | 3 || 3 |
| + | |- |
| + | | 4 || 4 |
| + | |} |
| + | |
| + | = CardType = |
| + | This is "nn::gc::detail::CardType". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Value || Name |
| + | |- |
| + | | 0 || Rom |
| + | |- |
| + | | 1 || WritableDevT1 |
| + | |- |
| + | | 2 || WritableProdT1 |
| + | |- |
| + | | 3 || WritableDevT2 |
| + | |- |
| + | | 4 || WritableProdT2 |
| |} | | |} |
| | | |
Line 2,710: |
Line 2,867: |
| | [[XCI#NewCardHeaderCertArea|NewCardHeaderCertArea]] | | | [[XCI#NewCardHeaderCertArea|NewCardHeaderCertArea]] |
| |} | | |} |
| + | |
| + | = GameCardAsicProductionFirmware = |
| + | This is the [[Lotus3#AsicFirmware|firmware]] for reading production Gamecards. |
| + | |
| + | Embedded in "nn::gc::detail::EmbeddedDataHolder::g_FwReadBuffer" when in production mode. |
| + | |
| + | [4.0.0+] This firmware was updated to provide support for new Gamecards. |
| + | |
| + | [9.0.0+] This firmware was updated. |
| + | |
| + | [11.0.0+] This firmware was updated. |
| + | |
| + | [12.0.0+] This firmware was updated. |
| + | |
| + | [14.0.0+] This firmware was updated. |
| + | |
| + | = GameCardAsicDevelopmentFirmware = |
| + | This is the [[Lotus3#AsicFirmware|firmware]] for reading development Gamecards. |
| + | |
| + | Embedded in "nn::gc::detail::EmbeddedDataHolder::g_FwReadBuffer" when in development mode. |
| + | |
| + | [9.0.0+] This firmware was updated. |
| + | |
| + | [11.0.0+] This firmware was updated. |
| + | |
| + | [14.0.0+] This firmware was updated. |
| + | |
| + | = GameCardAsicWriterFirmware = |
| + | This is the [[Lotus3#AsicFirmware|firmware]] for writing development Gamecards. |
| + | |
| + | Embedded in "nn::gc::detail::EmbeddedDataHolder::g_FwWriterBuffer". |
| | | |
| = SimulatingDeviceType = | | = SimulatingDeviceType = |