through sub_8010528
This commit is contained in:
-332
@@ -5,338 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_80102B8
|
|
||||||
sub_80102B8: @ 80102B8
|
|
||||||
push {r4,r5,lr}
|
|
||||||
bl GetMultiplayerId
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
beq _080102E6
|
|
||||||
ldr r1, =gUnknown_03005000
|
|
||||||
ldr r2, =0x000009e6
|
|
||||||
adds r0, r1, r2
|
|
||||||
ldrb r0, [r0]
|
|
||||||
adds r4, r0, 0
|
|
||||||
cmp r4, 0
|
|
||||||
bne _080102E6
|
|
||||||
adds r5, r1, 0
|
|
||||||
adds r5, 0xFE
|
|
||||||
ldrh r0, [r5]
|
|
||||||
cmp r0, 0x3C
|
|
||||||
bls _080102E6
|
|
||||||
movs r0, 0xCC
|
|
||||||
lsls r0, 7
|
|
||||||
bl sub_800FD14
|
|
||||||
strh r4, [r5]
|
|
||||||
_080102E6:
|
|
||||||
bl GetLinkPlayerCount
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r2, r0, 24
|
|
||||||
movs r1, 0
|
|
||||||
cmp r1, r2
|
|
||||||
bcs _08010312
|
|
||||||
ldr r0, =gUnknown_03005000
|
|
||||||
adds r3, r0, 0
|
|
||||||
adds r3, 0xE9
|
|
||||||
ldrb r0, [r3]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08010312
|
|
||||||
_08010300:
|
|
||||||
adds r0, r1, 0x1
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r1, r0, 24
|
|
||||||
cmp r1, r2
|
|
||||||
bcs _08010312
|
|
||||||
adds r0, r1, r3
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _08010300
|
|
||||||
_08010312:
|
|
||||||
ldr r4, =gUnknown_03005000
|
|
||||||
cmp r1, r2
|
|
||||||
bne _0801033E
|
|
||||||
movs r1, 0
|
|
||||||
adds r3, r4, 0
|
|
||||||
adds r3, 0xE9
|
|
||||||
movs r2, 0
|
|
||||||
_08010320:
|
|
||||||
adds r0, r1, r3
|
|
||||||
strb r2, [r0]
|
|
||||||
adds r0, r1, 0x1
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r1, r0, 24
|
|
||||||
cmp r1, 0x4
|
|
||||||
bls _08010320
|
|
||||||
movs r1, 0x80
|
|
||||||
lsls r1, 1
|
|
||||||
adds r0, r4, r1
|
|
||||||
ldrh r1, [r0]
|
|
||||||
adds r1, 0x1
|
|
||||||
movs r2, 0
|
|
||||||
strh r1, [r0]
|
|
||||||
str r2, [r4]
|
|
||||||
_0801033E:
|
|
||||||
adds r1, r4, 0
|
|
||||||
adds r1, 0xFE
|
|
||||||
ldrh r0, [r1]
|
|
||||||
adds r0, 0x1
|
|
||||||
strh r0, [r1]
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_80102B8
|
|
||||||
|
|
||||||
thumb_func_start sub_8010358
|
|
||||||
sub_8010358: @ 8010358
|
|
||||||
push {r4,lr}
|
|
||||||
ldr r4, =gUnknown_03005000
|
|
||||||
ldr r1, =0x000009e6
|
|
||||||
adds r0, r4, r1
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0801037A
|
|
||||||
ldr r0, =gSendCmd
|
|
||||||
ldrh r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0801037A
|
|
||||||
movs r0, 0xCC
|
|
||||||
lsls r0, 7
|
|
||||||
bl sub_800FD14
|
|
||||||
ldr r0, =sub_80102B8
|
|
||||||
str r0, [r4]
|
|
||||||
_0801037A:
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_8010358
|
|
||||||
|
|
||||||
thumb_func_start sub_8010390
|
|
||||||
sub_8010390: @ 8010390
|
|
||||||
push {r4,lr}
|
|
||||||
bl GetMultiplayerId
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
beq _080103CC
|
|
||||||
ldr r4, =gUnknown_03005000
|
|
||||||
ldr r1, =0x000009e6
|
|
||||||
adds r0, r4, r1
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0801041E
|
|
||||||
ldr r0, =gSendCmd
|
|
||||||
ldrh r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0801041E
|
|
||||||
movs r0, 0xCC
|
|
||||||
lsls r0, 7
|
|
||||||
bl sub_800FD14
|
|
||||||
ldr r0, =sub_80102B8
|
|
||||||
b _0801041C
|
|
||||||
.pool
|
|
||||||
_080103CC:
|
|
||||||
bl GetLinkPlayerCount
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r2, r0, 24
|
|
||||||
movs r1, 0x1
|
|
||||||
cmp r1, r2
|
|
||||||
bcs _080103FA
|
|
||||||
ldr r3, =gUnknown_03005000
|
|
||||||
adds r0, r3, 0
|
|
||||||
adds r0, 0xEA
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _080103FA
|
|
||||||
adds r3, 0xE9
|
|
||||||
_080103E8:
|
|
||||||
adds r0, r1, 0x1
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r1, r0, 24
|
|
||||||
cmp r1, r2
|
|
||||||
bcs _080103FA
|
|
||||||
adds r0, r1, r3
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _080103E8
|
|
||||||
_080103FA:
|
|
||||||
cmp r1, r2
|
|
||||||
bne _0801041E
|
|
||||||
ldr r4, =gUnknown_03005000
|
|
||||||
ldr r1, =0x000009e6
|
|
||||||
adds r0, r4, r1
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0801041E
|
|
||||||
ldr r0, =gSendCmd
|
|
||||||
ldrh r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0801041E
|
|
||||||
movs r0, 0xCC
|
|
||||||
lsls r0, 7
|
|
||||||
bl sub_800FD14
|
|
||||||
ldr r0, =sub_8010358
|
|
||||||
_0801041C:
|
|
||||||
str r0, [r4]
|
|
||||||
_0801041E:
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_8010390
|
|
||||||
|
|
||||||
thumb_func_start sub_8010434
|
|
||||||
sub_8010434: @ 8010434
|
|
||||||
push {lr}
|
|
||||||
ldr r1, =gUnknown_03005000
|
|
||||||
ldr r2, [r1]
|
|
||||||
cmp r2, 0
|
|
||||||
bne _08010448
|
|
||||||
ldr r0, =sub_8010390
|
|
||||||
str r0, [r1]
|
|
||||||
adds r0, r1, 0
|
|
||||||
adds r0, 0xFE
|
|
||||||
strh r2, [r0]
|
|
||||||
_08010448:
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_8010434
|
|
||||||
|
|
||||||
thumb_func_start sub_8010454
|
|
||||||
sub_8010454: @ 8010454
|
|
||||||
push {r4,lr}
|
|
||||||
adds r3, r0, 0
|
|
||||||
ldr r1, =gUnknown_082ED6E0
|
|
||||||
ldrh r0, [r1]
|
|
||||||
cmp r0, r3
|
|
||||||
beq _08010482
|
|
||||||
ldr r4, =0x0000ffff
|
|
||||||
adds r2, r1, 0
|
|
||||||
_08010464:
|
|
||||||
ldrh r0, [r2]
|
|
||||||
cmp r0, r4
|
|
||||||
bne _08010478
|
|
||||||
movs r0, 0
|
|
||||||
b _08010484
|
|
||||||
.pool
|
|
||||||
_08010478:
|
|
||||||
adds r1, 0x2
|
|
||||||
adds r2, 0x2
|
|
||||||
ldrh r0, [r1]
|
|
||||||
cmp r0, r3
|
|
||||||
bne _08010464
|
|
||||||
_08010482:
|
|
||||||
movs r0, 0x1
|
|
||||||
_08010484:
|
|
||||||
pop {r4}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_8010454
|
|
||||||
|
|
||||||
thumb_func_start sub_801048C
|
|
||||||
sub_801048C: @ 801048C
|
|
||||||
push {lr}
|
|
||||||
cmp r0, 0
|
|
||||||
beq _080104A0
|
|
||||||
movs r1, 0x96
|
|
||||||
lsls r1, 2
|
|
||||||
movs r0, 0x1
|
|
||||||
bl sub_800D550
|
|
||||||
movs r0, 0
|
|
||||||
b _080104AC
|
|
||||||
_080104A0:
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0
|
|
||||||
bl sub_800D550
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
_080104AC:
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_801048C
|
|
||||||
|
|
||||||
thumb_func_start sub_80104B0
|
|
||||||
sub_80104B0: @ 80104B0
|
|
||||||
push {lr}
|
|
||||||
ldr r0, =gUnknown_03005000
|
|
||||||
ldr r1, =0x00000cd9
|
|
||||||
adds r0, r1
|
|
||||||
movs r1, 0x1
|
|
||||||
strb r1, [r0]
|
|
||||||
movs r0, 0
|
|
||||||
bl sub_800C27C
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_80104B0
|
|
||||||
|
|
||||||
thumb_func_start rfu_get_multiplayer_id
|
|
||||||
rfu_get_multiplayer_id: @ 80104D0
|
|
||||||
push {lr}
|
|
||||||
ldr r1, =gUnknown_03005000
|
|
||||||
ldrb r0, [r1, 0xC]
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _080104EC
|
|
||||||
ldr r2, =0x00000cce
|
|
||||||
adds r0, r1, r2
|
|
||||||
ldrb r0, [r0]
|
|
||||||
b _080104EE
|
|
||||||
.pool
|
|
||||||
_080104EC:
|
|
||||||
movs r0, 0
|
|
||||||
_080104EE:
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end rfu_get_multiplayer_id
|
|
||||||
|
|
||||||
thumb_func_start sub_80104F4
|
|
||||||
sub_80104F4: @ 80104F4
|
|
||||||
ldr r0, =gUnknown_03005000
|
|
||||||
ldrb r0, [r0, 0xD]
|
|
||||||
bx lr
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_80104F4
|
|
||||||
|
|
||||||
thumb_func_start sub_8010500
|
|
||||||
sub_8010500: @ 8010500
|
|
||||||
push {lr}
|
|
||||||
ldr r2, =gUnknown_03005000
|
|
||||||
adds r0, r2, 0
|
|
||||||
adds r0, 0xF1
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0x2
|
|
||||||
bne _08010518
|
|
||||||
movs r0, 0
|
|
||||||
b _08010524
|
|
||||||
.pool
|
|
||||||
_08010518:
|
|
||||||
movs r1, 0
|
|
||||||
ldr r0, [r2]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _08010522
|
|
||||||
movs r1, 0x1
|
|
||||||
_08010522:
|
|
||||||
adds r0, r1, 0
|
|
||||||
_08010524:
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_8010500
|
|
||||||
|
|
||||||
thumb_func_start sub_8010528
|
|
||||||
sub_8010528: @ 8010528
|
|
||||||
push {lr}
|
|
||||||
ldr r0, =gUnknown_03005000
|
|
||||||
ldr r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08010536
|
|
||||||
bl _call_via_r0
|
|
||||||
_08010536:
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_8010528
|
|
||||||
|
|
||||||
thumb_func_start sub_8010540
|
thumb_func_start sub_8010540
|
||||||
sub_8010540: @ 8010540
|
sub_8010540: @ 8010540
|
||||||
push {r4-r7,lr}
|
push {r4-r7,lr}
|
||||||
|
|||||||
+3
-2
@@ -162,9 +162,10 @@ struct UnkRfuStruct_2 {
|
|||||||
/* 0x0e9 */ u8 unk_e9[5];
|
/* 0x0e9 */ u8 unk_e9[5];
|
||||||
/* 0x0ee */ vu8 unk_ee;
|
/* 0x0ee */ vu8 unk_ee;
|
||||||
/* 0x0ef */ u8 unk_ef;
|
/* 0x0ef */ u8 unk_ef;
|
||||||
/* 0x0f0 */ u8 filler_f0[2];
|
/* 0x0f0 */ u8 unk_f0;
|
||||||
|
/* 0x0f1 */ u8 unk_f1;
|
||||||
/* 0x0f2 */ u16 unk_f2[6];
|
/* 0x0f2 */ u16 unk_f2[6];
|
||||||
/* 0x0fe */ u8 filler_fe[2];
|
/* 0x0fe */ u16 unk_fe;
|
||||||
/* 0x100 */ u16 unk_100;
|
/* 0x100 */ u16 unk_100;
|
||||||
/* 0x102 */ u8 unk_102;
|
/* 0x102 */ u8 unk_102;
|
||||||
/* 0x103 */ u8 filler_103[0x21];
|
/* 0x103 */ u8 filler_103[0x21];
|
||||||
|
|||||||
+132
-2
@@ -62,7 +62,7 @@ void sub_800FD14(u16 command);
|
|||||||
void rfufunc_80F9F44(void);
|
void rfufunc_80F9F44(void);
|
||||||
void sub_800FFB0(void);
|
void sub_800FFB0(void);
|
||||||
void rfufunc_80FA020(void);
|
void rfufunc_80FA020(void);
|
||||||
bool32 sub_8010454(u16 a0);
|
bool32 sub_8010454(u32 a0);
|
||||||
void sub_8010528(void);
|
void sub_8010528(void);
|
||||||
void sub_8010750(void);
|
void sub_8010750(void);
|
||||||
int sub_80107A0(void);
|
int sub_80107A0(void);
|
||||||
@@ -3924,7 +3924,7 @@ void sub_801022C(void)
|
|||||||
|
|
||||||
void sub_8010264(u8 taskId)
|
void sub_8010264(u8 taskId)
|
||||||
{
|
{
|
||||||
if (gUnknown_03005000.unk_00 == 0)
|
if (gUnknown_03005000.unk_00 == NULL)
|
||||||
{
|
{
|
||||||
gUnknown_03005000.unk_cd9 = 1;
|
gUnknown_03005000.unk_cd9 = 1;
|
||||||
gUnknown_03005000.unk_00 = sub_801022C;
|
gUnknown_03005000.unk_00 = sub_801022C;
|
||||||
@@ -3937,3 +3937,133 @@ void task_add_05_task_del_08FA224_when_no_RfuFunc(void)
|
|||||||
if (!FuncIsActiveTask(sub_8010264))
|
if (!FuncIsActiveTask(sub_8010264))
|
||||||
CreateTask(sub_8010264, 5);
|
CreateTask(sub_8010264, 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sub_80102B8(void)
|
||||||
|
{
|
||||||
|
u8 playerCount;
|
||||||
|
u8 i;
|
||||||
|
|
||||||
|
if (GetMultiplayerId() != 0)
|
||||||
|
{
|
||||||
|
u8 r4 = gUnknown_03005000.unk_124.unk_8c2;
|
||||||
|
if (r4 == 0 && gUnknown_03005000.unk_fe > 0x3c)
|
||||||
|
{
|
||||||
|
sub_800FD14(0x6600);
|
||||||
|
gUnknown_03005000.unk_fe = r4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
playerCount = GetLinkPlayerCount();
|
||||||
|
for (i = 0; i < playerCount; i++)
|
||||||
|
{
|
||||||
|
if (gUnknown_03005000.unk_e9[i] == 0)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (i == playerCount)
|
||||||
|
{
|
||||||
|
for (i = 0; i < MAX_RFU_PLAYERS; i++)
|
||||||
|
gUnknown_03005000.unk_e9[i] = 0;
|
||||||
|
gUnknown_03005000.unk_100++;
|
||||||
|
gUnknown_03005000.unk_00 = NULL;
|
||||||
|
}
|
||||||
|
gUnknown_03005000.unk_fe++;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8010358(void)
|
||||||
|
{
|
||||||
|
if (gUnknown_03005000.unk_124.unk_8c2 == 0 && gSendCmd[0] == 0)
|
||||||
|
{
|
||||||
|
sub_800FD14(0x6600);
|
||||||
|
gUnknown_03005000.unk_00 = sub_80102B8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8010390(void)
|
||||||
|
{
|
||||||
|
u8 i;
|
||||||
|
u8 playerCount;
|
||||||
|
|
||||||
|
if (GetMultiplayerId() != 0)
|
||||||
|
{
|
||||||
|
if (gUnknown_03005000.unk_124.unk_8c2 == 0 && gSendCmd[0] == 0)
|
||||||
|
{
|
||||||
|
sub_800FD14(0x6600);
|
||||||
|
gUnknown_03005000.unk_00 = sub_80102B8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
playerCount = GetLinkPlayerCount();
|
||||||
|
for (i = 1; i < playerCount; i++)
|
||||||
|
{
|
||||||
|
if (gUnknown_03005000.unk_e9[i] == 0)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (i == playerCount)
|
||||||
|
{
|
||||||
|
if (gUnknown_03005000.unk_124.unk_8c2 == 0 && gSendCmd[0] == 0)
|
||||||
|
{
|
||||||
|
sub_800FD14(0x6600);
|
||||||
|
gUnknown_03005000.unk_00 = sub_8010358;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8010434(void)
|
||||||
|
{
|
||||||
|
if (gUnknown_03005000.unk_00 == NULL)
|
||||||
|
{
|
||||||
|
gUnknown_03005000.unk_00 = sub_8010390;
|
||||||
|
gUnknown_03005000.unk_fe = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool32 sub_8010454(u32 a0)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i = 0; gUnknown_082ED6E0[i] != a0; i++)
|
||||||
|
{
|
||||||
|
if (gUnknown_082ED6E0[i] == 0xffff)
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
u8 sub_801048C(bool32 a0)
|
||||||
|
{
|
||||||
|
if (a0 == 0)
|
||||||
|
return sub_800D550(0, 0);
|
||||||
|
sub_800D550(1, 0x258);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_80104B0(void)
|
||||||
|
{
|
||||||
|
gUnknown_03005000.unk_cd9 = 1;
|
||||||
|
sub_800C27C(FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
u8 rfu_get_multiplayer_id(void)
|
||||||
|
{
|
||||||
|
if (gUnknown_03005000.unk_0c == 1)
|
||||||
|
return 0;
|
||||||
|
return gUnknown_03005000.unk_cce;
|
||||||
|
}
|
||||||
|
|
||||||
|
u8 sub_80104F4(void)
|
||||||
|
{
|
||||||
|
return gUnknown_03005000.playerCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool8 sub_8010500(void)
|
||||||
|
{
|
||||||
|
if (gUnknown_03005000.unk_f1 == 2)
|
||||||
|
return FALSE;
|
||||||
|
return gUnknown_03005000.unk_00 ? FALSE : TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8010528(void)
|
||||||
|
{
|
||||||
|
if (gUnknown_03005000.unk_00)
|
||||||
|
gUnknown_03005000.unk_00();
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user