From c0b26e76d784331dab7a782a453a359c10b00685 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Wed, 13 Aug 2025 07:48:55 -0500 Subject: [PATCH] sub_505A4 --- asm/rom_4CEA8.s | 136 -------------------------------------- expected_objs/sub_505A4.o | Bin 1540 -> 0 bytes include/global.h | 11 ++- src/rom_50AD4.c | 42 ++++++++++++ 4 files changed, 50 insertions(+), 139 deletions(-) delete mode 100644 expected_objs/sub_505A4.o diff --git a/asm/rom_4CEA8.s b/asm/rom_4CEA8.s index ca9ee4f..6cdc66d 100644 --- a/asm/rom_4CEA8.s +++ b/asm/rom_4CEA8.s @@ -6558,139 +6558,3 @@ _08050594: .4byte gUnknown_086B12D0 _08050598: .4byte 0x040000D4 _0805059C: .4byte 0x80000030 _080505A0: .4byte 0x80000040 - - thumb_func_start sub_505A4 -sub_505A4: @ 0x080505A4 - push {r4, r5, lr} - movs r3, #0 - ldr r0, _080505C8 @ =gCurrentPinballGame - ldr r2, [r0] - ldr r4, _080505CC @ =0x00000366 - adds r1, r2, r4 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r5, r0, #0 - cmp r1, #3 - bne _080505D4 - ldr r0, _080505D0 @ =0x0000072A - adds r1, r2, r0 - movs r0, #1 - strb r0, [r1] - b _080505E2 - .align 2, 0 -_080505C8: .4byte gCurrentPinballGame -_080505CC: .4byte 0x00000366 -_080505D0: .4byte 0x0000072A -_080505D4: - movs r0, #0x13 - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _080505E2 - ldr r1, _0805060C @ =0x0000072A - adds r0, r2, r1 - strb r3, [r0] -_080505E2: - ldr r1, [r5] - ldr r2, _0805060C @ =0x0000072A - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _08050614 - ldr r4, _08050610 @ =0x000001A5 - adds r0, r1, r4 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #1 - adds r2, #0xa - adds r1, r1, r2 - ldrh r1, [r1] - subs r1, #1 - subs r0, r0, r1 - lsls r0, r0, #0x10 - b _08050620 - .align 2, 0 -_0805060C: .4byte 0x0000072A -_08050610: .4byte 0x000001A5 -_08050614: - ldr r4, _0805069C @ =0x000001A5 - adds r0, r1, r4 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #0x11 -_08050620: - lsrs r3, r0, #0x10 - lsls r0, r3, #0x10 - asrs r0, r0, #0xc - ldr r2, _080506A0 @ =gUnknown_086B125C - adds r3, r0, r2 - adds r4, r2, #0 - adds r4, #0x40 - ldr r0, [r5] - adds r0, #0x6a - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0xdf - bgt _0805064A - ldr r1, _080506A4 @ =0x040000D4 - ldr r0, [r3] - str r0, [r1] - ldr r0, [r2, #0x40] - str r0, [r1, #4] - ldr r0, _080506A8 @ =0x80000040 - str r0, [r1, #8] - ldr r0, [r1, #8] -_0805064A: - ldr r0, [r5] - adds r2, r0, #0 - adds r2, #0x6a - movs r1, #0 - ldrsh r0, [r2, r1] - cmp r0, #0xe7 - bgt _08050668 - ldr r1, _080506A4 @ =0x040000D4 - ldr r0, [r3, #4] - str r0, [r1] - ldr r0, [r4, #4] - str r0, [r1, #4] - ldr r0, _080506A8 @ =0x80000040 - str r0, [r1, #8] - ldr r0, [r1, #8] -_08050668: - movs r1, #0 - ldrsh r0, [r2, r1] - cmp r0, #0x47 - ble _08050694 - cmp r0, #0xef - bgt _08050684 - ldr r1, _080506A4 @ =0x040000D4 - ldr r0, [r3, #8] - str r0, [r1] - ldr r0, [r4, #8] - str r0, [r1, #4] - ldr r0, _080506A8 @ =0x80000040 - str r0, [r1, #8] - ldr r0, [r1, #8] -_08050684: - ldr r1, _080506A4 @ =0x040000D4 - ldr r0, [r3, #0xc] - str r0, [r1] - ldr r0, [r4, #0xc] - str r0, [r1, #4] - ldr r0, _080506AC @ =0x80000030 - str r0, [r1, #8] - ldr r0, [r1, #8] -_08050694: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0805069C: .4byte 0x000001A5 -_080506A0: .4byte gUnknown_086B125C -_080506A4: .4byte 0x040000D4 -_080506A8: .4byte 0x80000040 -_080506AC: .4byte 0x80000030 diff --git a/expected_objs/sub_505A4.o b/expected_objs/sub_505A4.o deleted file mode 100644 index 10b6c75313ec7f60f79f4431eee233a3b9e168ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1540 zcmah}O-vI(6n?Y2{aHZMf|3OhK`~j>G)q%fdNErI(vp%8e9toDb7$A+ww?yMOwYAt@#BVPyeniDO?D!HPTYZY6L?npyxNf=#N{EljG{uZi5 zCs&MnD$UR8@!cP&b?2X;_8he?PmAO~BX1**c-+`wJ22Z>3%%JV0L21$XyC}4!U?-< zmsWutM;OXnoxgZ(dOi*cDuuv#tImCCHWQHGW4)%EJ# zdsTcn^YTP;5&Cu3f_H);rnZs9vrl-14RiiDlchAyH~HAc1!$ zVY_a9wbXRW4Pht$4e3#ICSl)3|5ZKwkPy?Ip*Vp<#bM!~D4;-RMs;K-Ulhk#pYz*j z3B6GAyp+%5Apie-M#odb QFOFRF-NptMH(}unk366 == 3) + gCurrentPinballGame->unk72A = 1; + else if (gCurrentPinballGame->unk13) + gCurrentPinballGame->unk72A = 0; + + if (gCurrentPinballGame->unk72A > 0) + index = gCurrentPinballGame->unk1A5 * 2 - (gCurrentPinballGame->unk734 - 1); + else + index = gCurrentPinballGame->unk1A5 * 2; + + + src = gUnknown_086B125C[index]; + dest = gUnknown_086B125C[4]; + if (gCurrentPinballGame->unk6A < 224) + { + DmaCopy16(3, src[0], dest[0], 0x80); + } + + if (gCurrentPinballGame->unk6A < 232) + { + DmaCopy16(3, src[1], dest[1], 0x80); + } + + if (gCurrentPinballGame->unk6A > 71) + { + if (gCurrentPinballGame->unk6A < 240) + { + DmaCopy16(3, src[2], dest[2], 0x80); + } + + DmaCopy16(3, src[3], dest[3], 0x60); + } +} + void sub_506B0(void) { s16 i;