summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-01-29 16:10:52 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2020-01-29 16:10:52 -0500
commit664fa0130a5381c5f647565a71f8fe248a0ebafa (patch)
treea2fc63f81d49c22b9534834e003dbf15fd3050e7
parent1cc9d0eea9a8ca4ff03ff30c2eadacb35557e1d3 (diff)
More doccing of linkManager
-rw-r--r--include/librfu.h14
-rw-r--r--include/link_rfu.h54
-rw-r--r--src/librfu_rfu.c29
-rw-r--r--src/link.c2
-rw-r--r--src/link_rfu.c549
-rw-r--r--src/link_rfu_2.c325
-rw-r--r--src/party_menu.c4
-rw-r--r--src/union_room.c10
8 files changed, 495 insertions, 492 deletions
diff --git a/include/librfu.h b/include/librfu.h
index 97fd8044e..8fdee7317 100644
--- a/include/librfu.h
+++ b/include/librfu.h
@@ -473,16 +473,6 @@ struct RfuSIO32Id
u16 unkA;
};
-struct RfuAPIBuffer
-{
- struct RfuLinkStatus linkStatus;
- struct RfuStatic static_;
- struct RfuFixed fixed;
- struct RfuSlotStatusNI NI[RFU_CHILD_MAX];
- struct RfuSlotStatusUNI UNI[RFU_CHILD_MAX];
- struct RfuIntrStruct intr;
-};
-
extern struct STWIStatus *gSTWIStatus;
extern struct RfuLinkStatus *gRfuLinkStatus;
extern struct RfuStatic *gRfuStatic;
@@ -499,7 +489,7 @@ s32 AgbRFU_checkID(u8);
// librfu_rfu
// API Initialization and Initial Settings
// API Initialization
-u16 rfu_initializeAPI(struct RfuAPIBuffer *APIBuffer, u16 buffByteSize, IntrFunc *sioIntrTable_p, bool8 copyInterruptToRam);
+u16 rfu_initializeAPI(u32 *APIBuffer, u16 buffByteSize, IntrFunc *sioIntrTable_p, bool8 copyInterruptToRam);
// Set Timer Interrupt
void rfu_setTimerInterrupt(u8 timerNo, IntrFunc *timerIntrTable_p);
// Resident Function called from within a V-Blank Interrupt
@@ -600,7 +590,7 @@ u16 rfu_MBOOT_CHILD_inheritanceLinkStatus(void);
// For Debug
// Obtain address of the SWTI-layer receive buffer
-struct RfuIntrStruct *rfu_getSTWIRecvBuffer(void);
+u8 *rfu_getSTWIRecvBuffer(void);
// Obtain RFU state
void rfu_REQ_RFUStatus(void);
u16 rfu_getRFUStatus(u8 *rfuState);
diff --git a/include/link_rfu.h b/include/link_rfu.h
index f90de0daf..277cdf018 100644
--- a/include/link_rfu.h
+++ b/include/link_rfu.h
@@ -259,18 +259,17 @@ struct UnkRfuStruct_Sub_Unused
/* 0x203 */ vu8 unk_203;
};
-struct UnkRfuStruct_2
+typedef struct UnkRfuStruct_2
{
/* 0x000 */ void (*RfuFunc)(void);
/* 0x004 */ u16 unk_04;
/* 0x006 */ u8 filler_06[4];
- /* 0x00a */ u16 unk_0a;
+ /* 0x00a */ u16 linkman_msg;
/* 0x00c */ u8 unk_0c; // parentChildMode?
/* 0x00d */ u8 playerCount;
/* 0x00e */ u8 unk_0e;
/* 0x00f */ u8 unk_0f;
- /* 0x010 */ u16 unk_10;
- /* 0x012 */ u16 unk_12;
+ /* 0x010 */ u16 linkman_param[2];
/* 0x014 */ u8 unk_14[RFU_CHILD_MAX][14];
/* 0x04c */ u8 unk_4c[14];
/* 0x05a */ u8 unk_5a;
@@ -286,7 +285,7 @@ struct UnkRfuStruct_2
/* 0x0e9 */ u8 unk_e9[5];
/* 0x0ee */ vu8 unk_ee;
/* 0x0ef */ u8 unk_ef;
- /* 0x0f0 */ u8 unk_f0;
+ /* 0x0f0 */ u8 linkLossRecoveryState;
/* 0x0f1 */ u8 unk_f1;
/* 0x0f2 */ u16 unk_f2[6];
/* 0x0fe */ u16 unk_fe;
@@ -302,7 +301,7 @@ struct UnkRfuStruct_2
/* 0x8f7 */ u8 unk_c3f[70];
/* 0x93d */ u8 unk_c85;
/* 0x93e */ u8 unk_c86;
- /* 0x93f */ u8 unk_c87[5][7][2];
+ /* 0x93f */ u8 recvCmds[5][7][2];
/* 0x985 */ u8 unk_ccd;
/* 0x986 */ u8 unk_cce; // childId
/* 0x987 */ u8 unk_ccf;
@@ -315,8 +314,8 @@ struct UnkRfuStruct_2
/* 0x994 */ vu8 unk_cdc;
/* 0x995 */ u8 unk_cdd;
/* 0x996 */ u8 unk_cde[RFU_CHILD_MAX];
- /* 0x99a */ u8 unk_ce2;
- /* 0x99b */ u8 unk_ce3;
+ /* 0x99a */ u8 bm_PartnerFlags;
+ /* 0x99b */ u8 bm_DisconnectSlot;
/* 0x99c */ u8 unk_ce4;
/* 0x99d */ u8 unk_ce5;
/* 0x99e */ u8 unk_ce6;
@@ -325,12 +324,29 @@ struct UnkRfuStruct_2
/* 0x9a1 */ u8 unk_ce9;
/* 0x9a2 */ u8 unk_cea[RFU_CHILD_MAX];
/* 0x9a6 */ u8 unk_cee[RFU_CHILD_MAX];
-}; // size: 0x9AC
+} GF_RFU_MANAGER; // size: 0x9AC
extern struct linkManagerTag lman;
extern struct GFtgtGname gHostRFUtgtGnameBuffer;
extern u8 gHostRFUtgtUnameBuffer[];
+// Official signatures
+u32 rfu_LMAN_REQBN_softReset_and_checkID(void);
+void rfu_LMAN_requestChangeAgbClockMaster(void);
+void rfu_LMAN_initializeRFU(INIT_PARAM *init_params);
+u8 rfu_LMAN_establishConnection(u8 parent_child, u16 connect_period, u16 name_accept_period, u16 *acceptable_serialNo_list);
+void rfu_LMAN_stopManager(bool8 forced_stop_and_RFU_reset_flag);
+void rfu_LMAN_setMSCCallback(void (*MSC_callback_p)(u16));
+void rfu_LMAN_REQ_sendData(bool8 clockChangeFlag);
+void rfu_LMAN_powerDownRFU(void);
+u8 rfu_LMAN_CHILD_connectParent(u16 parentId, u16 connect_period);
+u8 rfu_LMAN_setLinkRecovery(u8 enable_flag, u16 recovery_period);
+void rfu_LMAN_manager_entity(u32 rand);
+void rfu_LMAN_syncVBlank(void);
+u8 rfu_LMAN_initializeManager(void (*LMAN_callback_p)(u8, u8), void (*MSC_callback_p)(u16));
+void rfu_LMAN_forceChangeSP(void);
+
+// GameFreak signatures
void AddTextPrinterToWindow1(const u8 *str);
bool32 MG_PrintTextOnWindow1AndWaitButton(u8 * cmdPtr, const u8 * src);
void LinkRfu_FatalError(void);
@@ -346,11 +362,10 @@ u8 sub_8116DE0(void);
void sub_80FBB4C(void);
void sub_80F86F4(void);
void sub_80FB128(bool32 a0);
-u32 rfu_LMAN_REQBN_softReset_and_checkID(void);
bool32 IsSendingKeysToRfu(void);
void Rfu_set_zero(void);
u8 GetRfuPlayerCount(void);
-void sub_80F9828(void);
+void StartSendingKeysToRfu(void);
u8 LinkRfu_GetMultiplayerId(void);
bool32 Rfu_InitBlockSend(const u8 * src, size_t size);
bool8 sub_80FA0F8(u8 a0);
@@ -367,36 +382,23 @@ void sub_80F8DC0(void);
void sub_80FBB20(void);
bool8 sub_80FA484(bool32 a0);
void var_800D_set_xB(void);
-struct GFtgtGname *sub_80F9800(void);
+struct GFtgtGname *GetHostRFUtgtGname(void);
void UpdateWirelessStatusIndicatorSprite(void);
void InitRFU(void);
-void rfu_LMAN_requestChangeAgbClockMaster(void);
bool32 sub_80FBA00(void);
void sub_80FC478(struct UnkRfuStruct_2_Sub_124 *ptr);
void sub_80FC4D4(struct UnkRfuStruct_2_Sub_9e8 *ptr);
-void rfu_LMAN_initializeRFU(INIT_PARAM *init_params);
-u8 rfu_LMAN_establishConnection(u8 parent_child, u16 connect_period, u16 name_accept_period, u16 *acceptable_serialNo_list);
-void rfu_LMAN_stopManager(bool8 a0);
-void rfu_LMAN_setMSCCallback(void (*func)(u16));
-void sub_80FB9E4(u8 a0, u16 a1);
+void sub_80FB9E4(u8 a0, u16 msg);
u8 sub_80FB9F4(void);
-void rfu_LMAN_REQ_sendData(bool8 clockChangeFlag);
void sub_80FC588(struct UnkRfuStruct_2_Sub_124 *q1, u8 *q2);
-void rfu_LMAN_powerDownRFU(void);
-u8 rfu_LMAN_CHILD_connectParent(u16 parentId, u16 unk_1a);
bool8 sub_80FC79C(struct UnkRfuStruct_2_Sub_9e8 *q1, u8 *q2);
bool8 sub_80FC888(struct UnkRfuStruct_2_Sub_c1c *q1, u8 *q2);
void sub_80FC828(struct UnkRfuStruct_2_Sub_c1c *q1, const u8 *q2);
bool8 sub_80FC6E8(struct UnkRfuStruct_2_Sub_124 * a0, u8 *a1);
void sub_80FC63C(struct UnkRfuStruct_2_Sub_9e8 * a0, u8 *a1);
-u8 rfu_LMAN_setLinkRecovery(u8 a0, u16 a1);
-void rfu_LMAN_manager_entity(u32 a0);
void InitHostRFUtgtGname(struct GFtgtGname *data, u8 activity, bool32 r2, s32 r3);
-void rfu_LMAN_syncVBlank(void);
-u8 rfu_LMAN_initializeManager(void (*func1)(u8, u8), void (*func2)(u16));
-void rfu_LMAN_forceChangeSP(void);
void sub_80FAFE0(u8 a0);
bool32 sub_80FA44C(u32 a0);
bool8 sub_80FC1B0(void);
diff --git a/src/librfu_rfu.c b/src/librfu_rfu.c
index dccd342f2..1f7bfe76e 100644
--- a/src/librfu_rfu.c
+++ b/src/librfu_rfu.c
@@ -91,7 +91,7 @@ static const char lib_ver[] = "RFU_V1024";
static const char str_checkMbootLL[] = "RFU-MBOOT";
-u16 rfu_initializeAPI(struct RfuAPIBuffer *APIBuffer, u16 buffByteSize, IntrFunc *sioIntrTable_p, bool8 copyInterruptToRam)
+u16 rfu_initializeAPI(u32 *APIBuffer, u16 buffByteSize, IntrFunc *sioIntrTable_p, bool8 copyInterruptToRam)
{
u16 i;
u16 *dst;
@@ -109,21 +109,21 @@ u16 rfu_initializeAPI(struct RfuAPIBuffer *APIBuffer, u16 buffByteSize, IntrFunc
// An assert/debug print may have existed before, ie
// printf("%s %u < %u", "somefile.c:12345", buffByteSize, num)
// to push this into r3?
- r3 = sizeof(struct RfuAPIBuffer);
+ r3 = RFU_API_BUFF_SIZE_RAM - 0x28;
if (buffByteSize < r3)
return ERR_RFU_API_BUFF_SIZE;
}
if (!copyInterruptToRam)
{
- r3 = 0x504; // same issue as above
+ r3 = RFU_API_BUFF_SIZE_ROM - 0x28; // same issue as above
if (buffByteSize < r3)
return ERR_RFU_API_BUFF_SIZE;
}
- gRfuLinkStatus = &APIBuffer->linkStatus;
- gRfuStatic = &APIBuffer->static_;
- gRfuFixed = &APIBuffer->fixed;
- gRfuSlotStatusNI[0] = &APIBuffer->NI[0];
- gRfuSlotStatusUNI[0] = &APIBuffer->UNI[0];
+ gRfuLinkStatus = (void *)APIBuffer + 0;
+ gRfuStatic = (void *)APIBuffer + 0xb4;
+ gRfuFixed = (void *)APIBuffer + 0xdc;
+ gRfuSlotStatusNI[0] = (void *)APIBuffer + 0x1bc;
+ gRfuSlotStatusUNI[0] = (void *)APIBuffer + 0x37c;
for (i = 1; i < RFU_CHILD_MAX; ++i)
{
gRfuSlotStatusNI[i] = &gRfuSlotStatusNI[i - 1][1];
@@ -180,20 +180,20 @@ void rfu_REQ_PARENT_resumeRetransmitAndChange(void)
u16 rfu_UNI_PARENT_getDRAC_ACK(u8 *ackFlag)
{
- struct RfuIntrStruct *buf;
+ u8 *buf;
*ackFlag = 0;
if (gRfuLinkStatus->parentChild != MODE_PARENT)
return ERR_MODE_NOT_PARENT;
buf = rfu_getSTWIRecvBuffer();
- switch (buf->rxPacketAlloc.rfuPacket8.data[0])
+ switch (*buf)
{
case 40:
case 54:
- if (buf->rxPacketAlloc.rfuPacket8.data[1] == 0)
+ if (buf[1] == 0)
*ackFlag = gRfuLinkStatus->connSlotFlag;
else
- *ackFlag = buf->rxPacketAlloc.rfuPacket8.data[4];
+ *ackFlag = buf[4];
return 0;
default:
return ERR_REQ_CMD_ID;
@@ -205,9 +205,9 @@ void rfu_setTimerInterrupt(u8 timerNo, IntrFunc *timerIntrTable_p)
STWI_init_timer(timerIntrTable_p, timerNo);
}
-struct RfuIntrStruct *rfu_getSTWIRecvBuffer(void)
+u8 *rfu_getSTWIRecvBuffer(void)
{
- return gRfuFixed->STWIBuffer;
+ return (u8 *)gRfuFixed->STWIBuffer;
}
void rfu_setMSCCallback(void (*callback)(u16 reqCommandId))
@@ -2035,6 +2035,7 @@ static void rfu_STC_NI_receive_Sender(u8 r0, u8 r10, const struct RfuLocalStruct
}
}
_081E30AE:
+ ;
}
else if (r12->state == SLOT_STATE_SEND_LAST)
{
diff --git a/src/link.c b/src/link.c
index 7ff518297..c5fffcc26 100644
--- a/src/link.c
+++ b/src/link.c
@@ -721,7 +721,7 @@ void sub_8009FE8(void)
{
if (gWirelessCommType)
{
- sub_80F9828();
+ StartSendingKeysToRfu();
}
gLinkCallback = sub_800A040;
}
diff --git a/src/link_rfu.c b/src/link_rfu.c
index 251c230ce..552dfd827 100644
--- a/src/link_rfu.c
+++ b/src/link_rfu.c
@@ -5,7 +5,7 @@
LINK_MANAGER lman;
static void rfu_LMAN_clearVariables(void);
-static void rfu_LMAN_settingPCSWITCH(u32 a0);
+static void rfu_LMAN_settingPCSWITCH(u32 rand);
static void rfu_LMAN_REQ_callback(u16 reqCommandId, u16 reqResult);
static void rfu_LMAN_MSC_callback(u16 reqCommandId);
static void rfu_LMAN_PARENT_checkRecvChildName(void);
@@ -13,9 +13,9 @@ static void rfu_LMAN_CHILD_checkSendChildName(void);
static void rfu_LMAN_CHILD_checkSendChildName2(void);
static void rfu_LMAN_CHILD_linkRecoveryProcess(void);
static u8 rfu_LMAN_CHILD_checkEnableParentCandidate(void);
-static void rfu_LMAN_occureCallback(u8 a0, u8 a1);
+static void rfu_LMAN_occureCallback(u8 msg, u8 param_count);
static void rfu_LMAN_disconnect(u8 bmDisconnectSlot);
-static void rfu_LMAN_reflectCommunicationStatus(u8 a0);
+static void rfu_LMAN_reflectCommunicationStatus(u8 bm_disconnectedSlot);
static void rfu_LMAN_checkNICommunicateStatus(void);
static void rfu_LMAN_managerChangeAgbClockMaster(void);
@@ -24,9 +24,9 @@ u32 rfu_LMAN_REQBN_softReset_and_checkID(void)
u32 id = rfu_REQBN_softReset_and_checkID();
if (id == RFU_ID)
lman.RFU_powerOn_flag = 1;
- if (lman.state != 0x17 && lman.state != 0x01)
+ if (lman.state != LMAN_FORCED_STOP_AND_RFU_RESET && lman.state != LMAN_STATE_SOFT_RESET_AND_CHECK_ID)
{
- lman.state = lman.next_state = 0;
+ lman.state = lman.next_state = LMAN_STATE_READY;
}
lman.pcswitch_flag = 0;
lman.reserveDisconnectSlot_flag = 0;
@@ -41,7 +41,7 @@ void rfu_LMAN_REQ_sendData(u8 clockChangeFlag)
{
if (gRfuLinkStatus->parentChild == MODE_CHILD)
{
- if (lman.childClockSlave_flag == TRUE)
+ if (lman.childClockSlave_flag == RFU_CHILD_CLOCK_SLAVE_ON)
clockChangeFlag = TRUE;
else
clockChangeFlag = FALSE;
@@ -75,8 +75,8 @@ static void rfu_LMAN_endManager(void)
void rfu_LMAN_initializeRFU(INIT_PARAM *init_parameters)
{
rfu_LMAN_clearVariables();
- lman.state = 1;
- lman.next_state = 2;
+ lman.state = LMAN_STATE_SOFT_RESET_AND_CHECK_ID;
+ lman.next_state = LMAN_STATE_RESET;
lman.init_param = init_parameters;
lman.linkRecovery_enable = init_parameters->linkRecovery_enable;
lman.linkRecoveryTimer.count_max = init_parameters->linkRecovery_period;
@@ -91,7 +91,7 @@ static void rfu_LMAN_clearVariables(void)
{
u8 i;
- lman.state = lman.next_state = 0;
+ lman.state = lman.next_state = LMAN_STATE_READY;
lman.parent_child = MODE_NEUTRAL;
lman.pcswitch_flag = 0;
lman.child_slot = 0;
@@ -115,17 +115,17 @@ u8 rfu_LMAN_establishConnection(u8 parent_child, u16 connect_period, u16 name_ac
u8 i;
u16 *serial_list;
- if (lman.state != 0 && (lman.state != LMAN_STATE_WAIT_RECV_CHILD_NAME || parent_child != 1))
+ if (lman.state != LMAN_STATE_READY && (lman.state != LMAN_STATE_WAIT_RECV_CHILD_NAME || parent_child != 1))
{
lman.param[0] = 1;
- rfu_LMAN_occureCallback(LMAN_MSG_LMAN_API_ERROR_RETURN, 0x01);
- return 1;
+ rfu_LMAN_occureCallback(LMAN_MSG_LMAN_API_ERROR_RETURN, 1);
+ return LMAN_ERROR_MANAGER_BUSY;
}
if (rfu_getMasterSlave() == AGB_CLK_SLAVE)
{
lman.param[0] = 2;
- rfu_LMAN_occureCallback(LMAN_MSG_LMAN_API_ERROR_RETURN, 0x01);
- return 2;
+ rfu_LMAN_occureCallback(LMAN_MSG_LMAN_API_ERROR_RETURN, 1);
+ return LMAN_ERROR_AGB_CLK_SLAVE;
}
for (i = 0, serial_list = acceptable_serialNo_list; i < 16; i++)
{
@@ -137,8 +137,8 @@ u8 rfu_LMAN_establishConnection(u8 parent_child, u16 connect_period, u16 name_ac
if (i == 16)
{
lman.param[0] = 4;
- rfu_LMAN_occureCallback(LMAN_MSG_LMAN_API_ERROR_RETURN, 0x01);
- return 4;
+ rfu_LMAN_occureCallback(LMAN_MSG_LMAN_API_ERROR_RETURN, 1);
+ return LMAN_ERROR_ILLEGAL_PARAMETER;
}
if (parent_child > 1)
{
@@ -152,11 +152,11 @@ u8 rfu_LMAN_establishConnection(u8 parent_child, u16 connect_period, u16 name_ac
}
if (parent_child != 0)
{
- lman.state = 5;
+ lman.state = LMAN_STATE_START_SEARCH_CHILD;
}
else
{
- lman.state = 9;
+ lman.state = LMAN_STATE_START_SEARCH_PARENT;
if (lman.fastSearchParent_flag)
{
lman.fastSearchParent_flag = 2;
@@ -173,17 +173,17 @@ u8 rfu_LMAN_CHILD_connectParent(u16 parentId, u16 connect_period)
{
u8 i;
- if (lman.state != 0 && (lman.state < 9 || lman.state > 11))
+ if (lman.state != LMAN_STATE_READY && (lman.state < 9 || lman.state > 11))
{
lman.param[0] = 1;
- rfu_LMAN_occureCallback(LMAN_MSG_LMAN_API_ERROR_RETURN, 0x01);
- return 1;
+ rfu_LMAN_occureCallback(LMAN_MSG_LMAN_API_ERROR_RETURN, 1);
+ return LMAN_ERROR_MANAGER_BUSY;
}
if (rfu_getMasterSlave() == AGB_CLK_SLAVE)
{
lman.param[0] = 2;
- rfu_LMAN_occureCallback(LMAN_MSG_LMAN_API_ERROR_RETURN, 0x01);
- return 2;
+ rfu_LMAN_occureCallback(LMAN_MSG_LMAN_API_ERROR_RETURN, 1);
+ return LMAN_ERROR_AGB_CLK_SLAVE;
}
for (i = 0; i < gRfuLinkStatus->findParentCount; i++)
{
@@ -195,18 +195,18 @@ u8 rfu_LMAN_CHILD_connectParent(u16 parentId, u16 connect_period)
if (gRfuLinkStatus->findParentCount == 0 || i == gRfuLinkStatus->findParentCount)
{
lman.param[0] = 3;
- rfu_LMAN_occureCallback(LMAN_MSG_LMAN_API_ERROR_RETURN, 0x01);
- return 3;
+ rfu_LMAN_occureCallback(LMAN_MSG_LMAN_API_ERROR_RETURN, 1);
+ return LMAN_ERROR_PID_NOT_FOUND;
}
- if (lman.state == 0 || lman.state == 9)
+ if (lman.state == LMAN_STATE_READY || lman.state == LMAN_STATE_START_SEARCH_PARENT)
{
- lman.state = 12;
- lman.next_state = 13;
+ lman.state = LMAN_STATE_START_CONNECT_PARENT;
+ lman.next_state = LMAN_STATE_POLL_CONNECT_PARENT;
}
else
{
- lman.state = 11;
- lman.next_state = 12;
+ lman.state = LMAN_STATE_END_SEARCH_PARENT;
+ lman.next_state = LMAN_STATE_START_CONNECT_PARENT;
}
lman.work = parentId;
lman.connect_period = connect_period;
@@ -221,7 +221,7 @@ static void rfu_LMAN_PARENT_stopWaitLinkRecoveryAndDisconnect(u8 bm_targetSlot)
{
u8 i;
- if ((bm_targetSlot & lman.linkRecoveryTimer.active)==0)
+ if ((bm_targetSlot & lman.linkRecoveryTimer.active) == 0)
return;
lman.linkRecoveryTimer.active &= ~bm_targetSlot;
for (i = 0; i < RFU_CHILD_MAX; i++)
@@ -247,69 +247,69 @@ void rfu_LMAN_stopManager(bool8 forced_stop_and_RFU_reset_flag)
if (forced_stop_and_RFU_reset_flag)
{
rfu_LMAN_clearVariables();
- lman.state = 23;
+ lman.state = LMAN_FORCED_STOP_AND_RFU_RESET;
return;
}
switch (lman.state)
{
- case 5:
- lman.state = 8;
- lman.next_state = 0;
+ case LMAN_STATE_START_SEARCH_CHILD:
+ lman.state = LMAN_STATE_WAIT_RECV_CHILD_NAME;
+ lman.next_state = LMAN_STATE_READY;
msg = LMAN_MSG_SEARCH_CHILD_PERIOD_EXPIRED;
break;
- case 6:
- lman.state = 7;
- lman.next_state = 8;
+ case LMAN_STATE_POLL_SEARCH_CHILD:
+ lman.state = LMAN_STATE_END_SEARCH_CHILD;
+ lman.next_state = LMAN_STATE_WAIT_RECV_CHILD_NAME;
break;
- case 7:
- lman.state = 7;
- lman.next_state = 8;
+ case LMAN_STATE_END_SEARCH_CHILD:
+ lman.state = LMAN_STATE_END_SEARCH_CHILD;
+ lman.next_state = LMAN_STATE_WAIT_RECV_CHILD_NAME;
break;
- case 8:
+ case LMAN_STATE_WAIT_RECV_CHILD_NAME:
break;
- case 9:
- lman.state = lman.next_state = 0;
+ case LMAN_STATE_START_SEARCH_PARENT:
+ lman.state = lman.next_state = LMAN_STATE_READY;
msg = LMAN_MSG_SEARCH_PARENT_PERIOD_EXPIRED;
break;
- case 10:
- lman.state = 11;
- lman.next_state = 0;
+ case LMAN_STATE_POLL_SEARCH_PARENT:
+ lman.state = LMAN_STATE_END_SEARCH_PARENT;
+ lman.next_state = LMAN_STATE_READY;
break;
- case 11:
- lman.state = 11;
- lman.next_state = 0;
+ case LMAN_STATE_END_SEARCH_PARENT:
+ lman.state = LMAN_STATE_END_SEARCH_PARENT;
+ lman.next_state = LMAN_STATE_READY;
break;
- case 12:
- lman.state = lman.next_state = 0;
+ case LMAN_STATE_START_CONNECT_PARENT:
+ lman.state = lman.next_state = LMAN_STATE_READY;
msg = LMAN_MSG_CONNECT_PARENT_FAILED;
break;
- case 13:
- lman.state = 14;
+ case LMAN_STATE_POLL_CONNECT_PARENT:
+ lman.state = LMAN_STATE_END_CONNECT_PARENT;
break;
- case 14:
- lman.state = 14;
+ case LMAN_STATE_END_CONNECT_PARENT:
+ lman.state = LMAN_STATE_END_CONNECT_PARENT;
break;
- case 15:
+ case LMAN_STATE_SEND_CHILD_NAME:
break;
- case 16:
+ case LMAN_STATE_START_LINK_RECOVERY:
lman.state = lman.state_bak[0];
lman.next_state = lman.state_bak[1];
rfu_LMAN_disconnect(gRfuLinkStatus->linkLossSlotFlag);
lman.param[0] = gRfuLinkStatus->linkLossSlotFlag;
- rfu_LMAN_occureCallback(LMAN_MSG_LINK_RECOVERY_FAILED_AND_DISCONNECTED, 0x01);
+ rfu_LMAN_occureCallback(LMAN_MSG_LINK_RECOVERY_FAILED_AND_DISCONNECTED, 1);
return;
- case 17:
- lman.state = 18;
+ case LMAN_STATE_POLL_LINK_RECOVERY:
+ lman.state = LMAN_STATE_END_LINK_RECOVERY;
break;
- case 18:
- lman.state = 18;
+ case LMAN_STATE_END_LINK_RECOVERY:
+ lman.state = LMAN_STATE_END_LINK_RECOVERY;
break;
default:
- lman.state = lman.next_state = 0;
+ lman.state = lman.next_state = LMAN_STATE_READY;
msg = LMAN_MSG_MANAGER_STOPPED;
break;
}
- if (lman.state == 0)
+ if (lman.state == LMAN_STATE_READY)
{
rfu_LMAN_occureCallback(msg, 0);
}
@@ -346,21 +346,21 @@ static bool8 rfu_LMAN_linkWatcher(u16 REQ_commandID)
lman.linkRecoveryTimer.count[i] = lman.linkRecoveryTimer.count_max;
}
}
- rfu_LMAN_occureCallback(0x31, 0x01);
+ rfu_LMAN_occureCallback(LMAN_MSG_LINK_LOSS_DETECTED_AND_START_RECOVERY, 1);
}
else
{
lman.linkRecovery_start_flag = 0;
rfu_LMAN_disconnect(bm_linkLossSlot);
disconnect_occure_flag = TRUE;
- rfu_LMAN_occureCallback(LMAN_MSG_LINK_RECOVERY_FAILED_AND_DISCONNECTED, 0x01);
+ rfu_LMAN_occureCallback(LMAN_MSG_LINK_RECOVERY_FAILED_AND_DISCONNECTED, 1);
}
}
else
{
rfu_LMAN_disconnect(bm_linkLossSlot);
disconnect_occure_flag = TRUE;
- rfu_LMAN_occureCallback(0x30, 0x02);
+ rfu_LMAN_occureCallback(LMAN_MSG_LINK_LOSS_DETECTED_AND_DISCONNECTED, 2);
}
rfu_LMAN_managerChangeAgbClockMaster();
}
@@ -377,7 +377,7 @@ static bool8 rfu_LMAN_linkWatcher(u16 REQ_commandID)
}
lman.linkRecoveryTimer.active &= ~bm_linkRecoverySlot;
lman.param[0] = bm_linkRecoverySlot;
- rfu_LMAN_occureCallback(0x32, 0x01);
+ rfu_LMAN_occureCallback(LMAN_MSG_LINK_RECOVERY_SUCCESSED, 1);
}
if (lman.linkRecoveryTimer.active)
{
@@ -395,7 +395,7 @@ static bool8 rfu_LMAN_linkWatcher(u16 REQ_commandID)
rfu_LMAN_disconnect(bm_disconnectSlot);
disconnect_occure_flag = TRUE;
lman.param[0] = bm_disconnectSlot;
- rfu_LMAN_occureCallback(LMAN_MSG_LINK_RECOVERY_FAILED_AND_DISCONNECTED, 0x01);
+ rfu_LMAN_occureCallback(LMAN_MSG_LINK_RECOVERY_FAILED_AND_DISCONNECTED, 1);
}
}
if (!lman.linkRecoveryTimer.active)
@@ -410,7 +410,7 @@ void rfu_LMAN_syncVBlank(void)
{
if (rfu_syncVBlank())
{
- rfu_LMAN_occureCallback(0xF1, 0x00);
+ rfu_LMAN_occureCallback(LMAN_MSG_WATCH_DOG_TIMER_ERROR, 0);
rfu_LMAN_managerChangeAgbClockMaster();
}
}
@@ -419,9 +419,9 @@ void rfu_LMAN_manager_entity(u32 rand)
{
u8 msg;
- if (lman.LMAN_callback == NULL && lman.state != 0)
+ if (lman.LMAN_callback == NULL && lman.state != LMAN_STATE_READY)
{
- lman.state = 0;
+ lman.state = LMAN_STATE_READY;
return;
}
if (lman.pcswitch_flag)
@@ -430,13 +430,13 @@ void rfu_LMAN_manager_entity(u32 rand)
}
while (1)
{
- if (lman.state != 0)
+ if (lman.state != LMAN_STATE_READY)
{
rfu_waitREQComplete();
lman.active = 1;
switch (lman.state)
{
- case 23:
+ case LMAN_FORCED_STOP_AND_RFU_RESET:
if (rfu_LMAN_REQBN_softReset_and_checkID() == RFU_ID)
{
msg=LMAN_MSG_MANAGER_FORCED_STOPPED_AND_RFU_RESET;
@@ -445,79 +445,79 @@ void rfu_LMAN_manager_entity(u32 rand)
{
msg=LMAN_MSG_RFU_FATAL_ERROR;
}
- lman.state = lman.next_state = 0;
+ lman.state = lman.next_state = LMAN_STATE_READY;
rfu_LMAN_occureCallback(msg, 0);
break;
- case 1:
+ case LMAN_STATE_SOFT_RESET_AND_CHECK_ID:
if (rfu_LMAN_REQBN_softReset_and_checkID() == RFU_ID)
{
lman.state = lman.next_state;
- lman.next_state = 3;
+ lman.next_state = LMAN_STATE_CONFIG_SYSTEM;
}
else
{
- lman.state = lman.next_state = 0;
+ lman.state = lman.next_state = LMAN_STATE_READY;
rfu_LMAN_occureCallback(LMAN_MSG_RFU_FATAL_ERROR, 0);
}
break;
- case 2:
+ case LMAN_STATE_RESET:
rfu_REQ_reset();
break;
- case 3:
+ case LMAN_STATE_CONFIG_SYSTEM:
rfu_REQ_configSystem(lman.init_param->availSlot_flag, lman.init_param->maxMFrame, lman.init_param->MC_TimerCount);
break;
- case 4:
+ case LMAN_STATE_CONFIG_GAME_DATA:
rfu_REQ_configGameData(lman.init_param->mboot_flag, lman.init_param->serialNo, (const u8 *)lman.init_param->gameName, lman.init_param->userName);
break;
- case 5:
+ case LMAN_STATE_START_SEARCH_CHILD:
rfu_REQ_startSearchChild();
break;
- case 6:
+ case LMAN_STATE_POLL_SEARCH_CHILD:
rfu_REQ_pollSearchChild();
break;
- case 7:
+ case LMAN_STATE_END_SEARCH_CHILD:
rfu_REQ_endSearchChild();
break;
- case 8:
+ case LMAN_STATE_WAIT_RECV_CHILD_NAME:
break;
- case 9:
+ case LMAN_STATE_START_SEARCH_PARENT:
rfu_REQ_startSearchParent();
break;
- case 10:
+ case LMAN_STATE_POLL_SEARCH_PARENT:
rfu_REQ_pollSearchParent();
break;
- case 11:
+ case LMAN_STATE_END_SEARCH_PARENT:
rfu_REQ_endSearchParent();
break;
- case 12:
+ case LMAN_STATE_START_CONNECT_PARENT:
rfu_REQ_startConnectParent(lman.work);
break;
- case 13:
+ case LMAN_STATE_POLL_CONNECT_PARENT:
rfu_REQ_pollConnectParent();
break;
- case 14:
+ case LMAN_STATE_END_CONNECT_PARENT:
rfu_REQ_endConnectParent();
break;
- case 15:
+ case LMAN_STATE_SEND_CHILD_NAME:
break;
- case 16:
+ case LMAN_STATE_START_LINK_RECOVERY:
rfu_REQ_CHILD_startConnectRecovery(gRfuLinkStatus->linkLossSlotFlag);
break;
- case 17:
+ case LMAN_STATE_POLL_LINK_RECOVERY:
rfu_REQ_CHILD_pollConnectRecovery();
break;
- case 18:
+ case LMAN_STATE_END_LINK_RECOVERY:
rfu_REQ_CHILD_endConnectRecovery();
break;
- case 19:
+ case LMAN_STATE_MS_CHANGE:
rfu_REQ_changeMasterSlave();
break;
- case 20:
+ case LMAN_STATE_WAIT_CLOCK_MASTER:
break;
- case 21:
+ case LMAN_STATE_STOP_MODE:
rfu_REQ_stopMode();
break;
- case 22:
+ case LMAN_STATE_BACK_STATE:
break;
default:
break;
@@ -546,7 +546,7 @@ static void rfu_LMAN_settingPCSWITCH(u32 rand)
if (lman.pcswitch_flag == 5)
{
lman.parent_child = MODE_PARENT;
- lman.state = 5;
+ lman.state = LMAN_STATE_START_SEARCH_CHILD;
lman.connect_period = lman.pcswitch_period_bak;
if (lman.connect_period)
{
@@ -560,7 +560,7 @@ static void rfu_LMAN_settingPCSWITCH(u32 rand)
if (lman.pcswitch_flag == 1)
{
lman.parent_child = MODE_PARENT;
- lman.state = 5;
+ lman.state = LMAN_STATE_START_SEARCH_CHILD;
lman.connect_period = rand % 140;
lman.pcswitch_period_bak = 140 - lman.connect_period;
if (lman.connect_period)
@@ -577,15 +577,14 @@ static void rfu_LMAN_settingPCSWITCH(u32 rand)
lman.parent_child = MODE_CHILD;
lman.connect_period = 40;
lman.pcswitch_flag = 4;
- lman.state = 9;
+ lman.state = LMAN_STATE_START_SEARCH_PARENT;
}
}
static void rfu_LMAN_REQ_callback(u16 reqCommandId, u16 reqResult)
{
- u8 sp0;
- register u8 *stwiRecvBuffer asm("r0");
- u8 *tmp;
+ u8 status;
+ u8 *stwiRecvBuffer;
u8 i;
if (lman.active != 0)
@@ -597,44 +596,44 @@ static void rfu_LMAN_REQ_callback(u16 reqCommandId, u16 reqResult)
if (reqResult == 0)
{
lman.state = lman.next_state;
- lman.next_state = 4;
+ lman.next_state = LMAN_STATE_CONFIG_GAME_DATA;
}
break;
case ID_SYSTEM_CONFIG_REQ:
if (reqResult == 0)
{
lman.state = lman.next_state;
- lman.next_state = 0;
+ lman.next_state = LMAN_STATE_READY;
}
break;
case ID_GAME_CONFIG_REQ:
if (reqResult == 0)
{
- lman.state = lman.next_state = 0;
- rfu_LMAN_occureCallback(0x00, 0x00);
+ lman.state = lman.next_state = LMAN_STATE_READY;
+ rfu_LMAN_occureCallback(LMAN_MSG_INITIALIZE_COMPLETED, 0);
}
break;
case ID_SC_START_REQ:
if (reqResult == 0)
{
- lman.state = lman.next_state = 6;
+ lman.state = lman.next_state = LMAN_STATE_POLL_SEARCH_CHILD;
}
break;
case ID_SC_POLL_REQ:
if (lman.connect_period && --lman.connect_period == 0)
{
- lman.state = 7;
- lman.next_state = 8;
+ lman.state = LMAN_STATE_END_SEARCH_CHILD;
+ lman.next_state = LMAN_STATE_WAIT_RECV_CHILD_NAME;
}
break;
case ID_SC_END_REQ:
if (reqResult == 0)
{
lman.state = lman.next_state;
- lman.next_state = 0;
+ lman.next_state = LMAN_STATE_READY;
if (lman.pcswitch_flag == 0)
{
- rfu_LMAN_occureCallback(0x13, 0x00);
+ rfu_LMAN_occureCallback(LMAN_MSG_SEARCH_CHILD_PERIOD_EXPIRED, 0);
}
}
break;
@@ -645,30 +644,30 @@ static void rfu_LMAN_REQ_callback(u16 reqCommandId, u16 reqResult)
{
lman.connect_period--;
}
- lman.state = lman.next_state = 10;
+ lman.state = lman.next_state = LMAN_STATE_POLL_SEARCH_PARENT;
}
break;
case ID_SP_POLL_REQ:
if (reqResult == 0)
{
- sp0 = rfu_LMAN_CHILD_checkEnableParentCandidate();
- lman.param[0] = sp0;
- if (sp0)
+ status = rfu_LMAN_CHILD_checkEnableParentCandidate();
+ lman.param[0] = status;
+ if (status)
{
- rfu_LMAN_occureCallback(0x20, 0x01);
+ rfu_LMAN_occureCallback(LMAN_MSG_PARENT_FOUND, 1);
}
if (lman.fastSearchParent_flag && lman.connect_period != 1 && gRfuLinkStatus->findParentCount == RFU_CHILD_MAX)
{
rfu_REQ_endSearchParent();
rfu_waitREQComplete();
- lman.state = 9;
+ lman.state = LMAN_STATE_START_SEARCH_PARENT;
lman.fastSearchParent_flag = 1;
}
}
if (lman.connect_period && --lman.connect_period == 0)
{
- lman.state = 11;
- lman.next_state = 0;
+ lman.state = LMAN_STATE_END_SEARCH_PARENT;
+ lman.next_state = LMAN_STATE_READY;
}
break;
case ID_SP_END_REQ:
@@ -677,14 +676,14 @@ static void rfu_LMAN_REQ_callback(u16 reqCommandId, u16 reqResult)
lman.state = lman.next_state;
if (lman.pcswitch_flag == 0)
{
- if (lman.state == 0)
+ if (lman.state == LMAN_STATE_READY)
{
- rfu_LMAN_occureCallback(0x21, 0x00);
+ rfu_LMAN_occureCallback(LMAN_MSG_SEARCH_PARENT_PERIOD_EXPIRED, 0);
}
}
else if (lman.pcswitch_flag != 7)
{
- lman.state = 5;
+ lman.state = LMAN_STATE_START_SEARCH_CHILD;
lman.pcswitch_flag = 5;
}
}
@@ -692,38 +691,38 @@ static void rfu_LMAN_REQ_callback(u16 reqCommandId, u16 reqResult)
case ID_CP_START_REQ:
if (reqResult == 0)
{
- lman.state = lman.next_state = 13;
+ lman.state = lman.next_state = LMAN_STATE_POLL_CONNECT_PARENT;
}
break;
case ID_CP_POLL_REQ:
- if (reqResult == 0 && !rfu_getConnectParentStatus(&sp0, &lman.child_slot) && !sp0)
+ if (reqResult == 0 && !rfu_getConnectParentStatus(&status, &lman.child_slot) && !status)
{
- lman.state = 14;
+ lman.state = LMAN_STATE_END_CONNECT_PARENT;
}
if (lman.connect_period && --lman.connect_period == 0)
{
- lman.state = 14;
+ lman.state = LMAN_STATE_END_CONNECT_PARENT;
}
break;
case ID_CP_END_REQ:
- if (reqResult == 0 && !rfu_getConnectParentStatus(&sp0, &lman.child_slot))
+ if (reqResult == 0 && !rfu_getConnectParentStatus(&status, &lman.child_slot))
{
- if (!sp0)
+ if (!status)
{
- lman.state = 19;
- lman.next_state = 15;
+ lman.state = LMAN_STATE_MS_CHANGE;
+ lman.next_state = LMAN_STATE_SEND_CHILD_NAME;
lman.work = 0x22;
lman.param[0] = lman.child_slot;
}
else
{
- lman.state = lman.next_state = 0;
+ lman.state = lman.next_state = LMAN_STATE_READY;
lman.work = 0x23;
- lman.param[0] = sp0;
+ lman.param[0] = status;
if (lman.pcswitch_flag)
{
lman.pcswitch_flag = 3;
- lman.state = 9;
+ lman.state = LMAN_STATE_START_SEARCH_PARENT;
}
}
rfu_LMAN_occureCallback(lman.work, 0x01);
@@ -734,7 +733,7 @@ static void rfu_LMAN_REQ_callback(u16 reqCommandId, u16 reqResult)
if (reqResult == 0)
{
lman.param[0] = gRfuLinkStatus->linkLossSlotFlag;
- lman.state = lman.next_state = 17;
+ lman.state = lman.next_state = LMAN_STATE_POLL_LINK_RECOVERY;
for (lman.child_slot = 0; lman.child_slot < RFU_CHILD_MAX; lman.child_slot++)
{
if ((gRfuLinkStatus->linkLossSlotFlag >> lman.child_slot) & 1)
@@ -745,27 +744,27 @@ static void rfu_LMAN_REQ_callback(u16 reqCommandId, u16 reqResult)
}
break;
case ID_CPR_POLL_REQ:
- if (reqResult == 0 && !rfu_CHILD_getConnectRecoveryStatus(&sp0) && sp0 < 2)
+ if (reqResult == 0 && !rfu_CHILD_getConnectRecoveryStatus(&status) && status < 2)
{
- lman.state = 18;
+ lman.state = LMAN_STATE_END_LINK_RECOVERY;
}
if (lman.linkRecoveryTimer.count[lman.child_slot] && --lman.linkRecoveryTimer.count[lman.child_slot] == 0)
{
- lman.state = 18;
+ lman.state = LMAN_STATE_END_LINK_RECOVERY;
}
break;
case ID_CPR_END_REQ:
- if (reqResult == 0 && !rfu_CHILD_getConnectRecoveryStatus(&sp0))
+ if (reqResult == 0 && !rfu_CHILD_getConnectRecoveryStatus(&status))
{
- if (!sp0)
+ if (!status)
{
- lman.state = 19;
- lman.next_state = 22;
+ lman.state = LMAN_STATE_MS_CHANGE;
+ lman.next_state = LMAN_STATE_BACK_STATE;
lman.work = 0x32;
}
else
{
- lman.state = lman.next_state = 0;
+ lman.state = lman.next_state = LMAN_STATE_READY;
rfu_LMAN_disconnect(gRfuLinkStatus->linkLossSlotFlag);
lman.work = 0x33;
}
@@ -779,30 +778,29 @@ static void rfu_LMAN_REQ_callback(u16 reqCommandId, u16 reqResult)
case ID_MS_CHANGE_REQ:
if (reqResult == 0)
{
- if (lman.next_state == 22)
+ if (lman.next_state == LMAN_STATE_BACK_STATE)
{
lman.state = lman.state_bak[0];
lman.next_state = lman.state_bak[1];
- lman.childClockSlave_flag = 1;
- rfu_LMAN_occureCallback(0x41, 0x00);
+ lman.childClockSlave_flag = RFU_CHILD_CLOCK_SLAVE_ON;
+ rfu_LMAN_occureCallback(LMAN_MSG_CHANGE_AGB_CLOCK_SLAVE, 0);
}
- else if (lman.next_state == 15)
+ else if (lman.next_state == LMAN_STATE_SEND_CHILD_NAME)
{
lman.state = lman.next_state;
- lman.childClockSlave_flag = 1;
- rfu_LMAN_occureCallback(0x41, 0x00);
+ lman.childClockSlave_flag = RFU_CHILD_CLOCK_SLAVE_ON;
+ rfu_LMAN_occureCallback(LMAN_MSG_CHANGE_AGB_CLOCK_SLAVE, 0);
lman.nameAcceptTimer.active |= 1 << lman.child_slot;
lman.nameAcceptTimer.count[lman.child_slot] = lman.nameAcceptTimer.count_max;
rfu_clearSlot(TYPE_NI_SEND, lman.child_slot);
- tmp = &sp0;
- *tmp = rfu_NI_CHILD_setSendGameName(lman.child_slot, 0x0e);
- if (*tmp)
+ status = rfu_NI_CHILD_setSendGameName(lman.child_slot, 0x0e);
+ if (status)
{
- lman.state = lman.next_state = 0;
+ lman.state = lman.next_state = LMAN_STATE_READY;
rfu_LMAN_managerChangeAgbClockMaster();
rfu_LMAN_disconnect(gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag);
- lman.param[0] = sp0;
- rfu_LMAN_occureCallback(0x25, 0x01);
+ lman.param[0] = status;
+ rfu_LMAN_occureCallback(LMAN_MSG_CHILD_NAME_SEND_FAILED_AND_DISCONNECTED, 1);
}
}
}
@@ -810,8 +808,8 @@ static void rfu_LMAN_REQ_callback(u16 reqCommandId, u16 reqResult)
case ID_STOP_MODE_REQ:
if (reqResult == 0)
{
- lman.state = lman.next_state = 0;
- rfu_LMAN_occureCallback(0x42, 0x00);
+ lman.state = lman.next_state = LMAN_STATE_READY;
+ rfu_LMAN_occureCallback(LMAN_MSG_RFU_POWER_DOWN, 0);
}
break;
}
@@ -821,12 +819,12 @@ static void rfu_LMAN_REQ_callback(u16 reqCommandId, u16 reqResult)
{
rfu_REQ_RFUStatus();
rfu_waitREQComplete();
- rfu_getRFUStatus(&sp0);
- if (sp0 == 0 && gRfuLinkStatus->parentChild == MODE_CHILD)
+ rfu_getRFUStatus(&status);
+ if (status == 0 && gRfuLinkStatus->parentChild == MODE_CHILD)
{
- stwiRecvBuffer = rfu_getSTWIRecvBuffer()->rxPacketAlloc.rfuPacket8.data;
- stwiRecvBuffer[4] = gRfuLinkStatus->connSlotFlag;
- stwiRecvBuffer[5] = 1;
+ stwiRecvBuffer = rfu_getSTWIRecvBuffer() + 4;
+ *stwiRecvBuffer++ = gRfuLinkStatus->connSlotFlag;
+ *stwiRecvBuffer = REASON_LINK_LOSS;
rfu_LMAN_linkWatcher(0x29);
reqResult = 0;
}
@@ -836,8 +834,7 @@ static void rfu_LMAN_REQ_callback(u16 reqCommandId, u16 reqResult)
case ID_DISCONNECT_REQ:
if (reqResult == 0)
{
- stwiRecvBuffer = rfu_getSTWIRecvBuffer()->rxPacketAlloc.rfuPacket8.data;
- lman.param[0] = stwiRecvBuffer[8];
+ lman.param[0] = *(rfu_getSTWIRecvBuffer() + 8);
rfu_LMAN_reflectCommunicationStatus(lman.param[0]);
if (lman.linkRecoveryTimer.active)
{
@@ -851,13 +848,13 @@ static void rfu_LMAN_REQ_callback(u16 reqCommandId, u16 reqResult)
}
if (lman.parent_child == 0)
{
- lman.state = lman.next_state = 0;
+ lman.state = lman.next_state = LMAN_STATE_READY;
}
}
- sp0 = lman.acceptSlot_flag & lman.param[0];
+ status = lman.acceptSlot_flag & lman.param[0];
for (i = 0; i < RFU_CHILD_MAX; i++)
{
- if ((sp0 >> i) & 1 && lman.acceptCount)
+ if ((status >> i) & 1 && lman.acceptCount)
{
lman.acceptCount--;
}
@@ -871,25 +868,25 @@ static void rfu_LMAN_REQ_callback(u16 reqCommandId, u16 reqResult)
{
lman.connect_period = lman.pcswitch_period_bak;
lman.pcswitch_flag = 6;
- lman.state = 6;
+ lman.state = LMAN_STATE_POLL_SEARCH_CHILD;
}
- else if (lman.state != 6 && lman.state != 7)
+ else if (lman.state != LMAN_STATE_POLL_SEARCH_CHILD && lman.state != LMAN_STATE_END_SEARCH_CHILD)
{
lman.pcswitch_flag = 1;
- lman.state = 5;
+ lman.state = LMAN_STATE_START_SEARCH_CHILD;
}
}
}
if (gRfuLinkStatus->parentChild == MODE_NEUTRAL)
{
- if (lman.state == 0)
+ if (lman.state == LMAN_STATE_READY)
{
lman.parent_child = MODE_NEUTRAL;
}
}
if (lman.active == 0)
{
- rfu_LMAN_occureCallback(0x40, 0x01);
+ rfu_LMAN_occureCallback(LMAN_MSG_LINK_DISCONNECTED_BY_USER, 1);
}
}
break;
@@ -897,7 +894,7 @@ static void rfu_LMAN_REQ_callback(u16 reqCommandId, u16 reqResult)
rfu_LMAN_CHILD_checkSendChildName2();
if (gRfuLinkStatus->parentChild != MODE_NEUTRAL)
{
- rfu_LMAN_occureCallback(0x50, 0x00);
+ rfu_LMAN_occureCallback(LMAN_MSG_RECV_DATA_REQ_COMPLETED, 0);
}
break;
case ID_RESET_REQ:
@@ -932,170 +929,170 @@ static void rfu_LMAN_REQ_callback(u16 reqCommandId, u16 reqResult)
lman.param[1] = reqResult;
if (lman.active)
{
- lman.state = lman.next_state = 0;
+ lman.state = lman.next_state = LMAN_STATE_READY;
}
- rfu_LMAN_occureCallback(0xf0, 0x02);
+ rfu_LMAN_occureCallback(LMAN_MSG_REQ_API_ERROR, 2);
rfu_LMAN_managerChangeAgbClockMaster();
}
}
if (reqCommandId == ID_CLOCK_SLAVE_MS_CHANGE_ERROR_BY_DMA_REQ)
{
- rfu_LMAN_occureCallback(0xf2, 0x00);
+ rfu_LMAN_occureCallback(LMAN_MSG_CLOCK_SLAVE_MS_CHANGE_ERROR_BY_DMA, 0);
rfu_LMAN_managerChangeAgbClockMaster();
}
}
static void rfu_LMAN_MSC_callback(u16 reqCommandId)
{
- u8 r7;
- u8 ackFlag;
+ u8 active_bak;
+ u8 thisAck_flag;
- r7 = lman.active;
+ active_bak = lman.active;
lman.active = 0;
lman.msc_exe_flag = 1;
if (gRfuLinkStatus->parentChild == MODE_CHILD)
{
rfu_LMAN_linkWatcher(reqCommandId);
- if (lman.childClockSlave_flag != 1)
+ if (lman.childClockSlave_flag != RFU_CHILD_CLOCK_SLAVE_ON)
{
rfu_LMAN_managerChangeAgbClockMaster();
lman.msc_exe_flag = 0;
- lman.active = r7;
+ lman.active = active_bak;
return;
}
}
else
{
- if (!rfu_UNI_PARENT_getDRAC_ACK(&ackFlag))
+ if (!rfu_UNI_PARENT_getDRAC_ACK(&thisAck_flag))
{
- lman.parentAck_flag |= ackFlag;
+ lman.parentAck_flag |= thisAck_flag;
}
}
if (lman.MSC_callback != NULL)
{
lman.MSC_callback(reqCommandId);
rfu_waitREQComplete();
- if (lman.childClockSlave_flag == 2)
+ if (lman.childClockSlave_flag == RFU_CHILD_CLOCK_SLAVE_OFF_REQ)
{
rfu_LMAN_managerChangeAgbClockMaster();
}
}
lman.msc_exe_flag = 0;
- lman.active = r7;
+ lman.active = active_bak;
}
static void rfu_LMAN_PARENT_checkRecvChildName(void)
{
- u8 flags;
- u8 sp0;
+ u8 newSlot;
+ u8 newAcceptSlot;
u8 i;
- u8 r5;
- u8 r4;
+ u8 flags;
+ u8 tgtSlot;
const u16 *ptr;
- if (lman.state == 5 || lman.state == 6 || lman.state == 7 || lman.state == 8)
+ if (lman.state == LMAN_STATE_START_SEARCH_CHILD || lman.state == LMAN_STATE_POLL_SEARCH_CHILD || lman.state == LMAN_STATE_END_SEARCH_CHILD || lman.state == LMAN_STATE_WAIT_RECV_CHILD_NAME)
{
- flags = ((gRfuLinkStatus->connSlotFlag ^ lman.connectSlot_flag_old) & gRfuLinkStatus->connSlotFlag) & ~gRfuLinkStatus->getNameFlag;
+ newSlot = ((gRfuLinkStatus->connSlotFlag ^ lman.connectSlot_flag_old) & gRfuLinkStatus->connSlotFlag) & ~gRfuLinkStatus->getNameFlag;
lman.connectSlot_flag_old = gRfuLinkStatus->connSlotFlag;
- if (flags)
+ if (newSlot)
{
- lman.param[0] = flags;
- rfu_LMAN_occureCallback(0x10, 0x01);
+ lman.param[0] = newSlot;
+ rfu_LMAN_occureCallback(LMAN_MSG_NEW_CHILD_CONNECT_DETECTED, 1);
}
- sp0 = 0x00;
+ newAcceptSlot = 0x00;
for (i = 0; i < RFU_CHILD_MAX; i++)
{
- r4 = 1 << i;
- r5 = 0x00;
- if (flags & r4)
+ tgtSlot = 1 << i;
+ flags = 0x00;
+ if (newSlot & tgtSlot)
{
lman.nameAcceptTimer.count[i] = lman.nameAcceptTimer.count_max;
- lman.nameAcceptTimer.active |= r4;
+ lman.nameAcceptTimer.active |= tgtSlot;
}
- else if (lman.nameAcceptTimer.active & r4)
+ else if (lman.nameAcceptTimer.active & tgtSlot)
{
if (gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS)
{
if (gRfuSlotStatusNI[i]->recv.dataType == 1) // Game identification information
{
- r5 = 0x02;
+ flags = 0x02;
for (ptr = lman.acceptable_serialNo_list; *ptr != 0xFFFF; ptr++)
{
if (gRfuLinkStatus->partner[i].serialNo == *ptr)
{
- lman.acceptSlot_flag |= r4;
+ lman.acceptSlot_flag |= tgtSlot;
lman.acceptCount++;
- sp0 |= r4;
- r5 |= 0x01;
+ newAcceptSlot |= tgtSlot;
+ flags |= 0x01;
break;
}
}
- if (!(r5 & 0x01))
+ if (!(flags & 0x01))
{
- r5 |= 0x04;
+ flags |= 0x04;
}
}
}
else if (--lman.nameAcceptTimer.count[i] == 0)
{
- r5 = 0x06;
+ flags = 0x06;
}
- if (r5 & 0x02)
+ if (flags & 0x02)
{
- lman.nameAcceptTimer.active &= ~r4;
+ lman.nameAcceptTimer.active &= ~tgtSlot;
lman.nameAcceptTimer.count[i] = 0;
rfu_clearSlot(TYPE_NI_RECV, i);
}
- if (r5 & 0x04)
+ if (flags & 0x04)
{
- lman.reserveDisconnectSlot_flag |= r4;
+ lman.reserveDisconnectSlot_flag |= tgtSlot;
}
}
}
- if (sp0)
+ if (newAcceptSlot)
{
- lman.param[0] = sp0;
- rfu_LMAN_occureCallback(0x11, 0x01);
+ lman.param[0] = newAcceptSlot;
+ rfu_LMAN_occureCallback(LMAN_MSG_NEW_CHILD_CONNECT_ACCEPTED, 1);
}
if (lman.reserveDisconnectSlot_flag)
{
- r5 = 0x01;
+ flags = 0x01;
if (gRfuLinkStatus->sendSlotUNIFlag && ((lman.parentAck_flag & lman.acceptSlot_flag) != lman.acceptSlot_flag))
{
- r5 = 0x00;
+ flags = 0x00;
}
- if (r5)
+ if (flags)
{
rfu_LMAN_disconnect(lman.reserveDisconnectSlot_flag);
lman.param[0] = lman.reserveDisconnectSlot_flag;
lman.reserveDisconnectSlot_flag = 0;
- rfu_LMAN_occureCallback(0x12, 0x01);
+ rfu_LMAN_occureCallback(LMAN_MSG_NEW_CHILD_CONNECT_REJECTED, 1);
}
}
- if (lman.nameAcceptTimer.active == 0 && lman.state == 8)
+ if (lman.nameAcceptTimer.active == 0 && lman.state == LMAN_STATE_WAIT_RECV_CHILD_NAME)
{
if (lman.pcswitch_flag == 0)
{
- lman.state = lman.next_state = 0;
- rfu_LMAN_occureCallback(0x14, 0x00);
+ lman.state = lman.next_state = LMAN_STATE_READY;
+ rfu_LMAN_occureCallback(LMAN_MSG_END_WAIT_CHILD_NAME, 0);
}
else
{
if (lman.pcswitch_flag == 2)
{
lman.pcswitch_flag = 3;
- lman.state = 9;
+ lman.state = LMAN_STATE_START_SEARCH_PARENT;
}
else
{
lman.pcswitch_flag = 1;
- lman.state = 5;
+ lman.state = LMAN_STATE_START_SEARCH_CHILD;
}
if (lman.acceptSlot_flag)
{
lman.connect_period = 0;
lman.pcswitch_flag = 8;
- lman.state = 5;
+ lman.state = LMAN_STATE_START_SEARCH_CHILD;
}
}
}
@@ -1106,43 +1103,43 @@ static void rfu_LMAN_CHILD_checkSendChildName(void)
{
u16 imeBak = REG_IME;
REG_IME = 0;
- if (lman.state == 15)
+ if (lman.state == LMAN_STATE_SEND_CHILD_NAME)
{
if (--lman.nameAcceptTimer.count[lman.child_slot] == 0 || gRfuSlotStatusNI[lman.child_slot]->send.state == SLOT_STATE_SEND_FAILED)
{
rfu_LMAN_requestChangeAgbClockMaster();
- lman.state = 24;
+ lman.state = LMAN_STATE_WAIT_CHANGE_CLOCK_MASTER;
rfu_clearSlot(TYPE_NI_SEND, lman.child_slot);
lman.nameAcceptTimer.active &= ~(1 << lman.child_slot);
lman.nameAcceptTimer.count[lman.child_slot] = 0;
}
}
REG_IME = imeBak;
- if (lman.state == 24)
+ if (lman.state == LMAN_STATE_WAIT_CHANGE_CLOCK_MASTER)
{
- if (lman.childClockSlave_flag == 1)
+ if (lman.childClockSlave_flag == RFU_CHILD_CLOCK_SLAVE_ON)
{
rfu_LMAN_requestChangeAgbClockMaster();
}
- if (lman.childClockSlave_flag == 0)
+ if (lman.childClockSlave_flag == RFU_CHILD_CLOCK_SLAVE_OFF)
{
- lman.state = lman.next_state = 0;
+ lman.state = lman.next_state = LMAN_STATE_READY;
rfu_LMAN_disconnect(gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag);
lman.param[0] = 0;
- rfu_LMAN_occureCallback(0x25, 0x01);
+ rfu_LMAN_occureCallback(LMAN_MSG_CHILD_NAME_SEND_FAILED_AND_DISCONNECTED, 1);
}
}
}
static void rfu_LMAN_CHILD_checkSendChildName2(void)
{
- if (lman.state == 15 && gRfuSlotStatusNI[lman.child_slot]->send.state == SLOT_STATE_SEND_SUCCESS)
+ if (lman.state == LMAN_STATE_SEND_CHILD_NAME && gRfuSlotStatusNI[lman.child_slot]->send.state == SLOT_STATE_SEND_SUCCESS)
{
- lman.state = lman.next_state = 0;
+ lman.state = lman.next_state = LMAN_STATE_READY;
rfu_clearSlot(TYPE_NI_SEND, lman.child_slot);
lman.nameAcceptTimer.active &= ~(1 << lman.child_slot);
lman.nameAcceptTimer.count[lman.child_slot] = 0;
- rfu_LMAN_occureCallback(0x24, 0x00);
+ rfu_LMAN_occureCallback(LMAN_MSG_CHILD_NAME_SEND_COMPLETED, 0);
}
}
@@ -1152,8 +1149,8 @@ static void rfu_LMAN_CHILD_linkRecoveryProcess(void)
{
lman.state_bak[0] = lman.state;
lman.state_bak[1] = lman.next_state;
- lman.state = 16;
- lman.next_state = 17;
+ lman.state = LMAN_STATE_START_LINK_RECOVERY;
+ lman.next_state = LMAN_STATE_POLL_LINK_RECOVERY;
lman.linkRecovery_start_flag = 2;
}
}
@@ -1177,25 +1174,25 @@ static u8 rfu_LMAN_CHILD_checkEnableParentCandidate(void)
return flags;
}
-static void rfu_LMAN_occureCallback(u8 a0, u8 a1)
+static void rfu_LMAN_occureCallback(u8 msg, u8 param_count)
{
if (lman.LMAN_callback != NULL)
{
- lman.LMAN_callback(a0, a1);
+ lman.LMAN_callback(msg, param_count);
}
lman.param[0] = lman.param[1] = 0;
}
-static void rfu_LMAN_disconnect(u8 a0)
+static void rfu_LMAN_disconnect(u8 bm_disconnectedSlot)
{
- u8 unk_0e_bak = lman.active;
+ u8 active_bak = lman.active;
lman.active = 1;
- rfu_REQ_disconnect(a0);
+ rfu_REQ_disconnect(bm_disconnectedSlot);
rfu_waitREQComplete();
- lman.active = unk_0e_bak;
+ lman.active = active_bak;
}
-static void rfu_LMAN_reflectCommunicationStatus(u8 a0)
+static void rfu_LMAN_reflectCommunicationStatus(u8 bm_disconnectedSlot)
{
u8 i;
@@ -1203,9 +1200,9 @@ static void rfu_LMAN_reflectCommunicationStatus(u8 a0)
{
for (i = 0; i < RFU_CHILD_MAX; i++)
{
- 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 & bm_disconnectedSlot)
{
- rfu_changeSendTarget(TYPE_NI, i, gRfuSlotStatusNI[i]->send.bmSlot & ~a0);
+ rfu_changeSendTarget(TYPE_NI, i, gRfuSlotStatusNI[i]->send.bmSlot & ~bm_disconnectedSlot);
}
}
}
@@ -1213,7 +1210,7 @@ static void rfu_LMAN_reflectCommunicationStatus(u8 a0)
{
for (i = 0; i < RFU_CHILD_MAX; i++)
{
- if (gRfuSlotStatusNI[i]->recv.state & SLOT_BUSY_FLAG && gRfuSlotStatusNI[i]->recv.bmSlot & a0)
+ if (gRfuSlotStatusNI[i]->recv.state & SLOT_BUSY_FLAG && gRfuSlotStatusNI[i]->recv.bmSlot & bm_disconnectedSlot)
{
rfu_NI_stopReceivingData(i);
}
@@ -1221,12 +1218,12 @@ static void rfu_LMAN_reflectCommunicationStatus(u8 a0)
}
if (gRfuLinkStatus->sendSlotUNIFlag)
{
- gRfuLinkStatus->sendSlotUNIFlag &= ~a0;
+ gRfuLinkStatus->sendSlotUNIFlag &= ~bm_disconnectedSlot;
for (i = 0; i < RFU_CHILD_MAX; i++)
{
- if (gRfuSlotStatusUNI[i]->send.state == SLOT_STATE_SEND_UNI && a0 & gRfuSlotStatusUNI[i]->send.bmSlot)
+ if (gRfuSlotStatusUNI[i]->send.state == SLOT_STATE_SEND_UNI && bm_disconnectedSlot & gRfuSlotStatusUNI[i]->send.bmSlot)
{
- gRfuSlotStatusUNI[i]->send.bmSlot &= ~a0;
+ gRfuSlotStatusUNI[i]->send.bmSlot &= ~bm_disconnectedSlot;
}
}
}
@@ -1274,9 +1271,9 @@ static void rfu_LMAN_checkNICommunicateStatus(void)
}
}
-void rfu_LMAN_setMSCCallback(void (*func)(u16))
+void rfu_LMAN_setMSCCallback(void (*MSC_callback_p)(u16))
{
- lman.MSC_callback = func;
+ lman.MSC_callback = MSC_callback_p;
rfu_setMSCCallback(rfu_LMAN_MSC_callback);
}
@@ -1290,7 +1287,7 @@ u8 rfu_LMAN_setLinkRecovery(u8 enable_flag, u16 recovery_period)
u16 imeBak;
if (lman.linkRecovery_enable && enable_flag == 0 && lman.linkRecoveryTimer.active)
{
- return 5;
+ return LMAN_ERROR_NOW_LINK_RECOVERY;
}
imeBak = REG_IME;
REG_IME = 0;
@@ -1305,8 +1302,8 @@ static u8 rfu_LMAN_setNIFailCounterLimit(u16 NI_failCounter_limit)
if (gRfuLinkStatus->sendSlotNIFlag | gRfuLinkStatus->recvSlotNIFlag)
{
lman.param[0] = 6;
- rfu_LMAN_occureCallback(LMAN_MSG_LMAN_API_ERROR_RETURN, 0x01);
- return 6;
+ rfu_LMAN_occureCallback(LMAN_MSG_LMAN_API_ERROR_RETURN, 1);
+ return LMAN_ERROR_NOW_COMMUNICATION;
}
lman.NI_failCounter_limit = NI_failCounter_limit;
return 0;
@@ -1314,11 +1311,11 @@ static u8 rfu_LMAN_setNIFailCounterLimit(u16 NI_failCounter_limit)
static u8 rfu_LMAN_setFastSearchParent(u8 enable_flag)
{
- if (lman.state == 9 || lman.state == 10 || lman.state == 11)
+ if (lman.state == LMAN_STATE_START_SEARCH_PARENT || lman.state == LMAN_STATE_POLL_SEARCH_PARENT || lman.state == LMAN_STATE_END_SEARCH_PARENT)
{
lman.param[0] = 7;
- rfu_LMAN_occureCallback(LMAN_MSG_LMAN_API_ERROR_RETURN, 0x01);
- return 7;
+ rfu_LMAN_occureCallback(LMAN_MSG_LMAN_API_ERROR_RETURN, 1);
+ return LMAN_ERROR_NOW_SEARCH_PARENT;
}
if (enable_flag)
{
@@ -1333,22 +1330,22 @@ static u8 rfu_LMAN_setFastSearchParent(u8 enable_flag)
static void rfu_LMAN_managerChangeAgbClockMaster(void)
{
- if (lman.childClockSlave_flag)
+ if (lman.childClockSlave_flag != RFU_CHILD_CLOCK_SLAVE_OFF)
{
- lman.childClockSlave_flag = 0;
- rfu_LMAN_occureCallback(0x45, 0x00);
+ lman.childClockSlave_flag = RFU_CHILD_CLOCK_SLAVE_OFF;
+ rfu_LMAN_occureCallback(LMAN_MSG_CHANGE_AGB_CLOCK_MASTER, 0);
}
}
void rfu_LMAN_requestChangeAgbClockMaster(void)
{
- if (lman.childClockSlave_flag == 0)
+ if (lman.childClockSlave_flag == RFU_CHILD_CLOCK_SLAVE_OFF)
{
- rfu_LMAN_occureCallback(0x45, 0x00);
+ rfu_LMAN_occureCallback(LMAN_MSG_CHANGE_AGB_CLOCK_MASTER, 0);
}
- else if (lman.childClockSlave_flag == 1)
+ else if (lman.childClockSlave_flag == RFU_CHILD_CLOCK_SLAVE_ON)
{
- lman.childClockSlave_flag = 2;
+ lman.childClockSlave_flag = RFU_CHILD_CLOCK_SLAVE_OFF_REQ;
}
}
@@ -1358,25 +1355,25 @@ void rfu_LMAN_forceChangeSP(void)
{
switch (lman.state)
{
- case 5:
+ case LMAN_STATE_START_SEARCH_CHILD:
lman.pcswitch_flag = 3;
- lman.state = 9;
+ lman.state = LMAN_STATE_START_SEARCH_PARENT;
break;
- case 6:
+ case LMAN_STATE_POLL_SEARCH_CHILD:
lman.pcswitch_flag = 2;
lman.connect_period = 1;
break;
- case 7:
- case 8:
+ case LMAN_STATE_END_SEARCH_CHILD:
+ case LMAN_STATE_WAIT_RECV_CHILD_NAME:
lman.pcswitch_flag = 2;
break;
- case 9:
- case 10:
+ case LMAN_STATE_START_SEARCH_PARENT:
+ case LMAN_STATE_POLL_SEARCH_PARENT:
lman.connect_period = 40;
break;
- case 11:
+ case LMAN_STATE_END_SEARCH_PARENT:
lman.connect_period = 40;
- lman.state = 10;
+ lman.state = LMAN_STATE_POLL_SEARCH_PARENT;
break;
}
}
diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c
index a876dd125..80a44da78 100644
--- a/src/link_rfu_2.c
+++ b/src/link_rfu_2.c
@@ -24,12 +24,12 @@ struct UnkRfuStruct_8010A14{
static EWRAM_DATA struct InitializeParametersTag sRfuReqConfig = {};
static EWRAM_DATA struct UnkLinkRfuStruct_02022B44 gUnknown_203AC08 = {};
-static struct RfuAPIBuffer gRfuAPIBuffer;
+static u32 gf_rfu_REQ_api[(RFU_API_BUFF_SIZE_RAM - 0x28) / 4];
static u8 gUnknown_3001FF8[14];
static u16 gUnknown_3002008[7];
struct GFtgtGname gHostRFUtgtGnameBuffer;
-struct UnkRfuStruct_2 Rfu;
+GF_RFU_MANAGER Rfu;
u8 gHostRFUtgtUnameBuffer[PLAYER_NAME_LENGTH + 1];
static void sub_80F8AA4(void);
@@ -51,11 +51,11 @@ static void sub_80FA9D0(u16 a0);
static void sub_80FAA58(void * a0);
static void sub_80FAA94(u8 taskId);
static void sub_80FACF0(u8 taskId);
-static void sub_80FB0E8(u32 a0);
+static void sub_80FB0E8(u32 msg);
static void sub_80FB564(s32 a0);
static void sub_80FBB74(void);
static u8 sub_80FBC70(const u8 *a0, u16 a1);
-static void sub_80FBCF8(u32 a0);
+static void sub_80FBCF8(u32 bmDisconnectSlot);
static void sub_80FBE20(u32 a0, u32 a1);
static void sub_80FC028(u8 taskId);
static void sub_80FC208(void);
@@ -218,7 +218,7 @@ void InitRFU(void)
void sub_80F86F4(void)
{
- if (!rfu_initializeAPI(&gRfuAPIBuffer, sizeof gRfuAPIBuffer, gIntrTable + 1, TRUE))
+ if (!rfu_initializeAPI(gf_rfu_REQ_api, RFU_API_BUFF_SIZE_RAM - 0x28, gIntrTable + 1, TRUE))
{
gLinkType = 0;
sub_80FB128(FALSE);
@@ -371,31 +371,31 @@ static void sub_80F893C(u8 taskId)
static void sub_80F8AA4(void)
{
u8 i;
- u8 r5 = lman.acceptSlot_flag;
+ u8 acceptSlot = lman.acceptSlot_flag;
for (i = 0; i < RFU_CHILD_MAX; i++)
{
- if (r5 & 1)
+ if (acceptSlot & 1)
{
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;
+ acceptSlot >>= 1;
}
}
static void sub_80F8AEC(void)
{
- u8 r5 = lman.acceptSlot_flag;
- rfu_UNI_setSendData(r5, Rfu.unk_c87, sizeof(Rfu.unk_c87));
- Rfu.unk_cda = sub_80F886C(r5);
- Rfu.unk_ce2 = r5;
- sub_80F887C(r5, -1);
+ u8 acceptSlot = lman.acceptSlot_flag;
+ rfu_UNI_setSendData(acceptSlot, Rfu.recvCmds, sizeof(Rfu.recvCmds));
+ Rfu.unk_cda = sub_80F886C(acceptSlot);
+ Rfu.bm_PartnerFlags = acceptSlot;
+ sub_80F887C(acceptSlot, -1);
Rfu.unk_0c = 1;
}
static void sub_80F8B34(u8 taskId)
{
- if (sub_80F9800()->unk_0a_0 == 0x54 && sub_80FB9F4() == 4)
+ if (GetHostRFUtgtGname()->unk_0a_0 == 0x54 && sub_80FB9F4() == 4)
{
rfu_REQ_disconnect(lman.acceptSlot_flag);
rfu_waitREQComplete();
@@ -616,11 +616,11 @@ static void sub_80F8FD4(void)
for (i = 0; i < 5; i++)
{
- struct UnkRfuStruct_2 *ptr = &Rfu;
+ GF_RFU_MANAGER *ptr = &Rfu;
for (j = 0; j < 7; j++)
{
- ptr->unk_c87[i][j][1] = gRecvCmds[i][j] >> 8;
- ptr->unk_c87[i][j][0] = gRecvCmds[i][j];
+ ptr->recvCmds[i][j][1] = gRecvCmds[i][j] >> 8;
+ ptr->recvCmds[i][j][0] = gRecvCmds[i][j];
}
}
CpuFill16(0, gRecvCmds, sizeof gRecvCmds);
@@ -693,14 +693,14 @@ static bool32 sub_80F911C(void)
else
{
Rfu.unk_cdb = 0;
- if ((Rfu.unk_ce2 & gRfuLinkStatus->connSlotFlag) == Rfu.unk_ce2 && (Rfu.unk_ce2 & gRfuLinkStatus->connSlotFlag))
+ if ((Rfu.bm_PartnerFlags & gRfuLinkStatus->connSlotFlag) == Rfu.bm_PartnerFlags && (Rfu.bm_PartnerFlags & gRfuLinkStatus->connSlotFlag))
{
if (!Rfu.unk_cdc)
{
- if (Rfu.unk_ce3)
+ if (Rfu.bm_DisconnectSlot)
{
- sub_80FBCF8(Rfu.unk_ce3);
- Rfu.unk_ce3 = 0;
+ sub_80FBCF8(Rfu.bm_DisconnectSlot);
+ Rfu.bm_DisconnectSlot = 0;
if (Rfu.unk_ce4 == 1)
{
sub_80FB9E4(2, 0x8000);
@@ -748,7 +748,7 @@ static bool32 sub_80F9204(void)
}
rfu_REQ_recvData();
rfu_waitREQComplete();
- if ((lman.parentAck_flag & Rfu.unk_ce2) == Rfu.unk_ce2)
+ if ((lman.parentAck_flag & Rfu.bm_PartnerFlags) == Rfu.bm_PartnerFlags)
{
Rfu.unk_cdc = 0;
gUnknown_203AC08.unk_06++;
@@ -796,12 +796,12 @@ static bool32 sub_80F9204(void)
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.bm_PartnerFlags, Rfu.bm_PartnerFlags | Rfu.unk_ce5);
Rfu.unk_ce9 = Rfu.unk_ce5;
- Rfu.unk_ce2 |= Rfu.unk_ce5;
+ Rfu.bm_PartnerFlags |= Rfu.unk_ce5;
Rfu.unk_ce5 = 0;
- rfu_UNI_setSendData(Rfu.unk_ce2, Rfu.unk_c87, sizeof(Rfu.unk_c87));
- Rfu.unk_cda = sub_80F886C(Rfu.unk_ce2);
+ rfu_UNI_setSendData(Rfu.bm_PartnerFlags, Rfu.recvCmds, sizeof(Rfu.recvCmds));
+ Rfu.unk_cda = sub_80F886C(Rfu.bm_PartnerFlags);
CreateTask(sub_80FAA94, 0);
}
}
@@ -939,7 +939,7 @@ static u8 sub_80F9770(const u8 *a0)
return a0[Rfu.unk_c3e];
}
-static void rfu_func_080F97B8(void)
+static void RfuFunc_SendKeysToRfu(void)
{
static u8 gUnknown_3001188;
if (gReceivedRemoteLinkPlayers
@@ -952,20 +952,20 @@ static void rfu_func_080F97B8(void)
}
}
-struct GFtgtGname *sub_80F9800(void)
+struct GFtgtGname *GetHostRFUtgtGname(void)
{
return &gHostRFUtgtGnameBuffer;
}
bool32 IsSendingKeysToRfu(void)
{
- return Rfu.RfuFunc == rfu_func_080F97B8;
+ return Rfu.RfuFunc == RfuFunc_SendKeysToRfu;
}
-void sub_80F9828(void)
+void StartSendingKeysToRfu(void)
{
AGB_ASSERT_EX(Rfu.RfuFunc == NULL, ABSPATH("rfu.c"), 1473);
- Rfu.RfuFunc = rfu_func_080F97B8;
+ Rfu.RfuFunc = RfuFunc_SendKeysToRfu;
}
void Rfu_set_zero(void)
@@ -1015,7 +1015,7 @@ static void sub_80F9868(u8 unused)
{
Rfu.unk_80[i].unk_12 = 2;
Rfu_SetBlockReceivedFlag(i);
- if (sub_80F9800()->unk_0a_0 == 0x45 && gReceivedRemoteLinkPlayers != 0 && Rfu.unk_0c == 0)
+ if (GetHostRFUtgtGname()->unk_0a_0 == 0x45 && gReceivedRemoteLinkPlayers != 0 && Rfu.unk_0c == 0)
sub_80FAA58(gBlockRecvBuffer);
}
}
@@ -1056,7 +1056,7 @@ static void sub_80F9868(u8 unused)
case 0xee00:
if (Rfu.unk_0c == 1)
{
- Rfu.unk_ce3 |= gRecvCmds[i][1];
+ Rfu.bm_DisconnectSlot |= gRecvCmds[i][1];
Rfu.unk_ce4 = gRecvCmds[i][2];
sub_80FA9D0(gRecvCmds[i][1]);
}
@@ -1147,7 +1147,7 @@ static void sub_80F9D04(u16 command)
break;
case 0x7700:
case 0x7800:
- tmp = Rfu.unk_ce2 ^ Rfu.unk_ce3;
+ tmp = Rfu.bm_PartnerFlags ^ Rfu.bm_DisconnectSlot;
Rfu.playerCount = gUnknown_843EC41[tmp] + 1;
gSendCmd[1] = Rfu.playerCount;
buff = (u8 *)(gSendCmd + 2);
@@ -1308,7 +1308,7 @@ void LinkRfu_FatalError(void)
{
rfu_LMAN_requestChangeAgbClockMaster();
Rfu.unk_ce4 = 1;
- Rfu.unk_ce3 = gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag;
+ Rfu.bm_DisconnectSlot = gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag;
}
static void sub_80FA1C4(void)
@@ -1848,7 +1848,7 @@ static void sub_80FAD98(void)
gWirelessCommType = 2;
SetMainCallback2(CB2_LinkError);
gMain.savedCallback = CB2_LinkError;
- sub_800ACBC((Rfu.unk_0a << 16) | (Rfu.unk_10 << 8) | Rfu.unk_12, Rfu.unk_124.unk_8c2, Rfu.unk_9e8.unk_232, sub_80FB9F4() == 2);
+ sub_800ACBC((Rfu.linkman_msg << 16) | (Rfu.linkman_param[0] << 8) | Rfu.linkman_param[1], Rfu.unk_124.unk_8c2, Rfu.unk_9e8.unk_232, sub_80FB9F4() == 2);
Rfu.unk_ee = 2;
CloseLink();
}
@@ -1867,7 +1867,7 @@ static void rfu_REQ_recvData_then_sendData(void)
{
rfu_REQ_recvData();
rfu_waitREQComplete();
- rfu_LMAN_REQ_sendData(0);
+ rfu_LMAN_REQ_sendData(RFU_CHILD_CLOCK_SLAVE_OFF);
}
}
@@ -1955,11 +1955,11 @@ void sub_80FB030(u32 linkPlayerCount)
u32 r7;
s32 r8;
- if (sub_80F9800()->unk_0a_0 == 0x45)
+ if (GetHostRFUtgtGname()->unk_0a_0 == 0x45)
{
r5 = 0;
r7 = 0;
- r8 = Rfu.unk_ce2 ^ Rfu.unk_ce3;
+ r8 = Rfu.bm_PartnerFlags ^ Rfu.bm_DisconnectSlot;
for (i = 0; i < RFU_CHILD_MAX; i++)
{
if ((r8 >> i) & 1)
@@ -1975,13 +1975,13 @@ void sub_80FB030(u32 linkPlayerCount)
}
}
-static void sub_80FB0E8(u32 a0)
+static void sub_80FB0E8(u32 msg)
{
if (Rfu.unk_ee == 0)
{
- Rfu.unk_10 = lman.param[0];
- Rfu.unk_12 = lman.param[1];
- Rfu.unk_0a = a0;
+ Rfu.linkman_param[0] = lman.param[0];
+ Rfu.linkman_param[1] = lman.param[1];
+ Rfu.linkman_msg = msg;
Rfu.unk_ee = 1;
}
}
@@ -2010,25 +2010,25 @@ static void sub_80FB174(void)
Rfu.RfuFunc = sub_80FB154;
}
-static void sub_80FB184(u8 a0, u8 unused1)
+static void sub_80FB184(u8 msg, u8 param_count)
{
u8 i;
u8 r6 = 0;
- switch (a0)
+ switch (msg)
{
- case 0x00:
+ case LMAN_MSG_INITIALIZE_COMPLETED:
Rfu.unk_04 = 2;
break;
- case 0x10:
+ case LMAN_MSG_NEW_CHILD_CONNECT_DETECTED:
break;
- case 0x11:
+ case LMAN_MSG_NEW_CHILD_CONNECT_ACCEPTED:
sub_80FB564(lman.param[0]);
for (i = 0; i < RFU_CHILD_MAX; i++)
{
if ((lman.param[0] >> i) & 1)
{
struct GFtgtGname *structPtr = (void *)&gRfuLinkStatus->partner[i].gname;
- if (structPtr->unk_0a_0 == sub_80F9800()->unk_0a_0)
+ if (structPtr->unk_0a_0 == GetHostRFUtgtGname()->unk_0a_0)
{
Rfu.unk_cd1[i] = 0;
Rfu.unk_cd5[i] = 0;
@@ -2046,11 +2046,11 @@ static void sub_80FB184(u8 a0, u8 unused1)
rfu_waitREQComplete();
}
break;
- case 0x12:
+ case LMAN_MSG_NEW_CHILD_CONNECT_REJECTED:
break;
- case 0x13:
+ case LMAN_MSG_SEARCH_CHILD_PERIOD_EXPIRED:
break;
- case 0x14:
+ case LMAN_MSG_END_WAIT_CHILD_NAME:
if (Rfu.unk_ce7 != lman.acceptSlot_flag)
{
rfu_REQ_disconnect(Rfu.unk_ce7 ^ lman.acceptSlot_flag);
@@ -2058,38 +2058,42 @@ static void sub_80FB184(u8 a0, u8 unused1)
}
Rfu.unk_04 = 0x11;
break;
- case 0x31:
- Rfu.unk_f0 = 1;
+ case LMAN_MSG_LINK_LOSS_DETECTED_AND_START_RECOVERY:
+ Rfu.linkLossRecoveryState = 1;
break;
- case 0x32:
- Rfu.unk_f0 = 3;
+ case LMAN_MSG_LINK_RECOVERY_SUCCESSED:
+ Rfu.linkLossRecoveryState = 3;
break;
- case 0x30:
- case 0x33:
- Rfu.unk_f0 = 4;
- Rfu.unk_ce2 &= ~lman.param[0];
+ case LMAN_MSG_LINK_LOSS_DETECTED_AND_DISCONNECTED:
+ case LMAN_MSG_LINK_RECOVERY_FAILED_AND_DISCONNECTED:
+ Rfu.linkLossRecoveryState = 4;
+ Rfu.bm_PartnerFlags &= ~lman.param[0];
if (gReceivedRemoteLinkPlayers == 1)
{
- if (Rfu.unk_ce2 == 0)
- sub_80FB0E8(a0);
+ if (Rfu.bm_PartnerFlags == 0)
+ sub_80FB0E8(msg);
else
sub_80FB174();
}
- sub_80FB9E4(2, a0);
+ sub_80FB9E4(2, msg);
break;
case 0x34:
break;
- case 0x42 ... 0x44:
+ case LMAN_MSG_RFU_POWER_DOWN:
+ case LMAN_MSG_MANAGER_STOPPED:
+ case LMAN_MSG_MANAGER_FORCED_STOPPED_AND_RFU_RESET:
break;
- case 0xf3:
- sub_80FB9E4(1, a0);
- sub_80FB0E8(a0);
+ case LMAN_MSG_LMAN_API_ERROR_RETURN:
+ sub_80FB9E4(1, msg);
+ sub_80FB0E8(msg);
Rfu.unk_ef = 1;
break;
- case 0xf0 ... 0xf2:
- case 0xff:
- sub_80FB0E8(a0);
- sub_80FB9E4(1, a0);
+ case LMAN_MSG_REQ_API_ERROR:
+ case LMAN_MSG_WATCH_DOG_TIMER_ERROR:
+ case LMAN_MSG_CLOCK_SLAVE_MS_CHANGE_ERROR_BY_DMA:
+ case LMAN_MSG_RFU_FATAL_ERROR:
+ sub_80FB0E8(msg);
+ sub_80FB9E4(1, msg);
Rfu.unk_cdb = 1;
break;
}
@@ -2097,68 +2101,72 @@ static void sub_80FB184(u8 a0, u8 unused1)
static const u8 unref_843EDF3[] = _(" あきと");
-static void sub_80FB37C(u8 a0, u8 unused1)
+static void sub_80FB37C(u8 msg, u8 param_count)
{
- switch (a0)
+ switch (msg)
{
- case 0x00:
+ case LMAN_MSG_INITIALIZE_COMPLETED:
Rfu.unk_04 = 6;
break;
- case 0x20:
+ case LMAN_MSG_PARENT_FOUND:
Rfu.unk_ccd = lman.param[0];
break;
- case 0x21:
+ case LMAN_MSG_SEARCH_PARENT_PERIOD_EXPIRED:
break;
- case 0x22:
+ case LMAN_MSG_CONNECT_PARENT_SUCCESSED:
Rfu.unk_c3e = lman.param[0];
break;
- case 0x23:
- sub_80FB9E4(2, a0);
+ case LMAN_MSG_CONNECT_PARENT_FAILED:
+ sub_80FB9E4(2, msg);
break;
- case 0x24:
+ case LMAN_MSG_CHILD_NAME_SEND_COMPLETED:
Rfu.unk_04 = 11;
Rfu.unk_c85 = 0;
Rfu.unk_c86 = 0;
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);
+ case LMAN_MSG_CHILD_NAME_SEND_FAILED_AND_DISCONNECTED:
+ sub_80FB9E4(2, msg);
break;
- case 0x30:
- Rfu.unk_f0 = 2;
+ case LMAN_MSG_LINK_LOSS_DETECTED_AND_DISCONNECTED:
+ Rfu.linkLossRecoveryState = 2;
if (Rfu.unk_c86 == 6)
break;
- case 0x33:
- if (Rfu.unk_f0 != 2)
- Rfu.unk_f0 = 4;
+ case LMAN_MSG_LINK_RECOVERY_FAILED_AND_DISCONNECTED:
+ if (Rfu.linkLossRecoveryState != 2)
+ Rfu.linkLossRecoveryState = 4;
if (Rfu.unk_c86 != 9)
- sub_80FB9E4(2, a0);
+ sub_80FB9E4(2, msg);
nullsub_87("LINK LOSS DISCONNECT!", 5, 5);
if (gReceivedRemoteLinkPlayers == 1)
- sub_80FB0E8(a0);
+ sub_80FB0E8(msg);
break;
- case 0x31:
- Rfu.unk_f0 = 1;
+ case LMAN_MSG_LINK_LOSS_DETECTED_AND_START_RECOVERY:
+ Rfu.linkLossRecoveryState = 1;
nullsub_87("LINK LOSS RECOVERY NOW", 5, 5);
break;
- case 0x32:
- Rfu.unk_f0 = 3;
+ case LMAN_MSG_LINK_RECOVERY_SUCCESSED:
+ Rfu.linkLossRecoveryState = 3;
Rfu.unk_c3c = 1;
break;
case 0x34:
break;
- case 0x42 ... 0x44:
+ case LMAN_MSG_RFU_POWER_DOWN:
+ case LMAN_MSG_MANAGER_STOPPED:
+ case LMAN_MSG_MANAGER_FORCED_STOPPED_AND_RFU_RESET:
break;
- case 0xF3:
- sub_80FB9E4(1, a0);
- sub_80FB0E8(a0);
+ case LMAN_MSG_LMAN_API_ERROR_RETURN:
+ sub_80FB9E4(1, msg);
+ sub_80FB0E8(msg);
Rfu.unk_ef = 1;
break;
- case 0xF0 ... 0xF2:
- case 0xFF:
- sub_80FB9E4(1, a0);
- sub_80FB0E8(a0);
+ case LMAN_MSG_REQ_API_ERROR:
+ case LMAN_MSG_WATCH_DOG_TIMER_ERROR:
+ case LMAN_MSG_CLOCK_SLAVE_MS_CHANGE_ERROR_BY_DMA:
+ case LMAN_MSG_RFU_FATAL_ERROR:
+ sub_80FB9E4(1, msg);
+ sub_80FB0E8(msg);
Rfu.unk_cdb = 1;
break;
}
@@ -2196,20 +2204,20 @@ static u8 sub_80FB5A0(s32 a0)
return ret;
}
-static void sub_80FB5EC(u8 a0, u8 unused1)
+static void sub_80FB5EC(u8 msg, u8 param_count)
{
u8 r1;
- switch (a0)
+ switch (msg)
{
- case 0x00:
+ case LMAN_MSG_INITIALIZE_COMPLETED:
Rfu.unk_04 = 0x11;
break;
- case 0x10:
+ case LMAN_MSG_NEW_CHILD_CONNECT_DETECTED:
sub_80FB9E4(4, 0);
break;
- case 0x11:
- if (sub_80F9800()->unk_0a_0 == 0x45 && Rfu.unk_cd9 == 0)
+ case LMAN_MSG_NEW_CHILD_CONNECT_ACCEPTED:
+ if (GetHostRFUtgtGname()->unk_0a_0 == 0x45 && Rfu.unk_cd9 == 0)
{
u8 idx = sub_80FB5A0(lman.param[0]);
if (idx != 0)
@@ -2228,23 +2236,23 @@ static void sub_80FB5EC(u8 a0, u8 unused1)
}
if (idx != lman.param[0])
{
- Rfu.unk_ce3 |= (idx ^ lman.param[0]);
+ Rfu.bm_DisconnectSlot |= (idx ^ lman.param[0]);
Rfu.unk_ce4 = 2;
}
}
- else if (sub_80F9800()->unk_0a_0 == 0x54)
+ else if (GetHostRFUtgtGname()->unk_0a_0 == 0x54)
{
rfu_REQ_disconnect(lman.acceptSlot_flag);
rfu_waitREQComplete();
}
sub_80FB564(lman.param[0]);
break;
- case 0x12:
+ case LMAN_MSG_NEW_CHILD_CONNECT_REJECTED:
break;
- case 0x13:
+ case LMAN_MSG_SEARCH_CHILD_PERIOD_EXPIRED:
break;
- case 0x14:
- if (sub_80F9800()->unk_0a_0 != 0x45 && lman.acceptCount > 1)
+ case LMAN_MSG_END_WAIT_CHILD_NAME:
+ if (GetHostRFUtgtGname()->unk_0a_0 != 0x45 && lman.acceptCount > 1)
{
r1 = 1 << sub_80F886C(lman.param[0]);
rfu_REQ_disconnect(lman.acceptSlot_flag ^ r1);
@@ -2253,15 +2261,15 @@ static void sub_80FB5EC(u8 a0, u8 unused1)
if (Rfu.unk_04 == 0xF)
Rfu.unk_04 = 0x10;
break;
- case 0x20:
+ case LMAN_MSG_PARENT_FOUND:
Rfu.unk_ccd = lman.param[0];
break;
- case 0x21:
+ case LMAN_MSG_SEARCH_PARENT_PERIOD_EXPIRED:
break;
- case 0x22:
+ case LMAN_MSG_CONNECT_PARENT_SUCCESSED:
Rfu.unk_c3e = lman.param[0];
break;
- case 0x23:
+ case LMAN_MSG_CONNECT_PARENT_FAILED:
Rfu.unk_04 = 0x12;
if (Rfu.unk_ccf < 2)
{
@@ -2270,67 +2278,72 @@ static void sub_80FB5EC(u8 a0, u8 unused1)
}
else
{
- sub_80FB9E4(2, a0);
+ sub_80FB9E4(2, msg);
}
break;
- case 0x24:
+ case LMAN_MSG_CHILD_NAME_SEND_COMPLETED:
Rfu.unk_04 = 0xD;
sub_80FB9E4(3, 0);
rfu_setRecvBuffer(TYPE_UNI, Rfu.unk_c3e, Rfu.unk_c3f, sizeof(Rfu.unk_c3f));
break;
- case 0x25:
- sub_80FB9E4(2, a0);
+ case LMAN_MSG_CHILD_NAME_SEND_FAILED_AND_DISCONNECTED:
+ sub_80FB9E4(2, msg);
break;
- case 0x31:
+ case LMAN_MSG_LINK_LOSS_DETECTED_AND_START_RECOVERY:
if (lman.acceptSlot_flag & lman.param[0])
- Rfu.unk_f0 = 1;
+ Rfu.linkLossRecoveryState = 1;
break;
- case 0x32:
- Rfu.unk_f0 = 3;
+ case LMAN_MSG_LINK_RECOVERY_SUCCESSED:
+ Rfu.linkLossRecoveryState = 3;
if (gRfuLinkStatus->parentChild == MODE_CHILD)
Rfu.unk_c3c = 1;
break;
- case 0x30:
- Rfu.unk_f0 = 2;
- case 0x33:
- if (Rfu.unk_f0 != 2)
- Rfu.unk_f0 = 4;
+ case LMAN_MSG_LINK_LOSS_DETECTED_AND_DISCONNECTED:
+ Rfu.linkLossRecoveryState = 2;
+ // fallthrough
+ case LMAN_MSG_LINK_RECOVERY_FAILED_AND_DISCONNECTED:
+ if (Rfu.linkLossRecoveryState != 2)
+ Rfu.linkLossRecoveryState = 4;
if (Rfu.unk_0c == 1)
{
if (gReceivedRemoteLinkPlayers == 1)
{
- Rfu.unk_ce2 &= ~(lman.param[0]);
- if (Rfu.unk_ce2 == 0)
- sub_80FB0E8(a0);
+ Rfu.bm_PartnerFlags &= ~(lman.param[0]);
+ if (Rfu.bm_PartnerFlags == 0)
+ sub_80FB0E8(msg);
else
sub_80FB174();
}
}
else if (Rfu.unk_ce4 != 2 && gReceivedRemoteLinkPlayers == 1)
{
- sub_80FB0E8(a0);
+ sub_80FB0E8(msg);
rfu_LMAN_stopManager(0);
}
if (gRfuLinkStatus->parentChild == MODE_NEUTRAL && lman.pcswitch_flag == 0 && FuncIsActiveTask(sub_80F8B34) == TRUE)
Rfu.unk_04 = 0x11;
- sub_80FB9E4(2, a0);
+ sub_80FB9E4(2, msg);
break;
- case 0x40:
- Rfu.unk_ce3 = 0;
+ case LMAN_MSG_LINK_DISCONNECTED_BY_USER:
+ Rfu.bm_DisconnectSlot = 0;
break;
- case 0x42 ... 0x44:
+ case LMAN_MSG_RFU_POWER_DOWN:
+ case LMAN_MSG_MANAGER_STOPPED:
+ case LMAN_MSG_MANAGER_FORCED_STOPPED_AND_RFU_RESET:
break;
- case 0xF3:
- sub_80FB9E4(1, a0);
- sub_80FB0E8(a0);
+ case LMAN_MSG_LMAN_API_ERROR_RETURN:
+ sub_80FB9E4(1, msg);
+ sub_80FB0E8(msg);
Rfu.unk_ef = 1;
break;
- case 0xF0 ... 0xF2:
- case 0xFF:
- sub_80FB0E8(a0);
- sub_80FB9E4(1, a0);
+ case LMAN_MSG_REQ_API_ERROR:
+ case LMAN_MSG_WATCH_DOG_TIMER_ERROR:
+ case LMAN_MSG_CLOCK_SLAVE_MS_CHANGE_ERROR_BY_DMA:
+ case LMAN_MSG_RFU_FATAL_ERROR:
+ sub_80FB0E8(msg);
+ sub_80FB9E4(1, msg);
Rfu.unk_cdb = 0;
break;
}
@@ -2341,10 +2354,10 @@ void sub_80FB9D0(void)
Rfu.unk_ce4 = 2;
}
-void sub_80FB9E4(u8 a0, u16 a1)
+void sub_80FB9E4(u8 a0, u16 msg)
{
Rfu.unk_f1 = a0;
- Rfu.unk_0a = a1;
+ Rfu.linkman_msg = msg;
}
u8 sub_80FB9F4(void)
@@ -2499,14 +2512,14 @@ static u8 sub_80FBC70(const u8 *a0, u16 a1)
return ret;
}
-static void sub_80FBCF8(u32 a0)
+static void sub_80FBCF8(u32 bmDisconnectSlot)
{
- rfu_REQ_disconnect(a0);
+ rfu_REQ_disconnect(bmDisconnectSlot);
rfu_waitREQComplete();
- Rfu.unk_ce2 &= ~(a0);
+ Rfu.bm_PartnerFlags &= ~(bmDisconnectSlot);
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);
+ rfu_UNI_setSendData(Rfu.bm_PartnerFlags, Rfu.recvCmds, 70);
+ Rfu.unk_cda = sub_80F886C(Rfu.bm_PartnerFlags);
}
void sub_80FBD4C(const u8 *ptr, u16 a1)
@@ -2525,7 +2538,7 @@ void sub_80FBD6C(u32 a0)
for (i = 0; i < RFU_CHILD_MAX; i++)
{
- if (Rfu.unk_cde[i] == a0 && (Rfu.unk_ce2 >> i) & 1)
+ if (Rfu.unk_cde[i] == a0 && (Rfu.bm_PartnerFlags >> i) & 1)
var |= 1 << i;
}
if (var)
@@ -2577,7 +2590,7 @@ static void sub_80FBE80(u8 taskId)
if (sub_80F8ECC())
DestroyTask(taskId);
}
- else if (sub_80F9800()->unk_0a_0 == 0x15 || sub_80F9800()->unk_0a_0 == 0x16)
+ else if (GetHostRFUtgtGname()->unk_0a_0 == 0x15 || GetHostRFUtgtGname()->unk_0a_0 == 0x16)
{
data[15]++;
}
@@ -2619,7 +2632,7 @@ void sub_80FBF54(const u8 *src, u16 trainerId)
static bool32 sub_80FBF98(s16 a1, struct GFtgtGname *structPtr)
{
- if (sub_80F9800()->unk_0a_0 == 0x45)
+ if (GetHostRFUtgtGname()->unk_0a_0 == 0x45)
{
if (structPtr->unk_0a_0 != 0x45)
return TRUE;
@@ -2709,7 +2722,7 @@ void sub_80FC114(const u8 *name, struct GFtgtGname *structPtr, u8 a2)
bool8 sub_80FC1B0(void)
{
- if (Rfu.unk_f0 == 1)
+ if (Rfu.linkLossRecoveryState == 1)
return TRUE;
else
return FALSE;
diff --git a/src/party_menu.c b/src/party_menu.c
index df0e70b37..c9a88f157 100644
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -3881,7 +3881,7 @@ static void CursorCB_Register(u8 taskId)
u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES);
u8 obedience = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_OBEDIENCE);
- switch (CanRegisterMonForTradingBoard(*(struct GFtgtGnameSub *)sub_80F9800(), species2, species, obedience))
+ switch (CanRegisterMonForTradingBoard(*(struct GFtgtGnameSub *)GetHostRFUtgtGname(), species2, species, obedience))
{
case CANT_REGISTER_MON:
StringExpandPlaceholders(gStringVar4, gText_PkmnCantBeTradedNow);
@@ -3907,7 +3907,7 @@ static void CursorCB_Trade1(u8 taskId)
u16 species2 = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES2);
u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES);
u8 obedience = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_OBEDIENCE);
- u32 stringId = GetUnionRoomTradeMessageId(*(struct GFtgtGnameSub *)sub_80F9800(), gUnknown_203B064, species2, gUnionRoomOfferedSpecies, gUnionRoomRequestedMonType, species, obedience);
+ u32 stringId = GetUnionRoomTradeMessageId(*(struct GFtgtGnameSub *)GetHostRFUtgtGname(), gUnknown_203B064, species2, gUnionRoomOfferedSpecies, gUnionRoomRequestedMonType, species, obedience);
if (stringId != UR_TRADE_MSG_NONE)
{
diff --git a/src/union_room.c b/src/union_room.c
index f942fb7d3..06f414075 100644
--- a/src/union_room.c
+++ b/src/union_room.c
@@ -3089,20 +3089,20 @@ static void sub_81186E0(u8 taskId)
}
break;
case 42:
- if (sub_80F9800()->species == SPECIES_NONE)
+ if (GetHostRFUtgtGname()->species == SPECIES_NONE)
{
data->state = 43;
}
else
{
- if (sub_80F9800()->species == SPECIES_EGG)
+ if (GetHostRFUtgtGname()->species == SPECIES_EGG)
{
StringCopy(gStringVar4, gUnknown_8458DE8);
}
else
{
- StringCopy(gStringVar1, gSpeciesNames[sub_80F9800()->species]);
- ConvertIntToDecimalStringN(gStringVar2, sub_80F9800()->level, STR_CONV_MODE_LEFT_ALIGN, 3);
+ StringCopy(gStringVar1, gSpeciesNames[GetHostRFUtgtGname()->species]);
+ ConvertIntToDecimalStringN(gStringVar2, GetHostRFUtgtGname()->level, STR_CONV_MODE_LEFT_ALIGN, 3);
StringExpandPlaceholders(gStringVar4, gUnknown_8458DBC);
}
sub_8118664(44, gStringVar4);
@@ -4199,7 +4199,7 @@ static void sub_811ACA4(u8 windowId, s32 itemId, u8 y)
if (itemId == -3 && y == gUnknown_8456F7C.upText_Y)
{
- rfu = sub_80F9800();
+ rfu = GetHostRFUtgtGname();
if (rfu->species != SPECIES_NONE)
{
sub_811ABE4(windowId, y, rfu, gSaveBlock2Ptr->playerName, 5);