More inlines, use sizeof for memcard structs

This commit is contained in:
LagoLunatic
2025-04-16 13:53:30 -04:00
parent 2f4c6f89b3
commit 36a3a2b660
10 changed files with 163 additions and 154 deletions
+7 -6
View File
@@ -22,16 +22,17 @@ public:
class dFile_select_c {
public:
u8 getIconMode() { return mIconMode;}
void setIconMode(u8 mode) { mIconMode = mode; }
void setSaveDataPtr(u8* dataPtr) { mSaveDataPtr = dataPtr; }
void setSavePicDataPtr(u8* dataPtr) { mSavePicDataPtr = dataPtr; }
void setUseType(u8 useType) { mUseType = useType; }
void getErrType() {}
void getIconMode() {}
void getSelectNum() {}
void isDataExtra(u8) {}
void isDataNew(u8) {}
void isSelectEnd() {}
void setIconMode(u8) {}
void setSaveDataPtr(u8* dataPtr) { mSaveDataPtr = dataPtr; }
void setSavePicDataPtr(u8* dataPtr) { mSavePicDataPtr = dataPtr; }
void setUseType(u8 useType) { mUseType = useType; }
dFile_select_c() {}
void _create();
@@ -242,7 +243,7 @@ public:
/* 0x3930 */ s16 field_0x3930;
/* 0x3932 */ s16 field_0x3932;
/* 0x3934 */ u8 field_0x3934[0x3936 - 0x3934];
/* 0x3936 */ u8 field_0x3936;
/* 0x3936 */ u8 mIconMode;
/* 0x3938 */ u8* mSaveDataPtr;
/* 0x393C */ u8* mSavePicDataPtr;
/* 0x3940 */ u8 mUseType;
+7 -7
View File
@@ -14,10 +14,10 @@ class dDlst_NameIN_c : public dDlst_base_c {
class dName_c {
public:
void draw() {}
void getInputStrPtr() {}
void isInputEnd() {}
void setNextNameStr(char*) {}
void draw() { _draw(); }
int isInputEnd() { return mIsInputEnd; }
char* getInputStrPtr() { return mInputStr; }
void setNextNameStr(char* i_name) { strcpy(mNextNameStr, i_name); }
virtual ~dName_c() {}
void _create();
@@ -68,11 +68,11 @@ public:
/* 0x0004 */ u8 field_0x4[0x0008 - 0x0004];
/* 0x0008 */ dDlst_NameIN_c field_0x8;
/* 0x000C */ u8 field_0xc[0x290B - 0x000C];
/* 0x290B */ u8 field_0x290b;
/* 0x290B */ u8 mIsInputEnd;
/* 0x290C */ u8 field_0x290c[0x2A5C - 0x290C];
/* 0x2A5C */ char field_0x2a5c[8];
/* 0x2A5C */ char mInputStr[8];
/* 0x2A64 */ u8 field_0x2964[0x2AD0 - 0x2A64];
/* 0x2AD0 */ char field_0x2ad0[0x2AE8 - 0x2AD0];
/* 0x2AD0 */ char mNextNameStr[0x2AE8 - 0x2AD0];
};
#endif /* D_NAME_H */
+48 -47
View File
@@ -4,6 +4,7 @@
#include "d/d_drawlist.h"
#include "f_op/f_op_msg_mng.h"
#include "f_op/f_op_scene.h"
#include "m_Do/m_Do_MemCardRWmng.h"
#include "m_Do/m_Do_hostIO.h"
class J2DScreen;
@@ -122,53 +123,53 @@ public:
void NoneDraw();
void changeGameScene();
/* 0x1C4 */ request_of_phase_process_class mPhs;
/* 0x1CC */ JKRHeap* heap;
/* 0x1D0 */ JKRHeap* oldHeap;
/* 0x1D4 */ u8 field_0x1d4[0x29C - 0x1D4];
/* 0x29C */ f32 field_0x29c;
/* 0x2A0 */ f32 field_0x2a0;
/* 0x2A4 */ f32 field_0x2a4;
/* 0x2A8 */ f32 field_0x2a8;
/* 0x2AC */ Vec field_0x2ac;
/* 0x2B8 */ Vec field_0x2b8;
/* 0x2C4 */ u8 field_0x2c4[0x2D0 - 0x2C4];
/* 0x2D0 */ s16 field_0x2d0;
/* 0x2D4 */ Mtx44 field_0x2d4;
/* 0x314 */ Mtx field_0x314;
/* 0x344 */ Mtx field_0x344;
/* 0x374 */ Mtx field_0x374;
/* 0x3A4 */ u8 field_0x3a4[0x3B4 - 0x3A4];
/* 0x3B4 */ Mtx field_0x3b4;
/* 0x3E4 */ u8 field_0x3e4[0x40C - 0x3E4];
/* 0x40C */ JKRMemArchive* mArchive;
/* 0x410 */ mDoDvdThd_toMainRam_c* field_0x410;
/* 0x414 */ dDlst_BTICN_c btnIcon;
/* 0x41C */ dDlst_FLSEL_CLOTH_c cloth;
/* 0x424 */ dName_c* dNm_c;
/* 0x428 */ dFile_select_c* dFs_c;
/* 0x42C */ dFile_error_c* dFe_c;
/* 0x430 */ dMenu_save_c* dMs_c;
/* 0x434 */ u8 field_0x434[0x43C - 0x434];
/* 0x43C */ fopMsgM_pane_class field_0x43c;
/* 0x474 */ fopMsgM_pane_class field_0x474;
/* 0x4AC */ fopMsgM_pane_class field_0x4ac;
/* 0x4E4 */ fopMsgM_pane_class field_0x4e4;
/* 0x51C */ fopMsgM_pane_class field_0x51c;
/* 0x554 */ u8 mMainProc;
/* 0x555 */ u8 field_0x555;
/* 0x556 */ u8 field_0x556;
/* 0x557 */ u8 mDrawProc;
/* 0x558 */ u8 field_0x558;
/* 0x559 */ u8 field_0x559;
/* 0x55A */ u8 field_0x55a;
/* 0x55B */ u8 field_0x55b;
/* 0x55C */ u8 field_0x55c;
/* 0x55D */ u8 field_0x55d;
/* 0x55E */ u8 field_0x55e;
/* 0x55F */ u8 field_0x55f;
/* 0x560 */ u8 saveMemory[0x1650];
/* 0x1BB0 */ u8* savePicDatabuf;
/* 0x01C4 */ request_of_phase_process_class mPhs;
/* 0x01CC */ JKRHeap* heap;
/* 0x01D0 */ JKRHeap* oldHeap;
/* 0x01D4 */ u8 field_0x1d4[0x29C - 0x1D4];
/* 0x029C */ f32 field_0x29c;
/* 0x02A0 */ f32 field_0x2a0;
/* 0x02A4 */ f32 field_0x2a4;
/* 0x02A8 */ f32 field_0x2a8;
/* 0x02AC */ Vec field_0x2ac;
/* 0x02B8 */ Vec field_0x2b8;
/* 0x02C4 */ u8 field_0x2c4[0x2D0 - 0x2C4];
/* 0x02D0 */ s16 field_0x2d0;
/* 0x02D4 */ Mtx44 field_0x2d4;
/* 0x0314 */ Mtx field_0x314;
/* 0x0344 */ Mtx field_0x344;
/* 0x0374 */ Mtx field_0x374;
/* 0x03A4 */ u8 field_0x3a4[0x3B4 - 0x3A4];
/* 0x03B4 */ Mtx field_0x3b4;
/* 0x03E4 */ u8 field_0x3e4[0x40C - 0x3E4];
/* 0x040C */ JKRMemArchive* mArchive;
/* 0x0410 */ mDoDvdThd_toMainRam_c* field_0x410;
/* 0x0414 */ dDlst_BTICN_c btnIcon;
/* 0x041C */ dDlst_FLSEL_CLOTH_c cloth;
/* 0x0424 */ dName_c* dNm_c;
/* 0x0428 */ dFile_select_c* dFs_c;
/* 0x042C */ dFile_error_c* dFe_c;
/* 0x0430 */ dMenu_save_c* dMs_c;
/* 0x0434 */ u8 field_0x434[0x43C - 0x434];
/* 0x043C */ fopMsgM_pane_class field_0x43c;
/* 0x0474 */ fopMsgM_pane_class field_0x474;
/* 0x04AC */ fopMsgM_pane_class field_0x4ac;
/* 0x04E4 */ fopMsgM_pane_class field_0x4e4;
/* 0x051C */ fopMsgM_pane_class field_0x51c;
/* 0x0554 */ u8 mMainProc;
/* 0x0555 */ u8 field_0x555;
/* 0x0556 */ u8 field_0x556;
/* 0x0557 */ u8 mDrawProc;
/* 0x0558 */ u8 field_0x558;
/* 0x0559 */ u8 field_0x559;
/* 0x055A */ u8 field_0x55a;
/* 0x055B */ u8 field_0x55b;
/* 0x055C */ u8 field_0x55c;
/* 0x055D */ u8 field_0x55d;
/* 0x055E */ u8 field_0x55e;
/* 0x055F */ u8 field_0x55f;
/* 0x0560 */ u8 saveMemory[3 * sizeof(card_gamedata)];
/* 0x1BB0 */ card_pictdata* savePicDatabuf;
/* 0x1BB4 */ s16 field_0x1bb4;
/* 0x1BB6 */ u8 field_0x1bb6;
/* 0x1BB7 */ u8 field_0x1bb7;
+6 -6
View File
@@ -7,16 +7,16 @@
extern "C" {
#endif
struct CARDFileInfo {
typedef struct CARDFileInfo {
/* 0x00 */ s32 chan;
/* 0x04 */ s32 fileNo;
/* 0x08 */ s32 offset;
/* 0x0C */ s32 length;
/* 0x10 */ u16 iBlock;
/* 0x12 */ u16 __padding;
};
} CARDFileInfo;
struct CARDStat {
typedef struct CARDStat {
u8 fileName[32];
u32 dataLength;
u32 lastModified;
@@ -34,7 +34,7 @@ struct CARDStat {
u32 offsetIcon[8];
u32 offsetIconTlut;
u32 offsetData;
};
} CARDStat;
#define CARDGetBannerFormat(stat) ((stat)->bannerFmt & 0x03)
#define CARDGetIconAnim(stat) ((stat)->bannerFmt & 0x04)
@@ -79,8 +79,8 @@ s32 CARDUnmount(s32);
s32 CARDMount(s32, void*, void*);
s32 CARDCheck(s32);
s32 CARDFreeBlocks(s32, s32*, s32*);
s32 CARDRead(CARDFileInfo*, void*, s32, s32);
s32 CARDWrite(CARDFileInfo*, const void*, s32, s32);
s32 CARDRead(CARDFileInfo* fileInfo, void* buf, s32 length, s32 offset);
s32 CARDWrite(CARDFileInfo* fileInfo, const void* buf, s32 length, s32 offset);
s32 CARDGetSerialNo(s32, u64*);
#ifdef __cplusplus
+2 -1
View File
@@ -3,6 +3,7 @@
#include "dolphin/os/OSMutex.h"
#include "global.h"
#include "m_Do/m_Do_MemCardRWmng.h"
class mDoMemCd_Ctrl_c {
public:
@@ -61,7 +62,7 @@ public:
void getProbeStat() {}
void setPictWriteDataPtr(u8*) {}
/* 0x0000 */ u8 mData[0x1650];
/* 0x0000 */ u8 mData[3 * sizeof(card_gamedata)];
/* 0x1650 */ u8* mPictDataPtr;
/* 0x1654 */ u8* mPictDataWritePtr;
/* 0x1658 */ u8 mCardSlot;
+29 -23
View File
@@ -8,47 +8,53 @@ typedef struct CARDFileInfo CARDFileInfo;
struct mDoMemCdRWm_HeaderData
{
/* 0x0000 */ u8 banner[0x0e00];
/* 0x0e00 */ u8 icon[0x0200];
/* 0x1000 */ u8 field_0x1000[0x0c00];
/* 0x1c00 */ char comment[32];
/* 0x1c20 */ char info[32];
};
/* 0x0000 */ u8 banner[0x0E00];
/* 0x0E00 */ u8 icon[0x0200];
/* 0x1000 */ u8 field_0x1000[0x0C00];
/* 0x1C00 */ char comment[32];
/* 0x1C20 */ char info[32];
}; // Size: 0x1C40
struct card_pictdata
{
u8 data[0x1ffe];
u16 csum;
};
/* 0x0000 */ u8 data[0x2000 - sizeof(u16)];
/* 0x1FFE */ u16 csum;
}; // Size: 0x2000
STATIC_ASSERT(sizeof(card_pictdata) == 0x2000);
struct card_gamedata
{
u8 data[dSv_save_c::PACKED_STRUCT_SIZE];
u64 csum;
};
/* 0x000 */ u8 data[dSv_save_c::PACKED_STRUCT_SIZE];
/* 0x768 */ u64 csum;
}; // Size: 0x770
struct card_savedata
{
u32 saveCount;
u32 dataVersion;
card_gamedata gamedata[3];
u32 field_0x1658[0x269];
u32 csum;
};
/* 0x0000 */ u32 saveCount;
/* 0x0004 */ u32 dataVersion;
/* 0x0008 */ card_gamedata gamedata[3];
/* 0x1658 */ u8 field_0x1658[0x2000 - 3*sizeof(u32) - 3*sizeof(card_gamedata)];
/* 0x1FFC */ u32 csum;
}; // Size: 0x2000
s32 mDoMemCdRWm_Store(CARDFileInfo*, void*, u32);
s32 mDoMemCdRWm_Restore(CARDFileInfo*, void*, u32);
STATIC_ASSERT(sizeof(card_savedata) == 0x2000);
STATIC_ASSERT(sizeof(card_pictdata) == sizeof(card_savedata));
s32 mDoMemCdRWm_Store(CARDFileInfo* card, void* data, u32 size);
s32 mDoMemCdRWm_Restore(CARDFileInfo* card, void* dst, u32 size);
#if VERSION == VERSION_PAL
s32 mDoMemCdRWm_Restore2(CARDFileInfo*);
#endif
void mDoMemCdRWm_BuildHeader(mDoMemCdRWm_HeaderData*);
void mDoMemCdRWm_SetCardStat(CARDFileInfo*);
BOOL mDoMemCdRWm_CheckCardStat(CARDFileInfo*);
u32 mDoMemCdRWm_CalcCheckSum(void*, u32);
u16 mDoMemCdRWm_CalcCheckSumPictData(void*, u32);
u32 mDoMemCdRWm_CalcCheckSum(void*, u32 size);
u16 mDoMemCdRWm_CalcCheckSumPictData(void*, u32 size);
BOOL mDoMemCdRWm_TestCheckSumPictData(void*);
void mDoMemCdRWm_SetCheckSumPictData(u8*);
u64 mDoMemCdRWm_CalcCheckSumGameData(void*, u32);
u64 mDoMemCdRWm_CalcCheckSumGameData(void*, u32 size);
BOOL mDoMemCdRWm_TestCheckSumGameData(void*);
void mDoMemCdRWm_SetCheckSumGameData(u8*, u8);