mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-03-21 17:24:13 -05:00
sub_45164
This commit is contained in:
parent
d4c781c63f
commit
e14bdf3fe3
528
asm/rom_3219C.s
528
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
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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?
|
||||
|
|
|
|||
111
src/rom_49A34.c
111
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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user