From 6e79ed0cc570ca9daad75239b6979c8cf7f2c127 Mon Sep 17 00:00:00 2001 From: Retnuhytnuob <65794339+Retnuhytnuob@users.noreply.github.com> Date: Sun, 7 Sep 2025 07:49:03 -0500 Subject: [PATCH] Decomp sub_203CC (#178) * decomp sub_203CC * . --- asm/rom_203CC.s | 1344 ------------------------------------- expected_objs/sub_203CC.o | Bin 9580 -> 0 bytes expected_objs/sub_2DE54.o | Bin 2496 -> 0 bytes include/functions.h | 2 +- include/global.h | 20 +- ld_script.txt | 1 - src/pinball_game_main.c | 2 - src/rom_201B8.c | 312 +++++++++ 8 files changed, 326 insertions(+), 1355 deletions(-) delete mode 100644 asm/rom_203CC.s delete mode 100644 expected_objs/sub_203CC.o delete mode 100644 expected_objs/sub_2DE54.o diff --git a/asm/rom_203CC.s b/asm/rom_203CC.s deleted file mode 100644 index 2515dfb..0000000 --- a/asm/rom_203CC.s +++ /dev/null @@ -1,1344 +0,0 @@ -#include "constants/global.h" -#include "constants/bg_music.h" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_203CC -sub_203CC: @ 0x080203CC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - bl sub_20EC0 - ldr r6, _0802042C @ =gCurrentPinballGame - ldr r5, [r6] - movs r1, #0xe3 - lsls r1, r1, #1 - adds r0, r5, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r0, #0xa7 - ble _0802044C - ldr r4, _08020430 @ =gUnknown_086ADF48 - ldr r0, _08020434 @ =gMain - ldr r0, [r0, #0x50] - movs r1, #0xa0 - bl __umodsi3 - movs r1, #5 - bl __udivsi3 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r1, [r0] - ldr r3, _08020438 @ =0x00000744 - adds r0, r5, r3 - strb r1, [r0] - ldr r2, [r6] - movs r4, #0xf1 - lsls r4, r4, #1 - adds r0, r2, r4 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - bne _08020440 - adds r0, r2, r3 - ldrb r0, [r0] - adds r0, #6 - ldr r5, _0802043C @ =0x00000745 - adds r1, r2, r5 - strb r0, [r1] - b _0802049C - .align 2, 0 -_0802042C: .4byte gCurrentPinballGame -_08020430: .4byte gUnknown_086ADF48 -_08020434: .4byte gMain -_08020438: .4byte 0x00000744 -_0802043C: .4byte 0x00000745 -_08020440: - ldr r7, _08020448 @ =0x00000744 - adds r0, r2, r7 - b _08020494 - .align 2, 0 -_08020448: .4byte 0x00000744 -_0802044C: - ldr r0, _08020484 @ =gMain - ldr r0, [r0, #0x50] - movs r1, #0x32 - bl __umodsi3 - movs r1, #0x19 - bl __udivsi3 - ldr r4, _08020488 @ =0x00000744 - adds r1, r5, r4 - strb r0, [r1] - ldr r2, [r6] - movs r5, #0xf1 - lsls r5, r5, #1 - adds r0, r2, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - bne _08020490 - adds r0, r2, r4 - ldrb r0, [r0] - adds r0, #9 - ldr r7, _0802048C @ =0x00000745 - adds r1, r2, r7 - strb r0, [r1] - b _0802049C - .align 2, 0 -_08020484: .4byte gMain -_08020488: .4byte 0x00000744 -_0802048C: .4byte 0x00000745 -_08020490: - ldr r1, _080204C8 @ =0x00000744 - adds r0, r2, r1 -_08020494: - ldrb r1, [r0] - ldr r3, _080204CC @ =0x00000745 - adds r0, r2, r3 - strb r1, [r0] -_0802049C: - ldr r1, _080204D0 @ =gCurrentPinballGame - ldr r5, [r1] - movs r4, #0xf1 - lsls r4, r4, #1 - adds r3, r5, r4 - movs r0, #0 - ldrsb r0, [r3, r0] - mov sl, r1 - cmp r0, #2 - bne _080204D8 - ldr r7, _080204D4 @ =0x000001E3 - adds r0, r5, r7 - movs r1, #1 - strb r1, [r0] - mov r2, sl - ldr r0, [r2] - movs r3, #0xf2 - lsls r3, r3, #1 - adds r0, r0, r3 - strb r1, [r0] - b _08020500 - .align 2, 0 -_080204C8: .4byte 0x00000744 -_080204CC: .4byte 0x00000745 -_080204D0: .4byte gCurrentPinballGame -_080204D4: .4byte 0x000001E3 -_080204D8: - movs r1, #0 - ldrsb r1, [r3, r1] - ldr r3, _0802060C @ =0x000001E3 - adds r0, r5, r3 - adds r0, r0, r1 - movs r4, #0 - movs r2, #1 - strb r2, [r0] - mov r5, sl - ldr r0, [r5] - movs r7, #0xf1 - lsls r7, r7, #1 - adds r1, r0, r7 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - subs r2, r2, r1 - adds r0, r0, r3 - adds r0, r0, r2 - strb r4, [r0] -_08020500: - mov r0, sl - ldr r1, [r0] - movs r3, #0xe2 - lsls r3, r3, #1 - adds r2, r1, r3 - ldrh r4, [r2] - cmp r4, #0 - bne _08020512 - b _0802073A -_08020512: - cmp r4, #0x78 - beq _08020518 - b _080206CC -_08020518: - movs r5, #0xe1 - lsls r5, r5, #1 - adds r0, r1, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, r1, r0 - movs r7, #0xf1 - lsls r7, r7, #1 - adds r0, r0, r7 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _08020538 - b _080206CC -_08020538: - movs r6, #0xe3 - lsls r6, r6, #1 - adds r0, r1, r6 - movs r3, #0 - ldrsh r0, [r0, r3] - cmp r0, #0xa7 - ble _08020630 - movs r5, #0 - movs r3, #1 - strb r3, [r1, #0x1f] - mov r7, sl - ldr r0, [r7] - ldr r1, _08020610 @ =0x0000061C - adds r0, r0, r1 - strb r3, [r0] - ldr r1, [r7] - movs r7, #0xef - lsls r7, r7, #1 - adds r2, r1, r7 - movs r0, #0 - mov r8, r0 - strh r4, [r2] - adds r7, #2 - adds r0, r1, r7 - strh r4, [r0] - ldrh r2, [r2] - ldr r4, _08020614 @ =0x0000061E - adds r0, r1, r4 - strh r2, [r0] - ldr r7, _08020618 @ =0x000005F7 - adds r1, r1, r7 - strb r3, [r1] - mov r1, sl - ldr r0, [r1] - movs r2, #0x82 - lsls r2, r2, #2 - adds r1, r0, r2 - strh r5, [r1] - ldr r3, _0802061C @ =0x0000020A - adds r0, r0, r3 - mov r4, r8 - strb r4, [r0] - mov r7, sl - ldr r2, [r7] - movs r1, #0xf1 - lsls r1, r1, #1 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - beq _080205E4 - adds r0, r2, r6 - strh r5, [r0] - subs r3, #0x42 - adds r0, r2, r3 - strh r5, [r0] - movs r4, #0xe6 - lsls r4, r4, #1 - adds r0, r2, r4 - strh r5, [r0] - movs r7, #0xe5 - lsls r7, r7, #1 - adds r0, r2, r7 - strh r5, [r0] - subs r1, #0xe - adds r0, r2, r1 - strh r5, [r0] - adds r3, #0xe - adds r1, r2, r3 - ldr r0, _08020620 @ =0x0000FFFC - strh r0, [r1] - adds r4, #0xc - adds r0, r2, r4 - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r0] - adds r7, #0x10 - adds r0, r2, r7 - strh r1, [r0] - adds r1, #0xce - adds r0, r2, r1 - strh r5, [r0] - subs r3, #6 - adds r0, r2, r3 - strh r5, [r0] -_080205E4: - mov r4, sl - ldr r1, [r4] - movs r5, #0xc4 - lsls r5, r5, #3 - adds r2, r1, r5 - ldr r7, _08020624 @ =0x0000132C - adds r0, r1, r7 - ldr r0, [r0] - ldr r0, [r0, #0x28] - str r0, [r2] - ldr r0, _08020628 @ =0x00007530 - str r0, [r1, #0x3c] - ldr r0, _0802062C @ =0x0000062E - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0x62 - bhi _0802063C - adds r0, #1 - strb r0, [r1] - b _0802063C - .align 2, 0 -_0802060C: .4byte 0x000001E3 -_08020610: .4byte 0x0000061C -_08020614: .4byte 0x0000061E -_08020618: .4byte 0x000005F7 -_0802061C: .4byte 0x0000020A -_08020620: .4byte 0x0000FFFC -_08020624: .4byte 0x0000132C -_08020628: .4byte 0x00007530 -_0802062C: .4byte 0x0000062E -_08020630: - movs r0, #0x3c - strh r0, [r2] - ldr r0, _0802067C @ =gMPlayInfo_SE1 - ldr r1, _08020680 @ =gUnknown_086A2FA0 - bl MPlayStart -_0802063C: - ldr r0, _08020684 @ =gCurrentPinballGame - ldr r5, [r0] - movs r2, #0xe1 - lsls r2, r2, #1 - adds r1, r5, r2 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - subs r1, #1 - lsls r1, r1, #0x10 - lsrs r2, r1, #0x10 - movs r3, #0xf1 - lsls r3, r3, #1 - adds r1, r5, r3 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov sl, r0 - cmp r1, #2 - bne _0802068C - lsls r3, r2, #0x10 - asrs r1, r3, #0x10 - ldr r4, _08020688 @ =0x00000744 - adds r2, r5, r4 - adds r2, r2, r1 - lsls r0, r1, #3 - subs r0, r0, r1 - adds r0, #2 - strb r0, [r2] - mov r8, r3 - b _0802069C - .align 2, 0 -_0802067C: .4byte gMPlayInfo_SE1 -_08020680: .4byte gUnknown_086A2FA0 -_08020684: .4byte gCurrentPinballGame -_08020688: .4byte 0x00000744 -_0802068C: - lsls r2, r2, #0x10 - asrs r1, r2, #0x10 - ldr r7, _08020700 @ =0x00000744 - adds r0, r5, r7 - adds r0, r0, r1 - movs r1, #2 - strb r1, [r0] - mov r8, r2 -_0802069C: - ldr r3, _08020704 @ =0x040000D4 - mov r1, sl - ldr r0, [r1] - mov r4, r8 - asrs r2, r4, #0x10 - ldr r5, _08020700 @ =0x00000744 - adds r0, r0, r5 - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #7 - ldr r1, _08020708 @ =gUnknown_084C07EC - adds r0, r0, r1 - str r0, [r3] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #7 - ldr r7, _0802070C @ =0x06010480 - adds r0, r0, r7 - str r0, [r3, #4] - ldr r0, _08020710 @ =0x800000C0 - str r0, [r3, #8] - ldr r0, [r3, #8] -_080206CC: - mov r0, sl - ldr r2, [r0] - movs r1, #0xf1 - lsls r1, r1, #1 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - bne _08020714 - movs r3, #0xe1 - lsls r3, r3, #1 - adds r0, r2, r3 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, #1 - ldr r4, _08020700 @ =0x00000744 - adds r2, r2, r4 - adds r2, r2, r0 - lsls r1, r0, #3 - subs r1, r1, r0 - adds r1, #2 - strb r1, [r2] - b _0802072A - .align 2, 0 -_08020700: .4byte 0x00000744 -_08020704: .4byte 0x040000D4 -_08020708: .4byte gUnknown_084C07EC -_0802070C: .4byte 0x06010480 -_08020710: .4byte 0x800000C0 -_08020714: - movs r5, #0xe1 - lsls r5, r5, #1 - adds r0, r2, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, r2, r0 - ldr r7, _080207B4 @ =0x00000743 - adds r0, r0, r7 - movs r1, #2 - strb r1, [r0] -_0802072A: - mov r0, sl - ldr r1, [r0] - movs r2, #0xe2 - lsls r2, r2, #1 - adds r1, r1, r2 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] -_0802073A: - mov r3, sl - ldr r5, [r3] - ldr r4, _080207B8 @ =0x0000061C - adds r0, r5, r4 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0802074E - b _08020D82 -_0802074E: - ldr r7, _080207BC @ =0x0000061E - mov sb, r7 - mov r0, sb - adds r6, r5, r0 - ldrh r7, [r6] - mov r8, r7 - mov r1, r8 - cmp r1, #1 - bhi _08020762 - b _08020928 -_08020762: - movs r2, #0xef - lsls r2, r2, #1 - adds r4, r5, r2 - ldrh r0, [r4] - lsls r0, r0, #0x10 - movs r1, #0xa - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - subs r0, r7, #1 - strh r0, [r6] - ldrh r0, [r4] - cmp r0, #0 - beq _08020796 - subs r0, #1 - strh r0, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x28 - bne _08020796 - ldrh r0, [r6] - cmp r0, #0x28 - bls _08020796 - movs r0, #0x3c - strh r0, [r4] -_08020796: - ldr r3, _080207C0 @ =gCurrentPinballGame - ldr r1, [r3] - ldr r4, _080207BC @ =0x0000061E - adds r2, r1, r4 - ldrh r0, [r2] - cmp r0, #0x74 - bne _08020832 - adds r1, #0xe4 - ldrb r0, [r1] - cmp r0, #0 - beq _080207C4 - movs r0, #0x78 - strh r0, [r2] - b _08020832 - .align 2, 0 -_080207B4: .4byte 0x00000743 -_080207B8: .4byte 0x0000061C -_080207BC: .4byte 0x0000061E -_080207C0: .4byte gCurrentPinballGame -_080207C4: - movs r0, #1 - strb r0, [r1] - ldr r1, [r3] - movs r7, #0xf1 - lsls r7, r7, #1 - adds r0, r1, r7 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - bne _08020820 - movs r2, #0xe1 - lsls r2, r2, #1 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - bne _080207FC - ldr r0, _080207F4 @ =gMPlayInfo_SE1 - ldr r1, _080207F8 @ =gUnknown_086A0328 - bl MPlayStart - b _08020804 - .align 2, 0 -_080207F4: .4byte gMPlayInfo_SE1 -_080207F8: .4byte gUnknown_086A0328 -_080207FC: - ldr r0, _08020810 @ =gMPlayInfo_SE1 - ldr r1, _08020814 @ =gUnknown_086A0368 - bl MPlayStart -_08020804: - ldr r0, _08020818 @ =gMPlayInfo_BGM - ldr r1, _0802081C @ =0x0000FFFF - movs r2, #0x40 - bl m4aMPlayVolumeControl - b _08020832 - .align 2, 0 -_08020810: .4byte gMPlayInfo_SE1 -_08020814: .4byte gUnknown_086A0368 -_08020818: .4byte gMPlayInfo_BGM -_0802081C: .4byte 0x0000FFFF -_08020820: - ldr r0, _08020900 @ =gMPlayInfo_SE1 - ldr r1, _08020904 @ =gUnknown_086A0328 - bl MPlayStart - ldr r0, _08020908 @ =gMPlayInfo_BGM - ldr r1, _0802090C @ =0x0000FFFF - movs r2, #0x40 - bl m4aMPlayVolumeControl -_08020832: - ldr r0, _08020910 @ =gCurrentPinballGame - ldr r1, [r0] - ldr r3, _08020914 @ =0x0000061E - adds r0, r1, r3 - ldrh r0, [r0] - cmp r0, #0x73 - bne _08020856 - adds r0, r1, #0 - adds r0, #0xe4 - ldrb r0, [r0] - cmp r0, #1 - bne _08020856 - ldr r0, _08020900 @ =gMPlayInfo_SE1 - ldr r1, _0802090C @ =0x0000FFFF - movs r2, #0x80 - lsls r2, r2, #2 - bl m4aMPlayVolumeControl -_08020856: - adds r0, r5, #0 - bl Sin - adds r1, r0, #0 - ldr r0, _08020910 @ =gCurrentPinballGame - ldr r4, [r0] - ldr r5, _08020918 @ =0x0000132C - adds r5, r5, r4 - mov r8, r5 - ldr r7, [r5] - mov sb, r7 - movs r0, #0xc4 - lsls r0, r0, #3 - adds r6, r4, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, _0802091C @ =0x00004E20 - bl __divsi3 - ldrh r5, [r6] - adds r5, r5, r0 - ldr r1, _08020920 @ =gUnknown_086ADF8A - movs r2, #0xe1 - lsls r2, r2, #1 - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, #1 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r3, #0 - ldrsh r2, [r0, r3] - lsls r2, r2, #1 - movs r7, #0 - ldrsh r0, [r6, r7] - subs r2, r2, r0 - movs r0, #0xf0 - lsls r0, r0, #1 - adds r6, r4, r0 - ldrh r1, [r6] - movs r3, #0xef - lsls r3, r3, #1 - adds r7, r4, r3 - ldrh r0, [r7] - subs r0, r1, r0 - muls r0, r2, r0 - bl __divsi3 - adds r5, r5, r0 - mov r0, sb - strh r5, [r0, #0x28] - ldrh r1, [r6] - ldrh r2, [r7] - subs r2, r1, r2 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #3 - bl __divsi3 - mov r1, r8 - ldr r2, [r1] - ldr r3, _08020924 @ =0x00000622 - adds r4, r4, r3 - ldrh r1, [r4] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - subs r1, r1, r0 - strh r1, [r2, #0x2a] - mov r4, r8 - ldr r1, [r4] - movs r5, #0x28 - ldrsh r0, [r1, r5] - lsls r0, r0, #7 - str r0, [r1, #0x34] - ldr r1, [r4] - movs r7, #0x2a - ldrsh r0, [r1, r7] - lsls r0, r0, #7 - str r0, [r1, #0x38] - b _080209FE - .align 2, 0 -_08020900: .4byte gMPlayInfo_SE1 -_08020904: .4byte gUnknown_086A0328 -_08020908: .4byte gMPlayInfo_BGM -_0802090C: .4byte 0x0000FFFF -_08020910: .4byte gCurrentPinballGame -_08020914: .4byte 0x0000061E -_08020918: .4byte 0x0000132C -_0802091C: .4byte 0x00004E20 -_08020920: .4byte gUnknown_086ADF8A -_08020924: .4byte 0x00000622 -_08020928: - mov r0, r8 - cmp r0, #1 - bne _080209FE - ldr r1, _08020A3C @ =0x0000132C - adds r2, r5, r1 - ldr r3, [r2] - ldr r1, _08020A40 @ =gUnknown_086ADF8A - movs r4, #0xe1 - lsls r4, r4, #1 - adds r0, r5, r4 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, #1 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r5, #0 - ldrsh r0, [r0, r5] - lsls r0, r0, #1 - movs r6, #0 - movs r5, #0 - strh r0, [r3, #0x28] - ldr r1, [r2] - ldr r0, _08020A44 @ =0x000002BE - strh r0, [r1, #0x2a] - ldr r1, [r2] - movs r7, #0x28 - ldrsh r0, [r1, r7] - lsls r0, r0, #7 - str r0, [r1, #0x34] - ldr r1, [r2] - movs r3, #0x2a - ldrsh r0, [r1, r3] - lsls r0, r0, #7 - str r0, [r1, #0x38] - ldr r0, [r2] - strh r5, [r0, #0x30] - ldr r1, [r2] - ldr r0, _08020A48 @ =0x0000FED4 - strh r0, [r1, #0x32] - movs r0, 0x7C @=SE_UNKNOWN_0x7C - bl m4aSongNumStart - mov r7, sl - ldr r1, [r7] - mov r2, sb - adds r0, r1, r2 - strh r5, [r0] - strb r6, [r1, #0x1f] - ldr r0, [r7] - ldr r3, _08020A4C @ =0x000005F7 - adds r0, r0, r3 - strb r6, [r0] - ldr r2, [r7] - adds r4, r2, r4 - movs r0, #0 - ldrsb r0, [r4, r0] - subs r0, #1 - lsls r1, r0, #1 - adds r1, r1, r0 - movs r4, #0xe2 - lsls r4, r4, #3 - adds r2, r2, r4 - adds r2, r2, r1 - mov r5, r8 - strb r5, [r2] - ldr r3, [r7] - ldr r7, _08020A50 @ =0x00000714 - adds r4, r3, r7 - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - bne _080209F8 - movs r1, #0xe2 - lsls r1, r1, #3 - adds r0, r3, r1 - ldr r2, _08020A54 @ =0x00000711 - adds r1, r3, r2 - ldrb r2, [r0] - ldrb r0, [r1] - ands r0, r2 - ldr r5, _08020A58 @ =0x00000712 - adds r1, r3, r5 - ldrb r1, [r1] - ands r0, r1 - subs r7, #1 - adds r1, r3, r7 - ldrb r1, [r1] - ands r0, r1 - cmp r0, #0 - beq _080209F8 - mov r0, r8 - strb r0, [r4] - mov r1, sl - ldr r0, [r1] - ldr r2, _08020A5C @ =0x00000715 - adds r0, r0, r2 - movs r1, #0x7e - strb r1, [r0] - mov r3, sl - ldr r1, [r3] - movs r0, #0xfa - lsls r0, r0, #4 - str r0, [r1, #0x3c] -_080209F8: - movs r0, #0xb - bl sub_11B0 -_080209FE: - ldr r0, _08020A60 @ =gCurrentPinballGame - ldr r3, [r0] - ldr r4, _08020A64 @ =0x0000061E - adds r1, r3, r4 - ldrh r1, [r1] - mov sl, r0 - cmp r1, #0x63 - bls _08020AFC - movs r5, #0xf1 - lsls r5, r5, #1 - adds r0, r3, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - bne _08020A6C - movs r7, #0xe1 - lsls r7, r7, #1 - adds r0, r3, r7 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, #1 - ldr r1, _08020A68 @ =0x00000744 - adds r2, r3, r1 - adds r2, r2, r0 - lsls r1, r0, #3 - subs r1, r1, r0 - adds r1, #2 - strb r1, [r2] - b _08020A82 - .align 2, 0 -_08020A3C: .4byte 0x0000132C -_08020A40: .4byte gUnknown_086ADF8A -_08020A44: .4byte 0x000002BE -_08020A48: .4byte 0x0000FED4 -_08020A4C: .4byte 0x000005F7 -_08020A50: .4byte 0x00000714 -_08020A54: .4byte 0x00000711 -_08020A58: .4byte 0x00000712 -_08020A5C: .4byte 0x00000715 -_08020A60: .4byte gCurrentPinballGame -_08020A64: .4byte 0x0000061E -_08020A68: .4byte 0x00000744 -_08020A6C: - movs r2, #0xe1 - lsls r2, r2, #1 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, r3, r0 - ldr r3, _08020AC4 @ =0x00000743 - adds r0, r0, r3 - movs r1, #2 - strb r1, [r0] -_08020A82: - mov r4, sl - ldr r2, [r4] - ldr r5, _08020AC8 @ =0x0000061E - adds r0, r2, r5 - ldrh r0, [r0] - cmp r0, #0x64 - beq _08020A92 - b _08020D82 -_08020A92: - ldr r0, _08020ACC @ =gMain - ldr r0, [r0, #0x44] - adds r0, #0x98 - ldr r1, [r0] - movs r0, #1 - strh r0, [r1] - movs r7, #0xf1 - lsls r7, r7, #1 - adds r0, r2, r7 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - bne _08020AD8 - movs r1, #0xe1 - lsls r1, r1, #1 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - bne _08020AD8 - ldr r1, _08020AD0 @ =0x040000D4 - ldr r0, _08020AD4 @ =gUnknown_08395A4C - b _08020ADC - .align 2, 0 -_08020AC4: .4byte 0x00000743 -_08020AC8: .4byte 0x0000061E -_08020ACC: .4byte gMain -_08020AD0: .4byte 0x040000D4 -_08020AD4: .4byte gUnknown_08395A4C -_08020AD8: - ldr r1, _08020AEC @ =0x040000D4 - ldr r0, _08020AF0 @ =gUnknown_08397E6C -_08020ADC: - str r0, [r1] - ldr r0, _08020AF4 @ =0x06015800 - str r0, [r1, #4] - ldr r0, _08020AF8 @ =0x80001200 - str r0, [r1, #8] - ldr r0, [r1, #8] - b _08020D82 - .align 2, 0 -_08020AEC: .4byte 0x040000D4 -_08020AF0: .4byte gUnknown_08397E6C -_08020AF4: .4byte 0x06015800 -_08020AF8: .4byte 0x80001200 -_08020AFC: - ldr r2, _08020B24 @ =gUnknown_086ADEE0 - ldr r6, _08020B28 @ =0x0000020A - adds r4, r3, r6 - movs r0, #0 - ldrsb r0, [r4, r0] - lsls r0, r0, #2 - adds r1, r2, #2 - adds r0, r0, r1 - movs r5, #0x82 - lsls r5, r5, #2 - adds r1, r3, r5 - ldrh r3, [r1] - ldrh r0, [r0] - mov r8, r2 - cmp r0, r3 - bls _08020B2C - adds r0, r3, #1 - strh r0, [r1] - b _08020C1C - .align 2, 0 -_08020B24: .4byte gUnknown_086ADEE0 -_08020B28: .4byte 0x0000020A -_08020B2C: - movs r5, #0 - movs r7, #0 - strh r7, [r1] - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - mov r1, sl - ldr r0, [r1] - ldr r2, _08020BC0 @ =0x0000020A - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x17 - bne _08020B5C - movs r0, #0x7c - bl m4aSongNumStop - ldr r0, _08020BC4 @ =gMPlayInfo_BGM - ldr r1, _08020BC8 @ =0x0000FFFF - movs r2, #0x80 - lsls r2, r2, #1 - bl m4aMPlayVolumeControl -_08020B5C: - mov r3, sl - ldr r0, [r3] - adds r1, r0, r6 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0x19 - ble _08020C1C - movs r0, #0x19 - strb r0, [r1] - mov r4, sl - ldr r0, [r4] - ldr r1, _08020BCC @ =0x0000061C - adds r0, r0, r1 - strb r5, [r0] - ldr r2, _08020BD0 @ =gMain - ldr r0, [r2, #0x44] - adds r0, #0x98 - ldr r0, [r0] - strh r7, [r0] - ldr r0, [r4] - adds r0, #0xe4 - strb r5, [r0] - ldr r4, [r4] - movs r3, #0xe1 - lsls r3, r3, #1 - adds r0, r4, r3 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r7, #0xf1 - lsls r7, r7, #1 - adds r0, r4, r7 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - bne _08020BD8 - lsls r3, r2, #0x10 - asrs r1, r3, #0x10 - ldr r0, _08020BD4 @ =0x00000744 - adds r2, r4, r0 - adds r2, r2, r1 - lsls r0, r1, #3 - adds r0, r0, r1 - strb r0, [r2] - mov r8, r3 - b _08020BE6 - .align 2, 0 -_08020BC0: .4byte 0x0000020A -_08020BC4: .4byte gMPlayInfo_BGM -_08020BC8: .4byte 0x0000FFFF -_08020BCC: .4byte 0x0000061C -_08020BD0: .4byte gMain -_08020BD4: .4byte 0x00000744 -_08020BD8: - lsls r2, r2, #0x10 - asrs r1, r2, #0x10 - ldr r3, _08020C48 @ =0x00000744 - adds r0, r4, r3 - adds r0, r0, r1 - strb r5, [r0] - mov r8, r2 -_08020BE6: - ldr r3, _08020C4C @ =0x040000D4 - ldr r4, _08020C50 @ =gCurrentPinballGame - ldr r0, [r4] - mov r5, r8 - asrs r2, r5, #0x10 - ldr r7, _08020C48 @ =0x00000744 - adds r0, r0, r7 - adds r0, r0, r2 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #7 - ldr r1, _08020C54 @ =gUnknown_084C07EC - adds r0, r0, r1 - str r0, [r3] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #7 - ldr r1, _08020C58 @ =0x06010480 - adds r0, r0, r1 - str r0, [r3, #4] - ldr r0, _08020C5C @ =0x800000C0 - str r0, [r3, #8] - ldr r0, [r3, #8] - mov sl, r4 - ldr r2, _08020C60 @ =gUnknown_086ADEE0 - mov r8, r2 -_08020C1C: - mov r3, sl - ldr r1, [r3] - ldr r4, _08020C64 @ =0x0000020A - adds r0, r1, r4 - ldrb r0, [r0] - subs r0, #0x11 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #6 - bhi _08020C76 - ldr r5, _08020C68 @ =gMain - ldr r0, [r5, #0x4c] - movs r2, #3 - ands r0, r2 - lsrs r0, r0, #1 - cmp r0, #0 - beq _08020C70 - adds r1, #0x4c - ldr r0, _08020C6C @ =0x0000FFFD - strh r0, [r1] - b _08020C76 - .align 2, 0 -_08020C48: .4byte 0x00000744 -_08020C4C: .4byte 0x040000D4 -_08020C50: .4byte gCurrentPinballGame -_08020C54: .4byte gUnknown_084C07EC -_08020C58: .4byte 0x06010480 -_08020C5C: .4byte 0x800000C0 -_08020C60: .4byte gUnknown_086ADEE0 -_08020C64: .4byte 0x0000020A -_08020C68: .4byte gMain -_08020C6C: .4byte 0x0000FFFD -_08020C70: - adds r0, r1, #0 - adds r0, #0x4c - strh r2, [r0] -_08020C76: - mov r7, sl - ldr r3, [r7] - ldr r1, _08020CD8 @ =0x0000020A - adds r0, r3, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #2 - add r0, r8 - ldrh r5, [r0] - movs r2, #0xe1 - lsls r2, r2, #1 - adds r0, r3, r2 - movs r1, #0 - ldrsb r1, [r0, r1] - ldr r4, _08020CDC @ =gMain - ldr r0, [r4, #0x44] - adds r0, #0x98 - ldr r6, [r0] - subs r2, r1, #1 - movs r0, #0xb1 - adds r1, r2, #0 - muls r1, r0, r1 - adds r0, r3, #0 - adds r0, #0x58 - ldrh r0, [r0] - subs r0, #0x10 - subs r1, r1, r0 - strh r1, [r6, #2] - ldr r7, _08020CE0 @ =0x0000061C - adds r0, r3, r7 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _08020CE8 - adds r0, r3, #0 - adds r0, #0x5a - ldrh r1, [r0] - movs r4, #0xbe - lsls r4, r4, #1 - adds r0, r4, #0 - subs r0, r0, r1 - strh r0, [r6, #4] - ldr r7, _08020CE4 @ =0x000001E3 - adds r0, r3, r7 - adds r0, r0, r2 - movs r1, #0 - b _08020CF4 - .align 2, 0 -_08020CD8: .4byte 0x0000020A -_08020CDC: .4byte gMain -_08020CE0: .4byte 0x0000061C -_08020CE4: .4byte 0x000001E3 -_08020CE8: - movs r0, #0xb4 - strh r0, [r6, #4] - ldr r1, _08020E14 @ =0x000001E3 - adds r0, r3, r1 - adds r0, r0, r2 - movs r1, #1 -_08020CF4: - strb r1, [r0] - movs r4, #0 - lsls r1, r5, #0x10 - ldr r2, _08020E18 @ =gOamBuffer - mov sb, r2 - ldr r3, _08020E1C @ =gUnknown_086B4922 - mov r8, r3 - asrs r1, r1, #0x10 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - mov ip, r0 - ldr r5, _08020E20 @ =0xFFFFFE00 - mov sl, r5 -_08020D10: - lsls r3, r4, #0x10 - asrs r3, r3, #0x10 - lsls r0, r3, #3 - adds r0, #8 - adds r5, r6, r0 - ldrh r2, [r5] - lsls r2, r2, #3 - add r2, sb - lsls r1, r3, #1 - adds r1, r1, r3 - lsls r0, r1, #1 - add r0, ip - add r0, r8 - ldrh r0, [r0] - strh r0, [r2] - adds r2, #2 - adds r0, r1, #1 - lsls r0, r0, #1 - add r0, ip - add r0, r8 - ldrh r0, [r0] - strh r0, [r2] - adds r1, #2 - lsls r1, r1, #1 - add r1, ip - add r1, r8 - ldrh r0, [r1] - strh r0, [r2, #2] - ldrh r2, [r5] - lsls r2, r2, #3 - add r2, sb - ldrh r4, [r2, #2] - lsls r1, r4, #0x17 - lsrs r1, r1, #0x17 - movs r7, #2 - ldrsh r0, [r6, r7] - adds r1, r1, r0 - ldr r7, _08020E24 @ =0x000001FF - adds r0, r7, #0 - ands r1, r0 - mov r0, sl - ands r0, r4 - orrs r0, r1 - strh r0, [r2, #2] - ldrh r1, [r5] - lsls r1, r1, #3 - add r1, sb - ldrb r0, [r6, #4] - ldrb r2, [r1] - adds r0, r0, r2 - strb r0, [r1] - adds r3, #1 - lsls r3, r3, #0x10 - lsrs r4, r3, #0x10 - asrs r3, r3, #0x10 - cmp r3, #3 - ble _08020D10 -_08020D82: - ldr r0, _08020E28 @ =gMain - ldr r1, [r0, #0x44] - ldr r6, [r1, #0x74] - ldrh r1, [r6] - cmp r1, #0 - bne _08020D90 - b _08020EA4 -_08020D90: - movs r2, #0 - ldr r3, _08020E2C @ =0x040000D4 - mov sl, r3 -_08020D96: - lsls r2, r2, #0x10 - asrs r5, r2, #0x10 - ldr r4, _08020E28 @ =gMain - ldr r1, [r4, #0x44] - lsls r0, r5, #2 - adds r0, r0, r1 - ldr r6, [r0, #0x74] - movs r0, #0xb1 - adds r1, r5, #0 - muls r1, r0, r1 - ldr r7, _08020E30 @ =gCurrentPinballGame - ldr r4, [r7] - adds r0, r4, #0 - adds r0, #0x58 - ldrh r0, [r0] - subs r0, #0x10 - subs r1, r1, r0 - strh r1, [r6, #2] - ldr r1, _08020E14 @ =0x000001E3 - adds r0, r4, r1 - adds r0, r0, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - mov r8, r2 - cmp r0, #0 - beq _08020E44 - ldr r2, _08020E28 @ =gMain - ldr r0, [r2, #0x50] - movs r1, #5 - bl __umodsi3 - cmp r0, #0 - bne _08020E02 - ldr r3, _08020E34 @ =0x00000744 - adds r0, r4, r3 - adds r0, r0, r5 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #7 - ldr r1, _08020E38 @ =gUnknown_084C07EC - adds r0, r0, r1 - mov r4, sl - str r0, [r4] - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #7 - ldr r5, _08020E3C @ =0x06010480 - adds r0, r0, r5 - str r0, [r4, #4] - ldr r0, _08020E40 @ =0x800000C0 - str r0, [r4, #8] - ldr r0, [r4, #8] -_08020E02: - ldr r7, _08020E30 @ =gCurrentPinballGame - ldr r0, [r7] - adds r0, #0x5a - ldrh r1, [r0] - movs r2, #0xbe - lsls r2, r2, #1 - adds r0, r2, #0 - subs r0, r0, r1 - b _08020E46 - .align 2, 0 -_08020E14: .4byte 0x000001E3 -_08020E18: .4byte gOamBuffer -_08020E1C: .4byte gUnknown_086B4922 -_08020E20: .4byte 0xFFFFFE00 -_08020E24: .4byte 0x000001FF -_08020E28: .4byte gMain -_08020E2C: .4byte 0x040000D4 -_08020E30: .4byte gCurrentPinballGame -_08020E34: .4byte 0x00000744 -_08020E38: .4byte gUnknown_084C07EC -_08020E3C: .4byte 0x06010480 -_08020E40: .4byte 0x800000C0 -_08020E44: - movs r0, #0xc8 -_08020E46: - strh r0, [r6, #4] - movs r4, #0 - ldr r7, _08020EB4 @ =gOamBuffer - ldr r3, _08020EB8 @ =0xFFFFFE00 - mov sb, r3 -_08020E50: - lsls r3, r4, #0x10 - asrs r3, r3, #0x10 - lsls r0, r3, #3 - adds r0, #8 - adds r5, r6, r0 - ldrh r2, [r5] - lsls r2, r2, #3 - adds r2, r2, r7 - movs r4, #2 - ldrsh r1, [r5, r4] - movs r4, #2 - ldrsh r0, [r6, r4] - adds r1, r1, r0 - ldr r4, _08020EBC @ =0x000001FF - adds r0, r4, #0 - ands r1, r0 - ldrh r4, [r2, #2] - mov r0, sb - ands r0, r4 - orrs r0, r1 - strh r0, [r2, #2] - ldrh r1, [r5] - lsls r1, r1, #3 - adds r1, r1, r7 - ldrb r0, [r6, #4] - ldrb r5, [r5, #4] - adds r0, r0, r5 - strb r0, [r1] - adds r3, #1 - lsls r3, r3, #0x10 - lsrs r4, r3, #0x10 - asrs r3, r3, #0x10 - cmp r3, #1 - ble _08020E50 - movs r0, #0x80 - lsls r0, r0, #9 - add r0, r8 - lsrs r2, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - bgt _08020EA4 - b _08020D96 -_08020EA4: - 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 -_08020EB4: .4byte gOamBuffer -_08020EB8: .4byte 0xFFFFFE00 -_08020EBC: .4byte 0x000001FF diff --git a/expected_objs/sub_203CC.o b/expected_objs/sub_203CC.o deleted file mode 100644 index 6b15c2dd6c17a5d1bc3d3dde5ee87d860531034e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9580 zcma)?dwd+#b;s|lcjeW~S;>-_k%d{wlD+bC_1s-d%09=VmnCdr%Yj;wA9x%jYh%kG zQ(6WG=t9Y-CLxV!$)`^GAR$c)EurvJPn1w^UvimTt+p>NSs zdhWSvAAEeRW=p4ev7uX-s%W%!Jr&q^!Pi%1h>4R8B=y+eQ6V%XQ_*`_Rnl$ddrfo=SNc{xV7|BdKJk)PI$c^)x@>FR zjB2Uw^q{VoZ@|vWYE4G06WOJ6)9b|S`P>|QHVQs_Rcbj?AWTH|Z0_Q!yF^A4D`ybd zsSBc6S^1;8cj#erV|P?tl#ZBJ(BftIZRs_ZD|AM4Th*DCKCkAoS_aN)<>^~=uX(KT z^WuKB(rWIVQIonmy+gmzd=E1=h`8tHpkem7=CR_NW>t^%mOVQj>rGgmMeUNvAZnMi zXVqnf*Q)67X%^ZlmM=7`Db_2kBrUO94(Sc%>E?Guk5)NwMiZv>Y2RqMab{1sQL1{U zcL(auDM4@gx*Wx=zC?%>_>KPHOa|M0r6S^-)Gc})R{;S

M5S^(9eS=W4A=*XHu;_BCuL^2Bm0B{Rrq?w$4OQ=8BO`D3pX zjP_yGn^D4EYny((xuP$?R)uzP`M`_1p>I$_nHTh!uC$1AZ{)6^&0nehjBuCPyF$1< z71Jw%7HR@zvr5=+q4$bFz?}_d0s-axO@6;s)~lJ`zB0|1nF{FHORe5%5h$OXM(l6S z36VgooOy!VLh*akn!UO)yM>k0n5CJ?I3o{uvo6DB&)VV~n%K#0cZ)$?_N3!&I10H~`H#D{3bFd?NOj#+e-tfS zGgmO1Z>!;qw{9>&J*-y^-Sc2;=Elq;b;oHv*uBT}GPAn(lG=cni<;89TOLee2Lzgp zkr~C<(_pSyeFmk>p8IlzKol|>FC|+4wC4R=^4tiH>PldLHqrfQb*UNep2J>rW?spA z+Z-K<3b9Hws}EM0n+yZr0lOb#PnEf5<(Xa7qtEm_RAqJ;#zXh|$^RXC#O%>C*r~7F zjk5#iKuP*Wvj*pef4dTniBk2Arc0t4J13>rrZ<^^f!A%B2&~Ay(QsA_t4%#msIF=6 zv@g1{e<#j1Z&bPYyq$|c#cWjf+b7NSJ(l`=Si{?N&HR;LDA@aU|EjUbRQoioG;>Vf z({k5&I;n@{8d{Z|!&!5#z)E;Y_ovkP-P4$(7*YBz&WYDP&Yu}ISesR}m+`5^hZ4n; z_BYM(iNYMKYBfen`)WvUG=2TpZ<)OTF?;vi5+gc(BB+>H)fSz*v(lfM?A(IWu_Ej4 zb{pk6+7HwRC1)?YyFG??)MFUZ9th=5LCf zT6sofj_W7li_Z_&d#!tOwpsfu6wPAwCoKQ863j={kErJN+jZDq`5CP@uE#FeYOlj> zx@z7J``+zZVEBTDT{@)u&1E>fJn7n=L5xzEi!Hx-Dd9G%gWXzkLOK*>2v>w0te{qxu-sn+K=Q~H{kTAXI{CuuD^NtdGR zoTOjXt9p*>v|4=l%@Wg9VVs{!N&=1ND*G>wFKYBfqh1kEXZu>q@Y{1;Zs9pfJ~(G7 zl^q{{4IjPreLK;v;M03SVFBI4vLH~ zTw3=Tt9-y&k0MYrtJZ%isARs2-RQ56);(i+AjOc?%JA_ePiQa!#Su=KI?Bm6dDF@GW{$P z%eqI^Xkm36*F|8{?6Mx;ME;7Ms2&A#URX433p^^KY$s?8`>_&psR^%*BePnzWe zVbhKxR;>?FRPE;gnm0RreC^sb#E+7*w`hG)a_0C9Vk?^J2I_jBD2m^!nyaa0#MKl; zJZk#WU^^6{1E7h}Wmz4xc)qe?@;kKoReP`t+@t43ejK2at#rPZGS;o}=Uo(byLHlo^qJz!H zKY+uG&w_7a{1b4L@da>_@!Md7@q6H1jLDxi#t<*i|6f#GW^xaF|0Uy3fR8cOz|WV$ zh@BL%5`2}(*Mt9vaR_`n-n|_C82Du-?*+fl_*U>8?s@$Y@P|xJ<9UlQjfcw*K!1p} zKMW2s{#|f@@$ZAzF@6jjW=#EY{Xc;`$>h{OxBnNA8%+K;;6BDLf(IFseQxi2kaw_n zk$pa%e}X*B>{4V%qrcd{pdzl@IUu8`8-(qY}OW|vg@Q6w1 zQ=gQoQ925Ck`IN?7V+nb_)A6njUxU|5r40UUn$}XMSP`*6?t}GUBkb!BCapuwjy@k zRcVaWep``zM-d+=;-f`;tcV{k;=e577mE0YMf_?Ji>4_t5)231f*oxMr_>=!?Lnum zy+fA5PN`#FDqBPn0@ou2lO0kuBAbWjOY>4`C@c*nq%?0+mZL&q%e4Vr`1Kic_wCxJX zQdqW?5$clB=n6|K2yi~SAvxYq(CIA{bo4?p1|d0)kQ_&-&51@RF5AXs+m2MBk7QWJ zFE0D-a_S;&vPGoJ@hahrBi!!jg%VC5VHu&2F74@#G^9KB!g54m>3vvwAC|Kama`C% z(TK>l5gCn$j7CJ-i_F{Wbi9v9%aM7@(&vbr)rjsyC?@AJCbvVZ!x>Rb?tqxwRIyGc zLJ>LMSf^~!>BJz`=|m{j<+O-(Nj(|ASl7IsY%Aw2CSxCyJ1Q1&W+o0T&|b69B*9u9G5=FrKfS}UtIbem!8H` z&RiyB>=QEf2^sr@jCevuJRv+!OU0b^l9I7c%DtMBXI)CJ*i_J28!36@ zr{w9FlB+!>S9_|%iAzeJB`JB9q-4ZXI6)2{**(%0Y{y*YODUTDks}k6dk-IIr_$a7 zcTs77;>e*x`wmVG9yqvrY_ zb!c*&o9K!K+p!c_ukp?OVjFxa@)dttgRyOs2lsC|GLd(c#^2f+U*J-Eq?3*b*0?!0)Y#;%_U@lZkU(Sjb`*HS&*lal^8?j*|25wq?rW$W-Rrn6;69~L|67#*YyQ54e@ zLGPhL{wU>hLi{b|=k#B^Un_UK-Q`lI_87wpl!3;9L&C9XGcFNnPCV*dXf zlwHc-b5K3qFOVL+w^JPGecbhC{yp0DR{nk1^)}w~P+xW#?{Ac29Q0o5LO=ArN$u#p zkL=L<9>s^=b87aPW=rVbt0ePn9iVHo)T zCHfNxJ<~gn&K)Sf4%$r7M#Gy=U+T7EGJS;zRz?GdzvK=@Uiqp(ey7 VQYs|JUKN<@onARVc2afp{ty2h$ejQH diff --git a/expected_objs/sub_2DE54.o b/expected_objs/sub_2DE54.o deleted file mode 100644 index bbcb3d0ff48c24fd4d514d065a84c53172a5caf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2496 zcma)-Urbw79LIm>QrK-lQy454Xrv%6HS5ZybWjpCm-hD3KcIEP1&sl2UEvZ-X-bKZ z%y^x|-6bSjB3W2;QRBnZH)BkexENxx2#dyT@nM>gVBD*TZ+ioOr|r3%^+iu}`ul#) z@Ao_Z?mg$e7aP+EA;1a&9~=_Eq*(UUhswqWP7tAMOlk**qgC;bJ|uqOo+p0rc>lmN z?z{Y{*LTtD0YCh)=P}*xZfD1rm%qB`^&h?07AMAyXFrBJ(z@4e9!-Ah-2$iNwBn#h zTVP6HK{xG1@x$F;_FTzkqcL?y0*rNyIorj8k=u}oLA;{*!`|lp!2z2uvyKLUI;>WA zf}|zrbrhUQXR6(B#v8F0>8wJ>=rN}nl9wcxbtU53O?yPMZ;$2ET-ryIDXkD$Dx^}9 zkxIUgx#C%uuX8t%n#37^;V@lZv7q8=nm*Wmm&n`8YC=i6jc9615@(|EI96-MGTg=^ z8M;Yfc&x`5PT-7IpaG77qpoRaYzBKeVz@n%GO=d7O2>-%MzGns+H)G*9;M@^2@Yue z$wzj#y{L~%j=t12t#9lzjkMC;x(z4e7qkIKXX^tH<(DMc+Jb}@kzR)#3H|Mg3YOax zf^m;>Nc{;&w2!Ewl{SOceMqVk)}Qq|PpxZ0_sSIU=xTd>O`Fk(lGeP67)_h~)(#}p z@TzOYl*9rV=yW{O)Y)2h;>TSJpW<~jd}~wtT>D!4=N7pIqm^Bxdq~S~xRo8vC@paVrjH-pe4O9;p;{JSt`XR^P zqxN(2qvP}a)A9NE+sLf~{*?=XU(re&|Bme8_%CEH$A2UDa{L(C$1%OG{2VtT=eYT` zp_Vy+7jlT>=aIu44Qx5lcVnHZ;e{GL zU&9w__-YM*QN!QW@Kz1Ov>cX$YD^75Z;62>Gc`EElp3~Gl&K-x8?iHDhbqM4B7+qb zlTQU%Tg>h+7KPq()n+Zo(zPH<*Mclm3$mfL0Xr^SRWW(68i%SH7n6r^RnoszvRLu$>XMGs5-^*oMU9VHuW|Gt;<>r$Vq0(#O*|ef3Ofu>e#=i>uQwFBTW{ z9L$wHiTv#1bYyfKQJ>GlTy(iu%;rn!`FuvtWxn5@b$_lmv{S)QHE7N2lNLb1UhzEdq&U3f7~QhTy;UkQQAJtg#2?jJ#}+&e;l z<-7`*NbdpKPR}Q`^c>Q7dR~Nq$~h527!+7qT`1`pw54Lj8cY?lxj-qqQi8xay`)1R zv$O;Oyu$-}sZ^ZLESIuN*unoR^ix1z*M@319a^!^8h%Ks?VV_y)K}%3M*wC}(>$6_ z<3y~_RhfMiN?c#)D#ucL0xOOGuQ=Qy8dE@1F0?;yRa3)`8nygT8whDk#A%ktqVscO frE6egqJ&5F0QXrZ$V}4DCm$!_WEE^unk1C6 > 167) + { + gCurrentPinballGame->unk744[0] = gUnknown_086ADF48[(gMain.fieldFrameCount % 160) / 5]; + if (gCurrentPinballGame->outLanePikaPosition == 2) + gCurrentPinballGame->unk744[1] = gCurrentPinballGame->unk744[0] + 6; + else + gCurrentPinballGame->unk744[1] = gCurrentPinballGame->unk744[0]; + } + else + { + gCurrentPinballGame->unk744[0] = (gMain.fieldFrameCount % 50) / 25; + if (gCurrentPinballGame->outLanePikaPosition == 2) + gCurrentPinballGame->unk744[1] = gCurrentPinballGame->unk744[0] + 9; + else + gCurrentPinballGame->unk744[1] = gCurrentPinballGame->unk744[0]; + } + + if (gCurrentPinballGame->outLanePikaPosition == 2) + { + gCurrentPinballGame->unk1E3[0] = 1; + gCurrentPinballGame->unk1E3[1] = 1; + } + else + { + gCurrentPinballGame->unk1E3[0 + gCurrentPinballGame->outLanePikaPosition] = 1; + gCurrentPinballGame->unk1E3[1 - gCurrentPinballGame->outLanePikaPosition] = 0; + } + + if (gCurrentPinballGame->unk1C4 != 0) + { + if (gCurrentPinballGame->unk1C4 == 120) + { + // gCurrentPinballGame->unk1C2 + gCurrentPinballGame->unk1E2 + // Note: this can be && chained off of the previous if, once we have this line deciphered. + if (gCurrentPinballGame->unk1E3[gCurrentPinballGame->unk1C2 - 1] != 0) + { + if (gCurrentPinballGame->unk1C6 > 167) + { + gCurrentPinballGame->unk1F = 1; + gCurrentPinballGame->unk61C = 1; + gCurrentPinballGame->unk1DE = 120; + gCurrentPinballGame->unk1E0 = 120; + gCurrentPinballGame->unk61E = gCurrentPinballGame->unk1DE; + gCurrentPinballGame->unk5F7 = 1; + gCurrentPinballGame->unk208 = 0; + gCurrentPinballGame->unk20A = 0; + + if (gCurrentPinballGame->outLanePikaPosition != 2) + { + gCurrentPinballGame->unk1C6 = 0; + gCurrentPinballGame->unk1C8 = 0; + gCurrentPinballGame->unk1CC = 0; + gCurrentPinballGame->unk1CA = 0; + gCurrentPinballGame->unk1D4 = 0; + gCurrentPinballGame->unk1D6 = -4; + gCurrentPinballGame->unk1D8 = 256; + gCurrentPinballGame->unk1DA = 256; + gCurrentPinballGame->unk1CE = 0; + gCurrentPinballGame->unk1D0 = 0; + } + + gCurrentPinballGame->unk620 = gCurrentPinballGame->ball->positionQ1; + gCurrentPinballGame->unk3C = 30000; + + if (gCurrentPinballGame->unk62E <= 98) + gCurrentPinballGame->unk62E++; + } + else + { + gCurrentPinballGame->unk1C4 = 60; + MPlayStart(&gMPlayInfo_SE1, &gUnknown_086A2FA0); + } + + i = gCurrentPinballGame->unk1C2 - 1; + + if (gCurrentPinballGame->outLanePikaPosition == 2) + gCurrentPinballGame->unk744[i] = (i) * 7 + 2; + else + gCurrentPinballGame->unk744[i] = 2; + + DmaCopy16(3, gUnknown_084C07EC + (gCurrentPinballGame->unk744[i] * 0x180), 0x06010480 + ((i) * 0x180), 0x180); + } + } + + if (gCurrentPinballGame->outLanePikaPosition == 2) + gCurrentPinballGame->unk744[gCurrentPinballGame->unk1C2 - 1] = (gCurrentPinballGame->unk1C2 - 1) * 7 + 2; + else + gCurrentPinballGame->unk744[gCurrentPinballGame->unk1C2 - 1] = 2; + + gCurrentPinballGame->unk1C4--; + } + + if (gCurrentPinballGame->unk61C != 0) + { + if (gCurrentPinballGame->unk61E > 1) + { + r5 = (gCurrentPinballGame->unk1DE * 0x10000) / 10; + gCurrentPinballGame->unk61E--; + if (gCurrentPinballGame->unk1DE != 0) + { + gCurrentPinballGame->unk1DE--; + if (gCurrentPinballGame->unk1DE == 40 && gCurrentPinballGame->unk61E > 40) + { + gCurrentPinballGame->unk1DE = 60; + } + } + if (gCurrentPinballGame->unk61E == 116) + { + if (gCurrentPinballGame->unkE4) + gCurrentPinballGame->unk61E = 120; + else + { + gCurrentPinballGame->unkE4 = 1; + if (gCurrentPinballGame->outLanePikaPosition == 2) + { + if (gCurrentPinballGame->unk1C2 == 1) + MPlayStart(&gMPlayInfo_SE1, &gUnknown_086A0328); + else + MPlayStart(&gMPlayInfo_SE1, &gUnknown_086A0368); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x40); + } + else + { + MPlayStart(&gMPlayInfo_SE1, &gUnknown_086A0328); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x40); + } + } + } + if (gCurrentPinballGame->unk61E == 115 && gCurrentPinballGame->unkE4 == 1) + m4aMPlayVolumeControl(&gMPlayInfo_SE1, 0xFFFF, 0x200); + + gCurrentPinballGame->ball->positionQ1.x = + gCurrentPinballGame->unk620.x + ((Sin(r5) * 6) / 20000) + + ((gUnknown_086ADF8A[gCurrentPinballGame->unk1C2 - 1] * 2 - gCurrentPinballGame->unk620.x) * (gCurrentPinballGame->unk1E0 - gCurrentPinballGame->unk1DE)) / gCurrentPinballGame->unk1E0; + + tempY = ((gCurrentPinballGame->unk1E0 - gCurrentPinballGame->unk1DE) * 40) / gCurrentPinballGame->unk1E0; + gCurrentPinballGame->ball->positionQ1.y = gCurrentPinballGame->unk620.y - tempY; + + gCurrentPinballGame->ball->positionQ8.x = gCurrentPinballGame->ball->positionQ1.x * 128; + gCurrentPinballGame->ball->positionQ8.y = gCurrentPinballGame->ball->positionQ1.y * 128; + } + else if (gCurrentPinballGame->unk61E == 1) + { + gCurrentPinballGame->ball->positionQ1.x = gUnknown_086ADF8A[gCurrentPinballGame->unk1C2 - 1] * 2; + gCurrentPinballGame->ball->positionQ1.y = 702; + gCurrentPinballGame->ball->positionQ8.x = gCurrentPinballGame->ball->positionQ1.x * 128; + gCurrentPinballGame->ball->positionQ8.y = gCurrentPinballGame->ball->positionQ1.y * 128; + gCurrentPinballGame->ball->velocity.x = 0; + // fly me to the moon + gCurrentPinballGame->ball->velocity.y = -300; + m4aSongNumStart(SE_UNKNOWN_0x7C); + gCurrentPinballGame->unk61E = 0; + gCurrentPinballGame->unk1F = 0; + gCurrentPinballGame->unk5F7 = 0; + gCurrentPinballGame->holeIndicators[(gCurrentPinballGame->unk1C2 - 1) * 3] = 1; + + if (gCurrentPinballGame->unk714 == 0 && + (gCurrentPinballGame->holeIndicators[0] & + gCurrentPinballGame->holeIndicators[1] & + gCurrentPinballGame->holeIndicators[2] & + gCurrentPinballGame->holeIndicators[3])) + { + gCurrentPinballGame->unk714 = 1; + gCurrentPinballGame->unk715 = 126; + gCurrentPinballGame->unk3C = 4000; + } + + sub_11B0(11); + } + + if (gCurrentPinballGame->unk61E >= 100) + { + if (gCurrentPinballGame->outLanePikaPosition == 2) + gCurrentPinballGame->unk744[gCurrentPinballGame->unk1C2 - 1] = (gCurrentPinballGame->unk1C2 - 1) * 7 + 2; + else + gCurrentPinballGame->unk744[gCurrentPinballGame->unk1C2 - 1] = 2; + + if (gCurrentPinballGame->unk61E == 100) + { + gMain.unk44[38]->available = 1; + + if (gCurrentPinballGame->outLanePikaPosition == 2 && gCurrentPinballGame->unk1C2 == 2) + { + DmaCopy16(3, gUnknown_08395A4C, 0x06015800, 0x2400); + } + else + { + DmaCopy16(3, gUnknown_08397E6C, 0x06015800, 0x2400); + } + } + } + else + { + if (gUnknown_086ADEE0[gCurrentPinballGame->unk20A][1] > gCurrentPinballGame->unk208) + gCurrentPinballGame->unk208++; + else + { + gCurrentPinballGame->unk208 = 0; + gCurrentPinballGame->unk20A++; + + if (gCurrentPinballGame->unk20A == 23) + { + m4aSongNumStop(SE_UNKNOWN_0x7C); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); + } + + if (gCurrentPinballGame->unk20A > 25) + { + gCurrentPinballGame->unk20A = 25; + gCurrentPinballGame->unk61C = 0; + gMain.unk44[38]->available = 0; + gCurrentPinballGame->unkE4 = 0; + + i = gCurrentPinballGame->unk1C2 - 1; + if (gCurrentPinballGame->outLanePikaPosition == 2) + gCurrentPinballGame->unk744[i] = i * 9; + else + gCurrentPinballGame->unk744[i] = 0; + + DmaCopy16(3, gUnknown_084C07EC + (gCurrentPinballGame->unk744[i] * 0x180), 0x06010480 + (i * 0x180), 0x180); + } + } + + if (gCurrentPinballGame->unk20A >= 17 && gCurrentPinballGame->unk20A <= 23) + { + if ((gMain.systemFrameCount & 3) >> 1) + gCurrentPinballGame->unk4C = -3; + else + gCurrentPinballGame->unk4C = 3; + } + + r5 = gUnknown_086ADEE0[gCurrentPinballGame->unk20A][0]; + i = gCurrentPinballGame->unk1C2 - 1; + + spriteGroup = gMain.unk44[38]; + spriteGroup->baseX = (i * 177) - (gCurrentPinballGame->unk58 - 16); + if (gCurrentPinballGame->unk61C) + { + spriteGroup->baseY = 380 - gCurrentPinballGame->unk5A; + gCurrentPinballGame->unk1E3[i] = 0; + } + else + { + spriteGroup->baseY = 180; + gCurrentPinballGame->unk1E3[i] = 1; + } + + for (j = 0; j < 4; j++) + { + oamSimple = &spriteGroup->oam[j]; + dst = (u16 *)&gOamBuffer[oamSimple->oamId]; + *dst++ = gUnknown_086B4922[r5][j * 3 + 0]; + *dst++ = gUnknown_086B4922[r5][j * 3 + 1]; + *dst++ = gUnknown_086B4922[r5][j * 3 + 2]; + + gOamBuffer[oamSimple->oamId].x += spriteGroup->baseX; + gOamBuffer[oamSimple->oamId].y += spriteGroup->baseY; + } + } + } + spriteGroup = gMain.unk44[29]; + + if (spriteGroup->available) + { + for (i = 0; i <= 1; i++) + { + spriteGroup = gMain.unk44[29 + i]; + spriteGroup->baseX = (i * 177) - (gCurrentPinballGame->unk58 - 16); + if (gCurrentPinballGame->unk1E3[i]) + { + if ((gMain.fieldFrameCount % 5) == 0) + { + DmaCopy16(3, gUnknown_084C07EC + (gCurrentPinballGame->unk744[i] * 0x180), 0x06010480 + (i * 0x180), 0x180); + } + + tempY = 380 - gCurrentPinballGame->unk5A; + spriteGroup->baseY = tempY; + } + else + spriteGroup->baseY = 200; + + for (j = 0; j <= 1; j++) + { + oamSimple = &spriteGroup->oam[j]; + + gOamBuffer[oamSimple->oamId].x = oamSimple->xOffset + spriteGroup->baseX; + gOamBuffer[oamSimple->oamId].y = oamSimple->yOffset + spriteGroup->baseY; + } + } + } +}