diff --git a/asm/rom_3219C.s b/asm/rom_3219C.s index 2e74d17..823243d 100644 --- a/asm/rom_3219C.s +++ b/asm/rom_3219C.s @@ -27935,531 +27935,3 @@ _08045154: .4byte 0x00000591 _08045158: .4byte gMain _0804515C: .4byte 0x0000132C _08045160: .4byte 0x0000FFA0 - - thumb_func_start sub_45164 -sub_45164: @ 0x08045164 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r6, _080452A0 @ =gMain+0x1158 @gMain.spriteGroups[20] - ldrh r0, [r6] - cmp r0, #0 - beq _08045234 - ldr r0, _080452A4 @ =gCurrentPinballGame - ldr r4, [r0] - movs r1, #0xc8 - lsls r1, r1, #2 - adds r0, r4, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - movs r1, #0xa - bl __divsi3 - adds r4, #0x58 - ldrh r1, [r4] - subs r1, #0x92 - subs r0, r0, r1 - strh r0, [r6, #2] - ldr r3, _080452A4 @ =gCurrentPinballGame - ldr r4, [r3] - ldr r1, _080452A8 @ =0x00000322 - adds r0, r4, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - movs r1, #0xa - bl __divsi3 - adds r5, r0, #0 - adds r0, r4, #0 - adds r0, #0x5a - ldrh r0, [r0] - subs r0, #0x6e - subs r5, r5, r0 - ldr r3, _080452AC @ =0x0000030E - adds r4, r4, r3 - movs r1, #0 - ldrsh r0, [r4, r1] - movs r1, #0xa - bl __divsi3 - adds r5, r5, r0 - strh r5, [r6, #4] - ldr r2, _080452A4 @ =gCurrentPinballGame - ldr r0, [r2] - ldr r3, _080452B0 @ =0x00000591 - adds r0, r0, r3 - ldr r2, _080452B4 @ =0x040000D4 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #7 - ldr r1, _080452B8 @ =gUnknown_084BB16C - adds r0, r0, r1 - str r0, [r2] - ldr r0, _080452BC @ =0x060125A0 - str r0, [r2, #4] - ldr r0, _080452C0 @ =0x80000240 - str r0, [r2, #8] - ldr r0, [r2, #8] - movs r0, #0 - ldr r7, _080452C4 @ =gOamBuffer - ldr r1, _080452C8 @ =0xFFFFFE00 - mov r8, r1 -_080451F0: - lsls r5, r0, #0x10 - asrs r5, r5, #0x10 - lsls r3, r5, #3 - adds r3, #8 - adds r3, r6, r3 - ldrh r4, [r3] - lsls r4, r4, #3 - adds r4, r4, r7 - movs r2, #2 - ldrsh r1, [r3, r2] - movs r2, #2 - ldrsh r0, [r6, r2] - adds r1, r1, r0 - ldr r2, _080452CC @ =0x000001FF - adds r0, r2, #0 - ands r1, r0 - ldrh r2, [r4, #2] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, #2] - ldrh r1, [r3] - lsls r1, r1, #3 - adds r1, r1, r7 - ldrb r0, [r6, #4] - ldrb r3, [r3, #4] - adds r0, r0, r3 - strb r0, [r1] - adds r5, #1 - lsls r5, r5, #0x10 - lsrs r0, r5, #0x10 - asrs r5, r5, #0x10 - cmp r5, #3 - ble _080451F0 -_08045234: - ldr r3, _080452A4 @ =gCurrentPinballGame - ldr r4, [r3] - ldr r1, _080452D0 @ =0x00000592 - adds r0, r4, r1 - ldrh r0, [r0] - cmp r0, #0xfa - bhi _080452F0 - cmp r0, #0xfa - beq _08045248 - b _08045594 -_08045248: - movs r2, #0xc8 - lsls r2, r2, #2 - adds r1, r4, r2 - movs r2, #0 - movs r0, #0xe6 - lsls r0, r0, #2 - strh r0, [r1] - ldr r3, _080452A8 @ =0x00000322 - adds r1, r4, r3 - ldr r0, _080452D4 @ =0x0000FF9C - strh r0, [r1] - movs r0, #0xc7 - lsls r0, r0, #2 - adds r1, r4, r0 - ldr r0, _080452D8 @ =0x0000FFAE - strh r0, [r1] - ldr r1, _080452DC @ =0x0000031E - adds r0, r4, r1 - strh r2, [r0] - subs r3, #0x16 - adds r0, r4, r3 - strh r2, [r0] - ldr r0, _080452E0 @ =0x00000306 - adds r1, r4, r0 - movs r0, #8 - strb r0, [r1] - ldr r1, _080452A4 @ =gCurrentPinballGame - ldr r0, [r1] - ldr r2, _080452B0 @ =0x00000591 - adds r0, r0, r2 - movs r1, #0xd - strb r1, [r0] - ldr r0, _080452E4 @ =gMain - ldr r3, _080452E8 @ =0x00001158 - adds r0, r0, r3 - movs r2, #1 - movs r1, #1 - strh r1, [r0] - ldr r1, _080452A4 @ =gCurrentPinballGame - ldr r0, [r1] - ldr r3, _080452EC @ =0x000005FA - adds r0, r0, r3 - strb r2, [r0] - b _08045594 - .align 2, 0 -_080452A0: .4byte gMain+0x1158 @gMain.spriteGroups[20] -_080452A4: .4byte gCurrentPinballGame -_080452A8: .4byte 0x00000322 -_080452AC: .4byte 0x0000030E -_080452B0: .4byte 0x00000591 -_080452B4: .4byte 0x040000D4 -_080452B8: .4byte gUnknown_084BB16C -_080452BC: .4byte 0x060125A0 -_080452C0: .4byte 0x80000240 -_080452C4: .4byte gOamBuffer -_080452C8: .4byte 0xFFFFFE00 -_080452CC: .4byte 0x000001FF -_080452D0: .4byte 0x00000592 -_080452D4: .4byte 0x0000FF9C -_080452D8: .4byte 0x0000FFAE -_080452DC: .4byte 0x0000031E -_080452E0: .4byte 0x00000306 -_080452E4: .4byte gMain -_080452E8: .4byte 0x00001158 -_080452EC: .4byte 0x000005FA -_080452F0: - movs r5, #0xc3 - lsls r5, r5, #2 - adds r0, r4, r5 - ldrh r0, [r0] - movs r1, #0x18 - bl __umodsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #6 - bl __udivsi3 - adds r0, #0xd - ldr r2, _0804537C @ =0x00000591 - adds r1, r4, r2 - strb r0, [r1] - ldr r3, _08045380 @ =gCurrentPinballGame - ldr r0, [r3] - adds r0, r0, r5 - ldrh r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x10 - bl Sin - adds r1, r0, #0 - ldr r0, _08045380 @ =gCurrentPinballGame - ldr r4, [r0] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #4 - ldr r1, _08045384 @ =0x00004E20 - bl __divsi3 - ldr r2, _08045388 @ =0x0000030E - adds r1, r4, r2 - strh r0, [r1] - adds r4, r4, r5 - ldrh r0, [r4] - cmp r0, #0 - bne _0804534A - movs r0, SE_UNKNOWN_0xE4 - bl m4aSongNumStart -_0804534A: - ldr r3, _08045380 @ =gCurrentPinballGame - ldr r4, [r3] - adds r0, r4, r5 - ldrh r0, [r0] - cmp r0, #0x27 - bhi _08045390 - movs r0, #0xc8 - lsls r0, r0, #2 - adds r1, r4, r0 - movs r2, #0xc7 - lsls r2, r2, #2 - adds r0, r4, r2 - ldrh r0, [r0] - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - ldr r0, _0804538C @ =0x00000322 - adds r1, r4, r0 - adds r2, #2 - adds r0, r4, r2 - ldrh r0, [r0] - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - b _0804539A - .align 2, 0 -_0804537C: .4byte 0x00000591 -_08045380: .4byte gCurrentPinballGame -_08045384: .4byte 0x00004E20 -_08045388: .4byte 0x0000030E -_0804538C: .4byte 0x00000322 -_08045390: - ldr r0, _0804547C @ =gMain - ldr r1, _08045480 @ =0x00001158 - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] -_0804539A: - ldr r0, _08045484 @ =gCurrentPinballGame - ldr r2, [r0] - movs r6, #0xc3 - lsls r6, r6, #2 - adds r1, r2, r6 - ldrh r1, [r1] - cmp r1, #0xd - bne _08045416 - ldr r5, _08045488 @ =0x0000132C - adds r0, r2, r5 - ldr r1, [r0] - movs r0, #0 - strb r0, [r1] - ldr r2, _08045484 @ =gCurrentPinballGame - ldr r4, [r2] - movs r3, #0xc5 - lsls r3, r3, #2 - adds r1, r4, r3 - ldr r0, _0804548C @ =0x0000FFF6 - strh r0, [r1] - ldr r0, _08045490 @ =0x00000316 - adds r1, r4, r0 - ldr r0, _08045494 @ =0x0000FFE7 - strh r0, [r1] - movs r1, #0xc8 - lsls r1, r1, #2 - adds r0, r4, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - movs r1, #0xa - bl __divsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r0, #0x9d - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #1 - movs r3, #0xc6 - lsls r3, r3, #2 - adds r0, r4, r3 - strh r1, [r0] - ldr r1, _08045498 @ =0x00000322 - adds r0, r4, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - movs r1, #0xa - bl __divsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r0, #0x86 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #1 - ldr r3, _0804549C @ =0x0000031A - adds r0, r4, r3 - strh r1, [r0] - adds r4, r4, r5 - ldr r1, [r4] - movs r0, #1 - strb r0, [r1, #1] -_08045416: - ldr r0, _08045484 @ =gCurrentPinballGame - ldr r7, [r0] - ldrb r0, [r7, #0x1f] - cmp r0, #0 - bne _08045422 - b _08045584 -_08045422: - adds r0, r7, r6 - ldrh r0, [r0] - cmp r0, #0xc - bhi _080454A0 - ldr r1, _08045488 @ =0x0000132C - adds r4, r7, r1 - ldr r5, [r4] - movs r2, #0xc8 - lsls r2, r2, #2 - adds r0, r7, r2 - movs r3, #0 - ldrsh r0, [r0, r3] - movs r1, #0xa - bl __divsi3 - adds r0, #0x9d - strh r0, [r5, #0x10] - ldr r5, [r4] - ldr r1, _08045498 @ =0x00000322 - adds r0, r7, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - movs r1, #0xa - bl __divsi3 - adds r0, #0x86 - strh r0, [r5, #0x12] - ldr r1, [r4] - movs r3, #0x10 - ldrsh r0, [r1, r3] - lsls r0, r0, #1 - strh r0, [r1, #0x28] - ldr r1, [r4] - movs r2, #0x12 - ldrsh r0, [r1, r2] - lsls r0, r0, #1 - strh r0, [r1, #0x2a] - ldr r1, [r4] - movs r3, #0x10 - ldrsh r0, [r1, r3] - lsls r0, r0, #8 - str r0, [r1, #0x34] - ldr r1, [r4] - b _0804557C - .align 2, 0 -_0804547C: .4byte gMain -_08045480: .4byte 0x00001158 -_08045484: .4byte gCurrentPinballGame -_08045488: .4byte 0x0000132C -_0804548C: .4byte 0x0000FFF6 -_08045490: .4byte 0x00000316 -_08045494: .4byte 0x0000FFE7 -_08045498: .4byte 0x00000322 -_0804549C: .4byte 0x0000031A -_080454A0: - ldr r3, _080455B0 @ =0x00000316 - adds r1, r7, r3 - ldrh r0, [r1] - adds r0, #2 - movs r2, #0 - mov r8, r2 - movs r3, #0 - mov sl, r3 - strh r0, [r1] - movs r0, #0xc6 - lsls r0, r0, #2 - adds r2, r7, r0 - movs r3, #0xc5 - lsls r3, r3, #2 - adds r0, r7, r3 - ldrh r0, [r0] - ldrh r3, [r2] - adds r0, r0, r3 - strh r0, [r2] - ldr r0, _080455B4 @ =0x0000031A - adds r4, r7, r0 - ldrh r0, [r1] - ldrh r1, [r4] - adds r0, r0, r1 - strh r0, [r4] - ldr r3, _080455B8 @ =0x0000132C - mov sb, r3 - adds r5, r7, r3 - ldr r6, [r5] - movs r1, #0 - ldrsh r0, [r2, r1] - movs r1, #0xa - bl __divsi3 - strh r0, [r6, #0x10] - ldr r6, [r5] - movs r2, #0 - ldrsh r0, [r4, r2] - movs r1, #0xa - bl __divsi3 - strh r0, [r6, #0x12] - ldr r5, [r5] - movs r3, #0x12 - ldrsh r0, [r5, r3] - cmp r0, #0xb4 - ble _08045556 - movs r0, #0xb5 - strh r0, [r5, #0x12] - ldr r1, _080455BC @ =0x000005F7 - adds r0, r7, r1 - mov r2, r8 - strb r2, [r0] - ldr r3, _080455C0 @ =gCurrentPinballGame - ldr r0, [r3] - strb r2, [r0, #0x1f] - ldr r1, [r3] - ldr r0, _080455B8 @ =0x0000132C - adds r3, r1, r0 - ldr r2, [r3] - ldr r0, _080455C4 @ =0x0000FFF6 - strh r0, [r2, #0x30] - ldr r0, [r3] - mov r2, sl - strh r2, [r0, #0x32] - ldr r3, _080455C8 @ =0x000005FA - adds r1, r1, r3 - mov r0, r8 - strb r0, [r1] - ldr r1, _080455C0 @ =gCurrentPinballGame - ldr r0, [r1] - ldr r2, _080455B8 @ =0x0000132C - adds r0, r0, r2 - ldr r1, [r0] - movs r0, #3 - strb r0, [r1, #1] - ldr r3, _080455C0 @ =gCurrentPinballGame - ldr r0, [r3] - adds r0, #0x24 - mov r1, r8 - strb r1, [r0] - ldr r0, [r3] - adds r0, #0x7e - mov r2, sl - strh r2, [r0] - movs r0, SE_UNKNOWN_0xE5 - bl m4aSongNumStart - movs r0, #7 - bl sub_11B0 -_08045556: - ldr r3, _080455C0 @ =gCurrentPinballGame - ldr r1, [r3] - add r1, sb - ldr r2, [r1] - movs r3, #0x10 - ldrsh r0, [r2, r3] - lsls r0, r0, #1 - strh r0, [r2, #0x28] - ldr r2, [r1] - movs r3, #0x12 - ldrsh r0, [r2, r3] - lsls r0, r0, #1 - strh r0, [r2, #0x2a] - ldr r2, [r1] - movs r3, #0x10 - ldrsh r0, [r2, r3] - lsls r0, r0, #8 - str r0, [r2, #0x34] - ldr r1, [r1] -_0804557C: - movs r2, #0x12 - ldrsh r0, [r1, r2] - lsls r0, r0, #8 - str r0, [r1, #0x38] -_08045584: - ldr r3, _080455C0 @ =gCurrentPinballGame - ldr r1, [r3] - movs r0, #0xc3 - lsls r0, r0, #2 - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_08045594: - ldr r2, _080455C0 @ =gCurrentPinballGame - ldr r1, [r2] - ldr r3, _080455CC @ =0x00000592 - adds r1, r1, r3 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - 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 -_080455B0: .4byte 0x00000316 -_080455B4: .4byte 0x0000031A -_080455B8: .4byte 0x0000132C -_080455BC: .4byte 0x000005F7 -_080455C0: .4byte gCurrentPinballGame -_080455C4: .4byte 0x0000FFF6 -_080455C8: .4byte 0x000005FA -_080455CC: .4byte 0x00000592 diff --git a/expected_objs/sub_45164.o b/expected_objs/sub_45164.o deleted file mode 100644 index de62dc2..0000000 Binary files a/expected_objs/sub_45164.o and /dev/null differ diff --git a/include/global.h b/include/global.h index 6ace3c3..b8bcf60 100644 --- a/include/global.h +++ b/include/global.h @@ -167,7 +167,9 @@ struct PinballGame /*0x06F*/ s8 unk6F; /*0x070*/ s8 unk70; /*0x071*/ s8 unk71; - /*0x072*/ u8 filler72[0x5A]; + /*0x072*/ u8 filler72[0xC]; + /*0x07E*/ u16 unk7E; + /*0x080*/ u8 filler80[0x4C]; /*0x0CC*/ u16 unkCC; /*0x0CE*/ u8 fillerCE[0x2]; /*0x0D0*/ struct Vector16 unkD0[5]; @@ -322,9 +324,18 @@ struct PinballGame /*0x308*/ u16 unk308; /*0x30A*/ u16 unk30A; /*0x30C*/ u16 unk30C; - /*0x30E*/ u8 filler30E[0x2]; + /*0x30E*/ s16 unk30E; /*0x310*/ u16 unk310; - /*0x312*/ u8 filler312[0x33]; + /*0x312*/ u8 filler312[0x2]; + /*0x314*/ s16 unk314; + /*0x316*/ s16 unk316; + /*0x318*/ s16 unk318; + /*0x31A*/ s16 unk31A; + /*0x31C*/ s16 unk31C; + /*0x31E*/ s16 unk31E; + /*0x320*/ s16 unk320; + /*0x322*/ s16 unk322; + /*0x324*/ u8 filler324[0x21]; /*0x345*/ s8 unk345; /*0x346*/ s8 unk346; /*0x347*/ u8 filler347[0x23]; @@ -426,7 +437,11 @@ struct PinballGame /*0x566*/ u8 filler566[0xA]; /*0x570*/ struct Vector16 unk570[2]; /*0x578*/ struct Vector16 unk578[2]; - /*ox580*/ struct Vector32 unk580[3]; + /*0x580*/ struct Vector32 unk580[2]; + /*0x590*/ u8 filler590[0x1]; + /*0x591*/ s8 unk591; + /*0x592*/ u16 unk592; + /*0x594*/ u8 filler594[0x4]; /*0x598*/ u16 currentSpecies; // Current catch/hatch mode species? Is it evo mode as well? /*0x59A*/ u8 filler59A[0x2]; /*0x59C*/ u16 lastCatchSpecies; // Previous catch mode species? diff --git a/src/rom_49A34.c b/src/rom_49A34.c index 543b0b4..ef363e0 100644 --- a/src/rom_49A34.c +++ b/src/rom_49A34.c @@ -90,6 +90,7 @@ extern const u16 gUnknown_0837A4E8[]; extern const u8 gUnknown_0838E028[]; extern const u8 gUnknown_084779EC[]; extern const s16 gUnknown_086AEED6[]; +extern const u8 gUnknown_084BB16C[][0x480]; extern struct SongHeader gUnknown_086A2EE4; extern s16 gUnknown_02030750[]; @@ -99,6 +100,116 @@ extern u8 gUnknown_0200FBB0[]; extern u8 gUnknown_020030A0[]; +void sub_45164(void) +{ + s16 i; + struct SpriteGroup *group; + struct OamDataSimple *oamSimple; + s16 index; + + group = &gMain.spriteGroups[20]; + if (group->available) + { + group->baseX = (gCurrentPinballGame->unk320 / 10) - (gCurrentPinballGame->unk58 - 146); + group->baseY = (gCurrentPinballGame->unk322 / 10) - (gCurrentPinballGame->unk5A - 110) + (gCurrentPinballGame->unk30E / 10); + index = gCurrentPinballGame->unk591; + DmaCopy16(3, gUnknown_084BB16C[index], (void *)0x060125A0, 0x480); + for (i = 0; i < 4; i++) + { + oamSimple = &group->oam[i]; + gOamBuffer[oamSimple->oamId].x = oamSimple->xOffset + group->baseX; + gOamBuffer[oamSimple->oamId].y = oamSimple->yOffset + group->baseY; + } + } + + if (gCurrentPinballGame->unk592 <= 250) + { + if (gCurrentPinballGame->unk592 == 250) + { + gCurrentPinballGame->unk320 = 920; + gCurrentPinballGame->unk322 = -100; + gCurrentPinballGame->unk31C = -82; + gCurrentPinballGame->unk31E = 0; + gCurrentPinballGame->unk30C = 0; + gCurrentPinballGame->unk306 = 8; + gCurrentPinballGame->unk591 = 13; + gMain.spriteGroups[20].available = 1; + gCurrentPinballGame->unk5FA = 1; + } + } + else + { + gCurrentPinballGame->unk591 = (gCurrentPinballGame->unk30C % 24) / 6 + 13; + gCurrentPinballGame->unk30E = (Sin(gCurrentPinballGame->unk30C * 0x400) * 240) / 20000; + if (gCurrentPinballGame->unk30C == 0) + m4aSongNumStart(SE_UNKNOWN_0xE4); + + if (gCurrentPinballGame->unk30C < 40) + { + gCurrentPinballGame->unk320 += gCurrentPinballGame->unk31C; + gCurrentPinballGame->unk322 += gCurrentPinballGame->unk31E; + } + else + { + gMain.spriteGroups[20].available = 0; + } + + if (gCurrentPinballGame->unk30C == 13) + { + gCurrentPinballGame->ball->unk0 = 0; + gCurrentPinballGame->unk314 = -10; + gCurrentPinballGame->unk316 = -25; + gCurrentPinballGame->unk318 = ((gCurrentPinballGame->unk320 / 10) + 157) * 10; + gCurrentPinballGame->unk31A = ((gCurrentPinballGame->unk322 / 10) + 134) * 10; + gCurrentPinballGame->ball->unk1 = 1; + } + + if (gCurrentPinballGame->unk1F) + { + if (gCurrentPinballGame->unk30C < 13) + { + gCurrentPinballGame->ball->positionQ0.x = (gCurrentPinballGame->unk320 / 10) + 157; + gCurrentPinballGame->ball->positionQ0.y = (gCurrentPinballGame->unk322 / 10) + 134; + gCurrentPinballGame->ball->positionQ1.x = gCurrentPinballGame->ball->positionQ0.x * 2; + gCurrentPinballGame->ball->positionQ1.y = gCurrentPinballGame->ball->positionQ0.y * 2; + gCurrentPinballGame->ball->positionQ8.x = gCurrentPinballGame->ball->positionQ0.x << 8; + gCurrentPinballGame->ball->positionQ8.y = gCurrentPinballGame->ball->positionQ0.y << 8; + } + else + { + gCurrentPinballGame->unk316 += 2; + gCurrentPinballGame->unk318 += gCurrentPinballGame->unk314; + gCurrentPinballGame->unk31A += gCurrentPinballGame->unk316; + gCurrentPinballGame->ball->positionQ0.x = gCurrentPinballGame->unk318 / 10; + gCurrentPinballGame->ball->positionQ0.y = gCurrentPinballGame->unk31A / 10; + if (gCurrentPinballGame->ball->positionQ0.y >= 181) + { + gCurrentPinballGame->ball->positionQ0.y = 181; + gCurrentPinballGame->unk5F7 = 0; + gCurrentPinballGame->unk1F = 0; + gCurrentPinballGame->ball->velocity.x = -10; + gCurrentPinballGame->ball->velocity.y = 0; + gCurrentPinballGame->unk5FA = 0; + gCurrentPinballGame->ball->unk1 = 3; + gCurrentPinballGame->unk24 = 0; + gCurrentPinballGame->unk7E = 0; + m4aSongNumStart(SE_UNKNOWN_0xE5); + sub_11B0(7); + } + + gCurrentPinballGame->ball->positionQ1.x = gCurrentPinballGame->ball->positionQ0.x * 2; + gCurrentPinballGame->ball->positionQ1.y = gCurrentPinballGame->ball->positionQ0.y * 2; + gCurrentPinballGame->ball->positionQ8.x = gCurrentPinballGame->ball->positionQ0.x << 8; + gCurrentPinballGame->ball->positionQ8.y = gCurrentPinballGame->ball->positionQ0.y << 8; + } + } + + gCurrentPinballGame->unk30C++; + } + + gCurrentPinballGame->unk592++; +} + void sub_455D0(void) { s16 i;