sub_800CEB0
This commit is contained in:
parent
7a38a43f81
commit
73b0f9eb53
4 changed files with 42 additions and 66 deletions
|
@ -5,70 +5,6 @@
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_800CEB0
|
|
||||||
sub_800CEB0: @ 800CEB0
|
|
||||||
push {r4-r7,lr}
|
|
||||||
sub sp, 0x4
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r6, r0, 16
|
|
||||||
ldr r4, =gUnknown_03004140
|
|
||||||
ldrb r7, [r4, 0xE]
|
|
||||||
movs r0, 0
|
|
||||||
strb r0, [r4, 0xE]
|
|
||||||
movs r0, 0x1
|
|
||||||
strb r0, [r4, 0xF]
|
|
||||||
ldr r0, =gUnknown_03007890
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldrb r5, [r0]
|
|
||||||
cmp r5, 0
|
|
||||||
bne _0800CEEC
|
|
||||||
adds r0, r6, 0
|
|
||||||
bl sub_800C36C
|
|
||||||
ldrb r0, [r4, 0x2]
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _0800CF04
|
|
||||||
bl sub_800D610
|
|
||||||
strb r5, [r4, 0xF]
|
|
||||||
strb r7, [r4, 0xE]
|
|
||||||
b _0800CF28
|
|
||||||
.pool
|
|
||||||
_0800CEEC:
|
|
||||||
mov r0, sp
|
|
||||||
bl rfu_UNI_PARENT_getDRAC_ACK
|
|
||||||
lsls r0, 16
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0800CF04
|
|
||||||
mov r1, sp
|
|
||||||
ldrb r0, [r4, 0x3]
|
|
||||||
ldrb r1, [r1]
|
|
||||||
orrs r0, r1
|
|
||||||
ldrb r1, [r4, 0x3]
|
|
||||||
strb r0, [r4, 0x3]
|
|
||||||
_0800CF04:
|
|
||||||
ldr r4, =gUnknown_03004140
|
|
||||||
ldr r1, [r4, 0x44]
|
|
||||||
cmp r1, 0
|
|
||||||
beq _0800CF20
|
|
||||||
adds r0, r6, 0
|
|
||||||
bl _call_via_r1
|
|
||||||
bl rfu_waitREQComplete
|
|
||||||
ldrb r0, [r4, 0x2]
|
|
||||||
cmp r0, 0x2
|
|
||||||
bne _0800CF20
|
|
||||||
bl sub_800D610
|
|
||||||
_0800CF20:
|
|
||||||
ldr r1, =gUnknown_03004140
|
|
||||||
movs r0, 0
|
|
||||||
strb r0, [r1, 0xF]
|
|
||||||
strb r7, [r1, 0xE]
|
|
||||||
_0800CF28:
|
|
||||||
add sp, 0x4
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_800CEB0
|
|
||||||
|
|
||||||
thumb_func_start sub_800CF34
|
thumb_func_start sub_800CF34
|
||||||
sub_800CF34: @ 800CF34
|
sub_800CF34: @ 800CF34
|
||||||
push {r4-r7,lr}
|
push {r4-r7,lr}
|
||||||
|
|
|
@ -183,3 +183,4 @@ u8 rfu_NI_CHILD_setSendGameName(u8 a0, u8 a1);
|
||||||
void rfu_clearSlot(u8 a0, u8 a1);
|
void rfu_clearSlot(u8 a0, u8 a1);
|
||||||
bool16 rfu_CHILD_getConnectRecoveryStatus(u8 *status);
|
bool16 rfu_CHILD_getConnectRecoveryStatus(u8 *status);
|
||||||
bool16 rfu_getConnectParentStatus(u8 *status, u8 *a1);
|
bool16 rfu_getConnectParentStatus(u8 *status, u8 *a1);
|
||||||
|
bool16 rfu_UNI_PARENT_getDRAC_ACK(u8 *a0);
|
||||||
|
|
|
@ -74,7 +74,7 @@ struct UnkRfuStruct_1 {
|
||||||
/* 0x034 */ u16 unk_34[4];
|
/* 0x034 */ u16 unk_34[4];
|
||||||
/* 0x03c */ struct UnkLinkRfuStruct_02022B2C *unk_3c;
|
/* 0x03c */ struct UnkLinkRfuStruct_02022B2C *unk_3c;
|
||||||
/* 0x040 */ void (*unk_40)(u8);
|
/* 0x040 */ void (*unk_40)(u8);
|
||||||
/* 0x044 */ void (*unk_44)(void);
|
/* 0x044 */ void (*unk_44)(u16);
|
||||||
/* 0x048 */ u8 filler_48[0xe78];
|
/* 0x048 */ u8 filler_48[0xe78];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -84,7 +84,7 @@ void rfu_REQ_sendData_wrapper(u8 r2)
|
||||||
rfu_REQ_sendData(r2);
|
rfu_REQ_sendData(r2);
|
||||||
}
|
}
|
||||||
|
|
||||||
int sub_800BF4C(void (*func1)(u8), void (*func2)(void))
|
int sub_800BF4C(void (*func1)(u8), void (*func2)(u16))
|
||||||
{
|
{
|
||||||
if (func1 == NULL)
|
if (func1 == NULL)
|
||||||
{
|
{
|
||||||
|
@ -976,3 +976,42 @@ void sub_800C7B4(u16 r8, u16 r6)
|
||||||
sub_800D610();
|
sub_800D610();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sub_800CEB0(u16 r6)
|
||||||
|
{
|
||||||
|
u8 r7;
|
||||||
|
u8 sp0;
|
||||||
|
|
||||||
|
r7 = gUnknown_03004140.unk_0e;
|
||||||
|
gUnknown_03004140.unk_0e = 0;
|
||||||
|
gUnknown_03004140.unk_0f = 1;
|
||||||
|
if (gUnknown_03007890->unk_00 == 0)
|
||||||
|
{
|
||||||
|
sub_800C36C(r6);
|
||||||
|
if (gUnknown_03004140.unk_02 != 1)
|
||||||
|
{
|
||||||
|
sub_800D610();
|
||||||
|
gUnknown_03004140.unk_0f = 0;
|
||||||
|
gUnknown_03004140.unk_0e = r7;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!rfu_UNI_PARENT_getDRAC_ACK(&sp0))
|
||||||
|
{
|
||||||
|
gUnknown_03004140.unk_03 |= sp0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (gUnknown_03004140.unk_44 != NULL)
|
||||||
|
{
|
||||||
|
gUnknown_03004140.unk_44(r6);
|
||||||
|
rfu_waitREQComplete();
|
||||||
|
if (gUnknown_03004140.unk_02 == 2)
|
||||||
|
{
|
||||||
|
sub_800D610();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
gUnknown_03004140.unk_0f = 0;
|
||||||
|
gUnknown_03004140.unk_0e = r7;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue