Still more documentation of RFU
This commit is contained in:
+84
-84
@@ -166,7 +166,7 @@ static const struct SpriteTemplate sWirelessStatusIndicatorSpriteTemplate = {
|
||||
SpriteCallbackDummy
|
||||
};
|
||||
|
||||
void sub_80FC478(struct UnkRfuStruct_2_Sub_124 *ptr)
|
||||
void RFU_queue_20_70_reset(struct UnkRfuStruct_2_Sub_124 *queue)
|
||||
{
|
||||
s32 i;
|
||||
s32 j;
|
||||
@@ -175,16 +175,16 @@ void sub_80FC478(struct UnkRfuStruct_2_Sub_124 *ptr)
|
||||
{
|
||||
for (j = 0; j < 70; j++)
|
||||
{
|
||||
ptr->unk_00[i][j] = 0;
|
||||
queue->slots[i][j] = 0;
|
||||
}
|
||||
}
|
||||
ptr->unk_8c1 = 0;
|
||||
ptr->unk_8c0 = 0;
|
||||
ptr->unk_8c2 = 0;
|
||||
ptr->unk_8c3 = 0;
|
||||
queue->send_slot = 0;
|
||||
queue->recv_slot = 0;
|
||||
queue->count = 0;
|
||||
queue->full = 0;
|
||||
}
|
||||
|
||||
void sub_80FC4D4(struct UnkRfuStruct_2_Sub_9e8 *ptr)
|
||||
void RFU_queue_40_14_reset(struct UnkRfuStruct_2_Sub_9e8 *ptr)
|
||||
{
|
||||
s32 i;
|
||||
s32 j;
|
||||
@@ -193,16 +193,16 @@ void sub_80FC4D4(struct UnkRfuStruct_2_Sub_9e8 *ptr)
|
||||
{
|
||||
for (j = 0; j < 14; j++)
|
||||
{
|
||||
ptr->unk_00[i][j] = 0;
|
||||
ptr->slots[i][j] = 0;
|
||||
}
|
||||
}
|
||||
ptr->unk_231 = 0;
|
||||
ptr->unk_230 = 0;
|
||||
ptr->unk_232 = 0;
|
||||
ptr->unk_233 = 0;
|
||||
ptr->send_slot = 0;
|
||||
ptr->recv_slot = 0;
|
||||
ptr->count = 0;
|
||||
ptr->full = 0;
|
||||
}
|
||||
|
||||
static void sub_80FC530(struct UnkRfuStruct_Sub_Unused *ptr)
|
||||
static void RFU_queue_2_256_reset(struct UnkRfuStruct_Sub_Unused *ptr)
|
||||
{
|
||||
s32 i;
|
||||
s32 j;
|
||||
@@ -211,29 +211,29 @@ static void sub_80FC530(struct UnkRfuStruct_Sub_Unused *ptr)
|
||||
{
|
||||
for (j = 0; j < 256; j++)
|
||||
{
|
||||
ptr->unk_00[i][j] = 0;
|
||||
ptr->slots[i][j] = 0;
|
||||
}
|
||||
}
|
||||
ptr->unk_201 = 0;
|
||||
ptr->unk_200 = 0;
|
||||
ptr->unk_202 = 0;
|
||||
ptr->unk_203 = 0;
|
||||
ptr->send_slot = 0;
|
||||
ptr->recv_slot = 0;
|
||||
ptr->count = 0;
|
||||
ptr->full = 0;
|
||||
}
|
||||
|
||||
void sub_80FC588(struct UnkRfuStruct_2_Sub_124 *q1, u8 *q2)
|
||||
void RFU_queue_20_70_recv(struct UnkRfuStruct_2_Sub_124 *queue, u8 *data)
|
||||
{
|
||||
s32 i;
|
||||
u16 imeBak;
|
||||
u8 count;
|
||||
|
||||
if (q1->unk_8c2 < 20)
|
||||
if (queue->count < 20)
|
||||
{
|
||||
imeBak = REG_IME;
|
||||
REG_IME = 0;
|
||||
count = 0;
|
||||
for (i = 0; i < 70; i += 14)
|
||||
{
|
||||
if (q2[i] == 0 && q2[i + 1] == 0)
|
||||
if (data[i] == 0 && data[i + 1] == 0)
|
||||
{
|
||||
count++;
|
||||
}
|
||||
@@ -242,36 +242,36 @@ void sub_80FC588(struct UnkRfuStruct_2_Sub_124 *q1, u8 *q2)
|
||||
{
|
||||
for (i = 0; i < 70; i++)
|
||||
{
|
||||
q1->unk_00[q1->unk_8c0][i] = q2[i];
|
||||
queue->slots[queue->recv_slot][i] = data[i];
|
||||
}
|
||||
q1->unk_8c0++;
|
||||
q1->unk_8c0 %= 20;
|
||||
q1->unk_8c2++;
|
||||
queue->recv_slot++;
|
||||
queue->recv_slot %= 20;
|
||||
queue->count++;
|
||||
for (i = 0; i < 70; i++)
|
||||
{
|
||||
q2[i] = 0;
|
||||
data[i] = 0;
|
||||
}
|
||||
}
|
||||
REG_IME = imeBak;
|
||||
}
|
||||
else
|
||||
{
|
||||
q1->unk_8c3 = 1;
|
||||
queue->full = 1;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80FC63C(struct UnkRfuStruct_2_Sub_9e8 *q1, u8 *q2)
|
||||
void RFU_queue_40_14_recv(struct UnkRfuStruct_2_Sub_9e8 *queue, u8 *data)
|
||||
{
|
||||
s32 i;
|
||||
u16 imeBak;
|
||||
|
||||
if (q1->unk_232 < 40)
|
||||
if (queue->count < 40)
|
||||
{
|
||||
imeBak = REG_IME;
|
||||
REG_IME = 0;
|
||||
for (i = 0; i < 14; i++)
|
||||
{
|
||||
if (q2[i] != 0)
|
||||
if (data[i] != 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
@@ -280,57 +280,57 @@ void sub_80FC63C(struct UnkRfuStruct_2_Sub_9e8 *q1, u8 *q2)
|
||||
{
|
||||
for (i = 0; i < 14; i++)
|
||||
{
|
||||
q1->unk_00[q1->unk_230][i] = q2[i];
|
||||
queue->slots[queue->recv_slot][i] = data[i];
|
||||
}
|
||||
q1->unk_230++;
|
||||
q1->unk_230 %= 40;
|
||||
q1->unk_232++;
|
||||
queue->recv_slot++;
|
||||
queue->recv_slot %= 40;
|
||||
queue->count++;
|
||||
for (i = 0; i < 14; i++)
|
||||
{
|
||||
q2[i] = 0;
|
||||
data[i] = 0;
|
||||
}
|
||||
}
|
||||
REG_IME = imeBak;
|
||||
}
|
||||
else
|
||||
{
|
||||
q1->unk_233 = 1;
|
||||
queue->full = 1;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_80FC6E8(struct UnkRfuStruct_2_Sub_124 *q1, u8 *q2)
|
||||
bool8 RFU_queue_20_70_send(struct UnkRfuStruct_2_Sub_124 *queue, u8 *dest)
|
||||
{
|
||||
u16 imeBak;
|
||||
s32 i;
|
||||
|
||||
imeBak = REG_IME;
|
||||
REG_IME = 0;
|
||||
if (q1->unk_8c0 == q1->unk_8c1 || q1->unk_8c3 != 0)
|
||||
if (queue->recv_slot == queue->send_slot || queue->full)
|
||||
{
|
||||
for (i = 0; i < 70; i++)
|
||||
{
|
||||
q2[i] = 0;
|
||||
dest[i] = 0;
|
||||
}
|
||||
REG_IME = imeBak;
|
||||
return FALSE;
|
||||
}
|
||||
for (i = 0; i < 70; i++)
|
||||
{
|
||||
q2[i] = q1->unk_00[q1->unk_8c1][i];
|
||||
dest[i] = queue->slots[queue->send_slot][i];
|
||||
}
|
||||
q1->unk_8c1++;
|
||||
q1->unk_8c1 %= 20;
|
||||
q1->unk_8c2--;
|
||||
queue->send_slot++;
|
||||
queue->send_slot %= 20;
|
||||
queue->count--;
|
||||
REG_IME = imeBak;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_80FC79C(struct UnkRfuStruct_2_Sub_9e8 *q1, u8 *q2)
|
||||
bool8 RFU_queue_40_14_send(struct UnkRfuStruct_2_Sub_9e8 *queue, u8 *dest)
|
||||
{
|
||||
s32 i;
|
||||
u16 imeBak;
|
||||
|
||||
if (q1->unk_230 == q1->unk_231 || q1->unk_233 != 0)
|
||||
if (queue->recv_slot == queue->send_slot || queue->full != 0)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
@@ -338,98 +338,98 @@ bool8 sub_80FC79C(struct UnkRfuStruct_2_Sub_9e8 *q1, u8 *q2)
|
||||
REG_IME = 0;
|
||||
for (i = 0; i < 14; i++)
|
||||
{
|
||||
q2[i] = q1->unk_00[q1->unk_231][i];
|
||||
dest[i] = queue->slots[queue->send_slot][i];
|
||||
}
|
||||
q1->unk_231++;
|
||||
q1->unk_231 %= 40;
|
||||
q1->unk_232--;
|
||||
queue->send_slot++;
|
||||
queue->send_slot %= 40;
|
||||
queue->count--;
|
||||
REG_IME = imeBak;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_80FC828(struct UnkRfuStruct_2_Sub_c1c *q1, const u8 *q2)
|
||||
void RFU_queue_2_14_recv(struct UnkRfuStruct_2_Sub_c1c *queue, const u8 *data)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
if (q2[1] == 0)
|
||||
if (data[1] == 0)
|
||||
{
|
||||
sub_80FC888(q1, NULL);
|
||||
RFU_queue_2_14_send(queue, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = 0; i < 14; i++)
|
||||
{
|
||||
q1->unk_00[q1->unk_1c][i] = q2[i];
|
||||
queue->slots[queue->recv_slot][i] = data[i];
|
||||
}
|
||||
q1->unk_1c++;
|
||||
q1->unk_1c %= 2;
|
||||
if (q1->unk_1e < 2)
|
||||
queue->recv_slot++;
|
||||
queue->recv_slot %= 2;
|
||||
if (queue->count < 2)
|
||||
{
|
||||
q1->unk_1e++;
|
||||
queue->count++;
|
||||
}
|
||||
else
|
||||
{
|
||||
q1->unk_1d = q1->unk_1c;
|
||||
queue->send_slot = queue->recv_slot;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_80FC888(struct UnkRfuStruct_2_Sub_c1c *q1, u8 *q2)
|
||||
bool8 RFU_queue_2_14_send(struct UnkRfuStruct_2_Sub_c1c *queue, u8 *dest)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
if (q1->unk_1e == 0)
|
||||
if (queue->count == 0)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
if (q2 != NULL)
|
||||
if (dest != NULL)
|
||||
{
|
||||
for (i = 0; i < 14; i++)
|
||||
{
|
||||
q2[i] = q1->unk_00[q1->unk_1d][i];
|
||||
dest[i] = queue->slots[queue->send_slot][i];
|
||||
}
|
||||
}
|
||||
q1->unk_1d++;
|
||||
q1->unk_1d %= 2;
|
||||
q1->unk_1e--;
|
||||
queue->send_slot++;
|
||||
queue->send_slot %= 2;
|
||||
queue->count--;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void sub_80FC8D8(struct UnkRfuStruct_Sub_Unused *q1, u8 *q2)
|
||||
static void RFU_queue_2_256_recv(struct UnkRfuStruct_Sub_Unused *queue, u8 *data)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
if (q1->unk_202 < 2)
|
||||
if (queue->count < 2)
|
||||
{
|
||||
for (i = 0; i < 256; i++)
|
||||
{
|
||||
q1->unk_00[q1->unk_200][i] = q2[i];
|
||||
queue->slots[queue->recv_slot][i] = data[i];
|
||||
}
|
||||
q1->unk_200++;
|
||||
q1->unk_200 %= 2;
|
||||
q1->unk_202++;
|
||||
queue->recv_slot++;
|
||||
queue->recv_slot %= 2;
|
||||
queue->count++;
|
||||
}
|
||||
else
|
||||
{
|
||||
q1->unk_203 = 1;
|
||||
queue->full = 1;
|
||||
}
|
||||
}
|
||||
|
||||
static bool8 sub_80FC944(struct UnkRfuStruct_Sub_Unused *q1, u8 *q2)
|
||||
static bool8 RFU_queue_2_256_send(struct UnkRfuStruct_Sub_Unused *queue, u8 *send)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
if (q1->unk_200 == q1->unk_201 || q1->unk_203)
|
||||
if (queue->recv_slot == queue->send_slot || queue->full)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
for (i = 0; i < 256; i++)
|
||||
{
|
||||
q2[i] = q1->unk_00[q1->unk_201][i];
|
||||
send[i] = queue->slots[queue->send_slot][i];
|
||||
}
|
||||
q1->unk_201++;
|
||||
q1->unk_201 %= 2;
|
||||
q1->unk_202--;
|
||||
queue->send_slot++;
|
||||
queue->send_slot %= 2;
|
||||
queue->count--;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -438,7 +438,7 @@ static void sub_80FC9B8(u8 *q1, u8 mode)
|
||||
s32 i;
|
||||
u8 rval;
|
||||
u16 r5 = 0;
|
||||
static u8 _3002018;
|
||||
static u8 counter;
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
@@ -470,11 +470,11 @@ static void sub_80FC9B8(u8 *q1, u8 mode)
|
||||
case 3:
|
||||
for (i = 0; i < 200; i++)
|
||||
{
|
||||
q1[i] = i + 1 + _3002018;
|
||||
r5 += (i + 1 + _3002018) & 0xFF;
|
||||
q1[i] = i + 1 + counter;
|
||||
r5 += (i + 1 + counter) & 0xFF;
|
||||
}
|
||||
*((u16 *)(q1 + i)) = r5;
|
||||
_3002018++;
|
||||
counter++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -892,7 +892,7 @@ void RecordMixTrainerNames(void)
|
||||
s32 connectedTrainerRecordIndices[5];
|
||||
struct TrainerNameRecord *newRecords = AllocZeroed(20 * sizeof(struct TrainerNameRecord));
|
||||
|
||||
// Check if we already have a record saved for connected trainers.
|
||||
// Check if we alsendy have a record saved for connected trainers.
|
||||
for (i = 0; i < GetLinkPlayerCount(); i++)
|
||||
{
|
||||
connectedTrainerRecordIndices[i] = -1;
|
||||
@@ -913,7 +913,7 @@ void RecordMixTrainerNames(void)
|
||||
{
|
||||
CopyTrainerRecord(&newRecords[nextSpace], (u16)gLinkPlayers[i].trainerId, gLinkPlayers[i].name);
|
||||
|
||||
// If we already had a record for this trainer, wipe it so that the next step doesn't duplicate it.
|
||||
// If we alsendy had a record for this trainer, wipe it so that the next step doesn't duplicate it.
|
||||
if (connectedTrainerRecordIndices[i] >= 0)
|
||||
{
|
||||
ZeroName(gSaveBlock1Ptr->trainerNameRecords[connectedTrainerRecordIndices[i]].trainerName);
|
||||
|
||||
Reference in New Issue
Block a user