diff options
Diffstat (limited to 'include/m_Do')
| -rw-r--r-- | include/m_Do/m_Do_MemCard.h | 77 | ||||
| -rw-r--r-- | include/m_Do/m_Do_MemCardRWmng.h | 11 |
2 files changed, 81 insertions, 7 deletions
diff --git a/include/m_Do/m_Do_MemCard.h b/include/m_Do/m_Do_MemCard.h index 128a6a6b52..1dd2c37b13 100644 --- a/include/m_Do/m_Do_MemCard.h +++ b/include/m_Do/m_Do_MemCard.h @@ -5,10 +5,13 @@ #include <dolphin/os.h> #include "global.h" -#define SAVEDATA_SIZE 0xA94 -#define SECTOR_SIZE 0x2000 -#define SAVEDATA_FILE_SIZE 0x8000 -#define SAVEDATA_VERSION 6 +#define SAVEDATA_SIZE 0xA94 // Size of 1 Quest Log +#define SAVEDATA_NUM 3 // Max number of Quest Logs +#define SECTOR_SIZE 0x2000 // MemCard sector size +#define CARD_FILE_SIZE 0x8000 // MemCard file size +#define SAVEDATA_VERSION 6 // Save Data version + +#define SAVEFILE_SIZE (SAVEDATA_SIZE * SAVEDATA_NUM) class mDoMemCd_Ctrl_c { public: @@ -19,6 +22,12 @@ public: COMM_FORMAT_e, COMM_ATTACH_e, COMM_DETACH_e, + + #if PLATFORM_WII || PLATFORM_SHIELD + COMM_RESTORE_NAND_e, + COMM_STORE_NAND_e, + COMM_STORE_SETUP_NAND_e, + #endif }; enum CardState_e { @@ -38,6 +47,20 @@ public: CARD_STATE_13_e, }; + enum NANDState_e { + NAND_STATE_AUTHENTICATION_e, + NAND_STATE_READY_e, + NAND_STATE_NO_FILE_e, + NAND_STATE_READ_e, + NAND_STATE_WRITE_e, + NAND_STATE_FORMAT_e, + NAND_STATE_BROKEN_e, + NAND_STATE_INSSPACE_e, + NAND_STATE_NOENT_e, + NAND_STATE_FATAL_ERROR_e, + NAND_STATE_10_e, + }; + mDoMemCd_Ctrl_c(); void ThdInit(); @@ -61,6 +84,20 @@ public: s32 checkspace(); void setCardState(s32); + #if PLATFORM_WII || PLATFORM_SHIELD + void loadNAND(); + void restoreNAND(); + s32 LoadSyncNAND(void* i_buffer, u32 i_size, u32 i_position); + void saveNAND(void* i_buffer, u32 i_size, u32 i_position); + void storeNAND(); + s32 SaveSyncNAND(); + void storeSetUpNAND(); + void setNandState(s32); + u32 getStatusNAND(); + s32 chekNANDFile(); + s32 checkspaceNAND(); + #endif + bool isCardCommNone() { return mCardCommand == COMM_NONE_e; } u8 getProbeStat() { return mProbeStat; } void clearProbeStat() { mProbeStat = 2; } @@ -75,7 +112,7 @@ public: mSerialNo = serial_no; } - /* 0x0000 */ u8 mData[SAVEDATA_SIZE * 3]; + /* 0x0000 */ u8 mData[SAVEFILE_SIZE]; /* 0x1FBC */ u8 mChannel; /* 0x1FBD */ u8 mCopyToPos; /* 0x1FBE */ u8 mProbeStat; @@ -84,7 +121,7 @@ public: /* 0x1FC8 */ s32 field_0x1fc8; /* 0x1FCC */ OSMutex mMutex; /* 0x1FE4 */ OSCond mCond; - /* 0x1FEC */ u32 mNandState; + /* 0x1FEC */ s32 mNandState; /* 0x1FF0 */ u64 mSerialNo; /* 0x1FF8 */ u32 mDataVersion; }; // Size: 0x2000 @@ -135,7 +172,7 @@ inline void mDoMemCd_setCopyToPos(u8 i_pos) { g_mDoMemCd_control.setCopyToPos(i_pos); } -inline u32 mDoMemCd_getStatus(u8 param_0) { +inline u32 mDoMemCd_getStatus(u32 param_0) { return g_mDoMemCd_control.getStatus(param_0); } @@ -167,4 +204,30 @@ inline void mDoMemCd_UpDate() { g_mDoMemCd_control.update(); } +#if PLATFORM_WII || PLATFORM_SHIELD +inline void mDoMemCd_saveNAND(void* data, u32 length, u32 position) { + g_mDoMemCd_control.saveNAND(data, length, position); +} + +inline s32 mDoMemCd_SaveSyncNAND() { + return g_mDoMemCd_control.SaveSyncNAND(); +} + +inline u32 mDoMemCd_LoadSyncNAND(void* i_buffer, u32 i_size, u32 i_position) { + return g_mDoMemCd_control.LoadSyncNAND(i_buffer, i_size, i_position); +} + +inline u32 mDoMemCd_getStatusNAND() { + return g_mDoMemCd_control.getStatusNAND(); +} + +inline void mDoMemCd_LoadNAND() { + g_mDoMemCd_control.loadNAND(); +} + +inline s32 mDoMemCd_checkNANDFile() { + return g_mDoMemCd_control.chekNANDFile(); +} +#endif + #endif /* M_DO_M_DO_MEMCARD_H */ diff --git a/include/m_Do/m_Do_MemCardRWmng.h b/include/m_Do/m_Do_MemCardRWmng.h index d93e73a57c..5263a53327 100644 --- a/include/m_Do/m_Do_MemCardRWmng.h +++ b/include/m_Do/m_Do_MemCardRWmng.h @@ -1,8 +1,13 @@ #ifndef M_DO_M_DO_MEMCARDRWMNG_H #define M_DO_M_DO_MEMCARDRWMNG_H +#include "global.h" #include <dolphin/card.h> +#if PLATFORM_WII || PLATFORM_SHIELD +#include <revolution/nand.h> +#endif + struct mDoMemCdRWm_HeaderData { /* 0x0000 */ u8 mBannerTexData[0xC00]; /* 0x0C00 */ u8 mBannerPalData[0x200]; @@ -26,4 +31,10 @@ static u64 mDoMemCdRWm_CalcCheckSumGameData(void* data, u32 size); BOOL mDoMemCdRWm_TestCheckSumGameData(void* data); void mDoMemCdRWm_SetCheckSumGameData(u8* data, u8 dataNum); +#if PLATFORM_WII || PLATFORM_SHIELD +s32 mDoMemCdRWm_RestoreNAND(NANDFileInfo* param_0, void* param_1, u32 param_2); +s32 mDoMemCdRWm_StoreNAND(NANDFileInfo* param_0, void* param_1, u32 param_2); +s32 mDoMemCdRWm_StoreBannerNAND(NANDFileInfo*); +#endif + #endif /* M_DO_M_DO_MEMCARDRWMNG_H */ |
