m_Do_MemCard match but not link

This commit is contained in:
Jasper St. Pierre
2023-12-03 17:24:49 -08:00
parent 1778f9b3a0
commit 4b52149b18
3 changed files with 375 additions and 38 deletions
+55
View File
@@ -0,0 +1,55 @@
#ifndef CARD_H
#define CARD_H
#include "dolphin/types.h"
#ifdef __cplusplus
extern "C" {
#endif
struct CARDFileInfo {
/* 0x00 */ s32 chan;
/* 0x04 */ s32 fileNo;
/* 0x08 */ s32 offset;
/* 0x0C */ s32 length;
/* 0x10 */ u16 iBlock;
/* 0x12 */ u16 __padding;
};
enum {
CARD_ERROR_UNLOCKED = 1,
CARD_ERROR_READY = 0,
CARD_ERROR_BUSY = -1,
CARD_ERROR_WRONGDEVICE = -2,
CARD_ERROR_NOCARD = -3,
CARD_ERROR_NOFILE = -4,
CARD_ERROR_IOERROR = -5,
CARD_ERROR_BROKEN = -6,
CARD_ERROR_EXIST = -7,
CARD_ERROR_NOENT = -8,
CARD_ERROR_INSSPACE = -9,
CARD_ERROR_NOPERM = -10,
CARD_ERROR_LIMIT = -11,
CARD_ERROR_NAMETOOLONG = -12,
CARD_ERROR_ENCODING = -13,
CARD_ERROR_CANCELED = -14,
CARD_ERROR_FATAL_ERROR = -128,
};
void CARDInit();
BOOL CARDProbe(s32);
s32 CARDOpen(s32, const char*, CARDFileInfo*);
s32 CARDClose(CARDFileInfo*);
s32 CARDCreate(s32, const char*, s32, CARDFileInfo*);
s32 CARDFormat(s32);
s32 CARDProbeEx(s32, s32*, s32*);
s32 CARDUnmount(s32);
s32 CARDMount(s32, void*, void*);
s32 CARDCheck(s32);
s32 CARDFreeBlocks(s32, s32*, s32*);
#ifdef __cplusplus
}
#endif
#endif /* CARD_H */
+21 -6
View File
@@ -44,16 +44,16 @@ public:
/* 0x0000 */ u8 mData[0x1650];
/* 0x1650 */ s32 mCardCommand;
/* 0x1654 */ s32 mCardState;
/* 0x1658 */ u8 field_0x1658;
/* 0x1658 */ u8 mCardSlot;
/* 0x1659 */ u8 field_0x1659;
/* 0x165A */ u8 field_0x165A;
/* 0x165B */ u8 field_0x165B;
/* 0x165C */ s32 field_0x165c;
/* 0x165C */ s32 mCommand;
/* 0x1660 */ s32 field_0x1660;
/* 0x1664 */ OSMutex mMutex;
}; // Size: 0x167C
STATIC_ASSERT(sizeof(mDoMemCd_Ctrl_c) == 0x167C);
/* 0x167C */ OSCond mCond;
/* 0x1684 */ u32 field_0x1684[5];
}; // Size: 0x1698
static int mDoMemCd_main(void*);
@@ -71,4 +71,19 @@ inline void mDoMemCd_save(void* i_data, u32 param_1, u32 param_2) {
g_mDoMemCd_control.save(i_data,param_1,param_2);
}
#endif /* M_DO_M_DO_MEMCARD_H */
struct CARDFileInfo;
struct mDoMemCdRWm_HeaderData;
s32 mDoMemCdRWm_Store(CARDFileInfo*, void*, u32);
s32 mDoMemCdRWm_Restore(CARDFileInfo*, void*, u32);
void mDoMemCdRWm_BuildHeader(mDoMemCdRWm_HeaderData*);
void mDoMemCdRWm_SetCardStat(CARDFileInfo*);
void mDoMemCdRWm_CheckCardStat(CARDFileInfo*);
void mDoMemCdRWm_CalcCheckSum(void*, u32);
void mDoMemCdRWm_CalcCheckSumPictData(void*, u32);
void mDoMemCdRWm_TestCheckSumPictData(void*);
void mDoMemCdRWm_SetCheckSumPictData(u8*);
void mDoMemCdRWm_CalcCheckSumGameData(void*, u32);
void mDoMemCdRWm_TestCheckSumGameData(void*);
void mDoMemCdRWm_SetCheckSumGameData(u8*, u8);
#endif /* M_DO_M_DO_MEMCARD_H */