From e49aba236373fb214e8967c6f31cdec5e0d5da17 Mon Sep 17 00:00:00 2001 From: Wendy Moniuk Date: Wed, 3 Sep 2025 20:37:48 -0400 Subject: [PATCH] decompile sub_162BB (#174) --- asm/rom_14740.s | 199 -------------------------------------- expected_objs/sub_162B8.o | Bin 1424 -> 0 bytes ld_script.txt | 1 - src/rom_14740.c | 60 ++++++++++++ 4 files changed, 60 insertions(+), 200 deletions(-) delete mode 100644 asm/rom_14740.s delete mode 100644 expected_objs/sub_162B8.o diff --git a/asm/rom_14740.s b/asm/rom_14740.s deleted file mode 100644 index 2fcb5c1..0000000 --- a/asm/rom_14740.s +++ /dev/null @@ -1,199 +0,0 @@ -#include "constants/global.h" -#include "constants/bg_music.h" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_162B8 -sub_162B8: @ 0x080162B8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - adds r4, r0, #0 - str r1, [sp] - str r2, [sp, #4] - movs r7, #0 - movs r6, #0 - movs r0, #0 - str r0, [sp, #8] - ldr r0, _08016418 @ =gCurrentPinballGame - ldr r2, [r0] - ldr r3, _0801641C @ =0x000005B2 - adds r1, r2, r3 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov sl, r0 - cmp r1, #0 - beq _080162E8 - b _08016408 -_080162E8: - adds r0, r2, #0 - adds r0, #0x24 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - mov ip, r0 - cmp r0, #0 - beq _080162FA - b _08016408 -_080162FA: - movs r5, #0xc2 - lsls r5, r5, #1 - adds r0, r2, r5 - ldrh r3, [r4] - ldrh r1, [r0] - adds r1, r3, r1 - adds r5, #2 - adds r0, r2, r5 - ldrh r2, [r4, #2] - ldrh r0, [r0] - adds r0, r2, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r5, r1, #0x10 - lsrs r0, r5, #0x10 - mov r8, r3 - mov sb, r2 - cmp r0, #0x3f - bhi _08016342 - lsls r1, r4, #0x10 - lsrs r0, r1, #0x10 - cmp r0, #0x3f - bhi _08016342 - ldr r2, _08016420 @ =gUnknown_08252B10 - asrs r0, r1, #0xa - asrs r1, r5, #0x10 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - ldr r7, _08016424 @ =0x0000FFF0 - ands r7, r0 - movs r6, #0xf - ands r6, r0 - mov r0, ip - str r0, [sp, #8] -_08016342: - cmp r6, #0 - bne _080163DA - mov r1, sl - ldr r2, [r1] - movs r3, #0xc4 - lsls r3, r3, #1 - adds r0, r2, r3 - ldrh r1, [r0] - add r1, r8 - movs r5, #0xc5 - lsls r5, r5, #1 - adds r0, r2, r5 - ldrh r0, [r0] - add r0, sb - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r3, r1, #0x10 - lsrs r0, r3, #0x10 - cmp r0, #0x3f - bhi _0801638C - lsls r1, r4, #0x10 - lsrs r0, r1, #0x10 - cmp r0, #0x3f - bhi _0801638C - ldr r2, _08016420 @ =gUnknown_08252B10 - asrs r0, r1, #0xa - asrs r1, r3, #0x10 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - ldr r7, _08016424 @ =0x0000FFF0 - ands r7, r0 - movs r6, #0xf - ands r6, r0 - movs r0, #1 - str r0, [sp, #8] -_0801638C: - cmp r6, #0 - bne _080163DA - mov r1, sl - ldr r2, [r1] - movs r3, #0xc6 - lsls r3, r3, #1 - adds r0, r2, r3 - ldrh r1, [r0] - add r1, r8 - movs r5, #0xc7 - lsls r5, r5, #1 - adds r0, r2, r5 - ldrh r0, [r0] - add r0, sb - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r3, r1, #0x10 - lsrs r0, r3, #0x10 - cmp r0, #0x3f - bhi _080163D6 - lsls r1, r4, #0x10 - lsrs r0, r1, #0x10 - cmp r0, #0x3f - bhi _080163D6 - ldr r2, _08016420 @ =gUnknown_08252B10 - asrs r0, r1, #0xa - asrs r1, r3, #0x10 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - ldr r7, _08016424 @ =0x0000FFF0 - ands r7, r0 - movs r6, #0xf - ands r6, r0 - movs r0, #2 - str r0, [sp, #8] -_080163D6: - cmp r6, #0 - beq _08016408 -_080163DA: - mov r1, sl - ldr r0, [r1] - movs r2, #0xb8 - lsls r2, r2, #1 - adds r0, r0, r2 - ldr r3, [sp, #8] - adds r0, r0, r3 - movs r1, #6 - strb r1, [r0] - ldr r5, [sp] - strh r7, [r5] - ldr r0, [sp, #4] - strb r6, [r0] - mov r1, sl - ldr r0, [r1] - ldr r2, _08016428 @ =0x00000624 - adds r1, r0, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bgt _08016408 - movs r0, #2 - strb r0, [r1] -_08016408: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08016418: .4byte gCurrentPinballGame -_0801641C: .4byte 0x000005B2 -_08016420: .4byte gUnknown_08252B10 -_08016424: .4byte 0x0000FFF0 -_08016428: .4byte 0x00000624 diff --git a/expected_objs/sub_162B8.o b/expected_objs/sub_162B8.o deleted file mode 100644 index a42f666ede42abbb9c60a99bc519b93da7f3e442..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1424 zcmah}&rcIU6n?YamR71(#Ab;^3lv;}S=&--6Juzh3{XW|f*NBYY(qndr8eynF);yu z#H?NfPb7weH{(TOH1WW}7=Im0;(>z)jvo0B^v!m6893l;-oEdf_s!SYnaM5=U8aN( zu!4XLy9_`UjgB*F6d63=hMkW$=oLCdw?8~y7h7S4yo58*1p#3>J0cXamo_EOg2(0Y zKcdhLwHMpI)?f%0zyzn`YgHH zNEz17Es<4MnROb|4fCGPgI6&N|AUFarWxEnMf_$3e z67rC3LZBUShU=e2KEU;3h@W#jfw;iw)5wb)pFrNu@!QCMVb+5{0l_J*UqN2x_ygqp z`s?%RPX{<*5uqh-LiCIi_zYAXj$#SWcvT<*qud98H*9jFJNL;EPGZ3Zu}<>Okpunk5B2 == 0) + { + if (gCurrentPinballGame->unk24 != 0) + return; + + deltaX = arg0->x + gCurrentPinballGame->unk184[0].x; + deltaY = arg0->y + gCurrentPinballGame->unk184[0].y; + + if (deltaX <= 63U && deltaY <= 63U) + { + maskedResult = 0xFFF0 & gUnknown_08252B10[(deltaY * 64) + deltaX]; + lowerNibble = 0xF & gUnknown_08252B10[(deltaY * 64) + deltaX]; + ix = 0; + } + if (lowerNibble == 0) + { + deltaX = gCurrentPinballGame->unk184[1].x + arg0->x; + deltaY = gCurrentPinballGame->unk184[1].y + arg0->y; + + if (deltaX <= 63U && deltaY <= 63U) + { + maskedResult = 0xFFF0 & gUnknown_08252B10[(deltaY * 64) + deltaX]; + lowerNibble = 0xF & gUnknown_08252B10[(deltaY * 64) + deltaX]; + ix = 1; + } + + if (lowerNibble == 0) + { + deltaX = gCurrentPinballGame->unk184[2].x + arg0->x; + deltaY = gCurrentPinballGame->unk184[2].y + arg0->y; + + if (deltaX <= 63U && deltaY <= 63U) + { + maskedResult = 0xFFF0 & gUnknown_08252B10[(deltaY * 64) + deltaX]; + lowerNibble = 0xF & gUnknown_08252B10[(deltaY * 64) + deltaX]; + ix = 2; + } + + if (lowerNibble == 0) + return; + } + } + gCurrentPinballGame->unk170[ix] = 6; + + *arg1 = maskedResult; + *arg2 = lowerNibble; + + if (gCurrentPinballGame->unk624 <= 0) + gCurrentPinballGame->unk624 = 2; + } } \ No newline at end of file