diff --git a/include/padmgr.h b/include/padmgr.h index 737feef902..a4c7d5ae7a 100644 --- a/include/padmgr.h +++ b/include/padmgr.h @@ -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)? diff --git a/src/boot/z_locale.c b/src/boot/z_locale.c index 749ef5c586..0b5eaf6773 100644 --- a/src/boot/z_locale.c +++ b/src/boot/z_locale.c @@ -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; } diff --git a/src/code/padmgr.c b/src/code/padmgr.c index 6ea946989d..0009355321 100644 --- a/src/code/padmgr.c +++ b/src/code/padmgr.c @@ -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