through rfufunc_80FA020
This commit is contained in:
-331
@@ -5,337 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_800FE50
|
|
||||||
sub_800FE50: @ 800FE50
|
|
||||||
push {r4,lr}
|
|
||||||
adds r4, r0, 0
|
|
||||||
ldr r0, =gSendCmd
|
|
||||||
ldrh r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0800FE76
|
|
||||||
bl sub_8011A80
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0800FE76
|
|
||||||
ldr r0, =gUnknown_03005000+0xF2
|
|
||||||
adds r1, r4, 0
|
|
||||||
movs r2, 0xC
|
|
||||||
bl memcpy
|
|
||||||
movs r0, 0xBC
|
|
||||||
lsls r0, 6
|
|
||||||
bl sub_800FD14
|
|
||||||
_0800FE76:
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_800FE50
|
|
||||||
|
|
||||||
thumb_func_start sub_800FE84
|
|
||||||
@ bool8 sub_800FE84(u32 a1, u32 size)
|
|
||||||
sub_800FE84: @ 800FE84
|
|
||||||
push {r4-r7,lr}
|
|
||||||
mov r7, r9
|
|
||||||
mov r6, r8
|
|
||||||
push {r6,r7}
|
|
||||||
adds r7, r0, 0
|
|
||||||
adds r6, r1, 0
|
|
||||||
ldr r5, =gUnknown_03005000
|
|
||||||
ldr r0, [r5]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0800FEB8
|
|
||||||
ldr r0, =gSendCmd
|
|
||||||
ldrh r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0800FEB8
|
|
||||||
movs r0, 0x7C
|
|
||||||
adds r0, r5
|
|
||||||
mov r9, r0
|
|
||||||
ldrb r1, [r0]
|
|
||||||
mov r8, r1
|
|
||||||
cmp r1, 0
|
|
||||||
beq _0800FEC8
|
|
||||||
ldr r1, =gUnknown_02022B44
|
|
||||||
adds r1, 0x83
|
|
||||||
ldrb r0, [r1]
|
|
||||||
adds r0, 0x1
|
|
||||||
strb r0, [r1]
|
|
||||||
_0800FEB8:
|
|
||||||
movs r0, 0
|
|
||||||
b _0800FF32
|
|
||||||
.pool
|
|
||||||
_0800FEC8:
|
|
||||||
adds r0, r6, 0
|
|
||||||
movs r1, 0xC
|
|
||||||
bl __umodsi3
|
|
||||||
negs r4, r0
|
|
||||||
orrs r4, r0
|
|
||||||
lsrs r4, 31
|
|
||||||
bl GetMultiplayerId
|
|
||||||
adds r1, r5, 0
|
|
||||||
adds r1, 0x7D
|
|
||||||
strb r0, [r1]
|
|
||||||
movs r0, 0x1
|
|
||||||
mov r1, r9
|
|
||||||
strb r0, [r1]
|
|
||||||
adds r0, r6, 0
|
|
||||||
movs r1, 0xC
|
|
||||||
bl __udivsi3
|
|
||||||
adds r0, r4
|
|
||||||
adds r1, r5, 0
|
|
||||||
adds r1, 0x6E
|
|
||||||
strh r0, [r1]
|
|
||||||
adds r0, r5, 0
|
|
||||||
adds r0, 0x6C
|
|
||||||
mov r1, r8
|
|
||||||
strh r1, [r0]
|
|
||||||
movs r0, 0x80
|
|
||||||
lsls r0, 1
|
|
||||||
cmp r6, r0
|
|
||||||
bls _0800FF0A
|
|
||||||
str r7, [r5, 0x70]
|
|
||||||
b _0800FF1C
|
|
||||||
_0800FF0A:
|
|
||||||
ldr r4, =gBlockSendBuffer
|
|
||||||
cmp r7, r4
|
|
||||||
beq _0800FF1A
|
|
||||||
adds r0, r4, 0
|
|
||||||
adds r1, r7, 0
|
|
||||||
adds r2, r6, 0
|
|
||||||
bl memcpy
|
|
||||||
_0800FF1A:
|
|
||||||
str r4, [r5, 0x70]
|
|
||||||
_0800FF1C:
|
|
||||||
movs r0, 0x88
|
|
||||||
lsls r0, 8
|
|
||||||
bl sub_800FD14
|
|
||||||
ldr r0, =gUnknown_03005000
|
|
||||||
ldr r1, =rfufunc_80F9F44
|
|
||||||
str r1, [r0]
|
|
||||||
adds r0, 0x5B
|
|
||||||
movs r1, 0
|
|
||||||
strb r1, [r0]
|
|
||||||
movs r0, 0x1
|
|
||||||
_0800FF32:
|
|
||||||
pop {r3,r4}
|
|
||||||
mov r8, r3
|
|
||||||
mov r9, r4
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_800FE84
|
|
||||||
|
|
||||||
thumb_func_start rfufunc_80F9F44
|
|
||||||
rfufunc_80F9F44: @ 800FF4C
|
|
||||||
push {r4,r5,lr}
|
|
||||||
ldr r0, =gSendCmd
|
|
||||||
ldrh r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0800FFA0
|
|
||||||
movs r5, 0x88
|
|
||||||
lsls r5, 8
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl sub_800FD14
|
|
||||||
ldr r4, =gUnknown_03005000
|
|
||||||
ldrb r0, [r4, 0xC]
|
|
||||||
cmp r0, 0x1
|
|
||||||
bne _0800FF84
|
|
||||||
adds r1, r4, 0
|
|
||||||
adds r1, 0x5B
|
|
||||||
ldrb r0, [r1]
|
|
||||||
adds r0, 0x1
|
|
||||||
strb r0, [r1]
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x2
|
|
||||||
bls _0800FFA0
|
|
||||||
b _0800FF9C
|
|
||||||
.pool
|
|
||||||
_0800FF84:
|
|
||||||
bl GetMultiplayerId
|
|
||||||
ldr r1, =gRecvCmds
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 20
|
|
||||||
adds r0, r1
|
|
||||||
ldrh r1, [r0]
|
|
||||||
movs r0, 0xFF
|
|
||||||
lsls r0, 8
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, r5
|
|
||||||
bne _0800FFA0
|
|
||||||
_0800FF9C:
|
|
||||||
ldr r0, =sub_800FFB0
|
|
||||||
str r0, [r4]
|
|
||||||
_0800FFA0:
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end rfufunc_80F9F44
|
|
||||||
|
|
||||||
thumb_func_start sub_800FFB0
|
|
||||||
sub_800FFB0: @ 800FFB0
|
|
||||||
push {r4-r6,lr}
|
|
||||||
ldr r0, =gUnknown_03005000
|
|
||||||
mov r12, r0
|
|
||||||
ldr r5, [r0, 0x70]
|
|
||||||
ldr r3, =gSendCmd
|
|
||||||
mov r2, r12
|
|
||||||
adds r2, 0x6C
|
|
||||||
ldrh r1, [r2]
|
|
||||||
movs r4, 0x89
|
|
||||||
lsls r4, 8
|
|
||||||
adds r0, r4, 0
|
|
||||||
orrs r0, r1
|
|
||||||
strh r0, [r3]
|
|
||||||
movs r4, 0
|
|
||||||
adds r6, r2, 0
|
|
||||||
adds r3, 0x2
|
|
||||||
_0800FFD0:
|
|
||||||
lsls r2, r4, 1
|
|
||||||
ldrh r1, [r6]
|
|
||||||
lsls r0, r1, 1
|
|
||||||
adds r0, r1
|
|
||||||
lsls r0, 2
|
|
||||||
adds r0, r2
|
|
||||||
adds r0, r5
|
|
||||||
ldrb r1, [r0, 0x1]
|
|
||||||
lsls r1, 8
|
|
||||||
ldrb r0, [r0]
|
|
||||||
orrs r0, r1
|
|
||||||
strh r0, [r3]
|
|
||||||
adds r3, 0x2
|
|
||||||
adds r4, 0x1
|
|
||||||
cmp r4, 0x6
|
|
||||||
ble _0800FFD0
|
|
||||||
mov r0, r12
|
|
||||||
adds r0, 0x6C
|
|
||||||
ldrh r1, [r0]
|
|
||||||
adds r1, 0x1
|
|
||||||
strh r1, [r0]
|
|
||||||
adds r0, 0x2
|
|
||||||
ldrh r0, [r0]
|
|
||||||
lsls r1, 16
|
|
||||||
lsrs r1, 16
|
|
||||||
cmp r0, r1
|
|
||||||
bhi _08010014
|
|
||||||
mov r0, r12
|
|
||||||
adds r0, 0x7C
|
|
||||||
movs r1, 0
|
|
||||||
strb r1, [r0]
|
|
||||||
ldr r0, =rfufunc_80FA020
|
|
||||||
mov r1, r12
|
|
||||||
str r0, [r1]
|
|
||||||
_08010014:
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_800FFB0
|
|
||||||
|
|
||||||
thumb_func_start rfufunc_80FA020
|
|
||||||
rfufunc_80FA020: @ 8010028
|
|
||||||
push {r4-r7,lr}
|
|
||||||
mov r7, r9
|
|
||||||
mov r6, r8
|
|
||||||
push {r6,r7}
|
|
||||||
ldr r5, =gUnknown_03005000
|
|
||||||
ldr r0, [r5, 0x70]
|
|
||||||
mov r8, r0
|
|
||||||
bl GetMultiplayerId
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r6, r0, 24
|
|
||||||
ldrb r0, [r5, 0xC]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _080100F0
|
|
||||||
ldr r3, =gSendCmd
|
|
||||||
adds r2, r5, 0
|
|
||||||
adds r2, 0x6E
|
|
||||||
ldrh r0, [r2]
|
|
||||||
subs r0, 0x1
|
|
||||||
ldr r4, =0xffff8900
|
|
||||||
adds r1, r4, 0
|
|
||||||
orrs r0, r1
|
|
||||||
strh r0, [r3]
|
|
||||||
movs r4, 0
|
|
||||||
mov r9, r5
|
|
||||||
ldr r0, =gRecvCmds
|
|
||||||
mov r12, r0
|
|
||||||
lsls r5, r6, 4
|
|
||||||
adds r7, r2, 0
|
|
||||||
adds r3, 0x2
|
|
||||||
_08010064:
|
|
||||||
lsls r2, r4, 1
|
|
||||||
ldrh r1, [r7]
|
|
||||||
lsls r0, r1, 1
|
|
||||||
adds r0, r1
|
|
||||||
lsls r0, 2
|
|
||||||
adds r0, r2
|
|
||||||
add r0, r8
|
|
||||||
adds r1, r0, 0
|
|
||||||
subs r1, 0xB
|
|
||||||
ldrb r1, [r1]
|
|
||||||
lsls r1, 8
|
|
||||||
subs r0, 0xC
|
|
||||||
ldrb r0, [r0]
|
|
||||||
orrs r0, r1
|
|
||||||
strh r0, [r3]
|
|
||||||
adds r3, 0x2
|
|
||||||
adds r4, 0x1
|
|
||||||
cmp r4, 0x6
|
|
||||||
ble _08010064
|
|
||||||
mov r1, r12
|
|
||||||
adds r0, r5, r1
|
|
||||||
ldrb r1, [r0]
|
|
||||||
mov r3, r9
|
|
||||||
adds r0, r3, 0
|
|
||||||
adds r0, 0x6E
|
|
||||||
ldrh r0, [r0]
|
|
||||||
subs r0, 0x1
|
|
||||||
cmp r1, r0
|
|
||||||
bne _080100F4
|
|
||||||
lsls r0, r6, 2
|
|
||||||
adds r0, r6
|
|
||||||
lsls r0, 2
|
|
||||||
adds r1, r3, 0
|
|
||||||
adds r1, 0x88
|
|
||||||
adds r1, r0, r1
|
|
||||||
ldr r2, =gUnknown_082ED628
|
|
||||||
adds r0, r3
|
|
||||||
adds r0, 0x82
|
|
||||||
ldrh r0, [r0]
|
|
||||||
lsls r0, 2
|
|
||||||
adds r0, r2
|
|
||||||
ldr r1, [r1]
|
|
||||||
ldr r0, [r0]
|
|
||||||
cmp r1, r0
|
|
||||||
beq _080100E8
|
|
||||||
adds r0, r6, 0
|
|
||||||
bl sub_800F638
|
|
||||||
ldr r1, =gUnknown_02022B44
|
|
||||||
adds r1, 0x64
|
|
||||||
ldrh r0, [r1]
|
|
||||||
adds r0, 0x1
|
|
||||||
strh r0, [r1]
|
|
||||||
b _080100F4
|
|
||||||
.pool
|
|
||||||
_080100E8:
|
|
||||||
movs r0, 0
|
|
||||||
mov r4, r9
|
|
||||||
str r0, [r4]
|
|
||||||
b _080100F4
|
|
||||||
_080100F0:
|
|
||||||
movs r0, 0
|
|
||||||
str r0, [r5]
|
|
||||||
_080100F4:
|
|
||||||
pop {r3,r4}
|
|
||||||
mov r8, r3
|
|
||||||
mov r9, r4
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end rfufunc_80FA020
|
|
||||||
|
|
||||||
thumb_func_start sub_8010100
|
thumb_func_start sub_8010100
|
||||||
sub_8010100: @ 8010100
|
sub_8010100: @ 8010100
|
||||||
push {lr}
|
push {lr}
|
||||||
|
|||||||
+12
-3
@@ -47,7 +47,11 @@ struct UnkLinkRfuStruct_02022B44
|
|||||||
u8 fill_08[6];
|
u8 fill_08[6];
|
||||||
vu8 unk_0e;
|
vu8 unk_0e;
|
||||||
u8 unk_0f;
|
u8 unk_0f;
|
||||||
u8 fill_10[0xcc];
|
u8 fill_10[0x54];
|
||||||
|
u16 unk_64;
|
||||||
|
u8 fill_66[0x1d];
|
||||||
|
u8 unk_83;
|
||||||
|
u8 fill_84[0x58];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct UnkRfuStruct_1 {
|
struct UnkRfuStruct_1 {
|
||||||
@@ -96,7 +100,7 @@ struct UnkRfuStruct_1 {
|
|||||||
struct UnkRfuStruct_2_Sub_6c {
|
struct UnkRfuStruct_2_Sub_6c {
|
||||||
/* 0x00 */ u16 unk_00;
|
/* 0x00 */ u16 unk_00;
|
||||||
/* 0x02 */ u16 unk_02;
|
/* 0x02 */ u16 unk_02;
|
||||||
/* 0x04 */ u8 *unk_04;
|
/* 0x04 */ const u8 *unk_04;
|
||||||
/* 0x08 */ u32 unk_08;
|
/* 0x08 */ u32 unk_08;
|
||||||
/* 0x0c */ u32 unk_0c;
|
/* 0x0c */ u32 unk_0c;
|
||||||
/* 0x10 */ u8 unk_10;
|
/* 0x10 */ u8 unk_10;
|
||||||
@@ -210,7 +214,7 @@ bool32 sub_800F7E4(void);
|
|||||||
void sub_800F804(void);
|
void sub_800F804(void);
|
||||||
void sub_800F850(void);
|
void sub_800F850(void);
|
||||||
u8 sub_800FCD8(void);
|
u8 sub_800FCD8(void);
|
||||||
bool32 sub_800FE84(const void *src, size_t size);
|
bool32 sub_800FE84(const u8 *src, size_t size);
|
||||||
void Rfu_set_zero(void);
|
void Rfu_set_zero(void);
|
||||||
u8 sub_80104F4(void);
|
u8 sub_80104F4(void);
|
||||||
u8 rfu_get_multiplayer_id(void);
|
u8 rfu_get_multiplayer_id(void);
|
||||||
@@ -224,10 +228,15 @@ void sub_800E174(void);
|
|||||||
void sub_800E6D0(void);
|
void sub_800E6D0(void);
|
||||||
bool32 sub_8010EC0(void);
|
bool32 sub_8010EC0(void);
|
||||||
bool32 sub_8010F1C(void);
|
bool32 sub_8010F1C(void);
|
||||||
|
bool32 sub_8011A80(void);
|
||||||
bool32 sub_800F0B8(void);
|
bool32 sub_800F0B8(void);
|
||||||
u32 sub_80124D4(void);
|
u32 sub_80124D4(void);
|
||||||
void RfuVSync(void);
|
void RfuVSync(void);
|
||||||
void sub_80111B0(bool32 a0);
|
void sub_80111B0(bool32 a0);
|
||||||
u8 sub_8011A74(void);
|
u8 sub_8011A74(void);
|
||||||
|
struct UnkLinkRfuStruct_02022B14 *sub_800F7DC(void);
|
||||||
|
void sub_8011068(u8 a0);
|
||||||
|
void sub_8011170(u32 a0);
|
||||||
|
void sub_8011A64(u8 a0, u16 a1);
|
||||||
|
|
||||||
#endif //GUARD_LINK_RFU_H
|
#endif //GUARD_LINK_RFU_H
|
||||||
|
|||||||
+108
-11
@@ -49,16 +49,18 @@ static void sub_800D358(u8 a0);
|
|||||||
static void sub_800D434(void);
|
static void sub_800D434(void);
|
||||||
static void sub_800D610(void);
|
static void sub_800D610(void);
|
||||||
void sub_800D630(void);
|
void sub_800D630(void);
|
||||||
bool8 sub_800DAC8(struct UnkRfuStruct_2_Sub_c1c *q1, u8 *q2);
|
static bool8 sub_800DAC8(struct UnkRfuStruct_2_Sub_c1c *q1, u8 *q2);
|
||||||
static void sub_800EAB4(void);
|
static void sub_800EAB4(void);
|
||||||
static void sub_800EAFC(void);
|
static void sub_800EAFC(void);
|
||||||
void sub_800ED34(u16 unused);
|
void sub_800ED34(u16 unused);
|
||||||
static void sub_800EDBC(u16 unused);
|
static void sub_800EDBC(u16 unused);
|
||||||
static void sub_800F048(void);
|
static void sub_800F048(void);
|
||||||
struct UnkLinkRfuStruct_02022B14 *sub_800F7DC(void);
|
static void sub_800F86C(u8 unused);
|
||||||
void sub_800F86C(u8 a0);
|
static void sub_800FCC4(struct UnkRfuStruct_2_Sub_6c *data);
|
||||||
void sub_800FCC4(struct UnkRfuStruct_2_Sub_6c *data);
|
void sub_800FD14(u16 command);
|
||||||
void sub_800FD14(u16 a0);
|
void rfufunc_80F9F44(void);
|
||||||
|
void sub_800FFB0(void);
|
||||||
|
void rfufunc_80FA020(void);
|
||||||
bool32 sub_8010454(u16 a0);
|
bool32 sub_8010454(u16 a0);
|
||||||
void sub_8010528(void);
|
void sub_8010528(void);
|
||||||
void sub_8010750(void);
|
void sub_8010750(void);
|
||||||
@@ -68,9 +70,6 @@ void sub_80109E8(u16 a0);
|
|||||||
void sub_8010A70(void *a0);
|
void sub_8010A70(void *a0);
|
||||||
void sub_8010AAC(u8 taskId);
|
void sub_8010AAC(u8 taskId);
|
||||||
void sub_8010D0C(u8 taskId);
|
void sub_8010D0C(u8 taskId);
|
||||||
void sub_8011068(u8 a0);
|
|
||||||
void sub_8011170(u32 a0);
|
|
||||||
void sub_8011A64(u8 a0, u16 a1);
|
|
||||||
void sub_8011D6C(u8 a0);
|
void sub_8011D6C(u8 a0);
|
||||||
u8 sub_8012224(void);
|
u8 sub_8012224(void);
|
||||||
void sub_801227C(void);
|
void sub_801227C(void);
|
||||||
@@ -1885,7 +1884,7 @@ void sub_800DA68(struct UnkRfuStruct_2_Sub_c1c *q1, const u8 *q2)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool8 sub_800DAC8(struct UnkRfuStruct_2_Sub_c1c *q1, u8 *q2)
|
static bool8 sub_800DAC8(struct UnkRfuStruct_2_Sub_c1c *q1, u8 *q2)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@@ -3393,7 +3392,7 @@ void sub_800F850(void)
|
|||||||
gUnknown_03005000.unk_00 = sub_800F820;
|
gUnknown_03005000.unk_00 = sub_800F820;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_800F86C(u8 unused)
|
static void sub_800F86C(u8 unused)
|
||||||
{
|
{
|
||||||
u16 i;
|
u16 i;
|
||||||
u16 j;
|
u16 j;
|
||||||
@@ -3523,7 +3522,7 @@ bool8 sub_800FC88(void)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_800FCC4(struct UnkRfuStruct_2_Sub_6c *data)
|
static void sub_800FCC4(struct UnkRfuStruct_2_Sub_6c *data)
|
||||||
{
|
{
|
||||||
data->unk_00 = 0;
|
data->unk_00 = 0;
|
||||||
data->unk_02 = 0;
|
data->unk_02 = 0;
|
||||||
@@ -3749,3 +3748,101 @@ __attribute__((naked)) void sub_800FD14(u16 command)
|
|||||||
"\t.pool");
|
"\t.pool");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void sub_800FE50(u16 *a0)
|
||||||
|
{
|
||||||
|
if (gSendCmd[0] == 0 && sub_8011A80() == 0)
|
||||||
|
{
|
||||||
|
memcpy(gUnknown_03005000.unk_f2, a0, sizeof(gUnknown_03005000.unk_f2));
|
||||||
|
sub_800FD14(0x2f00);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool32 sub_800FE84(const u8 *src, size_t size)
|
||||||
|
{
|
||||||
|
bool8 r4;
|
||||||
|
if (gUnknown_03005000.unk_00 != NULL)
|
||||||
|
return FALSE;
|
||||||
|
if (gSendCmd[0] != 0)
|
||||||
|
return FALSE;
|
||||||
|
if (gUnknown_03005000.unk_6c.unk_10 != 0)
|
||||||
|
{
|
||||||
|
gUnknown_02022B44.unk_83++;
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
r4 = (size % 12) != 0;
|
||||||
|
gUnknown_03005000.unk_6c.unk_11 = GetMultiplayerId();
|
||||||
|
gUnknown_03005000.unk_6c.unk_10 = 1;
|
||||||
|
gUnknown_03005000.unk_6c.unk_02 = (size / 12) + r4;
|
||||||
|
gUnknown_03005000.unk_6c.unk_00 = 0;
|
||||||
|
if (size > 0x100)
|
||||||
|
gUnknown_03005000.unk_6c.unk_04 = src;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (src != gBlockSendBuffer)
|
||||||
|
memcpy(gBlockSendBuffer, src, size);
|
||||||
|
gUnknown_03005000.unk_6c.unk_04 = gBlockSendBuffer;
|
||||||
|
}
|
||||||
|
sub_800FD14(0x8800);
|
||||||
|
gUnknown_03005000.unk_00 = rfufunc_80F9F44;
|
||||||
|
gUnknown_03005000.unk_5b = 0;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void rfufunc_80F9F44(void)
|
||||||
|
{
|
||||||
|
if (gSendCmd[0] == 0)
|
||||||
|
{
|
||||||
|
sub_800FD14(0x8800);
|
||||||
|
if (gUnknown_03005000.unk_0c == 1)
|
||||||
|
{
|
||||||
|
if (++gUnknown_03005000.unk_5b > 2)
|
||||||
|
gUnknown_03005000.unk_00 = sub_800FFB0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ((gRecvCmds[GetMultiplayerId()][0] & 0xff00) == 0x8800)
|
||||||
|
gUnknown_03005000.unk_00 = sub_800FFB0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_800FFB0(void)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
const u8 *src = gUnknown_03005000.unk_6c.unk_04;
|
||||||
|
gSendCmd[0] = 0x8900 | gUnknown_03005000.unk_6c.unk_00;
|
||||||
|
for (i = 0; i < 7; i++)
|
||||||
|
gSendCmd[i + 1] = (src[(i << 1) + gUnknown_03005000.unk_6c.unk_00 * 12 + 1] << 8) | src[(i << 1) + gUnknown_03005000.unk_6c.unk_00 * 12 + 0];
|
||||||
|
gUnknown_03005000.unk_6c.unk_00++;
|
||||||
|
if (gUnknown_03005000.unk_6c.unk_02 <= gUnknown_03005000.unk_6c.unk_00)
|
||||||
|
{
|
||||||
|
gUnknown_03005000.unk_6c.unk_10 = 0;
|
||||||
|
gUnknown_03005000.unk_00 = rfufunc_80FA020;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void rfufunc_80FA020(void)
|
||||||
|
{
|
||||||
|
const u8 *src = gUnknown_03005000.unk_6c.unk_04;
|
||||||
|
u8 mpId = GetMultiplayerId();
|
||||||
|
int i;
|
||||||
|
if (gUnknown_03005000.unk_0c == 0)
|
||||||
|
{
|
||||||
|
gSendCmd[0] = (~0x76ff) | (gUnknown_03005000.unk_6c.unk_02 - 1);
|
||||||
|
for (i = 0; i < 7; i++)
|
||||||
|
gSendCmd[i + 1] = (src[(i << 1) + (gUnknown_03005000.unk_6c.unk_02 - 1) * 12 + 1] << 8) | src[(i << 1) + (gUnknown_03005000.unk_6c.unk_02 - 1) * 12 + 0];
|
||||||
|
if ((u8)gRecvCmds[mpId][0] == gUnknown_03005000.unk_6c.unk_02 - 1)
|
||||||
|
{
|
||||||
|
if (gUnknown_03005000.unk_80[mpId].unk_08 != gUnknown_082ED628[gUnknown_03005000.unk_80[mpId].unk_02])
|
||||||
|
{
|
||||||
|
sub_800F638(mpId, gUnknown_03005000.unk_80[mpId].unk_08);
|
||||||
|
gUnknown_02022B44.unk_64++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
gUnknown_03005000.unk_00 = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
gUnknown_03005000.unk_00 = NULL;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user