From 7feaa4be7d0510f21b8c2be8a8473b718cac4609 Mon Sep 17 00:00:00 2001 From: Henny022p Date: Fri, 26 Feb 2021 19:14:21 +0100 Subject: [PATCH] matched sub_080B18DC --- asm/code_080B1520.s | 43 ------------------------------------------- linker.ld | 1 - src/code_080B1520.c | 21 +++++++++++++++++++-- 3 files changed, 19 insertions(+), 46 deletions(-) delete mode 100644 asm/code_080B1520.s diff --git a/asm/code_080B1520.s b/asm/code_080B1520.s deleted file mode 100644 index d2f9be9d..00000000 --- a/asm/code_080B1520.s +++ /dev/null @@ -1,43 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_080B18DC -sub_080B18DC: @ 0x080B18DC - push {r4, r5, r6, lr} - adds r5, r1, #0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - movs r6, #0 - b _080B18EE -_080B18E8: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_080B18EE: - cmp r6, #2 - bhi _080B1912 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080B18A4 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0 - bne _080B18E8 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080B180C - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0 - bne _080B18E8 -_080B1912: - adds r0, r2, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - diff --git a/linker.ld b/linker.ld index 4cfa3dfc..7f623fd8 100644 --- a/linker.ld +++ b/linker.ld @@ -900,7 +900,6 @@ SECTIONS { asm/m4a.o(.text); asm/libagbsyscall.o(.text); src/code_080B1520.o(.text); - asm/code_080B1520.o(.text); *libc.a:memcpy.o(.text); /* handwritten assembly in arm mode */ diff --git a/src/code_080B1520.c b/src/code_080B1520.c index d2a315b6..da7f7d99 100644 --- a/src/code_080B1520.c +++ b/src/code_080B1520.c @@ -5,7 +5,7 @@ typedef struct struct_08DE7D40 { u16 unk_04; u16 unk_06; u8 unk_08; - //u8 filler[3]; + // u8 filler[3]; } struct_08DE7D40; extern struct_08DE7D40* gUnk_02036A50; @@ -222,7 +222,7 @@ u32 sub_080B1864(u16 unk_1, u16* unk_2, u32 unk_3) { return ret; } -u32 sub_080B18A4(u16 unk_1, u16* unk_2) { +u16 sub_080B18A4(u16 unk_1, u16* unk_2) { u16 ret; if (gUnk_02036A50->unk_00 != 0x200) { @@ -232,3 +232,20 @@ u32 sub_080B18A4(u16 unk_1, u16* unk_2) { } return ret; } + +u32 sub_080B18DC(u16 unk_1, u16* unk_2, u32 unk_3) { + u8 i; + u32 ret; + + ret = unk_3; + for (i = 0; i < 3; i++) { + ret = sub_080B18A4(unk_1, unk_2); + if (ret == 0) { + ret = sub_080B180C(unk_1, unk_2); + if (ret == 0) { + break; + } + } + } + return ret; +}