Changes

5,876 bytes added ,  Thursday at 19:36
no edit summary
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 =