mirror of
https://github.com/devkitPro/wut.git
synced 2026-07-02 00:11:27 -05:00
nn_acp: Add ACPDevice enum values, add save related functions
This commit is contained in:
parent
15b28d8587
commit
55a4708ced
|
|
@ -77,7 +77,6 @@ ACPGetTitleMetaXmlByTitleListType
|
|||
ACPGetTitleSaveDir
|
||||
ACPGetTitleSaveDirEx
|
||||
ACPGetTitleSaveDirExWithoutMetaCheck
|
||||
ACPGetTitleSaveMetaXml
|
||||
ACPGetWoodTin
|
||||
ACPImportSaveDataFromBuffer
|
||||
ACPImportSaveDirOfAccountWithEncryption
|
||||
|
|
@ -161,3 +160,4 @@ WaitExternalStorage__Q2_2nn3acpFv
|
|||
|
||||
:TEXT_WRAP
|
||||
ACPGetTitleMetaXml
|
||||
ACPGetTitleSaveMetaXml
|
||||
|
|
|
|||
|
|
@ -12,7 +12,14 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef int32_t ACPDeviceType;
|
||||
typedef enum ACPDeviceType {
|
||||
ACP_DEVICE_TYPE_AUTO = 1,
|
||||
ACP_DEVICE_TYPE_ODD = 2,
|
||||
ACP_DEVICE_TYPE_HFIODISC = 2, /* when ApplicationDevice is emulated */
|
||||
ACP_DEVICE_TYPE_MLC = 3,
|
||||
ACP_DEVICE_TYPE_HFIOMLC = 3, /* when ApplicationDevice is emulated */
|
||||
ACP_DEVICE_TYPE_USB = 4,
|
||||
} ACPDeviceType;
|
||||
|
||||
ACPResult
|
||||
ACPCheckApplicationDeviceEmulation(BOOL* emulation);
|
||||
|
|
|
|||
|
|
@ -15,12 +15,26 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef uint64_t ACPTitleId;
|
||||
typedef struct ACPSaveDirInfo ACPSaveDirInfo;
|
||||
|
||||
struct WUT_PACKED ACPSaveDirInfo {
|
||||
WUT_UNKNOWN_BYTES(0x8);
|
||||
uint32_t persistentId;
|
||||
WUT_UNKNOWN_BYTES(0x14);
|
||||
char path[0x40];
|
||||
WUT_PADDING_BYTES(0x80 - 0x60);
|
||||
};
|
||||
WUT_CHECK_OFFSET(ACPSaveDirInfo, 0x08, persistentId);
|
||||
WUT_CHECK_OFFSET(ACPSaveDirInfo, 0x20, path);
|
||||
WUT_CHECK_SIZE(ACPSaveDirInfo,0x80);
|
||||
|
||||
ACPResult
|
||||
ACPCreateSaveDir(uint32_t persistentId,
|
||||
ACPDeviceType deviceType);
|
||||
|
||||
ACPResult
|
||||
ACPIsExternalStorageRequired(BOOL* required);
|
||||
ACPIsExternalStorageRequired(BOOL *required);
|
||||
|
||||
ACPResult
|
||||
ACPMountExternalStorage();
|
||||
|
|
@ -79,6 +93,59 @@ ACPUnmountExternalStorage();
|
|||
ACPResult
|
||||
ACPUnmountSaveDir();
|
||||
|
||||
/**
|
||||
* Gets all titles id which have save data
|
||||
*
|
||||
* @param deviceType
|
||||
* @param titlesOut needs to be aligned to 0x40
|
||||
* @param maxCount needs to be a multiple of 8
|
||||
* @param countOut
|
||||
* @return ACP_RESULT_SUCCESS on success.
|
||||
*/
|
||||
ACPResult
|
||||
ACPGetSaveDataTitleIdList(ACPDeviceType deviceType,
|
||||
uint64_t *titlesOut,
|
||||
uint32_t maxCount,
|
||||
uint32_t *countOut);
|
||||
|
||||
/**
|
||||
* Gets a list of all saves dir for a given title id
|
||||
*
|
||||
* @param titleId
|
||||
* @param deviceType
|
||||
* @param u1 seems to be always 0
|
||||
* @param saveDirInfo needs to be aligned to 0x40
|
||||
* @param maxCount
|
||||
* @param countOut
|
||||
* @return ACP_RESULT_SUCCESS on success.
|
||||
*/
|
||||
ACPResult
|
||||
ACPGetTitleSaveDirEx(uint64_t titleId,
|
||||
ACPDeviceType deviceType,
|
||||
uint32_t u1,
|
||||
ACPSaveDirInfo *saveDirInfo,
|
||||
uint32_t maxCount,
|
||||
uint32_t *countOut);
|
||||
|
||||
/**
|
||||
* Gets a list of all saves dir for a given title id
|
||||
*
|
||||
* @param titleId
|
||||
* @param deviceType
|
||||
* @param u1 seems to be always 0
|
||||
* @param saveDirInfo needs to be aligned to 0x40
|
||||
* @param maxCount
|
||||
* @param countOut
|
||||
* @return ACP_RESULT_SUCCESS on success.
|
||||
*/
|
||||
ACPResult
|
||||
ACPGetTitleSaveDirExWithoutMetaCheck(uint64_t titleId,
|
||||
ACPDeviceType deviceType,
|
||||
uint32_t u1,
|
||||
ACPSaveDirInfo *saveDirInfo,
|
||||
uint32_t maxCount,
|
||||
uint32_t *countOut);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -269,6 +269,29 @@ ACPGetTitleMetaXml(ACPTitleId titleId,
|
|||
return RPLWRAP(ACPGetTitleMetaXml)(titleId, metaXml);
|
||||
}
|
||||
|
||||
ACPResult
|
||||
RPLWRAP(ACPGetTitleSaveMetaXml)(uint64_t titleId,
|
||||
ACPMetaXml* metaXml,
|
||||
ACPDeviceType deviceType);
|
||||
|
||||
/**
|
||||
* Gets the save dir MetaXML for a given title id
|
||||
* @param titleId
|
||||
* @param metaXml must be aligned to 0x40
|
||||
* @param deviceType
|
||||
* @return ACP_RESULT_SUCCESS on success,
|
||||
* ACP_RESULT_INVALID_PARAMETER if metaXml is not aligned properly
|
||||
*/
|
||||
static inline ACPResult
|
||||
ACPGetTitleSaveMetaXml(ACPTitleId titleId,
|
||||
ACPMetaXml *metaXml,
|
||||
ACPDeviceType deviceType) {
|
||||
if ((uintptr_t) metaXml & 0x3F) {
|
||||
return ACP_RESULT_INVALID_PARAMETER;
|
||||
}
|
||||
return RPLWRAP(ACPGetTitleSaveMetaXml)(titleId, metaXml, deviceType);
|
||||
}
|
||||
|
||||
ACPResult
|
||||
ACPGetTitleMetaDir(ACPTitleId titleId,
|
||||
char *directory,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user