diff options
author | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2020-01-07 12:09:18 +0800 |
---|---|---|
committer | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2020-01-09 12:38:57 +0800 |
commit | a7ec7175f1eadf79ab6cb4efbde1b9694535806f (patch) | |
tree | 39bf112ffb6729a6d14da71f1601f288f055a69a | |
parent | 1fda78fd0a1b0235ec0ee2db85e5ebbfa9fc50b5 (diff) |
resolve a fake match
-rw-r--r-- | include/librfu.h | 2 | ||||
-rw-r--r-- | src/librfu_rfu.c | 13 | ||||
-rw-r--r-- | src/librfu_stwi.c | 2 |
3 files changed, 7 insertions, 10 deletions
diff --git a/include/librfu.h b/include/librfu.h index 8bc1e636d..9440ffd7b 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -347,7 +347,7 @@ void STWI_set_Callback_M(void *callbackM); void STWI_set_Callback_S(void (*callbackS)(u16)); void STWI_init_timer(IntrFunc *interrupt, s32 timerSelect); void AgbRFU_SoftReset(void); -void STWI_set_CallbackUnk(void (*func)(void)); +void STWI_set_Callback_ID(void (*func)(void)); u16 STWI_read_status(u8 index); u16 STWI_poll_CommandEnd(void); void STWI_send_DataRxREQ(void); diff --git a/src/librfu_rfu.c b/src/librfu_rfu.c index 140aa353e..6a4fee158 100644 --- a/src/librfu_rfu.c +++ b/src/librfu_rfu.c @@ -1455,17 +1455,14 @@ s32 rfu_changeSendTarget(u8 r3, u8 r7, u8 r6) s32 rfu_NI_stopReceivingData(u8 who) { -#ifndef NONMATCHING // r4, r5 register swap - register struct NIComm *r5 asm("r5"); -#else struct NIComm *r5; -#endif u16 r4, r1; if (who > 3) return 0x400; r5 = &gRfuSlotStatusNI[who]->sub.recv; r4 = REG_IME; + ++r4; --r4; // fix r4, r5 register swap REG_IME = 0; if (gRfuSlotStatusNI[who]->sub.recv.state & 0x8000) { @@ -2227,7 +2224,7 @@ static s32 sub_81E349C(u8 r5) return -1; r8 = REG_IE; gRfuState->state = 10; - STWI_set_CallbackUnk(sub_81E36B8); + STWI_set_Callback_ID(sub_81E36B8); sub_81E3550(); r4 = ®_TMCNT_L(gRfuState->timerSelect); r5 *= 8; @@ -2248,7 +2245,7 @@ static s32 sub_81E349C(u8 r5) REG_IE = r8; REG_IME = 1; gRfuState->state = 0; - STWI_set_CallbackUnk(NULL); + STWI_set_Callback_ID(NULL); return r6; } @@ -2322,8 +2319,8 @@ static void sub_81E36B8(void) u32 r5; u16 r0; #ifndef NONMATCHING - register u32 r1 asm("a2"); - register u16 r0_ asm("a1"); + register u32 r1 asm("r1"); + register u16 r0_ asm("r0"); #else u32 r1; u16 r0_; diff --git a/src/librfu_stwi.c b/src/librfu_stwi.c index c6c3441ec..8e27c04d8 100644 --- a/src/librfu_stwi.c +++ b/src/librfu_stwi.c @@ -128,7 +128,7 @@ void STWI_set_Callback_S(void (*callbackS)(u16)) gRfuState->callbackS = callbackS; } -void STWI_set_CallbackUnk(void (*func)(void)) +void STWI_set_Callback_ID(void (*func)(void)) // name in SDK, but is actually setting a function pointer { gRfuState->unk_20 = func; } |