tmc/asm/code_080526F8.s

1713 lines
30 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start CutsceneMain_Init
CutsceneMain_Init: @ 0x08053590
push {lr}
ldr r1, _080535A4 @ =gUnk_080FCBB4
ldr r0, _080535A8 @ =gMenu
ldrb r0, [r0, #6]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {pc}
.align 2, 0
_080535A4: .4byte gUnk_080FCBB4
_080535A8: .4byte gMenu
thumb_func_start sub_080535AC
sub_080535AC: @ 0x080535AC
push {lr}
ldr r2, _080535DC @ =gMenu
movs r1, #1
strb r1, [r2, #6]
movs r0, #0x78
strh r0, [r2, #8]
ldr r0, _080535E0 @ =gUnk_02032EC0
strb r1, [r0, #6]
ldr r0, _080535E4 @ =gUpdateVisibleTiles
strb r1, [r0]
ldr r2, _080535E8 @ =gScreen
ldrh r1, [r2]
ldr r0, _080535EC @ =0x0000FEFF
ands r0, r1
strh r0, [r2]
ldr r0, _080535F0 @ =gUnk_080FCB94
bl LoadRoomEntityList
movs r0, #6
movs r1, #8
bl SetFade
pop {pc}
.align 2, 0
_080535DC: .4byte gMenu
_080535E0: .4byte gUnk_02032EC0
_080535E4: .4byte gUpdateVisibleTiles
_080535E8: .4byte gScreen
_080535EC: .4byte 0x0000FEFF
_080535F0: .4byte gUnk_080FCB94
thumb_func_start sub_080535F4
sub_080535F4: @ 0x080535F4
push {lr}
ldr r0, _0805360C @ =gFadeControl
ldrb r0, [r0]
cmp r0, #0
bne _08053608
bl ResetSystemPriority
ldr r1, _08053610 @ =gMenu
movs r0, #2
strb r0, [r1, #6]
_08053608:
pop {pc}
.align 2, 0
_0805360C: .4byte gFadeControl
_08053610: .4byte gMenu
thumb_func_start nullsub_481
nullsub_481: @ 0x08053614
bx lr
.align 2, 0
thumb_func_start sub_08053618
sub_08053618: @ 0x08053618
push {lr}
ldr r1, _08053630 @ =gMenu
ldrh r0, [r1, #8]
subs r0, #1
strh r0, [r1, #8]
lsls r0, r0, #0x10
cmp r0, #0
bne _0805362C
bl sub_08052004
_0805362C:
pop {pc}
.align 2, 0
_08053630: .4byte gMenu
thumb_func_start sub_08053634
sub_08053634: @ 0x08053634
push {lr}
ldr r1, _08053644 @ =gUnk_02032EC0
movs r0, #3
strb r0, [r1]
bl MessageInitialize
pop {pc}
.align 2, 0
_08053644: .4byte gUnk_02032EC0
thumb_func_start sub_08053648
sub_08053648: @ 0x08053648
push {lr}
movs r0, #0x2d
movs r1, #0
movs r2, #0
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _08053674
ldr r0, _08053678 @ =gRoomControls
movs r3, #0xb4
lsls r3, r3, #2
adds r1, r3, #0
ldrh r3, [r0, #6]
adds r1, r1, r3
strh r1, [r2, #0x2e]
movs r3, #0xa4
lsls r3, r3, #1
adds r1, r3, #0
ldrh r0, [r0, #8]
adds r1, r1, r0
strh r1, [r2, #0x32]
_08053674:
pop {pc}
.align 2, 0
_08053678: .4byte gRoomControls
thumb_func_start sub_0805367C
sub_0805367C: @ 0x0805367C
ldr r1, _08053688 @ =gMenu
ldrb r0, [r1, #6]
adds r0, #1
strb r0, [r1, #6]
bx lr
.align 2, 0
_08053688: .4byte gMenu
thumb_func_start sub_0805368C
sub_0805368C: @ 0x0805368C
push {lr}
movs r0, #6
movs r1, #0x5d
movs r2, #6
bl FindEntityByID
cmp r0, #0
beq _080536A6
bl DeleteEntity
movs r0, #0xf0
bl SoundReq
_080536A6:
pop {pc}
thumb_func_start sub_080536A8
sub_080536A8: @ 0x080536A8
push {lr}
movs r0, #5
movs r1, #5
movs r2, #4
movs r3, #0x10
bl sub_080A71C4
pop {pc}
thumb_func_start sub_080536B8
sub_080536B8: @ 0x080536B8
push {lr}
movs r0, #5
movs r1, #3
movs r2, #4
movs r3, #4
bl sub_080A71C4
movs r1, #0x80
lsls r1, r1, #1
movs r0, #5
bl SetFade
pop {pc}
.align 2, 0
thumb_func_start sub_080536D4
sub_080536D4: @ 0x080536D4
push {lr}
ldr r1, _080536E8 @ =gUnk_080FCCFC
ldr r0, _080536EC @ =gMenu
ldrb r0, [r0, #6]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {pc}
.align 2, 0
_080536E8: .4byte gUnk_080FCCFC
_080536EC: .4byte gMenu
thumb_func_start sub_080536F0
sub_080536F0: @ 0x080536F0
push {lr}
ldr r1, _08053704 @ =gUnk_080FCD38
ldr r0, _08053708 @ =gMenu
ldrb r0, [r0, #6]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {pc}
.align 2, 0
_08053704: .4byte gUnk_080FCD38
_08053708: .4byte gMenu
thumb_func_start sub_0805370C
sub_0805370C: @ 0x0805370C
push {lr}
ldr r1, _08053730 @ =gMenu
ldrb r0, [r1, #6]
adds r0, #1
strb r0, [r1, #6]
ldr r1, _08053734 @ =gUpdateVisibleTiles
movs r0, #1
strb r0, [r1]
bl sub_08051FF0
ldr r0, _08053738 @ =gUnk_080FCC54
bl LoadRoomEntityList
movs r0, #4
movs r1, #0x10
bl SetFade
pop {pc}
.align 2, 0
_08053730: .4byte gMenu
_08053734: .4byte gUpdateVisibleTiles
_08053738: .4byte gUnk_080FCC54
thumb_func_start sub_0805373C
sub_0805373C: @ 0x0805373C
push {lr}
ldr r1, _08053750 @ =gUnk_080FCD40
ldr r0, _08053754 @ =gMenu
ldrb r0, [r0, #6]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {pc}
.align 2, 0
_08053750: .4byte gUnk_080FCD40
_08053754: .4byte gMenu
thumb_func_start sub_08053758
sub_08053758: @ 0x08053758
push {r4, lr}
ldr r1, _080537DC @ =gMenu
movs r2, #0
movs r3, #1
strb r3, [r1, #6]
movs r4, #0
movs r0, #0x78
strh r0, [r1, #8]
movs r0, #0x1e
strh r0, [r1, #0xa]
strb r4, [r1, #0x10]
ldr r0, _080537E0 @ =gUnk_02032EC0
strb r3, [r0, #6]
ldr r0, _080537E4 @ =gUnk_02025EB0
str r2, [r0]
ldr r0, _080537E8 @ =gUnk_0200B650
str r2, [r0]
ldr r0, _080537EC @ =gRoomControls
str r2, [r0, #0x30]
strh r2, [r0, #0xc]
strh r2, [r0, #0xa]
bl sub_0801B170
movs r0, #0
bl DispReset
ldr r2, _080537F0 @ =gScreen
movs r0, #0x99
lsls r0, r0, #6
strh r0, [r2]
adds r1, r2, #0
adds r1, #0x66
ldr r0, _080537F4 @ =0x00002244
strh r0, [r1]
adds r1, #2
movs r0, #0x80
lsls r0, r0, #5
strh r0, [r1]
subs r1, #8
movs r0, #0x1f
strh r0, [r1]
adds r1, #2
movs r0, #0x3f
strh r0, [r1]
subs r1, #0xa
movs r0, #0xf0
strh r0, [r1]
adds r1, #4
movs r0, #0x60
strh r0, [r1]
ldr r0, _080537F8 @ =0x00001C4E
strh r0, [r2, #0x14]
ldr r0, _080537FC @ =0x00001DC1
strh r0, [r2, #0x20]
movs r0, #0xf
bl SoundReq
bl ResetSystemPriority
movs r1, #0x80
lsls r1, r1, #1
movs r0, #5
bl SetFade
pop {r4, pc}
.align 2, 0
_080537DC: .4byte gMenu
_080537E0: .4byte gUnk_02032EC0
_080537E4: .4byte gUnk_02025EB0
_080537E8: .4byte gUnk_0200B650
_080537EC: .4byte gRoomControls
_080537F0: .4byte gScreen
_080537F4: .4byte 0x00002244
_080537F8: .4byte 0x00001C4E
_080537FC: .4byte 0x00001DC1
thumb_func_start sub_08053800
sub_08053800: @ 0x08053800
push {r4, r5, lr}
ldr r0, _0805387C @ =gFadeControl
ldrb r0, [r0]
cmp r0, #0
bne _0805387A
ldr r1, _08053880 @ =gMenu
ldrb r5, [r1, #0x10]
lsls r4, r5, #1
adds r4, r4, r5
lsls r4, r4, #2
ldr r0, _08053884 @ =gUnk_080FCCB4
adds r4, r4, r0
ldrh r0, [r4, #8]
movs r2, #0
strh r0, [r1, #8]
movs r0, #0x1e
strh r0, [r1, #0xa]
ldrb r0, [r1, #0x10]
adds r0, #1
strb r0, [r1, #0x10]
ldrb r0, [r1, #6]
adds r0, #1
strb r0, [r1, #6]
strb r2, [r1, #7]
adds r0, r5, #0
adds r0, #0x8a
bl LoadPaletteGroup
adds r0, r5, #0
adds r0, #0x3a
bl LoadGfxGroup
ldr r0, _08053888 @ =gBG1Buffer
movs r1, #0x80
lsls r1, r1, #4
bl MemClear
ldr r0, _0805388C @ =0x00000F01
adds r5, r5, r0
ldr r1, [r4]
adds r0, r5, #0
bl sub_0805F46C
ldr r2, _08053890 @ =gScreen
movs r0, #1
strh r0, [r2, #0x1a]
adds r1, r2, #0
adds r1, #0x68
movs r0, #0x10
strh r0, [r1]
ldrh r1, [r4, #4]
adds r0, r2, #0
adds r0, #0x58
strh r1, [r0]
ldrh r1, [r4, #6]
adds r0, #4
strh r1, [r0]
ldrh r1, [r4, #0xa]
movs r0, #4
bl SetFade
_0805387A:
pop {r4, r5, pc}
.align 2, 0
_0805387C: .4byte gFadeControl
_08053880: .4byte gMenu
_08053884: .4byte gUnk_080FCCB4
_08053888: .4byte gBG1Buffer
_0805388C: .4byte 0x00000F01
_08053890: .4byte gScreen
thumb_func_start sub_08053894
sub_08053894: @ 0x08053894
push {r4, lr}
ldr r0, _080538B4 @ =gFadeControl
ldrb r0, [r0]
cmp r0, #0
bne _080538F8
ldr r1, _080538B8 @ =gMenu
ldrh r0, [r1, #8]
subs r0, #1
strh r0, [r1, #8]
ldrh r0, [r1, #0xa]
adds r4, r1, #0
cmp r0, #0
beq _080538BC
subs r0, #1
strh r0, [r4, #0xa]
b _080538E4
.align 2, 0
_080538B4: .4byte gFadeControl
_080538B8: .4byte gMenu
_080538BC:
ldr r0, _080538FC @ =gRoomTransition
ldr r0, [r0]
movs r1, #1
ands r0, r1
cmp r0, #0
bne _080538E4
ldrb r1, [r4, #7]
cmp r1, #0xf
bhi _080538E4
adds r1, #1
strb r1, [r4, #7]
lsls r1, r1, #0x18
ldr r3, _08053900 @ =gScreen
lsrs r2, r1, #0x10
lsrs r1, r1, #0x19
movs r0, #0x10
subs r0, r0, r1
orrs r2, r0
adds r3, #0x68
strh r2, [r3]
_080538E4:
ldrh r0, [r4, #8]
cmp r0, #0
bne _080538F8
ldrb r0, [r4, #6]
adds r0, #1
strb r0, [r4, #6]
movs r0, #5
movs r1, #8
bl SetFade
_080538F8:
pop {r4, pc}
.align 2, 0
_080538FC: .4byte gRoomTransition
_08053900: .4byte gScreen
thumb_func_start sub_08053904
sub_08053904: @ 0x08053904
push {r4, lr}
ldr r0, _08053924 @ =gFadeControl
ldrb r0, [r0]
cmp r0, #0
bne _08053968
ldr r1, _08053928 @ =gMenu
ldrh r0, [r1, #8]
subs r0, #1
strh r0, [r1, #8]
ldrh r0, [r1, #0xa]
adds r4, r1, #0
cmp r0, #0
beq _0805392C
subs r0, #1
strh r0, [r4, #0xa]
b _08053954
.align 2, 0
_08053924: .4byte gFadeControl
_08053928: .4byte gMenu
_0805392C:
ldr r0, _0805396C @ =gRoomTransition
ldr r0, [r0]
movs r1, #1
ands r0, r1
cmp r0, #0
bne _08053954
ldrb r1, [r4, #7]
cmp r1, #0xf
bhi _08053954
adds r1, #1
strb r1, [r4, #7]
lsls r1, r1, #0x18
ldr r3, _08053970 @ =gScreen
lsrs r2, r1, #0x10
lsrs r1, r1, #0x19
movs r0, #0x10
subs r0, r0, r1
orrs r2, r0
adds r3, #0x68
strh r2, [r3]
_08053954:
ldrh r0, [r4, #8]
cmp r0, #0
bne _08053968
ldrb r0, [r4, #6]
adds r0, #1
strb r0, [r4, #6]
movs r0, #5
movs r1, #1
bl SetFade
_08053968:
pop {r4, pc}
.align 2, 0
_0805396C: .4byte gRoomTransition
_08053970: .4byte gScreen
thumb_func_start sub_08053974
sub_08053974: @ 0x08053974
push {lr}
ldr r0, _080539AC @ =gFadeControl
ldrb r0, [r0]
cmp r0, #0
bne _080539A8
bl InitFade
movs r0, #1
bl DispReset
bl SetBGDefaults
bl sub_08051F78
ldr r0, _080539B0 @ =gUnk_080FCBC4
bl LoadRoomEntityList
movs r1, #0x80
lsls r1, r1, #1
movs r0, #5
bl SetFade
ldr r1, _080539B4 @ =gMenu
ldrb r0, [r1, #6]
adds r0, #1
strb r0, [r1, #6]
_080539A8:
pop {pc}
.align 2, 0
_080539AC: .4byte gFadeControl
_080539B0: .4byte gUnk_080FCBC4
_080539B4: .4byte gMenu
thumb_func_start nullsub_482
nullsub_482: @ 0x080539B8
bx lr
.align 2, 0
thumb_func_start sub_080539BC
sub_080539BC: @ 0x080539BC
push {lr}
bl SetBGDefaults
bl DeleteAllEntities
movs r0, #0x22
movs r1, #0x11
movs r2, #0
movs r3, #0
bl sub_08051F9C
movs r0, #0x22
movs r1, #0x11
bl sub_0804B0B0
ldr r0, _080539EC @ =gUnk_080FCC14
bl LoadRoomEntityList
ldr r1, _080539F0 @ =gMenu
ldrb r0, [r1, #6]
adds r0, #1
strb r0, [r1, #6]
pop {pc}
.align 2, 0
_080539EC: .4byte gUnk_080FCC14
_080539F0: .4byte gMenu
thumb_func_start sub_080539F4
sub_080539F4: @ 0x080539F4
push {lr}
ldr r0, _08053A14 @ =gFadeControl
ldrb r0, [r0]
cmp r0, #0
bne _08053A10
movs r0, #1
bl DispReset
ldr r0, _08053A18 @ =gMenu
ldrb r1, [r0, #6]
adds r1, #1
strb r1, [r0, #6]
movs r1, #0x3c
strh r1, [r0, #8]
_08053A10:
pop {pc}
.align 2, 0
_08053A14: .4byte gFadeControl
_08053A18: .4byte gMenu
thumb_func_start sub_08053A1C
sub_08053A1C: @ 0x08053A1C
push {r4, lr}
ldr r1, _08053A50 @ =gMenu
ldrh r0, [r1, #8]
subs r0, #1
strh r0, [r1, #8]
lsls r0, r0, #0x10
cmp r0, #0
bne _08053A4E
ldrb r0, [r1, #6]
adds r0, #1
strb r0, [r1, #6]
movs r4, #8
movs r0, #8
strh r0, [r1, #8]
ldr r0, _08053A54 @ =0x00000F07
bl MessageFromTarget
ldr r1, _08053A58 @ =gMessage
movs r0, #1
strb r0, [r1, #6]
strb r4, [r1, #7]
movs r0, #4
movs r1, #8
bl SetFade
_08053A4E:
pop {r4, pc}
.align 2, 0
_08053A50: .4byte gMenu
_08053A54: .4byte 0x00000F07
_08053A58: .4byte gMessage
thumb_func_start sub_08053A5C
sub_08053A5C: @ 0x08053A5C
push {lr}
ldr r0, _08053A88 @ =gMessage
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
bne _08053A86
ldr r1, _08053A8C @ =gMenu
ldrh r0, [r1, #8]
subs r0, #1
strh r0, [r1, #8]
lsls r0, r0, #0x10
cmp r0, #0
bne _08053A86
ldrb r0, [r1, #6]
adds r0, #1
strb r0, [r1, #6]
movs r0, #5
movs r1, #8
bl SetFade
_08053A86:
pop {pc}
.align 2, 0
_08053A88: .4byte gMessage
_08053A8C: .4byte gMenu
thumb_func_start sub_08053A90
sub_08053A90: @ 0x08053A90
push {lr}
ldr r0, _08053AA8 @ =gFadeControl
ldrb r0, [r0]
cmp r0, #0
bne _08053AA4
ldr r1, _08053AAC @ =gUnk_02032EC0
movs r0, #3
strb r0, [r1]
bl SetBGDefaults
_08053AA4:
pop {pc}
.align 2, 0
_08053AA8: .4byte gFadeControl
_08053AAC: .4byte gUnk_02032EC0
thumb_func_start sub_08053AB0
sub_08053AB0: @ 0x08053AB0
push {lr}
ldr r1, _08053AC4 @ =gUnk_080FCDD4
ldr r0, _08053AC8 @ =gMenu
ldrb r0, [r0, #6]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {pc}
.align 2, 0
_08053AC4: .4byte gUnk_080FCDD4
_08053AC8: .4byte gMenu
thumb_func_start sub_08053ACC
sub_08053ACC: @ 0x08053ACC
push {lr}
ldr r1, _08053AF4 @ =gMenu
ldrb r0, [r1, #6]
adds r0, #1
strb r0, [r1, #6]
ldr r1, _08053AF8 @ =gUpdateVisibleTiles
movs r0, #1
strb r0, [r1]
bl sub_08051FF0
ldr r0, _08053AFC @ =gUnk_080FCD84
bl LoadRoomEntityList
movs r1, #0x80
lsls r1, r1, #1
movs r0, #5
bl SetFade
pop {pc}
.align 2, 0
_08053AF4: .4byte gMenu
_08053AF8: .4byte gUpdateVisibleTiles
_08053AFC: .4byte gUnk_080FCD84
thumb_func_start sub_08053B00
sub_08053B00: @ 0x08053B00
ldr r1, _08053B0C @ =gMenu
ldrb r0, [r1, #6]
adds r0, #1
strb r0, [r1, #6]
bx lr
.align 2, 0
_08053B0C: .4byte gMenu
thumb_func_start sub_08053B10
sub_08053B10: @ 0x08053B10
push {lr}
movs r0, #1
bl CheckRoomFlag
cmp r0, #0
beq _08053B34
ldr r0, _08053B38 @ =gMenu
ldrb r1, [r0, #5]
adds r1, #1
strb r1, [r0, #5]
movs r0, #1
bl DispReset
movs r1, #0x80
lsls r1, r1, #1
movs r0, #4
bl SetFade
_08053B34:
pop {pc}
.align 2, 0
_08053B38: .4byte gMenu
thumb_func_start sub_08053B3C
sub_08053B3C: @ 0x08053B3C
push {r4, lr}
movs r4, #0x80
lsls r4, r4, #1
movs r0, #5
movs r1, #4
movs r2, #5
adds r3, r4, #0
bl sub_080A71C4
movs r0, #5
adds r1, r4, #0
bl SetFade
pop {r4, pc}
thumb_func_start sub_08053B58
sub_08053B58: @ 0x08053B58
push {lr}
ldr r1, _08053B6C @ =gUnk_080FCEB0
ldr r0, _08053B70 @ =gMenu
ldrb r0, [r0, #6]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {pc}
.align 2, 0
_08053B6C: .4byte gUnk_080FCEB0
_08053B70: .4byte gMenu
thumb_func_start sub_08053B74
sub_08053B74: @ 0x08053B74
push {lr}
ldr r1, _08053BA0 @ =gMenu
ldrb r0, [r1, #6]
adds r0, #1
strb r0, [r1, #6]
ldr r1, _08053BA4 @ =gUpdateVisibleTiles
movs r0, #1
strb r0, [r1]
ldr r0, _08053BA8 @ =gUnk_080FCDE0
bl LoadRoomEntityList
bl ResetSystemPriority
bl ResetEntityPriority
movs r1, #0x80
lsls r1, r1, #1
movs r0, #5
bl SetFade
pop {pc}
.align 2, 0
_08053BA0: .4byte gMenu
_08053BA4: .4byte gUpdateVisibleTiles
_08053BA8: .4byte gUnk_080FCDE0
thumb_func_start sub_08053BAC
sub_08053BAC: @ 0x08053BAC
ldr r1, _08053BB8 @ =gMenu
ldrb r0, [r1, #6]
adds r0, #1
strb r0, [r1, #6]
bx lr
.align 2, 0
_08053BB8: .4byte gMenu
thumb_func_start sub_08053BBC
sub_08053BBC: @ 0x08053BBC
push {lr}
movs r0, #0
bl CheckRoomFlag
cmp r0, #0
beq _08053BE0
ldr r0, _08053BE4 @ =gMenu
ldrb r1, [r0, #5]
adds r1, #1
strb r1, [r0, #5]
movs r0, #1
bl DispReset
movs r1, #0x80
lsls r1, r1, #1
movs r0, #4
bl SetFade
_08053BE0:
pop {pc}
.align 2, 0
_08053BE4: .4byte gMenu
thumb_func_start sub_08053BE8
sub_08053BE8: @ 0x08053BE8
push {r4, lr}
movs r4, #0x80
lsls r4, r4, #1
movs r0, #5
movs r1, #2
movs r2, #5
adds r3, r4, #0
bl sub_080A71C4
movs r0, #5
adds r1, r4, #0
bl SetFade
pop {r4, pc}
thumb_func_start sub_08053C04
sub_08053C04: @ 0x08053C04
push {lr}
ldr r1, _08053C18 @ =gUnk_080FCEEC
ldr r0, _08053C1C @ =gMenu
ldrb r0, [r0, #6]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {pc}
.align 2, 0
_08053C18: .4byte gUnk_080FCEEC
_08053C1C: .4byte gMenu
thumb_func_start sub_08053C20
sub_08053C20: @ 0x08053C20
push {lr}
ldr r1, _08053C50 @ =gMenu
movs r2, #1
strb r2, [r1, #6]
movs r0, #0x78
strh r0, [r1, #8]
ldr r0, _08053C54 @ =gUpdateVisibleTiles
strb r2, [r0]
bl sub_08051FF0
movs r0, #4
bl sub_0805B4D0
ldr r0, _08053C58 @ =gUnk_080FCEBC
bl LoadRoomEntityList
movs r0, #4
movs r1, #0x10
bl SetFade
movs r0, #0x33
bl SoundReq
pop {pc}
.align 2, 0
_08053C50: .4byte gMenu
_08053C54: .4byte gUpdateVisibleTiles
_08053C58: .4byte gUnk_080FCEBC
thumb_func_start nullsub_483
nullsub_483: @ 0x08053C5C
bx lr
.align 2, 0
thumb_func_start sub_08053C60
sub_08053C60: @ 0x08053C60
push {lr}
movs r0, #5
movs r1, #2
bl SetFade
movs r0, #0xf4
bl SoundReq
ldr r0, _08053C80 @ =0x80100000
bl SoundReq
movs r0, #3
bl SetTask
pop {pc}
.align 2, 0
_08053C80: .4byte 0x80100000
thumb_func_start sub_08053C84
sub_08053C84: @ 0x08053C84
ldr r1, _08053C8C @ =gMenu
movs r0, #2
strb r0, [r1, #6]
bx lr
.align 2, 0
_08053C8C: .4byte gMenu
thumb_func_start CutsceneMain_Exit
CutsceneMain_Exit: @ 0x08053C90
push {lr}
ldr r1, _08053CA4 @ =gUnk_080FCEF8
ldr r0, _08053CA8 @ =gMenu
ldrb r0, [r0, #3]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {pc}
.align 2, 0
_08053CA4: .4byte gUnk_080FCEF8
_08053CA8: .4byte gMenu
thumb_func_start sub_08053CAC
sub_08053CAC: @ 0x08053CAC
push {lr}
ldr r1, _08053CC0 @ =gUnk_080FCFA4
ldr r0, _08053CC4 @ =gMenu
ldrb r0, [r0, #6]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {pc}
.align 2, 0
_08053CC0: .4byte gUnk_080FCFA4
_08053CC4: .4byte gMenu
thumb_func_start sub_08053CC8
sub_08053CC8: @ 0x08053CC8
push {r4, r5, r6, lr}
ldr r6, _08053D20 @ =gMenu
ldrb r4, [r6, #3]
lsls r4, r4, #4
ldr r0, _08053D24 @ =gUnk_080FCF04
adds r4, r4, r0
adds r0, r4, #0
adds r0, #8
str r0, [r6, #0xc]
ldr r0, [r4]
bl LoadRoomEntityList
ldrb r0, [r4, #4]
ldrb r1, [r4, #5]
movs r2, #1
bl GetRoomProperty
bl LoadRoomEntityList
ldrb r0, [r4, #4]
ldrb r1, [r4, #5]
movs r2, #2
bl GetRoomProperty
bl LoadRoomEntityList
movs r5, #1
strb r5, [r6, #6]
ldr r2, _08053D28 @ =gScreen
ldrh r1, [r2]
ldr r0, _08053D2C @ =0x0000FEFF
ands r0, r1
strh r0, [r2]
ldr r0, _08053D30 @ =gUpdateVisibleTiles
strb r5, [r0]
movs r0, #4
movs r1, #0x10
bl SetFade
ldrb r0, [r4, #5]
cmp r0, #0x1d
bne _08053D1E
strh r5, [r6, #0xa]
_08053D1E:
pop {r4, r5, r6, pc}
.align 2, 0
_08053D20: .4byte gMenu
_08053D24: .4byte gUnk_080FCF04
_08053D28: .4byte gScreen
_08053D2C: .4byte 0x0000FEFF
_08053D30: .4byte gUpdateVisibleTiles
thumb_func_start sub_08053D34
sub_08053D34: @ 0x08053D34
push {r4, lr}
ldr r1, _08053D88 @ =gMenu
ldrh r0, [r1, #0xa]
cmp r0, #0
beq _08053D72
movs r0, #0
strh r0, [r1, #0xa]
movs r4, #0xd0
lsls r4, r4, #3
adds r0, r4, #0
movs r1, #0x3d
bl CheckLocalFlagByBank
cmp r0, #0
beq _08053D5C
movs r0, #0x74
movs r1, #0xc4
movs r2, #1
bl SetTileType
_08053D5C:
adds r0, r4, #0
movs r1, #0x3e
bl CheckLocalFlagByBank
cmp r0, #0
beq _08053D72
movs r0, #0x74
movs r1, #0xcc
movs r2, #1
bl SetTileType
_08053D72:
ldr r0, _08053D8C @ =gFadeControl
ldrb r0, [r0]
cmp r0, #0
bne _08053D86
ldr r1, _08053D88 @ =gMenu
movs r0, #0x78
strh r0, [r1, #8]
ldrb r0, [r1, #6]
adds r0, #1
strb r0, [r1, #6]
_08053D86:
pop {r4, pc}
.align 2, 0
_08053D88: .4byte gMenu
_08053D8C: .4byte gFadeControl
thumb_func_start sub_08053D90
sub_08053D90: @ 0x08053D90
push {lr}
ldr r1, _08053DB0 @ =gMenu
ldrh r0, [r1, #8]
subs r0, #1
strh r0, [r1, #8]
lsls r0, r0, #0x10
cmp r0, #0
bne _08053DAC
ldrb r0, [r1, #6]
adds r0, #1
strb r0, [r1, #6]
movs r0, #0x10
bl SetFadeInverted
_08053DAC:
pop {pc}
.align 2, 0
_08053DB0: .4byte gMenu
thumb_func_start sub_08053DB4
sub_08053DB4: @ 0x08053DB4
push {r4, r5, lr}
ldr r0, _08053E20 @ =gFadeControl
ldrb r0, [r0]
cmp r0, #0
bne _08053E1C
ldr r5, _08053E24 @ =gMenu
ldr r4, [r5, #0xc]
ldrb r0, [r4, #4]
ldrb r1, [r4, #5]
bl sub_08052FF4
bl sub_0807C740
ldr r1, _08053E28 @ =gUpdateVisibleTiles
movs r0, #1
strb r0, [r1]
ldr r1, _08053E2C @ =gRoomControls
movs r0, #6
ldrsb r0, [r4, r0]
ldrh r2, [r1, #0xa]
adds r0, r0, r2
strh r0, [r1, #0xa]
movs r0, #7
ldrsb r0, [r4, r0]
ldrh r2, [r1, #0xc]
adds r0, r0, r2
strh r0, [r1, #0xc]
ldr r0, [r4]
bl LoadRoomEntityList
ldrb r0, [r4, #4]
ldrb r1, [r4, #5]
movs r2, #1
bl GetRoomProperty
bl LoadRoomEntityList
ldrb r0, [r4, #4]
ldrb r1, [r4, #5]
movs r2, #2
bl GetRoomProperty
bl LoadRoomEntityList
movs r0, #0x78
strh r0, [r5, #8]
ldrb r0, [r5, #6]
adds r0, #1
strb r0, [r5, #6]
movs r0, #0x10
bl SetFadeInverted
_08053E1C:
pop {r4, r5, pc}
.align 2, 0
_08053E20: .4byte gFadeControl
_08053E24: .4byte gMenu
_08053E28: .4byte gUpdateVisibleTiles
_08053E2C: .4byte gRoomControls
thumb_func_start sub_08053E30
sub_08053E30: @ 0x08053E30
push {lr}
ldr r0, _08053E50 @ =gFadeControl
ldrb r0, [r0]
cmp r0, #0
bne _08053E4E
ldr r1, _08053E54 @ =gMenu
ldrh r0, [r1, #8]
subs r0, #1
strh r0, [r1, #8]
lsls r0, r0, #0x10
cmp r0, #0
bne _08053E4E
ldrb r0, [r1, #5]
adds r0, #1
strb r0, [r1, #5]
_08053E4E:
pop {pc}
.align 2, 0
_08053E50: .4byte gFadeControl
_08053E54: .4byte gMenu
thumb_func_start sub_08053E58
sub_08053E58: @ 0x08053E58
push {lr}
ldr r1, _08053E6C @ =gUnk_080FD108
ldr r0, _08053E70 @ =gMenu
ldrb r0, [r0, #6]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {pc}
.align 2, 0
_08053E6C: .4byte gUnk_080FD108
_08053E70: .4byte gMenu
thumb_func_start sub_08053E74
sub_08053E74: @ 0x08053E74
push {r4, lr}
ldr r0, _08053EB0 @ =gUnk_080FCFB8
ldr r4, _08053EB4 @ =gMenu
str r0, [r4, #0xc]
ldr r0, [r0]
bl LoadRoomEntityList
movs r0, #0x78
strh r0, [r4, #8]
movs r0, #0x3c
strh r0, [r4, #0xa]
ldrb r0, [r4, #6]
adds r0, #1
strb r0, [r4, #6]
ldr r2, _08053EB8 @ =gScreen
ldrh r1, [r2]
ldr r0, _08053EBC @ =0x0000FEFF
ands r0, r1
strh r0, [r2]
ldr r1, _08053EC0 @ =gUpdateVisibleTiles
movs r0, #1
strb r0, [r1]
movs r0, #1
bl SetMinPriority
movs r0, #4
movs r1, #8
bl SetFade
pop {r4, pc}
.align 2, 0
_08053EB0: .4byte gUnk_080FCFB8
_08053EB4: .4byte gMenu
_08053EB8: .4byte gScreen
_08053EBC: .4byte 0x0000FEFF
_08053EC0: .4byte gUpdateVisibleTiles
thumb_func_start sub_08053EC4
sub_08053EC4: @ 0x08053EC4
push {r4, lr}
ldr r0, _08053EF4 @ =gFadeControl
ldrb r0, [r0]
cmp r0, #0
bne _08053EF0
ldr r4, _08053EF8 @ =gMenu
ldrh r0, [r4, #0xa]
subs r0, #1
strh r0, [r4, #0xa]
lsls r0, r0, #0x10
cmp r0, #0
bne _08053EF0
ldr r1, [r4, #0xc]
adds r0, r1, #0
adds r0, #0xc
str r0, [r4, #0xc]
ldr r0, [r1, #4]
bl LoadRoomEntityList
ldrb r0, [r4, #6]
adds r0, #1
strb r0, [r4, #6]
_08053EF0:
pop {r4, pc}
.align 2, 0
_08053EF4: .4byte gFadeControl
_08053EF8: .4byte gMenu
thumb_func_start sub_08053EFC
sub_08053EFC: @ 0x08053EFC
push {lr}
ldr r1, _08053F1C @ =gMenu
ldrh r0, [r1, #8]
subs r0, #1
strh r0, [r1, #8]
lsls r0, r0, #0x10
cmp r0, #0
bne _08053F18
ldrb r0, [r1, #6]
adds r0, #1
strb r0, [r1, #6]
movs r0, #8
bl SetFadeInverted
_08053F18:
pop {pc}
.align 2, 0
_08053F1C: .4byte gMenu
thumb_func_start sub_08053F20
sub_08053F20: @ 0x08053F20
push {r4, r5, lr}
ldr r0, _08053F78 @ =gFadeControl
ldrb r0, [r0]
cmp r0, #0
bne _08053F74
bl DeleteAllEntities
ldr r5, _08053F7C @ =gMenu
ldr r4, [r5, #0xc]
ldrb r0, [r4, #8]
ldrb r1, [r4, #9]
bl sub_08052FF4
bl sub_0807C740
ldr r1, _08053F80 @ =gUpdateVisibleTiles
movs r0, #1
strb r0, [r1]
ldr r1, _08053F84 @ =gRoomControls
movs r0, #0xa
ldrsb r0, [r4, r0]
ldrh r2, [r1, #0xa]
adds r0, r0, r2
strh r0, [r1, #0xa]
movs r0, #0xb
ldrsb r0, [r4, r0]
ldrh r2, [r1, #0xc]
adds r0, r0, r2
strh r0, [r1, #0xc]
ldr r0, [r4]
bl LoadRoomEntityList
movs r0, #0x78
strh r0, [r5, #8]
movs r0, #0x3c
strh r0, [r5, #0xa]
ldrb r0, [r5, #6]
adds r0, #1
strb r0, [r5, #6]
movs r0, #8
bl SetFadeInverted
_08053F74:
pop {r4, r5, pc}
.align 2, 0
_08053F78: .4byte gFadeControl
_08053F7C: .4byte gMenu
_08053F80: .4byte gUpdateVisibleTiles
_08053F84: .4byte gRoomControls
thumb_func_start sub_08053F88
sub_08053F88: @ 0x08053F88
push {lr}
ldr r0, _08053FAC @ =gFadeControl
ldrb r0, [r0]
cmp r0, #0
bne _08053FAA
ldr r1, _08053FB0 @ =gMenu
ldrh r0, [r1, #8]
subs r0, #1
strh r0, [r1, #8]
lsls r0, r0, #0x10
cmp r0, #0
bne _08053FAA
ldrb r0, [r1, #5]
adds r0, #1
strb r0, [r1, #5]
bl ResetEntityPriority
_08053FAA:
pop {pc}
.align 2, 0
_08053FAC: .4byte gFadeControl
_08053FB0: .4byte gMenu
thumb_func_start CutsceneMain_Update
CutsceneMain_Update: @ 0x08053FB4
push {lr}
ldr r1, _08053FC8 @ =gUnk_080FD138
ldr r0, _08053FCC @ =gMenu
ldrb r0, [r0, #3]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {pc}
.align 2, 0
_08053FC8: .4byte gUnk_080FD138
_08053FCC: .4byte gMenu
thumb_func_start GetSaleItemConfirmMessageID
GetSaleItemConfirmMessageID: @ 0x08053FD0
lsls r0, r0, #3
ldr r1, _08053FDC @ =gUnk_080FD964
adds r0, r0, r1
ldrh r0, [r0, #4]
bx lr
.align 2, 0
_08053FDC: .4byte gUnk_080FD964
thumb_func_start GetItemPrice
GetItemPrice: @ 0x08053FE0
lsls r0, r0, #3
ldr r1, _08053FEC @ =gUnk_080FD964
adds r0, r0, r1
ldrh r0, [r0]
bx lr
.align 2, 0
_08053FEC: .4byte gUnk_080FD964
thumb_func_start GiveItem
GiveItem: @ 0x08053FF0
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r6, r0, #0
adds r7, r1, #0
bl GetInventoryValue
adds r5, r0, #0
lsls r1, r6, #3
ldr r0, _08054010 @ =gUnk_080FD5B4
adds r4, r1, r0
cmp r5, #0
bne _08054014
ldrh r0, [r4, #4]
mov r8, r0
b _08054018
.align 2, 0
_08054010: .4byte gUnk_080FD5B4
_08054014:
ldrh r2, [r4, #6]
mov r8, r2
_08054018:
adds r0, r6, #0
bl ItemIsBottle
cmp r0, #0
bne _08054034
adds r0, r6, #0
bl PutItemOnSlot
cmp r5, #0
bne _08054034
adds r0, r6, #0
movs r1, #1
bl sub_0807CAA0
_08054034:
ldrb r0, [r4, #1]
cmp r0, #0x12
bls _0805403C
b _0805427C
_0805403C:
lsls r0, r0, #2
ldr r1, _08054048 @ =_0805404C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08054048: .4byte _0805404C
_0805404C: @ jump table
.4byte _0805427C @ case 0
.4byte _08054098 @ case 1
.4byte _080540A6 @ case 2
.4byte _080540C0 @ case 3
.4byte _08054104 @ case 4
.4byte _0805414C @ case 5
.4byte _08054154 @ case 6
.4byte _08054194 @ case 7
.4byte _080541B6 @ case 8
.4byte _080541F0 @ case 9
.4byte _08054212 @ case 10
.4byte _080541F8 @ case 11
.4byte _08054238 @ case 12
.4byte _08054174 @ case 13
.4byte _08054240 @ case 14
.4byte _0805425C @ case 15
.4byte _08054264 @ case 16
.4byte _080541B0 @ case 17
.4byte _0805417C @ case 18
_08054098:
ldrb r0, [r4, #2]
bl ModHealth
movs r0, #0x71
bl SoundReq
b _0805427C
_080540A6:
ldr r0, _080540BC @ =gUnk_080FD5A8
ldrb r1, [r4, #2]
lsls r1, r1, #1
adds r1, r1, r0
ldrh r0, [r1]
bl ModRupees
movs r0, #0x6f
bl SoundReq
b _0805427C
.align 2, 0
_080540BC: .4byte gUnk_080FD5A8
_080540C0:
movs r5, #0
movs r4, #0x1c
b _080540CA
_080540C6:
adds r4, r1, #1
adds r5, #1
_080540CA:
cmp r5, #3
bls _080540D0
b _0805427C
_080540D0:
adds r0, r4, #0
bl GetInventoryValue
adds r1, r4, #0
cmp r0, #0
bne _080540C6
adds r6, r4, #0
ldr r0, _08054100 @ =gSave
adds r0, #0xb6
adds r1, r5, r0
ldrb r0, [r1]
cmp r0, #0
bne _080540EE
movs r0, #0x20
strb r0, [r1]
_080540EE:
adds r0, r6, #0
movs r1, #1
bl sub_0807CAA0
adds r0, r6, #0
bl PutItemOnSlot
b _0805427C
.align 2, 0
_08054100: .4byte gSave
_08054104:
movs r5, #0
ldr r0, _08054144 @ =gSave
adds r2, r0, #0
adds r2, #0xb6
ldrb r1, [r2]
adds r3, r0, #0
cmp r1, #0x20
beq _08054126
adds r1, r2, #0
_08054116:
adds r5, #1
cmp r5, #3
bls _0805411E
b _0805427C
_0805411E:
adds r0, r5, r1
ldrb r0, [r0]
cmp r0, #0x20
bne _08054116
_08054126:
cmp r5, #3
bls _0805412C
b _0805427C
_0805412C:
adds r0, r3, #0
adds r0, #0xb6
adds r0, r5, r0
strb r6, [r0]
adds r0, r6, #0
movs r1, #1
bl sub_0807CAA0
ldr r0, _08054148 @ =0x00000109
bl SoundReq
b _0805427C
.align 2, 0
_08054144: .4byte gSave
_08054148: .4byte 0x00000109
_0805414C:
movs r0, #1
bl sub_080526F8
b _0805424E
_08054154:
ldr r1, _08054168 @ =gSave
ldr r0, _0805416C @ =gArea
ldr r2, _08054170 @ =0x0000046C
adds r1, r1, r2
ldrb r0, [r0, #3]
adds r1, r1, r0
ldrb r0, [r1]
ldrb r2, [r4, #2]
orrs r0, r2
b _0805427A
.align 2, 0
_08054168: .4byte gSave
_0805416C: .4byte gArea
_08054170: .4byte 0x0000046C
_08054174:
movs r0, #0x72
bl sub_0801E738
b _0805427C
_0805417C:
cmp r6, #0xb
bne _0805418A
movs r0, #0xc
movs r1, #0
bl sub_0807CAA0
b _080541B0
_0805418A:
movs r0, #0xb
movs r1, #0
bl sub_0807CAA0
b _080541B0
_08054194:
cmp r6, #7
bne _080541A2
movs r0, #8
movs r1, #0
bl sub_0807CAA0
b _080541AA
_080541A2:
movs r0, #7
movs r1, #0
bl sub_0807CAA0
_080541AA:
movs r0, #0x63
bl ModBombs
_080541B0:
bl LoadItemGfx
b _0805427C
_080541B6:
cmp r5, #0
bne _080541CA
movs r0, #7
movs r1, #1
bl sub_0807CAA0
movs r0, #7
bl PutItemOnSlot
b _080541E2
_080541CA:
ldr r0, _080541EC @ =gSave
adds r1, r0, #0
adds r1, #0xae
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #3
bls _080541E2
movs r0, #3
strb r0, [r1]
_080541E2:
movs r0, #0x63
bl ModBombs
b _0805427C
.align 2, 0
_080541EC: .4byte gSave
_080541F0:
ldrb r0, [r4, #2]
bl ModBombs
b _0805424E
_080541F8:
movs r0, #0x66
bl GetInventoryValue
cmp r0, #0
bne _0805420A
movs r0, #0x66
movs r1, #1
bl sub_0807CAA0
_0805420A:
movs r0, #0x63
bl ModArrows
b _080541B0
_08054212:
ldr r0, _08054234 @ =gSave
adds r1, r0, #0
adds r1, #0xaf
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #3
bls _0805422A
movs r0, #3
strb r0, [r1]
_0805422A:
movs r0, #0x63
bl ModArrows
b _0805427C
.align 2, 0
_08054234: .4byte gSave
_08054238:
ldrb r0, [r4, #2]
bl ModArrows
b _0805424E
_08054240:
movs r0, #0x3f
movs r1, #1
bl sub_0807CAA0
adds r0, r7, #0
bl sub_080542C0
_0805424E:
ldr r0, _08054258 @ =0x00000103
bl SoundReq
b _0805427C
.align 2, 0
_08054258: .4byte 0x00000103
_0805425C:
adds r0, r7, #0
bl sub_0801E738
b _0805427C
_08054264:
ldr r0, _08054284 @ =gSave
adds r1, r0, #0
adds r1, #0xa8
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #3
bls _0805427C
movs r0, #3
_0805427A:
strb r0, [r1]
_0805427C:
mov r0, r8
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08054284: .4byte gSave
thumb_func_start sub_08054288
sub_08054288: @ 0x08054288
push {lr}
ldr r1, _08054298 @ =gUnk_080FD5B4
lsls r0, r0, #3
adds r0, r0, r1
ldrh r0, [r0, #6]
bl MessageFromTarget
pop {pc}
.align 2, 0
_08054298: .4byte gUnk_080FD5B4
thumb_func_start sub_0805429C
sub_0805429C: @ 0x0805429C
ldr r1, _080542A8 @ =gUnk_080FD5B4
lsls r0, r0, #3
adds r0, r0, r1
ldrh r0, [r0, #4]
bx lr
.align 2, 0
_080542A8: .4byte gUnk_080FD5B4
thumb_func_start sub_080542AC
sub_080542AC: @ 0x080542AC
ldr r1, _080542BC @ =gUnk_080FD5B4
lsls r0, r0, #3
adds r0, r0, r1
ldrb r1, [r0, #3]
movs r0, #1
ands r0, r1
bx lr
.align 2, 0
_080542BC: .4byte gUnk_080FD5B4
thumb_func_start sub_080542C0
sub_080542C0: @ 0x080542C0
push {lr}
adds r2, r0, #0
cmp r2, #0
bne _080542CA
movs r2, #1
_080542CA:
ldr r1, _080542DC @ =gSave
adds r0, r1, #0
adds r0, #0xc2
ldrh r0, [r0]
adds r2, r2, r0
cmp r2, #0
bge _080542E0
movs r2, #0
b _080542E8
.align 2, 0
_080542DC: .4byte gSave
_080542E0:
ldr r3, _080542F0 @ =0x000003E7
cmp r2, r3
ble _080542E8
adds r2, r3, #0
_080542E8:
adds r0, r1, #0
adds r0, #0xc2
strh r2, [r0]
pop {pc}
.align 2, 0
_080542F0: .4byte 0x000003E7