through sub_81436EC
This commit is contained in:
-187
@@ -5,193 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_81435DC
|
||||
sub_81435DC: @ 81435DC
|
||||
push {r4-r6,lr}
|
||||
mov r6, r8
|
||||
push {r6}
|
||||
sub sp, 0x4
|
||||
adds r5, r0, 0
|
||||
adds r6, r1, 0
|
||||
mov r8, r2
|
||||
mov r1, sp
|
||||
ldr r4, _08143630 @ =0x04000208
|
||||
ldrh r0, [r4]
|
||||
strh r0, [r1]
|
||||
movs r0, 0
|
||||
strh r0, [r4]
|
||||
ldr r1, _08143634 @ =gIntrTable
|
||||
ldr r0, _08143638 @ =sub_815C6D4
|
||||
str r0, [r1, 0x4]
|
||||
ldr r0, _0814363C @ =sub_815C6C4
|
||||
str r0, [r1, 0x8]
|
||||
bl sub_815C8C8
|
||||
bl sub_815C960
|
||||
ldr r2, _08143640 @ =0x04000200
|
||||
ldrh r0, [r2]
|
||||
movs r1, 0x4
|
||||
orrs r0, r1
|
||||
strh r0, [r2]
|
||||
mov r0, sp
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r4]
|
||||
movs r0, 0
|
||||
strh r0, [r5]
|
||||
str r6, [r5, 0x4]
|
||||
mov r0, r8
|
||||
str r0, [r5, 0x8]
|
||||
add sp, 0x4
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08143630: .4byte 0x04000208
|
||||
_08143634: .4byte gIntrTable
|
||||
_08143638: .4byte sub_815C6D4
|
||||
_0814363C: .4byte sub_815C6C4
|
||||
_08143640: .4byte 0x04000200
|
||||
thumb_func_end sub_81435DC
|
||||
|
||||
thumb_func_start sub_8143644
|
||||
sub_8143644: @ 8143644
|
||||
push {r4,lr}
|
||||
sub sp, 0x4
|
||||
mov r1, sp
|
||||
ldr r4, _08143670 @ =0x04000208
|
||||
ldrh r0, [r4]
|
||||
strh r0, [r1]
|
||||
movs r0, 0
|
||||
strh r0, [r4]
|
||||
bl sub_815C960
|
||||
bl sub_815C91C
|
||||
bl RestoreSerialTimer3IntrHandlers
|
||||
mov r0, sp
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r4]
|
||||
add sp, 0x4
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08143670: .4byte 0x04000208
|
||||
thumb_func_end sub_8143644
|
||||
|
||||
thumb_func_start sub_8143674
|
||||
sub_8143674: @ 8143674
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
movs r5, 0
|
||||
ldr r1, [r4, 0x4]
|
||||
ldr r2, [r4, 0x8]
|
||||
movs r0, 0x1
|
||||
movs r3, 0
|
||||
bl sub_815C498
|
||||
adds r1, r0, 0
|
||||
strh r1, [r4]
|
||||
movs r0, 0x13
|
||||
ands r0, r1
|
||||
cmp r0, 0x10
|
||||
bne _08143694
|
||||
movs r5, 0x1
|
||||
_08143694:
|
||||
movs r0, 0x8
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0814369E
|
||||
movs r5, 0x2
|
||||
_0814369E:
|
||||
movs r0, 0x4
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _081436A8
|
||||
movs r5, 0x3
|
||||
_081436A8:
|
||||
ldr r1, _081436B8 @ =gUnknown_3003F84
|
||||
movs r0, 0
|
||||
strb r0, [r1]
|
||||
adds r0, r5, 0
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_081436B8: .4byte gUnknown_3003F84
|
||||
thumb_func_end sub_8143674
|
||||
|
||||
thumb_func_start sub_81436BC
|
||||
sub_81436BC: @ 81436BC
|
||||
push {lr}
|
||||
ldr r0, _081436E0 @ =gDecompressionBuffer
|
||||
movs r2, 0x80
|
||||
lsls r2, 6
|
||||
movs r1, 0
|
||||
bl memset
|
||||
ldr r1, _081436E4 @ =gUnknown_202271A
|
||||
ldr r2, _081436E8 @ =0x00005502
|
||||
adds r0, r2, 0
|
||||
strh r0, [r1]
|
||||
bl sub_8009804
|
||||
movs r0, 0x1
|
||||
bl SetSuppressLinkErrorMessage
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081436E0: .4byte gDecompressionBuffer
|
||||
_081436E4: .4byte gUnknown_202271A
|
||||
_081436E8: .4byte 0x00005502
|
||||
thumb_func_end sub_81436BC
|
||||
|
||||
thumb_func_start sub_81436EC
|
||||
sub_81436EC: @ 81436EC
|
||||
push {lr}
|
||||
sub sp, 0xC
|
||||
mov r1, sp
|
||||
ldr r2, _08143730 @ =0x04000208
|
||||
ldrh r0, [r2]
|
||||
strh r0, [r1]
|
||||
movs r0, 0
|
||||
strh r0, [r2]
|
||||
ldr r0, _08143734 @ =gUnknown_3003FB4
|
||||
ldr r1, [r0, 0x4]
|
||||
ldr r0, [r0]
|
||||
str r0, [sp, 0x4]
|
||||
str r1, [sp, 0x8]
|
||||
mov r0, sp
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r2]
|
||||
add r2, sp, 0x4
|
||||
ldrh r1, [r2]
|
||||
ldr r0, _08143738 @ =0x0000b9a0
|
||||
cmp r1, r0
|
||||
bne _08143744
|
||||
ldrh r1, [r2, 0x2]
|
||||
ldr r0, _0814373C @ =0x0000ccd0
|
||||
cmp r1, r0
|
||||
bne _08143744
|
||||
ldrh r1, [r2, 0x4]
|
||||
ldr r0, _08143740 @ =0x0000ffff
|
||||
cmp r1, r0
|
||||
bne _08143744
|
||||
ldrh r0, [r2, 0x6]
|
||||
cmp r0, r1
|
||||
bne _08143744
|
||||
movs r0, 0x1
|
||||
b _08143746
|
||||
.align 2, 0
|
||||
_08143730: .4byte 0x04000208
|
||||
_08143734: .4byte gUnknown_3003FB4
|
||||
_08143738: .4byte 0x0000b9a0
|
||||
_0814373C: .4byte 0x0000ccd0
|
||||
_08143740: .4byte 0x0000ffff
|
||||
_08143744:
|
||||
movs r0, 0
|
||||
_08143746:
|
||||
add sp, 0xC
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_81436EC
|
||||
|
||||
thumb_func_start sub_814374C
|
||||
sub_814374C: @ 814374C
|
||||
push {lr}
|
||||
|
||||
@@ -146,6 +146,10 @@ extern u16 word_3002910[];
|
||||
extern bool8 gReceivedRemoteLinkPlayers;
|
||||
extern bool8 gLinkVSyncDisabled;
|
||||
|
||||
extern u8 gUnknown_3003F84;
|
||||
extern u64 gUnknown_3003FB4;
|
||||
extern u16 gUnknown_202271A;
|
||||
|
||||
void Task_DestroySelf(u8);
|
||||
void OpenLink(void);
|
||||
void CloseLink(void);
|
||||
@@ -196,5 +200,6 @@ void sub_8011BD0(void);
|
||||
u8 sub_800ABAC(void);
|
||||
u8 sub_800ABBC(void);
|
||||
void sub_800AC34(void);
|
||||
void sub_8009804(void);
|
||||
|
||||
#endif // GUARD_LINK_H
|
||||
|
||||
@@ -9,6 +9,8 @@ typedef void (*MainCallback)(void);
|
||||
typedef void (*IntrCallback)(void);
|
||||
typedef void (*IntrFunc)(void);
|
||||
|
||||
extern IntrFunc gIntrTable[];
|
||||
|
||||
struct Main
|
||||
{
|
||||
/*0x000*/ MainCallback callback1;
|
||||
@@ -62,5 +64,6 @@ void SetSerialCallback(IntrCallback callback);
|
||||
void InitFlashTimer(void);
|
||||
void DoSoftReset(void);
|
||||
void ClearPokemonCrySongs(void);
|
||||
void RestoreSerialTimer3IntrHandlers(void);
|
||||
|
||||
#endif // GUARD_MAIN_H
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
#ifndef GUARD_UNK_815C27C_H
|
||||
#define GUARD_UNK_815C27C_H
|
||||
|
||||
void sub_815C6D4(void);
|
||||
void sub_815C6C4(void);
|
||||
void sub_815C8C8(void);
|
||||
void sub_815C960(void);
|
||||
void sub_815C91C(void);
|
||||
u16 sub_815C498(u8, u32, u32, u8);
|
||||
|
||||
#endif //GUARD_UNK_815C27C_H
|
||||
@@ -243,6 +243,7 @@ SECTIONS {
|
||||
asm/roamer.o(.text);
|
||||
asm/mystery_gift_menu.o(.text);
|
||||
asm/link_rfu_4.o(.text);
|
||||
src/mevent.o(.text);
|
||||
asm/mevent.o(.text);
|
||||
asm/mevent_server.o(.text);
|
||||
asm/mevent_8145654.o(.text);
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
#include "global.h"
|
||||
#include "main.h"
|
||||
#include "decompress.h"
|
||||
#include "link.h"
|
||||
#include "unk_815c27c.h"
|
||||
|
||||
struct MEvent_Str_1
|
||||
{
|
||||
u16 unk_000;
|
||||
u32 unk_004;
|
||||
u32 unk_008;
|
||||
};
|
||||
|
||||
void sub_81435DC(struct MEvent_Str_1 *a0, u32 a1, u32 a2)
|
||||
{
|
||||
vu16 imeBak = REG_IME;
|
||||
REG_IME = 0;
|
||||
gIntrTable[1] = sub_815C6D4;
|
||||
gIntrTable[2] = sub_815C6C4;
|
||||
sub_815C8C8();
|
||||
sub_815C960();
|
||||
REG_IE |= INTR_FLAG_VCOUNT;
|
||||
REG_IME = imeBak;
|
||||
a0->unk_000 = 0;
|
||||
a0->unk_004 = a1;
|
||||
a0->unk_008 = a2;
|
||||
}
|
||||
|
||||
void sub_8143644(void)
|
||||
{
|
||||
vu16 imeBak = REG_IME;
|
||||
REG_IME = 0;
|
||||
sub_815C960();
|
||||
sub_815C91C();
|
||||
RestoreSerialTimer3IntrHandlers();
|
||||
REG_IME = imeBak;
|
||||
}
|
||||
|
||||
u8 sub_8143674(struct MEvent_Str_1 *a0)
|
||||
{
|
||||
u8 resp = 0;
|
||||
a0->unk_000 = sub_815C498(1, a0->unk_004, a0->unk_008, 0);
|
||||
if ((a0->unk_000 & 0x13) == 0x10)
|
||||
resp = 1;
|
||||
if (a0->unk_000 & 8)
|
||||
resp = 2;
|
||||
if (a0->unk_000 & 4)
|
||||
resp = 3;
|
||||
gUnknown_3003F84 = 0;
|
||||
return resp;
|
||||
}
|
||||
|
||||
void sub_81436BC(void)
|
||||
{
|
||||
memset(gDecompressionBuffer, 0, 0x2000);
|
||||
gUnknown_202271A = 0x5502;
|
||||
sub_8009804();
|
||||
SetSuppressLinkErrorMessage(TRUE);
|
||||
}
|
||||
|
||||
bool8 sub_81436EC(void)
|
||||
{
|
||||
vu16 imeBak = REG_IME;
|
||||
u16 data[4];
|
||||
REG_IME = 0;
|
||||
*(u64 *)data = gUnknown_3003FB4;
|
||||
REG_IME = imeBak;
|
||||
if ( data[0] == 0xB9A0
|
||||
&& data[1] == 0xCCD0
|
||||
&& data[2] == 0xFFFF
|
||||
&& data[3] == 0xFFFF
|
||||
)
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
Reference in New Issue
Block a user