mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-04-26 00:37:22 -05:00
parent
16b857a46a
commit
ef63743724
651
asm/rom_11B9C.s
651
asm/rom_11B9C.s
|
|
@ -8,657 +8,6 @@
|
|||
.section .text11C14
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_11F88
|
||||
sub_11F88: @ 0x08011F88
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
ldr r2, _08011FD0 @ =gCurrentPinballGame
|
||||
ldr r3, [r2]
|
||||
ldr r1, _08011FD4 @ =0x0000132C
|
||||
adds r0, r3, r1
|
||||
ldr r6, [r0]
|
||||
ldr r0, [r6, #0x34]
|
||||
ldr r1, [r6, #0x38]
|
||||
str r0, [r6, #0x3c]
|
||||
str r1, [r6, #0x40]
|
||||
ldr r1, _08011FD8 @ =0x000005A4
|
||||
adds r0, r3, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #2
|
||||
bne _08011FAE
|
||||
b _080124E4
|
||||
_08011FAE:
|
||||
ldrb r0, [r3, #0x1f]
|
||||
cmp r0, #0
|
||||
bne _08011FFE
|
||||
ldr r1, _08011FDC @ =0x00000383
|
||||
adds r0, r3, r1
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08011FFE
|
||||
ldrh r4, [r6, #0x32]
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r6, r1]
|
||||
cmp r0, #0x96
|
||||
ble _08011FE4
|
||||
ldr r0, _08011FE0 @ =gGravityDeltas_Light
|
||||
b _08011FF2
|
||||
.align 2, 0
|
||||
_08011FD0: .4byte gCurrentPinballGame
|
||||
_08011FD4: .4byte 0x0000132C
|
||||
_08011FD8: .4byte 0x000005A4
|
||||
_08011FDC: .4byte 0x00000383
|
||||
_08011FE0: .4byte gGravityDeltas_Light
|
||||
_08011FE4:
|
||||
cmp r0, #0x4b
|
||||
ble _08011FF0
|
||||
ldr r0, _08011FEC @ =gGravityDeltas_Medium
|
||||
b _08011FF2
|
||||
.align 2, 0
|
||||
_08011FEC: .4byte gGravityDeltas_Medium
|
||||
_08011FF0:
|
||||
ldr r0, _0801208C @ =gGravityDeltas_Strong
|
||||
_08011FF2:
|
||||
ldrb r1, [r3, #0x1e]
|
||||
lsls r1, r1, #1
|
||||
adds r1, r1, r0
|
||||
ldrh r0, [r1]
|
||||
adds r0, r4, r0
|
||||
strh r0, [r6, #0x32]
|
||||
_08011FFE:
|
||||
ldr r0, [r2]
|
||||
adds r0, #0x31
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0801200A
|
||||
b _08012270
|
||||
_0801200A:
|
||||
movs r2, #0x30
|
||||
ldrsh r0, [r6, r2]
|
||||
ldrh r1, [r6, #0x32]
|
||||
rsbs r1, r1, #0
|
||||
lsls r1, r1, #0x10
|
||||
asrs r1, r1, #0x10
|
||||
bl ArcTan2
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
mov r8, r0
|
||||
mov sb, r8
|
||||
movs r1, #0x30
|
||||
ldrsh r0, [r6, r1]
|
||||
adds r1, r0, #0
|
||||
muls r1, r0, r1
|
||||
movs r2, #0x32
|
||||
ldrsh r0, [r6, r2]
|
||||
adds r2, r0, #0
|
||||
muls r2, r0, r2
|
||||
adds r0, r2, #0
|
||||
adds r1, r1, r0
|
||||
ldr r0, _08012090 @ =gMain
|
||||
ldrb r0, [r0, #4]
|
||||
cmp r0, #3
|
||||
bhi _080120FC
|
||||
movs r2, #0x12
|
||||
ldrsh r0, [r6, r2]
|
||||
cmp r0, #0x95
|
||||
bgt _080120A4
|
||||
movs r7, #0x88
|
||||
lsls r7, r7, #1
|
||||
ldr r0, _08012094 @ =0x00012100
|
||||
cmp r1, r0
|
||||
bgt _08012052
|
||||
b _080124C8
|
||||
_08012052:
|
||||
mov r0, r8
|
||||
bl Cos
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r7, r0
|
||||
ldr r4, _08012098 @ =0x00004E20
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
ldr r1, _0801209C @ =0xFFFF0000
|
||||
ands r5, r1
|
||||
orrs r5, r0
|
||||
mov r0, r8
|
||||
bl Sin
|
||||
rsbs r1, r7, #0
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r1, r0
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
ldr r1, _080120A0 @ =0x0000FFFF
|
||||
ands r5, r1
|
||||
b _080124CE
|
||||
.align 2, 0
|
||||
_0801208C: .4byte gGravityDeltas_Strong
|
||||
_08012090: .4byte gMain
|
||||
_08012094: .4byte 0x00012100
|
||||
_08012098: .4byte 0x00004E20
|
||||
_0801209C: .4byte 0xFFFF0000
|
||||
_080120A0: .4byte 0x0000FFFF
|
||||
_080120A4:
|
||||
movs r7, #0xc8
|
||||
lsls r7, r7, #1
|
||||
ldr r0, _080120EC @ =0x00027100
|
||||
cmp r1, r0
|
||||
bgt _080120B0
|
||||
b _080124C8
|
||||
_080120B0:
|
||||
mov r0, r8
|
||||
bl Cos
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r7, r0
|
||||
ldr r4, _080120F0 @ =0x00004E20
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
ldr r1, _080120F4 @ =0xFFFF0000
|
||||
ands r5, r1
|
||||
orrs r5, r0
|
||||
mov r0, r8
|
||||
bl Sin
|
||||
rsbs r1, r7, #0
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r1, r0
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
ldr r1, _080120F8 @ =0x0000FFFF
|
||||
ands r5, r1
|
||||
b _080124CE
|
||||
.align 2, 0
|
||||
_080120EC: .4byte 0x00027100
|
||||
_080120F0: .4byte 0x00004E20
|
||||
_080120F4: .4byte 0xFFFF0000
|
||||
_080120F8: .4byte 0x0000FFFF
|
||||
_080120FC:
|
||||
cmp r0, #7
|
||||
bne _080121B8
|
||||
movs r2, #0x12
|
||||
ldrsh r0, [r6, r2]
|
||||
cmp r0, #0xd9
|
||||
bgt _08012160
|
||||
movs r7, #0x88
|
||||
lsls r7, r7, #1
|
||||
ldr r0, _08012150 @ =0x00012100
|
||||
cmp r1, r0
|
||||
bgt _08012114
|
||||
b _080124C8
|
||||
_08012114:
|
||||
mov r0, r8
|
||||
bl Cos
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r7, r0
|
||||
ldr r4, _08012154 @ =0x00004E20
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
ldr r1, _08012158 @ =0xFFFF0000
|
||||
ands r5, r1
|
||||
orrs r5, r0
|
||||
mov r0, r8
|
||||
bl Sin
|
||||
rsbs r1, r7, #0
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r1, r0
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
ldr r1, _0801215C @ =0x0000FFFF
|
||||
ands r5, r1
|
||||
b _080124CE
|
||||
.align 2, 0
|
||||
_08012150: .4byte 0x00012100
|
||||
_08012154: .4byte 0x00004E20
|
||||
_08012158: .4byte 0xFFFF0000
|
||||
_0801215C: .4byte 0x0000FFFF
|
||||
_08012160:
|
||||
movs r7, #0xc8
|
||||
lsls r7, r7, #1
|
||||
ldr r0, _080121A8 @ =0x00027100
|
||||
cmp r1, r0
|
||||
bgt _0801216C
|
||||
b _080124C8
|
||||
_0801216C:
|
||||
mov r0, r8
|
||||
bl Cos
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r7, r0
|
||||
ldr r4, _080121AC @ =0x00004E20
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
ldr r1, _080121B0 @ =0xFFFF0000
|
||||
ands r5, r1
|
||||
orrs r5, r0
|
||||
mov r0, r8
|
||||
bl Sin
|
||||
rsbs r1, r7, #0
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r1, r0
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
ldr r1, _080121B4 @ =0x0000FFFF
|
||||
ands r5, r1
|
||||
b _080124CE
|
||||
.align 2, 0
|
||||
_080121A8: .4byte 0x00027100
|
||||
_080121AC: .4byte 0x00004E20
|
||||
_080121B0: .4byte 0xFFFF0000
|
||||
_080121B4: .4byte 0x0000FFFF
|
||||
_080121B8:
|
||||
movs r2, #0x12
|
||||
ldrsh r0, [r6, r2]
|
||||
cmp r0, #0xd9
|
||||
bgt _08012218
|
||||
movs r7, #0x88
|
||||
lsls r7, r7, #1
|
||||
ldr r0, _08012208 @ =0x00012100
|
||||
cmp r1, r0
|
||||
bgt _080121CC
|
||||
b _080124C8
|
||||
_080121CC:
|
||||
mov r0, r8
|
||||
bl Cos
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r7, r0
|
||||
ldr r4, _0801220C @ =0x00004E20
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
ldr r1, _08012210 @ =0xFFFF0000
|
||||
ands r5, r1
|
||||
orrs r5, r0
|
||||
mov r0, r8
|
||||
bl Sin
|
||||
rsbs r1, r7, #0
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r1, r0
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
ldr r1, _08012214 @ =0x0000FFFF
|
||||
ands r5, r1
|
||||
b _080124CE
|
||||
.align 2, 0
|
||||
_08012208: .4byte 0x00012100
|
||||
_0801220C: .4byte 0x00004E20
|
||||
_08012210: .4byte 0xFFFF0000
|
||||
_08012214: .4byte 0x0000FFFF
|
||||
_08012218:
|
||||
movs r7, #0xc8
|
||||
lsls r7, r7, #1
|
||||
ldr r0, _08012260 @ =0x00027100
|
||||
cmp r1, r0
|
||||
bgt _08012224
|
||||
b _080124C8
|
||||
_08012224:
|
||||
mov r0, sb
|
||||
bl Cos
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r7, r0
|
||||
ldr r4, _08012264 @ =0x00004E20
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
ldr r1, _08012268 @ =0xFFFF0000
|
||||
ands r5, r1
|
||||
orrs r5, r0
|
||||
mov r0, sb
|
||||
bl Sin
|
||||
rsbs r1, r7, #0
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r1, r0
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
ldr r1, _0801226C @ =0x0000FFFF
|
||||
ands r5, r1
|
||||
b _080124CE
|
||||
.align 2, 0
|
||||
_08012260: .4byte 0x00027100
|
||||
_08012264: .4byte 0x00004E20
|
||||
_08012268: .4byte 0xFFFF0000
|
||||
_0801226C: .4byte 0x0000FFFF
|
||||
_08012270:
|
||||
movs r1, #0x30
|
||||
ldrsh r0, [r6, r1]
|
||||
ldrh r1, [r6, #0x32]
|
||||
rsbs r1, r1, #0
|
||||
lsls r1, r1, #0x10
|
||||
asrs r1, r1, #0x10
|
||||
bl ArcTan2
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
mov r8, r0
|
||||
movs r2, #0x30
|
||||
ldrsh r0, [r6, r2]
|
||||
adds r1, r0, #0
|
||||
muls r1, r0, r1
|
||||
movs r2, #0x32
|
||||
ldrsh r0, [r6, r2]
|
||||
adds r2, r0, #0
|
||||
muls r2, r0, r2
|
||||
adds r0, r2, #0
|
||||
adds r1, r1, r0
|
||||
ldr r0, _080122F0 @ =gMain
|
||||
ldrb r0, [r0, #4]
|
||||
cmp r0, #3
|
||||
bhi _0801235C
|
||||
movs r2, #0x12
|
||||
ldrsh r0, [r6, r2]
|
||||
cmp r0, #0x95
|
||||
bgt _08012304
|
||||
movs r7, #0x98
|
||||
lsls r7, r7, #1
|
||||
ldr r0, _080122F4 @ =0x00016900
|
||||
cmp r1, r0
|
||||
bgt _080122B6
|
||||
b _080124C8
|
||||
_080122B6:
|
||||
mov r0, r8
|
||||
bl Cos
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r7, r0
|
||||
ldr r4, _080122F8 @ =0x00004E20
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
ldr r1, _080122FC @ =0xFFFF0000
|
||||
ands r5, r1
|
||||
orrs r5, r0
|
||||
mov r0, r8
|
||||
bl Sin
|
||||
rsbs r1, r7, #0
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r1, r0
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
ldr r1, _08012300 @ =0x0000FFFF
|
||||
ands r5, r1
|
||||
b _080124CE
|
||||
.align 2, 0
|
||||
_080122F0: .4byte gMain
|
||||
_080122F4: .4byte 0x00016900
|
||||
_080122F8: .4byte 0x00004E20
|
||||
_080122FC: .4byte 0xFFFF0000
|
||||
_08012300: .4byte 0x0000FFFF
|
||||
_08012304:
|
||||
movs r7, #0xc8
|
||||
lsls r7, r7, #1
|
||||
ldr r0, _0801234C @ =0x00027100
|
||||
cmp r1, r0
|
||||
bgt _08012310
|
||||
b _080124C8
|
||||
_08012310:
|
||||
mov r0, r8
|
||||
bl Cos
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r7, r0
|
||||
ldr r4, _08012350 @ =0x00004E20
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
ldr r1, _08012354 @ =0xFFFF0000
|
||||
ands r5, r1
|
||||
orrs r5, r0
|
||||
mov r0, r8
|
||||
bl Sin
|
||||
rsbs r1, r7, #0
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r1, r0
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
ldr r1, _08012358 @ =0x0000FFFF
|
||||
ands r5, r1
|
||||
b _080124CE
|
||||
.align 2, 0
|
||||
_0801234C: .4byte 0x00027100
|
||||
_08012350: .4byte 0x00004E20
|
||||
_08012354: .4byte 0xFFFF0000
|
||||
_08012358: .4byte 0x0000FFFF
|
||||
_0801235C:
|
||||
cmp r0, #7
|
||||
bne _08012418
|
||||
movs r2, #0x12
|
||||
ldrsh r0, [r6, r2]
|
||||
cmp r0, #0xd9
|
||||
bgt _080123C0
|
||||
movs r7, #0x88
|
||||
lsls r7, r7, #1
|
||||
ldr r0, _080123B0 @ =0x00012100
|
||||
cmp r1, r0
|
||||
bgt _08012374
|
||||
b _080124C8
|
||||
_08012374:
|
||||
mov r0, r8
|
||||
bl Cos
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r7, r0
|
||||
ldr r4, _080123B4 @ =0x00004E20
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
ldr r1, _080123B8 @ =0xFFFF0000
|
||||
ands r5, r1
|
||||
orrs r5, r0
|
||||
mov r0, r8
|
||||
bl Sin
|
||||
rsbs r1, r7, #0
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r1, r0
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
ldr r1, _080123BC @ =0x0000FFFF
|
||||
ands r5, r1
|
||||
b _080124CE
|
||||
.align 2, 0
|
||||
_080123B0: .4byte 0x00012100
|
||||
_080123B4: .4byte 0x00004E20
|
||||
_080123B8: .4byte 0xFFFF0000
|
||||
_080123BC: .4byte 0x0000FFFF
|
||||
_080123C0:
|
||||
movs r7, #0xc8
|
||||
lsls r7, r7, #1
|
||||
ldr r0, _08012408 @ =0x00027100
|
||||
cmp r1, r0
|
||||
bgt _080123CC
|
||||
b _080124C8
|
||||
_080123CC:
|
||||
mov r0, r8
|
||||
bl Cos
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r7, r0
|
||||
ldr r4, _0801240C @ =0x00004E20
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
ldr r1, _08012410 @ =0xFFFF0000
|
||||
ands r5, r1
|
||||
orrs r5, r0
|
||||
mov r0, r8
|
||||
bl Sin
|
||||
rsbs r1, r7, #0
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r1, r0
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
ldr r1, _08012414 @ =0x0000FFFF
|
||||
ands r5, r1
|
||||
b _080124CE
|
||||
.align 2, 0
|
||||
_08012408: .4byte 0x00027100
|
||||
_0801240C: .4byte 0x00004E20
|
||||
_08012410: .4byte 0xFFFF0000
|
||||
_08012414: .4byte 0x0000FFFF
|
||||
_08012418:
|
||||
movs r2, #0x12
|
||||
ldrsh r0, [r6, r2]
|
||||
cmp r0, #0xd9
|
||||
bgt _08012474
|
||||
movs r7, #0x98
|
||||
lsls r7, r7, #1
|
||||
ldr r0, _08012464 @ =0x00016900
|
||||
cmp r1, r0
|
||||
ble _080124C8
|
||||
mov r0, r8
|
||||
bl Cos
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r7, r0
|
||||
ldr r4, _08012468 @ =0x00004E20
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
ldr r1, _0801246C @ =0xFFFF0000
|
||||
ands r5, r1
|
||||
orrs r5, r0
|
||||
mov r0, r8
|
||||
bl Sin
|
||||
rsbs r1, r7, #0
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r1, r0
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
ldr r1, _08012470 @ =0x0000FFFF
|
||||
ands r5, r1
|
||||
b _080124CE
|
||||
.align 2, 0
|
||||
_08012464: .4byte 0x00016900
|
||||
_08012468: .4byte 0x00004E20
|
||||
_0801246C: .4byte 0xFFFF0000
|
||||
_08012470: .4byte 0x0000FFFF
|
||||
_08012474:
|
||||
movs r7, #0xc8
|
||||
lsls r7, r7, #1
|
||||
ldr r0, _080124B8 @ =0x00027100
|
||||
cmp r1, r0
|
||||
ble _080124C8
|
||||
mov r0, r8
|
||||
bl Cos
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r7, r0
|
||||
ldr r4, _080124BC @ =0x00004E20
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
ldr r1, _080124C0 @ =0xFFFF0000
|
||||
ands r5, r1
|
||||
orrs r5, r0
|
||||
mov r0, r8
|
||||
bl Sin
|
||||
rsbs r1, r7, #0
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
muls r0, r1, r0
|
||||
adds r1, r4, #0
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
ldr r1, _080124C4 @ =0x0000FFFF
|
||||
ands r5, r1
|
||||
b _080124CE
|
||||
.align 2, 0
|
||||
_080124B8: .4byte 0x00027100
|
||||
_080124BC: .4byte 0x00004E20
|
||||
_080124C0: .4byte 0xFFFF0000
|
||||
_080124C4: .4byte 0x0000FFFF
|
||||
_080124C8:
|
||||
ldrh r0, [r6, #0x32]
|
||||
lsls r0, r0, #0x10
|
||||
ldrh r5, [r6, #0x30]
|
||||
_080124CE:
|
||||
orrs r5, r0
|
||||
lsls r1, r5, #0x10
|
||||
asrs r1, r1, #0x10
|
||||
ldr r0, [r6, #0x34]
|
||||
adds r0, r0, r1
|
||||
str r0, [r6, #0x34]
|
||||
asrs r1, r5, #0x10
|
||||
ldr r0, [r6, #0x38]
|
||||
adds r0, r0, r1
|
||||
str r0, [r6, #0x38]
|
||||
b _080124E8
|
||||
_080124E4:
|
||||
bl sub_2AADC
|
||||
_080124E8:
|
||||
ldr r0, [r6, #0x28]
|
||||
str r0, [r6, #0x2c]
|
||||
ldr r1, [r6, #0x34]
|
||||
adds r0, r1, #0
|
||||
adds r0, #0x40
|
||||
cmp r0, #0
|
||||
bge _080124F8
|
||||
adds r0, #0x7f
|
||||
_080124F8:
|
||||
asrs r0, r0, #7
|
||||
strh r0, [r6, #0x28]
|
||||
ldr r1, [r6, #0x38]
|
||||
adds r0, r1, #0
|
||||
adds r0, #0x40
|
||||
cmp r0, #0
|
||||
bge _08012508
|
||||
adds r0, #0x7f
|
||||
_08012508:
|
||||
asrs r0, r0, #7
|
||||
strh r0, [r6, #0x2a]
|
||||
ldrh r0, [r6, #6]
|
||||
strh r0, [r6, #8]
|
||||
ldrh r1, [r6, #0xa]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r6, #0xa]
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
|
||||
thumb_func_start sub_12524
|
||||
sub_12524: @ 0x08012524
|
||||
push {r4, r5, r6, r7, lr}
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
|
|
@ -371,7 +371,6 @@ extern void ClearSomeArray(void);
|
|||
//extern ? sub_11B9C();
|
||||
//extern ? sub_11C14();
|
||||
//extern ? sub_11C98();
|
||||
//extern ? sub_11F88();
|
||||
//extern ? sub_12524();
|
||||
//extern ? sub_12BF8();
|
||||
//extern ? sub_1332C();
|
||||
|
|
|
|||
|
|
@ -250,7 +250,7 @@ struct PinballGame
|
|||
/*0x36C*/ u8 unk36C[0x2];
|
||||
/*0x36E*/ u16 unk36E[0x2];
|
||||
/*0x372*/ u8 filler372[0x11];
|
||||
/*0x383*/ u8 unk383;
|
||||
/*0x383*/ s8 unk383;
|
||||
/*0x384*/ u8 unk384;
|
||||
/*0x385*/ u8 unk385;
|
||||
/*0x386*/ u8 unk386;
|
||||
|
|
|
|||
122
src/rom_11B9C.c
122
src/rom_11B9C.c
|
|
@ -88,6 +88,7 @@ void sub_11C98(void)
|
|||
if (gCurrentPinballGame->ballSpeed != 0)
|
||||
{
|
||||
u16 angle;
|
||||
|
||||
if (!gCurrentPinballGame->unk1F)
|
||||
{
|
||||
// Gravity is applied at different strengths, depending on fast the ball is
|
||||
|
|
@ -156,3 +157,124 @@ void sub_11C98(void)
|
|||
unk132c->unk8 = unk132c->unk6;
|
||||
unk132c->unkA += unk132c->unk6;
|
||||
}
|
||||
|
||||
void sub_11F88(void)
|
||||
{
|
||||
struct Vector16 velocity;
|
||||
struct UnkPinballGame1334 *unk132c;
|
||||
int xx, yy;
|
||||
int squaredMagnitude;
|
||||
int maxSpeed;
|
||||
|
||||
unk132c = gCurrentPinballGame->unk132c;
|
||||
unk132c->prevPosition = unk132c->position;
|
||||
if (gCurrentPinballGame->unk5A4 != 2)
|
||||
{
|
||||
if (!gCurrentPinballGame->unk1F && !gCurrentPinballGame->unk383)
|
||||
{
|
||||
// Gravity is applied at different strengths, depending on fast the ball is
|
||||
// currently moving downwards.
|
||||
if (unk132c->velocity.y > 150)
|
||||
unk132c->velocity.y += gGravityDeltas_Light[gCurrentPinballGame->unk1E];
|
||||
else if (unk132c->velocity.y > 75)
|
||||
unk132c->velocity.y += gGravityDeltas_Medium[gCurrentPinballGame->unk1E];
|
||||
else
|
||||
unk132c->velocity.y += gGravityDeltas_Strong[gCurrentPinballGame->unk1E];
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->ballSpeed != 0)
|
||||
{
|
||||
u16 angle;
|
||||
angle = ArcTan2(unk132c->velocity.x, -unk132c->velocity.y);
|
||||
xx = unk132c->velocity.x * unk132c->velocity.x;
|
||||
yy = unk132c->velocity.y * unk132c->velocity.y;
|
||||
squaredMagnitude = xx + yy;
|
||||
|
||||
if (gMain.selectedField <= FIELD_KECLEON)
|
||||
{
|
||||
if (unk132c->unk10.y < 150)
|
||||
{
|
||||
UPDATE_BALL_POSITION(272, angle);
|
||||
}
|
||||
else
|
||||
{
|
||||
UPDATE_BALL_POSITION(400, angle);
|
||||
}
|
||||
}
|
||||
else if (gMain.selectedField == FIELD_SPHEAL)
|
||||
{
|
||||
if (unk132c->unk10.y < 218)
|
||||
{
|
||||
UPDATE_BALL_POSITION(272, angle);
|
||||
}
|
||||
else
|
||||
{
|
||||
UPDATE_BALL_POSITION(400, angle);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (unk132c->unk10.y < 218)
|
||||
{
|
||||
UPDATE_BALL_POSITION(272, angle);
|
||||
}
|
||||
else
|
||||
{
|
||||
UPDATE_BALL_POSITION(400, angle);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
u16 angle;
|
||||
angle = ArcTan2(unk132c->velocity.x, -unk132c->velocity.y);
|
||||
xx = unk132c->velocity.x * unk132c->velocity.x;
|
||||
yy = unk132c->velocity.y * unk132c->velocity.y;
|
||||
squaredMagnitude = xx + yy;
|
||||
|
||||
if (gMain.selectedField <= FIELD_KECLEON)
|
||||
{
|
||||
if (unk132c->unk10.y < 150)
|
||||
{
|
||||
UPDATE_BALL_POSITION(304, angle);
|
||||
}
|
||||
else
|
||||
{
|
||||
UPDATE_BALL_POSITION(400, angle);
|
||||
}
|
||||
}
|
||||
else if (gMain.selectedField == FIELD_SPHEAL)
|
||||
{
|
||||
if (unk132c->unk10.y < 218)
|
||||
{
|
||||
UPDATE_BALL_POSITION(272, angle);
|
||||
}
|
||||
else
|
||||
{
|
||||
UPDATE_BALL_POSITION(400, angle);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (unk132c->unk10.y < 218)
|
||||
{
|
||||
UPDATE_BALL_POSITION(304, angle);
|
||||
}
|
||||
else
|
||||
{
|
||||
UPDATE_BALL_POSITION(400, angle);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_2AADC();
|
||||
}
|
||||
|
||||
unk132c->unk2C = unk132c->unk28;
|
||||
unk132c->unk28.x = (unk132c->position.x + 64) / 128;
|
||||
unk132c->unk28.y = (unk132c->position.y + 64) / 128;
|
||||
unk132c->unk8 = unk132c->unk6;
|
||||
unk132c->unkA += unk132c->unk6;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user