diff options
author | PikalaxALT <PikalaxALT@users.noreply.github.com> | 2020-01-16 09:19:09 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-16 09:19:09 -0500 |
commit | 0bc479db34154988c6322bf5f2bb6d48556f62c3 (patch) | |
tree | bf67a4d816f6e6cf7d862cdc67c92f183be0a70f /src | |
parent | 3170b753442da34dbdff6f141f0d2223973c0e83 (diff) | |
parent | 0727b0ffd3f1854e1cc64d59a304d8c33cbbccb7 (diff) |
Merge pull request #224 from PikalaxALT/doc_link_rfu
Document link_rfu_*.c
Diffstat (limited to 'src')
-rw-r--r-- | src/link.c | 4 | ||||
-rw-r--r-- | src/link_rfu.c | 126 | ||||
-rw-r--r-- | src/link_rfu_2.c | 113 | ||||
-rw-r--r-- | src/link_rfu_3.c | 64 | ||||
-rw-r--r-- | src/main.c | 2 |
5 files changed, 156 insertions, 153 deletions
diff --git a/src/link.c b/src/link.c index 7be93026b..04313bade 100644 --- a/src/link.c +++ b/src/link.c @@ -234,8 +234,8 @@ bool8 IsWirelessAdapterConnected(void) sub_800B1F4(); sub_80F86F4(); - sub_80FB128(1); - if (sub_80FD3A4() == 0x8001) + sub_80FB128(TRUE); + if (sub_80FD3A4() == RFU_ID) { rfu_REQ_stopMode(); rfu_waitREQComplete(); diff --git a/src/link_rfu.c b/src/link_rfu.c index 0d6e14551..8ab76ffd5 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -22,7 +22,7 @@ static void sub_80FEAF4(void); u32 sub_80FD3A4(void) { u32 id = rfu_REQBN_softReset_and_checkID(); - if (id == 0x8001) + if (id == RFU_ID) gUnknown_3005E10.unk_08 = 1; if (gUnknown_3005E10.unk_04 != 0x17 && gUnknown_3005E10.unk_04 != 0x01) { @@ -123,7 +123,7 @@ u8 sub_80FD538(u8 r5, u16 r7, u16 r8, const u16 *r6) sub_80FE7F0(0xf3, 0x01); return 1; } - if (!rfu_getMasterSlave()) + if (rfu_getMasterSlave() == AGB_CLK_SLAVE) { gUnknown_3005E10.unk_14 = 2; sub_80FE7F0(0xf3, 0x01); @@ -181,7 +181,7 @@ u8 sub_80FD610(u16 parentId, u16 unk_1a) sub_80FE7F0(0xF3, 0x01); return 1; } - if (!rfu_getMasterSlave()) + if (rfu_getMasterSlave() == AGB_CLK_SLAVE) { gUnknown_3005E10.unk_14 = 2; sub_80FE7F0(0xF3, 0x01); @@ -449,12 +449,12 @@ void sub_80FDA30(u32 a0) switch (gUnknown_3005E10.unk_04) { case 23: - r2 = sub_80FD3A4() == 0x8001 ? 0x44 : 0xFF; + r2 = sub_80FD3A4() == RFU_ID ? 0x44 : 0xFF; gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 0; sub_80FE7F0(r2, 0); break; case 1: - if (sub_80FD3A4() == 0x8001) + if (sub_80FD3A4() == RFU_ID) { gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05; gUnknown_3005E10.unk_05 = 3; @@ -469,10 +469,10 @@ void sub_80FDA30(u32 a0) rfu_REQ_reset(); break; case 3: - rfu_REQ_configSystem(gUnknown_3005E10.unk_3c->unk_02, gUnknown_3005E10.unk_3c->unk_00, gUnknown_3005E10.unk_3c->unk_01); + rfu_REQ_configSystem(gUnknown_3005E10.unk_3c->availSlotFlag, gUnknown_3005E10.unk_3c->maxMFrame, gUnknown_3005E10.unk_3c->mcTimer); break; case 4: - rfu_REQ_configGameData(gUnknown_3005E10.unk_3c->unk_04, gUnknown_3005E10.unk_3c->unk_06, (const u8 *)gUnknown_3005E10.unk_3c->unk_08, gUnknown_3005E10.unk_3c->unk_0c); + rfu_REQ_configGameData(gUnknown_3005E10.unk_3c->mbootFlag, gUnknown_3005E10.unk_3c->serialNo, (const u8 *)gUnknown_3005E10.unk_3c->gname, gUnknown_3005E10.unk_3c->uname); break; case 5: rfu_REQ_startSearchChild(); @@ -579,7 +579,7 @@ static void sub_80FDC28(u32 a0) } } -static void sub_80FDC98(u16 r8, u16 r6) +static void sub_80FDC98(u16 reqCommandId, u16 reqResult) { u8 sp0; register u8 *stwiRecvBuffer asm("r0"); @@ -589,44 +589,44 @@ static void sub_80FDC98(u16 r8, u16 r6) if (gUnknown_3005E10.unk_0e != 0) { gUnknown_3005E10.unk_0e = 0; - switch (r8) + switch (reqCommandId) { - case 16: - if (r6 == 0) + case ID_RESET_REQ: + if (reqResult == 0) { gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05; gUnknown_3005E10.unk_05 = 4; } break; - case 23: - if (r6 == 0) + case ID_SYSTEM_CONFIG_REQ: + if (reqResult == 0) { gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05; gUnknown_3005E10.unk_05 = 0; } break; - case 22: - if (r6 == 0) + case ID_GAME_CONFIG_REQ: + if (reqResult == 0) { gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 0; sub_80FE7F0(0x00, 0x00); } break; - case 25: - if (r6 == 0) + case ID_SC_START_REQ: + if (reqResult == 0) { gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 6; } break; - case 26: + case ID_SC_POLL_REQ: if (gUnknown_3005E10.unk_1a && --gUnknown_3005E10.unk_1a == 0) { gUnknown_3005E10.unk_04 = 7; gUnknown_3005E10.unk_05 = 8; } break; - case 27: - if (r6 == 0) + case ID_SC_END_REQ: + if (reqResult == 0) { gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05; gUnknown_3005E10.unk_05 = 0; @@ -636,8 +636,8 @@ static void sub_80FDC98(u16 r8, u16 r6) } } break; - case 28: - if (r6 == 0) + case ID_SP_START_REQ: + if (reqResult == 0) { if (gUnknown_3005E10.unk_0b == 1 && gUnknown_3005E10.unk_1a > 1) { @@ -646,8 +646,8 @@ static void sub_80FDC98(u16 r8, u16 r6) gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 10; } break; - case 29: - if (r6 == 0) + case ID_SP_POLL_REQ: + if (reqResult == 0) { sp0 = sub_80FE778(); gUnknown_3005E10.unk_14 = sp0; @@ -669,8 +669,8 @@ static void sub_80FDC98(u16 r8, u16 r6) gUnknown_3005E10.unk_05 = 0; } break; - case 30: - if (r6 == 0) + case ID_SP_END_REQ: + if (reqResult == 0) { gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05; if (gUnknown_3005E10.unk_07 == 0) @@ -687,14 +687,14 @@ static void sub_80FDC98(u16 r8, u16 r6) } } break; - case 31: - if (r6 == 0) + case ID_CP_START_REQ: + if (reqResult == 0) { gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 13; } break; - case 32: - if (r6 == 0 && !rfu_getConnectParentStatus(&sp0, &gUnknown_3005E10.unk_10) && !sp0) + case ID_CP_POLL_REQ: + if (reqResult == 0 && !rfu_getConnectParentStatus(&sp0, &gUnknown_3005E10.unk_10) && !sp0) { gUnknown_3005E10.unk_04 = 14; } @@ -703,8 +703,8 @@ static void sub_80FDC98(u16 r8, u16 r6) gUnknown_3005E10.unk_04 = 14; } break; - case 33: - if (r6 == 0 && !rfu_getConnectParentStatus(&sp0, &gUnknown_3005E10.unk_10)) + case ID_CP_END_REQ: + if (reqResult == 0 && !rfu_getConnectParentStatus(&sp0, &gUnknown_3005E10.unk_10)) { if (!sp0) { @@ -728,8 +728,8 @@ static void sub_80FDC98(u16 r8, u16 r6) gUnknown_3005E10.unk_1e = 0; } break; - case 50: - if (r6 == 0) + case ID_CPR_START_REQ: + if (reqResult == 0) { gUnknown_3005E10.unk_14 = gRfuLinkStatus->linkLossSlotFlag; gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 17; @@ -742,8 +742,8 @@ static void sub_80FDC98(u16 r8, u16 r6) } } break; - case 51: - if (r6 == 0 && !rfu_CHILD_getConnectRecoveryStatus(&sp0) && sp0 < 2) + case ID_CPR_POLL_REQ: + if (reqResult == 0 && !rfu_CHILD_getConnectRecoveryStatus(&sp0) && sp0 < 2) { gUnknown_3005E10.unk_04 = 18; } @@ -752,8 +752,8 @@ static void sub_80FDC98(u16 r8, u16 r6) gUnknown_3005E10.unk_04 = 18; } break; - case 52: - if (r6 == 0 && !rfu_CHILD_getConnectRecoveryStatus(&sp0)) + case ID_CPR_END_REQ: + if (reqResult == 0 && !rfu_CHILD_getConnectRecoveryStatus(&sp0)) { if (!sp0) { @@ -774,8 +774,8 @@ static void sub_80FDC98(u16 r8, u16 r6) gUnknown_3005E10.unk_1e = 0; } break; - case 39: - if (r6 == 0) + case ID_MS_CHANGE_REQ: + if (reqResult == 0) { if (gUnknown_3005E10.unk_05 == 22) { @@ -791,7 +791,7 @@ static void sub_80FDC98(u16 r8, u16 r6) sub_80FE7F0(0x41, 0x00); gUnknown_3005E10.unk_24 |= 1 << gUnknown_3005E10.unk_10; gUnknown_3005E10.unk_28[gUnknown_3005E10.unk_10] = gUnknown_3005E10.unk_26; - rfu_clearSlot(4, gUnknown_3005E10.unk_10); + rfu_clearSlot(TYPE_NI_SEND, gUnknown_3005E10.unk_10); tmp = &sp0; *tmp = rfu_NI_CHILD_setSendGameName(gUnknown_3005E10.unk_10, 0x0e); if (*tmp) @@ -805,8 +805,8 @@ static void sub_80FDC98(u16 r8, u16 r6) } } break; - case 61: - if (r6 == 0) + case ID_STOP_MODE_REQ: + if (reqResult == 0) { gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 0; sub_80FE7F0(0x42, 0x00); @@ -815,7 +815,7 @@ static void sub_80FDC98(u16 r8, u16 r6) } gUnknown_3005E10.unk_0e = 1; } - else if (r6 == 3 && gUnknown_3005E10.unk_0f && (r8 == 0x24 || r8 == 0x26 || r8 == 0x27)) + else if (reqResult == 3 && gUnknown_3005E10.unk_0f && (reqCommandId == ID_DATA_TX_REQ || reqCommandId == ID_DATA_RX_REQ || reqCommandId == ID_MS_CHANGE_REQ)) { rfu_REQ_RFUStatus(); rfu_waitREQComplete(); @@ -826,13 +826,13 @@ static void sub_80FDC98(u16 r8, u16 r6) stwiRecvBuffer[4] = gRfuLinkStatus->connSlotFlag; stwiRecvBuffer[5] = 1; sub_80FD850(0x29); - r6 = 0; + reqResult = 0; } } - switch (r8) + switch (reqCommandId) { - case 48: - if (r6 == 0) + case ID_DISCONNECT_REQ: + if (reqResult == 0) { stwiRecvBuffer = rfu_getSTWIRecvBuffer()->rxPacketAlloc.rfuPacket8.data; gUnknown_3005E10.unk_14 = stwiRecvBuffer[8]; @@ -891,32 +891,32 @@ static void sub_80FDC98(u16 r8, u16 r6) } } break; - case 38: + case ID_DATA_RX_REQ: sub_80FE6F0(); if (gRfuLinkStatus->parentChild != MODE_NEUTRAL) { sub_80FE7F0(0x50, 0x00); } break; - case 16: - case 61: - if (r6 == 0) + case ID_RESET_REQ: + case ID_STOP_MODE_REQ: + if (reqResult == 0) { gUnknown_3005E10.unk_0d = 0; gUnknown_3005E10.unk_01 = 0; gUnknown_3005E10.unk_00 = 0;; gUnknown_3005E10.unk_06 = -1; sub_80FEAF4(); - if (r8 == 61) + if (reqCommandId == 61) { sub_80FD484(); } } break; } - if (r6 != 0) + if (reqResult != 0) { - if (r8 == 28 && r6 != 0 && gUnknown_3005E10.unk_07 == 4) + if (reqCommandId == ID_SP_START_REQ && reqResult != 0 && gUnknown_3005E10.unk_07 == 4) { gRfuLinkStatus->parentChild = MODE_PARENT; gRfuLinkStatus->connSlotFlag = 0xF; @@ -926,8 +926,8 @@ static void sub_80FDC98(u16 r8, u16 r6) } else { - gUnknown_3005E10.unk_14 = r8; - gUnknown_3005E10.unk_16 = r6; + gUnknown_3005E10.unk_14 = reqCommandId; + gUnknown_3005E10.unk_16 = reqResult; if (gUnknown_3005E10.unk_0e) { gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 0; @@ -936,7 +936,7 @@ static void sub_80FDC98(u16 r8, u16 r6) sub_80FEAF4(); } } - if (r8 == 0xFF) + if (reqCommandId == ID_CLOCK_SLAVE_MS_CHANGE_ERROR_BY_DMA_REQ) { sub_80FE7F0(0xf2, 0x00); sub_80FEAF4(); @@ -1042,7 +1042,7 @@ static void sub_80FE418(void) { gUnknown_3005E10.unk_24 &= ~r4; gUnknown_3005E10.unk_28[i] = 0; - rfu_clearSlot(0x08, i); + rfu_clearSlot(TYPE_NI_RECV, i); } if (r5 & 0x04) { @@ -1110,7 +1110,7 @@ static void sub_80FE63C(void) { sub_80FEB14(); gUnknown_3005E10.unk_04 = 24; - rfu_clearSlot(4, gUnknown_3005E10.unk_10); + rfu_clearSlot(TYPE_NI_SEND, gUnknown_3005E10.unk_10); gUnknown_3005E10.unk_24 &= ~(1 << gUnknown_3005E10.unk_10); gUnknown_3005E10.unk_28[gUnknown_3005E10.unk_10] = 0; } @@ -1137,7 +1137,7 @@ static void sub_80FE6F0(void) 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); + rfu_clearSlot(TYPE_NI_SEND, gUnknown_3005E10.unk_10); gUnknown_3005E10.unk_24 &= ~(1 << gUnknown_3005E10.unk_10); gUnknown_3005E10.unk_28[gUnknown_3005E10.unk_10] = 0; sub_80FE7F0(0x24, 0x00); @@ -1203,7 +1203,7 @@ static void sub_80FE83C(u8 a0) { if (gRfuSlotStatusNI[i]->send.state & SLOT_BUSY_FLAG && gRfuSlotStatusNI[i]->send.bmSlot & a0) { - rfu_changeSendTarget(0x20, i, gRfuSlotStatusNI[i]->send.bmSlot & ~a0); + rfu_changeSendTarget(TYPE_NI, i, gRfuSlotStatusNI[i]->send.bmSlot & ~a0); } } } @@ -1253,7 +1253,7 @@ static void sub_80FE918(void) } if (flags) { - rfu_changeSendTarget(0x20, i, flags ^ gRfuSlotStatusNI[i]->send.bmSlot); + rfu_changeSendTarget(TYPE_NI, i, flags ^ gRfuSlotStatusNI[i]->send.bmSlot); } } } diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c index a06e3bc9c..bda154544 100644 --- a/src/link_rfu_2.c +++ b/src/link_rfu_2.c @@ -21,16 +21,16 @@ struct UnkRfuStruct_8010A14{ u8 fill_a0[0x5c]; }; -static EWRAM_DATA struct UnkLinkRfuStruct_02022B2C gUnknown_203ABF0 = {}; +static EWRAM_DATA struct UnkLinkRfuStruct_02022B2C sRfuReqConfig = {}; static EWRAM_DATA struct UnkLinkRfuStruct_02022B44 gUnknown_203AC08 = {}; static struct RfuAPIBuffer gRfuAPIBuffer; static u8 gUnknown_3001FF8[14]; static u16 gUnknown_3002008[7]; -struct GFtgtGname gUnknown_3005440; +struct GFtgtGname gHostRFUtgtGnameBuffer; struct UnkRfuStruct_2 Rfu; -u8 gUnknown_3005E00[PLAYER_NAME_LENGTH]; +u8 gHostRFUtgtUnameBuffer[PLAYER_NAME_LENGTH]; static void sub_80F8AA4(void); static void sub_80F8AEC(void); @@ -61,22 +61,25 @@ static void sub_80FC028(u8 taskId); static void sub_80FC208(void); static void nullsub_89(u8 taskId); -static const struct UnkLinkRfuStruct_02022B2C gUnknown_843EBB4 = { - .unk_00 = 0x04, - .unk_01 = 0x20, - .unk_02 = 0x0000, - .unk_04 = 0x00, - .unk_06 = 0x0002, - .unk_08 = &gUnknown_3005440, - .unk_0c = gUnknown_3005E00, +static const struct UnkLinkRfuStruct_02022B2C sRfuReqConfigTemplate = { + .maxMFrame = 4, + .mcTimer = 32, + .availSlotFlag = 0, + .mbootFlag = 0, + .serialNo = 0x0002, + .gname = &gHostRFUtgtGnameBuffer, + .uname = gHostRFUtgtUnameBuffer, .unk_10 = 0x01, .unk_11 = 0x00, .unk_12 = 0x0258, .unk_14 = 0x012c }; -static const u8 gUnknown_843EBCC[] = { - 0, 3, 2, 1, 0 +static const u8 sAvailSlots[] = { + [1] = AVAIL_SLOT1, + [2] = AVAIL_SLOT2, + [3] = AVAIL_SLOT3, + [4] = AVAIL_SLOT4 }; static const u32 gUnknown_843EBD4[] = { @@ -218,7 +221,7 @@ void sub_80F86F4(void) if (!rfu_initializeAPI(&gRfuAPIBuffer, sizeof gRfuAPIBuffer, gIntrTable + 1, TRUE)) { gLinkType = 0; - sub_80FB128(0); + sub_80FB128(FALSE); sub_80F85F8(); rfu_setTimerInterrupt(3, gIntrTable + 2); } @@ -230,7 +233,7 @@ static void sub_80F8738(u8 taskId) switch (Rfu.unk_04) { case 0: - sub_80FD4B0(&gUnknown_203ABF0); + sub_80FD4B0(&sRfuReqConfig); Rfu.unk_04 = 1; gTasks[taskId].data[1] = 1; break; @@ -316,7 +319,7 @@ static void sub_80F893C(u8 taskId) switch (Rfu.unk_04) { case 0: - sub_80FD4B0(&gUnknown_843EBB4); + sub_80FD4B0(&sRfuReqConfigTemplate); Rfu.unk_04 = 1; gTasks[taskId].data[1] = 1; break; @@ -349,8 +352,8 @@ static void sub_80F893C(u8 taskId) case 12: { u8 r5 = 1 << Rfu.unk_c3e; - rfu_clearSlot(12, Rfu.unk_c3e); - rfu_setRecvBuffer(16, Rfu.unk_c3e, Rfu.unk_c3f, sizeof(Rfu.unk_c3f)); + rfu_clearSlot(TYPE_NI_SEND | TYPE_NI_RECV, Rfu.unk_c3e); + rfu_setRecvBuffer(TYPE_UNI, Rfu.unk_c3e, Rfu.unk_c3f, sizeof(Rfu.unk_c3f)); rfu_UNI_setSendData(r5, Rfu.unk_4c, sizeof(Rfu.unk_4c)); gTasks[taskId].data[1] = 8; DestroyTask(taskId); @@ -373,8 +376,8 @@ static void sub_80F8AA4(void) { if (r5 & 1) { - rfu_setRecvBuffer(16, i, Rfu.unk_14[i], sizeof(Rfu.unk_14[i])); - rfu_clearSlot(3, i); + rfu_setRecvBuffer(TYPE_UNI, i, Rfu.unk_14[i], sizeof(Rfu.unk_14[i])); + rfu_clearSlot(TYPE_UNI_SEND | TYPE_UNI_RECV, i); } r5 >>= 1; } @@ -401,7 +404,7 @@ static void sub_80F8B34(u8 taskId) switch (Rfu.unk_04) { case 0: - sub_80FD4B0(&gUnknown_203ABF0); + sub_80FD4B0(&sRfuReqConfig); Rfu.unk_04 = 1; gTasks[taskId].data[1] = 1; break; @@ -785,12 +788,12 @@ static bool32 sub_80F9204(void) if (Rfu.unk_ce5 && !Rfu.unk_cd9) { gUnknown_203AC08.unk_0e = 0; - rfu_clearSlot(3, Rfu.unk_cda); + rfu_clearSlot(TYPE_UNI_SEND | TYPE_UNI_RECV, Rfu.unk_cda); for (i = 0; i < RFU_CHILD_MAX; i++) { if ((Rfu.unk_ce5 >> i) & 1) { - rfu_setRecvBuffer(0x10, i, Rfu.unk_14[i], sizeof(Rfu.unk_14[i])); + rfu_setRecvBuffer(TYPE_UNI, i, Rfu.unk_14[i], sizeof(Rfu.unk_14[i])); } } sub_80F887C(Rfu.unk_ce2, Rfu.unk_ce2 | Rfu.unk_ce5); @@ -951,7 +954,7 @@ static void rfu_func_080F97B8(void) struct GFtgtGname *sub_80F9800(void) { - return &gUnknown_3005440; + return &gHostRFUtgtGnameBuffer; } bool32 IsSendingKeysToRfu(void) @@ -1498,7 +1501,7 @@ static bool8 sub_80FA528(void) { Rfu.unk_cd1[i] = 9; Rfu.unk_cd5[i] = 10; - rfu_clearSlot(8, i); + rfu_clearSlot(TYPE_NI_RECV, i); rfu_NI_setSendData(1 << i, 8, Rfu.unk_cd1 + i, 1); retval = TRUE; } @@ -1506,7 +1509,7 @@ static bool8 sub_80FA528(void) } else if (gRfuSlotStatusNI[Rfu.unk_c3e]->recv.state == SLOT_STATE_RECV_FAILED) { - rfu_clearSlot(8, i); + rfu_clearSlot(TYPE_NI_RECV, i); } } } @@ -1552,14 +1555,14 @@ void sub_80FA670(u8 a0, u16 a1, const u8 *a2) { u8 r4 = sub_80FBC70(a2, a1); Rfu.unk_cd1[r4] = a0; - rfu_clearSlot(4, r4); + rfu_clearSlot(TYPE_NI_SEND, r4); rfu_NI_setSendData(1 << r4, 8, Rfu.unk_cd1 + r4, 1); } void sub_80FA6BC(void) { Rfu.unk_c85 = 8; - rfu_clearSlot(4, Rfu.unk_c3e); + rfu_clearSlot(TYPE_NI_SEND, Rfu.unk_c3e); rfu_NI_setSendData(1 << Rfu.unk_c3e, 8, &Rfu.unk_c85, 1); } @@ -1584,7 +1587,7 @@ static void sub_80FA738(void) { if (Rfu.unk_cd5[i] == 10) Rfu.unk_cd5[i] = 11; - rfu_clearSlot(4, i); + rfu_clearSlot(TYPE_NI_SEND, i); } } } @@ -1595,17 +1598,17 @@ static s32 sub_80FA788(void) if (Rfu.unk_c85 == 8) { if (gRfuSlotStatusNI[Rfu.unk_c3e]->send.state == SLOT_STATE_SEND_SUCCESS || gRfuSlotStatusNI[Rfu.unk_c3e]->send.state == SLOT_STATE_SEND_FAILED) - rfu_clearSlot(4, Rfu.unk_c3e); + rfu_clearSlot(TYPE_NI_SEND, Rfu.unk_c3e); } if (gRfuSlotStatusNI[Rfu.unk_c3e]->recv.state == SLOT_STATE_RECV_SUCCESS || gRfuSlotStatusNI[Rfu.unk_c3e]->recv.state == SLOT_STATE_RECV_SUCCESS_AND_SENDSIDE_UNKNOWN) { - rfu_clearSlot(8, Rfu.unk_c3e); + rfu_clearSlot(TYPE_NI_RECV, Rfu.unk_c3e); sub_80FB9E4(Rfu.unk_c86, 0); retval = Rfu.unk_c86; } else if (gRfuSlotStatusNI[Rfu.unk_c3e]->recv.state == SLOT_STATE_RECV_FAILED) { - rfu_clearSlot(8, Rfu.unk_c3e); + rfu_clearSlot(TYPE_NI_RECV, Rfu.unk_c3e); retval = 6; } return retval; @@ -1905,44 +1908,44 @@ bool32 sub_80FAEF0(void) static void sub_80FAF1C(void) { - StringCopy(gUnknown_3005E00, gSaveBlock2Ptr->playerName); + StringCopy(gHostRFUtgtUnameBuffer, gSaveBlock2Ptr->playerName); } -void sub_80FAF34(void) +void ClearAndInitHostRFUtgtGname(void) { - memset(&gUnknown_3005440, 0, RFU_GAME_NAME_LENGTH); - sub_80FCB54(&gUnknown_3005440, 0, 0, 0); + memset(&gHostRFUtgtGnameBuffer, 0, RFU_GAME_NAME_LENGTH); + InitHostRFUtgtGname(&gHostRFUtgtGnameBuffer, 0, 0, 0); } void sub_80FAF58(u8 a0, u32 a1, u32 a2) { - sub_80FCB54(&gUnknown_3005440, a0, a2, a1); + InitHostRFUtgtGname(&gHostRFUtgtGnameBuffer, a0, a2, a1); } void sub_80FAF74(bool32 a0, bool32 a1) { - gUnknown_3005440.unk_00.unk_00_4 = a0; - gUnknown_3005440.unk_00.unk_00_5 = a1; + gHostRFUtgtGnameBuffer.unk_00.unk_00_4 = a0; + gHostRFUtgtGnameBuffer.unk_00.unk_00_5 = a1; } void sub_80FAFA0(u32 type, u32 species, u32 level) { - gUnknown_3005440.type = type; - gUnknown_3005440.species = species; - gUnknown_3005440.level = level; + gHostRFUtgtGnameBuffer.type = type; + gHostRFUtgtGnameBuffer.species = species; + gHostRFUtgtGnameBuffer.level = level; } void sub_80FAFE0(u8 a0) { - gUnknown_3005440.unk_0a_7 = a0; - rfu_REQ_configGameData(0, 2, (void *)&gUnknown_3005440, gUnknown_3005E00); + gHostRFUtgtGnameBuffer.unk_0a_7 = a0; + rfu_REQ_configGameData(0, 2, (void *)&gHostRFUtgtGnameBuffer, gHostRFUtgtUnameBuffer); } void sub_80FB008(u8 a0, u32 a1, u32 a2) { if (a0) sub_80FAF58(a0, a1, a2); - rfu_REQ_configGameData(0, 2, (void *)&gUnknown_3005440, gUnknown_3005E00); + rfu_REQ_configGameData(0, 2, (void *)&gHostRFUtgtGnameBuffer, gHostRFUtgtUnameBuffer); } void sub_80FB030(u32 a0) @@ -2028,7 +2031,7 @@ static void sub_80FB184(u8 a0, u8 unused1) { Rfu.unk_cd1[i] = 0; Rfu.unk_cd5[i] = 0; - rfu_setRecvBuffer(0x20, i, Rfu.unk_cd5 + i, 1); + rfu_setRecvBuffer(TYPE_NI, i, Rfu.unk_cd5 + i, 1); } else { @@ -2115,8 +2118,8 @@ static void sub_80FB37C(u8 a0, u8 unused1) Rfu.unk_04 = 11; Rfu.unk_c85 = 0; Rfu.unk_c86 = 0; - rfu_setRecvBuffer(0x20, Rfu.unk_c3e, &Rfu.unk_c86, 1); - rfu_setRecvBuffer(0x10, Rfu.unk_c3e, Rfu.unk_c3f, 70); + rfu_setRecvBuffer(TYPE_NI, Rfu.unk_c3e, &Rfu.unk_c86, 1); + rfu_setRecvBuffer(TYPE_UNI, Rfu.unk_c3e, Rfu.unk_c3f, 70); break; case 0x25: sub_80FB9E4(2, 0x25); @@ -2272,7 +2275,7 @@ static void sub_80FB5EC(u8 a0, u8 unused1) case 0x24: Rfu.unk_04 = 0xD; sub_80FB9E4(3, 0); - rfu_setRecvBuffer(0x10, Rfu.unk_c3e, Rfu.unk_c3f, 70); + rfu_setRecvBuffer(TYPE_UNI, Rfu.unk_c3e, Rfu.unk_c3f, sizeof(Rfu.unk_c3f)); break; case 0x25: sub_80FB9E4(2, a0); @@ -2442,8 +2445,8 @@ void sub_80FBB8C(u32 a0) Rfu.unk_0c = 1; sub_80FAF1C(); sub_80FD430(sub_80FB184, NULL); - gUnknown_203ABF0 = gUnknown_843EBB4; - gUnknown_203ABF0.unk_02 = gUnknown_843EBCC[a0 - 1]; + sRfuReqConfig = sRfuReqConfigTemplate; + sRfuReqConfig.availSlotFlag = sAvailSlots[a0 - 1]; sub_80F8E74(); } @@ -2462,9 +2465,9 @@ void sub_80FBC00(void) Rfu.unk_0c = 2; sub_80FAF1C(); sub_80FD430(sub_80FB5EC, NULL); - gUnknown_203ABF0 = gUnknown_843EBB4; - gUnknown_203ABF0.unk_11 = 0; - gUnknown_203ABF0.unk_12 = 0x258; + sRfuReqConfig = sRfuReqConfigTemplate; + sRfuReqConfig.unk_11 = 0; + sRfuReqConfig.unk_12 = 0x258; Rfu.unk_67 = CreateTask(sub_80F8B34, 1); } @@ -2500,7 +2503,7 @@ static void sub_80FBCF8(u32 a0) rfu_REQ_disconnect(a0); rfu_waitREQComplete(); Rfu.unk_ce2 &= ~(a0); - rfu_clearSlot(1, Rfu.unk_cda); + rfu_clearSlot(TYPE_UNI_SEND, Rfu.unk_cda); rfu_UNI_setSendData(Rfu.unk_ce2, Rfu.unk_c87, 70); Rfu.unk_cda = sub_80F886C(Rfu.unk_ce2); } diff --git a/src/link_rfu_3.c b/src/link_rfu_3.c index 01f19d817..87197f57f 100644 --- a/src/link_rfu_3.c +++ b/src/link_rfu_3.c @@ -502,7 +502,7 @@ static void ASCIIToPkmnStr(u8 *q1, const u8 *q2) } #ifdef NONMATCHING -static u8 sub_80FCADC(u8 maxFlags) +static u8 GetConnectedChildStrength(u8 maxFlags) { u8 flagCount = 0; u8 flags = gRfuLinkStatus->connSlotFlag; @@ -533,7 +533,7 @@ static u8 sub_80FCADC(u8 maxFlags) } #else NAKED -static u8 sub_80FCADC(u8 maxFlags) +static u8 GetConnectedChildStrength(u8 maxFlags) { asm_unified("\tpush {r4-r7,lr}\n" "\tlsls r0, 24\n" @@ -603,7 +603,7 @@ static u8 sub_80FCADC(u8 maxFlags) } #endif -void sub_80FCB54(struct GFtgtGname *data, u8 r9, bool32 r2, s32 r3) +void InitHostRFUtgtGname(struct GFtgtGname *data, u8 r9, bool32 r2, s32 r3) { s32 i; @@ -629,7 +629,7 @@ void sub_80FCB54(struct GFtgtGname *data, u8 r9, bool32 r2, s32 r3) data->unk_00.gameClear = FlagGet(FLAG_SYS_GAME_CLEAR); } -bool8 sub_80FCC3C(struct GFtgtGname *buff1, u8 *buff2, u8 idx) +bool8 sub_80FCC3C(struct GFtgtGname *gname, u8 *uname, u8 idx) { bool8 retVal; @@ -638,13 +638,13 @@ bool8 sub_80FCC3C(struct GFtgtGname *buff1, u8 *buff2, u8 idx) retVal = TRUE; if (sub_80FA44C(gRfuLinkStatus->partner[idx].serialNo) && ((gRfuLinkStatus->getNameFlag >> idx) & 1)) { - memcpy(buff1, &gRfuLinkStatus->partner[idx].gname, RFU_GAME_NAME_LENGTH); - memcpy(buff2, gRfuLinkStatus->partner[idx].uname, RFU_USER_NAME_LENGTH); + memcpy(gname, &gRfuLinkStatus->partner[idx].gname, RFU_GAME_NAME_LENGTH); + memcpy(uname, gRfuLinkStatus->partner[idx].uname, RFU_USER_NAME_LENGTH); } else { - memset(buff1, 0, RFU_GAME_NAME_LENGTH); - memset(buff2, 0, RFU_USER_NAME_LENGTH); + memset(gname, 0, RFU_GAME_NAME_LENGTH); + memset(uname, 0, RFU_USER_NAME_LENGTH); } } else @@ -652,39 +652,39 @@ bool8 sub_80FCC3C(struct GFtgtGname *buff1, u8 *buff2, u8 idx) retVal = FALSE; if (sub_80FA44C(gRfuLinkStatus->partner[idx].serialNo)) { - memcpy(buff1, &gRfuLinkStatus->partner[idx].gname, RFU_GAME_NAME_LENGTH); - memcpy(buff2, gRfuLinkStatus->partner[idx].uname, RFU_USER_NAME_LENGTH); + memcpy(gname, &gRfuLinkStatus->partner[idx].gname, RFU_GAME_NAME_LENGTH); + memcpy(uname, gRfuLinkStatus->partner[idx].uname, RFU_USER_NAME_LENGTH); } else { - memset(buff1, 0, RFU_GAME_NAME_LENGTH); - memset(buff2, 0, RFU_USER_NAME_LENGTH); + memset(gname, 0, RFU_GAME_NAME_LENGTH); + memset(uname, 0, RFU_USER_NAME_LENGTH); } } return retVal; } -bool8 sub_80FCCF4(struct GFtgtGname *buff1, u8 *buff2, u8 idx) +bool8 sub_80FCCF4(struct GFtgtGname *gname, u8 *uname, u8 idx) { bool8 retVal = FALSE; if (gRfuLinkStatus->partner[idx].serialNo == 0x7F7D) { - memcpy(buff1, gRfuLinkStatus->partner[idx].gname, RFU_GAME_NAME_LENGTH); - memcpy(buff2, gRfuLinkStatus->partner[idx].uname, RFU_USER_NAME_LENGTH); + memcpy(gname, gRfuLinkStatus->partner[idx].gname, RFU_GAME_NAME_LENGTH); + memcpy(uname, gRfuLinkStatus->partner[idx].uname, RFU_USER_NAME_LENGTH); retVal = TRUE; } else { - memset(buff1, 0, RFU_GAME_NAME_LENGTH); - memset(buff2, 0, RFU_USER_NAME_LENGTH); + memset(gname, 0, RFU_GAME_NAME_LENGTH); + memset(uname, 0, RFU_USER_NAME_LENGTH); } return retVal; } -void sub_80FCD50(struct GFtgtGname *buff1, u8 *buff2) +void sub_80FCD50(struct GFtgtGname *gname, u8 *uname) { - memcpy(buff1, &gUnknown_3005440, RFU_GAME_NAME_LENGTH); - memcpy(buff2, gUnknown_3005E00, RFU_USER_NAME_LENGTH); + memcpy(gname, &gHostRFUtgtGnameBuffer, RFU_GAME_NAME_LENGTH); + memcpy(uname, gHostRFUtgtUnameBuffer, RFU_USER_NAME_LENGTH); } void CreateWirelessStatusIndicatorSprite(u8 x, u8 y) @@ -734,7 +734,7 @@ void LoadWirelessStatusIndicatorSpriteGfx(void) gWirelessStatusIndicatorSpriteId = 0xFF; } -static u8 sub_80FCEE4(void) +static u8 GetParentSignalStrength(void) { u8 i; u8 flags = gRfuLinkStatus->connSlotFlag; @@ -749,7 +749,7 @@ static u8 sub_80FCEE4(void) return 0; } -static void sub_80FCF1C(struct Sprite *sprite, s32 signalStrengthAnimNum) +static void SetAndRestartWirelessStatusIndicatorAnim(struct Sprite *sprite, s32 signalStrengthAnimNum) { if (sprite->data[2] != signalStrengthAnimNum) { @@ -759,50 +759,50 @@ static void sub_80FCF1C(struct Sprite *sprite, s32 signalStrengthAnimNum) } } -void sub_80FCF34(void) +void UpdateWirelessStatusIndicatorSprite(void) { if (gWirelessStatusIndicatorSpriteId != 0xFF && gSprites[gWirelessStatusIndicatorSpriteId].data[7] == 0x1234) { struct Sprite *sprite = &gSprites[gWirelessStatusIndicatorSpriteId]; - u8 signalStrength = 255; + u8 signalStrength = RFU_LINK_ICON_LEVEL4_MAX; u8 i = 0; if (gRfuLinkStatus->parentChild == MODE_PARENT) { for (i = 0; i < GetLinkPlayerCount() - 1; i++) { - if (signalStrength >= sub_80FCADC(i + 1)) + if (signalStrength >= GetConnectedChildStrength(i + 1)) { - signalStrength = sub_80FCADC(i + 1); + signalStrength = GetConnectedChildStrength(i + 1); } } } else { - signalStrength = sub_80FCEE4(); + signalStrength = GetParentSignalStrength(); } if (sub_80FC1B0() == TRUE) { sprite->data[0] = 4; } - else if (signalStrength < 25) + else if (signalStrength <= RFU_LINK_ICON_LEVEL1_MAX) { sprite->data[0] = 3; } - else if (signalStrength >= 25 && signalStrength < 127) + else if (signalStrength >= RFU_LINK_ICON_LEVEL2_MIN && signalStrength <= RFU_LINK_ICON_LEVEL2_MAX) { sprite->data[0] = 2; } - else if (signalStrength >= 127 && signalStrength < 229) + else if (signalStrength >= RFU_LINK_ICON_LEVEL3_MIN && signalStrength <= RFU_LINK_ICON_LEVEL3_MAX) { sprite->data[0] = 1; } - else if (signalStrength >= 229) + else if (signalStrength >= RFU_LINK_ICON_LEVEL4_MIN) { sprite->data[0] = 0; } if (sprite->data[0] != sprite->data[1]) { - sub_80FCF1C(sprite, sprite->data[0]); + SetAndRestartWirelessStatusIndicatorAnim(sprite, sprite->data[0]); sprite->data[1] = sprite->data[0]; } if (sprite->anims[sprite->data[2]][sprite->data[4]].frame.duration < sprite->data[3]) diff --git a/src/main.c b/src/main.c index 5d2db95be..336584ab3 100644 --- a/src/main.c +++ b/src/main.c @@ -352,7 +352,7 @@ static void VBlankIntr(void) sub_800DD28(); Random(); - sub_80FCF34(); + UpdateWirelessStatusIndicatorSprite(); INTR_CHECK |= INTR_FLAG_VBLANK; gMain.intrCheck |= INTR_FLAG_VBLANK; |