mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-03-21 17:24:13 -05:00
sub_2F79C
This commit is contained in:
parent
b39d533616
commit
a6dec68d04
660
asm/rom_2E6AC.s
660
asm/rom_2E6AC.s
|
|
@ -6,666 +6,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_2F79C
|
||||
sub_2F79C: @ 0x0802F79C
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
movs r1, #0
|
||||
ldr r0, _0802F7D0 @ =gCurrentPinballGame
|
||||
mov r8, r0
|
||||
_0802F7A8:
|
||||
mov r2, r8
|
||||
ldr r0, [r2]
|
||||
lsls r2, r1, #0x10
|
||||
asrs r1, r2, #0x10
|
||||
ldr r3, _0802F7D4 @ =0x0000036A
|
||||
adds r0, r0, r3
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
adds r6, r2, #0
|
||||
cmp r0, #5
|
||||
bls _0802F7C4
|
||||
b _0802FB26
|
||||
_0802F7C4:
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _0802F7D8 @ =_0802F7DC
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0802F7D0: .4byte gCurrentPinballGame
|
||||
_0802F7D4: .4byte 0x0000036A
|
||||
_0802F7D8: .4byte _0802F7DC
|
||||
_0802F7DC: @ jump table
|
||||
.4byte _0802F7F4 @ case 0
|
||||
.4byte _0802F87E @ case 1
|
||||
.4byte _0802F944 @ case 2
|
||||
.4byte _0802F9E4 @ case 3
|
||||
.4byte _0802FA28 @ case 4
|
||||
.4byte _0802FAA2 @ case 5
|
||||
_0802F7F4:
|
||||
ldr r1, _0802F828 @ =gUnknown_086AE4FC
|
||||
mov r4, r8
|
||||
ldr r2, [r4]
|
||||
asrs r4, r6, #0x10
|
||||
movs r5, #0xdb
|
||||
lsls r5, r5, #2
|
||||
adds r0, r2, r5
|
||||
adds r3, r0, r4
|
||||
movs r0, #0
|
||||
ldrsb r0, [r3, r0]
|
||||
lsls r0, r0, #2
|
||||
adds r1, #2
|
||||
adds r0, r0, r1
|
||||
movs r1, #0
|
||||
ldrsh r0, [r0, r1]
|
||||
lsls r5, r4, #1
|
||||
ldr r1, _0802F82C @ =0x0000036E
|
||||
adds r2, r2, r1
|
||||
adds r2, r2, r5
|
||||
ldrh r1, [r2]
|
||||
cmp r0, r1
|
||||
ble _0802F830
|
||||
adds r0, r1, #1
|
||||
strh r0, [r2]
|
||||
b _0802F858
|
||||
.align 2, 0
|
||||
_0802F828: .4byte gUnknown_086AE4FC
|
||||
_0802F82C: .4byte 0x0000036E
|
||||
_0802F830:
|
||||
ldrb r0, [r3]
|
||||
adds r0, #1
|
||||
movs r2, #0
|
||||
strb r0, [r3]
|
||||
mov r3, r8
|
||||
ldr r1, [r3]
|
||||
ldr r3, _0802F870 @ =0x0000036E
|
||||
adds r0, r1, r3
|
||||
adds r0, r0, r5
|
||||
movs r3, #0
|
||||
strh r2, [r0]
|
||||
movs r5, #0xdb
|
||||
lsls r5, r5, #2
|
||||
adds r1, r1, r5
|
||||
adds r1, r1, r4
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #3
|
||||
ble _0802F858
|
||||
strb r3, [r1]
|
||||
_0802F858:
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
asrs r1, r6, #0xf
|
||||
ldr r2, _0802F874 @ =0x00000372
|
||||
adds r0, r0, r2
|
||||
adds r1, r0, r1
|
||||
ldrh r0, [r1]
|
||||
cmp r0, #0x97
|
||||
bhi _0802F878
|
||||
adds r0, #1
|
||||
strh r0, [r1]
|
||||
b _0802FB26
|
||||
.align 2, 0
|
||||
_0802F870: .4byte 0x0000036E
|
||||
_0802F874: .4byte 0x00000372
|
||||
_0802F878:
|
||||
movs r0, #0
|
||||
strh r0, [r1]
|
||||
b _0802FB26
|
||||
_0802F87E:
|
||||
ldr r2, _0802F8B0 @ =gUnknown_086AE4FC
|
||||
ldr r7, _0802F8B4 @ =gCurrentPinballGame
|
||||
ldr r1, [r7]
|
||||
asrs r4, r6, #0x10
|
||||
movs r3, #0xdb
|
||||
lsls r3, r3, #2
|
||||
adds r0, r1, r3
|
||||
adds r3, r0, r4
|
||||
movs r0, #0
|
||||
ldrsb r0, [r3, r0]
|
||||
lsls r0, r0, #2
|
||||
adds r2, #2
|
||||
adds r0, r0, r2
|
||||
movs r5, #0
|
||||
ldrsh r0, [r0, r5]
|
||||
lsls r5, r4, #1
|
||||
ldr r2, _0802F8B8 @ =0x0000036E
|
||||
adds r1, r1, r2
|
||||
adds r1, r1, r5
|
||||
ldrh r2, [r1]
|
||||
cmp r0, r2
|
||||
ble _0802F8BC
|
||||
adds r0, r2, #1
|
||||
strh r0, [r1]
|
||||
b _0802F8EC
|
||||
.align 2, 0
|
||||
_0802F8B0: .4byte gUnknown_086AE4FC
|
||||
_0802F8B4: .4byte gCurrentPinballGame
|
||||
_0802F8B8: .4byte 0x0000036E
|
||||
_0802F8BC:
|
||||
ldrb r0, [r3]
|
||||
adds r0, #1
|
||||
movs r2, #0
|
||||
strb r0, [r3]
|
||||
ldr r1, [r7]
|
||||
ldr r3, _0802F938 @ =0x0000036E
|
||||
adds r0, r1, r3
|
||||
adds r0, r0, r5
|
||||
strh r2, [r0]
|
||||
movs r5, #0xdb
|
||||
lsls r5, r5, #2
|
||||
adds r1, r1, r5
|
||||
adds r1, r1, r4
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #5
|
||||
bne _0802F8EC
|
||||
movs r0, 0xE6 @=SE_UNKNOWN_0xE6
|
||||
bl m4aSongNumStart
|
||||
ldr r1, [r7]
|
||||
movs r0, #0xfa
|
||||
lsls r0, r0, #3
|
||||
str r0, [r1, #0x3c]
|
||||
_0802F8EC:
|
||||
ldr r0, _0802F93C @ =gCurrentPinballGame
|
||||
ldr r3, [r0]
|
||||
asrs r2, r6, #0x10
|
||||
movs r4, #0xdb
|
||||
lsls r4, r4, #2
|
||||
adds r1, r3, r4
|
||||
adds r5, r1, r2
|
||||
movs r1, #0
|
||||
ldrsb r1, [r5, r1]
|
||||
mov r8, r0
|
||||
cmp r1, #6
|
||||
beq _0802F906
|
||||
b _0802FB16
|
||||
_0802F906:
|
||||
ldr r1, _0802F940 @ =0x00000376
|
||||
adds r0, r3, r1
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0802F926
|
||||
cmp r0, #1
|
||||
bne _0802F926
|
||||
movs r0, #7
|
||||
strb r0, [r5]
|
||||
mov r3, r8
|
||||
ldr r0, [r3]
|
||||
subs r4, #2
|
||||
adds r0, r0, r4
|
||||
adds r0, r0, r2
|
||||
movs r1, #2
|
||||
strb r1, [r0]
|
||||
_0802F926:
|
||||
mov r5, r8
|
||||
ldr r0, [r5]
|
||||
asrs r1, r6, #0xf
|
||||
ldr r2, _0802F938 @ =0x0000036E
|
||||
adds r0, r0, r2
|
||||
adds r0, r0, r1
|
||||
movs r1, #0
|
||||
strh r1, [r0]
|
||||
b _0802FB16
|
||||
.align 2, 0
|
||||
_0802F938: .4byte 0x0000036E
|
||||
_0802F93C: .4byte gCurrentPinballGame
|
||||
_0802F940: .4byte 0x00000376
|
||||
_0802F944:
|
||||
ldr r1, _0802F978 @ =gUnknown_086AE4FC
|
||||
mov r5, r8
|
||||
ldr r2, [r5]
|
||||
asrs r5, r6, #0x10
|
||||
movs r7, #0xdb
|
||||
lsls r7, r7, #2
|
||||
adds r0, r2, r7
|
||||
adds r3, r0, r5
|
||||
movs r0, #0
|
||||
ldrsb r0, [r3, r0]
|
||||
lsls r0, r0, #2
|
||||
adds r1, #2
|
||||
adds r0, r0, r1
|
||||
movs r1, #0
|
||||
ldrsh r0, [r0, r1]
|
||||
lsls r4, r5, #1
|
||||
ldr r1, _0802F97C @ =0x0000036E
|
||||
adds r2, r2, r1
|
||||
adds r2, r2, r4
|
||||
ldrh r1, [r2]
|
||||
cmp r0, r1
|
||||
ble _0802F980
|
||||
adds r0, r1, #1
|
||||
strh r0, [r2]
|
||||
b _0802F9CA
|
||||
.align 2, 0
|
||||
_0802F978: .4byte gUnknown_086AE4FC
|
||||
_0802F97C: .4byte 0x0000036E
|
||||
_0802F980:
|
||||
ldrb r0, [r3]
|
||||
adds r0, #1
|
||||
movs r2, #0
|
||||
strb r0, [r3]
|
||||
mov r3, r8
|
||||
ldr r1, [r3]
|
||||
ldr r3, _0802F9D8 @ =0x0000036E
|
||||
adds r0, r1, r3
|
||||
adds r0, r0, r4
|
||||
movs r4, #0
|
||||
strh r2, [r0]
|
||||
movs r0, #0xdb
|
||||
lsls r0, r0, #2
|
||||
adds r1, r1, r0
|
||||
adds r1, r1, r5
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #8
|
||||
bne _0802F9AC
|
||||
movs r0, 0xE7 @=SE_UNKNOWN_0xE7
|
||||
bl m4aSongNumStart
|
||||
_0802F9AC:
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
adds r0, r0, r7
|
||||
adds r1, r0, r5
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #8
|
||||
ble _0802F9CA
|
||||
strb r4, [r1]
|
||||
mov r2, r8
|
||||
ldr r0, [r2]
|
||||
ldr r3, _0802F9DC @ =0x0000036A
|
||||
adds r0, r0, r3
|
||||
adds r0, r0, r5
|
||||
strb r4, [r0]
|
||||
_0802F9CA:
|
||||
mov r4, r8
|
||||
ldr r0, [r4]
|
||||
asrs r1, r6, #0xf
|
||||
ldr r5, _0802F9E0 @ =0x00000372
|
||||
adds r0, r0, r5
|
||||
b _0802FB20
|
||||
.align 2, 0
|
||||
_0802F9D8: .4byte 0x0000036E
|
||||
_0802F9DC: .4byte 0x0000036A
|
||||
_0802F9E0: .4byte 0x00000372
|
||||
_0802F9E4:
|
||||
mov r0, r8
|
||||
ldr r1, [r0]
|
||||
asrs r2, r6, #0x10
|
||||
movs r3, #0xdb
|
||||
lsls r3, r3, #2
|
||||
adds r1, r1, r3
|
||||
adds r1, r1, r2
|
||||
movs r4, #0
|
||||
movs r0, #9
|
||||
strb r0, [r1]
|
||||
mov r5, r8
|
||||
ldr r1, [r5]
|
||||
lsls r3, r2, #1
|
||||
ldr r5, _0802FA1C @ =0x0000036E
|
||||
adds r0, r1, r5
|
||||
adds r0, r0, r3
|
||||
strh r4, [r0]
|
||||
ldr r0, _0802FA20 @ =0x0000036A
|
||||
adds r1, r1, r0
|
||||
adds r1, r1, r2
|
||||
movs r0, #4
|
||||
strb r0, [r1]
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
ldr r2, _0802FA24 @ =0x00000372
|
||||
adds r0, r0, r2
|
||||
adds r0, r0, r3
|
||||
b _0802FB22
|
||||
.align 2, 0
|
||||
_0802FA1C: .4byte 0x0000036E
|
||||
_0802FA20: .4byte 0x0000036A
|
||||
_0802FA24: .4byte 0x00000372
|
||||
_0802FA28:
|
||||
ldr r1, _0802FA90 @ =gUnknown_086AE4FC
|
||||
mov r3, r8
|
||||
ldr r2, [r3]
|
||||
asrs r5, r6, #0x10
|
||||
movs r4, #0xdb
|
||||
lsls r4, r4, #2
|
||||
adds r0, r2, r4
|
||||
adds r3, r0, r5
|
||||
movs r0, #0
|
||||
ldrsb r0, [r3, r0]
|
||||
lsls r0, r0, #2
|
||||
adds r1, #2
|
||||
adds r0, r0, r1
|
||||
movs r1, #0
|
||||
ldrsh r0, [r0, r1]
|
||||
lsls r4, r5, #1
|
||||
ldr r1, _0802FA94 @ =0x0000036E
|
||||
adds r2, r2, r1
|
||||
adds r2, r2, r4
|
||||
ldrh r1, [r2]
|
||||
cmp r0, r1
|
||||
bgt _0802FACE
|
||||
ldrb r0, [r3]
|
||||
adds r0, #1
|
||||
movs r1, #0
|
||||
strb r0, [r3]
|
||||
mov r3, r8
|
||||
ldr r2, [r3]
|
||||
ldr r3, _0802FA94 @ =0x0000036E
|
||||
adds r0, r2, r3
|
||||
adds r0, r0, r4
|
||||
movs r3, #0
|
||||
strh r1, [r0]
|
||||
movs r4, #0xdb
|
||||
lsls r4, r4, #2
|
||||
adds r0, r2, r4
|
||||
adds r1, r0, r5
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #0x11
|
||||
ble _0802FB16
|
||||
movs r0, #0x13
|
||||
ldrsb r0, [r2, r0]
|
||||
cmp r0, #6
|
||||
bne _0802FA9C
|
||||
strb r3, [r1]
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
ldr r2, _0802FA98 @ =0x0000036A
|
||||
adds r0, r0, r2
|
||||
adds r0, r0, r5
|
||||
b _0802FB14
|
||||
.align 2, 0
|
||||
_0802FA90: .4byte gUnknown_086AE4FC
|
||||
_0802FA94: .4byte 0x0000036E
|
||||
_0802FA98: .4byte 0x0000036A
|
||||
_0802FA9C:
|
||||
movs r0, #9
|
||||
strb r0, [r1]
|
||||
b _0802FB16
|
||||
_0802FAA2:
|
||||
ldr r1, _0802FAD4 @ =gUnknown_086AE4FC
|
||||
mov r5, r8
|
||||
ldr r2, [r5]
|
||||
asrs r4, r6, #0x10
|
||||
movs r7, #0xdb
|
||||
lsls r7, r7, #2
|
||||
adds r0, r2, r7
|
||||
adds r3, r0, r4
|
||||
movs r0, #0
|
||||
ldrsb r0, [r3, r0]
|
||||
lsls r0, r0, #2
|
||||
adds r1, #2
|
||||
adds r0, r0, r1
|
||||
movs r1, #0
|
||||
ldrsh r0, [r0, r1]
|
||||
lsls r5, r4, #1
|
||||
ldr r1, _0802FAD8 @ =0x0000036E
|
||||
adds r2, r2, r1
|
||||
adds r2, r2, r5
|
||||
ldrh r1, [r2]
|
||||
cmp r0, r1
|
||||
ble _0802FADC
|
||||
_0802FACE:
|
||||
adds r0, r1, #1
|
||||
strh r0, [r2]
|
||||
b _0802FB16
|
||||
.align 2, 0
|
||||
_0802FAD4: .4byte gUnknown_086AE4FC
|
||||
_0802FAD8: .4byte 0x0000036E
|
||||
_0802FADC:
|
||||
ldrb r0, [r3]
|
||||
adds r0, #1
|
||||
movs r1, #0
|
||||
strb r0, [r3]
|
||||
mov r3, r8
|
||||
ldr r2, [r3]
|
||||
ldr r3, _0802FC24 @ =0x0000036E
|
||||
adds r0, r2, r3
|
||||
adds r0, r0, r5
|
||||
movs r3, #0
|
||||
strh r1, [r0]
|
||||
movs r5, #0xdb
|
||||
lsls r5, r5, #2
|
||||
adds r0, r2, r5
|
||||
adds r0, r0, r4
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0x11
|
||||
ble _0802FB16
|
||||
ldr r1, _0802FC28 @ =0x0000036A
|
||||
adds r0, r2, r1
|
||||
adds r0, r0, r4
|
||||
strb r3, [r0]
|
||||
mov r2, r8
|
||||
ldr r0, [r2]
|
||||
adds r0, r0, r7
|
||||
adds r0, r0, r4
|
||||
_0802FB14:
|
||||
strb r3, [r0]
|
||||
_0802FB16:
|
||||
mov r3, r8
|
||||
ldr r0, [r3]
|
||||
asrs r1, r6, #0xf
|
||||
ldr r4, _0802FC2C @ =0x00000372
|
||||
adds r0, r0, r4
|
||||
_0802FB20:
|
||||
adds r0, r0, r1
|
||||
_0802FB22:
|
||||
movs r1, #0x14
|
||||
strh r1, [r0]
|
||||
_0802FB26:
|
||||
movs r5, #0x80
|
||||
lsls r5, r5, #9
|
||||
adds r0, r6, r5
|
||||
lsrs r1, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #1
|
||||
bgt _0802FB36
|
||||
b _0802F7A8
|
||||
_0802FB36:
|
||||
mov r0, r8
|
||||
ldr r1, [r0]
|
||||
adds r0, r1, #0
|
||||
adds r0, #0x25
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #3
|
||||
beq _0802FB56
|
||||
ldr r2, _0802FC30 @ =0x00000376
|
||||
adds r1, r1, r2
|
||||
ldrh r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _0802FB56
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
_0802FB56:
|
||||
mov r3, r8
|
||||
ldr r2, [r3]
|
||||
ldr r4, _0802FC34 @ =0x00001328
|
||||
adds r1, r2, r4
|
||||
ldrh r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _0802FB78
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _0802FB78
|
||||
ldr r5, _0802FC38 @ =0x00001330
|
||||
adds r1, r2, r5
|
||||
ldr r3, _0802FC3C @ =0x00001334
|
||||
adds r0, r2, r3
|
||||
str r0, [r1]
|
||||
_0802FB78:
|
||||
mov r4, r8
|
||||
ldr r0, [r4]
|
||||
movs r6, #0xda
|
||||
lsls r6, r6, #2
|
||||
adds r0, r0, r6
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0802FBCE
|
||||
cmp r0, #0x11
|
||||
bne _0802FB9E
|
||||
movs r0, 0xE8 @=SE_UNKNOWN_0xE8
|
||||
bl m4aSongNumStart
|
||||
ldr r1, [r4]
|
||||
movs r0, #0xa
|
||||
str r0, [r1, #0x3c]
|
||||
movs r0, #0xd
|
||||
bl sub_11B0
|
||||
_0802FB9E:
|
||||
ldr r5, _0802FC40 @ =gUnknown_08137CD6
|
||||
mov r0, r8
|
||||
ldr r4, [r0]
|
||||
adds r4, r4, r6
|
||||
ldrh r0, [r4]
|
||||
movs r1, #3
|
||||
bl __udivsi3
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0xf
|
||||
adds r0, r0, r5
|
||||
movs r1, #0
|
||||
ldrsh r2, [r0, r1]
|
||||
ldr r3, _0802FC44 @ =0x0400004C
|
||||
lsls r0, r2, #0xc
|
||||
lsls r1, r2, #8
|
||||
orrs r0, r1
|
||||
lsls r1, r2, #4
|
||||
orrs r0, r1
|
||||
orrs r0, r2
|
||||
strh r0, [r3]
|
||||
ldrh r0, [r4]
|
||||
subs r0, #1
|
||||
strh r0, [r4]
|
||||
_0802FBCE:
|
||||
mov r3, r8
|
||||
ldr r1, [r3]
|
||||
movs r0, #0x13
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #2
|
||||
ble _0802FC48
|
||||
cmp r0, #6
|
||||
beq _0802FCB8
|
||||
movs r1, #0
|
||||
movs r3, #0
|
||||
_0802FBE2:
|
||||
mov r2, r8
|
||||
ldr r0, [r2]
|
||||
lsls r1, r1, #0x10
|
||||
asrs r2, r1, #0x10
|
||||
ldr r4, _0802FC28 @ =0x0000036A
|
||||
adds r0, r0, r4
|
||||
adds r1, r0, r2
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #0
|
||||
beq _0802FC14
|
||||
strb r3, [r1]
|
||||
mov r5, r8
|
||||
ldr r0, [r5]
|
||||
movs r1, #0xdb
|
||||
lsls r1, r1, #2
|
||||
adds r0, r0, r1
|
||||
adds r0, r0, r2
|
||||
strb r3, [r0]
|
||||
ldr r0, [r5]
|
||||
lsls r1, r2, #1
|
||||
adds r4, #4
|
||||
adds r0, r0, r4
|
||||
adds r0, r0, r1
|
||||
strh r3, [r0]
|
||||
_0802FC14:
|
||||
adds r0, r2, #1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r1, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #1
|
||||
ble _0802FBE2
|
||||
b _0802FCB8
|
||||
.align 2, 0
|
||||
_0802FC24: .4byte 0x0000036E
|
||||
_0802FC28: .4byte 0x0000036A
|
||||
_0802FC2C: .4byte 0x00000372
|
||||
_0802FC30: .4byte 0x00000376
|
||||
_0802FC34: .4byte 0x00001328
|
||||
_0802FC38: .4byte 0x00001330
|
||||
_0802FC3C: .4byte 0x00001334
|
||||
_0802FC40: .4byte gUnknown_08137CD6
|
||||
_0802FC44: .4byte 0x0400004C
|
||||
_0802FC48:
|
||||
ldr r5, _0802FC7C @ =0x0000072E
|
||||
adds r0, r1, r5
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #2
|
||||
ble _0802FC8C
|
||||
ldr r2, _0802FC80 @ =0x00000281
|
||||
adds r0, r1, r2
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
ble _0802FCB8
|
||||
ldr r4, _0802FC84 @ =0x0000036A
|
||||
adds r2, r1, r4
|
||||
movs r0, #0
|
||||
ldrsb r0, [r2, r0]
|
||||
cmp r0, #2
|
||||
bgt _0802FCB8
|
||||
movs r1, #3
|
||||
strb r1, [r2]
|
||||
ldr r0, [r3]
|
||||
ldr r5, _0802FC88 @ =0x0000036B
|
||||
b _0802FCB4
|
||||
.align 2, 0
|
||||
_0802FC7C: .4byte 0x0000072E
|
||||
_0802FC80: .4byte 0x00000281
|
||||
_0802FC84: .4byte 0x0000036A
|
||||
_0802FC88: .4byte 0x0000036B
|
||||
_0802FC8C:
|
||||
ldr r0, _0802FCC4 @ =0x0000036A
|
||||
adds r2, r1, r0
|
||||
movs r0, #0
|
||||
ldrsb r0, [r2, r0]
|
||||
cmp r0, #2
|
||||
ble _0802FCB8
|
||||
movs r1, #0
|
||||
strb r1, [r2]
|
||||
mov r2, r8
|
||||
ldr r0, [r2]
|
||||
movs r3, #0xdb
|
||||
lsls r3, r3, #2
|
||||
adds r0, r0, r3
|
||||
strb r1, [r0]
|
||||
ldr r0, [r2]
|
||||
ldr r4, _0802FCC8 @ =0x0000036B
|
||||
adds r0, r0, r4
|
||||
strb r1, [r0]
|
||||
ldr r0, [r2]
|
||||
ldr r5, _0802FCCC @ =0x0000036D
|
||||
_0802FCB4:
|
||||
adds r0, r0, r5
|
||||
strb r1, [r0]
|
||||
_0802FCB8:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0802FCC4: .4byte 0x0000036A
|
||||
_0802FCC8: .4byte 0x0000036B
|
||||
_0802FCCC: .4byte 0x0000036D
|
||||
|
||||
thumb_func_start sub_2FCD0
|
||||
sub_2FCD0: @ 0x0802FCD0
|
||||
push {r4, r5, r6, r7, lr}
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -416,11 +416,12 @@ struct PinballGame
|
|||
/*0x35D*/ u8 filler35D[0x1];
|
||||
/*0x35E*/ u16 unk35E[4];
|
||||
/*0x366*/ s8 unk366;
|
||||
/*0x367*/ u8 filler367[0x3];
|
||||
/*0x36A*/ u8 unk36A[2];
|
||||
/*0x36C*/ u8 unk36C[2];
|
||||
/*0x367*/ u8 filler367[0x1];
|
||||
/*0x368*/ u16 unk368;
|
||||
/*0x36A*/ s8 unk36A[2];
|
||||
/*0x36C*/ s8 unk36C[2];
|
||||
/*0x36E*/ u16 unk36E[2];
|
||||
/*0x372*/ u8 filler372[0x4];
|
||||
/*0x372*/ u16 unk372[2];
|
||||
/*0x376*/ u16 unk376;
|
||||
/*0x378*/ s8 unk378;
|
||||
/*0x379*/ s8 unk379;
|
||||
|
|
|
|||
199
src/rom_2E67C.c
199
src/rom_2E67C.c
|
|
@ -17,6 +17,8 @@ extern const u8 gUnknown_08512C4C[][0x380];
|
|||
extern const u16 gUnknown_086B3CA4[][3][3];
|
||||
extern const u16 gUnknown_086B3B7E[][7][3];
|
||||
extern const u8 gUnknown_084ED6CC[][0x200];
|
||||
extern const s16 gUnknown_086AE4FC[][2];
|
||||
extern const s16 gUnknown_08137CD6[];
|
||||
|
||||
extern struct SongHeader gUnknown_086A11A4;
|
||||
|
||||
|
|
@ -514,3 +516,200 @@ void sub_2F504(void)
|
|||
gOamBuffer[oamSimple->oamId].y = oamSimple->yOffset + group->baseY;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_2F79C(void)
|
||||
{
|
||||
s16 i;
|
||||
u32 mosaicVal;
|
||||
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
switch (gCurrentPinballGame->unk36A[i])
|
||||
{
|
||||
case 0:
|
||||
if (gUnknown_086AE4FC[gCurrentPinballGame->unk36C[i]][1] > gCurrentPinballGame->unk36E[i])
|
||||
{
|
||||
gCurrentPinballGame->unk36E[i]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk36C[i]++;
|
||||
gCurrentPinballGame->unk36E[i] = 0;
|
||||
if (gCurrentPinballGame->unk36C[i] > 3)
|
||||
gCurrentPinballGame->unk36C[i] = 0;
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk372[i] < 152)
|
||||
gCurrentPinballGame->unk372[i]++;
|
||||
else
|
||||
gCurrentPinballGame->unk372[i] = 0;
|
||||
break;
|
||||
case 1:
|
||||
if (gUnknown_086AE4FC[gCurrentPinballGame->unk36C[i]][1] > gCurrentPinballGame->unk36E[i])
|
||||
{
|
||||
gCurrentPinballGame->unk36E[i]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk36C[i]++;
|
||||
gCurrentPinballGame->unk36E[i] = 0;
|
||||
if (gCurrentPinballGame->unk36C[i] == 5)
|
||||
{
|
||||
m4aSongNumStart(SE_UNKNOWN_0xE6);
|
||||
gCurrentPinballGame->unk3C = 2000;
|
||||
}
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk36C[i] == 6)
|
||||
{
|
||||
if (gCurrentPinballGame->unk376)
|
||||
{
|
||||
if (gCurrentPinballGame->unk376 == 1)
|
||||
{
|
||||
gCurrentPinballGame->unk36C[i] = 7;
|
||||
gCurrentPinballGame->unk36A[i] = 2;
|
||||
}
|
||||
}
|
||||
|
||||
gCurrentPinballGame->unk36E[i] = 0;
|
||||
}
|
||||
|
||||
gCurrentPinballGame->unk372[i] = 20;
|
||||
break;
|
||||
case 2:
|
||||
if (gUnknown_086AE4FC[gCurrentPinballGame->unk36C[i]][1] > gCurrentPinballGame->unk36E[i])
|
||||
{
|
||||
gCurrentPinballGame->unk36E[i]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk36C[i]++;
|
||||
gCurrentPinballGame->unk36E[i] = 0;
|
||||
if (gCurrentPinballGame->unk36C[i] == 8)
|
||||
m4aSongNumStart(SE_UNKNOWN_0xE7);
|
||||
|
||||
if (gCurrentPinballGame->unk36C[i] > 8)
|
||||
{
|
||||
gCurrentPinballGame->unk36C[i] = 0;
|
||||
gCurrentPinballGame->unk36A[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
gCurrentPinballGame->unk372[i] = 20;
|
||||
break;
|
||||
case 3:
|
||||
gCurrentPinballGame->unk36C[i] = 9;
|
||||
gCurrentPinballGame->unk36E[i] = 0;
|
||||
gCurrentPinballGame->unk36A[i] = 4;
|
||||
gCurrentPinballGame->unk372[i] = 20;
|
||||
break;
|
||||
case 4:
|
||||
if (gUnknown_086AE4FC[gCurrentPinballGame->unk36C[i]][1] > gCurrentPinballGame->unk36E[i])
|
||||
{
|
||||
gCurrentPinballGame->unk36E[i]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk36C[i]++;
|
||||
gCurrentPinballGame->unk36E[i] = 0;
|
||||
if (gCurrentPinballGame->unk36C[i] > 17)
|
||||
{
|
||||
if (gCurrentPinballGame->unk13 == 6)
|
||||
{
|
||||
gCurrentPinballGame->unk36C[i] = 0;
|
||||
gCurrentPinballGame->unk36A[i] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk36C[i] = 9;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
gCurrentPinballGame->unk372[i] = 20;
|
||||
break;
|
||||
case 5:
|
||||
if (gUnknown_086AE4FC[gCurrentPinballGame->unk36C[i]][1] > gCurrentPinballGame->unk36E[i])
|
||||
{
|
||||
gCurrentPinballGame->unk36E[i]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk36C[i]++;
|
||||
gCurrentPinballGame->unk36E[i] = 0;
|
||||
if (gCurrentPinballGame->unk36C[i] > 17)
|
||||
{
|
||||
gCurrentPinballGame->unk36A[i] = 0;
|
||||
gCurrentPinballGame->unk36C[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
gCurrentPinballGame->unk372[i] = 20;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk25 != 3)
|
||||
{
|
||||
if (gCurrentPinballGame->unk376)
|
||||
gCurrentPinballGame->unk376--;
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk1328)
|
||||
{
|
||||
gCurrentPinballGame->unk1328--;
|
||||
if (gCurrentPinballGame->unk1328 == 0)
|
||||
gCurrentPinballGame->unk1330 = gCurrentPinballGame->unk1334;
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk368)
|
||||
{
|
||||
if (gCurrentPinballGame->unk368 == 17)
|
||||
{
|
||||
m4aSongNumStart(SE_UNKNOWN_0xE8);
|
||||
gCurrentPinballGame->unk3C = 10;
|
||||
sub_11B0(13);
|
||||
}
|
||||
|
||||
mosaicVal = gUnknown_08137CD6[gCurrentPinballGame->unk368 / 3];
|
||||
REG_MOSAIC = (mosaicVal << 12) | (mosaicVal << 8) | (mosaicVal << 4) | (mosaicVal << 0);
|
||||
gCurrentPinballGame->unk368--;
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk13 > 2)
|
||||
{
|
||||
if (gCurrentPinballGame->unk13 != 6)
|
||||
{
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
if (gCurrentPinballGame->unk36A[i])
|
||||
{
|
||||
gCurrentPinballGame->unk36A[i] = 0;
|
||||
gCurrentPinballGame->unk36C[i] = 0;
|
||||
gCurrentPinballGame->unk36E[i] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (gCurrentPinballGame->unk72E > 2)
|
||||
{
|
||||
if (gCurrentPinballGame->evolvablePartySize > 0)
|
||||
{
|
||||
if (gCurrentPinballGame->unk36A[0] < 3)
|
||||
{
|
||||
gCurrentPinballGame->unk36A[0] = 3;
|
||||
gCurrentPinballGame->unk36A[1] = 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gCurrentPinballGame->unk36A[0] > 2)
|
||||
{
|
||||
gCurrentPinballGame->unk36A[0] = 0;
|
||||
gCurrentPinballGame->unk36C[0] = 0;
|
||||
gCurrentPinballGame->unk36A[1] = 0;
|
||||
gCurrentPinballGame->unk36C[1] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user