diff options
-rw-r--r-- | asm/link_rfu_2.s | 8 | ||||
-rw-r--r-- | include/librfu.h | 2 | ||||
-rw-r--r-- | include/link_rfu.h | 4 | ||||
-rw-r--r-- | src/librfu_rfu.c | 2 | ||||
-rw-r--r-- | src/link_rfu.c | 55 |
5 files changed, 35 insertions, 36 deletions
diff --git a/asm/link_rfu_2.s b/asm/link_rfu_2.s index 10d4fd03d..267b80c7a 100644 --- a/asm/link_rfu_2.s +++ b/asm/link_rfu_2.s @@ -905,7 +905,7 @@ _080F8D2A: bl rfu_UNI_clearRecvNewDataFlag _080F8D84: movs r0, 0x1 - bl rfu_REQ_sendData_wrapper + bl LinkRfu_REQ_SendData_HandleParentRelationship pop {r4} pop {r0} bx r0 @@ -1410,7 +1410,7 @@ sub_80F911C: @ 80F911C bl rfu_REQ_recvData bl rfu_waitREQComplete movs r0, 0 - bl rfu_REQ_sendData_wrapper + bl LinkRfu_REQ_SendData_HandleParentRelationship b _080F91F6 .align 2, 0 _080F9138: .4byte gUnknown_3005450 @@ -1484,7 +1484,7 @@ _080F91CC: ldrb r0, [r0] bl rfu_UNI_readySendData movs r0, 0x1 - bl rfu_REQ_sendData_wrapper + bl LinkRfu_REQ_SendData_HandleParentRelationship b _080F91F0 .align 2, 0 _080F91E4: .4byte gUnknown_3005450 @@ -5249,7 +5249,7 @@ rfu_REQ_recvData_then_sendData: @ 80FAE74 bl rfu_REQ_recvData bl rfu_waitREQComplete movs r0, 0 - bl rfu_REQ_sendData_wrapper + bl LinkRfu_REQ_SendData_HandleParentRelationship _080FAE8C: pop {r0} bx r0 diff --git a/include/librfu.h b/include/librfu.h index cf409ca69..1b8e6573f 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -616,7 +616,7 @@ u16 rfu_changeSendTarget(u8 connType, u8 slotStatusIndex, u8 bmNewTgtSlot); // Functions for sending/receiving data to RFU // Data transmission -void rfu_REQ_sendData(u8 clockChangeFlag); +void rfu_REQ_sendData(bool8 clockChangeFlag); // Used only by parent device. Resend previous sent data (packet) void rfu_REQ_PARENT_resumeRetransmitAndChange(void); // Read receive data diff --git a/include/link_rfu.h b/include/link_rfu.h index e3b2243b9..8ee7674cf 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -55,11 +55,11 @@ struct UnkRfuStruct_1 /* 0x020 */ const u16 *unk_20; /* 0x024 */ u8 unk_24; /* 0x026 */ u16 unk_26; - /* 0x028 */ u16 unk_28[4]; + /* 0x028 */ u16 unk_28[RFU_CHILD_MAX]; /* 0x030 */ u8 unk_30; // aligned /* 0x032 */ u16 unk_32; - /* 0x034 */ u16 unk_34[4]; + /* 0x034 */ u16 unk_34[RFU_CHILD_MAX]; /* 0x03c */ const struct UnkLinkRfuStruct_02022B2C *unk_3c; /* 0x040 */ void (*unk_40)(u8, u8); /* 0x044 */ void (*unk_44)(u16); diff --git a/src/librfu_rfu.c b/src/librfu_rfu.c index 96de99c2a..e178c91e4 100644 --- a/src/librfu_rfu.c +++ b/src/librfu_rfu.c @@ -1533,7 +1533,7 @@ void rfu_UNI_clearRecvNewDataFlag(u8 slotStatusIndex) gRfuSlotStatusUNI[slotStatusIndex]->recv.newDataFlag = 0; } -void rfu_REQ_sendData(u8 clockChangeFlag) +void rfu_REQ_sendData(bool8 clockChangeFlag) { if (gRfuLinkStatus->parentChild != MODE_NEUTRAL) { diff --git a/src/link_rfu.c b/src/link_rfu.c index 67fc338ef..195394cfe 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -38,14 +38,14 @@ u32 sub_80FD3A4(void) return id; } -void rfu_REQ_sendData_wrapper(u8 clockChangeFlag) +void LinkRfu_REQ_SendData_HandleParentRelationship(u8 clockChangeFlag) { if (gRfuLinkStatus->parentChild == MODE_CHILD) { - if (gUnknown_3005E10.unk_02 == 1) - clockChangeFlag = 1; + if (gUnknown_3005E10.unk_02 == TRUE) + clockChangeFlag = TRUE; else - clockChangeFlag = 0; + clockChangeFlag = FALSE; } else gUnknown_3005E10.unk_03 = 0; @@ -349,7 +349,7 @@ static bool8 sub_80FD850(u16 reqCommandId) } if (gUnknown_3005E10.unk_0a == 1) { - for (i = 0; i < 4; i++) + for (i = 0; i < RFU_CHILD_MAX; i++) { if ((bmLinkLossSlot >> i) & 1) { @@ -375,11 +375,11 @@ static bool8 sub_80FD850(u16 reqCommandId) } sub_80FEAF4(); } - if (gRfuLinkStatus->parentChild == 1) + if (gRfuLinkStatus->parentChild == MODE_PARENT) { if (parentBmLinkRecoverySlot) { - for (i = 0; i < 4; i++) + for (i = 0; i < RFU_CHILD_MAX; i++) { if ((gUnknown_3005E10.unk_30 >> i) & 1 && (parentBmLinkRecoverySlot >> i) & 1) { @@ -393,7 +393,7 @@ static bool8 sub_80FD850(u16 reqCommandId) if (gUnknown_3005E10.unk_30) { flags = 0; - for (i = 0; i < 4; i++) + for (i = 0; i < RFU_CHILD_MAX; i++) { if ((gUnknown_3005E10.unk_30 >> i) & 1 && gUnknown_3005E10.unk_34[i] && --gUnknown_3005E10.unk_34[i] == 0) { @@ -529,7 +529,7 @@ void sub_80FDA30(u32 a0) gUnknown_3005E10.unk_0e = 0; } } while (gUnknown_3005E10.unk_04 == 18 || gUnknown_3005E10.unk_04 == 19); - if (gRfuLinkStatus->parentChild != 1 || !sub_80FD850(0)) + if (gRfuLinkStatus->parentChild != MODE_PARENT || !sub_80FD850(0)) { sub_80FE418(); sub_80FE63C(); @@ -733,7 +733,7 @@ static void sub_80FDC98(u16 r8, u16 r6) { gUnknown_3005E10.unk_14 = gRfuLinkStatus->linkLossSlotFlag; gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 17; - for (gUnknown_3005E10.unk_10 = 0; gUnknown_3005E10.unk_10 < 4; gUnknown_3005E10.unk_10 ++) + for (gUnknown_3005E10.unk_10 = 0; gUnknown_3005E10.unk_10 < RFU_CHILD_MAX; gUnknown_3005E10.unk_10++) { if ((gRfuLinkStatus->linkLossSlotFlag >> gUnknown_3005E10.unk_10) & 1) { @@ -840,7 +840,7 @@ static void sub_80FDC98(u16 r8, u16 r6) if (gUnknown_3005E10.unk_30) { gUnknown_3005E10.unk_30 &= ~gUnknown_3005E10.unk_14; - for (i = 0; i < 4; i++) + for (i = 0; i < RFU_CHILD_MAX; i++) { if ((gUnknown_3005E10.unk_14 >> i) & 1) { @@ -853,7 +853,7 @@ static void sub_80FDC98(u16 r8, u16 r6) } } sp0 = gUnknown_3005E10.unk_00 & gUnknown_3005E10.unk_14; - for (i = 0; i < 4; i++) + for (i = 0; i < RFU_CHILD_MAX; i++) { if ((sp0 >> i) & 1 && gUnknown_3005E10.unk_01) { @@ -1001,7 +1001,7 @@ static void sub_80FE418(void) sub_80FE7F0(0x10, 0x01); } sp0 = 0x00; - for (i = 0; i < 4; i++) + for (i = 0; i < RFU_CHILD_MAX; i++) { r4 = 1 << i; r5 = 0x00; @@ -1012,7 +1012,7 @@ static void sub_80FE418(void) } else if (gUnknown_3005E10.unk_24 & r4) { - if (gRfuSlotStatusNI[i]->recv.state == 0x46) + if (gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS) { if (gRfuSlotStatusNI[i]->recv.dataType == 1) // Game identification information { @@ -1106,7 +1106,7 @@ static void sub_80FE63C(void) REG_IME = 0; if (gUnknown_3005E10.unk_04 == 15) { - if (--gUnknown_3005E10.unk_28[gUnknown_3005E10.unk_10] == 0 || gRfuSlotStatusNI[gUnknown_3005E10.unk_10]->send.state == 0x27) + if (--gUnknown_3005E10.unk_28[gUnknown_3005E10.unk_10] == 0 || gRfuSlotStatusNI[gUnknown_3005E10.unk_10]->send.state == SLOT_STATE_SEND_FAILED) { sub_80FEB14(); gUnknown_3005E10.unk_04 = 24; @@ -1134,7 +1134,7 @@ static void sub_80FE63C(void) static void sub_80FE6F0(void) { - if (gUnknown_3005E10.unk_04 == 15 && gRfuSlotStatusNI[gUnknown_3005E10.unk_10]->send.state == 0x26) + if (gUnknown_3005E10.unk_04 == 15 && gRfuSlotStatusNI[gUnknown_3005E10.unk_10]->send.state == SLOT_STATE_SEND_SUCCESS) { gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 0; rfu_clearSlot(4, gUnknown_3005E10.unk_10); @@ -1199,9 +1199,9 @@ static void sub_80FE83C(u8 a0) if (gRfuLinkStatus->sendSlotNIFlag) { - for (i = 0; i < 4; i++) + for (i = 0; i < RFU_CHILD_MAX; i++) { - if (gRfuSlotStatusNI[i]->send.state & 0x8000 && gRfuSlotStatusNI[i]->send.bmSlot & a0) + if (gRfuSlotStatusNI[i]->send.state & SLOT_BUSY_FLAG && gRfuSlotStatusNI[i]->send.bmSlot & a0) { rfu_changeSendTarget(0x20, i, gRfuSlotStatusNI[i]->send.bmSlot & ~a0); } @@ -1209,9 +1209,9 @@ static void sub_80FE83C(u8 a0) } if (gRfuLinkStatus->recvSlotNIFlag) { - for (i = 0; i < 4; i++) + for (i = 0; i < RFU_CHILD_MAX; i++) { - if (gRfuSlotStatusNI[i]->recv.state & 0x8000 && gRfuSlotStatusNI[i]->recv.bmSlot & a0) + if (gRfuSlotStatusNI[i]->recv.state & SLOT_BUSY_FLAG && gRfuSlotStatusNI[i]->recv.bmSlot & a0) { rfu_NI_stopReceivingData(i); } @@ -1220,9 +1220,9 @@ static void sub_80FE83C(u8 a0) if (gRfuLinkStatus->sendSlotUNIFlag) { gRfuLinkStatus->sendSlotUNIFlag &= ~a0; - for (i = 0; i < 4; i++) + for (i = 0; i < RFU_CHILD_MAX; i++) { - if (gRfuSlotStatusUNI[i]->send.state == 0x8024 && a0 & gRfuSlotStatusUNI[i]->send.bmSlot) + if (gRfuSlotStatusUNI[i]->send.state == SLOT_STATE_SEND_UNI && a0 & gRfuSlotStatusUNI[i]->send.bmSlot) { gRfuSlotStatusUNI[i]->send.bmSlot &= ~a0; } @@ -1240,12 +1240,12 @@ static void sub_80FE918(void) { if (gRfuLinkStatus->sendSlotNIFlag) { - for (i = 0; i < 4; i ++) + for (i = 0; i < RFU_CHILD_MAX; i++) { - if (gRfuSlotStatusNI[i]->send.state & 0x8000) + if (gRfuSlotStatusNI[i]->send.state & SLOT_BUSY_FLAG) { flags = 0; - for (j = 0; j < 4; j++) + for (j = 0; j < RFU_CHILD_MAX; j++) { if ((gRfuSlotStatusNI[i]->send.bmSlot >> j) & 1 && gRfuSlotStatusNI[j]->send.failCounter > gUnknown_3005E10.unk_18) { @@ -1261,9 +1261,9 @@ static void sub_80FE918(void) } if (gRfuLinkStatus->recvSlotNIFlag) { - for (i = 0; i < 4; i++) + for (i = 0; i < RFU_CHILD_MAX; i++) { - if (gRfuSlotStatusNI[i]->recv.state & 0x8000 && gRfuSlotStatusNI[i]->recv.failCounter > gUnknown_3005E10.unk_18) + if (gRfuSlotStatusNI[i]->recv.state & SLOT_BUSY_FLAG && gRfuSlotStatusNI[i]->recv.failCounter > gUnknown_3005E10.unk_18) { rfu_NI_stopReceivingData(i); } @@ -1379,4 +1379,3 @@ void sub_80FEB3C(void) } } } - |