diff options
Diffstat (limited to 'src/link_rfu.c')
-rw-r--r-- | src/link_rfu.c | 74 |
1 files changed, 13 insertions, 61 deletions
diff --git a/src/link_rfu.c b/src/link_rfu.c index 9732e9889..1f3ae4f3c 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -24,10 +24,10 @@ extern u16 gHeldKeyCodeToSend; struct UnkRfuStruct_1 gUnknown_03004140; struct UnkRfuStruct_2 gUnknown_03005000; -IWRAM_DATA u8 gUnknown_03000D74; -ALIGNED(4) IWRAM_DATA u8 gUnknown_03000D78[8]; -IWRAM_DATA u8 gUnknown_03000D80[16]; -IWRAM_DATA u16 gUnknown_03000D90[8]; +BSS_DATA u8 gUnknown_03000D74; +ALIGNED(4) BSS_DATA u8 gUnknown_03000D78[8]; +BSS_DATA u8 gUnknown_03000D80[16]; +BSS_DATA u16 gUnknown_03000D90[8]; EWRAM_DATA u8 gWirelessStatusIndicatorSpriteId = 0; EWRAM_DATA ALIGNED(4) struct UnkLinkRfuStruct_02022B14 gUnknown_02022B14 = {}; @@ -2021,6 +2021,8 @@ void sub_800DBF8(u8 *q1, u8 mode) } } +// File boundary here maybe? + void PkmnStrToASCII(u8 *q1, const u8 *q2) { s32 i; @@ -2413,7 +2415,7 @@ void RecordMixTrainerNames(void) } } } - + // Save the connected trainers first, at the top of the list. nextSpace = 0; for (i = 0; i < GetLinkPlayerCount(); i++) @@ -2444,7 +2446,7 @@ void RecordMixTrainerNames(void) } } } - + // Finalize the new list, and clean up. memcpy(gSaveBlock1Ptr->trainerNameRecords, newRecords, 20 * sizeof(struct TrainerNameRecord)); free(newRecords); @@ -2914,70 +2916,21 @@ void sub_800EF88(u8 a0) } } -#ifdef NONMATCHING -// FIXME: gUnknown_03005000.unk_c87 should be in r5 -// FIXME: gRecvCmds should be in r6 and r7 void sub_800EFB0(void) { s32 i, j; + for (i = 0; i < 5; i++) { + struct UnkRfuStruct_2 *ptr = &gUnknown_03005000; for (j = 0; j < 7; j++) { - gUnknown_03005000.unk_c87[i][j][1] = gRecvCmds[i][j] >> 8; - gUnknown_03005000.unk_c87[i][j][0] = gRecvCmds[i][j]; + ptr->unk_c87[i][j][1] = gRecvCmds[i][j] >> 8; + ptr->unk_c87[i][j][0] = gRecvCmds[i][j]; } } CpuFill16(0, gRecvCmds, sizeof gRecvCmds); } -#else -NAKED void sub_800EFB0(void) -{ - asm_unified("\tpush {r4-r7,lr}\n" - "\tsub sp, 0x4\n" - "\tmovs r2, 0\n" - "\tldr r7, =gRecvCmds\n" - "\tldr r0, =gUnknown_03005000\n" - "\tadds r6, r7, 0\n" - "\tldr r1, =0x00000c87\n" - "\tadds r5, r0, r1\n" - "_0800EFC0:\n" - "\tmovs r3, 0\n" - "\tlsls r0, r2, 3\n" - "\tlsls r1, r2, 4\n" - "\tadds r4, r2, 0x1\n" - "\tsubs r0, r2\n" - "\tlsls r0, 1\n" - "\tadds r2, r0, r5\n" - "\tadds r1, r6\n" - "_0800EFD0:\n" - "\tldrh r0, [r1]\n" - "\tlsrs r0, 8\n" - "\tstrb r0, [r2, 0x1]\n" - "\tldrh r0, [r1]\n" - "\tstrb r0, [r2]\n" - "\tadds r2, 0x2\n" - "\tadds r1, 0x2\n" - "\tadds r3, 0x1\n" - "\tcmp r3, 0x6\n" - "\tble _0800EFD0\n" - "\tadds r2, r4, 0\n" - "\tcmp r2, 0x4\n" - "\tble _0800EFC0\n" - "\tmovs r0, 0\n" - "\tmov r1, sp\n" - "\tstrh r0, [r1]\n" - "\tldr r2, =0x01000028\n" - "\tmov r0, sp\n" - "\tadds r1, r7, 0\n" - "\tbl CpuSet\n" - "\tadd sp, 0x4\n" - "\tpop {r4-r7}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.pool"); -} -#endif void sub_800F014(void) { @@ -3542,7 +3495,7 @@ void sub_800FD14(u16 command) } } -void sub_800FE50(u16 *a0) +void sub_800FE50(void *a0) { if (gSendCmd[0] == 0 && !sub_8011A80()) { @@ -5191,4 +5144,3 @@ u32 GetRfuRecvQueueLength(void) { return gUnknown_03005000.unk_124.unk_8c2; } - |