mirror of https://github.com/zeldaret/tp.git
Various matches and improvements (#299)
* Various matches and improvements * Remove unnecessary comment
This commit is contained in:
parent
fa1f47f7a1
commit
4df6e8edea
|
@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes)
|
|||
.init | 97.972973% | 9280 | 9472
|
||||
.extab | 100.000000% | 96 | 96
|
||||
.extabindex | 100.000000% | 96 | 96
|
||||
.text | 24.679693% | 887616 | 3596544
|
||||
.text | 24.689257% | 887960 | 3596544
|
||||
.ctors | 100.000000% | 448 | 448
|
||||
.dtors | 100.000000% | 32 | 32
|
||||
.rodata | 100.000000% | 193856 | 193856
|
||||
.data | 100.000000% | 197632 | 197632
|
||||
.sdata | 100.000000% | 1408 | 1408
|
||||
.sdata2 | 100.000000% | 20832 | 20832
|
||||
Total | 32.620219% | 1311552 | 4020672
|
||||
Total | 32.628774% | 1311896 | 4020672
|
||||
|
||||
## Total
|
||||
|
||||
Section | Percentage | Decompiled (bytes) | Total (bytes)
|
||||
---|---|---|---
|
||||
main.dol | 32.620219% | 1311552 | 4020672
|
||||
main.dol | 32.628774% | 1311896 | 4020672
|
||||
RELs | 33.287306% | 3828148 | 11500324
|
||||
Total | 33.114499% | 5139700 | 15520996
|
||||
Total | 33.116715% | 5140044 | 15520996
|
||||
|
||||
## RELs
|
||||
|
||||
|
|
|
@ -1,48 +0,0 @@
|
|||
lbl_80268BB4:
|
||||
/* 80268BB4 C0 44 00 0C */ lfs f2, 0xc(r4)
|
||||
/* 80268BB8 C0 64 00 00 */ lfs f3, 0(r4)
|
||||
/* 80268BBC C0 23 00 00 */ lfs f1, 0(r3)
|
||||
/* 80268BC0 EC 03 10 2A */ fadds f0, f3, f2
|
||||
/* 80268BC4 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 80268BC8 40 81 00 0C */ ble lbl_80268BD4
|
||||
/* 80268BCC 38 60 00 00 */ li r3, 0
|
||||
/* 80268BD0 4E 80 00 20 */ blr
|
||||
lbl_80268BD4:
|
||||
/* 80268BD4 C0 23 00 0C */ lfs f1, 0xc(r3)
|
||||
/* 80268BD8 EC 03 10 28 */ fsubs f0, f3, f2
|
||||
/* 80268BDC FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 80268BE0 40 80 00 0C */ bge lbl_80268BEC
|
||||
/* 80268BE4 38 60 00 00 */ li r3, 0
|
||||
/* 80268BE8 4E 80 00 20 */ blr
|
||||
lbl_80268BEC:
|
||||
/* 80268BEC C0 64 00 08 */ lfs f3, 8(r4)
|
||||
/* 80268BF0 C0 23 00 08 */ lfs f1, 8(r3)
|
||||
/* 80268BF4 EC 03 10 2A */ fadds f0, f3, f2
|
||||
/* 80268BF8 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 80268BFC 40 81 00 0C */ ble lbl_80268C08
|
||||
/* 80268C00 38 60 00 00 */ li r3, 0
|
||||
/* 80268C04 4E 80 00 20 */ blr
|
||||
lbl_80268C08:
|
||||
/* 80268C08 C0 23 00 14 */ lfs f1, 0x14(r3)
|
||||
/* 80268C0C EC 03 10 28 */ fsubs f0, f3, f2
|
||||
/* 80268C10 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 80268C14 40 80 00 0C */ bge lbl_80268C20
|
||||
/* 80268C18 38 60 00 00 */ li r3, 0
|
||||
/* 80268C1C 4E 80 00 20 */ blr
|
||||
lbl_80268C20:
|
||||
/* 80268C20 C0 64 00 04 */ lfs f3, 4(r4)
|
||||
/* 80268C24 C0 23 00 04 */ lfs f1, 4(r3)
|
||||
/* 80268C28 EC 03 10 2A */ fadds f0, f3, f2
|
||||
/* 80268C2C FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 80268C30 40 81 00 0C */ ble lbl_80268C3C
|
||||
/* 80268C34 38 60 00 00 */ li r3, 0
|
||||
/* 80268C38 4E 80 00 20 */ blr
|
||||
lbl_80268C3C:
|
||||
/* 80268C3C C0 23 00 10 */ lfs f1, 0x10(r3)
|
||||
/* 80268C40 EC 03 10 28 */ fsubs f0, f3, f2
|
||||
/* 80268C44 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 80268C48 7C 00 00 26 */ mfcr r0
|
||||
/* 80268C4C 54 00 0F FE */ srwi r0, r0, 0x1f
|
||||
/* 80268C50 7C 00 00 34 */ cntlzw r0, r0
|
||||
/* 80268C54 54 03 D9 7E */ srwi r3, r0, 5
|
||||
/* 80268C58 4E 80 00 20 */ blr
|
|
@ -1,29 +0,0 @@
|
|||
lbl_802B6840:
|
||||
/* 802B6840 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 802B6844 90 6D 86 00 */ stw r3, __OSReport_disable-0x18(r13)
|
||||
/* 802B6848 38 00 FF FF */ li r0, -1
|
||||
/* 802B684C 90 03 00 04 */ stw r0, 4(r3)
|
||||
/* 802B6850 90 01 00 08 */ stw r0, 8(r1)
|
||||
/* 802B6854 90 03 00 00 */ stw r0, 0(r3)
|
||||
/* 802B6858 98 03 00 0C */ stb r0, 0xc(r3)
|
||||
/* 802B685C 38 00 00 00 */ li r0, 0
|
||||
/* 802B6860 98 03 00 0D */ stb r0, 0xd(r3)
|
||||
/* 802B6864 98 03 00 0E */ stb r0, 0xe(r3)
|
||||
/* 802B6868 98 03 00 0F */ stb r0, 0xf(r3)
|
||||
/* 802B686C 98 03 00 10 */ stb r0, 0x10(r3)
|
||||
/* 802B6870 98 03 00 11 */ stb r0, 0x11(r3)
|
||||
/* 802B6874 98 03 00 12 */ stb r0, 0x12(r3)
|
||||
/* 802B6878 98 03 00 13 */ stb r0, 0x13(r3)
|
||||
/* 802B687C 98 03 00 14 */ stb r0, 0x14(r3)
|
||||
/* 802B6880 98 03 00 15 */ stb r0, 0x15(r3)
|
||||
/* 802B6884 98 03 00 16 */ stb r0, 0x16(r3)
|
||||
/* 802B6888 98 03 00 18 */ stb r0, 0x18(r3)
|
||||
/* 802B688C 98 03 00 19 */ stb r0, 0x19(r3)
|
||||
/* 802B6890 98 03 00 1A */ stb r0, 0x1a(r3)
|
||||
/* 802B6894 98 03 00 1B */ stb r0, 0x1b(r3)
|
||||
/* 802B6898 98 03 00 1D */ stb r0, 0x1d(r3)
|
||||
/* 802B689C 98 03 00 1C */ stb r0, 0x1c(r3)
|
||||
/* 802B68A0 98 03 00 1E */ stb r0, 0x1e(r3)
|
||||
/* 802B68A4 98 03 00 17 */ stb r0, 0x17(r3)
|
||||
/* 802B68A8 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 802B68AC 4E 80 00 20 */ blr
|
|
@ -1,5 +0,0 @@
|
|||
lbl_802B9968:
|
||||
/* 802B9968 88 03 00 D0 */ lbz r0, 0xd0(r3)
|
||||
/* 802B996C 50 80 17 7A */ rlwimi r0, r4, 2, 0x1d, 0x1d
|
||||
/* 802B9970 98 03 00 D0 */ stb r0, 0xd0(r3)
|
||||
/* 802B9974 4E 80 00 20 */ blr
|
|
@ -1,14 +0,0 @@
|
|||
lbl_802B68B0:
|
||||
/* 802B68B0 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 802B68B4 7C 08 02 A6 */ mflr r0
|
||||
/* 802B68B8 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 802B68BC 98 83 00 1E */ stb r4, 0x1e(r3)
|
||||
/* 802B68C0 54 80 06 3F */ clrlwi. r0, r4, 0x18
|
||||
/* 802B68C4 40 82 00 0C */ bne lbl_802B68D0
|
||||
/* 802B68C8 80 6D 85 E0 */ lwz r3, __OSReport_disable-0x38(r13)
|
||||
/* 802B68CC 4B FF 3B 65 */ bl resetFilterAll__10Z2SoundMgrFv
|
||||
lbl_802B68D0:
|
||||
/* 802B68D0 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 802B68D4 7C 08 03 A6 */ mtlr r0
|
||||
/* 802B68D8 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 802B68DC 4E 80 00 20 */ blr
|
|
@ -90,6 +90,10 @@ public:
|
|||
field_0x44.move(1.0f, count);
|
||||
}
|
||||
|
||||
void bgmAllMute(u32 count, f32 val) {
|
||||
mAllBgmMaster.mTransition.set(val, mAllBgmMaster.mIntensity, count);
|
||||
}
|
||||
|
||||
private:
|
||||
/* 0x00 */ JAISoundHandle mMainBgmHandle;
|
||||
/* 0x04 */ JAISoundHandle mSubBgmHandle;
|
||||
|
|
|
@ -314,35 +314,31 @@ bool cM3d_Cross_AabCyl(const cM3dGAab* pAab, const cM3dGCyl* pCyl) {
|
|||
|
||||
/* 80268BB4-80268C5C 2634F4 00A8+00 0/0 2/2 0/0 .text cM3d_Cross_AabSph__FPC8cM3dGAabPC8cM3dGSph
|
||||
*/
|
||||
#ifdef NONMATCHING
|
||||
bool cM3d_Cross_AabSph(const cM3dGAab* pAab, const cM3dGSph* pSph) {
|
||||
f32 radius = pSph->GetR();
|
||||
if (pAab->GetMinX() > pSph->GetC().x + radius) { // addition registers are flipped
|
||||
f32 cx = pSph->GetC().x;
|
||||
if (pAab->GetMinX() > cx + radius) {
|
||||
return false;
|
||||
} else if (pAab->GetMaxX() < pSph->GetC().x - radius) {
|
||||
return false;
|
||||
} else if (pAab->GetMinZ() > pSph->GetC().z + radius) {
|
||||
return false;
|
||||
} else if (pAab->GetMaxZ() < pSph->GetC().z - radius) {
|
||||
return false;
|
||||
} else if (pAab->GetMinY() > pSph->GetC().y + radius) {
|
||||
return false;
|
||||
} else if (pAab->GetMaxY() < pSph->GetC().y - radius) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
else if (pAab->GetMaxX() < cx - radius) {
|
||||
return false;
|
||||
}
|
||||
|
||||
f32 cz = pSph->GetC().z;
|
||||
if (pAab->GetMinZ() > cz + radius) {
|
||||
return false;
|
||||
} else if (pAab->GetMaxZ() < cz - radius) {
|
||||
return false;
|
||||
}
|
||||
|
||||
f32 cy = pSph->GetC().y;
|
||||
if (pAab->GetMinY() > cy + radius) {
|
||||
return false;
|
||||
} else if (pAab->GetMaxY() < cy - radius) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm bool cM3d_Cross_AabSph(cM3dGAab const* param_0, cM3dGSph const* param_1) {
|
||||
nofralloc
|
||||
#include "asm/SSystem/SComponent/c_m3d/cM3d_Cross_AabSph__FPC8cM3dGAabPC8cM3dGSph.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80268C5C-80268ED4 26359C 0278+00 3/3 0/0 0/0 .text
|
||||
* cM3d_Check_LinLin__FPC8cM3dGLinPC8cM3dGLinPfPf */
|
||||
|
|
|
@ -6,6 +6,8 @@
|
|||
#include "Z2AudioLib/Z2SceneMgr.h"
|
||||
#include "Z2AudioLib/Z2SoundMgr.h"
|
||||
#include "Z2AudioLib/Z2SeqMgr.h"
|
||||
#include "Z2AudioLib/Z2SeMgr.h"
|
||||
#include "Z2AudioLib/Z2StatusMgr.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
|
@ -29,25 +31,12 @@ struct dSv_event_c {
|
|||
/* 800349BC */ void isEventBit(u16) const;
|
||||
};
|
||||
|
||||
struct Z2StatusMgr {
|
||||
/* 802B617C */ void menuOut();
|
||||
/* 802B61E8 */ void setDemoName(char*);
|
||||
/* 802B6734 */ void checkDayTime();
|
||||
};
|
||||
|
||||
struct Z2SoundObjMgr {
|
||||
/* 802BF980 */ void setForceBattleArea(bool, u16, u16, u16);
|
||||
/* 802BFFEC */ void setGhostEnemyState(u8);
|
||||
/* 802C013C */ void deleteEnemyAll();
|
||||
};
|
||||
|
||||
struct Z2SeMgr {
|
||||
/* 802AB80C */ void resetModY();
|
||||
/* 802AD94C */ void seStopAll(u32);
|
||||
/* 802AD9F4 */ void seMoveVolumeAll(f32, u32);
|
||||
/* 802B9AC4 */ void resetCrowdSize();
|
||||
};
|
||||
|
||||
struct Z2FxLineMgr {
|
||||
/* 802BAEB8 */ void setSceneFx(s32);
|
||||
};
|
||||
|
@ -172,12 +161,10 @@ extern "C" extern u8 __OSReport_disable;
|
|||
//
|
||||
|
||||
/* 802B6840-802B68B0 2B1180 0070+00 0/0 1/1 0/0 .text __ct__10Z2SceneMgrFv */
|
||||
// Missing 2 instructions (beginning and end)
|
||||
#ifdef NONMATCHING
|
||||
Z2SceneMgr::Z2SceneMgr(void) {
|
||||
data_80450B80 = this;
|
||||
Z2SceneMgr::Z2SceneMgr(void) : JASGlobalInstance<Z2SceneMgr>(this) {
|
||||
volatile int timerx;
|
||||
sceneNum = -1;
|
||||
timer = -1;
|
||||
timerx = -1;
|
||||
BGM_ID = -1;
|
||||
roomNum = -1;
|
||||
SeWave_1 = 0;
|
||||
|
@ -198,28 +185,15 @@ Z2SceneMgr::Z2SceneMgr(void) {
|
|||
inGame = 0;
|
||||
inDarkness = false;
|
||||
field_0x17 = 0;
|
||||
return;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm Z2SceneMgr::Z2SceneMgr() {
|
||||
nofralloc
|
||||
#include "asm/Z2AudioLib/Z2SceneMgr/__ct__10Z2SceneMgrFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802B68B0-802B68E0 2B11F0 0030+00 0/0 1/1 0/0 .text setInDarkness__10Z2SceneMgrFb */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void Z2SceneMgr::setInDarkness(bool param_0) {
|
||||
nofralloc
|
||||
#include "asm/Z2AudioLib/Z2SceneMgr/setInDarkness__10Z2SceneMgrFb.s"
|
||||
void Z2SceneMgr::setInDarkness(bool param_0) {
|
||||
inDarkness = param_0;
|
||||
if (!param_0) {
|
||||
Z2SoundMgr::getInstance()->resetFilterAll();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80455A38-80455A3C 004038 0004+00 8/8 0/0 0/0 .sdata2 @3511 */
|
||||
|
@ -278,6 +252,16 @@ SECTION_SDATA2 static f32 lit_3529[1 + 1 /* padding */] = {
|
|||
SECTION_SDATA2 static f64 lit_3531 = 4503599627370496.0 /* cast u32 to float */;
|
||||
|
||||
/* 802B697C-802B6A18 2B12BC 009C+00 0/0 1/1 0/0 .text setFadeOutStart__10Z2SceneMgrFUc */
|
||||
#ifdef NONMATCHING
|
||||
void Z2SceneMgr::setFadeOutStart(u8 param_0) {
|
||||
setSceneExist(false);
|
||||
Z2SeqMgr::getInstance()->bgmAllMute(33, 3.0f / 10.0f);
|
||||
Z2SeMgr::getInstance()->seMoveVolumeAll(FLOAT_LABEL(lit_3511), 33);
|
||||
Z2SeqMgr::getInstance()->setBattleBgmOff(true);
|
||||
field_0x17 = 40;
|
||||
timer = -1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
@ -286,8 +270,31 @@ asm void Z2SceneMgr::setFadeOutStart(u8 param_0) {
|
|||
#include "asm/Z2AudioLib/Z2SceneMgr/setFadeOutStart__10Z2SceneMgrFUc.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802B6A18-802B6AF8 2B1358 00E0+00 0/0 1/1 0/0 .text setFadeInStart__10Z2SceneMgrFUc */
|
||||
#ifdef NONMATCHING
|
||||
void Z2SceneMgr::setFadeInStart(u8 param_0) {
|
||||
if (SeWave_3 == 0x7f) {
|
||||
Z2SeMgr::getInstance()->seMoveVolumeAll(FLOAT_LABEL(lit_3511), 0);
|
||||
} else {
|
||||
Z2SeMgr::getInstance()->seMoveVolumeAll(FLOAT_LABEL(lit_3512), 33);
|
||||
|
||||
if (SeWave_3 == 0x85) {
|
||||
JAISeMgr* seMgr = Z2SoundMgr::getInstance()->getSeMgr();
|
||||
seMgr->getCategory(9)->getParams()->moveVolume(FLOAT_LABEL(lit_3511), 0);
|
||||
}
|
||||
}
|
||||
Z2SeqMgr::getInstance()->i_setTwilightGateVol(FLOAT_LABEL(lit_3512));
|
||||
Z2StatusMgr::getInstance()->menuOut();
|
||||
|
||||
if (field_0x1a == 0) {
|
||||
Z2SeqMgr::getInstance()->bgmAllMute(33, 3.0f / 10.0f);
|
||||
}
|
||||
|
||||
inGame = true;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
@ -296,6 +303,7 @@ asm void Z2SceneMgr::setFadeInStart(u8 param_0) {
|
|||
#include "asm/Z2AudioLib/Z2SceneMgr/setFadeInStart__10Z2SceneMgrFUc.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8039BFA8-8039BFA8 028608 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
@ -712,21 +720,9 @@ extern "C" void __ct__10JAISoundIDFRC10JAISoundID(JAISoundID* this_, JAISoundID
|
|||
}
|
||||
|
||||
/* 802B9968-802B9978 2B42A8 0010+00 1/1 0/0 0/0 .text setFieldBgmPlay__8Z2SeqMgrFb */
|
||||
// 1 Instruction off
|
||||
#ifdef NONMATCHING
|
||||
void Z2SeqMgr::setFieldBgmPlay(bool param_1) {
|
||||
mFlags = (param_1 & 1U) << 2 | mFlags & 0xfb;
|
||||
mFlags = (param_1 & 1U) << 2 | (mFlags & ~4);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void Z2SeqMgr::setFieldBgmPlay(bool param_0) {
|
||||
nofralloc
|
||||
#include "asm/Z2AudioLib/Z2SceneMgr/setFieldBgmPlay__8Z2SeqMgrFb.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802B9978-802B9988 2B42B8 0010+00 1/1 0/0 0/0 .text isActive__12JAIStreamMgrCFv */
|
||||
#pragma push
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue