summaryrefslogtreecommitdiff
path: root/src/librfu_sio32id.c
diff options
context:
space:
mode:
authorluckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com>2021-05-23 10:51:26 -0400
committerluckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com>2021-05-23 10:51:26 -0400
commitc723d980e772f7e7ab82dbcb7ad07132c09ab5b4 (patch)
tree0bed002b2990b9e837220618a321f3b6517a1099 /src/librfu_sio32id.c
parentc50a21fba07db80ac44c6f09fd202ba4b2e2c7d3 (diff)
parentffbbc88801de3fc56d0bf5f0af1418ca7cfcfa4f (diff)
Merge branch 'master' of https://github.com/pret/pokeemerald
Diffstat (limited to 'src/librfu_sio32id.c')
-rw-r--r--src/librfu_sio32id.c29
1 files changed, 12 insertions, 17 deletions
diff --git a/src/librfu_sio32id.c b/src/librfu_sio32id.c
index b6623540f..1c02840e8 100644
--- a/src/librfu_sio32id.c
+++ b/src/librfu_sio32id.c
@@ -123,34 +123,29 @@ static void Sio32IDIntr(void)
{
u32 regSIODATA32;
u16 delay;
-#ifndef NONMATCHING
- register u32 rfuSIO32IdUnk0_times_16 asm("r1");
- register u16 negRfuSIO32IdUnk6 asm("r0");
-#else
u32 rfuSIO32IdUnk0_times_16;
- u16 negRfuSIO32IdUnk6;
-#endif
regSIODATA32 = REG_SIODATA32;
if (gRfuSIO32Id.MS_mode != AGB_CLK_MASTER)
REG_SIOCNT |= SIO_ENABLE;
- rfuSIO32IdUnk0_times_16 = 16 * gRfuSIO32Id.MS_mode; // to handle side effect of inline asm
- rfuSIO32IdUnk0_times_16 = (regSIODATA32 << rfuSIO32IdUnk0_times_16) >> 16;
+ rfuSIO32IdUnk0_times_16 = (regSIODATA32 << (16 * gRfuSIO32Id.MS_mode)) >> 16;
regSIODATA32 = (regSIODATA32 << 16 * (1 - gRfuSIO32Id.MS_mode)) >> 16;
if (gRfuSIO32Id.lastId == 0)
{
- if (rfuSIO32IdUnk0_times_16 == gRfuSIO32Id.recv_id)
+ u16 backup = rfuSIO32IdUnk0_times_16;
+ if (backup == gRfuSIO32Id.recv_id)
{
- if (gRfuSIO32Id.count > 3)
+ if (gRfuSIO32Id.count < 4)
{
- gRfuSIO32Id.lastId = regSIODATA32;
- }
- else if (rfuSIO32IdUnk0_times_16 == (u16)~gRfuSIO32Id.send_id)
- {
- negRfuSIO32IdUnk6 = ~gRfuSIO32Id.recv_id;
- if (regSIODATA32 == negRfuSIO32IdUnk6)
- ++gRfuSIO32Id.count;
+ backup = (u16)~gRfuSIO32Id.send_id;
+ if (gRfuSIO32Id.recv_id == backup)
+ {
+ if (regSIODATA32 == (u16)~gRfuSIO32Id.recv_id)
+ ++gRfuSIO32Id.count;
+ }
}
+ else
+ gRfuSIO32Id.lastId = regSIODATA32;
}
else
{