diff options
| author | hatal175 <hatal175@users.noreply.github.com> | 2023-02-23 17:41:05 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-23 08:41:05 -0700 |
| commit | 4df6e8edea459eea6b13a0aa5c348d457d15edd5 (patch) | |
| tree | 2b1a9fe520310953c358dfdf92e1c8475ec8bf62 /src | |
| parent | fa1f47f7a134cdc203207ec0b273ca7d32542d52 (diff) | |
Various matches and improvements (#299)
* Various matches and improvements
* Remove unnecessary comment
Diffstat (limited to 'src')
| -rw-r--r-- | src/m_Do/m_Do_MemCardRWmng.cpp | 80 | ||||
| -rw-r--r-- | src/m_Do/m_Do_machine.cpp | 34 |
2 files changed, 58 insertions, 56 deletions
diff --git a/src/m_Do/m_Do_MemCardRWmng.cpp b/src/m_Do/m_Do_MemCardRWmng.cpp index 4d0f07b23d..532aba4740 100644 --- a/src/m_Do/m_Do_MemCardRWmng.cpp +++ b/src/m_Do/m_Do_MemCardRWmng.cpp @@ -49,40 +49,60 @@ s32 mDoMemCdRWm_Store(CARDFileInfo* file, void* data, u32 length) { mDoMemCdRWm_BuildHeader((mDoMemCdRWm_HeaderData*)sTmpBuf); s32 card_state = CARDWrite(file, sTmpBuf, sizeof(sTmpBuf), 0); - if (card_state != CARD_ERROR_READY) { - if (!mDoMemCdRWm_CheckCardStat(file)) { - memset(sTmpBuf, 0, sizeof(sTmpBuf)); - - card_state = CARDWrite(file, sTmpBuf, sizeof(sTmpBuf) / 2, 0x4000); - if (card_state == CARD_ERROR_READY) { - return; - } - - card_state = CARDWrite(file, sTmpBuf, sizeof(sTmpBuf) / 2, 0x6000); - if (card_state == CARD_ERROR_READY) { - return; - } - } + if (card_state != CARD_RESULT_READY) { + return card_state; + } + if (!mDoMemCdRWm_CheckCardStat(file)) { memset(sTmpBuf, 0, sizeof(sTmpBuf)); - *(int*)(sTmpBuf + 4) = 6; - memcpy(sTmpBuf + 8, data, length); - *(int*)(sTmpBuf) = 0; - u32 checksum = mDoMemCdRWm_CalcCheckSum(sTmpBuf, 0x1FFC); - *(u32*)(sTmpBuf + 0x1FFC) = checksum; - - if (CARDWrite(file, sTmpBuf, sizeof(sTmpBuf) / 2, 0x4000) == CARD_ERROR_READY && - CARDRead(file, sTmpBuf, sizeof(sTmpBuf) / 2, 0x4000) == CARD_ERROR_READY) { - if (checksum == mDoMemCdRWm_CalcCheckSum(sTmpBuf, 0x1FFC)) { - if (CARDWrite(file, sTmpBuf, sizeof(sTmpBuf) / 2, 0x6000) == CARD_ERROR_READY && - CARDRead(file, sTmpBuf, sizeof(sTmpBuf) / 2, 0x6000) == CARD_ERROR_READY) { - if (checksum == mDoMemCdRWm_CalcCheckSum(sTmpBuf, 0x1FFC)) { - mDoMemCdRWm_SetCardStat(file); - } - } - } + + card_state = CARDWrite(file, sTmpBuf, sizeof(sTmpBuf) / 2, 0x4000); + if (card_state != CARD_RESULT_READY) { + return card_state; + } + + card_state = CARDWrite(file, sTmpBuf, sizeof(sTmpBuf) / 2, 0x6000); + if (card_state != CARD_RESULT_READY) { + return card_state; } } + + memset(sTmpBuf, 0, sizeof(sTmpBuf)); + *(int*)(sTmpBuf + 4) = 6; + memcpy(sTmpBuf + 8, data, length); + *(int*)(sTmpBuf) = 0; + u32 checksum = mDoMemCdRWm_CalcCheckSum(sTmpBuf, 0x1FFC); + *(u32*)(sTmpBuf + 0x1FFC) = checksum; + + card_state = CARDWrite(file, sTmpBuf, sizeof(sTmpBuf) / 2, 0x4000); + if (card_state != CARD_RESULT_READY) { + return card_state; + } + + card_state = CARDRead(file, sTmpBuf, sizeof(sTmpBuf) / 2, 0x4000); + if (card_state != CARD_RESULT_READY) { + return card_state; + } + + if (checksum != mDoMemCdRWm_CalcCheckSum(sTmpBuf, 0x1FFC)) { + return card_state; + } + + card_state = CARDWrite(file, sTmpBuf, sizeof(sTmpBuf) / 2, 0x6000); + if (card_state != CARD_RESULT_READY) { + return card_state; + } + + card_state = CARDRead(file, sTmpBuf, sizeof(sTmpBuf) / 2, 0x6000); + if (card_state != CARD_RESULT_READY) { + return card_state; + } + + if (checksum != mDoMemCdRWm_CalcCheckSum(sTmpBuf, 0x1FFC)) { + return card_state; + } + mDoMemCdRWm_SetCardStat(file); + return card_state; } #else #pragma push diff --git a/src/m_Do/m_Do_machine.cpp b/src/m_Do/m_Do_machine.cpp index bee4c70dd2..76d3692098 100644 --- a/src/m_Do/m_Do_machine.cpp +++ b/src/m_Do/m_Do_machine.cpp @@ -406,6 +406,7 @@ SECTION_SDATA2 static f32 lit_3941 = 6.0f; /* 8000B95C-8000BCF4 00629C 0398+00 1/1 0/0 0/0 .text fault_callback_scroll__FUsP9OSContextUlUl */ #ifdef NONMATCHING +// Everything matches but there are issues with dead section static void fault_callback_scroll(u16, OSContext* p_context, u32, u32) { JUTException* manager = JUTException::getManager(); JUTConsole* exConsole = manager->getConsole(); @@ -469,34 +470,12 @@ static void fault_callback_scroll(u16, OSContext* p_context, u32, u32) { } if (btnHold == CButton::DPAD_UP) { - int scrollAmnt; - if (holdUpCount < 3) { - scrollAmnt = -1; - } else if (holdUpCount < 5) { - scrollAmnt = -2; - } else { - scrollAmnt = -8; - if (holdUpCount < 7) { - scrollAmnt = -4; - } - } - exConsole->scroll(scrollAmnt); + exConsole->scroll(holdUpCount < 3 ? -1 : (holdUpCount < 5 ? -2 : (holdUpCount < 7 ? -4 : -8))); waitRetrace = true; holdDownCount = 0; holdUpCount++; } else if (btnHold == CButton::DPAD_DOWN) { - int scrollAmnt; - if (holdDownCount < 3) { - scrollAmnt = 1; - } else if (holdDownCount < 5) { - scrollAmnt = 2; - } else { - scrollAmnt = 8; - if (holdDownCount < 7) { - scrollAmnt = 4; - } - } - exConsole->scroll(scrollAmnt); + exConsole->scroll(holdDownCount < 3 ? 1 : (holdDownCount < 5 ? 2 : (holdDownCount < 7 ? 4 : 8))); waitRetrace = true; holdUpCount = 0; holdDownCount++; @@ -537,8 +516,11 @@ static void fault_callback_scroll(u16, OSContext* p_context, u32, u32) { } JUTException::waitTime(3000); - } while ((exConsole->getUsedLine() - exConsole->getHeight()) + 1 <= - exConsole->getLineOffset()); + if ((exConsole->getUsedLine() - exConsole->getHeight()) + 1 <= + exConsole->getLineOffset()) { + break; + } + } while (true); } while (true); } #else |
