nonmatch sub_80ACAD4 for now

This commit is contained in:
Seth Barberee
2025-06-25 20:48:50 -07:00
parent ee3eb67bba
commit fc0c218124
3 changed files with 103 additions and 107 deletions

View File

@@ -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

View File

@@ -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);

View File

@@ -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");
}