pokeruby/asm/sound_check_menu.s
2017-05-21 20:21:00 +02:00

2445 lines
42 KiB
ArmAsm

.include "constants/gba_constants.inc"
.include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_80BA0A8
sub_80BA0A8: @ 80BA0A8
push {lr}
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_80BA0A8
thumb_func_start sub_80BA0C0
sub_80BA0C0: @ 80BA0C0
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
ldr r0, _080BA0E8 @ =gUnknown_020387B0
ldrb r0, [r0]
cmp r0, 0
beq _080BA0E2
bl m4aSoundMain
bl m4aSoundMain
bl m4aSoundMain
_080BA0E2:
pop {r0}
bx r0
.align 2, 0
_080BA0E8: .4byte gUnknown_020387B0
thumb_func_end sub_80BA0C0
thumb_func_start unref_sub_80BA0EC
unref_sub_80BA0EC: @ 80BA0EC
push {r4-r6,lr}
sub sp, 0xC
movs r0, 0
bl SetVBlankCallback
movs r6, 0x80
lsls r6, 19
movs r5, 0
strh r5, [r6]
ldr r0, _080BA20C @ =REG_BG2CNT
strh r5, [r0]
subs r0, 0x2
strh r5, [r0]
subs r0, 0x2
strh r5, [r0]
adds r0, 0x10
strh r5, [r0]
adds r0, 0x2
strh r5, [r0]
subs r0, 0x6
strh r5, [r0]
adds r0, 0x2
strh r5, [r0]
subs r0, 0x6
strh r5, [r0]
adds r0, 0x2
strh r5, [r0]
add r0, sp, 0x4
strh r5, [r0]
ldr r1, _080BA210 @ =0x040000d4
str r0, [r1]
movs r0, 0xC0
lsls r0, 19
str r0, [r1, 0x4]
ldr r0, _080BA214 @ =0x8100c000
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
movs r4, 0
str r4, [sp, 0x8]
add r0, sp, 0x8
str r0, [r1]
movs r0, 0xE0
lsls r0, 19
str r0, [r1, 0x4]
ldr r0, _080BA218 @ =0x85000100
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
add r0, sp, 0x4
strh r4, [r0]
str r0, [r1]
movs r0, 0xA0
lsls r0, 19
str r0, [r1, 0x4]
ldr r0, _080BA21C @ =0x81000200
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
bl ResetPaletteFade
bl ResetTasks
bl ResetSpriteData
ldr r0, _080BA220 @ =gWindowConfig_81E6C3C
bl SetUpWindowConfig
ldr r0, _080BA224 @ =gWindowConfig_81E6CE4
bl InitMenuWindow
movs r0, 0x1
negs r0, r0
str r4, [sp]
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldr r0, _080BA228 @ =REG_WIN0H
strh r4, [r0]
adds r0, 0x4
strh r4, [r0]
subs r0, 0x2
strh r4, [r0]
adds r0, 0x4
strh r4, [r0]
ldr r1, _080BA22C @ =REG_WININ
ldr r2, _080BA230 @ =0x00001111
adds r0, r2, 0
strh r0, [r1]
adds r1, 0x2
movs r0, 0x31
strh r0, [r1]
adds r1, 0x6
movs r0, 0xE1
strh r0, [r1]
ldr r0, _080BA234 @ =REG_BLDALPHA
strh r4, [r0]
adds r1, 0x4
movs r0, 0x7
strh r0, [r1]
ldr r1, _080BA238 @ =0x04000200
movs r2, 0x1
strh r2, [r1]
ldrh r0, [r1]
orrs r0, r2
strh r0, [r1]
ldr r2, _080BA23C @ =REG_DISPSTAT
ldrh r0, [r2]
movs r1, 0x8
orrs r0, r1
strh r0, [r2]
ldr r0, _080BA240 @ =sub_80BA0C0
bl SetVBlankCallback
ldr r0, _080BA244 @ =sub_80BA0A8
bl SetMainCallback2
ldr r1, _080BA248 @ =0x00007140
adds r0, r1, 0
strh r0, [r6]
ldr r0, _080BA24C @ =sub_80BA258
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _080BA250 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r4, [r1, 0x8]
strh r4, [r1, 0xA]
strh r4, [r1, 0xC]
strh r4, [r1, 0xE]
ldr r0, _080BA254 @ =gUnknown_020387B0
strb r5, [r0]
strh r4, [r1, 0xE]
bl m4aSoundInit
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080BA20C: .4byte REG_BG2CNT
_080BA210: .4byte 0x040000d4
_080BA214: .4byte 0x8100c000
_080BA218: .4byte 0x85000100
_080BA21C: .4byte 0x81000200
_080BA220: .4byte gWindowConfig_81E6C3C
_080BA224: .4byte gWindowConfig_81E6CE4
_080BA228: .4byte REG_WIN0H
_080BA22C: .4byte REG_WININ
_080BA230: .4byte 0x00001111
_080BA234: .4byte REG_BLDALPHA
_080BA238: .4byte 0x04000200
_080BA23C: .4byte REG_DISPSTAT
_080BA240: .4byte sub_80BA0C0
_080BA244: .4byte sub_80BA0A8
_080BA248: .4byte 0x00007140
_080BA24C: .4byte sub_80BA258
_080BA250: .4byte gTasks
_080BA254: .4byte gUnknown_020387B0
thumb_func_end unref_sub_80BA0EC
thumb_func_start sub_80BA258
sub_80BA258: @ 80BA258
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x40
lsls r0, 24
lsrs r0, 24
mov r9, r0
ldr r1, _080BA354 @ =gDebugText_SoundCheckJap
mov r0, sp
movs r2, 0x9
bl memcpy
add r7, sp, 0xC
ldr r1, _080BA358 @ =gDebugText_BGM
adds r0, r7, 0
movs r2, 0x4
bl memcpy
add r0, sp, 0x10
mov r8, r0
ldr r1, _080BA35C @ =gDebugText_SE
movs r2, 0x4
bl memcpy
add r5, sp, 0x14
ldr r1, _080BA360 @ =gUnknown_083D02D9
adds r0, r5, 0
movs r2, 0xD
bl memcpy
add r4, sp, 0x24
ldr r1, _080BA364 @ =gDebugText_UpDown
adds r0, r4, 0
movs r2, 0xC
bl memcpy
add r6, sp, 0x30
ldr r1, _080BA368 @ =gDebugText_DriverTest
adds r0, r6, 0
movs r2, 0xE
bl memcpy
ldr r0, _080BA36C @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080BA344
movs r0, 0x2
movs r1, 0
movs r2, 0x1B
movs r3, 0x3
bl MenuDrawTextWindow
movs r0, 0x2
movs r1, 0x5
movs r2, 0x1B
movs r3, 0xA
bl MenuDrawTextWindow
movs r0, 0x2
movs r1, 0xC
movs r2, 0x1B
movs r3, 0x11
bl MenuDrawTextWindow
mov r0, sp
movs r1, 0x4
movs r2, 0x1
bl MenuPrint
adds r0, r5, 0
movs r1, 0xE
movs r2, 0x1
bl MenuPrint
adds r0, r7, 0
movs r1, 0x4
movs r2, 0x6
bl MenuPrint
adds r0, r4, 0
movs r1, 0xE
movs r2, 0x6
bl MenuPrint
mov r0, r8
movs r1, 0x4
movs r2, 0xD
bl MenuPrint
adds r0, r4, 0
movs r1, 0xE
movs r2, 0xD
bl MenuPrint
adds r0, r6, 0
movs r1, 0xE
movs r2, 0x12
bl MenuPrint
ldr r1, _080BA370 @ =gTasks
mov r2, r9
lsls r0, r2, 2
add r0, r9
lsls r0, 3
adds r0, r1
ldr r1, _080BA374 @ =sub_80BA384
str r1, [r0]
ldr r1, _080BA378 @ =REG_WIN0H
ldr r2, _080BA37C @ =0x000011df
adds r0, r2, 0
strh r0, [r1]
adds r1, 0x4
ldr r2, _080BA380 @ =0x0000011f
adds r0, r2, 0
strh r0, [r1]
_080BA344:
add sp, 0x40
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080BA354: .4byte gDebugText_SoundCheckJap
_080BA358: .4byte gDebugText_BGM
_080BA35C: .4byte gDebugText_SE
_080BA360: .4byte gUnknown_083D02D9
_080BA364: .4byte gDebugText_UpDown
_080BA368: .4byte gDebugText_DriverTest
_080BA36C: .4byte gPaletteFade
_080BA370: .4byte gTasks
_080BA374: .4byte sub_80BA384
_080BA378: .4byte REG_WIN0H
_080BA37C: .4byte 0x000011df
_080BA380: .4byte 0x0000011f
thumb_func_end sub_80BA258
thumb_func_start sub_80BA384
sub_80BA384: @ 80BA384
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r1, _080BA3EC @ =gTasks
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
adds r4, r1
ldrb r0, [r4, 0x8]
bl sub_80BA6B8
ldr r1, _080BA3F0 @ =0x0000015d
adds r0, r1, 0
ldrh r2, [r4, 0xA]
adds r0, r2
lsls r0, 16
lsrs r0, 16
movs r1, 0x7
movs r2, 0x8
bl sub_80BA700
ldr r1, _080BA3F4 @ =gBGMNames
movs r2, 0xA
ldrsh r0, [r4, r2]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0xB
movs r2, 0x8
bl sub_80BA79C
ldrh r0, [r4, 0xC]
movs r1, 0x7
movs r2, 0xF
bl sub_80BA700
ldr r1, _080BA3F8 @ =gSENames
movs r2, 0xC
ldrsh r0, [r4, r2]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0xB
movs r2, 0xF
bl sub_80BA79C
ldr r0, _080BA3FC @ =sub_80BA65C
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080BA3EC: .4byte gTasks
_080BA3F0: .4byte 0x0000015d
_080BA3F4: .4byte gBGMNames
_080BA3F8: .4byte gSENames
_080BA3FC: .4byte sub_80BA65C
thumb_func_end sub_80BA384
thumb_func_start sub_80BA400
sub_80BA400: @ 80BA400
push {r4-r6,lr}
sub sp, 0x4
lsls r0, 24
lsrs r4, r0, 24
ldr r2, _080BA428 @ =gMain
ldrh r1, [r2, 0x2E]
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
beq _080BA434
ldr r0, _080BA42C @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, _080BA430 @ =sub_80BA800
str r0, [r1]
b _080BA64C
.align 2, 0
_080BA428: .4byte gMain
_080BA42C: .4byte gTasks
_080BA430: .4byte sub_80BA800
_080BA434:
movs r0, 0x80
lsls r0, 2
ands r0, r1
cmp r0, 0
beq _080BA458
ldr r0, _080BA450 @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, _080BA454 @ =sub_80BAF84
str r0, [r1]
b _080BA64C
.align 2, 0
_080BA450: .4byte gTasks
_080BA454: .4byte sub_80BAF84
_080BA458:
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _080BA478
ldr r0, _080BA470 @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, _080BA474 @ =sub_80BB25C
str r0, [r1]
b _080BA64C
.align 2, 0
_080BA470: .4byte gTasks
_080BA474: .4byte sub_80BB25C
_080BA478:
movs r6, 0x1
movs r5, 0x1
ands r5, r1
cmp r5, 0
beq _080BA538
ldr r0, _080BA4AC @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r5, r1, r0
movs r1, 0x8
ldrsh r0, [r5, r1]
cmp r0, 0
beq _080BA4D0
movs r2, 0x10
ldrsh r0, [r5, r2]
cmp r0, 0
beq _080BA4BA
movs r3, 0xC
ldrsh r4, [r5, r3]
cmp r4, 0
beq _080BA4B0
ldrh r0, [r5, 0x10]
bl m4aSongNumStop
b _080BA4C4
.align 2, 0
_080BA4AC: .4byte gTasks
_080BA4B0:
ldrh r0, [r5, 0x10]
bl m4aSongNumStop
strh r4, [r5, 0x10]
b _080BA64C
_080BA4BA:
movs r4, 0xC
ldrsh r0, [r5, r4]
cmp r0, 0
bne _080BA4C4
b _080BA64C
_080BA4C4:
ldrh r0, [r5, 0xC]
bl m4aSongNumStart
ldrh r0, [r5, 0xC]
strh r0, [r5, 0x10]
b _080BA64C
_080BA4D0:
ldrh r1, [r5, 0xE]
movs r2, 0xE
ldrsh r0, [r5, r2]
cmp r0, 0
beq _080BA514
movs r3, 0xA
ldrsh r4, [r5, r3]
cmp r4, 0
beq _080BA500
ldr r0, _080BA4FC @ =0x0000015d
adds r4, r0, 0
adds r0, r1, r4
lsls r0, 16
lsrs r0, 16
bl m4aSongNumStop
ldrh r1, [r5, 0xA]
adds r4, r1
lsls r4, 16
lsrs r4, 16
adds r0, r4, 0
b _080BA528
.align 2, 0
_080BA4FC: .4byte 0x0000015d
_080BA500:
ldr r2, _080BA510 @ =0x0000015d
adds r0, r1, r2
lsls r0, 16
lsrs r0, 16
bl m4aSongNumStop
strh r4, [r5, 0xE]
b _080BA64C
.align 2, 0
_080BA510: .4byte 0x0000015d
_080BA514:
ldrh r1, [r5, 0xA]
movs r3, 0xA
ldrsh r0, [r5, r3]
cmp r0, 0
bne _080BA520
b _080BA64C
_080BA520:
ldr r4, _080BA534 @ =0x0000015d
adds r0, r1, r4
lsls r0, 16
lsrs r0, 16
_080BA528:
bl m4aSongNumStart
ldrh r0, [r5, 0xA]
strh r0, [r5, 0xE]
b _080BA64C
.align 2, 0
_080BA534: .4byte 0x0000015d
_080BA538:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _080BA570
movs r0, 0x5
bl m4aSongNumStart
movs r0, 0x1
negs r0, r0
str r5, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, _080BA568 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _080BA56C @ =sub_80BA68C
str r1, [r0]
b _080BA64C
.align 2, 0
_080BA568: .4byte gTasks
_080BA56C: .4byte sub_80BA68C
_080BA570:
ldrh r1, [r2, 0x30]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _080BA582
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _080BA59C
_080BA582:
ldr r0, _080BA598 @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x8]
eors r0, r6
strh r0, [r1, 0x8]
_080BA592:
movs r0, 0x1
b _080BA64E
.align 2, 0
_080BA598: .4byte gTasks
_080BA59C:
movs r0, 0x10
ands r0, r1
lsls r0, 16
lsrs r3, r0, 16
cmp r3, 0
beq _080BA5EA
ldr r0, _080BA5CC @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
movs r2, 0x8
ldrsh r0, [r1, r2]
cmp r0, 0
beq _080BA5D6
ldrh r2, [r1, 0xC]
movs r3, 0xC
ldrsh r0, [r1, r3]
cmp r0, 0
ble _080BA5D0
subs r0, r2, 0x1
strh r0, [r1, 0xC]
b _080BA592
.align 2, 0
_080BA5CC: .4byte gTasks
_080BA5D0:
movs r0, 0xF7
strh r0, [r1, 0xC]
b _080BA592
_080BA5D6:
ldrh r2, [r1, 0xA]
movs r4, 0xA
ldrsh r0, [r1, r4]
cmp r0, 0
ble _080BA5E4
subs r0, r2, 0x1
b _080BA5E6
_080BA5E4:
movs r0, 0x75
_080BA5E6:
strh r0, [r1, 0xA]
b _080BA592
_080BA5EA:
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _080BA630
ldr r1, _080BA614 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r1, r0, r1
movs r0, 0x8
ldrsh r2, [r1, r0]
cmp r2, 0
beq _080BA61C
ldrh r2, [r1, 0xC]
movs r4, 0xC
ldrsh r0, [r1, r4]
cmp r0, 0xF6
bgt _080BA618
adds r0, r2, 0x1
strh r0, [r1, 0xC]
b _080BA592
.align 2, 0
_080BA614: .4byte gTasks
_080BA618:
strh r3, [r1, 0xC]
b _080BA592
_080BA61C:
ldrh r3, [r1, 0xA]
movs r4, 0xA
ldrsh r0, [r1, r4]
cmp r0, 0x74
bgt _080BA62C
adds r0, r3, 0x1
strh r0, [r1, 0xA]
b _080BA592
_080BA62C:
strh r2, [r1, 0xA]
b _080BA592
_080BA630:
ldrh r1, [r2, 0x2C]
movs r0, 0x4
ands r0, r1
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0
beq _080BA648
ldr r0, _080BA644 @ =gUnknown_020387B0
strb r6, [r0]
b _080BA64C
.align 2, 0
_080BA644: .4byte gUnknown_020387B0
_080BA648:
ldr r0, _080BA658 @ =gUnknown_020387B0
strb r1, [r0]
_080BA64C:
movs r0, 0
_080BA64E:
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_080BA658: .4byte gUnknown_020387B0
thumb_func_end sub_80BA400
thumb_func_start sub_80BA65C
sub_80BA65C: @ 80BA65C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
bl sub_80BA400
lsls r0, 24
cmp r0, 0
beq _080BA67C
ldr r0, _080BA684 @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, _080BA688 @ =sub_80BA384
str r0, [r1]
_080BA67C:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080BA684: .4byte gTasks
_080BA688: .4byte sub_80BA384
thumb_func_end sub_80BA65C
thumb_func_start sub_80BA68C
sub_80BA68C: @ 80BA68C
push {lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r0, _080BA6B0 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080BA6AA
adds r0, r2, 0
bl DestroyTask
ldr r0, _080BA6B4 @ =CB2_InitTitleScreen
bl SetMainCallback2
_080BA6AA:
pop {r0}
bx r0
.align 2, 0
_080BA6B0: .4byte gPaletteFade
_080BA6B4: .4byte CB2_InitTitleScreen
thumb_func_end sub_80BA68C
thumb_func_start sub_80BA6B8
sub_80BA6B8: @ 80BA6B8
push {lr}
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _080BA6C6
cmp r0, 0x1
beq _080BA6E0
_080BA6C6:
ldr r1, _080BA6D4 @ =REG_WIN1H
ldr r2, _080BA6D8 @ =0x000011df
adds r0, r2, 0
strh r0, [r1]
adds r1, 0x4
ldr r2, _080BA6DC @ =0x00002957
b _080BA6EC
.align 2, 0
_080BA6D4: .4byte REG_WIN1H
_080BA6D8: .4byte 0x000011df
_080BA6DC: .4byte 0x00002957
_080BA6E0:
ldr r1, _080BA6F4 @ =REG_WIN1H
ldr r2, _080BA6F8 @ =0x000011df
adds r0, r2, 0
strh r0, [r1]
adds r1, 0x4
ldr r2, _080BA6FC @ =0x0000618f
_080BA6EC:
adds r0, r2, 0
strh r0, [r1]
pop {r0}
bx r0
.align 2, 0
_080BA6F4: .4byte REG_WIN1H
_080BA6F8: .4byte 0x000011df
_080BA6FC: .4byte 0x0000618f
thumb_func_end sub_80BA6B8
thumb_func_start sub_80BA700
sub_80BA700: @ 80BA700
push {r4-r7,lr}
sub sp, 0x8
lsls r0, 16
lsrs r5, r0, 16
lsls r1, 16
lsrs r6, r1, 16
lsls r2, 16
lsrs r7, r2, 16
movs r1, 0
movs r2, 0
_080BA714:
mov r3, sp
adds r0, r3, r1
strb r2, [r0]
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x2
bls _080BA714
mov r1, sp
movs r0, 0xB0
strb r0, [r1, 0x3]
movs r0, 0xFF
strb r0, [r1, 0x4]
movs r4, 0
adds r0, r5, 0
movs r1, 0x64
bl __udivsi3
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _080BA748
mov r1, sp
adds r0, 0xA1
strb r0, [r1]
movs r4, 0x1
_080BA748:
adds r0, r5, 0
movs r1, 0x64
bl __umodsi3
lsls r0, 16
lsrs r0, 16
movs r1, 0xA
bl __udivsi3
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _080BA766
cmp r4, 0
beq _080BA76C
_080BA766:
mov r1, sp
adds r0, 0xA1
strb r0, [r1, 0x1]
_080BA76C:
mov r4, sp
adds r0, r5, 0
movs r1, 0x64
bl __umodsi3
lsls r0, 16
lsrs r0, 16
movs r1, 0xA
bl __umodsi3
adds r0, 0xA1
strb r0, [r4, 0x2]
lsls r1, r6, 24
lsrs r1, 24
lsls r2, r7, 24
lsrs r2, 24
mov r0, sp
bl MenuPrint
add sp, 0x8
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80BA700
thumb_func_start sub_80BA79C
sub_80BA79C: @ 80BA79C
push {r4-r6,lr}
sub sp, 0xC
adds r4, r0, 0
lsls r1, 16
lsrs r6, r1, 16
lsls r2, 16
lsrs r5, r2, 16
movs r3, 0
movs r1, 0
_080BA7AE:
mov r2, sp
adds r0, r2, r3
strb r1, [r0]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0xA
bls _080BA7AE
mov r0, sp
movs r1, 0xFF
strb r1, [r0, 0xA]
movs r3, 0
ldrb r0, [r4]
lsls r2, r6, 24
lsls r5, 24
cmp r0, 0xFF
beq _080BA7EC
_080BA7D0:
mov r0, sp
adds r1, r0, r3
adds r0, r4, r3
ldrb r0, [r0]
strb r0, [r1]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
adds r0, r4, r3
ldrb r0, [r0]
cmp r0, 0xFF
beq _080BA7EC
cmp r3, 0x9
bls _080BA7D0
_080BA7EC:
lsrs r1, r2, 24
lsrs r2, r5, 24
mov r0, sp
bl MenuPrint
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_80BA79C
thumb_func_start sub_80BA800
sub_80BA800: @ 80BA800
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xCC
lsls r0, 24
str r0, [sp, 0xB0]
lsrs r2, r0, 24
str r2, [sp, 0xAC]
ldr r1, _080BA9E8 @ =gUnknown_083D0312
mov r0, sp
movs r2, 0xA
bl memcpy
mov r0, sp
adds r0, 0xC
str r0, [sp, 0xB4]
ldr r1, _080BA9EC @ =gUnknown_083D031C
movs r2, 0xB
bl memcpy
mov r2, sp
adds r2, 0x18
str r2, [sp, 0xB8]
ldr r1, _080BA9F0 @ =gDebugText_Voice
adds r0, r2, 0
movs r2, 0xA
bl memcpy
mov r0, sp
adds r0, 0x24
str r0, [sp, 0xBC]
ldr r1, _080BA9F4 @ =gDebugText_Volume
movs r2, 0xA
bl memcpy
mov r2, sp
adds r2, 0x30
str r2, [sp, 0xC0]
ldr r1, _080BA9F8 @ =gDebugText_Panpot
adds r0, r2, 0
movs r2, 0xA
bl memcpy
mov r0, sp
adds r0, 0x3C
str r0, [sp, 0xC4]
ldr r1, _080BA9FC @ =gDebugText_Pitch
movs r2, 0xA
bl memcpy
mov r2, sp
adds r2, 0x48
str r2, [sp, 0xC8]
ldr r1, _080BAA00 @ =gDebugText_Length
adds r0, r2, 0
movs r2, 0xA
bl memcpy
add r4, sp, 0x54
ldr r1, _080BAA04 @ =gDebugText_Release
adds r0, r4, 0
movs r2, 0xA
bl memcpy
add r7, sp, 0x60
ldr r1, _080BAA08 @ =gDebugText_Progress
adds r0, r7, 0
movs r2, 0xA
bl memcpy
add r0, sp, 0x6C
mov r10, r0
ldr r1, _080BAA0C @ =gDebugText_Chorus
movs r2, 0xA
bl memcpy
add r2, sp, 0x78
mov r9, r2
ldr r1, _080BAA10 @ =gDebugText_Priority
mov r0, r9
movs r2, 0xA
bl memcpy
add r0, sp, 0x84
mov r8, r0
ldr r1, _080BAA14 @ =gUnknown_083D0381
movs r2, 0x9
bl memcpy
add r6, sp, 0x90
ldr r1, _080BAA18 @ =gUnknown_083D038A
adds r0, r6, 0
movs r2, 0x9
bl memcpy
add r5, sp, 0x9C
ldr r1, _080BAA1C @ =gUnknown_083D0393
adds r0, r5, 0
movs r2, 0x9
bl memcpy
movs r1, 0x80
lsls r1, 19
movs r2, 0xC5
lsls r2, 6
adds r0, r2, 0
strh r0, [r1]
movs r0, 0
movs r1, 0
movs r2, 0x1D
movs r3, 0x13
bl MenuDrawTextWindow
mov r0, sp
movs r1, 0x13
movs r2, 0x4
bl MenuPrint
ldr r0, [sp, 0xB4]
movs r1, 0x13
movs r2, 0x2
bl MenuPrint
ldr r0, [sp, 0xB8]
movs r1, 0x2
movs r2, 0x1
bl MenuPrint
ldr r0, [sp, 0xBC]
movs r1, 0x2
movs r2, 0x3
bl MenuPrint
ldr r0, [sp, 0xC0]
movs r1, 0x2
movs r2, 0x5
bl MenuPrint
ldr r0, [sp, 0xC4]
movs r1, 0x2
movs r2, 0x7
bl MenuPrint
ldr r0, [sp, 0xC8]
movs r1, 0x2
movs r2, 0x9
bl MenuPrint
adds r0, r4, 0
movs r1, 0x2
movs r2, 0xB
bl MenuPrint
adds r0, r7, 0
movs r1, 0x2
movs r2, 0xD
bl MenuPrint
mov r0, r10
movs r1, 0x2
movs r2, 0xF
bl MenuPrint
mov r0, r9
movs r1, 0x2
movs r2, 0x11
bl MenuPrint
mov r0, r8
movs r1, 0x13
movs r2, 0x10
bl MenuPrint
adds r0, r6, 0
movs r1, 0x13
movs r2, 0xE
bl MenuPrint
adds r0, r5, 0
movs r1, 0x13
movs r2, 0xC
bl MenuPrint
ldr r1, _080BAA20 @ =REG_WIN0H
movs r0, 0xF0
strh r0, [r1]
adds r1, 0x4
movs r0, 0xA0
strh r0, [r1]
ldr r0, _080BAA24 @ =gUnknown_020387B3
movs r1, 0
strb r1, [r0]
ldr r0, _080BAA28 @ =gUnknown_020387B1
strb r1, [r0]
ldr r0, _080BAA2C @ =gUnknown_020387B2
strb r1, [r0]
ldr r0, _080BAA30 @ =gUnknown_03005D30
movs r2, 0
str r2, [r0]
ldr r0, _080BAA34 @ =gUnknown_020387D8
strb r2, [r0]
ldr r1, _080BAA38 @ =gUnknown_020387D9
movs r0, 0x1
strb r0, [r1]
ldr r0, _080BAA3C @ =gUnknown_020387B4
str r2, [r0]
movs r1, 0x78
str r1, [r0, 0x4]
str r2, [r0, 0x8]
movs r1, 0xF0
lsls r1, 6
str r1, [r0, 0xC]
movs r1, 0xB4
str r1, [r0, 0x10]
str r2, [r0, 0x18]
str r2, [r0, 0x14]
str r2, [r0, 0x1C]
movs r1, 0x2
str r1, [r0, 0x20]
bl sub_80BAD5C
movs r0, 0
movs r1, 0
bl sub_80BAE10
ldr r1, _080BAA40 @ =gTasks
ldr r2, [sp, 0xAC]
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r0, r1
ldr r1, _080BAA44 @ =sub_80BAA48
str r1, [r0]
add sp, 0xCC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080BA9E8: .4byte gUnknown_083D0312
_080BA9EC: .4byte gUnknown_083D031C
_080BA9F0: .4byte gDebugText_Voice
_080BA9F4: .4byte gDebugText_Volume
_080BA9F8: .4byte gDebugText_Panpot
_080BA9FC: .4byte gDebugText_Pitch
_080BAA00: .4byte gDebugText_Length
_080BAA04: .4byte gDebugText_Release
_080BAA08: .4byte gDebugText_Progress
_080BAA0C: .4byte gDebugText_Chorus
_080BAA10: .4byte gDebugText_Priority
_080BAA14: .4byte gUnknown_083D0381
_080BAA18: .4byte gUnknown_083D038A
_080BAA1C: .4byte gUnknown_083D0393
_080BAA20: .4byte REG_WIN0H
_080BAA24: .4byte gUnknown_020387B3
_080BAA28: .4byte gUnknown_020387B1
_080BAA2C: .4byte gUnknown_020387B2
_080BAA30: .4byte gUnknown_03005D30
_080BAA34: .4byte gUnknown_020387D8
_080BAA38: .4byte gUnknown_020387D9
_080BAA3C: .4byte gUnknown_020387B4
_080BAA40: .4byte gTasks
_080BAA44: .4byte sub_80BAA48
thumb_func_end sub_80BA800
thumb_func_start sub_80BAA48
sub_80BAA48: @ 80BAA48
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _080BAA90 @ =gMain
ldrh r2, [r1, 0x2E]
movs r0, 0x2
ands r0, r2
cmp r0, 0
beq _080BAAA8
movs r1, 0x80
lsls r1, 19
ldr r2, _080BAA94 @ =0x00007140
adds r0, r2, 0
strh r0, [r1]
adds r1, 0x40
ldr r2, _080BAA98 @ =0x000011df
adds r0, r2, 0
strh r0, [r1]
adds r1, 0x4
ldr r2, _080BAA9C @ =0x0000011f
adds r0, r2, 0
strh r0, [r1]
movs r0, 0
movs r1, 0
movs r2, 0x1D
movs r3, 0x13
bl MenuZeroFillWindowRect
ldr r1, _080BAAA0 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _080BAAA4 @ =sub_80BA258
str r1, [r0]
b _080BACC6
.align 2, 0
_080BAA90: .4byte gMain
_080BAA94: .4byte 0x00007140
_080BAA98: .4byte 0x000011df
_080BAA9C: .4byte 0x0000011f
_080BAAA0: .4byte gTasks
_080BAAA4: .4byte sub_80BA258
_080BAAA8:
ldrh r1, [r1, 0x30]
movs r0, 0x40
ands r0, r1
lsls r0, 16
lsrs r3, r0, 16
cmp r3, 0
beq _080BAAD0
ldr r1, _080BAACC @ =gUnknown_020387B3
ldrb r2, [r1]
subs r0, r2, 0x1
strb r0, [r1]
lsls r0, 24
cmp r0, 0
bge _080BAAEA
movs r0, 0x8
strb r0, [r1]
b _080BAAEA
.align 2, 0
_080BAACC: .4byte gUnknown_020387B3
_080BAAD0:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _080BAAF8
ldr r1, _080BAAF4 @ =gUnknown_020387B3
ldrb r2, [r1]
adds r0, r2, 0x1
strb r0, [r1]
lsls r0, 24
asrs r0, 24
cmp r0, 0x8
ble _080BAAEA
strb r3, [r1]
_080BAAEA:
ldrb r1, [r1]
adds r0, r2, 0
bl sub_80BAE10
b _080BACC6
.align 2, 0
_080BAAF4: .4byte gUnknown_020387B3
_080BAAF8:
movs r0, 0x8
ands r0, r2
cmp r0, 0
beq _080BAB14
ldr r0, _080BAB10 @ =gUnknown_020387D8
ldrb r1, [r0]
movs r2, 0x1
eors r1, r2
strb r1, [r0]
bl sub_80BAD5C
b _080BACC6
.align 2, 0
_080BAB10: .4byte gUnknown_020387D8
_080BAB14:
movs r0, 0x4
ands r0, r2
cmp r0, 0
beq _080BAB38
ldr r4, _080BAB34 @ =gUnknown_020387D9
ldrb r0, [r4]
movs r1, 0x1
eors r0, r1
strb r0, [r4]
bl sub_80BAD5C
ldrb r0, [r4]
bl SetPokemonCryStereo
b _080BACC6
.align 2, 0
_080BAB34: .4byte gUnknown_020387D9
_080BAB38:
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
beq _080BAB46
movs r0, 0xA
b _080BAB6E
_080BAB46:
movs r0, 0x80
lsls r0, 2
ands r0, r1
cmp r0, 0
beq _080BAB56
movs r0, 0xA
negs r0, r0
b _080BAB6E
_080BAB56:
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _080BAB64
movs r0, 0x1
negs r0, r0
b _080BAB6E
_080BAB64:
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _080BAB78
movs r0, 0x1
_080BAB6E:
bl sub_80BACDC
bl sub_80BAD5C
b _080BACC6
_080BAB78:
movs r0, 0x1
ands r0, r2
cmp r0, 0
bne _080BAB82
b _080BACA2
_080BAB82:
ldr r4, _080BABE4 @ =gUnknown_020387B4
ldrb r0, [r4, 0x4]
bl SetPokemonCryVolume
movs r0, 0x8
ldrsb r0, [r4, r0]
bl SetPokemonCryPanpot
movs r1, 0xC
ldrsh r0, [r4, r1]
bl SetPokemonCryPitch
ldrh r0, [r4, 0x10]
bl SetPokemonCryLength
ldr r0, [r4, 0x18]
bl SetPokemonCryProgress
ldrb r0, [r4, 0x14]
bl SetPokemonCryRelease
movs r0, 0x1C
ldrsb r0, [r4, r0]
bl SetPokemonCryChorus
ldr r0, [r4, 0x20]
lsls r0, 24
lsrs r0, 24
bl SetPokemonCryPriority
ldr r4, [r4]
adds r0, r4, 0
cmp r4, 0
bge _080BABC8
adds r0, 0x7F
_080BABC8:
asrs r2, r0, 7
lsls r0, r2, 7
subs r0, r4, r0
lsls r0, 24
lsrs r1, r0, 24
lsls r0, r2, 24
lsrs r0, 24
cmp r0, 0x1
beq _080BAC1C
cmp r0, 0x1
bgt _080BABE8
cmp r0, 0
beq _080BABF2
b _080BACA2
.align 2, 0
_080BABE4: .4byte gUnknown_020387B4
_080BABE8:
cmp r0, 0x2
beq _080BAC48
cmp r0, 0x3
beq _080BAC74
b _080BACA2
_080BABF2:
ldr r0, _080BAC04 @ =gUnknown_020387D8
ldrb r0, [r0]
cmp r0, 0
beq _080BAC0C
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _080BAC08 @ =voicegroup_84537C0
b _080BAC98
.align 2, 0
_080BAC04: .4byte gUnknown_020387D8
_080BAC08: .4byte voicegroup_84537C0
_080BAC0C:
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _080BAC18 @ =voicegroup_8452590
b _080BAC98
.align 2, 0
_080BAC18: .4byte voicegroup_8452590
_080BAC1C:
ldr r0, _080BAC30 @ =gUnknown_020387D8
ldrb r0, [r0]
cmp r0, 0
beq _080BAC38
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _080BAC34 @ =voicegroup_8453DC0
b _080BAC98
.align 2, 0
_080BAC30: .4byte gUnknown_020387D8
_080BAC34: .4byte voicegroup_8453DC0
_080BAC38:
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _080BAC44 @ =voicegroup_8452B90
b _080BAC98
.align 2, 0
_080BAC44: .4byte voicegroup_8452B90
_080BAC48:
ldr r0, _080BAC5C @ =gUnknown_020387D8
ldrb r0, [r0]
cmp r0, 0
beq _080BAC64
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _080BAC60 @ =voicegroup_84543C0
b _080BAC98
.align 2, 0
_080BAC5C: .4byte gUnknown_020387D8
_080BAC60: .4byte voicegroup_84543C0
_080BAC64:
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _080BAC70 @ =voicegroup_8453190
b _080BAC98
.align 2, 0
_080BAC70: .4byte voicegroup_8453190
_080BAC74:
ldr r0, _080BAC88 @ =gUnknown_020387D8
ldrb r0, [r0]
cmp r0, 0
beq _080BAC90
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _080BAC8C @ =voicegroup_84549C0
b _080BAC98
.align 2, 0
_080BAC88: .4byte gUnknown_020387D8
_080BAC8C: .4byte voicegroup_84549C0
_080BAC90:
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _080BACCC @ =voicegroup_8453790
_080BAC98:
adds r0, r1
bl SetPokemonCryTone
ldr r1, _080BACD0 @ =gUnknown_03005D30
str r0, [r1]
_080BACA2:
ldr r0, _080BACD0 @ =gUnknown_03005D30
ldr r0, [r0]
cmp r0, 0
beq _080BACC6
ldr r5, _080BACD4 @ =gUnknown_020387B1
bl IsPokemonCryPlaying
strb r0, [r5]
ldr r4, _080BACD8 @ =gUnknown_020387B2
lsls r0, 24
lsrs r0, 24
ldrb r2, [r4]
cmp r0, r2
beq _080BACC2
bl sub_80BAD5C
_080BACC2:
ldrb r0, [r5]
strb r0, [r4]
_080BACC6:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080BACCC: .4byte voicegroup_8453790
_080BACD0: .4byte gUnknown_03005D30
_080BACD4: .4byte gUnknown_020387B1
_080BACD8: .4byte gUnknown_020387B2
thumb_func_end sub_80BAA48
thumb_func_start sub_80BACDC
sub_80BACDC: @ 80BACDC
push {r4-r6,lr}
sub sp, 0x40
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r1, _080BAD50 @ =gUnknown_083D039C
mov r0, sp
movs r2, 0x40
bl memcpy
ldr r6, _080BAD54 @ =gUnknown_020387B4
ldr r5, _080BAD58 @ =gUnknown_020387B3
movs r1, 0
ldrsb r1, [r5, r1]
lsls r1, 2
adds r1, r6
lsls r4, 24
asrs r4, 24
ldr r0, [r1]
adds r0, r4
str r0, [r1]
movs r2, 0
ldrsb r2, [r5, r2]
lsls r0, r2, 2
adds r3, r0, r6
lsls r0, r2, 1
adds r0, 0x1
lsls r0, 2
add r0, sp
ldr r1, [r3]
ldr r0, [r0]
cmp r1, r0
ble _080BAD26
lsls r0, r2, 3
add r0, sp
ldr r0, [r0]
str r0, [r3]
_080BAD26:
movs r2, 0
ldrsb r2, [r5, r2]
lsls r0, r2, 2
adds r3, r0, r6
lsls r0, r2, 3
add r0, sp
ldr r1, [r3]
ldr r0, [r0]
cmp r1, r0
bge _080BAD46
lsls r0, r2, 1
adds r0, 0x1
lsls r0, 2
add r0, sp
ldr r0, [r0]
str r0, [r3]
_080BAD46:
add sp, 0x40
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080BAD50: .4byte gUnknown_083D039C
_080BAD54: .4byte gUnknown_020387B4
_080BAD58: .4byte gUnknown_020387B3
thumb_func_end sub_80BACDC
thumb_func_start sub_80BAD5C
sub_80BAD5C: @ 80BAD5C
push {r4,lr}
ldr r4, _080BAE00 @ =gUnknown_020387B4
ldr r0, [r4]
adds r0, 0x1
movs r1, 0xB
movs r2, 0x1
movs r3, 0x5
bl sub_80BAE78
ldr r0, [r4, 0x4]
movs r1, 0xB
movs r2, 0x3
movs r3, 0x5
bl sub_80BAE78
ldr r0, [r4, 0x8]
movs r1, 0xB
movs r2, 0x5
movs r3, 0x5
bl sub_80BAE78
ldr r0, [r4, 0xC]
movs r1, 0xB
movs r2, 0x7
movs r3, 0x5
bl sub_80BAE78
ldr r0, [r4, 0x10]
movs r1, 0xB
movs r2, 0x9
movs r3, 0x5
bl sub_80BAE78
ldr r0, [r4, 0x14]
movs r1, 0xB
movs r2, 0xB
movs r3, 0x5
bl sub_80BAE78
ldr r0, [r4, 0x18]
movs r1, 0xB
movs r2, 0xD
movs r3, 0x5
bl sub_80BAE78
ldr r0, [r4, 0x1C]
movs r1, 0xB
movs r2, 0xF
movs r3, 0x5
bl sub_80BAE78
ldr r0, [r4, 0x20]
movs r1, 0xB
movs r2, 0x11
movs r3, 0x5
bl sub_80BAE78
ldr r0, _080BAE04 @ =gUnknown_020387B1
ldrb r0, [r0]
movs r1, 0x1B
movs r2, 0x10
movs r3, 0x1
bl sub_80BAE78
ldr r0, _080BAE08 @ =gUnknown_020387D8
ldrb r0, [r0]
movs r1, 0x1B
movs r2, 0xE
movs r3, 0x1
bl sub_80BAE78
ldr r0, _080BAE0C @ =gUnknown_020387D9
ldrb r0, [r0]
movs r1, 0x1B
movs r2, 0xC
movs r3, 0x1
bl sub_80BAE78
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080BAE00: .4byte gUnknown_020387B4
_080BAE04: .4byte gUnknown_020387B1
_080BAE08: .4byte gUnknown_020387D8
_080BAE0C: .4byte gUnknown_020387D9
thumb_func_end sub_80BAD5C
thumb_func_start sub_80BAE10
sub_80BAE10: @ 80BAE10
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x8
adds r4, r0, 0
adds r5, r1, 0
lsls r4, 24
lsrs r4, 24
lsls r5, 24
lsrs r5, 24
ldr r1, _080BAE6C @ =gUnknown_083D03DC
mov r0, sp
movs r2, 0x2
bl memcpy
add r0, sp, 0x4
mov r8, r0
ldr r1, _080BAE70 @ =gUnknown_083D03DE
movs r2, 0x2
bl memcpy
ldr r6, _080BAE74 @ =gUnknown_083D0300
lsls r4, 1
adds r0, r4, r6
ldrb r1, [r0]
adds r4, 0x1
adds r4, r6
ldrb r2, [r4]
mov r0, r8
bl MenuPrint
lsls r5, 1
adds r0, r5, r6
ldrb r1, [r0]
adds r5, 0x1
adds r5, r6
ldrb r2, [r5]
mov r0, sp
bl MenuPrint
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080BAE6C: .4byte gUnknown_083D03DC
_080BAE70: .4byte gUnknown_083D03DE
_080BAE74: .4byte gUnknown_083D0300
thumb_func_end sub_80BAE10
thumb_func_start sub_80BAE78
sub_80BAE78: @ 80BAE78
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x2C
mov r8, r0
lsls r1, 16
lsrs r6, r1, 16
lsls r2, 16
lsrs r2, 16
lsls r3, 24
lsrs r7, r3, 24
mov r1, sp
ldr r0, _080BAF80 @ =gUnknown_083D03E0
ldm r0!, {r3-r5}
stm r1!, {r3-r5}
ldm r0!, {r3-r5}
stm r1!, {r3-r5}
movs r5, 0
add r0, sp, 0x18
mov r9, r0
cmp r5, r7
bgt _080BAEC0
mov r4, r9
movs r3, 0
_080BAEAC:
lsls r0, r5, 24
asrs r0, 24
adds r1, r4, r0
strb r3, [r1]
adds r0, 0x1
lsls r0, 24
lsrs r5, r0, 24
asrs r0, 24
cmp r0, r7
ble _080BAEAC
_080BAEC0:
adds r0, r7, 0x1
add r0, r9
movs r1, 0xFF
strb r1, [r0]
movs r1, 0
mov r3, r8
cmp r3, 0
bge _080BAED6
negs r3, r3
mov r8, r3
movs r1, 0x1
_080BAED6:
movs r4, 0
mov r10, r4
cmp r7, 0x1
bne _080BAEE2
movs r5, 0x1
mov r10, r5
_080BAEE2:
subs r0, r7, 0x1
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 24
lsls r6, 24
str r6, [sp, 0x24]
lsls r2, 24
str r2, [sp, 0x28]
cmp r0, 0
blt _080BAF62
str r1, [sp, 0x20]
_080BAEF8:
asrs r6, r0, 24
lsls r0, r6, 2
add r0, sp
ldr r1, [r0]
mov r0, r8
bl __divsi3
lsls r0, 24
lsrs r2, r0, 24
cmp r0, 0
bne _080BAF1A
mov r0, r10
cmp r0, 0
bne _080BAF1A
lsls r4, r5, 24
cmp r6, 0
bne _080BAF46
_080BAF1A:
lsls r4, r5, 24
ldr r3, [sp, 0x20]
cmp r3, 0
beq _080BAF34
mov r5, r10
cmp r5, 0
bne _080BAF34
asrs r0, r4, 24
subs r0, r7, r0
subs r0, 0x1
add r0, r9
movs r1, 0xAE
strb r1, [r0]
_080BAF34:
asrs r1, r4, 24
subs r1, r7, r1
add r1, r9
lsls r0, r2, 24
asrs r0, 24
subs r0, 0x5F
strb r0, [r1]
movs r0, 0x1
mov r10, r0
_080BAF46:
asrs r4, 24
lsls r0, r4, 2
add r0, sp
ldr r1, [r0]
mov r0, r8
bl __modsi3
mov r8, r0
subs r4, 0x1
lsls r4, 24
lsrs r5, r4, 24
lsls r0, r5, 24
cmp r0, 0
bge _080BAEF8
_080BAF62:
ldr r3, [sp, 0x24]
lsrs r1, r3, 24
ldr r4, [sp, 0x28]
lsrs r2, r4, 24
mov r0, r9
bl MenuPrint
add sp, 0x2C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080BAF80: .4byte gUnknown_083D03E0
thumb_func_end sub_80BAE78
thumb_func_start sub_80BAF84
sub_80BAF84: @ 80BAF84
push {r4-r6,lr}
sub sp, 0x14
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r1, _080BB01C @ =gOtherText_SE
mov r0, sp
movs r2, 0x3
bl memcpy
add r6, sp, 0x4
ldr r1, _080BB020 @ =gOtherText_Pan
adds r0, r6, 0
movs r2, 0x4
bl memcpy
add r5, sp, 0x8
ldr r1, _080BB024 @ =gUnknown_083D0381
adds r0, r5, 0
movs r2, 0x9
bl memcpy
movs r1, 0x80
lsls r1, 19
movs r2, 0xC5
lsls r2, 6
adds r0, r2, 0
strh r0, [r1]
movs r0, 0
movs r1, 0
movs r2, 0x1D
movs r3, 0x13
bl MenuDrawTextWindow
mov r0, sp
movs r1, 0x3
movs r2, 0x2
bl MenuPrint
adds r0, r6, 0
movs r1, 0x3
movs r2, 0x4
bl MenuPrint
adds r0, r5, 0
movs r1, 0x3
movs r2, 0x8
bl MenuPrint
ldr r1, _080BB028 @ =REG_WIN0H
movs r0, 0xF0
strh r0, [r1]
adds r1, 0x4
movs r0, 0xA0
strh r0, [r1]
ldr r1, _080BB02C @ =gUnknown_020387B4
movs r0, 0x1
str r0, [r1]
movs r0, 0
str r0, [r1, 0x8]
str r0, [r1, 0x1C]
str r0, [r1, 0x18]
str r0, [r1, 0x14]
bl sub_80BB1D4
ldr r1, _080BB030 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _080BB034 @ =sub_80BB038
str r1, [r0]
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080BB01C: .4byte gOtherText_SE
_080BB020: .4byte gOtherText_Pan
_080BB024: .4byte gUnknown_083D0381
_080BB028: .4byte REG_WIN0H
_080BB02C: .4byte gUnknown_020387B4
_080BB030: .4byte gTasks
_080BB034: .4byte sub_80BB038
thumb_func_end sub_80BAF84
thumb_func_start sub_80BB038
sub_80BB038: @ 80BB038
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
bl sub_80BB1D4
ldr r2, _080BB058 @ =gUnknown_020387B4
ldr r0, [r2, 0x18]
cmp r0, 0
beq _080BB0A2
ldr r0, [r2, 0x14]
cmp r0, 0
beq _080BB05C
subs r0, 0x1
str r0, [r2, 0x14]
b _080BB0A2
.align 2, 0
_080BB058: .4byte gUnknown_020387B4
_080BB05C:
ldr r0, _080BB088 @ =gUnknown_083D03F8
ldr r1, [r2, 0x8]
adds r1, r0
ldrb r1, [r1]
lsls r1, 24
asrs r1, 24
movs r0, 0x80
negs r0, r0
cmp r1, r0
beq _080BB08C
cmp r1, 0x7F
bne _080BB0A2
ldr r0, [r2, 0x1C]
adds r0, 0x2
str r0, [r2, 0x1C]
cmp r0, 0x3E
bgt _080BB0A2
lsls r0, 24
asrs r0, 24
bl SE12PanpotControl
b _080BB0A2
.align 2, 0
_080BB088: .4byte gUnknown_083D03F8
_080BB08C:
ldr r0, [r2, 0x1C]
subs r1, r0, 0x2
str r1, [r2, 0x1C]
movs r0, 0x40
negs r0, r0
cmp r1, r0
ble _080BB0A2
lsls r0, r1, 24
asrs r0, 24
bl SE12PanpotControl
_080BB0A2:
ldr r1, _080BB0EC @ =gMain
ldrh r3, [r1, 0x2E]
movs r0, 0x2
ands r0, r3
lsls r0, 16
lsrs r4, r0, 16
adds r7, r1, 0
cmp r4, 0
beq _080BB104
movs r1, 0x80
lsls r1, 19
ldr r2, _080BB0F0 @ =0x00007140
adds r0, r2, 0
strh r0, [r1]
adds r1, 0x40
ldr r2, _080BB0F4 @ =0x000011df
adds r0, r2, 0
strh r0, [r1]
adds r1, 0x4
ldr r2, _080BB0F8 @ =0x0000011f
adds r0, r2, 0
strh r0, [r1]
movs r0, 0
movs r1, 0
movs r2, 0x1D
movs r3, 0x13
bl MenuZeroFillWindowRect
ldr r1, _080BB0FC @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, _080BB100 @ =sub_80BA258
str r1, [r0]
b _080BB1C8
.align 2, 0
_080BB0EC: .4byte gMain
_080BB0F0: .4byte 0x00007140
_080BB0F4: .4byte 0x000011df
_080BB0F8: .4byte 0x0000011f
_080BB0FC: .4byte gTasks
_080BB100: .4byte sub_80BA258
_080BB104:
movs r6, 0x1
adds r2, r6, 0
ands r2, r3
cmp r2, 0
beq _080BB15E
ldr r0, _080BB138 @ =gUnknown_083D03F8
ldr r5, _080BB13C @ =gUnknown_020387B4
ldr r1, [r5, 0x8]
adds r1, r0
ldrb r1, [r1]
lsls r1, 24
asrs r1, 24
movs r0, 0x80
negs r0, r0
cmp r1, r0
beq _080BB140
cmp r1, 0x7F
bne _080BB154
ldrh r0, [r5]
movs r4, 0x40
negs r4, r4
adds r1, r4, 0
bl PlaySE12WithPanning
str r4, [r5, 0x1C]
b _080BB14C
.align 2, 0
_080BB138: .4byte gUnknown_083D03F8
_080BB13C: .4byte gUnknown_020387B4
_080BB140:
ldrh r0, [r5]
movs r1, 0x3F
bl PlaySE12WithPanning
movs r0, 0x3F
str r0, [r5, 0x1C]
_080BB14C:
str r6, [r5, 0x18]
movs r0, 0x1E
str r0, [r5, 0x14]
b _080BB1C8
_080BB154:
ldrh r0, [r5]
bl PlaySE12WithPanning
str r4, [r5, 0x18]
b _080BB1C8
_080BB15E:
movs r0, 0x80
lsls r0, 2
ands r0, r3
cmp r0, 0
beq _080BB176
ldr r1, _080BB1AC @ =gUnknown_020387B4
ldr r0, [r1, 0x8]
adds r0, 0x1
str r0, [r1, 0x8]
cmp r0, 0x4
ble _080BB176
str r2, [r1, 0x8]
_080BB176:
ldrh r1, [r7, 0x2E]
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
beq _080BB192
ldr r1, _080BB1AC @ =gUnknown_020387B4
ldr r0, [r1, 0x8]
subs r0, 0x1
str r0, [r1, 0x8]
cmp r0, 0
bge _080BB192
movs r0, 0x4
str r0, [r1, 0x8]
_080BB192:
ldrh r1, [r7, 0x30]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _080BB1B0
ldr r1, _080BB1AC @ =gUnknown_020387B4
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
cmp r0, 0xF7
ble _080BB1C8
movs r0, 0
b _080BB1C6
.align 2, 0
_080BB1AC: .4byte gUnknown_020387B4
_080BB1B0:
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _080BB1C8
ldr r1, _080BB1D0 @ =gUnknown_020387B4
ldr r0, [r1]
subs r0, 0x1
str r0, [r1]
cmp r0, 0
bge _080BB1C8
movs r0, 0xF7
_080BB1C6:
str r0, [r1]
_080BB1C8:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080BB1D0: .4byte gUnknown_020387B4
thumb_func_end sub_80BB038
thumb_func_start sub_80BB1D4
sub_80BB1D4: @ 80BB1D4
push {r4,r5,lr}
sub sp, 0x10
ldr r1, _080BB218 @ =gOtherText_LR
mov r0, sp
movs r2, 0x5
bl memcpy
add r5, sp, 0x8
ldr r1, _080BB21C @ =gOtherText_RL
adds r0, r5, 0
movs r2, 0x5
bl memcpy
ldr r4, _080BB220 @ =gUnknown_020387B4
ldr r0, [r4]
movs r1, 0x7
movs r2, 0x2
movs r3, 0x3
bl sub_80BAE78
ldr r1, _080BB224 @ =gUnknown_083D03F8
ldr r0, [r4, 0x8]
adds r0, r1
movs r1, 0
ldrsb r1, [r0, r1]
movs r0, 0x80
negs r0, r0
cmp r1, r0
beq _080BB228
cmp r1, 0x7F
bne _080BB234
mov r0, sp
b _080BB22A
.align 2, 0
_080BB218: .4byte gOtherText_LR
_080BB21C: .4byte gOtherText_RL
_080BB220: .4byte gUnknown_020387B4
_080BB224: .4byte gUnknown_083D03F8
_080BB228:
adds r0, r5, 0
_080BB22A:
movs r1, 0x7
movs r2, 0x4
bl MenuPrint
b _080BB240
_080BB234:
adds r0, r1, 0
movs r1, 0x7
movs r2, 0x4
movs r3, 0x3
bl sub_80BAE78
_080BB240:
bl IsSEPlaying
lsls r0, 24
lsrs r0, 24
movs r1, 0xC
movs r2, 0x8
movs r3, 0x1
bl sub_80BAE78
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80BB1D4
thumb_func_start sub_80BB25C
sub_80BB25C: @ 80BB25C
push {r4-r6,lr}
sub sp, 0x14
lsls r0, 24
lsrs r6, r0, 24
ldr r0, _080BB374 @ =gWindowConfig_81E6C3C
bl SetUpWindowConfig
ldr r0, _080BB378 @ =gWindowConfig_81E6CE4
bl InitMenuWindow
ldr r1, _080BB37C @ =gUnknown_03005D34
movs r0, 0x1
strh r0, [r1]
bl ResetSpriteData
bl FreeAllSpritePalettes
ldr r1, _080BB380 @ =0xffff0000
ldr r0, [sp, 0x4]
ands r0, r1
movs r1, 0x80
lsls r1, 6
orrs r0, r1
ldr r1, _080BB384 @ =0xff00ffff
ands r0, r1
movs r1, 0xE8
lsls r1, 13
orrs r0, r1
ldr r1, _080BB388 @ =0x00ffffff
ands r0, r1
movs r1, 0xC0
lsls r1, 20
orrs r0, r1
str r0, [sp, 0x4]
ldr r1, _080BB38C @ =0xffff00ff
ldr r0, [sp, 0x8]
ands r0, r1
movs r1, 0xF0
lsls r1, 5
orrs r0, r1
ldr r1, _080BB390 @ =0xffffff00
ands r0, r1
movs r1, 0x4
orrs r0, r1
str r0, [sp, 0x8]
movs r1, 0
ldr r0, _080BB394 @ =gUnknown_03005E98
strb r1, [r0]
add r4, sp, 0xC
_080BB2BE:
add r0, sp, 0x4
movs r1, 0x3
bl sub_8119E3C
lsls r0, 24
cmp r0, 0
beq _080BB2BE
ldr r1, _080BB380 @ =0xffff0000
ldr r0, [sp, 0xC]
ands r0, r1
ldr r1, _080BB384 @ =0xff00ffff
ands r0, r1
movs r1, 0xF0
lsls r1, 12
orrs r0, r1
ldr r1, _080BB388 @ =0x00ffffff
ands r0, r1
movs r1, 0xD0
lsls r1, 20
orrs r0, r1
str r0, [sp, 0xC]
ldr r1, _080BB390 @ =0xffffff00
ldr r0, [r4, 0x4]
ands r0, r1
movs r1, 0xC
orrs r0, r1
ldr r1, _080BB38C @ =0xffff00ff
ands r0, r1
movs r1, 0xC0
lsls r1, 4
orrs r0, r1
str r0, [r4, 0x4]
movs r1, 0
ldr r0, _080BB394 @ =gUnknown_03005E98
strb r1, [r0]
lsls r5, r6, 2
_080BB306:
adds r0, r4, 0
movs r1, 0x2
bl ShowPokedexCryScreen
lsls r0, 24
cmp r0, 0
beq _080BB306
movs r0, 0
movs r1, 0x10
movs r2, 0x5
movs r3, 0x13
bl MenuDrawTextWindow
bl sub_80BB494
movs r0, 0x1
negs r0, r0
movs r4, 0
str r4, [sp]
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldr r0, _080BB398 @ =REG_BG2HOFS
strh r4, [r0]
adds r0, 0x2
strh r4, [r0]
ldr r1, _080BB39C @ =REG_BG2CNT
ldr r2, _080BB3A0 @ =0x00000f01
adds r0, r2, 0
strh r0, [r1]
adds r1, 0x2
ldr r2, _080BB3A4 @ =0x00001d03
adds r0, r2, 0
strh r0, [r1]
subs r1, 0xE
adds r2, 0x3D
adds r0, r2, 0
strh r0, [r1]
ldr r0, _080BB3A8 @ =gMPlay_BGM
movs r1, 0x2
bl m4aMPlayFadeOutTemporarily
ldr r1, _080BB3AC @ =gTasks
adds r0, r5, r6
lsls r0, 3
adds r0, r1
ldr r1, _080BB3B0 @ =sub_80BB3B4
str r1, [r0]
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080BB374: .4byte gWindowConfig_81E6C3C
_080BB378: .4byte gWindowConfig_81E6CE4
_080BB37C: .4byte gUnknown_03005D34
_080BB380: .4byte 0xffff0000
_080BB384: .4byte 0xff00ffff
_080BB388: .4byte 0x00ffffff
_080BB38C: .4byte 0xffff00ff
_080BB390: .4byte 0xffffff00
_080BB394: .4byte gUnknown_03005E98
_080BB398: .4byte REG_BG2HOFS
_080BB39C: .4byte REG_BG2CNT
_080BB3A0: .4byte 0x00000f01
_080BB3A4: .4byte 0x00001d03
_080BB3A8: .4byte gMPlay_BGM
_080BB3AC: .4byte gTasks
_080BB3B0: .4byte sub_80BB3B4
thumb_func_end sub_80BB25C
thumb_func_start sub_80BB3B4
sub_80BB3B4: @ 80BB3B4
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r0, 0x3
bl sub_8119F88
ldr r4, _080BB478 @ =gMain
ldrh r1, [r4, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080BB3D4
ldr r0, _080BB47C @ =gUnknown_03005D34
ldrh r0, [r0]
bl sub_811A050
_080BB3D4:
ldrh r1, [r4, 0x2E]
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
beq _080BB3E4
bl StopCryAndClearCrySongs
_080BB3E4:
ldrh r1, [r4, 0x30]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _080BB408
ldr r1, _080BB47C @ =gUnknown_03005D34
ldrh r0, [r1]
subs r0, 0x1
strh r0, [r1]
lsls r0, 16
cmp r0, 0
bne _080BB404
movs r2, 0xC0
lsls r2, 1
adds r0, r2, 0
strh r0, [r1]
_080BB404:
bl sub_80BB494
_080BB408:
ldr r0, _080BB478 @ =gMain
ldrh r1, [r0, 0x30]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _080BB42E
ldr r2, _080BB47C @ =gUnknown_03005D34
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
lsls r0, 16
movs r1, 0xC0
lsls r1, 17
cmp r0, r1
bls _080BB42A
movs r0, 0x1
strh r0, [r2]
_080BB42A:
bl sub_80BB494
_080BB42E:
ldr r0, _080BB478 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _080BB472
movs r1, 0x80
lsls r1, 19
ldr r2, _080BB480 @ =0x00007140
adds r0, r2, 0
strh r0, [r1]
adds r1, 0x40
ldr r2, _080BB484 @ =0x000011df
adds r0, r2, 0
strh r0, [r1]
adds r1, 0x4
ldr r2, _080BB488 @ =0x0000011f
adds r0, r2, 0
strh r0, [r1]
movs r0, 0
movs r1, 0
movs r2, 0x1D
movs r3, 0x13
bl MenuZeroFillWindowRect
ldr r1, _080BB48C @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, _080BB490 @ =sub_80BA258
str r1, [r0]
bl DestroyCryMeterNeedleSprite
_080BB472:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080BB478: .4byte gMain
_080BB47C: .4byte gUnknown_03005D34
_080BB480: .4byte 0x00007140
_080BB484: .4byte 0x000011df
_080BB488: .4byte 0x0000011f
_080BB48C: .4byte gTasks
_080BB490: .4byte sub_80BA258
thumb_func_end sub_80BB3B4
thumb_func_start sub_80BB494
sub_80BB494: @ 80BB494
push {lr}
ldr r0, _080BB4A8 @ =gUnknown_03005D34
ldrh r0, [r0]
movs r1, 0x1
movs r2, 0x11
movs r3, 0x3
bl sub_80BAE78
pop {r0}
bx r0
.align 2, 0
_080BB4A8: .4byte gUnknown_03005D34
thumb_func_end sub_80BB494
.align 2, 0 @ Don't pad with nop.