Use librfu consts in link_rfu_*.c

This commit is contained in:
PikalaxALT
2020-01-15 13:54:06 -05:00
parent 3170b75344
commit e03a61e239
7 changed files with 167 additions and 164 deletions
+1 -1
View File
@@ -5318,7 +5318,7 @@ _08118604:
thumb_func_start UnionRoomSpecial thumb_func_start UnionRoomSpecial
UnionRoomSpecial: @ 811860C UnionRoomSpecial: @ 811860C
push {r4,lr} push {r4,lr}
bl sub_80FAF34 bl ClearAndInitHostRFUtgtGname
ldr r0, _08118648 @ =sub_81186E0 ldr r0, _08118648 @ =sub_81186E0
movs r1, 0xA movs r1, 0xA
bl CreateTask bl CreateTask
+2 -2
View File
@@ -1,3 +1,3 @@
gUnknown_3005440 gHostRFUtgtGnameBuffer
Rfu Rfu
gUnknown_3005E00 gHostRFUtgtUnameBuffer
+11 -11
View File
@@ -39,13 +39,13 @@ struct Padded_U8
struct UnkLinkRfuStruct_02022B2C struct UnkLinkRfuStruct_02022B2C
{ {
u8 unk_00; u8 maxMFrame;
u8 unk_01; u8 mcTimer;
u16 unk_02; u16 availSlotFlag;
u8 unk_04; u8 mbootFlag;
u16 unk_06; u16 serialNo;
struct GFtgtGname *unk_08; struct GFtgtGname *gname;
u8 *unk_0c; u8 *uname;
u8 unk_10; u8 unk_10;
u8 unk_11; u8 unk_11;
u16 unk_12; u16 unk_12;
@@ -223,8 +223,8 @@ struct UnkRfuStruct_2
}; // size: 0x9AC }; // size: 0x9AC
extern struct UnkRfuStruct_1 gUnknown_3005E10; extern struct UnkRfuStruct_1 gUnknown_3005E10;
extern struct GFtgtGname gUnknown_3005440; extern struct GFtgtGname gHostRFUtgtGnameBuffer;
extern u8 gUnknown_3005E00[]; extern u8 gHostRFUtgtUnameBuffer[];
void AddTextPrinterToWindow1(const u8 *str); void AddTextPrinterToWindow1(const u8 *str);
bool32 MG_PrintTextOnWindow1AndWaitButton(u8 * cmdPtr, const u8 * src); bool32 MG_PrintTextOnWindow1AndWaitButton(u8 * cmdPtr, const u8 * src);
@@ -263,7 +263,7 @@ void sub_80FBB20(void);
bool8 sub_80FA484(bool32 a0); bool8 sub_80FA484(bool32 a0);
void var_800D_set_xB(void); void var_800D_set_xB(void);
struct GFtgtGname *sub_80F9800(void); struct GFtgtGname *sub_80F9800(void);
void sub_80FCF34(void); void UpdateWirelessStatusIndicatorSprite(void);
void InitRFU(void); void InitRFU(void);
void sub_80FEB14(void); void sub_80FEB14(void);
bool32 sub_80FBA00(void); bool32 sub_80FBA00(void);
@@ -288,7 +288,7 @@ bool8 sub_80FC6E8(struct UnkRfuStruct_2_Sub_124 * a0, u8 *a1);
void sub_80FC63C(struct UnkRfuStruct_2_Sub_9e8 * a0, u8 *a1); void sub_80FC63C(struct UnkRfuStruct_2_Sub_9e8 * a0, u8 *a1);
u8 sub_80FEA34(u8 a0, u16 a1); u8 sub_80FEA34(u8 a0, u16 a1);
void sub_80FDA30(u32 a0); void sub_80FDA30(u32 a0);
void sub_80FCB54(struct GFtgtGname *data, u8 r9, bool32 r2, s32 r3); void InitHostRFUtgtGname(struct GFtgtGname *data, u8 r9, bool32 r2, s32 r3);
void LinkRfu_syncVBlank_(void); void LinkRfu_syncVBlank_(void);
s32 sub_80FD430(void (*func1)(u8, u8), void (*func2)(u16)); s32 sub_80FD430(void (*func1)(u8, u8), void (*func2)(u16));
void sub_80FEB3C(void); void sub_80FEB3C(void);
+63 -63
View File
@@ -22,7 +22,7 @@ static void sub_80FEAF4(void);
u32 sub_80FD3A4(void) u32 sub_80FD3A4(void)
{ {
u32 id = rfu_REQBN_softReset_and_checkID(); u32 id = rfu_REQBN_softReset_and_checkID();
if (id == 0x8001) if (id == RFU_ID)
gUnknown_3005E10.unk_08 = 1; gUnknown_3005E10.unk_08 = 1;
if (gUnknown_3005E10.unk_04 != 0x17 && gUnknown_3005E10.unk_04 != 0x01) 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); sub_80FE7F0(0xf3, 0x01);
return 1; return 1;
} }
if (!rfu_getMasterSlave()) if (rfu_getMasterSlave() == AGB_CLK_SLAVE)
{ {
gUnknown_3005E10.unk_14 = 2; gUnknown_3005E10.unk_14 = 2;
sub_80FE7F0(0xf3, 0x01); sub_80FE7F0(0xf3, 0x01);
@@ -181,7 +181,7 @@ u8 sub_80FD610(u16 parentId, u16 unk_1a)
sub_80FE7F0(0xF3, 0x01); sub_80FE7F0(0xF3, 0x01);
return 1; return 1;
} }
if (!rfu_getMasterSlave()) if (rfu_getMasterSlave() == AGB_CLK_SLAVE)
{ {
gUnknown_3005E10.unk_14 = 2; gUnknown_3005E10.unk_14 = 2;
sub_80FE7F0(0xF3, 0x01); sub_80FE7F0(0xF3, 0x01);
@@ -449,12 +449,12 @@ void sub_80FDA30(u32 a0)
switch (gUnknown_3005E10.unk_04) switch (gUnknown_3005E10.unk_04)
{ {
case 23: case 23:
r2 = sub_80FD3A4() == 0x8001 ? 0x44 : 0xFF; r2 = sub_80FD3A4() == RFU_ID ? 0x44 : 0xFF;
gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 0; gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 0;
sub_80FE7F0(r2, 0); sub_80FE7F0(r2, 0);
break; break;
case 1: case 1:
if (sub_80FD3A4() == 0x8001) if (sub_80FD3A4() == RFU_ID)
{ {
gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05; gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05;
gUnknown_3005E10.unk_05 = 3; gUnknown_3005E10.unk_05 = 3;
@@ -469,10 +469,10 @@ void sub_80FDA30(u32 a0)
rfu_REQ_reset(); rfu_REQ_reset();
break; break;
case 3: 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; break;
case 4: 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; break;
case 5: case 5:
rfu_REQ_startSearchChild(); 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; u8 sp0;
register u8 *stwiRecvBuffer asm("r0"); register u8 *stwiRecvBuffer asm("r0");
@@ -589,44 +589,44 @@ static void sub_80FDC98(u16 r8, u16 r6)
if (gUnknown_3005E10.unk_0e != 0) if (gUnknown_3005E10.unk_0e != 0)
{ {
gUnknown_3005E10.unk_0e = 0; gUnknown_3005E10.unk_0e = 0;
switch (r8) switch (reqCommandId)
{ {
case 16: case ID_RESET_REQ:
if (r6 == 0) if (reqResult == 0)
{ {
gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05; gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05;
gUnknown_3005E10.unk_05 = 4; gUnknown_3005E10.unk_05 = 4;
} }
break; break;
case 23: case ID_SYSTEM_CONFIG_REQ:
if (r6 == 0) if (reqResult == 0)
{ {
gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05; gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05;
gUnknown_3005E10.unk_05 = 0; gUnknown_3005E10.unk_05 = 0;
} }
break; break;
case 22: case ID_GAME_CONFIG_REQ:
if (r6 == 0) if (reqResult == 0)
{ {
gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 0; gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 0;
sub_80FE7F0(0x00, 0x00); sub_80FE7F0(0x00, 0x00);
} }
break; break;
case 25: case ID_SC_START_REQ:
if (r6 == 0) if (reqResult == 0)
{ {
gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 6; gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 6;
} }
break; break;
case 26: case ID_SC_POLL_REQ:
if (gUnknown_3005E10.unk_1a && --gUnknown_3005E10.unk_1a == 0) if (gUnknown_3005E10.unk_1a && --gUnknown_3005E10.unk_1a == 0)
{ {
gUnknown_3005E10.unk_04 = 7; gUnknown_3005E10.unk_04 = 7;
gUnknown_3005E10.unk_05 = 8; gUnknown_3005E10.unk_05 = 8;
} }
break; break;
case 27: case ID_SC_END_REQ:
if (r6 == 0) if (reqResult == 0)
{ {
gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05; gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05;
gUnknown_3005E10.unk_05 = 0; gUnknown_3005E10.unk_05 = 0;
@@ -636,8 +636,8 @@ static void sub_80FDC98(u16 r8, u16 r6)
} }
} }
break; break;
case 28: case ID_SP_START_REQ:
if (r6 == 0) if (reqResult == 0)
{ {
if (gUnknown_3005E10.unk_0b == 1 && gUnknown_3005E10.unk_1a > 1) 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; gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 10;
} }
break; break;
case 29: case ID_SP_POLL_REQ:
if (r6 == 0) if (reqResult == 0)
{ {
sp0 = sub_80FE778(); sp0 = sub_80FE778();
gUnknown_3005E10.unk_14 = sp0; gUnknown_3005E10.unk_14 = sp0;
@@ -669,8 +669,8 @@ static void sub_80FDC98(u16 r8, u16 r6)
gUnknown_3005E10.unk_05 = 0; gUnknown_3005E10.unk_05 = 0;
} }
break; break;
case 30: case ID_SP_END_REQ:
if (r6 == 0) if (reqResult == 0)
{ {
gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05; gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05;
if (gUnknown_3005E10.unk_07 == 0) if (gUnknown_3005E10.unk_07 == 0)
@@ -687,14 +687,14 @@ static void sub_80FDC98(u16 r8, u16 r6)
} }
} }
break; break;
case 31: case ID_CP_START_REQ:
if (r6 == 0) if (reqResult == 0)
{ {
gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 13; gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 13;
} }
break; break;
case 32: case ID_CP_POLL_REQ:
if (r6 == 0 && !rfu_getConnectParentStatus(&sp0, &gUnknown_3005E10.unk_10) && !sp0) if (reqResult == 0 && !rfu_getConnectParentStatus(&sp0, &gUnknown_3005E10.unk_10) && !sp0)
{ {
gUnknown_3005E10.unk_04 = 14; gUnknown_3005E10.unk_04 = 14;
} }
@@ -703,8 +703,8 @@ static void sub_80FDC98(u16 r8, u16 r6)
gUnknown_3005E10.unk_04 = 14; gUnknown_3005E10.unk_04 = 14;
} }
break; break;
case 33: case ID_CP_END_REQ:
if (r6 == 0 && !rfu_getConnectParentStatus(&sp0, &gUnknown_3005E10.unk_10)) if (reqResult == 0 && !rfu_getConnectParentStatus(&sp0, &gUnknown_3005E10.unk_10))
{ {
if (!sp0) if (!sp0)
{ {
@@ -728,8 +728,8 @@ static void sub_80FDC98(u16 r8, u16 r6)
gUnknown_3005E10.unk_1e = 0; gUnknown_3005E10.unk_1e = 0;
} }
break; break;
case 50: case ID_CPR_START_REQ:
if (r6 == 0) if (reqResult == 0)
{ {
gUnknown_3005E10.unk_14 = gRfuLinkStatus->linkLossSlotFlag; gUnknown_3005E10.unk_14 = gRfuLinkStatus->linkLossSlotFlag;
gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 17; gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 17;
@@ -742,8 +742,8 @@ static void sub_80FDC98(u16 r8, u16 r6)
} }
} }
break; break;
case 51: case ID_CPR_POLL_REQ:
if (r6 == 0 && !rfu_CHILD_getConnectRecoveryStatus(&sp0) && sp0 < 2) if (reqResult == 0 && !rfu_CHILD_getConnectRecoveryStatus(&sp0) && sp0 < 2)
{ {
gUnknown_3005E10.unk_04 = 18; gUnknown_3005E10.unk_04 = 18;
} }
@@ -752,8 +752,8 @@ static void sub_80FDC98(u16 r8, u16 r6)
gUnknown_3005E10.unk_04 = 18; gUnknown_3005E10.unk_04 = 18;
} }
break; break;
case 52: case ID_CPR_END_REQ:
if (r6 == 0 && !rfu_CHILD_getConnectRecoveryStatus(&sp0)) if (reqResult == 0 && !rfu_CHILD_getConnectRecoveryStatus(&sp0))
{ {
if (!sp0) if (!sp0)
{ {
@@ -774,8 +774,8 @@ static void sub_80FDC98(u16 r8, u16 r6)
gUnknown_3005E10.unk_1e = 0; gUnknown_3005E10.unk_1e = 0;
} }
break; break;
case 39: case ID_MS_CHANGE_REQ:
if (r6 == 0) if (reqResult == 0)
{ {
if (gUnknown_3005E10.unk_05 == 22) if (gUnknown_3005E10.unk_05 == 22)
{ {
@@ -791,7 +791,7 @@ static void sub_80FDC98(u16 r8, u16 r6)
sub_80FE7F0(0x41, 0x00); sub_80FE7F0(0x41, 0x00);
gUnknown_3005E10.unk_24 |= 1 << gUnknown_3005E10.unk_10; gUnknown_3005E10.unk_24 |= 1 << gUnknown_3005E10.unk_10;
gUnknown_3005E10.unk_28[gUnknown_3005E10.unk_10] = gUnknown_3005E10.unk_26; 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 = &sp0;
*tmp = rfu_NI_CHILD_setSendGameName(gUnknown_3005E10.unk_10, 0x0e); *tmp = rfu_NI_CHILD_setSendGameName(gUnknown_3005E10.unk_10, 0x0e);
if (*tmp) if (*tmp)
@@ -805,8 +805,8 @@ static void sub_80FDC98(u16 r8, u16 r6)
} }
} }
break; break;
case 61: case ID_STOP_MODE_REQ:
if (r6 == 0) if (reqResult == 0)
{ {
gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 0; gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 0;
sub_80FE7F0(0x42, 0x00); sub_80FE7F0(0x42, 0x00);
@@ -815,7 +815,7 @@ static void sub_80FDC98(u16 r8, u16 r6)
} }
gUnknown_3005E10.unk_0e = 1; 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_REQ_RFUStatus();
rfu_waitREQComplete(); rfu_waitREQComplete();
@@ -826,13 +826,13 @@ static void sub_80FDC98(u16 r8, u16 r6)
stwiRecvBuffer[4] = gRfuLinkStatus->connSlotFlag; stwiRecvBuffer[4] = gRfuLinkStatus->connSlotFlag;
stwiRecvBuffer[5] = 1; stwiRecvBuffer[5] = 1;
sub_80FD850(0x29); sub_80FD850(0x29);
r6 = 0; reqResult = 0;
} }
} }
switch (r8) switch (reqCommandId)
{ {
case 48: case ID_DISCONNECT_REQ:
if (r6 == 0) if (reqResult == 0)
{ {
stwiRecvBuffer = rfu_getSTWIRecvBuffer()->rxPacketAlloc.rfuPacket8.data; stwiRecvBuffer = rfu_getSTWIRecvBuffer()->rxPacketAlloc.rfuPacket8.data;
gUnknown_3005E10.unk_14 = stwiRecvBuffer[8]; gUnknown_3005E10.unk_14 = stwiRecvBuffer[8];
@@ -891,32 +891,32 @@ static void sub_80FDC98(u16 r8, u16 r6)
} }
} }
break; break;
case 38: case ID_DATA_RX_REQ:
sub_80FE6F0(); sub_80FE6F0();
if (gRfuLinkStatus->parentChild != MODE_NEUTRAL) if (gRfuLinkStatus->parentChild != MODE_NEUTRAL)
{ {
sub_80FE7F0(0x50, 0x00); sub_80FE7F0(0x50, 0x00);
} }
break; break;
case 16: case ID_RESET_REQ:
case 61: case ID_STOP_MODE_REQ:
if (r6 == 0) if (reqResult == 0)
{ {
gUnknown_3005E10.unk_0d = 0; gUnknown_3005E10.unk_0d = 0;
gUnknown_3005E10.unk_01 = 0; gUnknown_3005E10.unk_01 = 0;
gUnknown_3005E10.unk_00 = 0;; gUnknown_3005E10.unk_00 = 0;;
gUnknown_3005E10.unk_06 = -1; gUnknown_3005E10.unk_06 = -1;
sub_80FEAF4(); sub_80FEAF4();
if (r8 == 61) if (reqCommandId == 61)
{ {
sub_80FD484(); sub_80FD484();
} }
} }
break; 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->parentChild = MODE_PARENT;
gRfuLinkStatus->connSlotFlag = 0xF; gRfuLinkStatus->connSlotFlag = 0xF;
@@ -926,8 +926,8 @@ static void sub_80FDC98(u16 r8, u16 r6)
} }
else else
{ {
gUnknown_3005E10.unk_14 = r8; gUnknown_3005E10.unk_14 = reqCommandId;
gUnknown_3005E10.unk_16 = r6; gUnknown_3005E10.unk_16 = reqResult;
if (gUnknown_3005E10.unk_0e) if (gUnknown_3005E10.unk_0e)
{ {
gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 0; gUnknown_3005E10.unk_04 = gUnknown_3005E10.unk_05 = 0;
@@ -936,7 +936,7 @@ static void sub_80FDC98(u16 r8, u16 r6)
sub_80FEAF4(); sub_80FEAF4();
} }
} }
if (r8 == 0xFF) if (reqCommandId == ID_CLOCK_SLAVE_MS_CHANGE_ERROR_BY_DMA_REQ)
{ {
sub_80FE7F0(0xf2, 0x00); sub_80FE7F0(0xf2, 0x00);
sub_80FEAF4(); sub_80FEAF4();
@@ -1042,7 +1042,7 @@ static void sub_80FE418(void)
{ {
gUnknown_3005E10.unk_24 &= ~r4; gUnknown_3005E10.unk_24 &= ~r4;
gUnknown_3005E10.unk_28[i] = 0; gUnknown_3005E10.unk_28[i] = 0;
rfu_clearSlot(0x08, i); rfu_clearSlot(TYPE_NI_RECV, i);
} }
if (r5 & 0x04) if (r5 & 0x04)
{ {
@@ -1110,7 +1110,7 @@ static void sub_80FE63C(void)
{ {
sub_80FEB14(); sub_80FEB14();
gUnknown_3005E10.unk_04 = 24; 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_24 &= ~(1 << gUnknown_3005E10.unk_10);
gUnknown_3005E10.unk_28[gUnknown_3005E10.unk_10] = 0; 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) 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; 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_24 &= ~(1 << gUnknown_3005E10.unk_10);
gUnknown_3005E10.unk_28[gUnknown_3005E10.unk_10] = 0; gUnknown_3005E10.unk_28[gUnknown_3005E10.unk_10] = 0;
sub_80FE7F0(0x24, 0x00); 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) 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) if (flags)
{ {
rfu_changeSendTarget(0x20, i, flags ^ gRfuSlotStatusNI[i]->send.bmSlot); rfu_changeSendTarget(TYPE_NI, i, flags ^ gRfuSlotStatusNI[i]->send.bmSlot);
} }
} }
} }
+57 -54
View File
@@ -21,16 +21,16 @@ struct UnkRfuStruct_8010A14{
u8 fill_a0[0x5c]; 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 EWRAM_DATA struct UnkLinkRfuStruct_02022B44 gUnknown_203AC08 = {};
static struct RfuAPIBuffer gRfuAPIBuffer; static struct RfuAPIBuffer gRfuAPIBuffer;
static u8 gUnknown_3001FF8[14]; static u8 gUnknown_3001FF8[14];
static u16 gUnknown_3002008[7]; static u16 gUnknown_3002008[7];
struct GFtgtGname gUnknown_3005440; struct GFtgtGname gHostRFUtgtGnameBuffer;
struct UnkRfuStruct_2 Rfu; struct UnkRfuStruct_2 Rfu;
u8 gUnknown_3005E00[PLAYER_NAME_LENGTH]; u8 gHostRFUtgtUnameBuffer[PLAYER_NAME_LENGTH];
static void sub_80F8AA4(void); static void sub_80F8AA4(void);
static void sub_80F8AEC(void); static void sub_80F8AEC(void);
@@ -61,22 +61,25 @@ static void sub_80FC028(u8 taskId);
static void sub_80FC208(void); static void sub_80FC208(void);
static void nullsub_89(u8 taskId); static void nullsub_89(u8 taskId);
static const struct UnkLinkRfuStruct_02022B2C gUnknown_843EBB4 = { static const struct UnkLinkRfuStruct_02022B2C sRfuReqConfigTemplate = {
.unk_00 = 0x04, .maxMFrame = 4,
.unk_01 = 0x20, .mcTimer = 32,
.unk_02 = 0x0000, .availSlotFlag = 0,
.unk_04 = 0x00, .mbootFlag = 0,
.unk_06 = 0x0002, .serialNo = 0x0002,
.unk_08 = &gUnknown_3005440, .gname = &gHostRFUtgtGnameBuffer,
.unk_0c = gUnknown_3005E00, .uname = gHostRFUtgtUnameBuffer,
.unk_10 = 0x01, .unk_10 = 0x01,
.unk_11 = 0x00, .unk_11 = 0x00,
.unk_12 = 0x0258, .unk_12 = 0x0258,
.unk_14 = 0x012c .unk_14 = 0x012c
}; };
static const u8 gUnknown_843EBCC[] = { static const u8 sAvailSlots[] = {
0, 3, 2, 1, 0 [1] = AVAIL_SLOT1,
[2] = AVAIL_SLOT2,
[3] = AVAIL_SLOT3,
[4] = AVAIL_SLOT4
}; };
static const u32 gUnknown_843EBD4[] = { static const u32 gUnknown_843EBD4[] = {
@@ -230,7 +233,7 @@ static void sub_80F8738(u8 taskId)
switch (Rfu.unk_04) switch (Rfu.unk_04)
{ {
case 0: case 0:
sub_80FD4B0(&gUnknown_203ABF0); sub_80FD4B0(&sRfuReqConfig);
Rfu.unk_04 = 1; Rfu.unk_04 = 1;
gTasks[taskId].data[1] = 1; gTasks[taskId].data[1] = 1;
break; break;
@@ -316,7 +319,7 @@ static void sub_80F893C(u8 taskId)
switch (Rfu.unk_04) switch (Rfu.unk_04)
{ {
case 0: case 0:
sub_80FD4B0(&gUnknown_843EBB4); sub_80FD4B0(&sRfuReqConfigTemplate);
Rfu.unk_04 = 1; Rfu.unk_04 = 1;
gTasks[taskId].data[1] = 1; gTasks[taskId].data[1] = 1;
break; break;
@@ -349,8 +352,8 @@ static void sub_80F893C(u8 taskId)
case 12: case 12:
{ {
u8 r5 = 1 << Rfu.unk_c3e; u8 r5 = 1 << Rfu.unk_c3e;
rfu_clearSlot(12, Rfu.unk_c3e); rfu_clearSlot(TYPE_NI_SEND | TYPE_NI_RECV, Rfu.unk_c3e);
rfu_setRecvBuffer(16, Rfu.unk_c3e, Rfu.unk_c3f, sizeof(Rfu.unk_c3f)); 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)); rfu_UNI_setSendData(r5, Rfu.unk_4c, sizeof(Rfu.unk_4c));
gTasks[taskId].data[1] = 8; gTasks[taskId].data[1] = 8;
DestroyTask(taskId); DestroyTask(taskId);
@@ -373,8 +376,8 @@ static void sub_80F8AA4(void)
{ {
if (r5 & 1) if (r5 & 1)
{ {
rfu_setRecvBuffer(16, i, Rfu.unk_14[i], sizeof(Rfu.unk_14[i])); rfu_setRecvBuffer(TYPE_UNI, i, Rfu.unk_14[i], sizeof(Rfu.unk_14[i]));
rfu_clearSlot(3, i); rfu_clearSlot(TYPE_UNI_SEND | TYPE_UNI_RECV, i);
} }
r5 >>= 1; r5 >>= 1;
} }
@@ -401,7 +404,7 @@ static void sub_80F8B34(u8 taskId)
switch (Rfu.unk_04) switch (Rfu.unk_04)
{ {
case 0: case 0:
sub_80FD4B0(&gUnknown_203ABF0); sub_80FD4B0(&sRfuReqConfig);
Rfu.unk_04 = 1; Rfu.unk_04 = 1;
gTasks[taskId].data[1] = 1; gTasks[taskId].data[1] = 1;
break; break;
@@ -785,12 +788,12 @@ static bool32 sub_80F9204(void)
if (Rfu.unk_ce5 && !Rfu.unk_cd9) if (Rfu.unk_ce5 && !Rfu.unk_cd9)
{ {
gUnknown_203AC08.unk_0e = 0; 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++) for (i = 0; i < RFU_CHILD_MAX; i++)
{ {
if ((Rfu.unk_ce5 >> i) & 1) 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); 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) struct GFtgtGname *sub_80F9800(void)
{ {
return &gUnknown_3005440; return &gHostRFUtgtGnameBuffer;
} }
bool32 IsSendingKeysToRfu(void) bool32 IsSendingKeysToRfu(void)
@@ -1498,7 +1501,7 @@ static bool8 sub_80FA528(void)
{ {
Rfu.unk_cd1[i] = 9; Rfu.unk_cd1[i] = 9;
Rfu.unk_cd5[i] = 10; 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); rfu_NI_setSendData(1 << i, 8, Rfu.unk_cd1 + i, 1);
retval = TRUE; retval = TRUE;
} }
@@ -1506,7 +1509,7 @@ static bool8 sub_80FA528(void)
} }
else if (gRfuSlotStatusNI[Rfu.unk_c3e]->recv.state == SLOT_STATE_RECV_FAILED) 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); u8 r4 = sub_80FBC70(a2, a1);
Rfu.unk_cd1[r4] = a0; 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); rfu_NI_setSendData(1 << r4, 8, Rfu.unk_cd1 + r4, 1);
} }
void sub_80FA6BC(void) void sub_80FA6BC(void)
{ {
Rfu.unk_c85 = 8; 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); 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) if (Rfu.unk_cd5[i] == 10)
Rfu.unk_cd5[i] = 11; 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 (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) 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) 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); sub_80FB9E4(Rfu.unk_c86, 0);
retval = Rfu.unk_c86; retval = Rfu.unk_c86;
} }
else if (gRfuSlotStatusNI[Rfu.unk_c3e]->recv.state == SLOT_STATE_RECV_FAILED) 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; retval = 6;
} }
return retval; return retval;
@@ -1905,44 +1908,44 @@ bool32 sub_80FAEF0(void)
static void sub_80FAF1C(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); memset(&gHostRFUtgtGnameBuffer, 0, RFU_GAME_NAME_LENGTH);
sub_80FCB54(&gUnknown_3005440, 0, 0, 0); InitHostRFUtgtGname(&gHostRFUtgtGnameBuffer, 0, 0, 0);
} }
void sub_80FAF58(u8 a0, u32 a1, u32 a2) 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) void sub_80FAF74(bool32 a0, bool32 a1)
{ {
gUnknown_3005440.unk_00.unk_00_4 = a0; gHostRFUtgtGnameBuffer.unk_00.unk_00_4 = a0;
gUnknown_3005440.unk_00.unk_00_5 = a1; gHostRFUtgtGnameBuffer.unk_00.unk_00_5 = a1;
} }
void sub_80FAFA0(u32 type, u32 species, u32 level) void sub_80FAFA0(u32 type, u32 species, u32 level)
{ {
gUnknown_3005440.type = type; gHostRFUtgtGnameBuffer.type = type;
gUnknown_3005440.species = species; gHostRFUtgtGnameBuffer.species = species;
gUnknown_3005440.level = level; gHostRFUtgtGnameBuffer.level = level;
} }
void sub_80FAFE0(u8 a0) void sub_80FAFE0(u8 a0)
{ {
gUnknown_3005440.unk_0a_7 = a0; gHostRFUtgtGnameBuffer.unk_0a_7 = a0;
rfu_REQ_configGameData(0, 2, (void *)&gUnknown_3005440, gUnknown_3005E00); rfu_REQ_configGameData(0, 2, (void *)&gHostRFUtgtGnameBuffer, gHostRFUtgtUnameBuffer);
} }
void sub_80FB008(u8 a0, u32 a1, u32 a2) void sub_80FB008(u8 a0, u32 a1, u32 a2)
{ {
if (a0) if (a0)
sub_80FAF58(a0, a1, a2); 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) void sub_80FB030(u32 a0)
@@ -2028,7 +2031,7 @@ static void sub_80FB184(u8 a0, u8 unused1)
{ {
Rfu.unk_cd1[i] = 0; Rfu.unk_cd1[i] = 0;
Rfu.unk_cd5[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 else
{ {
@@ -2115,8 +2118,8 @@ static void sub_80FB37C(u8 a0, u8 unused1)
Rfu.unk_04 = 11; Rfu.unk_04 = 11;
Rfu.unk_c85 = 0; Rfu.unk_c85 = 0;
Rfu.unk_c86 = 0; Rfu.unk_c86 = 0;
rfu_setRecvBuffer(0x20, Rfu.unk_c3e, &Rfu.unk_c86, 1); rfu_setRecvBuffer(TYPE_NI, Rfu.unk_c3e, &Rfu.unk_c86, 1);
rfu_setRecvBuffer(0x10, Rfu.unk_c3e, Rfu.unk_c3f, 70); rfu_setRecvBuffer(TYPE_UNI, Rfu.unk_c3e, Rfu.unk_c3f, 70);
break; break;
case 0x25: case 0x25:
sub_80FB9E4(2, 0x25); sub_80FB9E4(2, 0x25);
@@ -2272,7 +2275,7 @@ static void sub_80FB5EC(u8 a0, u8 unused1)
case 0x24: case 0x24:
Rfu.unk_04 = 0xD; Rfu.unk_04 = 0xD;
sub_80FB9E4(3, 0); 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; break;
case 0x25: case 0x25:
sub_80FB9E4(2, a0); sub_80FB9E4(2, a0);
@@ -2442,8 +2445,8 @@ void sub_80FBB8C(u32 a0)
Rfu.unk_0c = 1; Rfu.unk_0c = 1;
sub_80FAF1C(); sub_80FAF1C();
sub_80FD430(sub_80FB184, NULL); sub_80FD430(sub_80FB184, NULL);
gUnknown_203ABF0 = gUnknown_843EBB4; sRfuReqConfig = sRfuReqConfigTemplate;
gUnknown_203ABF0.unk_02 = gUnknown_843EBCC[a0 - 1]; sRfuReqConfig.availSlotFlag = sAvailSlots[a0 - 1];
sub_80F8E74(); sub_80F8E74();
} }
@@ -2462,9 +2465,9 @@ void sub_80FBC00(void)
Rfu.unk_0c = 2; Rfu.unk_0c = 2;
sub_80FAF1C(); sub_80FAF1C();
sub_80FD430(sub_80FB5EC, NULL); sub_80FD430(sub_80FB5EC, NULL);
gUnknown_203ABF0 = gUnknown_843EBB4; sRfuReqConfig = sRfuReqConfigTemplate;
gUnknown_203ABF0.unk_11 = 0; sRfuReqConfig.unk_11 = 0;
gUnknown_203ABF0.unk_12 = 0x258; sRfuReqConfig.unk_12 = 0x258;
Rfu.unk_67 = CreateTask(sub_80F8B34, 1); Rfu.unk_67 = CreateTask(sub_80F8B34, 1);
} }
@@ -2500,7 +2503,7 @@ static void sub_80FBCF8(u32 a0)
rfu_REQ_disconnect(a0); rfu_REQ_disconnect(a0);
rfu_waitREQComplete(); rfu_waitREQComplete();
Rfu.unk_ce2 &= ~(a0); 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_UNI_setSendData(Rfu.unk_ce2, Rfu.unk_c87, 70);
Rfu.unk_cda = sub_80F886C(Rfu.unk_ce2); Rfu.unk_cda = sub_80F886C(Rfu.unk_ce2);
} }
+32 -32
View File
@@ -502,7 +502,7 @@ static void ASCIIToPkmnStr(u8 *q1, const u8 *q2)
} }
#ifdef NONMATCHING #ifdef NONMATCHING
static u8 sub_80FCADC(u8 maxFlags) static u8 GetConnectedChildStrength(u8 maxFlags)
{ {
u8 flagCount = 0; u8 flagCount = 0;
u8 flags = gRfuLinkStatus->connSlotFlag; u8 flags = gRfuLinkStatus->connSlotFlag;
@@ -533,7 +533,7 @@ static u8 sub_80FCADC(u8 maxFlags)
} }
#else #else
NAKED NAKED
static u8 sub_80FCADC(u8 maxFlags) static u8 GetConnectedChildStrength(u8 maxFlags)
{ {
asm_unified("\tpush {r4-r7,lr}\n" asm_unified("\tpush {r4-r7,lr}\n"
"\tlsls r0, 24\n" "\tlsls r0, 24\n"
@@ -603,7 +603,7 @@ static u8 sub_80FCADC(u8 maxFlags)
} }
#endif #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; 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); 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; bool8 retVal;
@@ -638,13 +638,13 @@ bool8 sub_80FCC3C(struct GFtgtGname *buff1, u8 *buff2, u8 idx)
retVal = TRUE; retVal = TRUE;
if (sub_80FA44C(gRfuLinkStatus->partner[idx].serialNo) && ((gRfuLinkStatus->getNameFlag >> idx) & 1)) if (sub_80FA44C(gRfuLinkStatus->partner[idx].serialNo) && ((gRfuLinkStatus->getNameFlag >> idx) & 1))
{ {
memcpy(buff1, &gRfuLinkStatus->partner[idx].gname, RFU_GAME_NAME_LENGTH); memcpy(gname, &gRfuLinkStatus->partner[idx].gname, RFU_GAME_NAME_LENGTH);
memcpy(buff2, gRfuLinkStatus->partner[idx].uname, RFU_USER_NAME_LENGTH); memcpy(uname, gRfuLinkStatus->partner[idx].uname, RFU_USER_NAME_LENGTH);
} }
else else
{ {
memset(buff1, 0, RFU_GAME_NAME_LENGTH); memset(gname, 0, RFU_GAME_NAME_LENGTH);
memset(buff2, 0, RFU_USER_NAME_LENGTH); memset(uname, 0, RFU_USER_NAME_LENGTH);
} }
} }
else else
@@ -652,39 +652,39 @@ bool8 sub_80FCC3C(struct GFtgtGname *buff1, u8 *buff2, u8 idx)
retVal = FALSE; retVal = FALSE;
if (sub_80FA44C(gRfuLinkStatus->partner[idx].serialNo)) if (sub_80FA44C(gRfuLinkStatus->partner[idx].serialNo))
{ {
memcpy(buff1, &gRfuLinkStatus->partner[idx].gname, RFU_GAME_NAME_LENGTH); memcpy(gname, &gRfuLinkStatus->partner[idx].gname, RFU_GAME_NAME_LENGTH);
memcpy(buff2, gRfuLinkStatus->partner[idx].uname, RFU_USER_NAME_LENGTH); memcpy(uname, gRfuLinkStatus->partner[idx].uname, RFU_USER_NAME_LENGTH);
} }
else else
{ {
memset(buff1, 0, RFU_GAME_NAME_LENGTH); memset(gname, 0, RFU_GAME_NAME_LENGTH);
memset(buff2, 0, RFU_USER_NAME_LENGTH); memset(uname, 0, RFU_USER_NAME_LENGTH);
} }
} }
return retVal; 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; bool8 retVal = FALSE;
if (gRfuLinkStatus->partner[idx].serialNo == 0x7F7D) if (gRfuLinkStatus->partner[idx].serialNo == 0x7F7D)
{ {
memcpy(buff1, gRfuLinkStatus->partner[idx].gname, RFU_GAME_NAME_LENGTH); memcpy(gname, gRfuLinkStatus->partner[idx].gname, RFU_GAME_NAME_LENGTH);
memcpy(buff2, gRfuLinkStatus->partner[idx].uname, RFU_USER_NAME_LENGTH); memcpy(uname, gRfuLinkStatus->partner[idx].uname, RFU_USER_NAME_LENGTH);
retVal = TRUE; retVal = TRUE;
} }
else else
{ {
memset(buff1, 0, RFU_GAME_NAME_LENGTH); memset(gname, 0, RFU_GAME_NAME_LENGTH);
memset(buff2, 0, RFU_USER_NAME_LENGTH); memset(uname, 0, RFU_USER_NAME_LENGTH);
} }
return retVal; 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(gname, &gHostRFUtgtGnameBuffer, RFU_GAME_NAME_LENGTH);
memcpy(buff2, gUnknown_3005E00, RFU_USER_NAME_LENGTH); memcpy(uname, gHostRFUtgtUnameBuffer, RFU_USER_NAME_LENGTH);
} }
void CreateWirelessStatusIndicatorSprite(u8 x, u8 y) void CreateWirelessStatusIndicatorSprite(u8 x, u8 y)
@@ -734,7 +734,7 @@ void LoadWirelessStatusIndicatorSpriteGfx(void)
gWirelessStatusIndicatorSpriteId = 0xFF; gWirelessStatusIndicatorSpriteId = 0xFF;
} }
static u8 sub_80FCEE4(void) static u8 GetParentSignalStrength(void)
{ {
u8 i; u8 i;
u8 flags = gRfuLinkStatus->connSlotFlag; u8 flags = gRfuLinkStatus->connSlotFlag;
@@ -749,7 +749,7 @@ static u8 sub_80FCEE4(void)
return 0; return 0;
} }
static void sub_80FCF1C(struct Sprite *sprite, s32 signalStrengthAnimNum) static void SetAndRestartWirelessStatusIndicatorAnim(struct Sprite *sprite, s32 signalStrengthAnimNum)
{ {
if (sprite->data[2] != 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) if (gWirelessStatusIndicatorSpriteId != 0xFF && gSprites[gWirelessStatusIndicatorSpriteId].data[7] == 0x1234)
{ {
struct Sprite *sprite = &gSprites[gWirelessStatusIndicatorSpriteId]; struct Sprite *sprite = &gSprites[gWirelessStatusIndicatorSpriteId];
u8 signalStrength = 255; u8 signalStrength = RFU_LINK_ICON_LEVEL4_MAX;
u8 i = 0; u8 i = 0;
if (gRfuLinkStatus->parentChild == MODE_PARENT) if (gRfuLinkStatus->parentChild == MODE_PARENT)
{ {
for (i = 0; i < GetLinkPlayerCount() - 1; i++) 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 else
{ {
signalStrength = sub_80FCEE4(); signalStrength = GetParentSignalStrength();
} }
if (sub_80FC1B0() == TRUE) if (sub_80FC1B0() == TRUE)
{ {
sprite->data[0] = 4; sprite->data[0] = 4;
} }
else if (signalStrength < 25) else if (signalStrength <= RFU_LINK_ICON_LEVEL1_MAX)
{ {
sprite->data[0] = 3; 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; 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; sprite->data[0] = 1;
} }
else if (signalStrength >= 229) else if (signalStrength >= RFU_LINK_ICON_LEVEL4_MIN)
{ {
sprite->data[0] = 0; sprite->data[0] = 0;
} }
if (sprite->data[0] != sprite->data[1]) if (sprite->data[0] != sprite->data[1])
{ {
sub_80FCF1C(sprite, sprite->data[0]); SetAndRestartWirelessStatusIndicatorAnim(sprite, sprite->data[0]);
sprite->data[1] = sprite->data[0]; sprite->data[1] = sprite->data[0];
} }
if (sprite->anims[sprite->data[2]][sprite->data[4]].frame.duration < sprite->data[3]) if (sprite->anims[sprite->data[2]][sprite->data[4]].frame.duration < sprite->data[3])
+1 -1
View File
@@ -352,7 +352,7 @@ static void VBlankIntr(void)
sub_800DD28(); sub_800DD28();
Random(); Random();
sub_80FCF34(); UpdateWirelessStatusIndicatorSprite();
INTR_CHECK |= INTR_FLAG_VBLANK; INTR_CHECK |= INTR_FLAG_VBLANK;
gMain.intrCheck |= INTR_FLAG_VBLANK; gMain.intrCheck |= INTR_FLAG_VBLANK;