through sub_81436EC
This commit is contained in:
-187
@@ -5,193 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.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
|
thumb_func_start sub_814374C
|
||||||
sub_814374C: @ 814374C
|
sub_814374C: @ 814374C
|
||||||
push {lr}
|
push {lr}
|
||||||
|
|||||||
@@ -146,6 +146,10 @@ extern u16 word_3002910[];
|
|||||||
extern bool8 gReceivedRemoteLinkPlayers;
|
extern bool8 gReceivedRemoteLinkPlayers;
|
||||||
extern bool8 gLinkVSyncDisabled;
|
extern bool8 gLinkVSyncDisabled;
|
||||||
|
|
||||||
|
extern u8 gUnknown_3003F84;
|
||||||
|
extern u64 gUnknown_3003FB4;
|
||||||
|
extern u16 gUnknown_202271A;
|
||||||
|
|
||||||
void Task_DestroySelf(u8);
|
void Task_DestroySelf(u8);
|
||||||
void OpenLink(void);
|
void OpenLink(void);
|
||||||
void CloseLink(void);
|
void CloseLink(void);
|
||||||
@@ -196,5 +200,6 @@ void sub_8011BD0(void);
|
|||||||
u8 sub_800ABAC(void);
|
u8 sub_800ABAC(void);
|
||||||
u8 sub_800ABBC(void);
|
u8 sub_800ABBC(void);
|
||||||
void sub_800AC34(void);
|
void sub_800AC34(void);
|
||||||
|
void sub_8009804(void);
|
||||||
|
|
||||||
#endif // GUARD_LINK_H
|
#endif // GUARD_LINK_H
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ typedef void (*MainCallback)(void);
|
|||||||
typedef void (*IntrCallback)(void);
|
typedef void (*IntrCallback)(void);
|
||||||
typedef void (*IntrFunc)(void);
|
typedef void (*IntrFunc)(void);
|
||||||
|
|
||||||
|
extern IntrFunc gIntrTable[];
|
||||||
|
|
||||||
struct Main
|
struct Main
|
||||||
{
|
{
|
||||||
/*0x000*/ MainCallback callback1;
|
/*0x000*/ MainCallback callback1;
|
||||||
@@ -62,5 +64,6 @@ void SetSerialCallback(IntrCallback callback);
|
|||||||
void InitFlashTimer(void);
|
void InitFlashTimer(void);
|
||||||
void DoSoftReset(void);
|
void DoSoftReset(void);
|
||||||
void ClearPokemonCrySongs(void);
|
void ClearPokemonCrySongs(void);
|
||||||
|
void RestoreSerialTimer3IntrHandlers(void);
|
||||||
|
|
||||||
#endif // GUARD_MAIN_H
|
#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/roamer.o(.text);
|
||||||
asm/mystery_gift_menu.o(.text);
|
asm/mystery_gift_menu.o(.text);
|
||||||
asm/link_rfu_4.o(.text);
|
asm/link_rfu_4.o(.text);
|
||||||
|
src/mevent.o(.text);
|
||||||
asm/mevent.o(.text);
|
asm/mevent.o(.text);
|
||||||
asm/mevent_server.o(.text);
|
asm/mevent_server.o(.text);
|
||||||
asm/mevent_8145654.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