From 9a9f6012441a4ed0f7ba1566a3f693801957ef12 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 8 Nov 2017 19:58:59 -0500 Subject: [PATCH] sub_8009900 --- asm/link.s | 86 -------------------------------------------------- include/link.h | 1 + include/save.h | 2 +- src/link.c | 38 +++++++++++++++++++++- 4 files changed, 39 insertions(+), 88 deletions(-) diff --git a/asm/link.s b/asm/link.s index 28d2ec0c9..345a68899 100644 --- a/asm/link.s +++ b/asm/link.s @@ -5,92 +5,6 @@ .text - thumb_func_start sub_8009900 -sub_8009900: @ 8009900 - push {r4,r5,lr} - sub sp, 0x4 - ldr r4, =gMain - ldrh r1, [r4, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08009916 - ldr r1, =gUnknown_03003144 - movs r0, 0x1 - strb r0, [r1] -_08009916: - ldrh r1, [r4, 0x2C] - movs r5, 0x2 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _0800992A - ldr r0, =0x02004000 - ldr r1, =0x00002004 - bl sub_800A2F4 -_0800992A: - ldrh r1, [r4, 0x2E] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _08009946 - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_08009946: - ldrh r1, [r4, 0x2E] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08009956 - movs r0, 0x1 - bl sub_800B330 -_08009956: - ldrh r1, [r4, 0x2E] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _08009968 - movs r0, 0x1 - bl TrySavingData -_08009968: - ldrh r1, [r4, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08009976 - bl sub_800AC34 -_08009976: - ldr r0, =gUnknown_020223BC - ldrb r0, [r0] - cmp r0, 0 - beq _08009996 - ldr r2, [r4, 0x24] - ldr r0, =gUnknown_03002748 - ldrb r1, [r0] - ldr r0, =gUnknown_03003140 - ldr r0, [r0] - cmp r0, 0 - bne _08009990 - movs r0, 0x10 - orrs r1, r0 -_08009990: - adds r0, r2, 0 - bl sub_800A994 -_08009996: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8009900 - thumb_func_start c2_08009A8C c2_08009A8C: @ 80099BC push {lr} diff --git a/include/link.h b/include/link.h index 662f8e5cd..5d9471826 100644 --- a/include/link.h +++ b/include/link.h @@ -196,6 +196,7 @@ void sub_800AC34(void); void sub_800B628(void); void sub_80097E8(void); +void sub_800A994(u32 seed, u8 flags); extern u16 gUnknown_03003020[6]; extern u32 gUnknown_0300302C; diff --git a/include/save.h b/include/save.h index 6c1238cd2..f010b3415 100644 --- a/include/save.h +++ b/include/save.h @@ -77,7 +77,7 @@ u8 GetSaveValidStatus(const struct SaveSectionLocation *location); u8 DoReadFlashWholeSection(u8, struct SaveSection *); u16 CalculateChecksum(void *, u16); u8 HandleSavingData(u8 saveType); -//u8 TrySavingData(u8 saveType); +u8 TrySavingData(u8 saveType); //u8 sub_8125D80(void); //bool8 sub_8125DA8(void); //u8 sub_8125DDC(void); diff --git a/src/link.c b/src/link.c index 823a9a96b..327a170d0 100644 --- a/src/link.c +++ b/src/link.c @@ -1,6 +1,8 @@ // Includes #include "global.h" +#include "malloc.h" +#include "save.h" #include "librfu.h" #include "rng.h" #include "string_util.h" @@ -97,13 +99,15 @@ void sub_8009638(void); void sub_80096BC(void); void c2_08009A8C(void); void sub_800A2E0(void); +void sub_800A2F4(void *heapptr, size_t src); void task00_link_test(u8 taskId); u16 sub_800A648(u16 *src, u16 size); void sub_800A6E8(u32 pos, u8 a0, u8 a1, u8 a2); void sub_800A824(void); -void sub_800B594(void); +void sub_800B330(bool8 flag); void sub_800B4A4(void); void sub_800B53C(void); +void sub_800B594(void); u32 sub_800BEC0(void); void sub_800E700(void); void sub_800EDD4(void); @@ -348,3 +352,35 @@ void sub_8009818(void) } } } + +void sub_8009900(void) +{ + if (gMain.newKeys & A_BUTTON) + { + gUnknown_03003144 = TRUE; + } + if (gMain.heldKeys & B_BUTTON) + { + sub_800A2F4(gHeap + 0x4000, 0x00002004); + } + if (gMain.newKeys & L_BUTTON) + { + BeginNormalPaletteFade(-1, 0, 16, 0, 2); + } + if (gMain.newKeys & START_BUTTON) + { + sub_800B330(1); + } + if (gMain.newKeys & R_BUTTON) + { + TrySavingData(1); + } + if (gMain.newKeys & SELECT_BUTTON) + { + sub_800AC34(); + } + if (gUnknown_020223BC) + { + sub_800A994(gMain.vblankCounter2, gUnknown_03003140 ? gUnknown_03002748 : gUnknown_03002748 | 0x10); + } +}