mirror of https://github.com/zeldaret/oot.git
Improving padmgr volatile situation
This commit is contained in:
parent
cd3927a77f
commit
a9417cc4b2
|
@ -21,7 +21,7 @@ typedef struct {
|
|||
/* 0x0080 */ OSThread thread;
|
||||
/* 0x0230 */ Input inputs[4]; //0x18 each = 0x60 total
|
||||
/* 0x0290 */ PadState pads[4]; //0x6 each = 0x18 total
|
||||
/* 0x02A8 */ u8 valid_ctrlrs_mask;
|
||||
/* 0x02A8 */ volatile u8 valid_ctrlrs_mask;
|
||||
/* 0x02A9 */ u8 ncontrollers;
|
||||
/* 0x02AA */ u8 Key_switch[4]; //means the controller is connected
|
||||
/* 0x02AE */ u8 pak_type[4]; //1 if vibration pack, 2 if (maybe controller pack)?
|
||||
|
|
|
@ -39,13 +39,11 @@ void Locale_ResetRegion() {
|
|||
}
|
||||
|
||||
u32 func_80001F48() {
|
||||
PadMgr* padMgr = (PadMgr*)(u32)&gPadMgr; // cast required to match
|
||||
|
||||
if (gCurrentRegion == REGION_NATIVE) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (padMgr->valid_ctrlrs_mask & 4) {
|
||||
if (gPadMgr.valid_ctrlrs_mask & 4) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -53,13 +51,11 @@ u32 func_80001F48() {
|
|||
}
|
||||
|
||||
u32 func_80001F8C() {
|
||||
PadMgr* padMgr = (PadMgr*)(u32)&gPadMgr; // cast required to match
|
||||
|
||||
if (gCurrentRegion == REGION_NATIVE) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (padMgr->valid_ctrlrs_mask & 4) {
|
||||
if (gPadMgr.valid_ctrlrs_mask & 4) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -67,7 +67,7 @@ void padmgr_UnlockContData(PadMgr* padmgr) {
|
|||
#ifdef NON_MATCHING
|
||||
// regalloc and minor ordering differences
|
||||
void padmgr_RumbleControl(PadMgr* padmgr) {
|
||||
static u32 D_8012D284 = 0;
|
||||
static u32 errcnt = 0;
|
||||
static u32 D_8016A4F0;
|
||||
s32 temp;
|
||||
s32 tried_rumble_comm;
|
||||
|
@ -77,7 +77,7 @@ void padmgr_RumbleControl(PadMgr* padmgr) {
|
|||
s32 i;
|
||||
|
||||
temp = 1;
|
||||
ctrlrqueue = PadMgr_LockGetControllerQueue(padmgr);
|
||||
ctrlrqueue = padmgr_LockSerialMesgQ(padmgr);
|
||||
tried_rumble_comm = 0;
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
|
@ -156,7 +156,7 @@ void padmgr_RumbleControl(PadMgr* padmgr) {
|
|||
padmgr->pak_type[ctrlr] = 2;
|
||||
} else if (var4 == 4) {
|
||||
LogUtils_LogThreadId("../padmgr.c", 282);
|
||||
osSyncPrintf("++errcnt = %d\n", ++D_8012D284);
|
||||
osSyncPrintf("++errcnt = %d\n", ++errcnt);
|
||||
osSyncPrintf(VT_FGCOL(YELLOW));
|
||||
osSyncPrintf("padmgr: %dコン: %s\n", ctrlr + 1, "コントローラパックの通信エラー");
|
||||
osSyncPrintf(VT_RST);
|
||||
|
@ -165,10 +165,10 @@ void padmgr_RumbleControl(PadMgr* padmgr) {
|
|||
}
|
||||
|
||||
D_8016A4F0++;
|
||||
PadMgr_UnlockReleaseControllerQueue(padmgr, ctrlrqueue);
|
||||
padmgr_UnlockSerialMesgQ(padmgr, ctrlrqueue);
|
||||
}
|
||||
#else
|
||||
u32 D_8012D284 = 0;
|
||||
u32 D_8012D284 = 0; //errcnt
|
||||
u32 D_8016A4F0;
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/padmgr/padmgr_RumbleControl.s")
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue