sub_800E748
This commit is contained in:
-111
@@ -5,117 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_800E748
|
|
||||||
sub_800E748: @ 800E748
|
|
||||||
push {r4,r5,lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r5, r0, 24
|
|
||||||
bl sub_8010750
|
|
||||||
ldr r0, =gUnknown_03005000
|
|
||||||
ldrh r0, [r0, 0x4]
|
|
||||||
cmp r0, 0x12
|
|
||||||
bls _0800E75C
|
|
||||||
b _0800E862
|
|
||||||
_0800E75C:
|
|
||||||
lsls r0, 2
|
|
||||||
ldr r1, =_0800E770
|
|
||||||
adds r0, r1
|
|
||||||
ldr r0, [r0]
|
|
||||||
mov pc, r0
|
|
||||||
.pool
|
|
||||||
.align 2, 0
|
|
||||||
_0800E770:
|
|
||||||
.4byte _0800E7BC
|
|
||||||
.4byte _0800E862
|
|
||||||
.4byte _0800E7E4
|
|
||||||
.4byte _0800E862
|
|
||||||
.4byte _0800E814
|
|
||||||
.4byte _0800E862
|
|
||||||
.4byte _0800E862
|
|
||||||
.4byte _0800E862
|
|
||||||
.4byte _0800E862
|
|
||||||
.4byte _0800E862
|
|
||||||
.4byte _0800E862
|
|
||||||
.4byte _0800E862
|
|
||||||
.4byte _0800E862
|
|
||||||
.4byte _0800E862
|
|
||||||
.4byte _0800E862
|
|
||||||
.4byte _0800E862
|
|
||||||
.4byte _0800E862
|
|
||||||
.4byte _0800E862
|
|
||||||
.4byte _0800E828
|
|
||||||
_0800E7BC:
|
|
||||||
ldr r0, =gUnknown_02022B2C
|
|
||||||
bl sub_800BFCC
|
|
||||||
ldr r0, =gUnknown_03005000
|
|
||||||
movs r2, 0x1
|
|
||||||
strh r2, [r0, 0x4]
|
|
||||||
ldr r1, =gTasks
|
|
||||||
lsls r0, r5, 2
|
|
||||||
adds r0, r5
|
|
||||||
lsls r0, 3
|
|
||||||
adds r0, r1
|
|
||||||
strh r2, [r0, 0xA]
|
|
||||||
b _0800E862
|
|
||||||
.pool
|
|
||||||
_0800E7E4:
|
|
||||||
ldr r4, =gUnknown_03005000
|
|
||||||
ldrb r0, [r4, 0xC]
|
|
||||||
ldr r3, =gUnknown_082ED6E0
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0xF0
|
|
||||||
bl sub_800C054
|
|
||||||
movs r0, 0x3
|
|
||||||
strh r0, [r4, 0x4]
|
|
||||||
ldr r1, =gTasks
|
|
||||||
lsls r0, r5, 2
|
|
||||||
adds r0, r5
|
|
||||||
lsls r0, 3
|
|
||||||
adds r0, r1
|
|
||||||
movs r1, 0x6
|
|
||||||
strh r1, [r0, 0xA]
|
|
||||||
b _0800E862
|
|
||||||
.pool
|
|
||||||
_0800E814:
|
|
||||||
movs r0, 0
|
|
||||||
bl sub_800C27C
|
|
||||||
ldr r1, =gUnknown_03005000
|
|
||||||
movs r0, 0x5
|
|
||||||
strh r0, [r1, 0x4]
|
|
||||||
b _0800E862
|
|
||||||
.pool
|
|
||||||
_0800E828:
|
|
||||||
ldr r4, =gUnknown_03005000
|
|
||||||
ldr r0, =0x00000cdb
|
|
||||||
adds r1, r4, r0
|
|
||||||
ldrb r0, [r1]
|
|
||||||
movs r0, 0
|
|
||||||
strb r0, [r1]
|
|
||||||
ldr r0, =sub_800EDBC
|
|
||||||
bl sub_800D52C
|
|
||||||
bl sub_800EAB4
|
|
||||||
bl sub_800EAFC
|
|
||||||
movs r0, 0x14
|
|
||||||
strh r0, [r4, 0x4]
|
|
||||||
ldr r1, =gTasks
|
|
||||||
lsls r0, r5, 2
|
|
||||||
adds r0, r5
|
|
||||||
lsls r0, 3
|
|
||||||
adds r0, r1
|
|
||||||
movs r1, 0x8
|
|
||||||
strh r1, [r0, 0xA]
|
|
||||||
ldr r0, =sub_801084C
|
|
||||||
movs r1, 0x5
|
|
||||||
bl CreateTask
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl DestroyTask
|
|
||||||
_0800E862:
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_800E748
|
|
||||||
|
|
||||||
thumb_func_start sub_800E87C
|
thumb_func_start sub_800E87C
|
||||||
sub_800E87C: @ 800E87C
|
sub_800E87C: @ 800E87C
|
||||||
lsls r0, 24
|
lsls r0, 24
|
||||||
|
|||||||
+9
-3
@@ -67,7 +67,7 @@ struct UnkRfuStruct_1 {
|
|||||||
/* 0x01a */ u16 unk_1a;
|
/* 0x01a */ u16 unk_1a;
|
||||||
/* 0x01c */ u16 unk_1c;
|
/* 0x01c */ u16 unk_1c;
|
||||||
/* 0x01e */ u16 unk_1e;
|
/* 0x01e */ u16 unk_1e;
|
||||||
/* 0x020 */ u16 *unk_20;
|
/* 0x020 */ const u16 *unk_20;
|
||||||
/* 0x024 */ u8 unk_24;
|
/* 0x024 */ u8 unk_24;
|
||||||
/* 0x026 */ u16 unk_26;
|
/* 0x026 */ u16 unk_26;
|
||||||
/* 0x028 */ u16 unk_28[4];
|
/* 0x028 */ u16 unk_28[4];
|
||||||
@@ -126,7 +126,9 @@ struct UnkRfuStruct_Sub_Unused {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct UnkRfuStruct_2 {
|
struct UnkRfuStruct_2 {
|
||||||
/* 0x000 */ u8 filler_00[12];
|
/* 0x000 */ u8 filler_00[4];
|
||||||
|
/* 0x004 */ u16 unk_04;
|
||||||
|
/* 0x006 */ u8 filler_06[6];
|
||||||
/* 0x00c */ u8 unk_0c;
|
/* 0x00c */ u8 unk_0c;
|
||||||
/* 0x00d */ u8 playerCount;
|
/* 0x00d */ u8 playerCount;
|
||||||
/* 0x00e */ u8 filler_0e[0x5e];
|
/* 0x00e */ u8 filler_0e[0x5e];
|
||||||
@@ -139,7 +141,9 @@ struct UnkRfuStruct_2 {
|
|||||||
/* 0x9e8 */ struct UnkRfuStruct_2_Sub_9e8 unk_9e8;
|
/* 0x9e8 */ struct UnkRfuStruct_2_Sub_9e8 unk_9e8;
|
||||||
/* 0xc1c */ struct UnkRfuStruct_2_Sub_c1c unk_c1c;
|
/* 0xc1c */ struct UnkRfuStruct_2_Sub_c1c unk_c1c;
|
||||||
/* 0xc3c */ u8 filler_c3c[3];
|
/* 0xc3c */ u8 filler_c3c[3];
|
||||||
/* 0xc3f */ u8 filler_c3f[0xb5];
|
/* 0xc3f */ u8 filler_c3f[0x9c];
|
||||||
|
/* 0xcdb */ vu8 unk_cdb;
|
||||||
|
/* 0xcdc */ u8 filler_cdc[0x18];
|
||||||
}; // size = 0xcf4
|
}; // size = 0xcf4
|
||||||
|
|
||||||
// Exported RAM declarations
|
// Exported RAM declarations
|
||||||
@@ -174,5 +178,7 @@ bool32 sub_8010F1C(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);
|
||||||
|
u8 sub_8011A74(void);
|
||||||
|
|
||||||
#endif //GUARD_LINK_RFU_H
|
#endif //GUARD_LINK_RFU_H
|
||||||
|
|||||||
+50
-6
@@ -2,6 +2,7 @@
|
|||||||
// Includes
|
// Includes
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "malloc.h"
|
#include "malloc.h"
|
||||||
|
#include "task.h"
|
||||||
#include "rng.h"
|
#include "rng.h"
|
||||||
#include "decompress.h"
|
#include "decompress.h"
|
||||||
#include "text.h"
|
#include "text.h"
|
||||||
@@ -46,10 +47,13 @@ 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);
|
bool8 sub_800DAC8(struct UnkRfuStruct_2_Sub_c1c *q1, u8 *q2);
|
||||||
|
void sub_800EDBC(u16 a0);
|
||||||
|
void sub_800EAB4(void);
|
||||||
|
void sub_800EAFC(void);
|
||||||
void sub_800FCC4(struct UnkRfuStruct_2_Sub_6c *data);
|
void sub_800FCC4(struct UnkRfuStruct_2_Sub_6c *data);
|
||||||
bool32 sub_8010454(u16 a0);
|
bool32 sub_8010454(u16 a0);
|
||||||
void sub_80111B0(bool32 a0);
|
void sub_8010750(void);
|
||||||
u8 sub_8011A74(void);
|
void sub_801084C(u8 taskId);
|
||||||
u8 sub_8012224(void);
|
u8 sub_8012224(void);
|
||||||
|
|
||||||
// .rodata
|
// .rodata
|
||||||
@@ -186,6 +190,8 @@ static const struct SpriteTemplate sWirelessStatusIndicatorSpriteTemplate = {
|
|||||||
SpriteCallbackDummy
|
SpriteCallbackDummy
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern const u16 gUnknown_082ED6E0[4];
|
||||||
|
|
||||||
// .text
|
// .text
|
||||||
|
|
||||||
u32 sub_800BEC0(void)
|
u32 sub_800BEC0(void)
|
||||||
@@ -290,10 +296,10 @@ void sub_800C048(void)
|
|||||||
gUnknown_03004140.unk_04 = 0x15;
|
gUnknown_03004140.unk_04 = 0x15;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 sub_800C054(u8 r5, u16 r7, u16 r8, u16 *r6)
|
u8 sub_800C054(u8 r5, u16 r7, u16 r8, const u16 *r6)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
u16 *buffer;
|
const u16 *buffer;
|
||||||
|
|
||||||
if (gUnknown_03004140.unk_04 != 0 && (gUnknown_03004140.unk_04 != 0x08 || r5 != 1))
|
if (gUnknown_03004140.unk_04 != 0 && (gUnknown_03004140.unk_04 != 0x08 || r5 != 1))
|
||||||
{
|
{
|
||||||
@@ -1168,7 +1174,7 @@ static void sub_800CF34(void)
|
|||||||
u8 i;
|
u8 i;
|
||||||
u8 r5;
|
u8 r5;
|
||||||
u8 r4;
|
u8 r4;
|
||||||
u16 *ptr;
|
const u16 *ptr;
|
||||||
|
|
||||||
if (gUnknown_03004140.unk_04 == 5 || gUnknown_03004140.unk_04 == 6 || gUnknown_03004140.unk_04 == 7 || gUnknown_03004140.unk_04 == 8)
|
if (gUnknown_03004140.unk_04 == 5 || gUnknown_03004140.unk_04 == 6 || gUnknown_03004140.unk_04 == 7 || gUnknown_03004140.unk_04 == 8)
|
||||||
{
|
{
|
||||||
@@ -1338,7 +1344,7 @@ static void sub_800D268(void)
|
|||||||
static u8 sub_800D294(void)
|
static u8 sub_800D294(void)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
u16 *ptr;
|
const u16 *ptr;
|
||||||
u8 flags = 0x00;
|
u8 flags = 0x00;
|
||||||
|
|
||||||
for (i = 0; i < gUnknown_03007890->unk_08; i++)
|
for (i = 0; i < gUnknown_03007890->unk_08; i++)
|
||||||
@@ -2381,3 +2387,41 @@ void sub_800E700(void)
|
|||||||
rfu_setTimerInterrupt(3, gIntrTable + 2);
|
rfu_setTimerInterrupt(3, gIntrTable + 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sub_800E748(u8 taskId)
|
||||||
|
{
|
||||||
|
sub_8010750();
|
||||||
|
switch (gUnknown_03005000.unk_04)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
sub_800BFCC(&gUnknown_02022B2C);
|
||||||
|
gUnknown_03005000.unk_04 = 1;
|
||||||
|
gTasks[taskId].data[1] = 1;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
sub_800C054(gUnknown_03005000.unk_0c, 0, 240, gUnknown_082ED6E0);
|
||||||
|
gUnknown_03005000.unk_04 = 3;
|
||||||
|
gTasks[taskId].data[1] = 6;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
sub_800C27C(FALSE);
|
||||||
|
gUnknown_03005000.unk_04 = 5;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
break;
|
||||||
|
case 18:
|
||||||
|
gUnknown_03005000.unk_cdb = 0;
|
||||||
|
sub_800D52C(sub_800EDBC);
|
||||||
|
sub_800EAB4();
|
||||||
|
sub_800EAFC();
|
||||||
|
gUnknown_03005000.unk_04 = 20;
|
||||||
|
gTasks[taskId].data[1] = 8;
|
||||||
|
CreateTask(sub_801084C, 5);
|
||||||
|
DestroyTask(taskId);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user