mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-03-21 17:24:13 -05:00
parent
4c3ce8fbff
commit
c8f45917ae
607
asm/rom_3219C.s
607
asm/rom_3219C.s
|
|
@ -10942,610 +10942,3 @@ _0803C6D0: .4byte 0x00001290
|
|||
_0803C6D4: .4byte 0x000004C9
|
||||
_0803C6D8: .4byte gMPlayInfo_BGM
|
||||
_0803C6DC: .4byte 0x0000FFFF
|
||||
|
||||
thumb_func_start sub_3C6E0
|
||||
sub_3C6E0: @ 0x0803C6E0
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #8
|
||||
ldr r7, _0803C820 @ =gMain+0x17D0 @gMain.spriteGroups[29]
|
||||
ldrh r0, [r7]
|
||||
ldr r1, _0803C824 @ =gCurrentPinballGame
|
||||
mov sl, r1
|
||||
cmp r0, #0
|
||||
bne _0803C6FA
|
||||
b _0803CA2E
|
||||
_0803C6FA:
|
||||
ldr r1, _0803C828 @ =gUnknown_086AF140
|
||||
mov r2, sl
|
||||
ldr r4, [r2]
|
||||
ldr r3, _0803C82C @ =0x000003E2
|
||||
adds r0, r4, r3
|
||||
movs r6, #0
|
||||
ldrsh r0, [r0, r6]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldrh r0, [r0]
|
||||
mov r8, r0
|
||||
movs r6, #0xfa
|
||||
lsls r6, r6, #2
|
||||
adds r0, r4, r6
|
||||
movs r1, #0
|
||||
ldrsh r0, [r0, r1]
|
||||
movs r1, #0xa
|
||||
bl __divsi3
|
||||
adds r0, #0x64
|
||||
adds r4, #0x58
|
||||
ldrh r1, [r4]
|
||||
subs r0, r0, r1
|
||||
strh r0, [r7, #2]
|
||||
mov r2, sl
|
||||
ldr r4, [r2]
|
||||
ldr r5, _0803C830 @ =0x000003EA
|
||||
adds r0, r4, r5
|
||||
movs r3, #0
|
||||
ldrsh r0, [r0, r3]
|
||||
movs r1, #0xa
|
||||
bl __divsi3
|
||||
adds r0, #0x54
|
||||
adds r4, #0x5a
|
||||
ldrh r1, [r4]
|
||||
subs r0, r0, r1
|
||||
strh r0, [r7, #4]
|
||||
mov r0, sl
|
||||
ldr r4, [r0]
|
||||
adds r6, r4, r6
|
||||
movs r1, #0
|
||||
ldrsh r0, [r6, r1]
|
||||
movs r1, #0xa
|
||||
bl __divsi3
|
||||
adds r0, #0x76
|
||||
movs r2, #0xa2
|
||||
lsls r2, r2, #2
|
||||
adds r1, r4, r2
|
||||
strh r0, [r1]
|
||||
adds r5, r4, r5
|
||||
movs r3, #0
|
||||
ldrsh r0, [r5, r3]
|
||||
movs r1, #0xa
|
||||
bl __divsi3
|
||||
adds r0, #0x3c
|
||||
ldr r2, _0803C834 @ =0x0000028A
|
||||
adds r1, r4, r2
|
||||
strh r0, [r1]
|
||||
movs r3, #0
|
||||
ldrsh r0, [r6, r3]
|
||||
movs r1, #0xa
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0xf
|
||||
adds r0, #0xb8
|
||||
movs r6, #0xfc
|
||||
lsls r6, r6, #2
|
||||
adds r1, r4, r6
|
||||
strh r0, [r1]
|
||||
movs r1, #0
|
||||
ldrsh r0, [r5, r1]
|
||||
movs r1, #0xa
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0xf
|
||||
adds r0, #0x9c
|
||||
ldr r2, _0803C838 @ =0x000003F2
|
||||
adds r4, r4, r2
|
||||
strh r0, [r4]
|
||||
movs r3, #4
|
||||
ldrsh r1, [r7, r3]
|
||||
movs r0, #0x3c
|
||||
rsbs r0, r0, #0
|
||||
cmp r1, r0
|
||||
bge _0803C7B2
|
||||
ldr r0, _0803C83C @ =0x0000FFC4
|
||||
strh r0, [r7, #4]
|
||||
_0803C7B2:
|
||||
movs r4, #4
|
||||
ldrsh r0, [r7, r4]
|
||||
cmp r0, #0xb4
|
||||
ble _0803C7BE
|
||||
movs r0, #0xb4
|
||||
strh r0, [r7, #4]
|
||||
_0803C7BE:
|
||||
mov r6, sl
|
||||
ldr r0, [r6]
|
||||
ldr r1, _0803C840 @ =0x00000389
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #9
|
||||
ble _0803C84C
|
||||
movs r2, #0
|
||||
ldr r4, _0803C844 @ =gOamBuffer
|
||||
ldr r3, _0803C848 @ =0xFFFFFE00
|
||||
mov r8, r3
|
||||
movs r6, #0xb0
|
||||
_0803C7DA:
|
||||
lsls r3, r2, #0x10
|
||||
asrs r3, r3, #0x10
|
||||
lsls r0, r3, #3
|
||||
adds r0, #8
|
||||
adds r5, r7, r0
|
||||
ldrh r2, [r5]
|
||||
lsls r2, r2, #3
|
||||
adds r2, r2, r4
|
||||
ldrh r1, [r2, #2]
|
||||
mov r0, r8
|
||||
ands r0, r1
|
||||
movs r1, #0xf0
|
||||
orrs r0, r1
|
||||
strh r0, [r2, #2]
|
||||
ldrh r0, [r5]
|
||||
lsls r0, r0, #3
|
||||
adds r0, r0, r4
|
||||
movs r1, #0xb4
|
||||
strb r1, [r0]
|
||||
ldrh r1, [r5]
|
||||
lsls r1, r1, #3
|
||||
adds r1, r1, r4
|
||||
ldrb r2, [r1, #5]
|
||||
movs r0, #0xf
|
||||
ands r0, r2
|
||||
orrs r0, r6
|
||||
strb r0, [r1, #5]
|
||||
adds r3, #1
|
||||
lsls r3, r3, #0x10
|
||||
lsrs r2, r3, #0x10
|
||||
asrs r3, r3, #0x10
|
||||
cmp r3, #0x12
|
||||
ble _0803C7DA
|
||||
b _0803CA2E
|
||||
.align 2, 0
|
||||
_0803C820: .4byte gMain+0x17D0 @gMain.spriteGroups[29]
|
||||
_0803C824: .4byte gCurrentPinballGame
|
||||
_0803C828: .4byte gUnknown_086AF140
|
||||
_0803C82C: .4byte 0x000003E2
|
||||
_0803C830: .4byte 0x000003EA
|
||||
_0803C834: .4byte 0x0000028A
|
||||
_0803C838: .4byte 0x000003F2
|
||||
_0803C83C: .4byte 0x0000FFC4
|
||||
_0803C840: .4byte 0x00000389
|
||||
_0803C844: .4byte gOamBuffer
|
||||
_0803C848: .4byte 0xFFFFFE00
|
||||
_0803C84C:
|
||||
cmp r0, #1
|
||||
bne _0803C8FC
|
||||
movs r2, #0
|
||||
mov r4, r8
|
||||
lsls r0, r4, #0x10
|
||||
ldr r6, _0803C8EC @ =gOamBuffer
|
||||
asrs r1, r0, #0x10
|
||||
movs r0, #0x72
|
||||
adds r3, r1, #0
|
||||
muls r3, r0, r3
|
||||
mov r8, r3
|
||||
ldr r4, _0803C8F0 @ =0xFFFFFE00
|
||||
mov ip, r4
|
||||
movs r0, #0xe0
|
||||
mov sb, r0
|
||||
_0803C86A:
|
||||
lsls r3, r2, #0x10
|
||||
asrs r3, r3, #0x10
|
||||
lsls r0, r3, #3
|
||||
adds r0, #8
|
||||
adds r5, r7, r0
|
||||
ldrh r0, [r5]
|
||||
lsls r0, r0, #3
|
||||
adds r2, r0, r6
|
||||
lsls r0, r3, #1
|
||||
adds r0, r0, r3
|
||||
lsls r0, r0, #1
|
||||
ldr r1, _0803C8F4 @ =gUnknown_086B65EA
|
||||
adds r0, r0, r1
|
||||
mov r4, r8
|
||||
adds r1, r4, r0
|
||||
ldrh r0, [r1]
|
||||
strh r0, [r2]
|
||||
adds r1, #2
|
||||
adds r2, #2
|
||||
ldrh r0, [r1]
|
||||
strh r0, [r2]
|
||||
ldrh r0, [r1, #2]
|
||||
strh r0, [r2, #2]
|
||||
ldrh r2, [r5]
|
||||
lsls r2, r2, #3
|
||||
adds r2, r2, r6
|
||||
ldrh r0, [r2, #2]
|
||||
lsls r1, r0, #0x17
|
||||
lsrs r1, r1, #0x17
|
||||
str r1, [sp]
|
||||
movs r4, #2
|
||||
ldrsh r1, [r7, r4]
|
||||
ldr r0, [sp]
|
||||
adds r1, r0, r1
|
||||
ldr r4, _0803C8F8 @ =0x000001FF
|
||||
ands r1, r4
|
||||
mov r0, ip
|
||||
ldrh r4, [r2, #2]
|
||||
ands r0, r4
|
||||
orrs r0, r1
|
||||
strh r0, [r2, #2]
|
||||
ldrh r1, [r5]
|
||||
lsls r1, r1, #3
|
||||
adds r1, r1, r6
|
||||
ldrb r0, [r7, #4]
|
||||
ldrb r2, [r1]
|
||||
adds r0, r0, r2
|
||||
strb r0, [r1]
|
||||
ldrh r1, [r5]
|
||||
lsls r1, r1, #3
|
||||
adds r1, r1, r6
|
||||
ldrb r2, [r1, #5]
|
||||
movs r0, #0xf
|
||||
ands r0, r2
|
||||
mov r4, sb
|
||||
orrs r0, r4
|
||||
strb r0, [r1, #5]
|
||||
adds r3, #1
|
||||
lsls r3, r3, #0x10
|
||||
lsrs r2, r3, #0x10
|
||||
asrs r3, r3, #0x10
|
||||
cmp r3, #0x12
|
||||
ble _0803C86A
|
||||
b _0803CA2E
|
||||
.align 2, 0
|
||||
_0803C8EC: .4byte gOamBuffer
|
||||
_0803C8F0: .4byte 0xFFFFFE00
|
||||
_0803C8F4: .4byte gUnknown_086B65EA
|
||||
_0803C8F8: .4byte 0x000001FF
|
||||
_0803C8FC:
|
||||
cmp r0, #3
|
||||
bne _0803C9AC
|
||||
movs r2, #0
|
||||
mov r6, r8
|
||||
lsls r0, r6, #0x10
|
||||
ldr r6, _0803C99C @ =gOamBuffer
|
||||
asrs r1, r0, #0x10
|
||||
movs r0, #0x72
|
||||
adds r3, r1, #0
|
||||
muls r3, r0, r3
|
||||
mov r8, r3
|
||||
ldr r4, _0803C9A0 @ =0xFFFFFE00
|
||||
mov ip, r4
|
||||
movs r0, #0xb0
|
||||
mov sb, r0
|
||||
_0803C91A:
|
||||
lsls r3, r2, #0x10
|
||||
asrs r3, r3, #0x10
|
||||
lsls r0, r3, #3
|
||||
adds r0, #8
|
||||
adds r5, r7, r0
|
||||
ldrh r0, [r5]
|
||||
lsls r0, r0, #3
|
||||
adds r2, r0, r6
|
||||
lsls r0, r3, #1
|
||||
adds r0, r0, r3
|
||||
lsls r0, r0, #1
|
||||
ldr r1, _0803C9A4 @ =gUnknown_086B65EA
|
||||
adds r0, r0, r1
|
||||
mov r4, r8
|
||||
adds r1, r4, r0
|
||||
ldrh r0, [r1]
|
||||
strh r0, [r2]
|
||||
adds r1, #2
|
||||
adds r2, #2
|
||||
ldrh r0, [r1]
|
||||
strh r0, [r2]
|
||||
ldrh r0, [r1, #2]
|
||||
strh r0, [r2, #2]
|
||||
ldrh r2, [r5]
|
||||
lsls r2, r2, #3
|
||||
adds r2, r2, r6
|
||||
ldrh r0, [r2, #2]
|
||||
lsls r1, r0, #0x17
|
||||
lsrs r1, r1, #0x17
|
||||
str r1, [sp]
|
||||
movs r4, #2
|
||||
ldrsh r1, [r7, r4]
|
||||
ldr r0, [sp]
|
||||
adds r1, r0, r1
|
||||
ldr r4, _0803C9A8 @ =0x000001FF
|
||||
ands r1, r4
|
||||
mov r0, ip
|
||||
ldrh r4, [r2, #2]
|
||||
ands r0, r4
|
||||
orrs r0, r1
|
||||
strh r0, [r2, #2]
|
||||
ldrh r1, [r5]
|
||||
lsls r1, r1, #3
|
||||
adds r1, r1, r6
|
||||
ldrb r0, [r7, #4]
|
||||
ldrb r2, [r1]
|
||||
adds r0, r0, r2
|
||||
strb r0, [r1]
|
||||
ldrh r1, [r5]
|
||||
lsls r1, r1, #3
|
||||
adds r1, r1, r6
|
||||
ldrb r2, [r1, #5]
|
||||
movs r0, #0xf
|
||||
ands r0, r2
|
||||
mov r4, sb
|
||||
orrs r0, r4
|
||||
strb r0, [r1, #5]
|
||||
adds r3, #1
|
||||
lsls r3, r3, #0x10
|
||||
lsrs r2, r3, #0x10
|
||||
asrs r3, r3, #0x10
|
||||
cmp r3, #0x12
|
||||
ble _0803C91A
|
||||
b _0803CA2E
|
||||
.align 2, 0
|
||||
_0803C99C: .4byte gOamBuffer
|
||||
_0803C9A0: .4byte 0xFFFFFE00
|
||||
_0803C9A4: .4byte gUnknown_086B65EA
|
||||
_0803C9A8: .4byte 0x000001FF
|
||||
_0803C9AC:
|
||||
movs r2, #0
|
||||
mov r6, r8
|
||||
lsls r0, r6, #0x10
|
||||
ldr r1, _0803CB6C @ =gOamBuffer
|
||||
mov sb, r1
|
||||
asrs r1, r0, #0x10
|
||||
movs r0, #0x72
|
||||
adds r3, r1, #0
|
||||
muls r3, r0, r3
|
||||
mov r8, r3
|
||||
ldr r4, _0803CB70 @ =0xFFFFFE00
|
||||
mov ip, r4
|
||||
_0803C9C4:
|
||||
lsls r3, r2, #0x10
|
||||
asrs r3, r3, #0x10
|
||||
lsls r0, r3, #3
|
||||
adds r0, #8
|
||||
adds r5, r7, r0
|
||||
ldrh r0, [r5]
|
||||
lsls r0, r0, #3
|
||||
mov r6, sb
|
||||
adds r2, r0, r6
|
||||
lsls r0, r3, #1
|
||||
adds r0, r0, r3
|
||||
lsls r0, r0, #1
|
||||
ldr r1, _0803CB74 @ =gUnknown_086B65EA
|
||||
adds r0, r0, r1
|
||||
mov r4, r8
|
||||
adds r1, r4, r0
|
||||
ldrh r0, [r1]
|
||||
strh r0, [r2]
|
||||
adds r1, #2
|
||||
adds r2, #2
|
||||
ldrh r0, [r1]
|
||||
strh r0, [r2]
|
||||
ldrh r0, [r1, #2]
|
||||
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 r6, #2
|
||||
ldrsh r0, [r7, r6]
|
||||
adds r1, r1, r0
|
||||
ldr r6, _0803CB78 @ =0x000001FF
|
||||
adds r0, r6, #0
|
||||
ands r1, r0
|
||||
mov r0, ip
|
||||
ands r0, r4
|
||||
orrs r0, r1
|
||||
strh r0, [r2, #2]
|
||||
ldrh r1, [r5]
|
||||
lsls r1, r1, #3
|
||||
add r1, sb
|
||||
ldrb r0, [r7, #4]
|
||||
ldrb r2, [r1]
|
||||
adds r0, r0, r2
|
||||
strb r0, [r1]
|
||||
adds r3, #1
|
||||
lsls r3, r3, #0x10
|
||||
lsrs r2, r3, #0x10
|
||||
asrs r3, r3, #0x10
|
||||
cmp r3, #0x12
|
||||
ble _0803C9C4
|
||||
_0803CA2E:
|
||||
ldr r7, _0803CB7C @ =gMain+0x1380 @gMain.spriteGroups[23]
|
||||
ldrh r0, [r7]
|
||||
cmp r0, #0
|
||||
bne _0803CA38
|
||||
b _0803CB98
|
||||
_0803CA38:
|
||||
mov r3, sl
|
||||
ldr r0, [r3]
|
||||
ldr r4, _0803CB80 @ =0x0000047E
|
||||
adds r1, r0, r4
|
||||
ldrb r2, [r1]
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #0
|
||||
ble _0803CA5E
|
||||
subs r0, r2, #1
|
||||
strb r0, [r1]
|
||||
ldr r0, [r3]
|
||||
adds r0, r0, r4
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0803CA5E
|
||||
strh r0, [r7]
|
||||
_0803CA5E:
|
||||
mov r6, sl
|
||||
ldr r4, [r6]
|
||||
ldr r1, _0803CB84 @ =0x0000047D
|
||||
adds r0, r4, r1
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
lsls r0, r0, #1
|
||||
adds r1, r0, #1
|
||||
ldr r2, _0803CB80 @ =0x0000047E
|
||||
adds r0, r4, r2
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bge _0803CA80
|
||||
adds r0, #3
|
||||
_0803CA80:
|
||||
asrs r0, r0, #2
|
||||
subs r0, r1, r0
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
mov r8, r0
|
||||
movs r3, #0xfa
|
||||
lsls r3, r3, #2
|
||||
adds r0, r4, r3
|
||||
movs r6, #0
|
||||
ldrsh r0, [r0, r6]
|
||||
movs r1, #0xa
|
||||
bl __divsi3
|
||||
adds r0, #0x64
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x58
|
||||
ldrh r1, [r1]
|
||||
subs r0, r0, r1
|
||||
strh r0, [r7, #2]
|
||||
ldr r1, _0803CB88 @ =0x000003EA
|
||||
adds r0, r4, r1
|
||||
movs r2, #0
|
||||
ldrsh r0, [r0, r2]
|
||||
movs r1, #0xa
|
||||
bl __divsi3
|
||||
adds r0, #0x54
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x5a
|
||||
ldrh r1, [r1]
|
||||
subs r0, r0, r1
|
||||
strh r0, [r7, #4]
|
||||
movs r2, #0
|
||||
ldr r3, _0803CB8C @ =gUnknown_086B6512
|
||||
mov sb, r3
|
||||
mov r4, r8
|
||||
lsls r1, r4, #0x10
|
||||
asrs r1, r1, #0x10
|
||||
lsls r0, r1, #3
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
mov r8, r0
|
||||
ldr r6, _0803CB70 @ =0xFFFFFE00
|
||||
mov ip, r6
|
||||
_0803CAD8:
|
||||
lsls r3, r2, #0x10
|
||||
asrs r3, r3, #0x10
|
||||
lsls r0, r3, #3
|
||||
adds r0, #8
|
||||
adds r5, r7, r0
|
||||
ldrh r0, [r5]
|
||||
lsls r0, r0, #3
|
||||
ldr r1, _0803CB6C @ =gOamBuffer
|
||||
adds r2, r0, r1
|
||||
lsls r0, r3, #1
|
||||
adds r0, r0, r3
|
||||
lsls r0, r0, #1
|
||||
add r0, sb
|
||||
mov r4, r8
|
||||
adds r1, r4, r0
|
||||
ldrh r0, [r1]
|
||||
strh r0, [r2]
|
||||
adds r1, #2
|
||||
adds r2, #2
|
||||
ldrh r0, [r1]
|
||||
strh r0, [r2]
|
||||
ldrh r0, [r1, #2]
|
||||
strh r0, [r2, #2]
|
||||
ldrh r2, [r5]
|
||||
lsls r2, r2, #3
|
||||
ldr r6, _0803CB6C @ =gOamBuffer
|
||||
adds r2, r2, r6
|
||||
ldrh r4, [r2, #2]
|
||||
lsls r1, r4, #0x17
|
||||
lsrs r1, r1, #0x17
|
||||
movs r6, #2
|
||||
ldrsh r0, [r7, r6]
|
||||
adds r1, r1, r0
|
||||
ldr r6, _0803CB78 @ =0x000001FF
|
||||
adds r0, r6, #0
|
||||
ands r1, r0
|
||||
mov r0, ip
|
||||
ands r0, r4
|
||||
orrs r0, r1
|
||||
strh r0, [r2, #2]
|
||||
ldrh r1, [r5]
|
||||
lsls r1, r1, #3
|
||||
ldr r0, _0803CB6C @ =gOamBuffer
|
||||
adds r1, r1, r0
|
||||
ldrb r0, [r7, #4]
|
||||
ldrb r2, [r1]
|
||||
adds r0, r0, r2
|
||||
strb r0, [r1]
|
||||
adds r3, #1
|
||||
lsls r3, r3, #0x10
|
||||
lsrs r2, r3, #0x10
|
||||
asrs r3, r3, #0x10
|
||||
cmp r3, #5
|
||||
ble _0803CAD8
|
||||
mov r3, sl
|
||||
ldr r0, [r3]
|
||||
ldr r4, _0803CB90 @ =0x000005A4
|
||||
adds r0, r0, r4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #2
|
||||
bne _0803CBAE
|
||||
ldr r0, _0803CB94 @ =gMain
|
||||
movs r6, #0x9c
|
||||
lsls r6, r6, #5
|
||||
adds r0, r0, r6
|
||||
movs r2, #0
|
||||
movs r1, #0
|
||||
strh r1, [r0]
|
||||
ldr r0, [r3]
|
||||
ldr r1, _0803CB80 @ =0x0000047E
|
||||
adds r0, r0, r1
|
||||
strb r2, [r0]
|
||||
b _0803CBAE
|
||||
.align 2, 0
|
||||
_0803CB6C: .4byte gOamBuffer
|
||||
_0803CB70: .4byte 0xFFFFFE00
|
||||
_0803CB74: .4byte gUnknown_086B65EA
|
||||
_0803CB78: .4byte 0x000001FF
|
||||
_0803CB7C: .4byte gMain+0x1380 @gMain.spriteGroups[23]
|
||||
_0803CB80: .4byte 0x0000047E
|
||||
_0803CB84: .4byte 0x0000047D
|
||||
_0803CB88: .4byte 0x000003EA
|
||||
_0803CB8C: .4byte gUnknown_086B6512
|
||||
_0803CB90: .4byte 0x000005A4
|
||||
_0803CB94: .4byte gMain
|
||||
_0803CB98:
|
||||
mov r2, sl
|
||||
ldr r0, [r2]
|
||||
ldr r3, _0803CBC0 @ =0x0000047E
|
||||
adds r0, r0, r3
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #8
|
||||
bne _0803CBAE
|
||||
movs r0, #1
|
||||
strh r0, [r7]
|
||||
_0803CBAE:
|
||||
add sp, #8
|
||||
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
|
||||
_0803CBC0: .4byte 0x0000047E
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -432,7 +432,7 @@ struct PinballGame
|
|||
/*0x46C*/ struct Vector16 unk46C[4];
|
||||
/*0x47C*/ u8 filler47C[0x1];
|
||||
/*0x47D*/ s8 unk47D;
|
||||
/*0x47E*/ u8 filler47E[0x1];
|
||||
/*0x47E*/ s8 unk47E;
|
||||
/*0x47F*/ s8 unk47F;
|
||||
/*0x480*/ u16 unk480;
|
||||
/*0x482*/ u16 unk482;
|
||||
|
|
|
|||
129
src/rom_49A34.c
129
src/rom_49A34.c
|
|
@ -123,6 +123,8 @@ extern const s16 gUnknown_086AF3B2[];
|
|||
extern const s16 gUnknown_086AF3BE[];
|
||||
extern const u16 gUnknown_086AF3C6[];
|
||||
extern const u16 gUnknown_086B63AA[][2][3];
|
||||
extern const u16 gUnknown_086B65EA[][19][3];
|
||||
extern const u16 gUnknown_086B6512[][6][3];
|
||||
extern const u16 gUnknown_086B63F2[][4][3];
|
||||
extern const u16 gUnknown_086B8AE0[][10][3];
|
||||
extern const s16 gUnknown_086AF3AC[];
|
||||
|
|
@ -131,6 +133,7 @@ extern const s8 gUnknown_084A11EC[][0x300];
|
|||
extern const u16 gUnknown_086AF2DC[][2];
|
||||
extern const struct Vector16 gUnknown_086AF2CC[];
|
||||
extern const s16 gUnknown_086AEE20[];
|
||||
extern const s16 gUnknown_086AF140[][2];
|
||||
|
||||
struct Unk_086AFAC0
|
||||
{
|
||||
|
|
@ -155,6 +158,132 @@ extern u8 gUnknown_0200FBB0[];
|
|||
extern u8 gUnknown_020030A0[];
|
||||
|
||||
|
||||
void sub_3C6E0(void)
|
||||
{
|
||||
s16 i;
|
||||
struct SpriteGroup *group;
|
||||
struct OamDataSimple *oamSimple;
|
||||
u16 *dst;
|
||||
const u16 *src;
|
||||
s16 var0;
|
||||
int palette;
|
||||
|
||||
group = &gMain.spriteGroups[29];
|
||||
if (group->available)
|
||||
{
|
||||
var0 = gUnknown_086AF140[gCurrentPinballGame->unk3E2][0];
|
||||
group->baseX = gCurrentPinballGame->unk3E8 / 10 + 100u - gCurrentPinballGame->unk58;
|
||||
group->baseY = gCurrentPinballGame->unk3EA / 10 + 84u - gCurrentPinballGame->unk5A;
|
||||
gCurrentPinballGame->unk288 = gCurrentPinballGame->unk3E8 / 10 + 118;
|
||||
gCurrentPinballGame->unk28A = gCurrentPinballGame->unk3EA / 10 + 60;
|
||||
gCurrentPinballGame->unk3F0 = (gCurrentPinballGame->unk3E8 / 10) * 2 + 184;
|
||||
gCurrentPinballGame->unk3F2 = (gCurrentPinballGame->unk3EA / 10) * 2 + 156;
|
||||
if (group->baseY < -60)
|
||||
group->baseY = -60;
|
||||
if (group->baseY > 180)
|
||||
group->baseY = 180;
|
||||
|
||||
if (gCurrentPinballGame->unk389 > 9)
|
||||
{
|
||||
palette = 11;
|
||||
for (i = 0; i < 19; i++)
|
||||
{
|
||||
oamSimple = &group->oam[i];
|
||||
gOamBuffer[oamSimple->oamId].x = 240;
|
||||
gOamBuffer[oamSimple->oamId].y = 180;
|
||||
gOamBuffer[oamSimple->oamId].paletteNum = palette;
|
||||
}
|
||||
}
|
||||
else if (gCurrentPinballGame->unk389 == 1)
|
||||
{
|
||||
palette = 14;
|
||||
for (i = 0; i < 19; i++)
|
||||
{
|
||||
oamSimple = &group->oam[i];
|
||||
dst = (u16*)&gOamBuffer[oamSimple->oamId];
|
||||
src = gUnknown_086B65EA[var0][i];
|
||||
*dst++ = *src++;
|
||||
*dst++ = *src++;
|
||||
*dst++ = *src++;
|
||||
|
||||
gOamBuffer[oamSimple->oamId].x += group->baseX;
|
||||
gOamBuffer[oamSimple->oamId].y += group->baseY;
|
||||
gOamBuffer[oamSimple->oamId].paletteNum = palette;
|
||||
}
|
||||
}
|
||||
else if (gCurrentPinballGame->unk389 == 3)
|
||||
{
|
||||
palette = 11;
|
||||
for (i = 0; i < 19; i++)
|
||||
{
|
||||
oamSimple = &group->oam[i];
|
||||
dst = (u16*)&gOamBuffer[oamSimple->oamId];
|
||||
src = gUnknown_086B65EA[var0][i];
|
||||
*dst++ = *src++;
|
||||
*dst++ = *src++;
|
||||
*dst++ = *src++;
|
||||
|
||||
gOamBuffer[oamSimple->oamId].x += group->baseX;
|
||||
gOamBuffer[oamSimple->oamId].y += group->baseY;
|
||||
gOamBuffer[oamSimple->oamId].paletteNum = palette;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = 0; i < 19; i++)
|
||||
{
|
||||
oamSimple = &group->oam[i];
|
||||
dst = (u16*)&gOamBuffer[oamSimple->oamId];
|
||||
src = gUnknown_086B65EA[var0][i];
|
||||
*dst++ = *src++;
|
||||
*dst++ = *src++;
|
||||
*dst++ = *src++;
|
||||
|
||||
gOamBuffer[oamSimple->oamId].x += group->baseX;
|
||||
gOamBuffer[oamSimple->oamId].y += group->baseY;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
group = &gMain.spriteGroups[23];
|
||||
if (group->available)
|
||||
{
|
||||
if (gCurrentPinballGame->unk47E > 0)
|
||||
{
|
||||
gCurrentPinballGame->unk47E--;
|
||||
if (gCurrentPinballGame->unk47E == 0)
|
||||
group->available = 0;
|
||||
}
|
||||
|
||||
var0 = gCurrentPinballGame->unk47D * 2 - (gCurrentPinballGame->unk47E / 4 - 1);
|
||||
group->baseX = gCurrentPinballGame->unk3E8 / 10 + 100u - gCurrentPinballGame->unk58;
|
||||
group->baseY = gCurrentPinballGame->unk3EA / 10 + 84u - gCurrentPinballGame->unk5A;
|
||||
for (i = 0; i < 6; i++)
|
||||
{
|
||||
oamSimple = &group->oam[i];
|
||||
dst = (u16*)&gOamBuffer[oamSimple->oamId];
|
||||
src = gUnknown_086B6512[var0][i];
|
||||
*dst++ = *src++;
|
||||
*dst++ = *src++;
|
||||
*dst++ = *src++;
|
||||
|
||||
gOamBuffer[oamSimple->oamId].x += group->baseX;
|
||||
gOamBuffer[oamSimple->oamId].y += group->baseY;
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk5A4 == 2)
|
||||
{
|
||||
gMain.spriteGroups[23].available = 0;
|
||||
gCurrentPinballGame->unk47E = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gCurrentPinballGame->unk47E == 8)
|
||||
group->available = 1;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_3CBC4(void)
|
||||
{
|
||||
s16 i, j;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user