From 5d85c564562a3704bebb998db83e37c5a50642a7 Mon Sep 17 00:00:00 2001 From: Henny022p Date: Fri, 26 Feb 2021 00:08:05 +0100 Subject: [PATCH] matched sub_080B180C... --- asm/code_080B1520.s | 49 --------------------------------------------- src/code_080B1520.c | 34 ++++++++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 50 deletions(-) diff --git a/asm/code_080B1520.s b/asm/code_080B1520.s index e84f6af1..757e533c 100644 --- a/asm/code_080B1520.s +++ b/asm/code_080B1520.s @@ -5,55 +5,6 @@ .text - thumb_func_start sub_080B180C -sub_080B180C: @ 0x080B180C - push {r4, r5, lr} - sub sp, #8 - adds r4, r1, #0 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r5, #0 - ldr r0, _080B1828 @ =gUnk_02036A50 - ldr r0, [r0] - ldrh r0, [r0, #4] - cmp r1, r0 - blo _080B1830 - ldr r0, _080B182C @ =0x000080FF - b _080B185A - .align 2, 0 -_080B1828: .4byte gUnk_02036A50 -_080B182C: .4byte 0x000080FF -_080B1830: - adds r0, r1, #0 - mov r1, sp - bl sub_080B15E8 - mov r2, sp - movs r3, #0 - b _080B1848 -_080B183E: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #3 - bhi _080B1858 -_080B1848: - ldrh r1, [r4] - ldrh r0, [r2] - adds r2, #2 - adds r4, #2 - cmp r1, r0 - beq _080B183E - movs r5, #0x80 - lsls r5, r5, #8 -_080B1858: - adds r0, r5, #0 -_080B185A: - add sp, #8 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - thumb_func_start sub_080B1864 sub_080B1864: @ 0x080B1864 push {r4, r5, r6, lr} diff --git a/src/code_080B1520.c b/src/code_080B1520.c index 86086285..89d9f5f2 100644 --- a/src/code_080B1520.c +++ b/src/code_080B1520.c @@ -181,4 +181,36 @@ NONMATCH("asm/non_matching/code_080B1520/sub_080B16AC.inc", u16 sub_080B16AC(u16 } while (unk_3 != 0); return 0; } -END_NONMATCH \ No newline at end of file +END_NONMATCH + +u32 sub_080B180C(u16 unk_1, u16* unk_2) { + u16 t0, t1; + u32 ret; + + u16 stack[4]; + u16* ptr; + + u8 i; + + ret = 0; + if (unk_1 >= gUnk_02036A50->unk_04) + return 0x80ff; + sub_080B15E8(unk_1, stack); + ptr = stack; + i = 0; + goto L1; + L2: + i++; + if (i > 3) + goto RET; + L1: + t1 = *unk_2; + t0 = *ptr; + ptr++; + unk_2++; + if (t1 == t0) + goto L2; + ret = 0x8000; + RET: + return ret; +}