summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2023-02-23 17:41:05 +0200
committerGitHub <noreply@github.com>2023-02-23 08:41:05 -0700
commit4df6e8edea459eea6b13a0aa5c348d457d15edd5 (patch)
tree2b1a9fe520310953c358dfdf92e1c8475ec8bf62 /src
parentfa1f47f7a134cdc203207ec0b273ca7d32542d52 (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.cpp80
-rw-r--r--src/m_Do/m_Do_machine.cpp34
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