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