diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-11-09 21:56:47 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-11-09 21:56:47 -0500 |
commit | c9da45b254d2400277027da3a6b2cc49d69ce2ff (patch) | |
tree | ef70fa248abd43219b22cd2edfdea5b2bdecbeca | |
parent | 1523d5c01e1745ad2f7c627c5701ab65de375f12 (diff) |
through sub_8009FAC
-rw-r--r-- | asm/link.s | 96 | ||||
-rw-r--r-- | src/link.c | 58 |
2 files changed, 58 insertions, 96 deletions
diff --git a/asm/link.s b/asm/link.s index 0989f7d0c..39f12333a 100644 --- a/asm/link.s +++ b/asm/link.s @@ -5,102 +5,6 @@ .text - thumb_func_start sub_8009F18 -sub_8009F18: @ 8009F18 - push {lr} - ldr r0, =gLinkVSyncDisabled - ldrb r0, [r0] - cmp r0, 0 - beq _08009F26 - bl sub_800F804 -_08009F26: - ldr r1, =gUnknown_03003140 - ldr r0, =sub_8009F70 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_8009F18 - - thumb_func_start sub_8009F3C -sub_8009F3C: @ 8009F3C - push {lr} - ldr r0, =gLinkVSyncDisabled - ldrb r0, [r0] - cmp r0, 0 - beq _08009F50 - bl sub_800F7E4 - b _08009F6A - .pool -_08009F50: - ldr r0, =gUnknown_03003140 - ldr r1, [r0] - ldr r0, =sub_8009F70 - cmp r1, r0 - beq _08009F68 - movs r0, 0 - b _08009F6A - .pool -_08009F68: - movs r0, 0x1 -_08009F6A: - pop {r1} - bx r1 - thumb_func_end sub_8009F3C - - thumb_func_start sub_8009F70 -sub_8009F70: @ 8009F70 - push {lr} - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0x1 - bne _08009F80 - ldr r0, =0x0000cafe - bl sub_8009D90 -_08009F80: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8009F70 - - thumb_func_start sub_8009F8C -sub_8009F8C: @ 8009F8C - push {lr} - ldr r0, =gLinkVSyncDisabled - ldrb r1, [r0] - cmp r1, 0 - beq _08009FA0 - bl Rfu_set_zero - b _08009FA4 - .pool -_08009FA0: - ldr r0, =gUnknown_03003140 - str r1, [r0] -_08009FA4: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8009F8C - - thumb_func_start sub_8009FAC -sub_8009FAC: @ 8009FAC - push {lr} - ldr r0, =gLinkVSyncDisabled - ldrb r1, [r0] - cmp r1, 0 - beq _08009FC0 - bl Rfu_set_zero - b _08009FC4 - .pool -_08009FC0: - ldr r0, =gUnknown_03003140 - str r1, [r0] -_08009FC4: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8009FAC - thumb_func_start GetLinkPlayerCount GetLinkPlayerCount: @ 8009FCC push {lr} diff --git a/src/link.c b/src/link.c index c2f033e1d..2c8fd5397 100644 --- a/src/link.c +++ b/src/link.c @@ -109,6 +109,7 @@ void sub_8009638(void); void sub_80096BC(void); static void c2_08009A8C(void); static void sub_8009AA0(u8 unused); +void sub_8009F70(void); void sub_800A2E0(void); void sub_800A2F4(void *heapptr, size_t src); void sub_800A418(void); @@ -127,6 +128,9 @@ void sub_800B594(void); u32 sub_800BEC0(void); void sub_800E700(void); void sub_800EDD4(void); +bool32 sub_800F7E4(void); +void sub_800F804(void); +void Rfu_set_zero(void); // .rodata @@ -641,3 +645,57 @@ void sub_8009D90(u16 command) break; } } + +void sub_8009F18(void) +{ + if (gLinkVSyncDisabled) + { + sub_800F804(); + } + gUnknown_03003140 = sub_8009F70; +} + +bool32 sub_8009F3C(void) +{ + if (gLinkVSyncDisabled) + { + return sub_800F7E4(); + } + if (gUnknown_03003140 == sub_8009F70) + { + return TRUE; + } + return FALSE; +} + +void sub_8009F70(void) +{ + if (gReceivedRemoteLinkPlayers == TRUE) + { + sub_8009D90(0xcafe); + } +} + +void sub_8009F8C(void) +{ + if (gLinkVSyncDisabled) + { + Rfu_set_zero(); + } + else + { + gUnknown_03003140 = NULL; + } +} + +void sub_8009FAC(void) +{ + if (gLinkVSyncDisabled) + { + Rfu_set_zero(); + } + else + { + gUnknown_03003140 = NULL; + } +} |