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);
+3 -2
View File
@@ -12,6 +12,7 @@
#include "d/d_com_lib_game.h"
#include "d/d_procname.h"
#include "d/d_s_play.h"
#include "m_Do/m_Do_MemCardRWmng.h"
#include "m_Do/m_Do_audio.h"
#include "m_Do/m_Do_controller_pad.h"
#include "m_Do/m_Do_ext.h"
@@ -590,12 +591,12 @@ static BOOL dScnLogo_Delete(dScnLogo_c* i_this) {
dComIfGp_setWindowNum(0);
for (s32 i = 0; i < 3; i++) {
dComIfGp_setPictureBoxData(JKRAllocFromAram(0x2000, JKRAramHeap::HEAD), i);
dComIfGp_setPictureBoxData(JKRAllocFromAram(sizeof(card_pictdata), JKRAramHeap::HEAD), i);
dComIfGp_offPictureFlag(i);
}
for (s32 i = 0; i < 4; i++) {
dComIfGp_setBossBattleData(JKRAllocFromAram(0x70, JKRAramHeap::HEAD), i);
dComIfGp_setBossBattleData(JKRAllocFromAram(sizeof(dSv_player_status_c_c), JKRAramHeap::HEAD), i);
}
#if VERSION == VERSION_PAL
+32 -32
View File
@@ -119,7 +119,7 @@ cPhs_State dScnName_c::create() {
dFs_c = new dFile_select_c();
JUT_ASSERT(470, dFs_c != NULL);
dFs_c->field_0x0 = mArchive;
savePicDatabuf = new (0x20) u8[0x12000];
savePicDatabuf = new (0x20) card_pictdata[3 * 3];
JUT_ASSERT(476, savePicDatabuf != NULL);
if (fpcM_GetName(this) == PROC_NAME_SCENE) {
dFs_c->setUseType(0);
@@ -516,11 +516,11 @@ void dScnName_c::NoteOpenWait() {
if (g_snHIO.field_0x8 == 0) {
if (fpcM_GetName(this) == PROC_NAME_SCENE) {
dFs_c->setSaveDataPtr(saveMemory);
dFs_c->setSavePicDataPtr(savePicDatabuf);
dFs_c->setSavePicDataPtr((u8*)savePicDatabuf);
}
if (fpcM_GetName(this) == PROC_NAMEEX_SCENE) {
dFs_c->setSaveDataPtr(dMs_c->getDataBufPtr());
dFs_c->setSavePicDataPtr(savePicDatabuf);
dFs_c->setSavePicDataPtr((u8*)savePicDatabuf);
}
dFs_c->initial();
mMainProc = 3;
@@ -536,7 +536,6 @@ void dScnName_c::FileSelectOpen() {
/* 802315E0-802319B4 .text buttonIconProc__10dScnName_cFv */
void dScnName_c::buttonIconProc() {
/* Nonmatching */
switch (field_0x1bb6) {
case 0:
{
@@ -545,7 +544,7 @@ void dScnName_c::buttonIconProc() {
if (ret == 1) {
field_0x1bb4 = 0;
field_0x1bb6 = 6;
dFs_c->field_0x3936 = field_0x1bb6;
dFs_c->setIconMode(field_0x1bb6);
}
}
break;
@@ -561,7 +560,7 @@ void dScnName_c::buttonIconProc() {
if (ret == 1) {
field_0x1bb4 = 0;
field_0x1bb6 = 6;
dFs_c->field_0x3936 = field_0x1bb6;
dFs_c->setIconMode(field_0x1bb6);
}
}
break;
@@ -577,24 +576,24 @@ void dScnName_c::buttonIconProc() {
if (ret == 1) {
field_0x1bb4 = 0;
field_0x1bb6 = 6;
dFs_c->field_0x3936 = field_0x1bb6;
dFs_c->setIconMode(field_0x1bb6);
}
}
break;
case 3:
{
s32 ret = paneTransButtonIcon(field_0x1bb4 - g_snHIO.field_0xf, g_snHIO.field_0xe, g_snHIO.field_0xc, 0.0f, 0);
s32 ret = paneTransButtonIcon(field_0x1bb4 - g_snHIO.field_0xf, g_snHIO.field_0xe, 0.0f, g_snHIO.field_0xc, 0);
field_0x1bb4++;
if (ret == 1) {
field_0x1bb4 = 0;
field_0x1bb6 = 6;
dFs_c->field_0x3936 = field_0x1bb6;
dFs_c->setIconMode(field_0x1bb6);
}
}
break;
case 4:
{
s32 ret = paneTransButtonIcon(field_0x1bb4 - g_snHIO.field_0xf, g_snHIO.field_0xe, g_snHIO.field_0xc, 0.0f, 0);
s32 ret = paneTransButtonIcon(field_0x1bb4 - g_snHIO.field_0xf, g_snHIO.field_0xe, 0.0f, g_snHIO.field_0xc, 0);
field_0x1bb4++;
if (ret == 1) {
field_0x1bb4 = 0;
@@ -604,13 +603,13 @@ void dScnName_c::buttonIconProc() {
field_0x4ac.pane->show();
}
field_0x1bb6 = 0;
dFs_c->field_0x3936 = field_0x1bb6;
dFs_c->setIconMode(field_0x1bb6);
}
}
break;
case 5:
{
s32 ret = paneTransButtonIcon(field_0x1bb4 - g_snHIO.field_0xf, g_snHIO.field_0xe, g_snHIO.field_0xc, 0.0f, 0);
s32 ret = paneTransButtonIcon(field_0x1bb4 - g_snHIO.field_0xf, g_snHIO.field_0xe, 0.0f, g_snHIO.field_0xc, 0);
field_0x1bb4++;
if (ret == 1) {
field_0x1bb4 = 0;
@@ -620,7 +619,7 @@ void dScnName_c::buttonIconProc() {
field_0x4ac.pane->hide();
}
field_0x1bb6 = 0;
dFs_c->field_0x3936 = field_0x1bb6;
dFs_c->setIconMode(field_0x1bb6);
}
}
break;
@@ -639,7 +638,7 @@ void dScnName_c::FileSelOpenMain() {
} else {
field_0x1bb6 = 1;
}
dFs_c->field_0x3936 = field_0x1bb6;
dFs_c->setIconMode(field_0x1bb6);
mMainProc = 4;
}
@@ -649,7 +648,7 @@ void dScnName_c::FileselOpenWait() {}
/* 80231A28-80231A8C .text FileSelectMain__10dScnName_cFv */
void dScnName_c::FileSelectMain() {
dFs_c->_move();
field_0x1bb6 = dFs_c->field_0x3936;
field_0x1bb6 = dFs_c->getIconMode();
if (fpcM_GetName(this) == PROC_NAME_SCENE)
FileSelectMainNormal();
if (fpcM_GetName(this) == PROC_NAMEEX_SCENE)
@@ -675,32 +674,34 @@ void dScnName_c::FileSelectMainNormal() {
if (dComIfGs_getPictureNum() != 0) {
u8 failed = 0;
u8 boxDataIdx = 0;
u8* workBuf = &((u8*)savePicDatabuf)[dFs_c->saveSlot * 0x6000];
u8 r25 = 0;
card_pictdata* workBuf = &savePicDatabuf[dFs_c->saveSlot * 3];
for (s32 i = 0; i < 3; i++) {
u32 mask = 1 << i;
if ((dComIfGs_getEventReg(0x89ff) & mask)) {
workBuf += 0x2000;
workBuf++;
continue;
}
if (mDoMemCdRWm_TestCheckSumPictData(workBuf)) {
JKRMainRamToAram(workBuf, dComIfGp_getPictureBoxData(boxDataIdx), 0x2000, EXPAND_SWITCH_UNKNOWN0, 0, NULL, -1);
JKRMainRamToAram((u8*)workBuf, dComIfGp_getPictureBoxData(boxDataIdx), sizeof(card_pictdata), EXPAND_SWITCH_UNKNOWN0, 0, NULL, -1);
boxDataIdx++;
} else {
failed++;
}
if (i == pictureNum)
r25++;
if (r25 == pictureNum)
break;
workBuf += 0x2000;
workBuf++;
}
dComIfGs_setPictureNum(pictureNum - failed);
}
dComIfGs_setEventReg(0x89ff, 0);
mDoMemCd_setPictDataPtr(NULL);
g_dComIfG_gameInfo.play.itemInit();
dComIfGp_itemDataInit();
if (field_0x1bb9 != 0) {
field_0x1bb6 = 3;
mMainProc = 5;
@@ -752,7 +753,7 @@ void dScnName_c::FileSelectClose() {
if (fpcM_GetName(this) == PROC_NAMEEX_SCENE) {
dMs_c->initialize();
dMs_c->field_0x053c = 1;
dMs_c->field_0x053d = dFs_c->field_0x392f;
dMs_c->field_0x053d = dFs_c->field_0x392f; // getErrType?
if (dFs_c->field_0x392f == 2) {
dMs_c->initializeEx();
}
@@ -775,9 +776,9 @@ void dScnName_c::FileSelectClose() {
break;
case 1:
if (field_0x1bb9) {
strcpy(dNm_c->field_0x2ad0, dComIfGs_getPlayerName());
dNm_c->setNextNameStr((char*)dComIfGs_getPlayerName());
} else {
strcpy(dNm_c->field_0x2ad0, "");
dNm_c->setNextNameStr("");
}
dNm_c->initial();
mMainProc = 6;
@@ -811,18 +812,17 @@ void dScnName_c::NameOpenWait() {}
/* 80231F48-80231FF4 .text NameInMain__10dScnName_cFv */
void dScnName_c::NameInMain() {
/* Nonmatching */
dNm_c->_move();
if (dNm_c->field_0x290b == 1) {
if (dNm_c->isInputEnd() == 1) {
if (!field_0x1bb9) {
g_dComIfG_gameInfo.save.init();
g_dComIfG_gameInfo.play.itemInit();
dComIfGs_init();
dComIfGp_itemDataInit();
}
dComIfGs_setPlayerName(dNm_c->field_0x2a5c);
dComIfGs_setPlayerName(dNm_c->getInputStrPtr());
field_0x55f = 1;
mMainProc = 9;
} else if (dNm_c->field_0x290b == 2) {
} else if (dNm_c->isInputEnd() == 2) {
field_0x1bb6 = 3;
mMainProc = 8;
}
@@ -840,7 +840,7 @@ void dScnName_c::NameInClose() {
/* 80232050-80232074 .text NameInDraw__10dScnName_cFv */
void dScnName_c::NameInDraw() {
dNm_c->_draw();
dNm_c->draw();
}
/* 80232074-802320C0 .text ShopDemoDataLoad__10dScnName_cFv */
@@ -867,7 +867,7 @@ void dScnName_c::SaveOpen() {
}
if (dMs_c->_open() == 1) {
field_0x1bb6 = 1;
dFs_c->field_0x3936 = field_0x1bb6;
dFs_c->setIconMode(field_0x1bb6);
mMainProc = 11;
}
}
+2 -2
View File
@@ -105,7 +105,7 @@ void mDoMemCd_Ctrl_c::restore() {
CARDFileInfo cardInfo;
s32 ret = CARDOpen(mCardSlot, "gczelda", &cardInfo);
if (ret == CARD_ERROR_READY) {
if (!mDoMemCdRWm_Restore(&cardInfo, this, 0x1650)) {
if (!mDoMemCdRWm_Restore(&cardInfo, mData, sizeof(mData))) {
field_0x1660 = 3;
} else {
setCardState(ret);
@@ -133,7 +133,7 @@ void mDoMemCd_Ctrl_c::store() {
if (field_0x1660 == 1) {
ret = CARDOpen(mCardSlot, "gczelda", &cardInfo);
if (ret == CARD_ERROR_READY) {
ret = mDoMemCdRWm_Store(&cardInfo, this, 0x1650);
ret = mDoMemCdRWm_Store(&cardInfo, mData, sizeof(mData));
if (ret != CARD_ERROR_READY)
setCardState(ret);
else
+27 -28
View File
@@ -23,19 +23,19 @@ static u32 sSaveCount;
s32 mDoMemCdRWm_Store(CARDFileInfo* card, void* data, u32 size) {
s32 ret;
mDoMemCdRWm_BuildHeader((mDoMemCdRWm_HeaderData*)sTmpBuf);
ret = CARDWrite(card, sTmpBuf, 0x2000, 0x0000);
ret = CARDWrite(card, sTmpBuf, sizeof(card_savedata), 0 * sizeof(card_savedata));
if (ret != CARD_ERROR_READY) return ret;
if (!mDoMemCdRWm_CheckCardStat(card)) {
memset(sTmpBuf, 0, 0x2000);
ret = CARDWrite(card, sTmpBuf, 0x2000, 0x2000);
memset(sTmpBuf, 0, sizeof(sTmpBuf));
ret = CARDWrite(card, sTmpBuf, sizeof(card_savedata), 1 * sizeof(card_savedata));
if (ret != CARD_ERROR_READY) return ret;
ret = CARDWrite(card, sTmpBuf, 0x2000, 0x4000);
ret = CARDWrite(card, sTmpBuf, sizeof(card_savedata), 2 * sizeof(card_savedata));
if (ret != CARD_ERROR_READY) return ret;
sSaveCount = 0;
}
memset(sTmpBuf, 0, 0x2000);
memset(sTmpBuf, 0, sizeof(sTmpBuf));
card_savedata* save = (card_savedata*)sTmpBuf;
save->dataVersion = 0;
memcpy(save->gamedata, data, size);
@@ -44,20 +44,20 @@ s32 mDoMemCdRWm_Store(CARDFileInfo* card, void* data, u32 size) {
#else
save->saveCount = dComIfGs_getPalLanguage();
#endif
s32 csum = mDoMemCdRWm_CalcCheckSum(save, 0x1FFC);
s32 csum = mDoMemCdRWm_CalcCheckSum(save, sizeof(card_savedata) - sizeof(save->csum));
save->csum = csum;
ret = CARDWrite(card, sTmpBuf, 0x2000, 0x2000);
ret = CARDWrite(card, sTmpBuf, sizeof(card_savedata), 1 * sizeof(card_savedata));
if (ret != CARD_ERROR_READY) return ret;
ret = CARDRead(card, sTmpBuf, 0x2000, 0x2000);
ret = CARDRead(card, sTmpBuf, sizeof(card_savedata), 1 * sizeof(card_savedata));
if (ret != CARD_ERROR_READY) return ret;
if (mDoMemCdRWm_CalcCheckSum(sTmpBuf, 0x1FFC) != csum) return ret;
if (mDoMemCdRWm_CalcCheckSum(sTmpBuf, sizeof(card_savedata) - sizeof(save->csum)) != csum) return ret;
ret = CARDWrite(card, sTmpBuf, 0x2000, 0x4000);
ret = CARDWrite(card, sTmpBuf, sizeof(card_savedata), 2 * sizeof(card_savedata));
if (ret != CARD_ERROR_READY) return ret;
ret = CARDRead(card, sTmpBuf, 0x2000, 0x4000);
ret = CARDRead(card, sTmpBuf, sizeof(card_savedata), 2 * sizeof(card_savedata));
if (ret != CARD_ERROR_READY) return ret;
if (mDoMemCdRWm_CalcCheckSum(sTmpBuf, 0x1FFC) != csum) return ret;
if (mDoMemCdRWm_CalcCheckSum(sTmpBuf, sizeof(card_savedata) - sizeof(save->csum)) != csum) return ret;
s32 i;
u32 slot;
@@ -65,10 +65,10 @@ s32 mDoMemCdRWm_Store(CARDFileInfo* card, void* data, u32 size) {
if (mDoMemCd_getCopyToPos() < 3) {
slot = mDoMemCd_getCopyToPos() * 3 + 3;
u8* picData = mDoMemCd_getPictWriteDataPtr();
for (i = 0; i < 3; i++, picData += 0x2000) {
ret = CARDWrite(card, picData, 0x2000, (slot + i) * 0x2000);
for (i = 0; i < 3; i++, picData += sizeof(card_pictdata)) {
ret = CARDWrite(card, picData, sizeof(card_pictdata), (slot + i) * sizeof(card_pictdata));
if (ret != CARD_ERROR_READY) return ret;
ret = CARDRead(card, sTmpBuf, 0x2000, (slot + i) * 0x2000);
ret = CARDRead(card, sTmpBuf, sizeof(card_pictdata), (slot + i) * sizeof(card_pictdata));
if (ret != CARD_ERROR_READY) return ret;
if (!mDoMemCdRWm_TestCheckSumPictData(picData)) return ret;
}
@@ -77,11 +77,11 @@ s32 mDoMemCdRWm_Store(CARDFileInfo* card, void* data, u32 size) {
slot = dComIfGs_getDataNum() * 3 + 3;
for (i = 0; i < 3; i++) {
if (dComIfGp_isPictureFlag(i)) {
memset(sTmpBuf, 0, 0x2000);
JKRAramToMainRam(dComIfGp_getPictureBoxData(i), sTmpBuf, 0x2000);
ret = CARDWrite(card, sTmpBuf, 0x2000, (slot + i) * 0x2000);
memset(sTmpBuf, 0, sizeof(card_pictdata));
JKRAramToMainRam(dComIfGp_getPictureBoxData(i), sTmpBuf, sizeof(card_pictdata));
ret = CARDWrite(card, sTmpBuf, sizeof(card_pictdata), (slot + i) * sizeof(card_pictdata));
if (ret != CARD_ERROR_READY) return ret;
ret = CARDRead(card, sTmpBuf, 0x2000, (slot + i) * 0x2000);
ret = CARDRead(card, sTmpBuf, sizeof(card_pictdata), (slot + i) * sizeof(card_pictdata));
if (ret != CARD_ERROR_READY) return ret;
}
}
@@ -108,12 +108,12 @@ s32 mDoMemCdRWm_Restore(CARDFileInfo* card, void* dst, u32 size) {
save = (card_savedata*)sTmpBuf;
save2 = (card_savedata*)sTmpBuf2;
ret = CARDRead(card, save, 0x2000, 0x2000);
ret = CARDRead(card, save, sizeof(card_savedata), 1 * sizeof(card_savedata));
if (ret != CARD_ERROR_READY) return ret;
csum0a = mDoMemCdRWm_TestCheckSumGameData(&save->gamedata[0]);
csum1a = mDoMemCdRWm_TestCheckSumGameData(&save->gamedata[1]);
csum2a = mDoMemCdRWm_TestCheckSumGameData(&save->gamedata[2]);
ret = CARDRead(card, save2, 0x2000, 0x4000);
ret = CARDRead(card, save2, sizeof(card_savedata), 2 * sizeof(card_savedata));
if (ret != CARD_ERROR_READY) return ret;
csum0b = mDoMemCdRWm_TestCheckSumGameData(&save2->gamedata[0]);
csum1b = mDoMemCdRWm_TestCheckSumGameData(&save2->gamedata[1]);
@@ -139,9 +139,9 @@ s32 mDoMemCdRWm_Restore(CARDFileInfo* card, void* dst, u32 size) {
return CARD_ERROR_FATAL_ERROR;
if (needsWrite) {
ret = CARDWrite(card, save, 0x2000, 0x2000);
ret = CARDWrite(card, save, sizeof(card_savedata), 1 * sizeof(card_savedata));
if (ret != CARD_ERROR_READY) return ret;
ret = CARDWrite(card, save, 0x2000, 0x4000);
ret = CARDWrite(card, save, sizeof(card_savedata), 2 * sizeof(card_savedata));
if (ret != CARD_ERROR_READY) return ret;
}
@@ -158,7 +158,7 @@ s32 mDoMemCdRWm_Restore(CARDFileInfo* card, void* dst, u32 size) {
#endif
mDoMemCd_setDataVersion(save->dataVersion);
if (!invalid && mDoMemCd_getPictDataPtr() != NULL) {
ret = CARDRead(card, mDoMemCd_getPictDataPtr(), 0x12000, 0x6000);
ret = CARDRead(card, mDoMemCd_getPictDataPtr(), 3 * 3 * sizeof(card_pictdata), 3 * sizeof(card_savedata));
if (ret != CARD_ERROR_READY) return ret;
}
@@ -173,9 +173,9 @@ s32 mDoMemCdRWm_Restore2(CARDFileInfo* card) {
s32 ret;
card_savedata* save;
save = (card_savedata*)sTmpBuf;
ret = CARDRead(card, save, 0x2000, 0x2000);
ret = CARDRead(card, save, sizeof(card_savedata), 1 * sizeof(card_savedata));
if (ret != CARD_ERROR_READY) {
ret = CARDRead(card, save, 0x2000, 0x4000);
ret = CARDRead(card, save, sizeof(card_savedata), 2 * sizeof(card_savedata));
if (ret != CARD_ERROR_READY) return ret;
}
@@ -213,7 +213,6 @@ void mDoMemCdRWm_BuildHeader(mDoMemCdRWm_HeaderData* header) {
snprintf(header->info, sizeof(header->info), "%d/%d Spielstand", cal.day_of_month, cal.month + 1);
break;
case 2:
// Extended ASCII 0xE9 is: é ("Données de jeu")
snprintf(header->info, sizeof(header->info), "Donn%ces de jeu %d/%d", 0xE9, cal.day_of_month, cal.month + 1);
break;
case 3:
@@ -267,7 +266,7 @@ BOOL mDoMemCdRWm_CheckCardStat(CARDFileInfo* card) {
CARDStat stat;
CARDGetStatus(mDoMemCd_getNowSlot(), card->fileNo, &stat);
if (!(stat.iconAddr == 0 &&
stat.commentAddr == 0x1C00 &&
stat.commentAddr == offsetof(mDoMemCdRWm_HeaderData, comment) &&
CARDGetBannerFormat(&stat) == 1 &&
CARDGetIconAnim(&stat) == 0 &&
CARDGetIconFormat(&stat, 0) == 1 &&