From fc0c2181247f53eae68e8dadae0cc1669a9c5e47 Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Wed, 25 Jun 2025 20:48:50 -0700 Subject: [PATCH] nonmatch sub_80ACAD4 for now --- asm/ground_object.s | 106 -------------------------------------------- ld_script.ld | 1 - src/ground_object.c | 103 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 103 insertions(+), 107 deletions(-) delete mode 100644 asm/ground_object.s diff --git a/asm/ground_object.s b/asm/ground_object.s deleted file mode 100644 index 06a2ffe4e..000000000 --- a/asm/ground_object.s +++ /dev/null @@ -1,106 +0,0 @@ - #include "asm/constants/gba_constants.inc" - #include "asm/macros.inc" - - .syntax unified - - .text - - - thumb_func_start sub_80ACAD4 -sub_80ACAD4: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - ldr r0, _080ACB8C - ldr r6, [r0] - movs r0, 0 - mov r8, r0 - movs r1, 0x1 - negs r1, r1 - mov r9, r1 - movs r2, 0x90 - lsls r2, 1 - adds r4, r6, r2 -_080ACAF2: - movs r0, 0x6 - ldrsh r1, [r6, r0] - mov r2, r9 - lsls r0, r2, 16 - asrs r0, 16 - cmp r1, r0 - beq _080ACB64 - ldr r0, [r4, 0x4] - ldr r1, [r6, 0x14] - adds r0, r1 - str r0, [sp] - ldr r0, [r4, 0x8] - ldr r1, [r6, 0x18] - adds r0, r1 - str r0, [sp, 0x4] - ldr r1, [r4, 0x14] - ldr r0, [r4, 0x18] - adds r7, r1, r0 - movs r0, 0xA2 - lsls r0, 1 - adds r5, r6, r0 - adds r0, r5, 0 - bl sub_80A66D4 - lsls r0, 24 - cmp r0, 0 - beq _080ACB40 - movs r0, 0 - strb r0, [r4, 0x1C] - ldrh r2, [r4, 0x1E] - movs r0, 0xF8 - lsls r0, 5 - adds r1, r0, 0 - ands r1, r2 - lsls r2, 24 - asrs r2, 24 - adds r0, r5, 0 - bl sub_80A6EFC -_080ACB40: - movs r1, 0x20 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080ACB5A - adds r1, r0, 0 - movs r2, 0 - ldrsb r2, [r4, r2] - adds r0, r5, 0 - movs r3, 0 - bl sub_80A7040 - movs r0, 0 - strh r0, [r4, 0x20] -_080ACB5A: - adds r0, r5, 0 - mov r1, sp - adds r2, r7, 0 - bl sub_80A7664 -_080ACB64: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - asrs r0, 16 - mov r8, r0 - movs r0, 0xE2 - lsls r0, 1 - adds r4, r0 - adds r6, r0 - mov r1, r8 - cmp r1, 0xF - ble _080ACAF2 - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080ACB8C: .4byte gGroundObjects - thumb_func_end sub_80ACAD4 - - .align 2,0 diff --git a/ld_script.ld b/ld_script.ld index 54961e824..570af83c7 100755 --- a/ld_script.ld +++ b/ld_script.ld @@ -356,7 +356,6 @@ SECTIONS { src/ground_script_file.o(.text); src/ground_lives.o(.text); src/ground_object.o(.text); - asm/ground_object.o(.text); src/ground_effect.o(.text); asm/ground_effect.o(.text); src/ground_link.o(.text); diff --git a/src/ground_object.c b/src/ground_object.c index b2f100549..d4cd994c7 100644 --- a/src/ground_object.c +++ b/src/ground_object.c @@ -1025,3 +1025,106 @@ void GroundObject_Action(void) } } } + +void sub_80A7664(struct UnkGroundSpriteStruct *ptr, PixelPos *pixelPos, s32 a2); +extern bool8 sub_80A66D4(struct UnkGroundSpriteStruct *ptr); + +// https://decomp.me/scratch/QjggT - 94.61% matched (Seth) +NAKED +void sub_80ACAD4(void) { + asm_unified( + "\tpush {r4-r7,lr}\n" + "\tmov r7, r9\n" + "\tmov r6, r8\n" + "\tpush {r6,r7}\n" + "\tsub sp, 0x8\n" + "\tldr r0, _080ACB8C\n" + "\tldr r6, [r0]\n" + "\tmovs r0, 0\n" + "\tmov r8, r0\n" + "\tmovs r1, 0x1\n" + "\tnegs r1, r1\n" + "\tmov r9, r1\n" + "\tmovs r2, 0x90\n" + "\tlsls r2, 1\n" + "\tadds r4, r6, r2\n" +"_080ACAF2:\n" + "\tmovs r0, 0x6\n" + "\tldrsh r1, [r6, r0]\n" + "\tmov r2, r9\n" + "\tlsls r0, r2, 16\n" + "\tasrs r0, 16\n" + "\tcmp r1, r0\n" + "\tbeq _080ACB64\n" + "\tldr r0, [r4, 0x4]\n" + "\tldr r1, [r6, 0x14]\n" + "\tadds r0, r1\n" + "\tstr r0, [sp]\n" + "\tldr r0, [r4, 0x8]\n" + "\tldr r1, [r6, 0x18]\n" + "\tadds r0, r1\n" + "\tstr r0, [sp, 0x4]\n" + "\tldr r1, [r4, 0x14]\n" + "\tldr r0, [r4, 0x18]\n" + "\tadds r7, r1, r0\n" + "\tmovs r0, 0xA2\n" + "\tlsls r0, 1\n" + "\tadds r5, r6, r0\n" + "\tadds r0, r5, 0\n" + "\tbl sub_80A66D4\n" + "\tlsls r0, 24\n" + "\tcmp r0, 0\n" + "\tbeq _080ACB40\n" + "\tmovs r0, 0\n" + "\tstrb r0, [r4, 0x1C]\n" + "\tldrh r2, [r4, 0x1E]\n" + "\tmovs r0, 0xF8\n" + "\tlsls r0, 5\n" + "\tadds r1, r0, 0\n" + "\tands r1, r2\n" + "\tlsls r2, 24\n" + "\tasrs r2, 24\n" + "\tadds r0, r5, 0\n" + "\tbl sub_80A6EFC\n" +"_080ACB40:\n" + "\tmovs r1, 0x20\n" + "\tldrsh r0, [r4, r1]\n" + "\tcmp r0, 0\n" + "\tbeq _080ACB5A\n" + "\tadds r1, r0, 0\n" + "\tmovs r2, 0\n" + "\tldrsb r2, [r4, r2]\n" + "\tadds r0, r5, 0\n" + "\tmovs r3, 0\n" + "\tbl sub_80A7040\n" + "\tmovs r0, 0\n" + "\tstrh r0, [r4, 0x20]\n" +"_080ACB5A:\n" + "\tadds r0, r5, 0\n" + "\tmov r1, sp\n" + "\tadds r2, r7, 0\n" + "\tbl sub_80A7664\n" +"_080ACB64:\n" + "\tmov r0, r8\n" + "\tadds r0, 0x1\n" + "\tlsls r0, 16\n" + "\tasrs r0, 16\n" + "\tmov r8, r0\n" + "\tmovs r0, 0xE2\n" + "\tlsls r0, 1\n" + "\tadds r4, r0\n" + "\tadds r6, r0\n" + "\tmov r1, r8\n" + "\tcmp r1, 0xF\n" + "\tble _080ACAF2\n" + "\tadd sp, 0x8\n" + "\tpop {r3,r4}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_080ACB8C: .4byte gGroundObjects"); +} +