mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-01-19 09:54:19 +01:00
sub_80099E0
This commit is contained in:
parent
9a9f601244
commit
d51f87226f
71
asm/link.s
71
asm/link.s
@ -5,77 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start c2_08009A8C
|
|
||||||
c2_08009A8C: @ 80099BC
|
|
||||||
push {lr}
|
|
||||||
bl sub_8009900
|
|
||||||
movs r0, 0x1
|
|
||||||
movs r1, 0x1
|
|
||||||
movs r2, 0
|
|
||||||
bl sub_8009818
|
|
||||||
bl RunTasks
|
|
||||||
bl AnimateSprites
|
|
||||||
bl BuildOamBuffer
|
|
||||||
bl UpdatePaletteFade
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end c2_08009A8C
|
|
||||||
|
|
||||||
thumb_func_start sub_80099E0
|
|
||||||
sub_80099E0: @ 80099E0
|
|
||||||
push {r4,r5,lr}
|
|
||||||
adds r4, r0, 0
|
|
||||||
ldr r0, =gUnknown_020229C4
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _080099F4
|
|
||||||
movs r0, 0
|
|
||||||
b _08009A3C
|
|
||||||
.pool
|
|
||||||
_080099F4:
|
|
||||||
movs r1, 0
|
|
||||||
ldr r5, =gUnknown_03003084
|
|
||||||
ldr r3, =gUnknown_03003110
|
|
||||||
movs r2, 0
|
|
||||||
_080099FC:
|
|
||||||
lsls r0, r1, 1
|
|
||||||
adds r0, r3
|
|
||||||
strh r2, [r0]
|
|
||||||
adds r0, r1, 0x1
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r1, r0, 24
|
|
||||||
cmp r1, 0x7
|
|
||||||
bls _080099FC
|
|
||||||
ldrh r0, [r4]
|
|
||||||
strh r0, [r5]
|
|
||||||
ldr r0, =gUnknown_030030E0
|
|
||||||
ldr r0, [r0]
|
|
||||||
movs r1, 0x40
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08009A38
|
|
||||||
ldr r0, =0x04000128
|
|
||||||
ldr r0, [r0]
|
|
||||||
lsls r0, 26
|
|
||||||
lsrs r0, 30
|
|
||||||
bl sub_8009AA0
|
|
||||||
ldr r0, =gUnknown_03003140
|
|
||||||
ldr r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08009A34
|
|
||||||
bl _call_via_r0
|
|
||||||
_08009A34:
|
|
||||||
bl sub_800AEB4
|
|
||||||
_08009A38:
|
|
||||||
ldr r0, =gUnknown_030030E0
|
|
||||||
ldrh r0, [r0]
|
|
||||||
_08009A3C:
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_80099E0
|
|
||||||
|
|
||||||
thumb_func_start sub_8009A58
|
thumb_func_start sub_8009A58
|
||||||
sub_8009A58: @ 8009A58
|
sub_8009A58: @ 8009A58
|
||||||
push {r4-r6,lr}
|
push {r4-r6,lr}
|
||||||
|
46
src/link.c
46
src/link.c
@ -31,6 +31,13 @@ struct LinkTestBGInfo
|
|||||||
u32 dummy_C;
|
u32 dummy_C;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct SIOCnt {
|
||||||
|
u32 cnt0_0:4;
|
||||||
|
u32 cnt0_2:2;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define REG_SIOCNT_STRUCT (*(volatile struct SIOCnt *)REG_ADDR_SIOCNT)
|
||||||
|
|
||||||
// Static RAM declarations
|
// Static RAM declarations
|
||||||
|
|
||||||
IWRAM_DATA struct BlockTransfer gUnknown_03000D10;
|
IWRAM_DATA struct BlockTransfer gUnknown_03000D10;
|
||||||
@ -98,12 +105,14 @@ struct LinkPlayer gUnknown_020229CC = {};
|
|||||||
void sub_8009638(void);
|
void sub_8009638(void);
|
||||||
void sub_80096BC(void);
|
void sub_80096BC(void);
|
||||||
void c2_08009A8C(void);
|
void c2_08009A8C(void);
|
||||||
|
void sub_8009AA0(u8 unused);
|
||||||
void sub_800A2E0(void);
|
void sub_800A2E0(void);
|
||||||
void sub_800A2F4(void *heapptr, size_t src);
|
void sub_800A2F4(void *heapptr, size_t src);
|
||||||
void task00_link_test(u8 taskId);
|
void task00_link_test(u8 taskId);
|
||||||
u16 sub_800A648(u16 *src, u16 size);
|
u16 sub_800A648(u16 *src, u16 size);
|
||||||
void sub_800A6E8(u32 pos, u8 a0, u8 a1, u8 a2);
|
void sub_800A6E8(u32 pos, u8 a0, u8 a1, u8 a2);
|
||||||
void sub_800A824(void);
|
void sub_800A824(void);
|
||||||
|
void sub_800AEB4(void);
|
||||||
void sub_800B330(bool8 flag);
|
void sub_800B330(bool8 flag);
|
||||||
void sub_800B4A4(void);
|
void sub_800B4A4(void);
|
||||||
void sub_800B53C(void);
|
void sub_800B53C(void);
|
||||||
@ -316,7 +325,7 @@ void sub_80097E8(void)
|
|||||||
sub_800B53C();
|
sub_800B53C();
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_8009818(void)
|
static void sub_8009818(u8 nothing, u8 is, u8 used)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
u8 status;
|
u8 status;
|
||||||
@ -384,3 +393,38 @@ void sub_8009900(void)
|
|||||||
sub_800A994(gMain.vblankCounter2, gUnknown_03003140 ? gUnknown_03002748 : gUnknown_03002748 | 0x10);
|
sub_800A994(gMain.vblankCounter2, gUnknown_03003140 ? gUnknown_03002748 : gUnknown_03002748 | 0x10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void c2_08009A8C(void)
|
||||||
|
{
|
||||||
|
sub_8009900();
|
||||||
|
sub_8009818(1, 1, 0);
|
||||||
|
RunTasks();
|
||||||
|
AnimateSprites();
|
||||||
|
BuildOamBuffer();
|
||||||
|
UpdatePaletteFade();
|
||||||
|
}
|
||||||
|
|
||||||
|
u16 sub_80099E0(const u16 *src)
|
||||||
|
{
|
||||||
|
u8 i;
|
||||||
|
|
||||||
|
if (!gUnknown_020229C4)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
for (i = 0; i < 8; i ++)
|
||||||
|
{
|
||||||
|
gUnknown_03003110[i] = 0;
|
||||||
|
}
|
||||||
|
gUnknown_03003084 = *src;
|
||||||
|
if (gUnknown_030030E0 & 0x40)
|
||||||
|
{
|
||||||
|
sub_8009AA0(REG_SIOCNT_STRUCT.cnt0_2);
|
||||||
|
if (gUnknown_03003140 != NULL)
|
||||||
|
{
|
||||||
|
gUnknown_03003140();
|
||||||
|
}
|
||||||
|
sub_800AEB4();
|
||||||
|
}
|
||||||
|
return gUnknown_030030E0;
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user