mirror of
https://github.com/zeldaret/tp
synced 2026-06-07 12:07:34 -04:00
Various matches and improvements (#299)
* Various matches and improvements * Remove unnecessary comment
This commit is contained in:
@@ -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));
|
||||
if (card_state != CARD_RESULT_READY) {
|
||||
return card_state;
|
||||
}
|
||||
|
||||
card_state = CARDWrite(file, sTmpBuf, sizeof(sTmpBuf) / 2, 0x4000);
|
||||
if (card_state == CARD_ERROR_READY) {
|
||||
return;
|
||||
}
|
||||
if (!mDoMemCdRWm_CheckCardStat(file)) {
|
||||
memset(sTmpBuf, 0, sizeof(sTmpBuf));
|
||||
|
||||
card_state = CARDWrite(file, sTmpBuf, sizeof(sTmpBuf) / 2, 0x6000);
|
||||
if (card_state == CARD_ERROR_READY) {
|
||||
return;
|
||||
}
|
||||
card_state = CARDWrite(file, sTmpBuf, sizeof(sTmpBuf) / 2, 0x4000);
|
||||
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;
|
||||
|
||||
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, 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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user