mirror of
https://github.com/zeldaret/tww.git
synced 2026-06-29 02:40:55 -04:00
m_Do_MemCard OK
This commit is contained in:
+1
-1
@@ -264,7 +264,7 @@ config.libs = [
|
||||
Object(Matching, "m_Do/m_Do_Reset.cpp"),
|
||||
Object(Matching, "m_Do/m_Do_dvd_thread.cpp"),
|
||||
Object(Matching, "m_Do/m_Do_DVDError.cpp"),
|
||||
Object(NonMatching, "m_Do/m_Do_MemCard.cpp"),
|
||||
Object(Matching, "m_Do/m_Do_MemCard.cpp"),
|
||||
Object(NonMatching, "m_Do/m_Do_MemCardRWmng.cpp"),
|
||||
Object(Matching, "m_Do/m_Do_gba_com.cpp"),
|
||||
Object(Matching, "m_Do/m_Do_machine_exception.cpp"),
|
||||
|
||||
@@ -13,6 +13,9 @@ public:
|
||||
CARD_FORMAT,
|
||||
CARD_ATTACH,
|
||||
CARD_DETACH,
|
||||
#if VERSION == VERSION_PAL
|
||||
CARD_RESTORE2,
|
||||
#endif
|
||||
};
|
||||
|
||||
mDoMemCd_Ctrl_c();
|
||||
@@ -20,10 +23,13 @@ public:
|
||||
void main();
|
||||
void update();
|
||||
void load();
|
||||
void load2();
|
||||
void restore();
|
||||
s32 LoadSync(void*, u32, u32);
|
||||
#if VERSION == VERSION_PAL
|
||||
void load2();
|
||||
void restore2();
|
||||
s32 LoadSync2();
|
||||
#endif
|
||||
void save(void*, u32, u32);
|
||||
void store();
|
||||
s32 SaveSync();
|
||||
|
||||
@@ -8,6 +8,9 @@ struct mDoMemCdRWm_HeaderData;
|
||||
|
||||
s32 mDoMemCdRWm_Store(CARDFileInfo*, void*, u32);
|
||||
s32 mDoMemCdRWm_Restore(CARDFileInfo*, void*, u32);
|
||||
#if VERSION == VERSION_PAL
|
||||
s32 mDoMemCdRWm_Restore2(CARDFileInfo*);
|
||||
#endif
|
||||
void mDoMemCdRWm_BuildHeader(mDoMemCdRWm_HeaderData*);
|
||||
void mDoMemCdRWm_SetCardStat(CARDFileInfo*);
|
||||
void mDoMemCdRWm_CheckCardStat(CARDFileInfo*);
|
||||
|
||||
@@ -62,8 +62,8 @@ void mDoMemCd_Ctrl_c::main() {
|
||||
detach();
|
||||
break;
|
||||
#if VERSION == VERSION_PAL
|
||||
case 6:
|
||||
// restore2();
|
||||
case CARD_RESTORE2:
|
||||
restore2();
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
@@ -211,6 +211,48 @@ s32 mDoMemCd_Ctrl_c::SaveSync() {
|
||||
return ret;
|
||||
}
|
||||
|
||||
#if VERSION == VERSION_PAL
|
||||
void mDoMemCd_Ctrl_c::restore2() {
|
||||
if (field_0x1660 != 1) {
|
||||
return;
|
||||
}
|
||||
CARDFileInfo cardInfo;
|
||||
s32 ret = CARDOpen(mCardSlot, "gczelda", &cardInfo);
|
||||
if (ret == CARD_ERROR_READY) {
|
||||
if (!mDoMemCdRWm_Restore2(&cardInfo)) {
|
||||
field_0x1660 = 3;
|
||||
} else {
|
||||
setCardState(ret);
|
||||
}
|
||||
CARDClose(&cardInfo);
|
||||
} else {
|
||||
setCardState(ret);
|
||||
}
|
||||
}
|
||||
|
||||
void mDoMemCd_Ctrl_c::load2() {
|
||||
if (OSTryLockMutex(&mMutex)) {
|
||||
mCommand = CARD_RESTORE2;
|
||||
OSUnlockMutex(&mMutex);
|
||||
OSSignalCond(&mCond);
|
||||
}
|
||||
}
|
||||
|
||||
s32 mDoMemCd_Ctrl_c::LoadSync2() {
|
||||
s32 ret = 0;
|
||||
if (OSTryLockMutex(&mMutex)) {
|
||||
if (field_0x1660 == 3) {
|
||||
field_0x1660 = 1;
|
||||
ret = 1;
|
||||
} else {
|
||||
ret = 2;
|
||||
}
|
||||
OSUnlockMutex(&mMutex);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 8001939C-80019480 .text getStatus__15mDoMemCd_Ctrl_cFUl */
|
||||
u32 mDoMemCd_Ctrl_c::getStatus(u32) {
|
||||
if (OSTryLockMutex(&mMutex)) {
|
||||
|
||||
@@ -16,6 +16,12 @@ s32 mDoMemCdRWm_Restore(CARDFileInfo*, void*, u32) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
#if VERSION == VERSION_PAL
|
||||
s32 mDoMemCdRWm_Restore2(CARDFileInfo*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 80019F4C-8001A0A8 .text mDoMemCdRWm_BuildHeader__FP22mDoMemCdRWm_HeaderData */
|
||||
void mDoMemCdRWm_BuildHeader(mDoMemCdRWm_HeaderData*) {
|
||||
/* Nonmatching */
|
||||
|
||||
Reference in New Issue
Block a user