mirror of
https://github.com/pret/pokeheartgold.git
synced 2024-11-23 13:20:02 +00:00
3c607e68a6
This also renames `gx_layers` to `gf_gfx_planes`.
10370 lines
183 KiB
ArmAsm
10370 lines
183 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "overlay_85.inc"
|
|
.include "global.inc"
|
|
|
|
.text
|
|
|
|
thumb_func_start ov85_021E5900
|
|
ov85_021E5900: ; 0x021E5900
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
bl OverlayManager_GetArgs
|
|
add r4, r0, #0
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
bl sub_020398D4
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl Main_SetVBlankIntrCB
|
|
bl HBlankInterruptDisable
|
|
mov r0, #2
|
|
bl sub_0201A728
|
|
mov r2, #2
|
|
mov r0, #3
|
|
mov r1, #0x66
|
|
lsl r2, r2, #0x12
|
|
bl CreateHeap
|
|
ldr r1, _021E5A28 ; =0x00000DCC
|
|
add r0, r5, #0
|
|
mov r2, #0x66
|
|
bl OverlayManager_CreateAndGetData
|
|
ldr r2, _021E5A28 ; =0x00000DCC
|
|
add r6, r0, #0
|
|
mov r1, #0
|
|
bl memset
|
|
add r0, r6, #0
|
|
str r6, [r4, #0x34]
|
|
add r0, #0xcc
|
|
str r4, [r0]
|
|
add r0, r6, #0
|
|
ldr r1, [r4, #0x30]
|
|
add r0, #0xd0
|
|
str r1, [r0]
|
|
add r0, r6, #0
|
|
add r0, #0xcc
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x1c]
|
|
bl SaveArray_Party_Get
|
|
str r0, [r6, #0x24]
|
|
mov r0, #0xbb
|
|
mov r1, #0x66
|
|
bl NARC_New
|
|
mov r1, #0x36
|
|
lsl r1, r1, #6
|
|
str r0, [r6, r1]
|
|
mov r0, #8
|
|
mov r1, #0x66
|
|
bl GF_CreateVramTransferManager
|
|
bl sub_020210BC
|
|
mov r0, #4
|
|
bl sub_02021148
|
|
add r0, r6, #0
|
|
bl ov85_021E678C
|
|
ldr r0, _021E5A2C ; =ov85_021E6764
|
|
add r1, r6, #0
|
|
bl Main_SetVBlankIntrCB
|
|
add r0, r6, #0
|
|
bl ov85_021E752C
|
|
add r0, r6, #0
|
|
bl ov85_021E7650
|
|
mov r4, #0
|
|
add r5, r4, #0
|
|
bl sub_0203769C
|
|
add r1, r6, #0
|
|
add r1, #0xd4
|
|
mov ip, r1
|
|
add r1, r6, #0
|
|
add r1, #0xcc
|
|
ldr r7, [r1]
|
|
mov r3, #1
|
|
ldr r1, [r7, #0xc]
|
|
_021E59B6:
|
|
add r2, r3, #0
|
|
lsl r2, r4
|
|
tst r2, r1
|
|
beq _021E59C4
|
|
cmp r4, r0
|
|
beq _021E59CA
|
|
add r5, r5, #1
|
|
_021E59C4:
|
|
add r4, r4, #1
|
|
cmp r4, #5
|
|
blt _021E59B6
|
|
_021E59CA:
|
|
ldr r1, [r7, #8]
|
|
mov r0, #0xa
|
|
add r2, r1, #0
|
|
mul r2, r0
|
|
ldr r0, _021E5A30 ; =ov85_021EA788
|
|
lsl r1, r5, #1
|
|
add r0, r0, r2
|
|
ldrh r0, [r1, r0]
|
|
lsl r1, r0, #0xc
|
|
mov r0, ip
|
|
str r1, [r0, #0x40]
|
|
bl GF_GetCurrentPlayingBGM
|
|
str r0, [r6, #0x1c]
|
|
add r0, r6, #0
|
|
bl ov85_021E7D08
|
|
add r0, r6, #0
|
|
bl ov85_021E7E3C
|
|
add r0, r6, #0
|
|
bl ov85_021E7F74
|
|
add r0, r6, #0
|
|
bl ov85_021E80E0
|
|
add r0, r6, #0
|
|
bl ov85_021E82F8
|
|
add r0, r6, #0
|
|
bl ov85_021E83E0
|
|
mov r0, #8
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
mov r0, #0x66
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
add r2, r1, #0
|
|
add r3, r0, #0
|
|
bl BeginNormalPaletteFade
|
|
mov r0, #1
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E5A28: .word 0x00000DCC
|
|
_021E5A2C: .word ov85_021E6764
|
|
_021E5A30: .word ov85_021EA788
|
|
thumb_func_end ov85_021E5900
|
|
|
|
thumb_func_start ov85_021E5A34
|
|
ov85_021E5A34: ; 0x021E5A34
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
bl OverlayManager_GetData
|
|
add r4, r0, #0
|
|
bl sub_02021238
|
|
cmp r0, #1
|
|
beq _021E5A4A
|
|
bl GF_AssertFail
|
|
_021E5A4A:
|
|
add r0, r4, #0
|
|
bl ov85_021E7D40
|
|
add r0, r4, #0
|
|
bl ov85_021E7E78
|
|
add r0, r4, #0
|
|
bl ov85_021E7FB0
|
|
add r0, r4, #0
|
|
bl ov85_021E8118
|
|
add r0, r4, #0
|
|
bl ov85_021E833C
|
|
add r0, r4, #0
|
|
bl ov85_021E8418
|
|
add r0, r4, #0
|
|
bl ov85_021E75B8
|
|
add r0, r4, #0
|
|
bl ov85_021E7658
|
|
add r0, r4, #0
|
|
bl ov85_021E67CC
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl Main_SetVBlankIntrCB
|
|
bl GF_DestroyVramTransferManager
|
|
mov r0, #0x36
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
bl NARC_Delete
|
|
add r0, r5, #0
|
|
bl OverlayManager_FreeData
|
|
mov r0, #0x66
|
|
bl DestroyHeap
|
|
mov r0, #2
|
|
bl sub_0201A738
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov85_021E5A34
|
|
|
|
thumb_func_start ov85_021E5AAC
|
|
ov85_021E5AAC: ; 0x021E5AAC
|
|
push {r3, r4, r5, lr}
|
|
bl OverlayManager_GetData
|
|
add r5, r0, #0
|
|
bl ov85_021E74AC
|
|
ldr r4, _021E5AEC ; =ov85_021EA800
|
|
_021E5ABA:
|
|
ldr r1, [r5]
|
|
add r0, r5, #0
|
|
lsl r1, r1, #2
|
|
ldr r1, [r4, r1]
|
|
blx r1
|
|
cmp r0, #1
|
|
beq _021E5ABA
|
|
cmp r0, #2
|
|
bne _021E5AD0
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021E5AD0:
|
|
add r0, r5, #0
|
|
bl ov85_021E75C8
|
|
add r0, r5, #0
|
|
bl ov85_021E7798
|
|
add r0, r5, #0
|
|
bl ov85_021E67F4
|
|
add r0, r5, #0
|
|
bl ov85_021E5AF0
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E5AEC: .word ov85_021EA800
|
|
thumb_func_end ov85_021E5AAC
|
|
|
|
thumb_func_start ov85_021E5AF0
|
|
ov85_021E5AF0: ; 0x021E5AF0
|
|
mov r1, #0
|
|
str r1, [r0, #0x34]
|
|
str r1, [r0, #0x3c]
|
|
bx lr
|
|
thumb_func_end ov85_021E5AF0
|
|
|
|
thumb_func_start ov85_021E5AF8
|
|
ov85_021E5AF8: ; 0x021E5AF8
|
|
push {r4, lr}
|
|
mov r1, #0
|
|
add r4, r0, #0
|
|
bl ov85_021E7194
|
|
mov r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E5AF8
|
|
|
|
thumb_func_start ov85_021E5B0C
|
|
ov85_021E5B0C: ; 0x021E5B0C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _021E5B2C
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
bne _021E5B24
|
|
mov r0, #2
|
|
b _021E5B26
|
|
_021E5B24:
|
|
mov r0, #8
|
|
_021E5B26:
|
|
str r0, [r4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E5B2C:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov85_021E5B0C
|
|
|
|
thumb_func_start ov85_021E5B30
|
|
ov85_021E5B30: ; 0x021E5B30
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov85_021E8628
|
|
cmp r0, #0
|
|
beq _021E5B44
|
|
mov r0, #3
|
|
str r0, [r4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E5B44:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov85_021E5B30
|
|
|
|
thumb_func_start ov85_021E5B48
|
|
ov85_021E5B48: ; 0x021E5B48
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
mov r1, #1
|
|
add r0, sp, #0
|
|
strh r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0xd0
|
|
ldr r0, [r0]
|
|
mov r1, #8
|
|
add r2, sp, #0
|
|
mov r3, #2
|
|
bl sub_02096D4C
|
|
cmp r0, #1
|
|
bne _021E5B72
|
|
mov r0, #4
|
|
str r0, [r4]
|
|
add sp, #4
|
|
mov r0, #1
|
|
pop {r3, r4, pc}
|
|
_021E5B72:
|
|
mov r0, #0
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
thumb_func_end ov85_021E5B48
|
|
|
|
thumb_func_start ov85_021E5B78
|
|
ov85_021E5B78: ; 0x021E5B78
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
bl ov85_021E8660
|
|
add r5, r0, #1
|
|
bl sub_02037454
|
|
cmp r5, r0
|
|
beq _021E5B8E
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_021E5B8E:
|
|
mov r0, #5
|
|
str r0, [r4]
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E5B78
|
|
|
|
thumb_func_start ov85_021E5B98
|
|
ov85_021E5B98: ; 0x021E5B98
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov85_021E8660
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x30]
|
|
add r0, r4, #0
|
|
add r0, #0xd0
|
|
add r2, r4, #0
|
|
ldr r0, [r0]
|
|
mov r1, #0xd
|
|
add r2, #0x30
|
|
mov r3, #4
|
|
bl sub_02096D4C
|
|
cmp r0, #1
|
|
bne _021E5BC2
|
|
mov r0, #0
|
|
str r0, [r4, #0x14]
|
|
mov r0, #6
|
|
str r0, [r4]
|
|
_021E5BC2:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E5B98
|
|
|
|
thumb_func_start ov85_021E5BC8
|
|
ov85_021E5BC8: ; 0x021E5BC8
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
ldr r3, [r4, #0x14]
|
|
cmp r3, #0
|
|
bne _021E5BFC
|
|
mov r1, #0
|
|
add r0, sp, #0
|
|
strh r1, [r0, #2]
|
|
strh r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0xd0
|
|
ldr r0, [r0]
|
|
mov r1, #0xc
|
|
add r2, sp, #0
|
|
mov r3, #4
|
|
bl sub_02096D4C
|
|
cmp r0, #1
|
|
bne _021E5BF6
|
|
ldr r0, [r4, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x14]
|
|
_021E5BF6:
|
|
add sp, #4
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, pc}
|
|
_021E5BFC:
|
|
add r2, r4, #0
|
|
add r2, #0xd0
|
|
ldr r2, [r2]
|
|
mov r0, #1
|
|
add r2, #0x42
|
|
ldrh r2, [r2]
|
|
add r1, r0, #0
|
|
add r5, r0, #0
|
|
_021E5C0C:
|
|
add r6, r5, #0
|
|
lsl r6, r0
|
|
tst r6, r2
|
|
beq _021E5C3E
|
|
cmp r1, r3
|
|
blt _021E5C3C
|
|
add r1, sp, #0
|
|
strh r0, [r1, #2]
|
|
ldr r0, [r4, #0x14]
|
|
add r2, sp, #0
|
|
strh r0, [r1]
|
|
add r0, r4, #0
|
|
add r0, #0xd0
|
|
ldr r0, [r0]
|
|
mov r1, #0xc
|
|
mov r3, #4
|
|
bl sub_02096D4C
|
|
cmp r0, #1
|
|
bne _021E5C44
|
|
ldr r0, [r4, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x14]
|
|
b _021E5C44
|
|
_021E5C3C:
|
|
add r1, r1, #1
|
|
_021E5C3E:
|
|
add r0, r0, #1
|
|
cmp r0, #5
|
|
blt _021E5C0C
|
|
_021E5C44:
|
|
ldr r1, [r4, #0x14]
|
|
ldr r0, [r4, #0x30]
|
|
cmp r1, r0
|
|
blt _021E5C50
|
|
mov r0, #7
|
|
str r0, [r4]
|
|
_021E5C50:
|
|
mov r0, #0
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E5BC8
|
|
|
|
thumb_func_start ov85_021E5C58
|
|
ov85_021E5C58: ; 0x021E5C58
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
mov r1, #8
|
|
add r0, sp, #0
|
|
strh r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0xd0
|
|
ldr r0, [r0]
|
|
add r2, sp, #0
|
|
mov r3, #2
|
|
bl sub_02096D4C
|
|
cmp r0, #1
|
|
bne _021E5C7A
|
|
mov r0, #0xa
|
|
str r0, [r4]
|
|
_021E5C7A:
|
|
mov r0, #0
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
thumb_func_end ov85_021E5C58
|
|
|
|
thumb_func_start ov85_021E5C80
|
|
ov85_021E5C80: ; 0x021E5C80
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0xd0
|
|
mov r2, #0
|
|
ldr r0, [r0]
|
|
mov r1, #9
|
|
add r3, r2, #0
|
|
bl sub_02096D4C
|
|
cmp r0, #1
|
|
bne _021E5CA0
|
|
mov r0, #0
|
|
str r0, [r4, #0x10]
|
|
mov r1, #9
|
|
str r1, [r4]
|
|
pop {r4, pc}
|
|
_021E5CA0:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov85_021E5C80
|
|
|
|
thumb_func_start ov85_021E5CA4
|
|
ov85_021E5CA4: ; 0x021E5CA4
|
|
push {r4, lr}
|
|
mov r1, #8
|
|
add r4, r0, #0
|
|
bl ov85_021E8614
|
|
cmp r0, #1
|
|
bne _021E5CCA
|
|
ldr r0, [r4, #0x30]
|
|
cmp r0, #2
|
|
bge _021E5CBC
|
|
bl GF_AssertFail
|
|
_021E5CBC:
|
|
ldr r0, [r4, #0x2c]
|
|
cmp r0, #0
|
|
bne _021E5CC6
|
|
bl GF_AssertFail
|
|
_021E5CC6:
|
|
mov r0, #0xa
|
|
str r0, [r4]
|
|
_021E5CCA:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E5CA4
|
|
|
|
thumb_func_start ov85_021E5CD0
|
|
ov85_021E5CD0: ; 0x021E5CD0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0xca
|
|
bl sub_02037AC0
|
|
mov r0, #0xb
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E5CD0
|
|
|
|
thumb_func_start ov85_021E5CE4
|
|
ov85_021E5CE4: ; 0x021E5CE4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0xca
|
|
bl sub_02037B38
|
|
cmp r0, #0
|
|
beq _021E5CF6
|
|
mov r0, #0xc
|
|
str r0, [r4]
|
|
_021E5CF6:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E5CE4
|
|
|
|
thumb_func_start ov85_021E5CFC
|
|
ov85_021E5CFC: ; 0x021E5CFC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r2, r4, #0
|
|
add r2, #0xcc
|
|
add r0, #0xd0
|
|
ldr r2, [r2]
|
|
ldr r0, [r0]
|
|
mov r1, #0xe
|
|
add r2, r2, #4
|
|
mov r3, #4
|
|
bl sub_02096D4C
|
|
cmp r0, #0
|
|
beq _021E5D1C
|
|
mov r0, #0xd
|
|
str r0, [r4]
|
|
_021E5D1C:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov85_021E5CFC
|
|
|
|
thumb_func_start ov85_021E5D20
|
|
ov85_021E5D20: ; 0x021E5D20
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r2, #0x59
|
|
ldr r1, [r4, #0x24]
|
|
mov r0, #0x83
|
|
lsl r2, r2, #4
|
|
bl sub_02036FD8
|
|
cmp r0, #0
|
|
beq _021E5D38
|
|
mov r0, #0xe
|
|
str r0, [r4]
|
|
_021E5D38:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov85_021E5D20
|
|
|
|
thumb_func_start ov85_021E5D3C
|
|
ov85_021E5D3C: ; 0x021E5D3C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov85_021E8720
|
|
ldr r1, [r4, #0x30]
|
|
cmp r1, r0
|
|
bne _021E5D7E
|
|
add r0, r4, #0
|
|
bl ov85_021E8834
|
|
cmp r0, #1
|
|
bne _021E5D6A
|
|
add r0, r4, #0
|
|
add r0, #0xd0
|
|
mov r2, #0
|
|
ldr r0, [r0]
|
|
mov r1, #0x10
|
|
add r3, r2, #0
|
|
bl sub_02096D4C
|
|
mov r0, #0x2e
|
|
str r0, [r4]
|
|
b _021E5D7E
|
|
_021E5D6A:
|
|
add r0, r4, #0
|
|
add r0, #0xd0
|
|
mov r2, #0
|
|
ldr r0, [r0]
|
|
mov r1, #0x11
|
|
add r3, r2, #0
|
|
bl sub_02096D4C
|
|
mov r0, #0xf
|
|
str r0, [r4]
|
|
_021E5D7E:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E5D3C
|
|
|
|
thumb_func_start ov85_021E5D84
|
|
ov85_021E5D84: ; 0x021E5D84
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov85_021E8898
|
|
cmp r0, #1
|
|
bne _021E5D96
|
|
mov r0, #0x2e
|
|
str r0, [r4]
|
|
b _021E5DA6
|
|
_021E5D96:
|
|
add r0, r4, #0
|
|
bl ov85_021E8878
|
|
ldr r1, [r4, #0x30]
|
|
cmp r1, r0
|
|
bne _021E5DA6
|
|
mov r0, #0x10
|
|
str r0, [r4]
|
|
_021E5DA6:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E5D84
|
|
|
|
thumb_func_start ov85_021E5DAC
|
|
ov85_021E5DAC: ; 0x021E5DAC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
mov r1, #0x18
|
|
bl ov85_021E85F0
|
|
add r7, r0, #0
|
|
ldr r0, [r6, #0x2c]
|
|
ldr r2, _021E5E28 ; =ov85_021EA788
|
|
str r0, [r7, #0x10]
|
|
ldr r1, [r6, #0x30]
|
|
mov r0, #0xa
|
|
add r3, r1, #0
|
|
str r1, [r7, #0x14]
|
|
mul r3, r0
|
|
ldr r0, [r6, #0x2c]
|
|
mov r4, #0
|
|
lsl r1, r0, #1
|
|
add r0, r2, r3
|
|
ldrh r0, [r1, r0]
|
|
add r5, r6, #0
|
|
str r0, [r7, #4]
|
|
_021E5DD6:
|
|
add r0, r6, #0
|
|
add r1, r4, #0
|
|
bl ov85_021E86B0
|
|
cmp r0, #0
|
|
beq _021E5DFE
|
|
add r0, r4, #0
|
|
bl sub_02034818
|
|
add r1, r5, #0
|
|
add r1, #0x84
|
|
str r0, [r1]
|
|
add r0, r5, #0
|
|
add r1, r5, #0
|
|
add r0, #0x84
|
|
add r1, #0x98
|
|
ldr r0, [r0]
|
|
ldr r1, [r1]
|
|
bl PlayerName_FlatToString
|
|
_021E5DFE:
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #8
|
|
blt _021E5DD6
|
|
ldr r0, [r7, #4]
|
|
mov r2, #1
|
|
lsl r1, r0, #0xc
|
|
mov r0, #0x45
|
|
lsl r0, r0, #2
|
|
str r1, [r6, r0]
|
|
mov r0, #0x11
|
|
str r0, [r6]
|
|
ldr r1, _021E5E2C ; =0x00000483
|
|
mov r0, #0xf
|
|
bl sub_02004EC4
|
|
add r0, r6, #0
|
|
bl ov85_021E72E8
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E5E28: .word ov85_021EA788
|
|
_021E5E2C: .word 0x00000483
|
|
thumb_func_end ov85_021E5DAC
|
|
|
|
thumb_func_start ov85_021E5E30
|
|
ov85_021E5E30: ; 0x021E5E30
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
ldr r1, [r5, #0xc]
|
|
sub r1, r1, #1
|
|
str r1, [r5, #0xc]
|
|
cmp r1, #0
|
|
ble _021E5E46
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r4, r5, pc}
|
|
_021E5E46:
|
|
mov r1, #0xf
|
|
str r1, [r5, #0xc]
|
|
bl ov85_021E8610
|
|
add r4, r0, #0
|
|
ldr r1, [r4, #0x14]
|
|
mov r0, #0xa
|
|
add r3, r1, #0
|
|
ldr r2, [r4, #0x10]
|
|
mul r3, r0
|
|
ldr r0, _021E5EB0 ; =ov85_021EA7C4
|
|
lsl r1, r2, #1
|
|
add r0, r0, r3
|
|
ldrh r0, [r1, r0]
|
|
str r0, [sp]
|
|
ldr r0, [r4, #4]
|
|
str r0, [sp, #4]
|
|
mov r0, #0x2d
|
|
lsl r0, r0, #4
|
|
add r1, r5, r0
|
|
mov r0, #0xb0
|
|
mul r0, r2
|
|
add r0, r1, r0
|
|
str r0, [sp, #8]
|
|
lsl r1, r2, #2
|
|
add r1, r5, r1
|
|
add r1, #0x72
|
|
ldrh r1, [r1]
|
|
ldr r3, [r4]
|
|
add r0, r5, #0
|
|
bl ov85_021E7B40
|
|
ldr r0, [r4, #0x10]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x10]
|
|
ldr r1, [r4, #0x14]
|
|
bl _s32_div_f
|
|
str r1, [r4, #0x10]
|
|
ldr r0, [r4]
|
|
add r1, r0, #1
|
|
str r1, [r4]
|
|
ldr r0, [r4, #0x14]
|
|
cmp r1, r0
|
|
bne _021E5EA8
|
|
mov r0, #0
|
|
str r0, [r5, #0xc]
|
|
mov r0, #0x12
|
|
str r0, [r5]
|
|
_021E5EA8:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_021E5EB0: .word ov85_021EA7C4
|
|
thumb_func_end ov85_021E5E30
|
|
|
|
thumb_func_start ov85_021E5EB4
|
|
ov85_021E5EB4: ; 0x021E5EB4
|
|
push {r3, r4, r5, r6}
|
|
mov r1, #0x19
|
|
mov r3, #0
|
|
lsl r1, r1, #4
|
|
add r6, r0, r1
|
|
ldr r5, [r0, #0x30]
|
|
add r4, r3, #0
|
|
sub r1, #0x48
|
|
_021E5EC4:
|
|
ldr r2, [r6, r1]
|
|
cmp r2, #1
|
|
bne _021E5ECC
|
|
add r4, r4, #1
|
|
_021E5ECC:
|
|
add r3, r3, #1
|
|
add r6, #0xb0
|
|
cmp r3, r5
|
|
blt _021E5EC4
|
|
cmp r4, r5
|
|
bne _021E5EE2
|
|
mov r1, #0x13
|
|
str r1, [r0]
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6}
|
|
bx lr
|
|
_021E5EE2:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6}
|
|
bx lr
|
|
thumb_func_end ov85_021E5EB4
|
|
|
|
thumb_func_start ov85_021E5EE8
|
|
ov85_021E5EE8: ; 0x021E5EE8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0xc]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0xc]
|
|
cmp r0, #0x1e
|
|
ble _021E5F0C
|
|
mov r0, #0
|
|
str r0, [r4, #0xc]
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
bne _021E5F08
|
|
mov r0, #0x14
|
|
str r0, [r4]
|
|
b _021E5F0C
|
|
_021E5F08:
|
|
mov r0, #0x15
|
|
str r0, [r4]
|
|
_021E5F0C:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov85_021E5EE8
|
|
|
|
thumb_func_start ov85_021E5F10
|
|
ov85_021E5F10: ; 0x021E5F10
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
mov r1, #4
|
|
add r0, sp, #0
|
|
strh r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0xd0
|
|
ldr r0, [r0]
|
|
mov r1, #8
|
|
add r2, sp, #0
|
|
mov r3, #2
|
|
bl sub_02096D4C
|
|
cmp r0, #1
|
|
bne _021E5F34
|
|
mov r0, #0x16
|
|
str r0, [r4]
|
|
_021E5F34:
|
|
mov r0, #0
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E5F10
|
|
|
|
thumb_func_start ov85_021E5F3C
|
|
ov85_021E5F3C: ; 0x021E5F3C
|
|
push {r4, lr}
|
|
mov r1, #4
|
|
add r4, r0, #0
|
|
bl ov85_021E8614
|
|
cmp r0, #1
|
|
bne _021E5F52
|
|
mov r0, #0x16
|
|
str r0, [r4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E5F52:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E5F3C
|
|
|
|
thumb_func_start ov85_021E5F58
|
|
ov85_021E5F58: ; 0x021E5F58
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0xca
|
|
bl sub_02037AC0
|
|
mov r0, #0x17
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E5F58
|
|
|
|
thumb_func_start ov85_021E5F6C
|
|
ov85_021E5F6C: ; 0x021E5F6C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0xca
|
|
bl sub_02037B38
|
|
cmp r0, #0
|
|
beq _021E5F7E
|
|
mov r0, #0x18
|
|
str r0, [r4]
|
|
_021E5F7E:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E5F6C
|
|
|
|
thumb_func_start ov85_021E5F84
|
|
ov85_021E5F84: ; 0x021E5F84
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r1, #1
|
|
bl ov85_021E84EC
|
|
add r0, r4, #0
|
|
bl ov85_021E81E0
|
|
mov r0, #0x19
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov85_021E5F84
|
|
|
|
thumb_func_start ov85_021E5F9C
|
|
ov85_021E5F9C: ; 0x021E5F9C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0xc]
|
|
cmp r0, #0x5f
|
|
bge _021E5FAE
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_021E5FAE:
|
|
ldr r0, [r5, #0x30]
|
|
mov r4, #0
|
|
cmp r0, #0
|
|
ble _021E5FC6
|
|
_021E5FB6:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov85_021E7400
|
|
ldr r0, [r5, #0x30]
|
|
add r4, r4, #1
|
|
cmp r4, r0
|
|
blt _021E5FB6
|
|
_021E5FC6:
|
|
mov r0, #0
|
|
str r0, [r5, #0xc]
|
|
mov r1, #0x1a
|
|
str r1, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov85_021E5F9C
|
|
|
|
thumb_func_start ov85_021E5FD0
|
|
ov85_021E5FD0: ; 0x021E5FD0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl sub_0203769C
|
|
mov r0, #0x1b
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov85_021E5FD0
|
|
|
|
thumb_func_start ov85_021E5FE0
|
|
ov85_021E5FE0: ; 0x021E5FE0
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
bl ov85_021E8570
|
|
cmp r0, #1
|
|
bne _021E6002
|
|
add r0, r4, #0
|
|
bl ov85_021E8150
|
|
cmp r0, #0
|
|
bne _021E6002
|
|
mov r0, #0x1d
|
|
str r0, [r4]
|
|
add sp, #8
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021E6002:
|
|
ldr r0, [r4, #0x34]
|
|
cmp r0, #0
|
|
beq _021E6018
|
|
add r0, r4, #0
|
|
bl ov85_021E8150
|
|
cmp r0, #0
|
|
bne _021E6018
|
|
add r0, r4, #0
|
|
bl ov85_021E8128
|
|
_021E6018:
|
|
add r0, r4, #0
|
|
bl ov85_021E834C
|
|
cmp r0, #0
|
|
bne _021E6046
|
|
add r0, r4, #0
|
|
bl ov85_021E750C
|
|
cmp r0, #1
|
|
bne _021E6046
|
|
add r0, r4, #0
|
|
bl ov85_021E8150
|
|
cmp r0, #0
|
|
bne _021E6040
|
|
add r0, r4, #0
|
|
bl ov85_021E8128
|
|
mov r0, #1
|
|
str r0, [r4, #0x38]
|
|
_021E6040:
|
|
add r0, r4, #0
|
|
bl ov85_021E8358
|
|
_021E6046:
|
|
ldr r0, [r4, #0x38]
|
|
cmp r0, #0
|
|
beq _021E6068
|
|
add r0, r4, #0
|
|
add r0, #0xcc
|
|
ldr r0, [r0]
|
|
add r2, r4, #0
|
|
ldr r0, [r0, #0x30]
|
|
mov r1, #0xa
|
|
add r2, #0x38
|
|
mov r3, #1
|
|
bl sub_02096D4C
|
|
cmp r0, #1
|
|
bne _021E6068
|
|
mov r0, #0
|
|
str r0, [r4, #0x38]
|
|
_021E6068:
|
|
add r0, r4, #0
|
|
mov r1, #0x4b
|
|
ldr r2, [r4, #8]
|
|
add r0, #0xd4
|
|
lsl r1, r1, #2
|
|
cmp r2, r1
|
|
ldr r2, [r0, #0x48]
|
|
bge _021E6088
|
|
mov r1, #0xe
|
|
add r2, #0xbf
|
|
lsl r1, r1, #0xc
|
|
str r2, [r0, #0x48]
|
|
cmp r2, r1
|
|
blt _021E6096
|
|
str r1, [r0, #0x48]
|
|
b _021E6096
|
|
_021E6088:
|
|
mov r1, #1
|
|
sub r2, #0xbf
|
|
lsl r1, r1, #0xe
|
|
str r2, [r0, #0x48]
|
|
cmp r2, r1
|
|
bge _021E6096
|
|
str r1, [r0, #0x48]
|
|
_021E6096:
|
|
ldr r5, [r0, #0x48]
|
|
add r0, r4, #0
|
|
bl ov85_021E8144
|
|
cmp r0, #1
|
|
bne _021E60AE
|
|
add r0, r4, #0
|
|
add r0, #0xd4
|
|
lsl r1, r5, #1
|
|
bl ov85_021E7644
|
|
b _021E60B6
|
|
_021E60AE:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl ov85_021E8558
|
|
_021E60B6:
|
|
ldr r0, [r4, #8]
|
|
add r2, sp, #0
|
|
mov r1, #0x47
|
|
strh r0, [r2, #2]
|
|
lsl r1, r1, #2
|
|
ldr r3, [r4, r1]
|
|
sub r1, #0xc
|
|
asr r0, r3, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r3, r0
|
|
asr r0, r0, #0xc
|
|
strh r0, [r2, #4]
|
|
ldr r1, [r4, r1]
|
|
add r4, #0xd0
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
asr r0, r0, #0xc
|
|
strh r0, [r2, #6]
|
|
ldr r0, [r4]
|
|
mov r1, #0xb
|
|
add r2, sp, #0
|
|
mov r3, #8
|
|
bl sub_02096D4C
|
|
mov r0, #0
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E5FE0
|
|
|
|
thumb_func_start ov85_021E60F0
|
|
ov85_021E60F0: ; 0x021E60F0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x3c]
|
|
cmp r0, #1
|
|
bne _021E611A
|
|
add r0, r4, #0
|
|
add r0, #0x5e
|
|
ldrh r0, [r0]
|
|
lsl r1, r0, #0xc
|
|
mov r0, #0x11
|
|
lsl r0, r0, #4
|
|
str r1, [r4, r0]
|
|
mov r0, #0x5c
|
|
ldrsh r1, [r4, r0]
|
|
add r0, #0xc0
|
|
lsl r1, r1, #0xc
|
|
str r1, [r4, r0]
|
|
add r0, r4, #0
|
|
add r0, #0x5a
|
|
ldrh r0, [r0]
|
|
str r0, [r4, #8]
|
|
_021E611A:
|
|
add r0, r4, #0
|
|
bl ov85_021E8570
|
|
cmp r0, #1
|
|
bne _021E6136
|
|
add r0, r4, #0
|
|
bl ov85_021E8150
|
|
cmp r0, #0
|
|
bne _021E6136
|
|
mov r0, #0x1d
|
|
str r0, [r4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E6136:
|
|
ldr r0, [r4, #0x34]
|
|
cmp r0, #0
|
|
beq _021E614C
|
|
add r0, r4, #0
|
|
bl ov85_021E8150
|
|
cmp r0, #0
|
|
bne _021E614C
|
|
add r0, r4, #0
|
|
bl ov85_021E8128
|
|
_021E614C:
|
|
add r0, r4, #0
|
|
bl ov85_021E834C
|
|
cmp r0, #0
|
|
bne _021E617A
|
|
add r0, r4, #0
|
|
bl ov85_021E750C
|
|
cmp r0, #1
|
|
bne _021E617A
|
|
add r0, r4, #0
|
|
bl ov85_021E8150
|
|
cmp r0, #0
|
|
bne _021E6174
|
|
add r0, r4, #0
|
|
bl ov85_021E8128
|
|
mov r0, #1
|
|
str r0, [r4, #0x38]
|
|
_021E6174:
|
|
add r0, r4, #0
|
|
bl ov85_021E8358
|
|
_021E617A:
|
|
ldr r0, [r4, #0x38]
|
|
cmp r0, #0
|
|
beq _021E619C
|
|
add r0, r4, #0
|
|
add r0, #0xcc
|
|
ldr r0, [r0]
|
|
add r2, r4, #0
|
|
ldr r0, [r0, #0x30]
|
|
mov r1, #0xa
|
|
add r2, #0x38
|
|
mov r3, #1
|
|
bl sub_02096D4C
|
|
cmp r0, #1
|
|
bne _021E619C
|
|
mov r0, #0
|
|
str r0, [r4, #0x38]
|
|
_021E619C:
|
|
add r0, r4, #0
|
|
bl ov85_021E8144
|
|
cmp r0, #1
|
|
bne _021E61B8
|
|
mov r1, #0x47
|
|
lsl r1, r1, #2
|
|
ldr r1, [r4, r1]
|
|
add r0, r4, #0
|
|
add r0, #0xd4
|
|
lsl r1, r1, #1
|
|
bl ov85_021E7644
|
|
b _021E61C4
|
|
_021E61B8:
|
|
mov r1, #0x47
|
|
lsl r1, r1, #2
|
|
ldr r1, [r4, r1]
|
|
add r0, r4, #0
|
|
bl ov85_021E8558
|
|
_021E61C4:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov85_021E60F0
|
|
|
|
thumb_func_start ov85_021E61C8
|
|
ov85_021E61C8: ; 0x021E61C8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r1, #0
|
|
bl ov85_021E84EC
|
|
add r0, r4, #0
|
|
bl ov85_021E7958
|
|
str r0, [r4, #0x28]
|
|
bl sub_0203769C
|
|
ldr r1, [r4, #0x28]
|
|
ldr r1, [r1, #0xc]
|
|
cmp r1, r0
|
|
bne _021E61EA
|
|
mov r0, #0x1e
|
|
b _021E61EC
|
|
_021E61EA:
|
|
mov r0, #0x1f
|
|
_021E61EC:
|
|
str r0, [r4]
|
|
ldr r0, _021E61F8 ; =0x000005F1
|
|
bl PlaySE
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E61F8: .word 0x000005F1
|
|
thumb_func_end ov85_021E61C8
|
|
|
|
thumb_func_start ov85_021E61FC
|
|
ov85_021E61FC: ; 0x021E61FC
|
|
push {r4, lr}
|
|
mov r1, #1
|
|
add r4, r0, #0
|
|
lsl r1, r1, #0xe
|
|
bl ov85_021E8558
|
|
add r0, r4, #0
|
|
bl ov85_021E7958
|
|
str r0, [r4, #0x28]
|
|
bl sub_0203769C
|
|
ldr r1, [r4, #0x28]
|
|
ldr r1, [r1, #0xc]
|
|
cmp r1, r0
|
|
beq _021E6220
|
|
mov r0, #0x1f
|
|
str r0, [r4]
|
|
_021E6220:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov85_021E61FC
|
|
|
|
thumb_func_start ov85_021E6224
|
|
ov85_021E6224: ; 0x021E6224
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r6, r0, #0
|
|
ldr r0, [r6, #0x28]
|
|
ldr r2, [r6, #0x30]
|
|
ldr r1, [r0, #0x1c]
|
|
ldr r3, [r6, #0x2c]
|
|
mov r0, #0xa
|
|
mul r0, r2
|
|
ldr r4, _021E629C ; =ov85_021EA7C4
|
|
lsl r2, r3, #1
|
|
add r0, r4, r0
|
|
ldrh r0, [r2, r0]
|
|
mov r5, #1
|
|
lsl r5, r5, #0xe
|
|
lsl r4, r0, #0xc
|
|
str r1, [sp]
|
|
sub r2, r4, r1
|
|
bpl _021E6252
|
|
mov r0, #0x5a
|
|
lsl r0, r0, #0xe
|
|
add r0, r4, r0
|
|
sub r2, r0, r1
|
|
_021E6252:
|
|
mov r0, #1
|
|
lsl r0, r0, #0x10
|
|
cmp r2, r0
|
|
bgt _021E625C
|
|
asr r5, r5, #1
|
|
_021E625C:
|
|
cmp r2, r5
|
|
bge _021E6262
|
|
add r5, r2, #0
|
|
_021E6262:
|
|
add r0, r6, #0
|
|
add r0, #0xd4
|
|
add r1, r5, #0
|
|
bl ov85_021E7644
|
|
add r0, r6, #0
|
|
add r1, r5, #0
|
|
bl ov85_021E78A4
|
|
add r0, sp, #0
|
|
add r1, r5, #0
|
|
bl ov85_021E8530
|
|
ldr r1, [sp]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
asr r1, r0, #0xc
|
|
asr r0, r4, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r4, r0
|
|
asr r0, r0, #0xc
|
|
cmp r1, r0
|
|
bne _021E6296
|
|
mov r0, #0x20
|
|
str r0, [r6]
|
|
_021E6296:
|
|
mov r0, #0
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021E629C: .word ov85_021EA7C4
|
|
thumb_func_end ov85_021E6224
|
|
|
|
thumb_func_start ov85_021E62A0
|
|
ov85_021E62A0: ; 0x021E62A0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0xca
|
|
bl sub_02037AC0
|
|
mov r0, #0x21
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E62A0
|
|
|
|
thumb_func_start ov85_021E62B4
|
|
ov85_021E62B4: ; 0x021E62B4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0xca
|
|
bl sub_02037B38
|
|
cmp r0, #0
|
|
beq _021E62D4
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
bne _021E62D0
|
|
mov r0, #0x22
|
|
str r0, [r4]
|
|
b _021E62D4
|
|
_021E62D0:
|
|
mov r0, #0x23
|
|
str r0, [r4]
|
|
_021E62D4:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov85_021E62B4
|
|
|
|
thumb_func_start ov85_021E62D8
|
|
ov85_021E62D8: ; 0x021E62D8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
mov r0, #0x11
|
|
lsl r0, r0, #4
|
|
ldr r1, [r5, r0]
|
|
mov r7, #0
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
asr r1, r0, #0xc
|
|
add r0, sp, #0
|
|
strh r1, [r0]
|
|
str r7, [r5, #0x20]
|
|
ldr r0, [r5, #0x30]
|
|
cmp r0, #0
|
|
ble _021E6346
|
|
mov r0, #0x2d
|
|
lsl r0, r0, #4
|
|
add r6, r5, #0
|
|
add r4, r5, r0
|
|
add r6, #0x20
|
|
_021E6304:
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
bne _021E630E
|
|
bl GF_AssertFail
|
|
_021E630E:
|
|
ldr r1, [r4, #0x1c]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
ldr r1, [r4, #0x10]
|
|
asr r0, r0, #0xc
|
|
lsl r2, r1, #1
|
|
add r1, sp, #0
|
|
add r1, r1, r2
|
|
strh r0, [r1, #4]
|
|
ldr r1, [r4, #0x1c]
|
|
ldr r2, [r5, #0x30]
|
|
add r0, r5, #0
|
|
bl ov85_021E8764
|
|
cmp r0, #1
|
|
bne _021E633C
|
|
ldr r2, [r4, #0xc]
|
|
mov r1, #1
|
|
ldr r0, [r6]
|
|
lsl r1, r2
|
|
orr r0, r1
|
|
str r0, [r6]
|
|
_021E633C:
|
|
ldr r0, [r5, #0x30]
|
|
add r7, r7, #1
|
|
add r4, #0xb0
|
|
cmp r7, r0
|
|
blt _021E6304
|
|
_021E6346:
|
|
ldr r1, [r5, #0x20]
|
|
add r0, sp, #0
|
|
strh r1, [r0, #2]
|
|
add r0, r5, #0
|
|
add r0, #0xd0
|
|
ldr r0, [r0]
|
|
mov r1, #0xf
|
|
add r2, sp, #0
|
|
mov r3, #0x10
|
|
bl sub_02096D4C
|
|
cmp r0, #1
|
|
bne _021E6364
|
|
mov r0, #0x24
|
|
str r0, [r5]
|
|
_021E6364:
|
|
mov r0, #0
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E62D8
|
|
|
|
thumb_func_start ov85_021E636C
|
|
ov85_021E636C: ; 0x021E636C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0x40]
|
|
cmp r0, #1
|
|
bne _021E63D2
|
|
add r0, r5, #0
|
|
add r0, #0x60
|
|
ldrh r0, [r0]
|
|
add r7, r5, #0
|
|
add r7, #0x60
|
|
lsl r1, r0, #0xc
|
|
mov r0, #0x11
|
|
lsl r0, r0, #4
|
|
str r1, [r5, r0]
|
|
ldr r0, [r5, #0x30]
|
|
mov r6, #0
|
|
cmp r0, #0
|
|
ble _021E63B6
|
|
mov r0, #0x2d
|
|
lsl r0, r0, #4
|
|
add r4, r5, r0
|
|
_021E6396:
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
bne _021E63A0
|
|
bl GF_AssertFail
|
|
_021E63A0:
|
|
ldr r0, [r4, #0x10]
|
|
add r6, r6, #1
|
|
lsl r0, r0, #1
|
|
add r0, r7, r0
|
|
ldrh r0, [r0, #4]
|
|
lsl r0, r0, #0xc
|
|
str r0, [r4, #0x1c]
|
|
ldr r0, [r5, #0x30]
|
|
add r4, #0xb0
|
|
cmp r6, r0
|
|
blt _021E6396
|
|
_021E63B6:
|
|
ldrh r0, [r7, #2]
|
|
str r0, [r5, #0x20]
|
|
add r0, r5, #0
|
|
bl ov85_021E75C8
|
|
add r0, r5, #0
|
|
bl ov85_021E7798
|
|
add r0, r5, #0
|
|
bl ov85_021E7958
|
|
str r0, [r5, #0x28]
|
|
mov r0, #0x24
|
|
str r0, [r5]
|
|
_021E63D2:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E636C
|
|
|
|
thumb_func_start ov85_021E63D8
|
|
ov85_021E63D8: ; 0x021E63D8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0x28]
|
|
mov r6, #0
|
|
ldr r4, [r0, #0x10]
|
|
ldr r0, [r5, #0x30]
|
|
cmp r0, #0
|
|
ble _021E6416
|
|
_021E63E8:
|
|
mov r0, #0xb0
|
|
mul r0, r4
|
|
add r1, r5, r0
|
|
mov r0, #0xb7
|
|
lsl r0, r0, #2
|
|
ldr r3, [r1, r0]
|
|
add r0, r5, #0
|
|
lsl r1, r3, #2
|
|
add r1, r5, r1
|
|
add r1, #0x98
|
|
ldr r1, [r1]
|
|
add r2, r6, #0
|
|
bl ov85_021E73D4
|
|
ldr r7, [r5, #0x30]
|
|
add r0, r4, #1
|
|
add r1, r7, #0
|
|
bl _s32_div_f
|
|
add r6, r6, #1
|
|
add r4, r1, #0
|
|
cmp r6, r7
|
|
blt _021E63E8
|
|
_021E6416:
|
|
mov r0, #0
|
|
str r0, [r5, #0xc]
|
|
mov r1, #0x25
|
|
str r1, [r5]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov85_021E63D8
|
|
|
|
thumb_func_start ov85_021E6420
|
|
ov85_021E6420: ; 0x021E6420
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0xc]
|
|
cmp r0, #0x78
|
|
bge _021E6432
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_021E6432:
|
|
mov r4, #0
|
|
str r4, [r5, #0xc]
|
|
ldr r0, [r5, #0x30]
|
|
cmp r0, #0
|
|
ble _021E644C
|
|
_021E643C:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov85_021E7400
|
|
ldr r0, [r5, #0x30]
|
|
add r4, r4, #1
|
|
cmp r4, r0
|
|
blt _021E643C
|
|
_021E644C:
|
|
ldr r2, [r5, #0x28]
|
|
add r0, r5, #0
|
|
ldr r2, [r2, #0xc]
|
|
mov r1, #2
|
|
lsl r2, r2, #2
|
|
add r2, r5, r2
|
|
add r2, #0x84
|
|
ldr r2, [r2]
|
|
bl ov85_021E71EC
|
|
ldr r0, _021E6470 ; =0x000004A1
|
|
bl PlayFanfare
|
|
mov r0, #0x26
|
|
str r0, [r5]
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E6470: .word 0x000004A1
|
|
thumb_func_end ov85_021E6420
|
|
|
|
thumb_func_start ov85_021E6474
|
|
ov85_021E6474: ; 0x021E6474
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0xc]
|
|
cmp r0, #0x78
|
|
bge _021E6484
|
|
add r0, r0, #1
|
|
str r0, [r4, #0xc]
|
|
b _021E6494
|
|
_021E6484:
|
|
bl IsFanfarePlaying
|
|
cmp r0, #0
|
|
bne _021E6494
|
|
mov r0, #0
|
|
str r0, [r4, #0xc]
|
|
mov r0, #0x27
|
|
str r0, [r4]
|
|
_021E6494:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov85_021E6474
|
|
|
|
thumb_func_start ov85_021E6498
|
|
ov85_021E6498: ; 0x021E6498
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
bl ov85_021E8454
|
|
ldr r0, [r5, #0x28]
|
|
ldr r2, [r5, #0x20]
|
|
ldr r0, [r0, #0xc]
|
|
mov r1, #1
|
|
lsl r1, r0
|
|
add r0, r2, #0
|
|
tst r0, r1
|
|
bne _021E64B8
|
|
mov r0, #0x2b
|
|
str r0, [r5]
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E64B8:
|
|
ldr r0, [r5, #0x30]
|
|
lsl r6, r0, #3
|
|
ldr r0, _021E6520 ; =ov85_021EA728
|
|
ldr r4, [r0, r6]
|
|
ldr r0, _021E6524 ; =ov85_021EA72C
|
|
ldr r7, [r0, r6]
|
|
bl LCRandom
|
|
sub r1, r7, r4
|
|
add r1, r1, #1
|
|
bl _u32_div_f
|
|
ldr r0, _021E6520 ; =ov85_021EA728
|
|
add r4, r4, r1
|
|
ldr r0, [r0, r6]
|
|
cmp r4, r0
|
|
bhs _021E64DE
|
|
add r4, r0, #0
|
|
b _021E64E4
|
|
_021E64DE:
|
|
cmp r4, r7
|
|
bls _021E64E4
|
|
add r4, r7, #0
|
|
_021E64E4:
|
|
add r0, r5, #0
|
|
mov r1, #3
|
|
add r2, r4, #0
|
|
bl ov85_021E7274
|
|
add r0, r5, #0
|
|
add r0, #0xcc
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x1c]
|
|
bl Save_Bag_Get
|
|
lsl r1, r4, #0x10
|
|
lsr r1, r1, #0x10
|
|
mov r2, #1
|
|
mov r3, #0x66
|
|
bl Bag_AddItem
|
|
add r4, r0, #0
|
|
ldr r0, _021E6528 ; =0x000004A1
|
|
bl PlayFanfare
|
|
cmp r4, #1
|
|
bne _021E6516
|
|
mov r0, #0x28
|
|
b _021E6518
|
|
_021E6516:
|
|
mov r0, #0x29
|
|
_021E6518:
|
|
str r0, [r5]
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E6520: .word ov85_021EA728
|
|
_021E6524: .word ov85_021EA72C
|
|
_021E6528: .word 0x000004A1
|
|
thumb_func_end ov85_021E6498
|
|
|
|
thumb_func_start ov85_021E652C
|
|
ov85_021E652C: ; 0x021E652C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0xc]
|
|
cmp r0, #0x78
|
|
bge _021E653C
|
|
add r0, r0, #1
|
|
str r0, [r4, #0xc]
|
|
b _021E654C
|
|
_021E653C:
|
|
bl IsFanfarePlaying
|
|
cmp r0, #0
|
|
bne _021E654C
|
|
mov r0, #0
|
|
str r0, [r4, #0xc]
|
|
mov r0, #0x2b
|
|
str r0, [r4]
|
|
_021E654C:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov85_021E652C
|
|
|
|
thumb_func_start ov85_021E6550
|
|
ov85_021E6550: ; 0x021E6550
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0xc]
|
|
cmp r0, #0x78
|
|
bge _021E6560
|
|
add r0, r0, #1
|
|
str r0, [r4, #0xc]
|
|
b _021E6578
|
|
_021E6560:
|
|
bl IsFanfarePlaying
|
|
cmp r0, #0
|
|
bne _021E6578
|
|
mov r0, #0
|
|
str r0, [r4, #0xc]
|
|
mov r0, #0x28
|
|
str r0, [r4]
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
bl ov85_021E7194
|
|
_021E6578:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov85_021E6550
|
|
|
|
thumb_func_start ov85_021E657C
|
|
ov85_021E657C: ; 0x021E657C
|
|
ldr r1, [r0, #0xc]
|
|
cmp r1, #0x78
|
|
bge _021E6588
|
|
add r1, r1, #1
|
|
str r1, [r0, #0xc]
|
|
b _021E6590
|
|
_021E6588:
|
|
mov r1, #0
|
|
str r1, [r0, #0xc]
|
|
mov r1, #0x2b
|
|
str r1, [r0]
|
|
_021E6590:
|
|
mov r0, #0
|
|
bx lr
|
|
thumb_func_end ov85_021E657C
|
|
|
|
thumb_func_start ov85_021E6594
|
|
ov85_021E6594: ; 0x021E6594
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0xcc
|
|
ldr r0, [r0]
|
|
mov r1, #0x78
|
|
ldr r0, [r0, #0x28]
|
|
bl GameStats_Inc
|
|
add r0, r4, #0
|
|
add r0, #0xcc
|
|
ldr r0, [r0]
|
|
mov r1, #0x22
|
|
ldr r0, [r0, #0x28]
|
|
bl GameStats_AddSpecial
|
|
add r0, r4, #0
|
|
mov r1, #0xb
|
|
bl ov85_021E7194
|
|
mov r0, #0xca
|
|
bl sub_02037AC0
|
|
ldr r0, _021E65D0 ; =gSystem + 0x60
|
|
mov r1, #1
|
|
strb r1, [r0, #0xc]
|
|
mov r0, #0x2c
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_021E65D0: .word gSystem + 0x60
|
|
thumb_func_end ov85_021E6594
|
|
|
|
thumb_func_start ov85_021E65D4
|
|
ov85_021E65D4: ; 0x021E65D4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0xca
|
|
bl sub_02037B38
|
|
cmp r0, #0
|
|
beq _021E6604
|
|
ldr r1, [r4, #0x28]
|
|
add r0, r4, #0
|
|
ldr r1, [r1, #0xc]
|
|
bl ov85_021E86CC
|
|
add r0, r4, #4
|
|
bl sub_02039EAC
|
|
ldr r0, _021E6608 ; =0x00000CA8
|
|
mov r1, #0xa
|
|
add r0, r4, r0
|
|
bl WaitingIcon_New
|
|
ldr r1, _021E660C ; =0x00000DC8
|
|
str r0, [r4, r1]
|
|
mov r0, #0x2d
|
|
str r0, [r4]
|
|
_021E6604:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E6608: .word 0x00000CA8
|
|
_021E660C: .word 0x00000DC8
|
|
thumb_func_end ov85_021E65D4
|
|
|
|
thumb_func_start ov85_021E6610
|
|
ov85_021E6610: ; 0x021E6610
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0xcc
|
|
ldr r0, [r0]
|
|
mov r1, #2
|
|
ldr r0, [r0, #0x1c]
|
|
add r2, r4, #4
|
|
bl sub_02039EB4
|
|
cmp r0, #0
|
|
beq _021E6638
|
|
ldr r0, _021E663C ; =gSystem + 0x60
|
|
mov r1, #0
|
|
strb r1, [r0, #0xc]
|
|
ldr r0, _021E6640 ; =0x00000DC8
|
|
ldr r0, [r4, r0]
|
|
bl sub_0200F450
|
|
mov r0, #0x30
|
|
str r0, [r4]
|
|
_021E6638:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E663C: .word gSystem + 0x60
|
|
_021E6640: .word 0x00000DC8
|
|
thumb_func_end ov85_021E6610
|
|
|
|
thumb_func_start ov85_021E6644
|
|
ov85_021E6644: ; 0x021E6644
|
|
push {r4, lr}
|
|
mov r1, #0xc
|
|
add r4, r0, #0
|
|
bl ov85_021E7194
|
|
mov r0, #0x2f
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E6644
|
|
|
|
thumb_func_start ov85_021E6658
|
|
ov85_021E6658: ; 0x021E6658
|
|
ldr r1, [r0, #0xc]
|
|
add r1, r1, #1
|
|
str r1, [r0, #0xc]
|
|
cmp r1, #0x78
|
|
blt _021E666E
|
|
mov r1, #0
|
|
str r1, [r0, #0xc]
|
|
mov r1, #0x30
|
|
str r1, [r0]
|
|
mov r0, #1
|
|
bx lr
|
|
_021E666E:
|
|
mov r0, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E6658
|
|
|
|
thumb_func_start ov85_021E6674
|
|
ov85_021E6674: ; 0x021E6674
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x18]
|
|
cmp r0, #0
|
|
bne _021E6684
|
|
mov r0, #0xca
|
|
bl sub_02037AC0
|
|
_021E6684:
|
|
add r0, r4, #0
|
|
mov r1, #0xa
|
|
bl ov85_021E7194
|
|
mov r0, #0x31
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov85_021E6674
|
|
|
|
thumb_func_start ov85_021E6694
|
|
ov85_021E6694: ; 0x021E6694
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x18]
|
|
cmp r0, #0
|
|
bne _021E66C0
|
|
mov r0, #0xca
|
|
bl sub_02037B38
|
|
cmp r0, #0
|
|
beq _021E66EE
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl sub_020398D4
|
|
mov r0, #1
|
|
bl sub_02038C1C
|
|
bl sub_02037FF0
|
|
mov r0, #0x32
|
|
str r0, [r4]
|
|
b _021E66EE
|
|
_021E66C0:
|
|
ldr r0, [r4, #0xc]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0xc]
|
|
cmp r0, #0x78
|
|
blt _021E66EE
|
|
mov r0, #0
|
|
add r1, r4, #0
|
|
str r0, [r4, #0xc]
|
|
add r1, #0xd0
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, #0x3c]
|
|
cmp r1, #0
|
|
bne _021E66EA
|
|
add r1, r0, #0
|
|
bl sub_020398D4
|
|
mov r0, #1
|
|
bl sub_02038C1C
|
|
bl sub_02037FF0
|
|
_021E66EA:
|
|
mov r0, #0x32
|
|
str r0, [r4]
|
|
_021E66EE:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E6694
|
|
|
|
thumb_func_start ov85_021E66F4
|
|
ov85_021E66F4: ; 0x021E66F4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl sub_02037454
|
|
cmp r0, #1
|
|
bgt _021E6708
|
|
mov r0, #0x33
|
|
str r0, [r4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E6708:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov85_021E66F4
|
|
|
|
thumb_func_start ov85_021E670C
|
|
ov85_021E670C: ; 0x021E670C
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
mov r0, #8
|
|
mov r1, #0
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0x66
|
|
str r0, [sp, #8]
|
|
mov r0, #2
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl BeginNormalPaletteFade
|
|
ldr r5, [r4, #0x1c]
|
|
bl GF_GetCurrentPlayingBGM
|
|
cmp r5, r0
|
|
beq _021E673E
|
|
lsl r1, r5, #0x10
|
|
mov r0, #0
|
|
lsr r1, r1, #0x10
|
|
bl sub_02055198
|
|
_021E673E:
|
|
mov r0, #0x34
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
thumb_func_end ov85_021E670C
|
|
|
|
thumb_func_start ov85_021E6748
|
|
ov85_021E6748: ; 0x021E6748
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _021E675C
|
|
mov r0, #0x35
|
|
str r0, [r4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E675C:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov85_021E6748
|
|
|
|
thumb_func_start ov85_021E6760
|
|
ov85_021E6760: ; 0x021E6760
|
|
mov r0, #2
|
|
bx lr
|
|
thumb_func_end ov85_021E6760
|
|
|
|
thumb_func_start ov85_021E6764
|
|
ov85_021E6764: ; 0x021E6764
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl GF_RunVramTransferTasks
|
|
bl thunk_OamManager_ApplyAndResetBuffers
|
|
ldr r0, _021E6784 ; =0x00000D9C
|
|
ldr r0, [r4, r0]
|
|
bl sub_0200398C
|
|
ldr r0, _021E6788 ; =0x00000D84
|
|
ldr r0, [r4, r0]
|
|
bl DoScheduledBgGpuUpdates
|
|
pop {r4, pc}
|
|
nop
|
|
_021E6784: .word 0x00000D9C
|
|
_021E6788: .word 0x00000D84
|
|
thumb_func_end ov85_021E6764
|
|
|
|
thumb_func_start ov85_021E678C
|
|
ov85_021E678C: ; 0x021E678C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov85_021E6854
|
|
add r0, r4, #0
|
|
bl ov85_021E6980
|
|
add r0, r4, #0
|
|
bl ov85_021E7424
|
|
add r0, r4, #0
|
|
bl ov85_021E6A2C
|
|
add r0, r4, #0
|
|
bl ov85_021E6E14
|
|
add r0, r4, #0
|
|
bl ov85_021E6ECC
|
|
add r0, r4, #0
|
|
bl ov85_021E6B68
|
|
add r0, r4, #0
|
|
bl ov85_021E705C
|
|
add r0, r4, #0
|
|
bl ov85_021E6F6C
|
|
add r0, r4, #0
|
|
bl ov85_021E6874
|
|
pop {r4, pc}
|
|
thumb_func_end ov85_021E678C
|
|
|
|
thumb_func_start ov85_021E67CC
|
|
ov85_021E67CC: ; 0x021E67CC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov85_021E692C
|
|
add r0, r4, #0
|
|
bl ov85_021E7024
|
|
add r0, r4, #0
|
|
bl ov85_021E7148
|
|
add r0, r4, #0
|
|
bl ov85_021E6D68
|
|
add r0, r4, #0
|
|
bl ov85_021E6E6C
|
|
add r0, r4, #0
|
|
bl ov85_021E749C
|
|
pop {r4, pc}
|
|
thumb_func_end ov85_021E67CC
|
|
|
|
thumb_func_start ov85_021E67F4
|
|
ov85_021E67F4: ; 0x021E67F4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl Thunk_G3X_Reset
|
|
bl Camera_PushLookAtToNNSGlb
|
|
mov r0, #0
|
|
ldr r2, _021E6848 ; =0xFFFFF000
|
|
add r1, r0, #0
|
|
add r3, r0, #0
|
|
bl NNS_G3dGlbLightVector
|
|
ldr r1, _021E684C ; =0x00007FFF
|
|
mov r0, #0
|
|
bl NNS_G3dGlbLightColor
|
|
ldr r0, _021E684C ; =0x00007FFF
|
|
mov r2, #0
|
|
add r1, r0, #0
|
|
bl NNS_G3dGlbMaterialColorDiffAmb
|
|
ldr r0, _021E684C ; =0x00007FFF
|
|
mov r2, #0
|
|
add r1, r0, #0
|
|
bl NNS_G3dGlbMaterialColorSpecEmi
|
|
add r0, r4, #0
|
|
bl ov85_021E7628
|
|
add r0, r4, #0
|
|
bl ov85_021E782C
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl sub_02026E50
|
|
ldr r0, _021E6850 ; =0x00000D98
|
|
ldr r0, [r4, r0]
|
|
bl sub_0200D020
|
|
pop {r4, pc}
|
|
nop
|
|
_021E6848: .word 0xFFFFF000
|
|
_021E684C: .word 0x00007FFF
|
|
_021E6850: .word 0x00000D98
|
|
thumb_func_end ov85_021E67F4
|
|
|
|
thumb_func_start ov85_021E6854
|
|
ov85_021E6854: ; 0x021E6854
|
|
push {r4, lr}
|
|
sub sp, #0x28
|
|
ldr r4, _021E6870 ; =ov85_021EA700
|
|
add r3, sp, #0
|
|
mov r2, #5
|
|
_021E685E:
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _021E685E
|
|
add r0, sp, #0
|
|
bl GfGfx_SetBanks
|
|
add sp, #0x28
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E6870: .word ov85_021EA700
|
|
thumb_func_end ov85_021E6854
|
|
|
|
thumb_func_start ov85_021E6874
|
|
ov85_021E6874: ; 0x021E6874
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
bl GfGfx_EngineATogglePlanes
|
|
mov r0, #2
|
|
mov r1, #1
|
|
bl GfGfx_EngineATogglePlanes
|
|
mov r0, #4
|
|
mov r1, #1
|
|
bl GfGfx_EngineATogglePlanes
|
|
mov r0, #8
|
|
mov r1, #1
|
|
bl GfGfx_EngineATogglePlanes
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl GfGfx_EngineATogglePlanes
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl GfGfx_EngineBTogglePlanes
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bl GfGfx_EngineBTogglePlanes
|
|
mov r0, #4
|
|
mov r1, #1
|
|
bl GfGfx_EngineBTogglePlanes
|
|
mov r0, #8
|
|
mov r1, #1
|
|
bl GfGfx_EngineBTogglePlanes
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl GfGfx_EngineBTogglePlanes
|
|
ldr r0, _021E6924 ; =0x04000008
|
|
mov r4, #3
|
|
ldrh r1, [r0]
|
|
mov r2, #1
|
|
mov r3, #2
|
|
bic r1, r4
|
|
orr r1, r2
|
|
strh r1, [r0]
|
|
ldrh r1, [r0, #2]
|
|
mov r5, #3
|
|
bic r1, r4
|
|
strh r1, [r0, #2]
|
|
ldrh r1, [r0, #4]
|
|
bic r1, r4
|
|
orr r1, r3
|
|
strh r1, [r0, #4]
|
|
ldrh r1, [r0, #6]
|
|
bic r1, r4
|
|
orr r1, r5
|
|
strh r1, [r0, #6]
|
|
ldr r1, _021E6928 ; =0x04001008
|
|
ldrh r6, [r1]
|
|
bic r6, r4
|
|
strh r6, [r1]
|
|
ldrh r6, [r1, #2]
|
|
bic r6, r4
|
|
orr r2, r6
|
|
strh r2, [r1, #2]
|
|
ldrh r2, [r1, #4]
|
|
bic r2, r4
|
|
orr r2, r3
|
|
strh r2, [r1, #4]
|
|
ldrh r2, [r1, #6]
|
|
bic r2, r4
|
|
orr r2, r5
|
|
strh r2, [r1, #6]
|
|
mov r1, #0xa
|
|
str r1, [sp]
|
|
add r0, #0x48
|
|
mov r1, #4
|
|
mov r2, #0x28
|
|
mov r3, #0xb
|
|
bl G2x_SetBlendAlpha_
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021E6924: .word 0x04000008
|
|
_021E6928: .word 0x04001008
|
|
thumb_func_end ov85_021E6874
|
|
|
|
thumb_func_start ov85_021E692C
|
|
ov85_021E692C: ; 0x021E692C
|
|
push {r3, lr}
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl GfGfx_EngineATogglePlanes
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bl GfGfx_EngineATogglePlanes
|
|
mov r0, #4
|
|
mov r1, #0
|
|
bl GfGfx_EngineATogglePlanes
|
|
mov r0, #8
|
|
mov r1, #0
|
|
bl GfGfx_EngineATogglePlanes
|
|
mov r0, #0x10
|
|
mov r1, #0
|
|
bl GfGfx_EngineATogglePlanes
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl GfGfx_EngineBTogglePlanes
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bl GfGfx_EngineBTogglePlanes
|
|
mov r0, #4
|
|
mov r1, #0
|
|
bl GfGfx_EngineBTogglePlanes
|
|
mov r0, #8
|
|
mov r1, #0
|
|
bl GfGfx_EngineBTogglePlanes
|
|
mov r0, #0x10
|
|
mov r1, #0
|
|
bl GfGfx_EngineBTogglePlanes
|
|
pop {r3, pc}
|
|
thumb_func_end ov85_021E692C
|
|
|
|
thumb_func_start ov85_021E6980
|
|
ov85_021E6980: ; 0x021E6980
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
bl NNS_G3dInit
|
|
bl G3X_InitMtxStack
|
|
ldr r0, _021E6A10 ; =0x04000060
|
|
ldr r1, _021E6A14 ; =0xFFFFCFFD
|
|
ldrh r2, [r0]
|
|
and r2, r1
|
|
strh r2, [r0]
|
|
ldrh r3, [r0]
|
|
add r2, r1, #2
|
|
and r3, r2
|
|
mov r2, #0x10
|
|
orr r2, r3
|
|
strh r2, [r0]
|
|
ldrh r3, [r0]
|
|
ldr r2, _021E6A18 ; =0x0000CFFB
|
|
and r2, r3
|
|
strh r2, [r0]
|
|
add r2, r1, #2
|
|
ldrh r3, [r0]
|
|
add r1, r1, #2
|
|
and r3, r2
|
|
mov r2, #8
|
|
orr r2, r3
|
|
strh r2, [r0]
|
|
ldrh r2, [r0]
|
|
add r3, r4, #0
|
|
and r2, r1
|
|
mov r1, #0x20
|
|
orr r1, r2
|
|
strh r1, [r0]
|
|
mov r0, #0xda
|
|
ldr r1, _021E6A1C ; =0x00001084
|
|
mov r2, #0
|
|
lsl r0, r0, #4
|
|
_021E69CE:
|
|
add r2, r2, #1
|
|
strh r1, [r3, r0]
|
|
add r3, r3, #2
|
|
cmp r2, #8
|
|
blt _021E69CE
|
|
mov r0, #0xda
|
|
lsl r0, r0, #4
|
|
add r0, r4, r0
|
|
bl G3X_SetEdgeColorTable
|
|
ldr r0, _021E6A20 ; =0x00007FFF
|
|
mov r1, #0
|
|
add r2, r0, #0
|
|
mov r3, #0x3f
|
|
str r1, [sp]
|
|
bl G3X_SetClearColor
|
|
ldr r1, _021E6A24 ; =0x04000540
|
|
mov r0, #2
|
|
str r0, [r1]
|
|
ldr r0, _021E6A28 ; =0xBFFF0000
|
|
str r0, [r1, #0x40]
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
bl GF_3DVramMan_InitFrameTexVramManager
|
|
mov r0, #1
|
|
lsl r0, r0, #0xe
|
|
mov r1, #1
|
|
bl GF_3DVramMan_InitFramePlttVramManager
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
_021E6A10: .word 0x04000060
|
|
_021E6A14: .word 0xFFFFCFFD
|
|
_021E6A18: .word 0x0000CFFB
|
|
_021E6A1C: .word 0x00001084
|
|
_021E6A20: .word 0x00007FFF
|
|
_021E6A24: .word 0x04000540
|
|
_021E6A28: .word 0xBFFF0000
|
|
thumb_func_end ov85_021E6980
|
|
|
|
thumb_func_start ov85_021E6A2C
|
|
ov85_021E6A2C: ; 0x021E6A2C
|
|
push {r4, r5, lr}
|
|
sub sp, #0x9c
|
|
add r4, r0, #0
|
|
mov r0, #0x66
|
|
bl BgConfig_Alloc
|
|
ldr r1, _021E6B48 ; =0x00000D84
|
|
ldr r2, _021E6B4C ; =0x04000304
|
|
str r0, [r4, r1]
|
|
ldrh r1, [r2]
|
|
lsr r0, r2, #0xb
|
|
ldr r5, _021E6B50 ; =ov85_021EA538
|
|
orr r0, r1
|
|
strh r0, [r2]
|
|
add r3, sp, #0x8c
|
|
add r2, r3, #0
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
add r0, r2, #0
|
|
bl SetBothScreensModesAndDisable
|
|
ldr r5, _021E6B54 ; =ov85_021EA60C
|
|
add r3, sp, #0x70
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
mov r1, #1
|
|
str r0, [r3]
|
|
ldr r0, _021E6B48 ; =0x00000D84
|
|
mov r3, #0
|
|
ldr r0, [r4, r0]
|
|
bl InitBgFromTemplate
|
|
ldr r0, _021E6B48 ; =0x00000D84
|
|
mov r1, #1
|
|
ldr r0, [r4, r0]
|
|
bl BgClearTilemapBufferAndCommit
|
|
mov r0, #1
|
|
mov r1, #0x20
|
|
mov r2, #0
|
|
mov r3, #0x66
|
|
bl BG_ClearCharDataRange
|
|
ldr r5, _021E6B58 ; =ov85_021EA628
|
|
add r3, sp, #0x54
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
mov r1, #2
|
|
str r0, [r3]
|
|
ldr r0, _021E6B48 ; =0x00000D84
|
|
mov r3, #0
|
|
ldr r0, [r4, r0]
|
|
bl InitBgFromTemplate
|
|
ldr r0, _021E6B48 ; =0x00000D84
|
|
mov r1, #2
|
|
ldr r0, [r4, r0]
|
|
bl BgClearTilemapBufferAndCommit
|
|
ldr r5, _021E6B5C ; =ov85_021EA644
|
|
add r3, sp, #0x38
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
mov r1, #3
|
|
str r0, [r3]
|
|
ldr r0, _021E6B48 ; =0x00000D84
|
|
mov r3, #0
|
|
ldr r0, [r4, r0]
|
|
bl InitBgFromTemplate
|
|
ldr r0, _021E6B48 ; =0x00000D84
|
|
mov r1, #3
|
|
ldr r0, [r4, r0]
|
|
bl BgClearTilemapBufferAndCommit
|
|
ldr r5, _021E6B60 ; =ov85_021EA660
|
|
add r3, sp, #0x1c
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
mov r1, #6
|
|
str r0, [r3]
|
|
ldr r0, _021E6B48 ; =0x00000D84
|
|
mov r3, #0
|
|
ldr r0, [r4, r0]
|
|
bl InitBgFromTemplate
|
|
ldr r0, _021E6B48 ; =0x00000D84
|
|
mov r1, #6
|
|
ldr r0, [r4, r0]
|
|
bl BgClearTilemapBufferAndCommit
|
|
ldr r5, _021E6B64 ; =ov85_021EA67C
|
|
add r3, sp, #0
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
mov r1, #7
|
|
str r0, [r3]
|
|
ldr r0, _021E6B48 ; =0x00000D84
|
|
mov r3, #0
|
|
ldr r0, [r4, r0]
|
|
bl InitBgFromTemplate
|
|
ldr r0, _021E6B48 ; =0x00000D84
|
|
mov r1, #7
|
|
ldr r0, [r4, r0]
|
|
bl BgClearTilemapBufferAndCommit
|
|
add sp, #0x9c
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_021E6B48: .word 0x00000D84
|
|
_021E6B4C: .word 0x04000304
|
|
_021E6B50: .word ov85_021EA538
|
|
_021E6B54: .word ov85_021EA60C
|
|
_021E6B58: .word ov85_021EA628
|
|
_021E6B5C: .word ov85_021EA644
|
|
_021E6B60: .word ov85_021EA660
|
|
_021E6B64: .word ov85_021EA67C
|
|
thumb_func_end ov85_021E6A2C
|
|
|
|
thumb_func_start ov85_021E6B68
|
|
ov85_021E6B68: ; 0x021E6B68
|
|
push {r3, r4, r5, lr}
|
|
mov r1, #0x11
|
|
mov r2, #0
|
|
add r4, r0, #0
|
|
bl ov85_021E8588
|
|
mov r1, #0xd9
|
|
lsl r1, r1, #4
|
|
add r1, r4, r1
|
|
add r5, r0, #0
|
|
bl NNS_G2dGetUnpackedPaletteData
|
|
mov r0, #0x40
|
|
mov r2, #0
|
|
ldr r1, _021E6D54 ; =0x00000D9C
|
|
str r0, [sp]
|
|
ldr r0, [r4, r1]
|
|
sub r1, #0xc
|
|
ldr r1, [r4, r1]
|
|
add r3, r2, #0
|
|
ldr r1, [r1, #0xc]
|
|
bl PaletteData_LoadPalette
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
mov r1, #0x14
|
|
mov r2, #0
|
|
bl ov85_021E8588
|
|
mov r1, #0xd9
|
|
lsl r1, r1, #4
|
|
add r1, r4, r1
|
|
add r5, r0, #0
|
|
bl NNS_G2dGetUnpackedPaletteData
|
|
mov r0, #0x40
|
|
ldr r1, _021E6D54 ; =0x00000D9C
|
|
str r0, [sp]
|
|
ldr r0, [r4, r1]
|
|
sub r1, #0xc
|
|
ldr r1, [r4, r1]
|
|
mov r2, #1
|
|
ldr r1, [r1, #0xc]
|
|
mov r3, #0
|
|
bl PaletteData_LoadPalette
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, _021E6D54 ; =0x00000D9C
|
|
ldr r2, _021E6D58 ; =0x0000FFFF
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
mov r3, #8
|
|
bl sub_02003EA4
|
|
add r0, r4, #0
|
|
mov r1, #0x10
|
|
mov r2, #0
|
|
bl ov85_021E8588
|
|
ldr r1, _021E6D5C ; =0x00000D8C
|
|
add r5, r0, #0
|
|
add r1, r4, r1
|
|
bl NNS_G2dGetUnpackedCharacterData
|
|
ldr r0, _021E6D5C ; =0x00000D8C
|
|
mov r1, #0
|
|
ldr r3, [r4, r0]
|
|
sub r0, #8
|
|
str r1, [sp]
|
|
ldr r2, [r3, #0x14]
|
|
ldr r0, [r4, r0]
|
|
ldr r3, [r3, #0x10]
|
|
mov r1, #3
|
|
bl BG_LoadCharTilesData
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
mov r1, #0x16
|
|
mov r2, #0
|
|
bl ov85_021E8588
|
|
add r5, r0, #0
|
|
ldr r1, _021E6D5C ; =0x00000D8C
|
|
add r1, r4, r1
|
|
bl NNS_G2dGetUnpackedCharacterData
|
|
ldr r0, _021E6D5C ; =0x00000D8C
|
|
mov r1, #0
|
|
ldr r3, [r4, r0]
|
|
sub r0, #8
|
|
str r1, [sp]
|
|
ldr r2, [r3, #0x14]
|
|
ldr r0, [r4, r0]
|
|
ldr r3, [r3, #0x10]
|
|
mov r1, #6
|
|
bl BG_LoadCharTilesData
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
mov r1, #0x15
|
|
mov r2, #0
|
|
bl ov85_021E8588
|
|
ldr r1, _021E6D5C ; =0x00000D8C
|
|
add r5, r0, #0
|
|
add r1, r4, r1
|
|
bl NNS_G2dGetUnpackedCharacterData
|
|
ldr r0, _021E6D5C ; =0x00000D8C
|
|
mov r1, #0
|
|
ldr r3, [r4, r0]
|
|
sub r0, #8
|
|
str r1, [sp]
|
|
ldr r2, [r3, #0x14]
|
|
ldr r0, [r4, r0]
|
|
ldr r3, [r3, #0x10]
|
|
mov r1, #7
|
|
bl BG_LoadCharTilesData
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
mov r1, #0x13
|
|
mov r2, #0
|
|
bl ov85_021E8588
|
|
ldr r1, _021E6D60 ; =0x00000D88
|
|
add r5, r0, #0
|
|
add r1, r4, r1
|
|
bl NNS_G2dGetUnpackedScreenData
|
|
ldr r0, _021E6D60 ; =0x00000D88
|
|
mov r1, #2
|
|
ldr r3, [r4, r0]
|
|
sub r0, r0, #4
|
|
add r2, r3, #0
|
|
ldr r0, [r4, r0]
|
|
ldr r3, [r3, #8]
|
|
add r2, #0xc
|
|
bl BG_LoadScreenTilemapData
|
|
ldr r0, _021E6D64 ; =0x00000D84
|
|
mov r1, #2
|
|
ldr r0, [r4, r0]
|
|
bl BgCommitTilemapBufferToVram
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
mov r1, #0x12
|
|
mov r2, #0
|
|
bl ov85_021E8588
|
|
ldr r1, _021E6D60 ; =0x00000D88
|
|
add r5, r0, #0
|
|
add r1, r4, r1
|
|
bl NNS_G2dGetUnpackedScreenData
|
|
ldr r0, _021E6D60 ; =0x00000D88
|
|
mov r1, #3
|
|
ldr r3, [r4, r0]
|
|
sub r0, r0, #4
|
|
add r2, r3, #0
|
|
ldr r0, [r4, r0]
|
|
ldr r3, [r3, #8]
|
|
add r2, #0xc
|
|
bl BG_LoadScreenTilemapData
|
|
ldr r0, _021E6D64 ; =0x00000D84
|
|
mov r1, #3
|
|
ldr r0, [r4, r0]
|
|
bl BgCommitTilemapBufferToVram
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
mov r1, #0x18
|
|
mov r2, #0
|
|
bl ov85_021E8588
|
|
ldr r1, _021E6D60 ; =0x00000D88
|
|
add r5, r0, #0
|
|
add r1, r4, r1
|
|
bl NNS_G2dGetUnpackedScreenData
|
|
ldr r0, _021E6D60 ; =0x00000D88
|
|
mov r1, #6
|
|
ldr r3, [r4, r0]
|
|
sub r0, r0, #4
|
|
add r2, r3, #0
|
|
ldr r0, [r4, r0]
|
|
ldr r3, [r3, #8]
|
|
add r2, #0xc
|
|
bl BG_LoadScreenTilemapData
|
|
ldr r0, _021E6D64 ; =0x00000D84
|
|
mov r1, #6
|
|
ldr r0, [r4, r0]
|
|
bl BgCommitTilemapBufferToVram
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
mov r1, #0x17
|
|
mov r2, #0
|
|
bl ov85_021E8588
|
|
ldr r1, _021E6D60 ; =0x00000D88
|
|
add r5, r0, #0
|
|
add r1, r4, r1
|
|
bl NNS_G2dGetUnpackedScreenData
|
|
ldr r0, _021E6D60 ; =0x00000D88
|
|
mov r1, #7
|
|
ldr r3, [r4, r0]
|
|
sub r0, r0, #4
|
|
add r2, r3, #0
|
|
ldr r0, [r4, r0]
|
|
ldr r3, [r3, #8]
|
|
add r2, #0xc
|
|
bl BG_LoadScreenTilemapData
|
|
ldr r0, _021E6D64 ; =0x00000D84
|
|
mov r1, #7
|
|
ldr r0, [r4, r0]
|
|
bl BgCommitTilemapBufferToVram
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E6D54: .word 0x00000D9C
|
|
_021E6D58: .word 0x0000FFFF
|
|
_021E6D5C: .word 0x00000D8C
|
|
_021E6D60: .word 0x00000D88
|
|
_021E6D64: .word 0x00000D84
|
|
thumb_func_end ov85_021E6B68
|
|
|
|
thumb_func_start ov85_021E6D68
|
|
ov85_021E6D68: ; 0x021E6D68
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021E6DA8 ; =0x00000D84
|
|
mov r1, #1
|
|
ldr r0, [r4, r0]
|
|
bl FreeBgTilemapBuffer
|
|
ldr r0, _021E6DA8 ; =0x00000D84
|
|
mov r1, #2
|
|
ldr r0, [r4, r0]
|
|
bl FreeBgTilemapBuffer
|
|
ldr r0, _021E6DA8 ; =0x00000D84
|
|
mov r1, #3
|
|
ldr r0, [r4, r0]
|
|
bl FreeBgTilemapBuffer
|
|
ldr r0, _021E6DA8 ; =0x00000D84
|
|
mov r1, #6
|
|
ldr r0, [r4, r0]
|
|
bl FreeBgTilemapBuffer
|
|
ldr r0, _021E6DA8 ; =0x00000D84
|
|
mov r1, #7
|
|
ldr r0, [r4, r0]
|
|
bl FreeBgTilemapBuffer
|
|
ldr r0, _021E6DA8 ; =0x00000D84
|
|
ldr r0, [r4, r0]
|
|
bl FreeToHeap
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E6DA8: .word 0x00000D84
|
|
thumb_func_end ov85_021E6D68
|
|
|
|
thumb_func_start ov85_021E6DAC
|
|
ov85_021E6DAC: ; 0x021E6DAC
|
|
push {r3, r4, r5, lr}
|
|
mov r2, #0
|
|
add r5, r0, #0
|
|
bl ov85_021E8588
|
|
ldr r1, _021E6DE8 ; =0x00000D88
|
|
add r4, r0, #0
|
|
add r1, r5, r1
|
|
bl NNS_G2dGetUnpackedScreenData
|
|
ldr r0, _021E6DE8 ; =0x00000D88
|
|
mov r1, #6
|
|
ldr r3, [r5, r0]
|
|
sub r0, r0, #4
|
|
add r2, r3, #0
|
|
ldr r0, [r5, r0]
|
|
ldr r3, [r3, #8]
|
|
add r2, #0xc
|
|
bl BG_LoadScreenTilemapData
|
|
ldr r0, _021E6DEC ; =0x00000D84
|
|
mov r1, #6
|
|
ldr r0, [r5, r0]
|
|
bl BgCommitTilemapBufferToVram
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E6DE8: .word 0x00000D88
|
|
_021E6DEC: .word 0x00000D84
|
|
thumb_func_end ov85_021E6DAC
|
|
|
|
thumb_func_start ov85_021E6DF0
|
|
ov85_021E6DF0: ; 0x021E6DF0
|
|
ldr r3, _021E6DF8 ; =ov85_021E6DAC
|
|
mov r1, #0x1a
|
|
bx r3
|
|
nop
|
|
_021E6DF8: .word ov85_021E6DAC
|
|
thumb_func_end ov85_021E6DF0
|
|
|
|
thumb_func_start ov85_021E6DFC
|
|
ov85_021E6DFC: ; 0x021E6DFC
|
|
ldr r3, _021E6E04 ; =ov85_021E6DAC
|
|
mov r1, #0x18
|
|
bx r3
|
|
nop
|
|
_021E6E04: .word ov85_021E6DAC
|
|
thumb_func_end ov85_021E6DFC
|
|
|
|
thumb_func_start ov85_021E6E08
|
|
ov85_021E6E08: ; 0x021E6E08
|
|
ldr r3, _021E6E10 ; =ov85_021E6DAC
|
|
mov r1, #0x19
|
|
bx r3
|
|
nop
|
|
_021E6E10: .word ov85_021E6DAC
|
|
thumb_func_end ov85_021E6E08
|
|
|
|
thumb_func_start ov85_021E6E14
|
|
ov85_021E6E14: ; 0x021E6E14
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x66
|
|
bl PaletteData_Init
|
|
ldr r1, _021E6E68 ; =0x00000D9C
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
mov r1, #1
|
|
bl sub_02003B50
|
|
ldr r0, _021E6E68 ; =0x00000D9C
|
|
mov r2, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
lsl r2, r2, #8
|
|
mov r3, #0x66
|
|
bl PaletteData_AllocBuffers
|
|
ldr r0, _021E6E68 ; =0x00000D9C
|
|
mov r1, #2
|
|
ldr r0, [r4, r0]
|
|
lsl r2, r1, #8
|
|
mov r3, #0x66
|
|
bl PaletteData_AllocBuffers
|
|
ldr r0, _021E6E68 ; =0x00000D9C
|
|
mov r1, #1
|
|
ldr r0, [r4, r0]
|
|
lsl r2, r1, #9
|
|
mov r3, #0x66
|
|
bl PaletteData_AllocBuffers
|
|
ldr r0, _021E6E68 ; =0x00000D9C
|
|
mov r2, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #3
|
|
lsl r2, r2, #8
|
|
mov r3, #0x66
|
|
bl PaletteData_AllocBuffers
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E6E68: .word 0x00000D9C
|
|
thumb_func_end ov85_021E6E14
|
|
|
|
thumb_func_start ov85_021E6E6C
|
|
ov85_021E6E6C: ; 0x021E6E6C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021E6EA4 ; =0x00000D9C
|
|
mov r1, #0
|
|
ldr r0, [r4, r0]
|
|
bl PaletteData_FreeBuffers
|
|
ldr r0, _021E6EA4 ; =0x00000D9C
|
|
mov r1, #2
|
|
ldr r0, [r4, r0]
|
|
bl PaletteData_FreeBuffers
|
|
ldr r0, _021E6EA4 ; =0x00000D9C
|
|
mov r1, #1
|
|
ldr r0, [r4, r0]
|
|
bl PaletteData_FreeBuffers
|
|
ldr r0, _021E6EA4 ; =0x00000D9C
|
|
mov r1, #3
|
|
ldr r0, [r4, r0]
|
|
bl PaletteData_FreeBuffers
|
|
ldr r0, _021E6EA4 ; =0x00000D9C
|
|
ldr r0, [r4, r0]
|
|
bl PaletteData_Free
|
|
pop {r4, pc}
|
|
nop
|
|
_021E6EA4: .word 0x00000D9C
|
|
thumb_func_end ov85_021E6E6C
|
|
|
|
thumb_func_start ov85_021E6EA8
|
|
ov85_021E6EA8: ; 0x021E6EA8
|
|
push {r3, lr}
|
|
add r3, r1, #0
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
ldr r1, _021E6EC4 ; =0x00000D9C
|
|
lsl r3, r3, #0x18
|
|
ldr r0, [r0, r1]
|
|
ldr r2, _021E6EC8 ; =0x0000FFFF
|
|
mov r1, #1
|
|
lsr r3, r3, #0x18
|
|
bl sub_02003EA4
|
|
pop {r3, pc}
|
|
nop
|
|
_021E6EC4: .word 0x00000D9C
|
|
_021E6EC8: .word 0x0000FFFF
|
|
thumb_func_end ov85_021E6EA8
|
|
|
|
thumb_func_start ov85_021E6ECC
|
|
ov85_021E6ECC: ; 0x021E6ECC
|
|
push {r3, r4, lr}
|
|
sub sp, #0x4c
|
|
ldr r3, _021E6F58 ; =ov85_021EA6B8
|
|
add r4, r0, #0
|
|
ldmia r3!, {r0, r1}
|
|
add r2, sp, #0x2c
|
|
stmia r2!, {r0, r1}
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r3, _021E6F5C ; =ov85_021EA56C
|
|
add r2, sp, #0x18
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
mov r0, #0x66
|
|
bl SpriteRenderer_Create
|
|
ldr r1, _021E6F60 ; =0x00000D94
|
|
add r2, sp, #0x18
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
add r1, sp, #0x2c
|
|
mov r3, #0x20
|
|
bl sub_0200CF70
|
|
ldr r3, _021E6F64 ; =ov85_021EA594
|
|
add r2, sp, #0
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, _021E6F60 ; =0x00000D94
|
|
ldr r0, [r4, r0]
|
|
bl SpriteRenderer_CreateGfxHandler
|
|
ldr r1, _021E6F68 ; =0x00000D98
|
|
mov r2, #0xff
|
|
str r0, [r4, r1]
|
|
sub r0, r1, #4
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r4, r1]
|
|
bl sub_0200CFF4
|
|
cmp r0, #0
|
|
bne _021E6F3C
|
|
bl GF_AssertFail
|
|
_021E6F3C:
|
|
ldr r1, _021E6F60 ; =0x00000D94
|
|
add r2, sp, #0
|
|
ldr r0, [r4, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
bl SpriteRenderer_Init2DGfxResManagersFromCountsArray
|
|
cmp r0, #0
|
|
bne _021E6F52
|
|
bl GF_AssertFail
|
|
_021E6F52:
|
|
add sp, #0x4c
|
|
pop {r3, r4, pc}
|
|
nop
|
|
_021E6F58: .word ov85_021EA6B8
|
|
_021E6F5C: .word ov85_021EA56C
|
|
_021E6F60: .word 0x00000D94
|
|
_021E6F64: .word ov85_021EA594
|
|
_021E6F68: .word 0x00000D98
|
|
thumb_func_end ov85_021E6ECC
|
|
|
|
thumb_func_start ov85_021E6F6C
|
|
ov85_021E6F6C: ; 0x021E6F6C
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x1c
|
|
ldr r2, _021E7020 ; =0x00000D94
|
|
add r1, r2, #4
|
|
ldr r6, [r0, r2]
|
|
add r2, #8
|
|
ldr r5, [r0, r1]
|
|
ldr r7, [r0, r2]
|
|
mov r0, #1
|
|
bl sub_0200A080
|
|
mov r0, #0xd9
|
|
mov r1, #0x66
|
|
bl NARC_New
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
add r0, r6, #0
|
|
add r1, r5, #0
|
|
add r2, r4, #0
|
|
mov r3, #0x10
|
|
bl SpriteRenderer_LoadCharResObjFromOpenNarc
|
|
str r4, [sp]
|
|
mov r0, #0xf
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
mov r0, #1
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
mov r0, #5
|
|
str r0, [sp, #0x14]
|
|
add r0, r7, #0
|
|
mov r1, #2
|
|
add r2, r6, #0
|
|
add r3, r5, #0
|
|
bl sub_0200D68C
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #6
|
|
str r0, [sp, #4]
|
|
add r0, r6, #0
|
|
add r1, r5, #0
|
|
add r2, r4, #0
|
|
mov r3, #0x11
|
|
bl SpriteRenderer_LoadCellResObjFromOpenNarc
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #7
|
|
str r0, [sp, #4]
|
|
add r0, r6, #0
|
|
add r1, r5, #0
|
|
add r2, r4, #0
|
|
mov r3, #0x12
|
|
bl SpriteRenderer_LoadAnimResObjFromOpenNarc
|
|
add r0, r4, #0
|
|
bl NARC_Delete
|
|
bl sub_0203A880
|
|
mov r0, #0x66
|
|
bl sub_0203A4AC
|
|
add r1, sp, #0x18
|
|
add r4, r0, #0
|
|
bl NNS_G2dGetUnpackedPaletteData
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
ldr r1, [sp, #0x18]
|
|
add r0, r7, #0
|
|
ldr r1, [r1, #0xc]
|
|
mov r2, #2
|
|
mov r3, #0xe0
|
|
bl PaletteData_LoadPalette
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add sp, #0x1c
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E7020: .word 0x00000D94
|
|
thumb_func_end ov85_021E6F6C
|
|
|
|
thumb_func_start ov85_021E7024
|
|
ov85_021E7024: ; 0x021E7024
|
|
push {r4, lr}
|
|
ldr r1, _021E7040 ; =0x00000D94
|
|
add r4, r0, #0
|
|
ldr r0, [r4, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
bl SpriteRenderer_UnloadResourcesAndRemoveGfxHandler
|
|
ldr r0, _021E7040 ; =0x00000D94
|
|
ldr r0, [r4, r0]
|
|
bl SpriteRenderer_Delete
|
|
pop {r4, pc}
|
|
nop
|
|
_021E7040: .word 0x00000D94
|
|
thumb_func_end ov85_021E7024
|
|
|
|
thumb_func_start ov85_021E7044
|
|
ov85_021E7044: ; 0x021E7044
|
|
add r2, r1, #0
|
|
ldr r1, _021E7054 ; =0x00000D94
|
|
add r3, r0, #0
|
|
ldr r0, [r3, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r3, r1]
|
|
ldr r3, _021E7058 ; =SpriteRenderer_LoadResourcesAndCreateSprite
|
|
bx r3
|
|
.balign 4, 0
|
|
_021E7054: .word 0x00000D94
|
|
_021E7058: .word SpriteRenderer_LoadResourcesAndCreateSprite
|
|
thumb_func_end ov85_021E7044
|
|
|
|
thumb_func_start ov85_021E705C
|
|
ov85_021E705C: ; 0x021E705C
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r6, r0, #0
|
|
ldr r0, _021E7138 ; =0x00000C9C
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r1, #0x66
|
|
add r4, r6, r0
|
|
str r1, [sp, #4]
|
|
add r0, #0xe8
|
|
mov r1, #1
|
|
ldr r0, [r6, r0]
|
|
add r2, r1, #0
|
|
mov r3, #0xf
|
|
bl LoadUserFrameGfx1
|
|
add r0, r6, #0
|
|
add r0, #0xcc
|
|
ldr r0, [r0]
|
|
mov r1, #1
|
|
ldr r0, [r0, #0x18]
|
|
mov r2, #0xa
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
mov r0, #0x66
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E713C ; =0x00000D84
|
|
mov r3, #0xe
|
|
ldr r0, [r6, r0]
|
|
bl LoadUserFrameGfx2
|
|
add r0, r6, #0
|
|
add r0, #0xcc
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x18]
|
|
bl sub_0200E640
|
|
add r2, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r0, #0xe0
|
|
str r0, [sp, #8]
|
|
ldr r0, _021E7140 ; =0x00000D9C
|
|
mov r1, #0x26
|
|
ldr r0, [r6, r0]
|
|
mov r3, #0x66
|
|
bl PaletteData_LoadNarc
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r0, #0xf0
|
|
str r0, [sp, #8]
|
|
ldr r0, _021E7140 ; =0x00000D9C
|
|
mov r1, #0x10
|
|
ldr r0, [r6, r0]
|
|
mov r2, #8
|
|
mov r3, #0x66
|
|
bl PaletteData_LoadNarc
|
|
mov r0, #0
|
|
mov r1, #0x1b
|
|
mov r2, #0xce
|
|
mov r3, #0x66
|
|
bl NewMsgDataFromNarc
|
|
str r0, [r4, #4]
|
|
mov r0, #0x66
|
|
bl MessageFormat_New
|
|
str r0, [r4, #8]
|
|
ldr r0, _021E713C ; =0x00000D84
|
|
add r1, r4, #0
|
|
ldr r0, [r6, r0]
|
|
ldr r2, _021E7144 ; =ov85_021EA4FC
|
|
add r1, #0xc
|
|
bl AddWindow
|
|
mov r0, #1
|
|
lsl r0, r0, #8
|
|
mov r1, #0x66
|
|
bl String_New
|
|
str r0, [r4, #0x6c]
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
mov r7, #8
|
|
_021E7112:
|
|
add r0, r7, #0
|
|
mov r1, #0x66
|
|
bl String_New
|
|
add r1, r5, #0
|
|
add r1, #0x98
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
str r0, [r1]
|
|
cmp r4, #5
|
|
blt _021E7112
|
|
add r0, r6, #0
|
|
add r6, #0xcc
|
|
ldr r1, [r6]
|
|
ldr r1, [r1, #8]
|
|
bl ov85_021E730C
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E7138: .word 0x00000C9C
|
|
_021E713C: .word 0x00000D84
|
|
_021E7140: .word 0x00000D9C
|
|
_021E7144: .word ov85_021EA4FC
|
|
thumb_func_end ov85_021E705C
|
|
|
|
thumb_func_start ov85_021E7148
|
|
ov85_021E7148: ; 0x021E7148
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _021E7190 ; =0x00000C9C
|
|
add r4, r5, r0
|
|
add r6, r4, #0
|
|
add r6, #0xc
|
|
add r0, r6, #0
|
|
bl ClearWindowTilemapAndCopyToVram
|
|
add r0, r6, #0
|
|
bl RemoveWindow
|
|
add r0, r5, #0
|
|
bl ov85_021E7350
|
|
ldr r0, [r4, #4]
|
|
bl DestroyMsgData
|
|
ldr r0, [r4, #8]
|
|
bl MessageFormat_Delete
|
|
ldr r0, [r4, #0x6c]
|
|
bl String_Delete
|
|
mov r4, #0
|
|
_021E717A:
|
|
add r0, r5, #0
|
|
add r0, #0x98
|
|
ldr r0, [r0]
|
|
bl String_Delete
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #5
|
|
blt _021E717A
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021E7190: .word 0x00000C9C
|
|
thumb_func_end ov85_021E7148
|
|
|
|
thumb_func_start ov85_021E7194
|
|
ov85_021E7194: ; 0x021E7194
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
add r6, r1, #0
|
|
ldr r1, _021E71E8 ; =0x00000C9C
|
|
add r4, r0, r1
|
|
add r5, r4, #0
|
|
add r5, #0xc
|
|
add r0, r5, #0
|
|
mov r1, #0xf
|
|
bl FillWindowPixelBuffer
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
mov r2, #0xa
|
|
mov r3, #0xe
|
|
bl DrawFrameAndWindow2
|
|
add r0, r5, #0
|
|
mov r1, #0xf
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [r4, #4]
|
|
ldr r2, [r4, #0x6c]
|
|
add r1, r6, #0
|
|
bl ReadMsgDataIntoString
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
str r3, [sp, #8]
|
|
ldr r2, [r4, #0x6c]
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl AddTextPrinterParameterized
|
|
add r0, r5, #0
|
|
bl ScheduleWindowCopyToVram
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
nop
|
|
_021E71E8: .word 0x00000C9C
|
|
thumb_func_end ov85_021E7194
|
|
|
|
thumb_func_start ov85_021E71EC
|
|
ov85_021E71EC: ; 0x021E71EC
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r7, r1, #0
|
|
ldr r1, _021E7270 ; =0x00000C9C
|
|
add r6, r2, #0
|
|
add r4, r0, r1
|
|
add r5, r4, #0
|
|
add r5, #0xc
|
|
bl sub_0203769C
|
|
bl sub_02034818
|
|
add r2, r0, #0
|
|
ldr r0, [r4, #8]
|
|
mov r1, #1
|
|
bl BufferPlayersName
|
|
ldr r0, [r4, #8]
|
|
mov r1, #2
|
|
add r2, r6, #0
|
|
bl BufferPlayersName
|
|
mov r0, #1
|
|
lsl r0, r0, #8
|
|
mov r1, #0x66
|
|
bl String_New
|
|
add r6, r0, #0
|
|
ldr r0, [r4, #4]
|
|
add r1, r7, #0
|
|
add r2, r6, #0
|
|
bl ReadMsgDataIntoString
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [r4, #0x6c]
|
|
add r2, r6, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r6, #0
|
|
bl String_Delete
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
mov r2, #0xa
|
|
mov r3, #0xe
|
|
bl DrawFrameAndWindow2
|
|
add r0, r5, #0
|
|
mov r1, #0xf
|
|
bl FillWindowPixelBuffer
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
str r3, [sp, #8]
|
|
ldr r2, [r4, #0x6c]
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl AddTextPrinterParameterized
|
|
add r0, r5, #0
|
|
bl ScheduleWindowCopyToVram
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E7270: .word 0x00000C9C
|
|
thumb_func_end ov85_021E71EC
|
|
|
|
thumb_func_start ov85_021E7274
|
|
ov85_021E7274: ; 0x021E7274
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r7, r1, #0
|
|
ldr r1, _021E72E4 ; =0x00000C9C
|
|
add r4, r0, r1
|
|
add r5, r4, #0
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
add r5, #0xc
|
|
bl BufferItemName
|
|
mov r0, #1
|
|
lsl r0, r0, #8
|
|
mov r1, #0x66
|
|
bl String_New
|
|
add r6, r0, #0
|
|
ldr r0, [r4, #4]
|
|
add r1, r7, #0
|
|
add r2, r6, #0
|
|
bl ReadMsgDataIntoString
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [r4, #0x6c]
|
|
add r2, r6, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r6, #0
|
|
bl String_Delete
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
mov r2, #0xa
|
|
mov r3, #0xe
|
|
bl DrawFrameAndWindow2
|
|
add r0, r5, #0
|
|
mov r1, #0xf
|
|
bl FillWindowPixelBuffer
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
str r3, [sp, #8]
|
|
ldr r2, [r4, #0x6c]
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl AddTextPrinterParameterized
|
|
add r0, r5, #0
|
|
bl ScheduleWindowCopyToVram
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E72E4: .word 0x00000C9C
|
|
thumb_func_end ov85_021E7274
|
|
|
|
thumb_func_start ov85_021E72E8
|
|
ov85_021E72E8: ; 0x021E72E8
|
|
push {r3, r4, r5, lr}
|
|
ldr r4, _021E7308 ; =0x00000CA8
|
|
add r5, r0, #0
|
|
add r0, r5, r4
|
|
mov r1, #1
|
|
bl ClearFrameAndWindow2
|
|
add r0, r5, r4
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
add r0, r5, r4
|
|
bl ScheduleWindowCopyToVram
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E7308: .word 0x00000CA8
|
|
thumb_func_end ov85_021E72E8
|
|
|
|
thumb_func_start ov85_021E730C
|
|
ov85_021E730C: ; 0x021E730C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
str r1, [sp]
|
|
add r7, r0, #0
|
|
ldr r0, [sp]
|
|
ldr r1, _021E7344 ; =0x00000C9C
|
|
lsl r2, r0, #2
|
|
ldr r0, _021E7348 ; =ov85_021EA5AC
|
|
mov r6, #0
|
|
ldr r4, [r0, r2]
|
|
ldr r0, [sp]
|
|
str r0, [r7, r1]
|
|
cmp r0, #0
|
|
ble _021E7342
|
|
add r5, r7, r1
|
|
add r5, #0x1c
|
|
_021E732A:
|
|
ldr r0, _021E734C ; =0x00000D84
|
|
add r1, r5, #0
|
|
ldr r0, [r7, r0]
|
|
add r2, r4, #0
|
|
bl AddWindow
|
|
ldr r0, [sp]
|
|
add r6, r6, #1
|
|
add r4, #8
|
|
add r5, #0x10
|
|
cmp r6, r0
|
|
blt _021E732A
|
|
_021E7342:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E7344: .word 0x00000C9C
|
|
_021E7348: .word ov85_021EA5AC
|
|
_021E734C: .word 0x00000D84
|
|
thumb_func_end ov85_021E730C
|
|
|
|
thumb_func_start ov85_021E7350
|
|
ov85_021E7350: ; 0x021E7350
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
ldr r7, _021E737C ; =0x00000C9C
|
|
add r6, r0, #0
|
|
ldr r0, [r6, r7]
|
|
mov r4, #0
|
|
cmp r0, #0
|
|
ble _021E7378
|
|
add r5, r6, r7
|
|
add r5, #0x1c
|
|
_021E7362:
|
|
add r0, r5, #0
|
|
bl ClearWindowTilemapAndCopyToVram
|
|
add r0, r5, #0
|
|
bl RemoveWindow
|
|
ldr r0, [r6, r7]
|
|
add r4, r4, #1
|
|
add r5, #0x10
|
|
cmp r4, r0
|
|
blt _021E7362
|
|
_021E7378:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E737C: .word 0x00000C9C
|
|
thumb_func_end ov85_021E7350
|
|
|
|
thumb_func_start ov85_021E7380
|
|
ov85_021E7380: ; 0x021E7380
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r6, r1, #0
|
|
ldr r1, _021E73D0 ; =0x00000CB8
|
|
lsl r4, r2, #4
|
|
add r5, r0, r1
|
|
mov r1, #1
|
|
add r7, r3, #0
|
|
add r0, r5, r4
|
|
add r2, r1, #0
|
|
mov r3, #0xe
|
|
bl DrawFrameAndWindow1
|
|
add r0, r5, r4
|
|
mov r1, #0xf
|
|
bl FillWindowPixelBuffer
|
|
mov r0, #0
|
|
add r1, r6, #0
|
|
add r2, r0, #0
|
|
mov r3, #0x40
|
|
bl FontID_String_GetCenterAlignmentX
|
|
mov r1, #0
|
|
add r3, r0, #0
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
str r7, [sp, #8]
|
|
add r0, r5, r4
|
|
add r2, r6, #0
|
|
str r1, [sp, #0xc]
|
|
bl AddTextPrinterParameterized2
|
|
add r0, r5, r4
|
|
bl ScheduleWindowCopyToVram
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E73D0: .word 0x00000CB8
|
|
thumb_func_end ov85_021E7380
|
|
|
|
thumb_func_start ov85_021E73D4
|
|
ov85_021E73D4: ; 0x021E73D4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
add r7, r1, #0
|
|
str r2, [sp]
|
|
add r5, r3, #0
|
|
ldr r4, _021E73FC ; =0x00010200
|
|
bl sub_0203769C
|
|
cmp r5, r0
|
|
bne _021E73EC
|
|
mov r4, #0xc1
|
|
lsl r4, r4, #0xa
|
|
_021E73EC:
|
|
ldr r2, [sp]
|
|
add r0, r6, #0
|
|
add r1, r7, #0
|
|
add r3, r4, #0
|
|
bl ov85_021E7380
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E73FC: .word 0x00010200
|
|
thumb_func_end ov85_021E73D4
|
|
|
|
thumb_func_start ov85_021E7400
|
|
ov85_021E7400: ; 0x021E7400
|
|
push {r3, r4, r5, lr}
|
|
ldr r2, _021E7420 ; =0x00000CB8
|
|
lsl r4, r1, #4
|
|
add r5, r0, r2
|
|
add r0, r5, r4
|
|
mov r1, #1
|
|
bl ClearFrameAndWindow2
|
|
add r0, r5, r4
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
add r0, r5, r4
|
|
bl ScheduleWindowCopyToVram
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E7420: .word 0x00000CB8
|
|
thumb_func_end ov85_021E7400
|
|
|
|
thumb_func_start ov85_021E7424
|
|
ov85_021E7424: ; 0x021E7424
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x18
|
|
add r5, r0, #0
|
|
ldr r0, _021E748C ; =0x00000D0C
|
|
add r4, r5, r0
|
|
mov r0, #0x66
|
|
bl Camera_New
|
|
str r0, [r4, #0x1c]
|
|
mov r2, #0
|
|
str r2, [r4, #8]
|
|
str r2, [r4, #0xc]
|
|
ldr r0, _021E7490 ; =0x0000E93F
|
|
str r2, [r4, #0x10]
|
|
strh r0, [r4, #0x14]
|
|
strh r2, [r4, #0x16]
|
|
ldr r0, _021E7494 ; =0x00143000
|
|
ldr r1, _021E748C ; =0x00000D0C
|
|
strh r2, [r4, #0x18]
|
|
str r0, [r5, r1]
|
|
ldr r0, _021E7498 ; =0x00000444
|
|
str r0, [r4, #4]
|
|
str r2, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4, #0x1c]
|
|
add r2, r4, #0
|
|
str r0, [sp, #8]
|
|
ldr r3, [r4, #4]
|
|
add r0, r4, #0
|
|
lsl r3, r3, #0x10
|
|
ldr r1, [r5, r1]
|
|
add r0, #8
|
|
add r2, #0x14
|
|
lsr r3, r3, #0x10
|
|
bl Camera_Init_FromTargetDistanceAndAngle
|
|
mov r1, #0
|
|
mov r0, #1
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp, #0x10]
|
|
str r1, [sp, #0xc]
|
|
str r1, [sp, #0x14]
|
|
ldr r1, [r4, #0x1c]
|
|
add r0, sp, #0xc
|
|
bl Camera_SetLookAtCamUp
|
|
ldr r0, [r4, #0x1c]
|
|
bl Camera_SetStaticPtr
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E748C: .word 0x00000D0C
|
|
_021E7490: .word 0x0000E93F
|
|
_021E7494: .word 0x00143000
|
|
_021E7498: .word 0x00000444
|
|
thumb_func_end ov85_021E7424
|
|
|
|
thumb_func_start ov85_021E749C
|
|
ov85_021E749C: ; 0x021E749C
|
|
ldr r1, _021E74A4 ; =0x00000D28
|
|
ldr r3, _021E74A8 ; =Camera_Delete
|
|
ldr r0, [r0, r1]
|
|
bx r3
|
|
.balign 4, 0
|
|
_021E74A4: .word 0x00000D28
|
|
_021E74A8: .word Camera_Delete
|
|
thumb_func_end ov85_021E749C
|
|
|
|
thumb_func_start ov85_021E74AC
|
|
ov85_021E74AC: ; 0x021E74AC
|
|
push {r4, r5, r6, lr}
|
|
ldr r1, _021E74EC ; =0x00000D2C
|
|
mov r6, #0
|
|
add r5, r0, r1
|
|
add r0, r5, #0
|
|
add r0, #0x10
|
|
mov r1, #2
|
|
add r2, r6, #0
|
|
mov r4, #3
|
|
bl sub_02021280
|
|
add r2, r5, #0
|
|
add r2, #0x18
|
|
mov r0, #1
|
|
_021E74C8:
|
|
ldrh r1, [r2, #0x16]
|
|
cmp r1, #1
|
|
bne _021E74D8
|
|
ldrh r1, [r2, #0x12]
|
|
add r6, r0, #0
|
|
str r1, [r5]
|
|
ldrh r1, [r2, #0x14]
|
|
str r1, [r5, #4]
|
|
_021E74D8:
|
|
sub r2, #8
|
|
sub r4, r4, #1
|
|
bpl _021E74C8
|
|
ldr r0, [r5, #0xc]
|
|
eor r0, r6
|
|
and r0, r6
|
|
str r0, [r5, #8]
|
|
str r6, [r5, #0xc]
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021E74EC: .word 0x00000D2C
|
|
thumb_func_end ov85_021E74AC
|
|
|
|
thumb_func_start ov85_021E74F0
|
|
ov85_021E74F0: ; 0x021E74F0
|
|
ldr r1, [r0]
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0x20
|
|
blt _021E7508
|
|
cmp r0, #0x9f
|
|
bgt _021E7508
|
|
cmp r1, #0x40
|
|
blt _021E7508
|
|
cmp r1, #0xbf
|
|
bgt _021E7508
|
|
mov r0, #1
|
|
bx lr
|
|
_021E7508:
|
|
mov r0, #0
|
|
bx lr
|
|
thumb_func_end ov85_021E74F0
|
|
|
|
thumb_func_start ov85_021E750C
|
|
ov85_021E750C: ; 0x021E750C
|
|
push {r3, lr}
|
|
ldr r1, _021E7528 ; =0x00000D2C
|
|
add r0, r0, r1
|
|
ldr r1, [r0, #8]
|
|
cmp r1, #0
|
|
beq _021E7524
|
|
bl ov85_021E74F0
|
|
cmp r0, #1
|
|
bne _021E7524
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_021E7524:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_021E7528: .word 0x00000D2C
|
|
thumb_func_end ov85_021E750C
|
|
|
|
thumb_func_start ov85_021E752C
|
|
ov85_021E752C: ; 0x021E752C
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #8
|
|
add r6, r0, #0
|
|
add r0, #0xcc
|
|
ldr r0, [r0]
|
|
add r4, r6, #0
|
|
ldr r0, [r0, #8]
|
|
mov r2, #0x36
|
|
lsl r5, r0, #2
|
|
mov r0, #0x66
|
|
ldr r3, _021E75AC ; =ov85_021EA5C4
|
|
str r0, [sp]
|
|
mov r1, #0
|
|
add r4, #0xd4
|
|
add r0, r4, #0
|
|
str r1, [sp, #4]
|
|
lsl r2, r2, #6
|
|
ldr r2, [r6, r2]
|
|
ldr r3, [r3, r5]
|
|
add r0, #0x54
|
|
bl sub_020696C4
|
|
add r0, r4, #0
|
|
add r0, #0x54
|
|
bl sub_02069714
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x68
|
|
add r1, #0x54
|
|
bl sub_02069978
|
|
ldr r1, _021E75B0 ; =ov85_021EA5DC
|
|
mov r0, #0
|
|
add r2, r4, #0
|
|
ldr r1, [r1, r5]
|
|
str r0, [r4, #0x3c]
|
|
str r1, [r4, #0x44]
|
|
mov r1, #1
|
|
lsl r1, r1, #0xc
|
|
str r1, [r4, #0x18]
|
|
str r1, [r4, #0x1c]
|
|
str r1, [r4, #0x20]
|
|
add r1, r4, #0
|
|
add r1, #0x4c
|
|
strh r0, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0x4e
|
|
strh r0, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0x50
|
|
strh r0, [r1]
|
|
add r6, #0xd4
|
|
ldr r1, _021E75B4 ; =0xFFFDC000
|
|
str r0, [r6]
|
|
str r1, [r4, #4]
|
|
str r0, [r4, #8]
|
|
ldmia r4!, {r0, r1}
|
|
add r2, #0xc
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r4]
|
|
str r0, [r2]
|
|
add sp, #8
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021E75AC: .word ov85_021EA5C4
|
|
_021E75B0: .word ov85_021EA5DC
|
|
_021E75B4: .word 0xFFFDC000
|
|
thumb_func_end ov85_021E752C
|
|
|
|
thumb_func_start ov85_021E75B8
|
|
ov85_021E75B8: ; 0x021E75B8
|
|
mov r1, #0x4a
|
|
lsl r1, r1, #2
|
|
ldr r3, _021E75C4 ; =sub_02069784
|
|
add r0, r0, r1
|
|
bx r3
|
|
nop
|
|
_021E75C4: .word sub_02069784
|
|
thumb_func_end ov85_021E75B8
|
|
|
|
thumb_func_start ov85_021E75C8
|
|
ov85_021E75C8: ; 0x021E75C8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r5, #0
|
|
add r4, #0xd4
|
|
ldr r0, [r4, #0x3c]
|
|
str r0, [sp]
|
|
ldr r1, [r4, #0x40]
|
|
add r0, sp, #0
|
|
bl ov85_021E8530
|
|
ldr r1, [r4, #0x44]
|
|
add r0, sp, #0
|
|
bl ov85_021E8530
|
|
ldr r1, [sp]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
mov r1, #0x5a
|
|
asr r0, r0, #0xc
|
|
lsl r1, r1, #2
|
|
sub r0, r1, r0
|
|
bl _s32_div_f
|
|
add r0, r4, #0
|
|
add r0, #0x4e
|
|
strh r1, [r0]
|
|
add r5, #0xd4
|
|
ldr r1, [r5]
|
|
ldr r0, [r4, #0x30]
|
|
ldr r2, [r4, #0x24]
|
|
add r0, r1, r0
|
|
add r0, r2, r0
|
|
str r0, [r4, #0xc]
|
|
ldr r1, [r4, #4]
|
|
ldr r0, [r4, #0x34]
|
|
ldr r2, [r4, #0x28]
|
|
add r0, r1, r0
|
|
add r0, r2, r0
|
|
str r0, [r4, #0x10]
|
|
ldr r1, [r4, #8]
|
|
ldr r0, [r4, #0x38]
|
|
ldr r2, [r4, #0x2c]
|
|
add r0, r1, r0
|
|
add r0, r2, r0
|
|
str r0, [r4, #0x14]
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E75C8
|
|
|
|
thumb_func_start ov85_021E7628
|
|
ov85_021E7628: ; 0x021E7628
|
|
push {r3, lr}
|
|
add r3, r0, #0
|
|
add r3, #0xd4
|
|
add r0, r3, #0
|
|
add r1, r3, #0
|
|
add r2, r3, #0
|
|
add r0, #0x68
|
|
add r1, #0xc
|
|
add r2, #0x18
|
|
add r3, #0x4c
|
|
bl sub_020699D0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E7628
|
|
|
|
thumb_func_start ov85_021E7644
|
|
ov85_021E7644: ; 0x021E7644
|
|
ldr r3, _021E764C ; =ov85_021E8530
|
|
add r0, #0x3c
|
|
bx r3
|
|
nop
|
|
_021E764C: .word ov85_021E8530
|
|
thumb_func_end ov85_021E7644
|
|
|
|
thumb_func_start ov85_021E7650
|
|
ov85_021E7650: ; 0x021E7650
|
|
ldr r3, _021E7654 ; =ov85_021E7660
|
|
bx r3
|
|
.balign 4, 0
|
|
_021E7654: .word ov85_021E7660
|
|
thumb_func_end ov85_021E7650
|
|
|
|
thumb_func_start ov85_021E7658
|
|
ov85_021E7658: ; 0x021E7658
|
|
ldr r3, _021E765C ; =ov85_021E7734
|
|
bx r3
|
|
.balign 4, 0
|
|
_021E765C: .word ov85_021E7734
|
|
thumb_func_end ov85_021E7658
|
|
|
|
thumb_func_start ov85_021E7660
|
|
ov85_021E7660: ; 0x021E7660
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r7, r0, #0
|
|
mov r0, #0x66
|
|
mov r1, #0
|
|
str r0, [sp]
|
|
mov r2, #0x36
|
|
mov r5, #0x19
|
|
lsl r5, r5, #4
|
|
str r1, [sp, #4]
|
|
lsl r2, r2, #6
|
|
ldr r2, [r7, r2]
|
|
add r0, r7, r5
|
|
add r3, r1, #0
|
|
bl sub_020696C4
|
|
add r0, r7, r5
|
|
bl sub_02069714
|
|
mov r0, #0x66
|
|
str r0, [sp]
|
|
mov r1, #0
|
|
mov r2, #0x36
|
|
add r0, r7, r5
|
|
str r1, [sp, #4]
|
|
lsl r2, r2, #6
|
|
ldr r2, [r7, r2]
|
|
add r0, #0x14
|
|
mov r3, #5
|
|
bl sub_020696C4
|
|
add r0, r7, r5
|
|
add r0, #0x14
|
|
bl sub_02069714
|
|
add r4, r7, r5
|
|
ldr r0, _021E772C ; =ov85_021EA558
|
|
add r4, #0x28
|
|
str r0, [sp, #0xc]
|
|
ldr r0, _021E7730 ; =ov85_021EA580
|
|
add r5, r7, r5
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0x10]
|
|
add r5, #0x8c
|
|
add r6, r4, #0
|
|
_021E76BC:
|
|
mov r0, #0x66
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
mov r2, #0x36
|
|
str r0, [sp, #4]
|
|
ldr r3, [sp, #0xc]
|
|
lsl r2, r2, #6
|
|
ldr r2, [r7, r2]
|
|
ldr r3, [r3]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl sub_020696C4
|
|
add r0, r4, #0
|
|
bl sub_02069714
|
|
mov r0, #0x66
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
mov r2, #0x36
|
|
str r0, [sp, #4]
|
|
ldr r3, [sp, #8]
|
|
lsl r2, r2, #6
|
|
ldr r2, [r7, r2]
|
|
ldr r3, [r3]
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl sub_020697DC
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
mov r2, #0x66
|
|
bl sub_02069864
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl sub_02069884
|
|
ldr r0, [sp, #0x10]
|
|
add r4, #0x14
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sp, #0xc]
|
|
add r5, #0x24
|
|
add r0, r0, #4
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #8]
|
|
add r6, #0x14
|
|
add r0, r0, #4
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp, #0x10]
|
|
cmp r0, #5
|
|
blt _021E76BC
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E772C: .word ov85_021EA558
|
|
_021E7730: .word ov85_021EA580
|
|
thumb_func_end ov85_021E7660
|
|
|
|
thumb_func_start ov85_021E7734
|
|
ov85_021E7734: ; 0x021E7734
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r7, #0x19
|
|
add r5, r0, #0
|
|
lsl r7, r7, #4
|
|
add r0, r5, r7
|
|
bl sub_02069784
|
|
add r0, r5, r7
|
|
add r0, #0x14
|
|
bl sub_02069784
|
|
add r4, r5, r7
|
|
add r5, r5, r7
|
|
mov r6, #0
|
|
add r4, #0x28
|
|
add r5, #0x8c
|
|
_021E7754:
|
|
add r0, r4, #0
|
|
bl sub_02069784
|
|
add r0, r5, #0
|
|
bl sub_02069818
|
|
add r6, r6, #1
|
|
add r4, #0x14
|
|
add r5, #0x24
|
|
cmp r6, #5
|
|
blt _021E7754
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov85_021E7734
|
|
|
|
thumb_func_start ov85_021E776C
|
|
ov85_021E776C: ; 0x021E776C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
mov r1, #0x19
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
lsl r1, r1, #4
|
|
add r0, #0x5c
|
|
add r1, r5, r1
|
|
bl sub_02069978
|
|
mov r0, #1
|
|
str r0, [r4, #4]
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov85_021E7A20
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov85_021E7AC8
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E776C
|
|
|
|
thumb_func_start ov85_021E7798
|
|
ov85_021E7798: ; 0x021E7798
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r5, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r5, #0x30]
|
|
mov r1, #0x19
|
|
lsl r1, r1, #4
|
|
add r4, r5, r1
|
|
str r0, [sp, #0xc]
|
|
cmp r0, #0
|
|
ble _021E7824
|
|
sub r1, #0x50
|
|
add r0, r4, r1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #4
|
|
add r0, r4, r0
|
|
str r0, [sp]
|
|
ldr r0, _021E7828 ; =0x0000071C
|
|
str r4, [sp, #4]
|
|
add r7, r4, #0
|
|
add r6, r4, r0
|
|
_021E77C6:
|
|
mov r0, #5
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _021E77DC
|
|
mov r1, #0x41
|
|
lsl r1, r1, #2
|
|
ldr r0, [sp, #8]
|
|
add r1, r5, r1
|
|
bl ov85_021E78D8
|
|
_021E77DC:
|
|
mov r0, #0x4b
|
|
ldr r1, [sp, #4]
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0
|
|
beq _021E77F0
|
|
ldr r1, [sp]
|
|
add r0, r5, #0
|
|
bl ov85_021E7A54
|
|
_021E77F0:
|
|
ldr r0, _021E7828 ; =0x0000071C
|
|
ldr r0, [r7, r0]
|
|
cmp r0, #0
|
|
beq _021E7800
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov85_021E7B04
|
|
_021E7800:
|
|
ldr r0, [sp, #8]
|
|
add r4, #0xb0
|
|
add r0, #0xb0
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp, #4]
|
|
add r7, #0x68
|
|
add r0, #0x7c
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp]
|
|
add r6, #0x68
|
|
add r0, #0x7c
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0x10]
|
|
add r1, r0, #1
|
|
ldr r0, [sp, #0xc]
|
|
str r1, [sp, #0x10]
|
|
cmp r1, r0
|
|
blt _021E77C6
|
|
_021E7824:
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E7828: .word 0x0000071C
|
|
thumb_func_end ov85_021E7798
|
|
|
|
thumb_func_start ov85_021E782C
|
|
ov85_021E782C: ; 0x021E782C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
ldr r1, [r0, #0x30]
|
|
mov r7, #0
|
|
str r1, [sp]
|
|
mov r1, #0x19
|
|
lsl r1, r1, #4
|
|
add r2, r0, r1
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #4
|
|
add r4, r2, r0
|
|
ldr r0, _021E78A0 ; =0x0000071C
|
|
sub r1, #0x50
|
|
add r5, r2, r0
|
|
ldr r0, [sp]
|
|
add r6, r2, r1
|
|
cmp r0, #0
|
|
ble _021E789E
|
|
_021E784E:
|
|
ldr r0, [r6, #4]
|
|
cmp r0, #0
|
|
beq _021E7868
|
|
add r0, r6, #0
|
|
add r1, r6, #0
|
|
add r2, r6, #0
|
|
add r3, r6, #0
|
|
add r0, #0x5c
|
|
add r1, #0x44
|
|
add r2, #0x38
|
|
add r3, #0x24
|
|
bl sub_020699D0
|
|
_021E7868:
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _021E7880
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r2, r4, #0
|
|
add r0, #0x24
|
|
add r1, #0x18
|
|
add r2, #0xc
|
|
add r3, r4, #4
|
|
bl sub_020699D0
|
|
_021E7880:
|
|
ldr r0, [r5]
|
|
cmp r0, #0
|
|
beq _021E7890
|
|
add r0, r5, #0
|
|
add r0, #0x10
|
|
add r1, r5, #4
|
|
bl sub_020699BC
|
|
_021E7890:
|
|
ldr r0, [sp]
|
|
add r7, r7, #1
|
|
add r6, #0xb0
|
|
add r4, #0x7c
|
|
add r5, #0x68
|
|
cmp r7, r0
|
|
blt _021E784E
|
|
_021E789E:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E78A0: .word 0x0000071C
|
|
thumb_func_end ov85_021E782C
|
|
|
|
thumb_func_start ov85_021E78A4
|
|
ov85_021E78A4: ; 0x021E78A4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
str r1, [sp]
|
|
mov r1, #0x19
|
|
lsl r1, r1, #4
|
|
ldr r7, [r0, #0x30]
|
|
mov r6, #0
|
|
add r4, r0, r1
|
|
cmp r7, #0
|
|
ble _021E78D6
|
|
sub r1, #0x34
|
|
add r5, r4, r1
|
|
_021E78BA:
|
|
mov r0, #5
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _021E78CC
|
|
ldr r1, [sp]
|
|
add r0, r5, #0
|
|
bl ov85_021E8530
|
|
_021E78CC:
|
|
add r6, r6, #1
|
|
add r4, #0xb0
|
|
add r5, #0xb0
|
|
cmp r6, r7
|
|
blt _021E78BA
|
|
_021E78D6:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov85_021E78A4
|
|
|
|
thumb_func_start ov85_021E78D8
|
|
ov85_021E78D8: ; 0x021E78D8
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0x1c]
|
|
add r4, r1, #0
|
|
str r0, [sp]
|
|
ldr r1, [r5, #0x20]
|
|
add r0, sp, #0
|
|
bl ov85_021E8530
|
|
ldr r1, [sp]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
lsl r0, r0, #4
|
|
lsr r6, r0, #0x10
|
|
add r0, r6, #0
|
|
bl GF_CosDegNoWrap
|
|
ldr r2, [r5, #0x50]
|
|
ldr r1, [r4]
|
|
add r2, r2, r1
|
|
mov r1, #0x16
|
|
mul r1, r0
|
|
add r0, r2, r1
|
|
str r0, [r5, #0x44]
|
|
mov r0, #6
|
|
ldr r1, [r5, #0x54]
|
|
lsl r0, r0, #0xc
|
|
sub r1, r1, r0
|
|
ldr r0, [r4, #4]
|
|
add r0, r1, r0
|
|
str r0, [r5, #0x48]
|
|
add r0, r6, #0
|
|
bl GF_SinDegNoWrap
|
|
ldr r2, [r5, #0x58]
|
|
ldr r1, [r4, #8]
|
|
add r2, r2, r1
|
|
mov r1, #0x16
|
|
mul r1, r0
|
|
add r0, r2, r1
|
|
str r0, [r5, #0x4c]
|
|
ldr r1, [r5, #0x2c]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
asr r0, r0, #0xc
|
|
strh r0, [r5, #0x24]
|
|
ldr r1, [r5, #0x30]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
asr r0, r0, #0xc
|
|
strh r0, [r5, #0x26]
|
|
ldr r1, [r5, #0x34]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
asr r0, r0, #0xc
|
|
strh r0, [r5, #0x28]
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E78D8
|
|
|
|
thumb_func_start ov85_021E7958
|
|
ov85_021E7958: ; 0x021E7958
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x2c
|
|
mov r1, #0x19
|
|
ldr r6, [r0, #0x30]
|
|
lsl r1, r1, #4
|
|
add r1, r0, r1
|
|
mov lr, r1
|
|
ldr r0, [r0, #0x2c]
|
|
mov r1, #0xa
|
|
add r2, r6, #0
|
|
mul r2, r1
|
|
ldr r1, _021E7A18 ; =ov85_021EA7C4
|
|
lsl r4, r0, #1
|
|
add r0, r1, r2
|
|
ldrh r0, [r4, r0]
|
|
mov r3, #0
|
|
add r1, sp, #4
|
|
lsl r5, r0, #0xc
|
|
ldr r0, _021E7A1C ; =0x0000FFFF
|
|
add r2, sp, #0x18
|
|
_021E7980:
|
|
stmia r1!, {r3}
|
|
add r3, r3, #1
|
|
stmia r2!, {r0}
|
|
cmp r3, r6
|
|
blt _021E7980
|
|
mov r3, #0
|
|
cmp r6, #0
|
|
ble _021E79B8
|
|
mov r0, #0x5a
|
|
lsl r0, r0, #0xe
|
|
mov r1, lr
|
|
add r2, sp, #0x18
|
|
add r7, r5, r0
|
|
_021E799A:
|
|
mov r0, #0x57
|
|
lsl r0, r0, #2
|
|
ldr r4, [r1, r0]
|
|
sub r0, r5, r4
|
|
bpl _021E79A6
|
|
sub r0, r7, r4
|
|
_021E79A6:
|
|
asr r4, r0, #0xb
|
|
lsr r4, r4, #0x14
|
|
add r4, r0, r4
|
|
asr r0, r4, #0xc
|
|
add r3, r3, #1
|
|
stmia r2!, {r0}
|
|
add r1, #0xb0
|
|
cmp r3, r6
|
|
blt _021E799A
|
|
_021E79B8:
|
|
mov r7, #1
|
|
cmp r6, #1
|
|
ble _021E7A02
|
|
add r0, sp, #8
|
|
str r0, [sp]
|
|
add r5, sp, #0x18
|
|
_021E79C4:
|
|
ldr r0, [sp]
|
|
add r2, sp, #4
|
|
ldr r0, [r0]
|
|
mov ip, r0
|
|
lsl r0, r0, #2
|
|
ldr r1, [r5, r0]
|
|
sub r0, r7, #1
|
|
lsl r3, r0, #2
|
|
add r2, r2, r3
|
|
b _021E79DE
|
|
_021E79D8:
|
|
str r3, [r2, #4]
|
|
sub r2, r2, #4
|
|
sub r0, r0, #1
|
|
_021E79DE:
|
|
cmp r0, #0
|
|
blt _021E79EC
|
|
ldr r3, [r2]
|
|
lsl r4, r3, #2
|
|
ldr r4, [r5, r4]
|
|
cmp r4, r1
|
|
bgt _021E79D8
|
|
_021E79EC:
|
|
lsl r1, r0, #2
|
|
add r0, sp, #4
|
|
add r1, r0, r1
|
|
mov r0, ip
|
|
str r0, [r1, #4]
|
|
ldr r0, [sp]
|
|
add r7, r7, #1
|
|
add r0, r0, #4
|
|
str r0, [sp]
|
|
cmp r7, r6
|
|
blt _021E79C4
|
|
_021E7A02:
|
|
mov r1, #5
|
|
lsl r1, r1, #6
|
|
mov r0, lr
|
|
add r2, r0, r1
|
|
ldr r1, [sp, #4]
|
|
mov r0, #0xb0
|
|
mul r0, r1
|
|
add r0, r2, r0
|
|
add sp, #0x2c
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E7A18: .word ov85_021EA7C4
|
|
_021E7A1C: .word 0x0000FFFF
|
|
thumb_func_end ov85_021E7958
|
|
|
|
thumb_func_start ov85_021E7A20
|
|
ov85_021E7A20: ; 0x021E7A20
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x19
|
|
lsl r0, r0, #4
|
|
add r3, r5, r0
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #4
|
|
add r2, r3, r0
|
|
ldr r4, [r1, #0x10]
|
|
mov r0, #0x7c
|
|
mul r0, r4
|
|
mov r6, #1
|
|
add r4, r2, r0
|
|
str r6, [r2, r0]
|
|
add r0, r4, #0
|
|
add r3, #0x14
|
|
str r1, [r4, #0x78]
|
|
add r0, #0x24
|
|
add r1, r3, #0
|
|
bl sub_02069978
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov85_021E7A54
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov85_021E7A20
|
|
|
|
thumb_func_start ov85_021E7A54
|
|
ov85_021E7A54: ; 0x021E7A54
|
|
push {r4, r5}
|
|
add r3, r1, #0
|
|
mov r0, #0
|
|
strh r0, [r3, #4]
|
|
strh r0, [r3, #6]
|
|
strh r0, [r3, #8]
|
|
ldr r5, [r3, #0x78]
|
|
add r4, r3, #0
|
|
add r5, #0x44
|
|
add r4, #0x18
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r4, #0
|
|
stmia r4!, {r0, r1}
|
|
ldr r0, [r5]
|
|
str r0, [r4]
|
|
ldr r0, [r3, #0x78]
|
|
ldr r1, [r2]
|
|
ldr r0, [r0, #0x50]
|
|
sub r0, r1, r0
|
|
str r0, [r2]
|
|
ldr r0, [r3, #0x78]
|
|
ldr r1, [r3, #0x1c]
|
|
ldr r0, [r0, #0x54]
|
|
sub r0, r1, r0
|
|
str r0, [r3, #0x1c]
|
|
ldr r0, [r3, #0x78]
|
|
ldr r1, [r3, #0x20]
|
|
ldr r0, [r0, #0x58]
|
|
sub r0, r1, r0
|
|
str r0, [r3, #0x20]
|
|
mov r0, #2
|
|
ldr r1, [r3, #0x1c]
|
|
lsl r0, r0, #0xc
|
|
add r0, r1, r0
|
|
str r0, [r3, #0x1c]
|
|
ldr r0, [r3, #0x78]
|
|
ldr r1, [r0, #0x54]
|
|
cmp r1, #0
|
|
bge _021E7AA4
|
|
neg r1, r1
|
|
_021E7AA4:
|
|
asr r0, r1, #6
|
|
lsr r0, r0, #0x19
|
|
add r0, r1, r0
|
|
asr r1, r0, #7
|
|
mov r0, #2
|
|
lsl r0, r0, #0xa
|
|
cmp r1, r0
|
|
ble _021E7AB6
|
|
add r1, r0, #0
|
|
_021E7AB6:
|
|
mov r0, #1
|
|
lsl r0, r0, #0xc
|
|
sub r0, r0, r1
|
|
str r0, [r3, #0xc]
|
|
str r0, [r3, #0x10]
|
|
str r0, [r3, #0x14]
|
|
pop {r4, r5}
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E7A54
|
|
|
|
thumb_func_start ov85_021E7AC8
|
|
ov85_021E7AC8: ; 0x021E7AC8
|
|
push {r3, r4, r5, lr}
|
|
mov r2, #0x19
|
|
lsl r2, r2, #4
|
|
add r3, r0, r2
|
|
ldr r0, _021E7B00 ; =0x0000071C
|
|
ldr r4, [r1, #0x10]
|
|
add r2, r3, r0
|
|
add r5, r4, #0
|
|
mov r0, #0x68
|
|
mul r5, r0
|
|
mov r4, #1
|
|
str r4, [r2, r5]
|
|
add r4, r3, #0
|
|
add r0, r2, r5
|
|
str r1, [r0, #0x64]
|
|
ldr r2, [r1, #0x10]
|
|
mov r1, #0x14
|
|
add r4, #0x28
|
|
mul r1, r2
|
|
add r1, r4, r1
|
|
mov r4, #0x24
|
|
add r3, #0x8c
|
|
mul r4, r2
|
|
add r0, #0x10
|
|
add r2, r3, r4
|
|
bl sub_02069998
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E7B00: .word 0x0000071C
|
|
thumb_func_end ov85_021E7AC8
|
|
|
|
thumb_func_start ov85_021E7B04
|
|
ov85_021E7B04: ; 0x021E7B04
|
|
push {r3, r4, r5, lr}
|
|
add r2, r1, #0
|
|
ldr r5, [r2, #0x64]
|
|
add r3, r0, #0
|
|
add r5, #0x44
|
|
ldmia r5!, {r0, r1}
|
|
add r4, r2, #4
|
|
stmia r4!, {r0, r1}
|
|
ldr r0, [r5]
|
|
str r0, [r4]
|
|
mov r0, #5
|
|
ldr r1, [r2, #8]
|
|
lsl r0, r0, #0xe
|
|
add r0, r1, r0
|
|
str r0, [r2, #8]
|
|
mov r0, #0x87
|
|
lsl r0, r0, #2
|
|
add r3, r3, r0
|
|
ldr r0, [r2, #0x64]
|
|
mov r2, #1
|
|
ldr r1, [r0, #0x10]
|
|
mov r0, #0x24
|
|
mul r0, r1
|
|
mov r1, #1
|
|
add r0, r3, r0
|
|
lsl r1, r1, #0xc
|
|
bl sub_020698E8
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E7B04
|
|
|
|
thumb_func_start ov85_021E7B40
|
|
ov85_021E7B40: ; 0x021E7B40
|
|
push {r3, r4, r5, lr}
|
|
ldr r4, [sp, #0x18]
|
|
add r5, r0, #0
|
|
str r1, [r4, #0xc]
|
|
str r2, [r4, #0x10]
|
|
ldr r0, [sp, #0x10]
|
|
str r3, [r4, #0x14]
|
|
str r2, [r4, #0x18]
|
|
lsl r0, r0, #0xc
|
|
str r0, [r4, #0x1c]
|
|
ldr r0, [sp, #0x14]
|
|
mov r1, #0x18
|
|
lsl r0, r0, #0xc
|
|
str r0, [r4, #0x20]
|
|
mov r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
mov r0, #0x66
|
|
bl AllocFromHeapAtEnd
|
|
add r1, r0, #0
|
|
add r3, r1, #0
|
|
mov r2, #0x18
|
|
mov r0, #0
|
|
_021E7B72:
|
|
strb r0, [r3]
|
|
add r3, r3, #1
|
|
sub r2, r2, #1
|
|
bne _021E7B72
|
|
ldr r0, _021E7B88 ; =ov85_021E7B8C
|
|
str r5, [r1, #0x14]
|
|
mov r2, #0
|
|
str r4, [r1, #0x10]
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E7B88: .word ov85_021E7B8C
|
|
thumb_func_end ov85_021E7B40
|
|
|
|
thumb_func_start ov85_021E7B8C
|
|
ov85_021E7B8C: ; 0x021E7B8C
|
|
push {r4, r5, r6, lr}
|
|
ldr r4, _021E7BBC ; =ov85_021EA51C
|
|
add r6, r0, #0
|
|
add r5, r1, #0
|
|
_021E7B94:
|
|
ldr r1, [r5]
|
|
add r0, r5, #0
|
|
lsl r1, r1, #2
|
|
ldr r1, [r4, r1]
|
|
blx r1
|
|
cmp r0, #1
|
|
beq _021E7B94
|
|
cmp r0, #2
|
|
bne _021E7BB8
|
|
ldr r0, [r5, #0x10]
|
|
mov r1, #1
|
|
str r1, [r0, #8]
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
_021E7BB8:
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021E7BBC: .word ov85_021EA51C
|
|
thumb_func_end ov85_021E7B8C
|
|
|
|
thumb_func_start ov85_021E7BC0
|
|
ov85_021E7BC0: ; 0x021E7BC0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #1
|
|
ldr r1, [r4, #0x10]
|
|
lsl r0, r0, #0xc
|
|
str r0, [r1, #0x38]
|
|
str r0, [r1, #0x3c]
|
|
str r0, [r1, #0x40]
|
|
mov r0, #3
|
|
lsl r0, r0, #0x12
|
|
str r0, [r1, #0x54]
|
|
ldr r0, [r4, #0x14]
|
|
bl ov85_021E776C
|
|
mov r0, #2
|
|
lsl r0, r0, #0xe
|
|
str r0, [r4, #0xc]
|
|
mov r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E7BC0
|
|
|
|
thumb_func_start ov85_021E7BEC
|
|
ov85_021E7BEC: ; 0x021E7BEC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r4, [r5, #0x10]
|
|
ldr r0, [r5, #0xc]
|
|
ldr r1, [r4, #0x54]
|
|
sub r0, r1, r0
|
|
str r0, [r4, #0x54]
|
|
ldr r0, [r5, #8]
|
|
cmp r0, #0
|
|
bne _021E7C14
|
|
mov r0, #0x1a
|
|
ldr r1, [r4, #0x54]
|
|
lsl r0, r0, #0xe
|
|
cmp r1, r0
|
|
bgt _021E7C14
|
|
mov r0, #1
|
|
str r0, [r5, #8]
|
|
ldr r0, _021E7C28 ; =0x0000064F
|
|
bl PlaySE
|
|
_021E7C14:
|
|
mov r0, #2
|
|
ldr r1, [r4, #0x54]
|
|
lsl r0, r0, #0x10
|
|
cmp r1, r0
|
|
bgt _021E7C24
|
|
str r0, [r4, #0x54]
|
|
mov r0, #2
|
|
str r0, [r5]
|
|
_021E7C24:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E7C28: .word 0x0000064F
|
|
thumb_func_end ov85_021E7BEC
|
|
|
|
thumb_func_start ov85_021E7C2C
|
|
ov85_021E7C2C: ; 0x021E7C2C
|
|
push {r3, lr}
|
|
mov r1, #1
|
|
ldr r3, [r0, #0xc]
|
|
lsl r1, r1, #0xc
|
|
ldr r2, [r0, #0x10]
|
|
cmp r3, r1
|
|
ble _021E7C44
|
|
sub r3, r3, r1
|
|
str r3, [r0, #0xc]
|
|
cmp r3, r1
|
|
bge _021E7C44
|
|
str r1, [r0, #0xc]
|
|
_021E7C44:
|
|
ldr r3, [r2, #0x54]
|
|
ldr r1, [r0, #0xc]
|
|
sub r1, r3, r1
|
|
str r1, [r2, #0x54]
|
|
cmp r1, #0
|
|
bgt _021E7C6A
|
|
mov r1, #0
|
|
str r1, [r2, #0x54]
|
|
ldr r3, [r2, #0xc]
|
|
ldr r0, [r0, #0x14]
|
|
lsl r1, r3, #2
|
|
add r1, r0, r1
|
|
add r1, #0x98
|
|
ldr r1, [r1]
|
|
ldr r2, [r2, #0x14]
|
|
bl ov85_021E73D4
|
|
mov r0, #2
|
|
pop {r3, pc}
|
|
_021E7C6A:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E7C2C
|
|
|
|
thumb_func_start ov85_021E7C70
|
|
ov85_021E7C70: ; 0x021E7C70
|
|
push {r4, r5, r6, lr}
|
|
add r5, r1, #0
|
|
ldr r1, [r5, #4]
|
|
add r6, r0, #0
|
|
ldr r4, [r5, #0x1c]
|
|
cmp r1, #0
|
|
beq _021E7C84
|
|
cmp r1, #1
|
|
beq _021E7C9A
|
|
pop {r4, r5, r6, pc}
|
|
_021E7C84:
|
|
add r1, r4, #0
|
|
bl ov85_021E7E88
|
|
mov r0, #1
|
|
lsl r0, r0, #0xe
|
|
str r0, [r5, #0x10]
|
|
ldr r0, _021E7CDC ; =0xFFFFFBBC
|
|
str r0, [r5, #0x14]
|
|
ldr r0, [r5, #4]
|
|
add r0, r0, #1
|
|
str r0, [r5, #4]
|
|
_021E7C9A:
|
|
ldr r1, [r4, #0x54]
|
|
ldr r0, [r5, #0x10]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x54]
|
|
ldr r1, [r5, #0x10]
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r1, r0
|
|
str r0, [r5, #0x10]
|
|
ldr r0, [r5, #8]
|
|
add r0, r0, #1
|
|
str r0, [r5, #8]
|
|
cmp r0, #0xf
|
|
blt _021E7CDA
|
|
mov r1, #0
|
|
str r1, [r5, #8]
|
|
str r1, [r5, #0x10]
|
|
ldr r0, [r5, #0xc]
|
|
cmp r0, #0
|
|
bne _021E7CC6
|
|
mov r0, #1
|
|
str r0, [r5, #0xc]
|
|
pop {r4, r5, r6, pc}
|
|
_021E7CC6:
|
|
str r1, [r4, #0x54]
|
|
add r0, r6, #0
|
|
add r1, r4, #0
|
|
bl ov85_021E7FC0
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
mov r2, #0x20
|
|
bl memset
|
|
_021E7CDA:
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021E7CDC: .word 0xFFFFFBBC
|
|
thumb_func_end ov85_021E7C70
|
|
|
|
thumb_func_start ov85_021E7CE0
|
|
ov85_021E7CE0: ; 0x021E7CE0
|
|
push {r4, r5, r6, lr}
|
|
ldr r0, _021E7D04 ; =0x00000AB4
|
|
add r6, r1, #0
|
|
add r5, r6, r0
|
|
mov r4, #0
|
|
_021E7CEA:
|
|
ldr r0, [r5]
|
|
cmp r0, #0
|
|
beq _021E7CF8
|
|
add r0, r6, #0
|
|
add r1, r5, #0
|
|
bl ov85_021E7C70
|
|
_021E7CF8:
|
|
add r4, r4, #1
|
|
add r5, #0x20
|
|
cmp r4, #5
|
|
blt _021E7CEA
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021E7D04: .word 0x00000AB4
|
|
thumb_func_end ov85_021E7CE0
|
|
|
|
thumb_func_start ov85_021E7D08
|
|
ov85_021E7D08: ; 0x021E7D08
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021E7D38 ; =0x00000AB4
|
|
mov r1, #0
|
|
add r0, r4, r0
|
|
mov r2, #0xa0
|
|
bl memset
|
|
mov r2, #1
|
|
ldr r0, _021E7D3C ; =ov85_021E7CE0
|
|
add r1, r4, #0
|
|
lsl r2, r2, #8
|
|
bl CreateSysTask
|
|
mov r1, #0xdb
|
|
lsl r1, r1, #4
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
cmp r0, #0
|
|
bne _021E7D34
|
|
bl GF_AssertFail
|
|
_021E7D34:
|
|
pop {r4, pc}
|
|
nop
|
|
_021E7D38: .word 0x00000AB4
|
|
_021E7D3C: .word ov85_021E7CE0
|
|
thumb_func_end ov85_021E7D08
|
|
|
|
thumb_func_start ov85_021E7D40
|
|
ov85_021E7D40: ; 0x021E7D40
|
|
mov r1, #0xdb
|
|
lsl r1, r1, #4
|
|
ldr r3, _021E7D4C ; =sub_0200E390
|
|
ldr r0, [r0, r1]
|
|
bx r3
|
|
nop
|
|
_021E7D4C: .word DestroySysTask
|
|
thumb_func_end ov85_021E7D40
|
|
|
|
thumb_func_start ov85_021E7D50
|
|
ov85_021E7D50: ; 0x021E7D50
|
|
push {r3, lr}
|
|
ldr r2, _021E7D74 ; =0x00000AB4
|
|
add r3, r0, r2
|
|
mov r2, #0
|
|
_021E7D58:
|
|
ldr r0, [r3]
|
|
cmp r0, #0
|
|
bne _021E7D66
|
|
mov r0, #1
|
|
str r0, [r3]
|
|
str r1, [r3, #0x1c]
|
|
pop {r3, pc}
|
|
_021E7D66:
|
|
add r2, r2, #1
|
|
add r3, #0x20
|
|
cmp r2, #5
|
|
blt _021E7D58
|
|
bl GF_AssertFail
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_021E7D74: .word 0x00000AB4
|
|
thumb_func_end ov85_021E7D50
|
|
|
|
thumb_func_start ov85_021E7D78
|
|
ov85_021E7D78: ; 0x021E7D78
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r1, #0x19
|
|
lsl r1, r1, #4
|
|
add r4, r0, r1
|
|
sub r1, #0x50
|
|
ldr r7, [r0, #0x30]
|
|
str r0, [sp]
|
|
mov r6, #0
|
|
add r5, r4, r1
|
|
_021E7D8A:
|
|
mov r0, #5
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _021E7D9C
|
|
ldr r0, [sp]
|
|
add r1, r5, #0
|
|
bl ov85_021E7D50
|
|
_021E7D9C:
|
|
add r6, r6, #1
|
|
add r4, #0xb0
|
|
add r5, #0xb0
|
|
cmp r6, r7
|
|
blt _021E7D8A
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov85_021E7D78
|
|
|
|
thumb_func_start ov85_021E7DA8
|
|
ov85_021E7DA8: ; 0x021E7DA8
|
|
ldr r1, _021E7DC4 ; =0x00000AB4
|
|
add r2, r0, r1
|
|
mov r1, #0
|
|
_021E7DAE:
|
|
ldr r0, [r2]
|
|
cmp r0, #0
|
|
beq _021E7DB8
|
|
mov r0, #1
|
|
bx lr
|
|
_021E7DB8:
|
|
add r1, r1, #1
|
|
add r2, #0x20
|
|
cmp r1, #5
|
|
blt _021E7DAE
|
|
mov r0, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
_021E7DC4: .word 0x00000AB4
|
|
thumb_func_end ov85_021E7DA8
|
|
|
|
thumb_func_start ov85_021E7DC8
|
|
ov85_021E7DC8: ; 0x021E7DC8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #4]
|
|
ldr r4, [r5, #0x10]
|
|
cmp r0, #0
|
|
beq _021E7DDA
|
|
cmp r0, #1
|
|
beq _021E7DEA
|
|
pop {r3, r4, r5, pc}
|
|
_021E7DDA:
|
|
mov r0, #6
|
|
lsl r0, r0, #0xe
|
|
str r0, [r5, #0xc]
|
|
mov r0, #0
|
|
str r0, [r4, #0x30]
|
|
ldr r0, [r5, #4]
|
|
add r0, r0, #1
|
|
str r0, [r5, #4]
|
|
_021E7DEA:
|
|
add r0, r4, #0
|
|
ldr r1, [r5, #0xc]
|
|
add r0, #0x30
|
|
bl ov85_021E8530
|
|
mov r0, #1
|
|
ldr r1, [r4, #0x30]
|
|
lsl r0, r0, #0xe
|
|
cmp r1, r0
|
|
bge _021E7E16
|
|
ldr r1, [r5, #0xc]
|
|
lsr r1, r1, #1
|
|
str r1, [r5, #0xc]
|
|
cmp r1, r0
|
|
bge _021E7E16
|
|
mov r1, #0
|
|
str r1, [r4, #0x30]
|
|
mov r0, #0x14
|
|
_021E7E0E:
|
|
strb r1, [r5]
|
|
add r5, r5, #1
|
|
sub r0, r0, #1
|
|
bne _021E7E0E
|
|
_021E7E16:
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov85_021E7DC8
|
|
|
|
thumb_func_start ov85_021E7E18
|
|
ov85_021E7E18: ; 0x021E7E18
|
|
push {r3, r4, r5, lr}
|
|
ldr r0, _021E7E38 ; =0x00000B54
|
|
mov r4, #0
|
|
add r5, r1, r0
|
|
_021E7E20:
|
|
ldr r0, [r5]
|
|
cmp r0, #0
|
|
beq _021E7E2C
|
|
add r0, r5, #0
|
|
bl ov85_021E7DC8
|
|
_021E7E2C:
|
|
add r4, r4, #1
|
|
add r5, #0x14
|
|
cmp r4, #5
|
|
blt _021E7E20
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E7E38: .word 0x00000B54
|
|
thumb_func_end ov85_021E7E18
|
|
|
|
thumb_func_start ov85_021E7E3C
|
|
ov85_021E7E3C: ; 0x021E7E3C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021E7E68 ; =0x00000B54
|
|
mov r1, #0
|
|
add r0, r4, r0
|
|
mov r2, #0x64
|
|
bl memset
|
|
ldr r0, _021E7E6C ; =ov85_021E7E18
|
|
ldr r2, _021E7E70 ; =0x00000101
|
|
add r1, r4, #0
|
|
bl CreateSysTask
|
|
ldr r1, _021E7E74 ; =0x00000DB4
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
cmp r0, #0
|
|
bne _021E7E64
|
|
bl GF_AssertFail
|
|
_021E7E64:
|
|
pop {r4, pc}
|
|
nop
|
|
_021E7E68: .word 0x00000B54
|
|
_021E7E6C: .word ov85_021E7E18
|
|
_021E7E70: .word 0x00000101
|
|
_021E7E74: .word 0x00000DB4
|
|
thumb_func_end ov85_021E7E3C
|
|
|
|
thumb_func_start ov85_021E7E78
|
|
ov85_021E7E78: ; 0x021E7E78
|
|
ldr r1, _021E7E80 ; =0x00000DB4
|
|
ldr r3, _021E7E84 ; =sub_0200E390
|
|
ldr r0, [r0, r1]
|
|
bx r3
|
|
.balign 4, 0
|
|
_021E7E80: .word 0x00000DB4
|
|
_021E7E84: .word DestroySysTask
|
|
thumb_func_end ov85_021E7E78
|
|
|
|
thumb_func_start ov85_021E7E88
|
|
ov85_021E7E88: ; 0x021E7E88
|
|
push {r4, lr}
|
|
ldr r2, _021E7ECC ; =0x00000B54
|
|
mov r3, #0
|
|
add r0, r0, r2
|
|
add r4, r0, #0
|
|
_021E7E92:
|
|
ldr r2, [r4]
|
|
cmp r2, #1
|
|
bne _021E7EA4
|
|
ldr r2, [r4, #0x10]
|
|
cmp r2, r1
|
|
bne _021E7EA4
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
pop {r4, pc}
|
|
_021E7EA4:
|
|
add r3, r3, #1
|
|
add r4, #0x14
|
|
cmp r3, #5
|
|
blt _021E7E92
|
|
mov r3, #0
|
|
_021E7EAE:
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
bne _021E7EBC
|
|
mov r2, #1
|
|
str r2, [r0]
|
|
str r1, [r0, #0x10]
|
|
pop {r4, pc}
|
|
_021E7EBC:
|
|
add r3, r3, #1
|
|
add r0, #0x14
|
|
cmp r3, #5
|
|
blt _021E7EAE
|
|
bl GF_AssertFail
|
|
pop {r4, pc}
|
|
nop
|
|
_021E7ECC: .word 0x00000B54
|
|
thumb_func_end ov85_021E7E88
|
|
|
|
thumb_func_start ov85_021E7ED0
|
|
ov85_021E7ED0: ; 0x021E7ED0
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #4]
|
|
ldr r4, [r5, #0x14]
|
|
cmp r0, #0
|
|
beq _021E7EE2
|
|
cmp r0, #1
|
|
beq _021E7EFA
|
|
pop {r4, r5, r6, pc}
|
|
_021E7EE2:
|
|
mov r0, #0
|
|
str r0, [r4, #0x34]
|
|
str r0, [r5, #0x10]
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #0xc
|
|
str r0, [r5, #8]
|
|
mov r0, #5
|
|
lsl r0, r0, #0xe
|
|
str r0, [r5, #0xc]
|
|
ldr r0, [r5, #4]
|
|
add r0, r0, #1
|
|
str r0, [r5, #4]
|
|
_021E7EFA:
|
|
ldr r1, [r5, #0x10]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
lsl r0, r0, #4
|
|
lsr r0, r0, #0x10
|
|
bl GF_SinDegNoWrap
|
|
ldr r2, [r5, #8]
|
|
asr r1, r2, #0xb
|
|
lsr r1, r1, #0x14
|
|
add r1, r2, r1
|
|
asr r2, r1, #0xc
|
|
add r1, r2, #0
|
|
mul r1, r0
|
|
mov r0, #0
|
|
str r0, [r4, #0x34]
|
|
add r0, r4, #0
|
|
add r0, #0x34
|
|
bl ov85_021E8530
|
|
add r0, r5, #0
|
|
ldr r1, [r5, #0xc]
|
|
add r0, #0x10
|
|
ldr r6, [r5, #0x10]
|
|
bl ov85_021E8530
|
|
ldr r0, [r5, #0x10]
|
|
cmp r0, r6
|
|
bge _021E7F4C
|
|
ldr r0, [r5, #8]
|
|
lsr r0, r0, #1
|
|
str r0, [r5, #8]
|
|
bne _021E7F4C
|
|
mov r1, #0
|
|
str r1, [r4, #0x34]
|
|
mov r0, #0x18
|
|
_021E7F44:
|
|
strb r1, [r5]
|
|
add r5, r5, #1
|
|
sub r0, r0, #1
|
|
bne _021E7F44
|
|
_021E7F4C:
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E7ED0
|
|
|
|
thumb_func_start ov85_021E7F50
|
|
ov85_021E7F50: ; 0x021E7F50
|
|
push {r3, r4, r5, lr}
|
|
ldr r0, _021E7F70 ; =0x00000BB8
|
|
mov r4, #0
|
|
add r5, r1, r0
|
|
_021E7F58:
|
|
ldr r0, [r5]
|
|
cmp r0, #0
|
|
beq _021E7F64
|
|
add r0, r5, #0
|
|
bl ov85_021E7ED0
|
|
_021E7F64:
|
|
add r4, r4, #1
|
|
add r5, #0x18
|
|
cmp r4, #5
|
|
blt _021E7F58
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E7F70: .word 0x00000BB8
|
|
thumb_func_end ov85_021E7F50
|
|
|
|
thumb_func_start ov85_021E7F74
|
|
ov85_021E7F74: ; 0x021E7F74
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021E7FA0 ; =0x00000BB8
|
|
mov r1, #0
|
|
add r0, r4, r0
|
|
mov r2, #0x78
|
|
bl memset
|
|
ldr r0, _021E7FA4 ; =ov85_021E7F50
|
|
ldr r2, _021E7FA8 ; =0x00000102
|
|
add r1, r4, #0
|
|
bl CreateSysTask
|
|
ldr r1, _021E7FAC ; =0x00000DB8
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
cmp r0, #0
|
|
bne _021E7F9C
|
|
bl GF_AssertFail
|
|
_021E7F9C:
|
|
pop {r4, pc}
|
|
nop
|
|
_021E7FA0: .word 0x00000BB8
|
|
_021E7FA4: .word ov85_021E7F50
|
|
_021E7FA8: .word 0x00000102
|
|
_021E7FAC: .word 0x00000DB8
|
|
thumb_func_end ov85_021E7F74
|
|
|
|
thumb_func_start ov85_021E7FB0
|
|
ov85_021E7FB0: ; 0x021E7FB0
|
|
ldr r1, _021E7FB8 ; =0x00000DB8
|
|
ldr r3, _021E7FBC ; =sub_0200E390
|
|
ldr r0, [r0, r1]
|
|
bx r3
|
|
.balign 4, 0
|
|
_021E7FB8: .word 0x00000DB8
|
|
_021E7FBC: .word DestroySysTask
|
|
thumb_func_end ov85_021E7FB0
|
|
|
|
thumb_func_start ov85_021E7FC0
|
|
ov85_021E7FC0: ; 0x021E7FC0
|
|
push {r4, lr}
|
|
ldr r2, _021E8004 ; =0x00000BB8
|
|
mov r3, #0
|
|
add r0, r0, r2
|
|
add r4, r0, #0
|
|
_021E7FCA:
|
|
ldr r2, [r4]
|
|
cmp r2, #1
|
|
bne _021E7FDC
|
|
ldr r2, [r4, #0x14]
|
|
cmp r2, r1
|
|
bne _021E7FDC
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
pop {r4, pc}
|
|
_021E7FDC:
|
|
add r3, r3, #1
|
|
add r4, #0x18
|
|
cmp r3, #5
|
|
blt _021E7FCA
|
|
mov r3, #0
|
|
_021E7FE6:
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
bne _021E7FF4
|
|
mov r2, #1
|
|
str r2, [r0]
|
|
str r1, [r0, #0x14]
|
|
pop {r4, pc}
|
|
_021E7FF4:
|
|
add r3, r3, #1
|
|
add r0, #0x18
|
|
cmp r3, #5
|
|
blt _021E7FE6
|
|
bl GF_AssertFail
|
|
pop {r4, pc}
|
|
nop
|
|
_021E8004: .word 0x00000BB8
|
|
thumb_func_end ov85_021E7FC0
|
|
|
|
thumb_func_start ov85_021E8008
|
|
ov85_021E8008: ; 0x021E8008
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
ldr r2, [r4]
|
|
add r1, r0, #0
|
|
add r1, #0xd4
|
|
cmp r2, #5
|
|
bhi _021E80C6
|
|
add r2, r2, r2
|
|
add r2, pc
|
|
ldrh r2, [r2, #6]
|
|
lsl r2, r2, #0x10
|
|
asr r2, r2, #0x10
|
|
add pc, r2
|
|
_021E8022: ; jump table
|
|
.short _021E80C6 - _021E8022 - 2 ; case 0
|
|
.short _021E802E - _021E8022 - 2 ; case 1
|
|
.short _021E803E - _021E8022 - 2 ; case 2
|
|
.short _021E8056 - _021E8022 - 2 ; case 3
|
|
.short _021E807C - _021E8022 - 2 ; case 4
|
|
.short _021E80AE - _021E8022 - 2 ; case 5
|
|
_021E802E:
|
|
mov r0, #1
|
|
lsl r0, r0, #0xe
|
|
str r0, [r4, #0x10]
|
|
mov r0, #0
|
|
str r0, [r4, #0xc]
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
_021E803E:
|
|
mov r0, #1
|
|
ldr r2, [r1, #0x34]
|
|
lsl r0, r0, #0xc
|
|
sub r2, r2, r0
|
|
ldr r0, _021E80C8 ; =0xFFFF8000
|
|
str r2, [r1, #0x34]
|
|
cmp r2, r0
|
|
bgt _021E80C6
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
pop {r4, pc}
|
|
_021E8056:
|
|
mov r2, #2
|
|
ldr r3, [r1, #0x34]
|
|
lsl r2, r2, #0xc
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x34]
|
|
bmi _021E80C6
|
|
mov r2, #0
|
|
str r2, [r1, #0x34]
|
|
bl ov85_021E7D78
|
|
mov r0, #1
|
|
str r0, [r4, #4]
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
ldr r0, _021E80CC ; =0x00000656
|
|
bl PlaySE
|
|
pop {r4, pc}
|
|
_021E807C:
|
|
ldr r0, [r4, #0x10]
|
|
str r0, [r1, #0x28]
|
|
ldr r0, [r4, #0x10]
|
|
neg r0, r0
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r4, #0xc]
|
|
add r2, r0, #1
|
|
mov r0, #3
|
|
str r2, [r4, #0xc]
|
|
tst r0, r2
|
|
bne _021E80C6
|
|
mov r0, #1
|
|
ldr r2, [r4, #0x10]
|
|
lsl r0, r0, #0xc
|
|
cmp r2, r0
|
|
bgt _021E80A8
|
|
mov r0, #0
|
|
str r0, [r1, #0x28]
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
pop {r4, pc}
|
|
_021E80A8:
|
|
asr r0, r2, #1
|
|
str r0, [r4, #0x10]
|
|
pop {r4, pc}
|
|
_021E80AE:
|
|
bl ov85_021E7DA8
|
|
cmp r0, #0
|
|
bne _021E80C6
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
str r0, [r4, #4]
|
|
str r0, [r4]
|
|
mov r0, #0x63
|
|
lsl r0, r0, #4
|
|
bl PlaySE
|
|
_021E80C6:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E80C8: .word 0xFFFF8000
|
|
_021E80CC: .word 0x00000656
|
|
thumb_func_end ov85_021E8008
|
|
|
|
thumb_func_start ov85_021E80D0
|
|
ov85_021E80D0: ; 0x021E80D0
|
|
mov r2, #0xc3
|
|
ldr r3, _021E80DC ; =ov85_021E8008
|
|
lsl r2, r2, #4
|
|
add r0, r1, #0
|
|
add r1, r1, r2
|
|
bx r3
|
|
.balign 4, 0
|
|
_021E80DC: .word ov85_021E8008
|
|
thumb_func_end ov85_021E80D0
|
|
|
|
thumb_func_start ov85_021E80E0
|
|
ov85_021E80E0: ; 0x021E80E0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0xc3
|
|
lsl r0, r0, #4
|
|
add r2, r4, r0
|
|
mov r1, #0x14
|
|
mov r0, #0
|
|
_021E80EE:
|
|
strb r0, [r2]
|
|
add r2, r2, #1
|
|
sub r1, r1, #1
|
|
bne _021E80EE
|
|
ldr r0, _021E8110 ; =ov85_021E80D0
|
|
add r1, r4, #0
|
|
mov r2, #0xff
|
|
bl CreateSysTask
|
|
ldr r1, _021E8114 ; =0x00000DBC
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
cmp r0, #0
|
|
bne _021E810E
|
|
bl GF_AssertFail
|
|
_021E810E:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E8110: .word ov85_021E80D0
|
|
_021E8114: .word 0x00000DBC
|
|
thumb_func_end ov85_021E80E0
|
|
|
|
thumb_func_start ov85_021E8118
|
|
ov85_021E8118: ; 0x021E8118
|
|
ldr r1, _021E8120 ; =0x00000DBC
|
|
ldr r3, _021E8124 ; =sub_0200E390
|
|
ldr r0, [r0, r1]
|
|
bx r3
|
|
.balign 4, 0
|
|
_021E8120: .word 0x00000DBC
|
|
_021E8124: .word DestroySysTask
|
|
thumb_func_end ov85_021E8118
|
|
|
|
thumb_func_start ov85_021E8128
|
|
ov85_021E8128: ; 0x021E8128
|
|
push {r4, lr}
|
|
mov r1, #0xc3
|
|
lsl r1, r1, #4
|
|
add r4, r0, r1
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _021E813A
|
|
bl GF_AssertFail
|
|
_021E813A:
|
|
mov r0, #1
|
|
str r0, [r4, #8]
|
|
str r0, [r4]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E8128
|
|
|
|
thumb_func_start ov85_021E8144
|
|
ov85_021E8144: ; 0x021E8144
|
|
ldr r1, _021E814C ; =0x00000C34
|
|
ldr r0, [r0, r1]
|
|
bx lr
|
|
nop
|
|
_021E814C: .word 0x00000C34
|
|
thumb_func_end ov85_021E8144
|
|
|
|
thumb_func_start ov85_021E8150
|
|
ov85_021E8150: ; 0x021E8150
|
|
ldr r1, _021E8158 ; =0x00000C38
|
|
ldr r0, [r0, r1]
|
|
bx lr
|
|
nop
|
|
_021E8158: .word 0x00000C38
|
|
thumb_func_end ov85_021E8150
|
|
|
|
thumb_func_start ov85_021E815C
|
|
ov85_021E815C: ; 0x021E815C
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _021E8172
|
|
cmp r0, #1
|
|
beq _021E81C6
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
_021E8172:
|
|
ldr r0, [r4, #0xc]
|
|
cmp r0, #4
|
|
bge _021E81A8
|
|
ldr r5, _021E81DC ; =ov85_021EA528
|
|
add r3, sp, #0
|
|
add r2, r3, #0
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r4, #4]
|
|
sub r0, r0, #1
|
|
str r0, [r4, #4]
|
|
cmp r0, #0
|
|
bgt _021E81A8
|
|
mov r0, #0x1e
|
|
str r0, [r4, #4]
|
|
ldr r0, [r4, #0xc]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r2, r0]
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
bl PlaySE
|
|
ldr r0, [r4, #0xc]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0xc]
|
|
_021E81A8:
|
|
mov r1, #6
|
|
ldr r0, [r4, #0x14]
|
|
lsl r1, r1, #0xa
|
|
bl UnkImageStruct_TickSpriteAnimationNFrames
|
|
ldr r0, [r4, #0x14]
|
|
bl sub_0200DCA0
|
|
cmp r0, #0
|
|
bne _021E81D8
|
|
ldr r0, [r4]
|
|
add sp, #0x10
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_021E81C6:
|
|
ldr r0, [r4, #0x14]
|
|
bl sub_0200D9DC
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
_021E81D8:
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E81DC: .word ov85_021EA528
|
|
thumb_func_end ov85_021E815C
|
|
|
|
thumb_func_start ov85_021E81E0
|
|
ov85_021E81E0: ; 0x021E81E0
|
|
push {r4, r5, lr}
|
|
sub sp, #0x34
|
|
add r5, r0, #0
|
|
mov r0, #0x66
|
|
mov r1, #0x18
|
|
bl AllocFromHeapAtEnd
|
|
add r4, r0, #0
|
|
add r2, r4, #0
|
|
mov r1, #0x18
|
|
mov r0, #0
|
|
_021E81F6:
|
|
strb r0, [r2]
|
|
add r2, r2, #1
|
|
sub r1, r1, #1
|
|
bne _021E81F6
|
|
mov r1, #0x80
|
|
add r0, sp, #0
|
|
strh r1, [r0]
|
|
mov r1, #0x64
|
|
strh r1, [r0, #2]
|
|
mov r1, #0
|
|
strh r1, [r0, #4]
|
|
strh r1, [r0, #6]
|
|
mov r0, #1
|
|
str r0, [sp, #0x10]
|
|
mov r0, #4
|
|
str r0, [sp, #0x14]
|
|
mov r0, #5
|
|
str r0, [sp, #0x18]
|
|
mov r0, #6
|
|
str r0, [sp, #0x1c]
|
|
mov r0, #7
|
|
str r0, [sp, #0x20]
|
|
sub r0, #8
|
|
str r1, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
str r1, [sp, #0x2c]
|
|
str r1, [sp, #0x30]
|
|
str r0, [sp, #0x24]
|
|
str r0, [sp, #0x28]
|
|
add r0, r5, #0
|
|
add r1, sp, #0
|
|
bl ov85_021E7044
|
|
str r0, [r4, #0x14]
|
|
bl UnkImageStruct_TickSpriteAnimation1Frame
|
|
ldr r0, _021E8258 ; =ov85_021E815C
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
str r5, [r4, #0x10]
|
|
bl CreateSysTask
|
|
add r4, r0, #0
|
|
bne _021E8252
|
|
bl GF_AssertFail
|
|
_021E8252:
|
|
add r0, r4, #0
|
|
add sp, #0x34
|
|
pop {r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E8258: .word ov85_021E815C
|
|
thumb_func_end ov85_021E81E0
|
|
|
|
thumb_func_start ov85_021E825C
|
|
ov85_021E825C: ; 0x021E825C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldrh r1, [r4]
|
|
add r5, r0, #0
|
|
cmp r1, #4
|
|
bhi _021E82DC
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021E8274: ; jump table
|
|
.short _021E82DC - _021E8274 - 2 ; case 0
|
|
.short _021E827E - _021E8274 - 2 ; case 1
|
|
.short _021E8292 - _021E8274 - 2 ; case 2
|
|
.short _021E82AE - _021E8274 - 2 ; case 3
|
|
.short _021E82C8 - _021E8274 - 2 ; case 4
|
|
_021E827E:
|
|
bl ov85_021E6DF0
|
|
ldr r0, _021E82E0 ; =0x000005E4
|
|
bl PlaySE
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
ldrh r0, [r4]
|
|
add r0, r0, #1
|
|
strh r0, [r4]
|
|
_021E8292:
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
cmp r0, #2
|
|
blt _021E82DC
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
ldrh r0, [r4]
|
|
add r0, r0, #1
|
|
strh r0, [r4]
|
|
add r0, r5, #0
|
|
bl ov85_021E6E08
|
|
pop {r3, r4, r5, pc}
|
|
_021E82AE:
|
|
ldr r1, [r4, #4]
|
|
add r1, r1, #1
|
|
str r1, [r4, #4]
|
|
cmp r1, #4
|
|
blt _021E82DC
|
|
bl ov85_021E6DF0
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
ldrh r0, [r4]
|
|
add r0, r0, #1
|
|
strh r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_021E82C8:
|
|
ldr r1, [r4, #4]
|
|
add r1, r1, #1
|
|
str r1, [r4, #4]
|
|
cmp r1, #2
|
|
blt _021E82DC
|
|
bl ov85_021E6DFC
|
|
mov r0, #0
|
|
strh r0, [r4, #2]
|
|
strh r0, [r4]
|
|
_021E82DC:
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E82E0: .word 0x000005E4
|
|
thumb_func_end ov85_021E825C
|
|
|
|
thumb_func_start ov85_021E82E4
|
|
ov85_021E82E4: ; 0x021E82E4
|
|
ldr r2, _021E82F0 ; =0x00000C44
|
|
ldr r3, _021E82F4 ; =ov85_021E825C
|
|
add r0, r1, #0
|
|
add r1, r1, r2
|
|
bx r3
|
|
nop
|
|
_021E82F0: .word 0x00000C44
|
|
_021E82F4: .word ov85_021E825C
|
|
thumb_func_end ov85_021E82E4
|
|
|
|
thumb_func_start ov85_021E82F8
|
|
ov85_021E82F8: ; 0x021E82F8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021E8330 ; =0x00000C44
|
|
ldr r2, _021E8334 ; =0x00000103
|
|
add r1, r4, r0
|
|
mov r0, #0
|
|
strb r0, [r1]
|
|
strb r0, [r1, #1]
|
|
strb r0, [r1, #2]
|
|
strb r0, [r1, #3]
|
|
strb r0, [r1, #4]
|
|
strb r0, [r1, #5]
|
|
strb r0, [r1, #6]
|
|
strb r0, [r1, #7]
|
|
ldr r0, _021E8338 ; =ov85_021E82E4
|
|
add r1, r4, #0
|
|
bl CreateSysTask
|
|
mov r1, #0x37
|
|
lsl r1, r1, #6
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
cmp r0, #0
|
|
bne _021E832C
|
|
bl GF_AssertFail
|
|
_021E832C:
|
|
pop {r4, pc}
|
|
nop
|
|
_021E8330: .word 0x00000C44
|
|
_021E8334: .word 0x00000103
|
|
_021E8338: .word ov85_021E82E4
|
|
thumb_func_end ov85_021E82F8
|
|
|
|
thumb_func_start ov85_021E833C
|
|
ov85_021E833C: ; 0x021E833C
|
|
mov r1, #0x37
|
|
lsl r1, r1, #6
|
|
ldr r3, _021E8348 ; =sub_0200E390
|
|
ldr r0, [r0, r1]
|
|
bx r3
|
|
nop
|
|
_021E8348: .word DestroySysTask
|
|
thumb_func_end ov85_021E833C
|
|
|
|
thumb_func_start ov85_021E834C
|
|
ov85_021E834C: ; 0x021E834C
|
|
ldr r1, _021E8354 ; =0x00000C46
|
|
ldrh r0, [r0, r1]
|
|
bx lr
|
|
nop
|
|
_021E8354: .word 0x00000C46
|
|
thumb_func_end ov85_021E834C
|
|
|
|
thumb_func_start ov85_021E8358
|
|
ov85_021E8358: ; 0x021E8358
|
|
push {r4, lr}
|
|
ldr r1, _021E8370 ; =0x00000C44
|
|
add r4, r0, r1
|
|
ldrh r0, [r4, #2]
|
|
cmp r0, #0
|
|
beq _021E8368
|
|
bl GF_AssertFail
|
|
_021E8368:
|
|
mov r0, #1
|
|
strh r0, [r4, #2]
|
|
strh r0, [r4]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E8370: .word 0x00000C44
|
|
thumb_func_end ov85_021E8358
|
|
|
|
thumb_func_start ov85_021E8374
|
|
ov85_021E8374: ; 0x021E8374
|
|
ldr r0, [r1]
|
|
cmp r0, #0
|
|
beq _021E83BA
|
|
cmp r0, #1
|
|
beq _021E8384
|
|
cmp r0, #2
|
|
beq _021E83A8
|
|
bx lr
|
|
_021E8384:
|
|
ldr r0, [r1, #4]
|
|
lsl r2, r0, #2
|
|
ldr r0, _021E83BC ; =_021EAA80
|
|
ldr r0, [r0, r2]
|
|
lsl r2, r0, #0xc
|
|
ldr r0, [r1, #0xc]
|
|
str r2, [r0, #0x54]
|
|
ldr r0, [r1, #4]
|
|
add r0, r0, #1
|
|
str r0, [r1, #4]
|
|
cmp r0, #0x10
|
|
blt _021E83BA
|
|
mov r0, #0
|
|
str r0, [r1, #4]
|
|
ldr r0, [r1]
|
|
add r0, r0, #1
|
|
str r0, [r1]
|
|
bx lr
|
|
_021E83A8:
|
|
ldr r0, [r1, #8]
|
|
add r0, r0, #1
|
|
str r0, [r1, #8]
|
|
cmp r0, #0xf
|
|
blt _021E83BA
|
|
mov r0, #0
|
|
str r0, [r1, #8]
|
|
mov r0, #1
|
|
str r0, [r1]
|
|
_021E83BA:
|
|
bx lr
|
|
.balign 4, 0
|
|
_021E83BC: .word _021EAA80
|
|
thumb_func_end ov85_021E8374
|
|
|
|
thumb_func_start ov85_021E83C0
|
|
ov85_021E83C0: ; 0x021E83C0
|
|
push {r4, r5, r6, lr}
|
|
ldr r0, _021E83DC ; =0x00000C4C
|
|
add r6, r1, #0
|
|
add r5, r6, r0
|
|
mov r4, #0
|
|
_021E83CA:
|
|
add r0, r6, #0
|
|
add r1, r5, #0
|
|
bl ov85_021E8374
|
|
add r4, r4, #1
|
|
add r5, #0x10
|
|
cmp r4, #5
|
|
blt _021E83CA
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021E83DC: .word 0x00000C4C
|
|
thumb_func_end ov85_021E83C0
|
|
|
|
thumb_func_start ov85_021E83E0
|
|
ov85_021E83E0: ; 0x021E83E0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021E840C ; =0x00000C4C
|
|
mov r1, #0
|
|
add r0, r4, r0
|
|
mov r2, #0x50
|
|
bl memset
|
|
mov r2, #0x41
|
|
ldr r0, _021E8410 ; =ov85_021E83C0
|
|
add r1, r4, #0
|
|
lsl r2, r2, #2
|
|
bl CreateSysTask
|
|
ldr r1, _021E8414 ; =0x00000DC4
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
cmp r0, #0
|
|
bne _021E840A
|
|
bl GF_AssertFail
|
|
_021E840A:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E840C: .word 0x00000C4C
|
|
_021E8410: .word ov85_021E83C0
|
|
_021E8414: .word 0x00000DC4
|
|
thumb_func_end ov85_021E83E0
|
|
|
|
thumb_func_start ov85_021E8418
|
|
ov85_021E8418: ; 0x021E8418
|
|
ldr r1, _021E8420 ; =0x00000DC4
|
|
ldr r3, _021E8424 ; =sub_0200E390
|
|
ldr r0, [r0, r1]
|
|
bx r3
|
|
.balign 4, 0
|
|
_021E8420: .word 0x00000DC4
|
|
_021E8424: .word DestroySysTask
|
|
thumb_func_end ov85_021E8418
|
|
|
|
thumb_func_start ov85_021E8428
|
|
ov85_021E8428: ; 0x021E8428
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
ldr r1, _021E8450 ; =0x00000C4C
|
|
ldr r2, [r5, #0xc]
|
|
add r1, r0, r1
|
|
lsl r0, r2, #4
|
|
add r4, r1, r0
|
|
cmp r2, #5
|
|
blt _021E843E
|
|
bl GF_AssertFail
|
|
_021E843E:
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _021E8448
|
|
bl GF_AssertFail
|
|
_021E8448:
|
|
mov r0, #1
|
|
str r0, [r4]
|
|
str r5, [r4, #0xc]
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E8450: .word 0x00000C4C
|
|
thumb_func_end ov85_021E8428
|
|
|
|
thumb_func_start ov85_021E8454
|
|
ov85_021E8454: ; 0x021E8454
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
str r0, [sp]
|
|
ldr r0, [r0, #0x20]
|
|
mov r1, #0x19
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp]
|
|
lsl r1, r1, #4
|
|
ldr r7, [r0, #0x30]
|
|
mov r6, #0
|
|
add r4, r0, r1
|
|
cmp r7, #0
|
|
ble _021E84A0
|
|
sub r1, #0x50
|
|
add r5, r4, r1
|
|
_021E8472:
|
|
mov r0, #5
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _021E8496
|
|
mov r0, #0x53
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
mov r0, #1
|
|
add r2, r0, #0
|
|
lsl r2, r1
|
|
ldr r0, [sp, #4]
|
|
tst r0, r2
|
|
beq _021E8496
|
|
ldr r0, [sp]
|
|
add r1, r5, #0
|
|
bl ov85_021E8428
|
|
_021E8496:
|
|
add r6, r6, #1
|
|
add r4, #0xb0
|
|
add r5, #0xb0
|
|
cmp r6, r7
|
|
blt _021E8472
|
|
_021E84A0:
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov85_021E8454
|
|
|
|
thumb_func_start ov85_021E84A4
|
|
ov85_021E84A4: ; 0x021E84A4
|
|
push {r4, r5, r6, lr}
|
|
add r5, r1, #0
|
|
add r6, r0, #0
|
|
ldr r0, [r5, #4]
|
|
mov r4, #0
|
|
cmp r0, #1
|
|
ldr r0, [r5, #8]
|
|
bne _021E84C2
|
|
sub r0, r0, #1
|
|
str r0, [r5, #8]
|
|
cmp r0, #0
|
|
bgt _021E84D0
|
|
str r4, [r5, #8]
|
|
mov r4, #1
|
|
b _021E84D0
|
|
_021E84C2:
|
|
add r0, r0, #1
|
|
str r0, [r5, #8]
|
|
cmp r0, #8
|
|
blt _021E84D0
|
|
mov r0, #8
|
|
str r0, [r5, #8]
|
|
mov r4, #1
|
|
_021E84D0:
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, #8]
|
|
bl ov85_021E6EA8
|
|
cmp r4, #1
|
|
bne _021E84E8
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
_021E84E8:
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E84A4
|
|
|
|
thumb_func_start ov85_021E84EC
|
|
ov85_021E84EC: ; 0x021E84EC
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
ldr r0, _021E8528 ; =ov85_021EA4F0
|
|
add r4, r1, #0
|
|
ldr r1, [r0, #0x1c]
|
|
ldr r0, [r0, #0x20]
|
|
str r1, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #0x66
|
|
mov r1, #0xc
|
|
bl AllocFromHeapAtEnd
|
|
add r1, r0, #0
|
|
str r5, [r1]
|
|
lsl r2, r4, #2
|
|
add r0, sp, #0
|
|
ldr r0, [r0, r2]
|
|
str r4, [r1, #4]
|
|
str r0, [r1, #8]
|
|
ldr r0, _021E852C ; =ov85_021E84A4
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
cmp r0, #0
|
|
bne _021E8524
|
|
bl GF_AssertFail
|
|
_021E8524:
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E8528: .word ov85_021EA4F0
|
|
_021E852C: .word ov85_021E84A4
|
|
thumb_func_end ov85_021E84EC
|
|
|
|
thumb_func_start ov85_021E8530
|
|
ov85_021E8530: ; 0x021E8530
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
add r0, r0, r1
|
|
str r0, [r4]
|
|
bpl _021E8548
|
|
mov r0, #0x5a
|
|
lsl r0, r0, #0xe
|
|
_021E8540:
|
|
ldr r1, [r4]
|
|
add r1, r1, r0
|
|
str r1, [r4]
|
|
bmi _021E8540
|
|
_021E8548:
|
|
mov r1, #0x5a
|
|
ldr r0, [r4]
|
|
lsl r1, r1, #0xe
|
|
bl _s32_div_f
|
|
str r1, [r4]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E8530
|
|
|
|
thumb_func_start ov85_021E8558
|
|
ov85_021E8558: ; 0x021E8558
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r0, #0xd4
|
|
bl ov85_021E7644
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov85_021E78A4
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E8558
|
|
|
|
thumb_func_start ov85_021E8570
|
|
ov85_021E8570: ; 0x021E8570
|
|
ldr r1, [r0, #8]
|
|
add r2, r1, #1
|
|
mov r1, #0x96
|
|
lsl r1, r1, #2
|
|
str r2, [r0, #8]
|
|
cmp r2, r1
|
|
bge _021E8582
|
|
mov r0, #0
|
|
bx lr
|
|
_021E8582:
|
|
str r1, [r0, #8]
|
|
mov r0, #1
|
|
bx lr
|
|
thumb_func_end ov85_021E8570
|
|
|
|
thumb_func_start ov85_021E8588
|
|
ov85_021E8588: ; 0x021E8588
|
|
push {r4, r5, r6, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x36
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
add r6, r1, #0
|
|
add r5, r2, #0
|
|
bl NARC_GetMemberSize
|
|
add r1, r0, #0
|
|
cmp r5, #1
|
|
bne _021E85A8
|
|
mov r0, #0x66
|
|
bl AllocFromHeap
|
|
b _021E85AE
|
|
_021E85A8:
|
|
mov r0, #0x66
|
|
bl AllocFromHeapAtEnd
|
|
_021E85AE:
|
|
add r5, r0, #0
|
|
mov r0, #0x36
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
add r1, r6, #0
|
|
add r2, r5, #0
|
|
bl NARC_ReadWholeMember
|
|
add r0, r5, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E8588
|
|
|
|
thumb_func_start ov85_021E85C4
|
|
ov85_021E85C4: ; 0x021E85C4
|
|
cmp r1, #0
|
|
beq _021E85CA
|
|
str r1, [r0, #0x34]
|
|
_021E85CA:
|
|
bx lr
|
|
thumb_func_end ov85_021E85C4
|
|
|
|
thumb_func_start ov85_021E85CC
|
|
ov85_021E85CC: ; 0x021E85CC
|
|
mov r2, #1
|
|
str r2, [r0, #0x3c]
|
|
ldrh r3, [r1]
|
|
add r2, r0, #0
|
|
add r2, #0x58
|
|
strh r3, [r2]
|
|
add r2, r0, #0
|
|
ldrh r3, [r1, #2]
|
|
add r2, #0x5a
|
|
strh r3, [r2]
|
|
add r2, r0, #0
|
|
ldrh r3, [r1, #4]
|
|
add r2, #0x5c
|
|
add r0, #0x5e
|
|
strh r3, [r2]
|
|
ldrh r1, [r1, #6]
|
|
strh r1, [r0]
|
|
bx lr
|
|
thumb_func_end ov85_021E85CC
|
|
|
|
thumb_func_start ov85_021E85F0
|
|
ov85_021E85F0: ; 0x021E85F0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
cmp r1, #0x20
|
|
blo _021E85FC
|
|
bl GF_AssertFail
|
|
_021E85FC:
|
|
add r0, r4, #0
|
|
add r0, #0xac
|
|
mov r1, #0
|
|
mov r2, #0x20
|
|
bl memset
|
|
add r4, #0xac
|
|
add r0, r4, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E85F0
|
|
|
|
thumb_func_start ov85_021E8610
|
|
ov85_021E8610: ; 0x021E8610
|
|
add r0, #0xac
|
|
bx lr
|
|
thumb_func_end ov85_021E8610
|
|
|
|
thumb_func_start ov85_021E8614
|
|
ov85_021E8614: ; 0x021E8614
|
|
add r0, #0xd0
|
|
ldr r0, [r0]
|
|
add r0, #0x40
|
|
ldrh r0, [r0]
|
|
tst r0, r1
|
|
beq _021E8624
|
|
mov r0, #1
|
|
bx lr
|
|
_021E8624:
|
|
mov r0, #0
|
|
bx lr
|
|
thumb_func_end ov85_021E8614
|
|
|
|
thumb_func_start ov85_021E8628
|
|
ov85_021E8628: ; 0x021E8628
|
|
push {r3, r4}
|
|
add r1, r0, #0
|
|
add r0, #0xd0
|
|
ldr r0, [r0]
|
|
add r1, #0xcc
|
|
ldr r1, [r1]
|
|
add r0, #0x42
|
|
ldr r1, [r1, #8]
|
|
ldrh r4, [r0]
|
|
mov r2, #0
|
|
sub r3, r1, #1
|
|
cmp r4, #0
|
|
beq _021E864E
|
|
mov r0, #1
|
|
_021E8644:
|
|
add r1, r4, #0
|
|
and r1, r0
|
|
add r2, r2, r1
|
|
lsr r4, r4, #1
|
|
bne _021E8644
|
|
_021E864E:
|
|
cmp r2, r3
|
|
blt _021E8658
|
|
mov r0, #1
|
|
pop {r3, r4}
|
|
bx lr
|
|
_021E8658:
|
|
mov r0, #0
|
|
pop {r3, r4}
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E8628
|
|
|
|
thumb_func_start ov85_021E8660
|
|
ov85_021E8660: ; 0x021E8660
|
|
add r0, #0xd0
|
|
ldr r0, [r0]
|
|
mov r2, #0
|
|
add r0, #0x42
|
|
ldrh r3, [r0]
|
|
cmp r3, #0
|
|
beq _021E867A
|
|
mov r0, #1
|
|
_021E8670:
|
|
add r1, r3, #0
|
|
and r1, r0
|
|
add r2, r2, r1
|
|
lsr r3, r3, #1
|
|
bne _021E8670
|
|
_021E867A:
|
|
add r0, r2, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E8660
|
|
|
|
thumb_func_start ov85_021E8680
|
|
ov85_021E8680: ; 0x021E8680
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldrh r0, [r4]
|
|
ldrh r1, [r4]
|
|
lsl r2, r0, #2
|
|
add r0, r5, r2
|
|
add r0, #0x70
|
|
strh r1, [r0]
|
|
add r0, r5, r2
|
|
ldrh r1, [r4, #2]
|
|
add r0, #0x72
|
|
strh r1, [r0]
|
|
bl sub_0203769C
|
|
ldrh r1, [r4, #2]
|
|
cmp r1, r0
|
|
bne _021E86A8
|
|
ldrh r0, [r4]
|
|
str r0, [r5, #0x2c]
|
|
_021E86A8:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E8680
|
|
|
|
thumb_func_start ov85_021E86AC
|
|
ov85_021E86AC: ; 0x021E86AC
|
|
str r1, [r0, #0x30]
|
|
bx lr
|
|
thumb_func_end ov85_021E86AC
|
|
|
|
thumb_func_start ov85_021E86B0
|
|
ov85_021E86B0: ; 0x021E86B0
|
|
cmp r1, #0
|
|
beq _021E86C8
|
|
add r0, #0xd0
|
|
ldr r0, [r0]
|
|
add r0, #0x42
|
|
ldrh r2, [r0]
|
|
mov r0, #1
|
|
lsl r0, r1
|
|
tst r0, r2
|
|
bne _021E86C8
|
|
mov r0, #0
|
|
bx lr
|
|
_021E86C8:
|
|
mov r0, #1
|
|
bx lr
|
|
thumb_func_end ov85_021E86B0
|
|
|
|
thumb_func_start ov85_021E86CC
|
|
ov85_021E86CC: ; 0x021E86CC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r4, r0, #0
|
|
add r0, #0xd0
|
|
ldr r0, [r0]
|
|
add r5, r1, #0
|
|
ldr r6, [r4, #0x24]
|
|
bl sub_02097018
|
|
add r7, r0, #0
|
|
lsl r0, r5, #2
|
|
add r0, r4, r0
|
|
add r4, #0xcc
|
|
ldr r1, [r4]
|
|
ldr r5, [r0, #0x44]
|
|
ldr r1, [r1, #4]
|
|
add r0, r6, #0
|
|
bl Party_GetMonByIndex
|
|
add r4, r0, #0
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
bl Party_GetMonByIndex
|
|
add r5, r0, #0
|
|
bl sub_0203769C
|
|
bl sub_02034818
|
|
add r1, r0, #0
|
|
mov r0, #0xb
|
|
str r0, [sp]
|
|
add r0, r5, #0
|
|
mov r2, #5
|
|
mov r3, #0
|
|
bl MonSetTrainerMemo
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl CopyPokemonToPokemon
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E86CC
|
|
|
|
thumb_func_start ov85_021E8720
|
|
ov85_021E8720: ; 0x021E8720
|
|
add r0, #0xd0
|
|
ldr r1, [r0]
|
|
mov r0, #0x46
|
|
ldrsh r3, [r1, r0]
|
|
mov r2, #0
|
|
cmp r3, #0
|
|
beq _021E873A
|
|
mov r0, #1
|
|
_021E8730:
|
|
add r1, r3, #0
|
|
and r1, r0
|
|
add r2, r2, r1
|
|
lsr r3, r3, #1
|
|
bne _021E8730
|
|
_021E873A:
|
|
add r0, r2, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E8720
|
|
|
|
thumb_func_start ov85_021E8740
|
|
ov85_021E8740: ; 0x021E8740
|
|
lsl r1, r1, #2
|
|
add r0, r0, r1
|
|
str r2, [r0, #0x44]
|
|
bx lr
|
|
thumb_func_end ov85_021E8740
|
|
|
|
thumb_func_start ov85_021E8748
|
|
ov85_021E8748: ; 0x021E8748
|
|
push {r3, r4}
|
|
add r4, r0, #0
|
|
add r4, #0x60
|
|
mov r3, #8
|
|
_021E8750:
|
|
ldrh r2, [r1]
|
|
add r1, r1, #2
|
|
strh r2, [r4]
|
|
add r4, r4, #2
|
|
sub r3, r3, #1
|
|
bne _021E8750
|
|
mov r1, #1
|
|
str r1, [r0, #0x40]
|
|
pop {r3, r4}
|
|
bx lr
|
|
thumb_func_end ov85_021E8748
|
|
|
|
thumb_func_start ov85_021E8764
|
|
ov85_021E8764: ; 0x021E8764
|
|
push {r0, r1, r2, r3}
|
|
push {r3, r4, r5, lr}
|
|
mov r1, #0x11
|
|
add r3, r0, #0
|
|
lsl r1, r1, #4
|
|
ldr r1, [r3, r1]
|
|
add r0, sp, #0x14
|
|
neg r1, r1
|
|
add r4, r2, #0
|
|
bl ov85_021E8530
|
|
ldr r0, [sp, #0x14]
|
|
ldr r1, _021E87E8 ; =0xFFFFC000
|
|
str r0, [sp]
|
|
add r0, sp, #0
|
|
bl ov85_021E8530
|
|
ldr r1, [sp]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
asr r5, r0, #0xc
|
|
ldr r0, [sp, #0x14]
|
|
mov r1, #5
|
|
str r0, [sp]
|
|
add r0, sp, #0
|
|
lsl r1, r1, #0xc
|
|
bl ov85_021E8530
|
|
ldr r1, [sp]
|
|
ldr r2, _021E87EC ; =ov85_021EA758
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
lsl r1, r4, #3
|
|
add r3, r2, r1
|
|
ldr r2, [r2, r1]
|
|
asr r0, r0, #0xc
|
|
ldr r3, [r3, #4]
|
|
cmp r2, #0
|
|
beq _021E87DC
|
|
_021E87B6:
|
|
ldrh r4, [r3]
|
|
cmp r5, r4
|
|
blo _021E87C2
|
|
ldrh r1, [r3, #2]
|
|
cmp r5, r1
|
|
bls _021E87CC
|
|
_021E87C2:
|
|
cmp r0, r4
|
|
blo _021E87D6
|
|
ldrh r1, [r3, #2]
|
|
cmp r0, r1
|
|
bhi _021E87D6
|
|
_021E87CC:
|
|
mov r0, #1
|
|
pop {r3, r4, r5}
|
|
pop {r3}
|
|
add sp, #0x10
|
|
bx r3
|
|
_021E87D6:
|
|
add r3, r3, #4
|
|
sub r2, r2, #1
|
|
bne _021E87B6
|
|
_021E87DC:
|
|
mov r0, #0
|
|
pop {r3, r4, r5}
|
|
pop {r3}
|
|
add sp, #0x10
|
|
bx r3
|
|
nop
|
|
_021E87E8: .word 0xFFFFC000
|
|
_021E87EC: .word ov85_021EA758
|
|
thumb_func_end ov85_021E8764
|
|
|
|
thumb_func_start ov85_021E87F0
|
|
ov85_021E87F0: ; 0x021E87F0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
bl Party_GetCount
|
|
add r6, r0, #0
|
|
mov r5, #0
|
|
cmp r6, #0
|
|
ble _021E882E
|
|
_021E8800:
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
bl Party_GetMonByIndex
|
|
mov r1, #0x4c
|
|
mov r2, #0
|
|
add r4, r0, #0
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _021E8828
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
mov r2, #0
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _021E8828
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E8828:
|
|
add r5, r5, #1
|
|
cmp r5, r6
|
|
blt _021E8800
|
|
_021E882E:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E87F0
|
|
|
|
thumb_func_start ov85_021E8834
|
|
ov85_021E8834: ; 0x021E8834
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0x24]
|
|
bl ov85_021E87F0
|
|
cmp r0, #1
|
|
bne _021E8846
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021E8846:
|
|
mov r4, #0
|
|
_021E8848:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov85_021E86B0
|
|
cmp r0, #0
|
|
beq _021E886C
|
|
add r0, r5, #0
|
|
add r0, #0xd0
|
|
ldr r0, [r0]
|
|
add r1, r4, #0
|
|
bl sub_02097018
|
|
bl ov85_021E87F0
|
|
cmp r0, #1
|
|
bne _021E886C
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021E886C:
|
|
add r4, r4, #1
|
|
cmp r4, #5
|
|
blt _021E8848
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E8834
|
|
|
|
thumb_func_start ov85_021E8878
|
|
ov85_021E8878: ; 0x021E8878
|
|
add r0, #0xd0
|
|
ldr r0, [r0]
|
|
mov r2, #0
|
|
add r0, #0x4a
|
|
ldrh r3, [r0]
|
|
cmp r3, #0
|
|
beq _021E8892
|
|
mov r0, #1
|
|
_021E8888:
|
|
add r1, r3, #0
|
|
and r1, r0
|
|
add r2, r2, r1
|
|
lsr r3, r3, #1
|
|
bne _021E8888
|
|
_021E8892:
|
|
add r0, r2, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E8878
|
|
|
|
thumb_func_start ov85_021E8898
|
|
ov85_021E8898: ; 0x021E8898
|
|
add r0, #0xd0
|
|
ldr r0, [r0]
|
|
add r0, #0x48
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
beq _021E88A8
|
|
mov r0, #1
|
|
bx lr
|
|
_021E88A8:
|
|
mov r0, #0
|
|
bx lr
|
|
thumb_func_end ov85_021E8898
|
|
|
|
thumb_func_start ov85_021E88AC
|
|
ov85_021E88AC: ; 0x021E88AC
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r5, r1, #0
|
|
add r4, r0, #0
|
|
bl OverlayManager_GetArgs
|
|
add r6, r0, #0
|
|
ldr r0, [r5]
|
|
cmp r0, #0
|
|
beq _021E88C8
|
|
cmp r0, #1
|
|
bne _021E88C6
|
|
b _021E89E4
|
|
_021E88C6:
|
|
b _021E89EE
|
|
_021E88C8:
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl Main_SetVBlankIntrCB
|
|
bl HBlankInterruptDisable
|
|
bl GfGfx_DisableEngineAPlanes
|
|
bl GfGfx_DisableEngineBPlanes
|
|
mov r2, #1
|
|
lsl r2, r2, #0x1a
|
|
ldr r1, [r2]
|
|
ldr r0, _021E89F4 ; =0xFFFFE0FF
|
|
and r1, r0
|
|
str r1, [r2]
|
|
ldr r2, _021E89F8 ; =0x04001000
|
|
ldr r1, [r2]
|
|
and r0, r1
|
|
str r0, [r2]
|
|
mov r0, #3
|
|
mov r1, #0x66
|
|
lsl r2, r2, #7
|
|
bl CreateHeap
|
|
mov r0, #0xd9
|
|
mov r1, #0x66
|
|
bl NARC_New
|
|
add r7, r0, #0
|
|
bne _021E890A
|
|
bl GF_AssertFail
|
|
_021E890A:
|
|
ldr r1, _021E89FC ; =0x00004AB0
|
|
add r0, r4, #0
|
|
mov r2, #0x66
|
|
bl OverlayManager_CreateAndGetData
|
|
ldr r2, _021E89FC ; =0x00004AB0
|
|
add r4, r0, #0
|
|
mov r1, #0
|
|
bl memset
|
|
str r4, [r6, #0x38]
|
|
str r6, [r4, #0xc]
|
|
ldr r0, [r6, #0x30]
|
|
str r0, [r4, #0x10]
|
|
mov r0, #0x66
|
|
bl BgConfig_Alloc
|
|
str r0, [r4, #0x14]
|
|
mov r0, #0x66
|
|
bl MessageFormat_New
|
|
str r0, [r4, #0x34]
|
|
mov r0, #0
|
|
mov r1, #0x1b
|
|
mov r2, #0xcf
|
|
mov r3, #0x66
|
|
bl NewMsgDataFromNarc
|
|
str r0, [r4, #0x38]
|
|
mov r0, #4
|
|
mov r1, #8
|
|
bl SetKeyRepeatTimers
|
|
bl ov85_021E8C3C
|
|
ldr r0, [r4, #0x14]
|
|
bl ov85_021E8C5C
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0x66
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, #0x11
|
|
add r2, r1, #0
|
|
add r3, r0, #0
|
|
bl BeginNormalPaletteFade
|
|
add r0, r4, #0
|
|
add r1, r7, #0
|
|
bl ov85_021E8E6C
|
|
ldr r0, _021E8A00 ; =ov85_021E8C14
|
|
add r1, r4, #0
|
|
bl Main_SetVBlankIntrCB
|
|
add r0, r4, #0
|
|
add r1, r7, #0
|
|
bl ov85_021E8D64
|
|
bl ov85_021E8F58
|
|
add r0, r4, #0
|
|
add r1, r7, #0
|
|
bl ov85_021E8F88
|
|
add r0, r4, #0
|
|
bl ov85_021E9084
|
|
add r0, r4, #0
|
|
bl ov85_021E9160
|
|
mov r1, #0
|
|
mov r0, #0x34
|
|
add r2, r1, #0
|
|
bl sub_02004EC4
|
|
ldr r0, [r6, #0x30]
|
|
bl sub_02096CE0
|
|
bl sub_0203897C
|
|
mov r0, #3
|
|
bl sub_02038C1C
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
bne _021E89C6
|
|
mov r0, #0xd
|
|
bl sub_0205A904
|
|
_021E89C6:
|
|
bl sub_0203A880
|
|
ldr r0, _021E8A04 ; =ov85_021E8BB0
|
|
add r1, r4, #0
|
|
mov r2, #5
|
|
bl sub_0200E33C
|
|
str r0, [r4, #0x30]
|
|
add r0, r7, #0
|
|
bl NARC_Delete
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _021E89EE
|
|
_021E89E4:
|
|
mov r0, #0
|
|
str r0, [r5]
|
|
add sp, #0xc
|
|
mov r0, #1
|
|
pop {r4, r5, r6, r7, pc}
|
|
_021E89EE:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E89F4: .word 0xFFFFE0FF
|
|
_021E89F8: .word 0x04001000
|
|
_021E89FC: .word 0x00004AB0
|
|
_021E8A00: .word ov85_021E8C14
|
|
_021E8A04: .word ov85_021E8BB0
|
|
thumb_func_end ov85_021E88AC
|
|
|
|
thumb_func_start ov85_021E8A08
|
|
ov85_021E8A08: ; 0x021E8A08
|
|
push {r4, lr}
|
|
bl OverlayManager_GetData
|
|
add r4, r0, #0
|
|
bl System_GetTouchNew
|
|
cmp r0, #0
|
|
beq _021E8A1E
|
|
ldr r0, _021E8AFC ; =gSystem
|
|
mov r1, #1
|
|
str r1, [r0, #0x5c]
|
|
_021E8A1E:
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
bne _021E8A3A
|
|
ldr r0, [r4, #0x10]
|
|
ldr r0, [r0, #0x30]
|
|
cmp r0, #0
|
|
beq _021E8A3A
|
|
bl sub_02033250
|
|
ldr r2, [r4, #0x10]
|
|
ldr r1, [r2, #0x30]
|
|
and r0, r1
|
|
str r0, [r2, #0x30]
|
|
_021E8A3A:
|
|
ldr r1, [r4]
|
|
cmp r1, #3
|
|
bhi _021E8AF0
|
|
add r0, r1, r1
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021E8A4C: ; jump table
|
|
.short _021E8A54 - _021E8A4C - 2 ; case 0
|
|
.short _021E8A7E - _021E8A4C - 2 ; case 1
|
|
.short _021E8ACC - _021E8A4C - 2 ; case 2
|
|
.short _021E8AE4 - _021E8A4C - 2 ; case 3
|
|
_021E8A54:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _021E8AF0
|
|
mov r0, #1
|
|
str r0, [r4]
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
beq _021E8AF0
|
|
bl ov85_021E9FD0
|
|
cmp r0, #2
|
|
ble _021E8AF0
|
|
mov r2, #0
|
|
ldr r0, [r4, #0x10]
|
|
mov r1, #4
|
|
add r3, r2, #0
|
|
bl sub_02096D4C
|
|
b _021E8AF0
|
|
_021E8A7E:
|
|
mov r0, #0xd5
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
lsl r2, r0, #2
|
|
ldr r0, _021E8B00 ; =ov85_021EA9E0
|
|
ldr r2, [r0, r2]
|
|
cmp r2, #0
|
|
beq _021E8A94
|
|
add r0, r4, #0
|
|
blx r2
|
|
str r0, [r4]
|
|
_021E8A94:
|
|
ldr r0, [r4, #0x10]
|
|
ldr r0, [r0, #0x24]
|
|
cmp r0, #0
|
|
bne _021E8AAC
|
|
mov r0, #0xaa
|
|
lsl r0, r0, #2
|
|
ldr r2, _021E8B04 ; =0x00010300
|
|
add r0, r4, r0
|
|
mov r1, #0
|
|
add r3, r4, #0
|
|
bl ov85_021E9EC0
|
|
_021E8AAC:
|
|
add r0, r4, #0
|
|
bl ov85_021EA1AC
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
bne _021E8AF0
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov85_021EA3F0
|
|
ldr r1, [r4]
|
|
cmp r1, #1
|
|
bne _021E8AF0
|
|
str r0, [r4]
|
|
b _021E8AF0
|
|
_021E8ACC:
|
|
mov r0, #0xd5
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
lsl r2, r0, #2
|
|
ldr r0, _021E8B00 ; =ov85_021EA9E0
|
|
ldr r2, [r0, r2]
|
|
cmp r2, #0
|
|
beq _021E8AF0
|
|
add r0, r4, #0
|
|
blx r2
|
|
str r0, [r4]
|
|
b _021E8AF0
|
|
_021E8AE4:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _021E8AF0
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E8AF0:
|
|
ldr r0, [r4, #0x60]
|
|
bl sub_0202457C
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_021E8AFC: .word gSystem
|
|
_021E8B00: .word ov85_021EA9E0
|
|
_021E8B04: .word 0x00010300
|
|
thumb_func_end ov85_021E8A08
|
|
|
|
thumb_func_start ov85_021E8B08
|
|
ov85_021E8B08: ; 0x021E8B08
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
str r0, [sp]
|
|
bl OverlayManager_GetData
|
|
add r6, r0, #0
|
|
ldr r0, [r6, #0x30]
|
|
bl DestroySysTask
|
|
mov r0, #0x6f
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
bl sub_0200AEB0
|
|
mov r0, #7
|
|
lsl r0, r0, #6
|
|
ldr r0, [r6, r0]
|
|
bl sub_0200B0A8
|
|
mov r7, #0x63
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
lsl r7, r7, #2
|
|
_021E8B34:
|
|
ldr r0, [r5, r7]
|
|
bl Destroy2DGfxResObjMan
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _021E8B34
|
|
ldr r0, [r6, #0x60]
|
|
bl SpriteList_Delete
|
|
bl OamManager_Free
|
|
bl sub_0202168C
|
|
bl sub_02022608
|
|
add r0, r6, #0
|
|
bl ov85_021E9288
|
|
ldr r0, [r6, #0x14]
|
|
bl ov85_021E8E38
|
|
ldr r0, [r6, #0x38]
|
|
bl DestroyMsgData
|
|
ldr r0, [r6, #0x34]
|
|
bl MessageFormat_Delete
|
|
ldr r2, _021E8BAC ; =0x04000304
|
|
ldrh r1, [r2]
|
|
lsr r0, r2, #0xb
|
|
orr r0, r1
|
|
strh r0, [r2]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl Main_SetVBlankIntrCB
|
|
ldr r1, [r6, #8]
|
|
ldr r0, [r6, #0xc]
|
|
str r1, [r0, #0x10]
|
|
bl ov85_021E9FD0
|
|
ldr r1, [r6, #0xc]
|
|
str r0, [r1, #8]
|
|
bl ov85_021E9FEC
|
|
ldr r1, [r6, #0xc]
|
|
str r0, [r1, #0xc]
|
|
add r0, r6, #0
|
|
bl ov85_021E8E00
|
|
ldr r0, [sp]
|
|
bl OverlayManager_FreeData
|
|
mov r0, #0x66
|
|
bl DestroyHeap
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E8BAC: .word 0x04000304
|
|
thumb_func_end ov85_021E8B08
|
|
|
|
thumb_func_start ov85_021E8BB0
|
|
ov85_021E8BB0: ; 0x021E8BB0
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
ldr r0, [r4, #0x1c]
|
|
add r1, #0x1c
|
|
cmp r0, #0
|
|
beq _021E8C0A
|
|
ldr r0, [r1, #4]
|
|
ldr r3, [r1, #8]
|
|
lsl r2, r0, #1
|
|
ldr r0, _021E8C0C ; =ov85_021EA8EA
|
|
ldrb r0, [r0, r2]
|
|
cmp r3, r0
|
|
ble _021E8BFA
|
|
mov r0, #0
|
|
str r0, [r1, #8]
|
|
ldr r2, [r1, #4]
|
|
add r2, r2, #1
|
|
str r2, [r1, #4]
|
|
lsl r3, r2, #1
|
|
ldr r2, _021E8C10 ; =ov85_021EA8EB
|
|
ldrb r2, [r2, r3]
|
|
cmp r2, #0xff
|
|
bne _021E8BE0
|
|
str r0, [r1, #4]
|
|
_021E8BE0:
|
|
ldr r0, [r1, #0x10]
|
|
ldr r1, [r1, #4]
|
|
ldr r0, [r0, #0xc]
|
|
lsl r2, r1, #1
|
|
ldr r1, _021E8C10 ; =ov85_021EA8EB
|
|
ldrb r1, [r1, r2]
|
|
mov r2, #0x20
|
|
lsl r1, r1, #5
|
|
add r0, r0, r1
|
|
mov r1, #0
|
|
bl GX_LoadOBJPltt
|
|
b _021E8C00
|
|
_021E8BFA:
|
|
ldr r0, [r4, #0x24]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x24]
|
|
_021E8C00:
|
|
mov r0, #0xed
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl ov85_021E9E58
|
|
_021E8C0A:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E8C0C: .word ov85_021EA8EA
|
|
_021E8C10: .word ov85_021EA8EB
|
|
thumb_func_end ov85_021E8BB0
|
|
|
|
thumb_func_start ov85_021E8C14
|
|
ov85_021E8C14: ; 0x021E8C14
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl GF_RunVramTransferTasks
|
|
bl OamManager_ApplyAndResetBuffers
|
|
add r0, r4, #0
|
|
bl DoScheduledBgGpuUpdates
|
|
ldr r3, _021E8C34 ; =0x027E0000
|
|
ldr r1, _021E8C38 ; =0x00003FF8
|
|
mov r0, #1
|
|
ldr r2, [r3, r1]
|
|
orr r0, r2
|
|
str r0, [r3, r1]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E8C34: .word 0x027E0000
|
|
_021E8C38: .word 0x00003FF8
|
|
thumb_func_end ov85_021E8C14
|
|
|
|
thumb_func_start ov85_021E8C3C
|
|
ov85_021E8C3C: ; 0x021E8C3C
|
|
push {r4, lr}
|
|
sub sp, #0x28
|
|
ldr r4, _021E8C58 ; =ov85_021EA9B8
|
|
add r3, sp, #0
|
|
mov r2, #5
|
|
_021E8C46:
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _021E8C46
|
|
add r0, sp, #0
|
|
bl GfGfx_SetBanks
|
|
add sp, #0x28
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E8C58: .word ov85_021EA9B8
|
|
thumb_func_end ov85_021E8C3C
|
|
|
|
thumb_func_start ov85_021E8C5C
|
|
ov85_021E8C5C: ; 0x021E8C5C
|
|
push {r4, r5, lr}
|
|
sub sp, #0x9c
|
|
ldr r5, _021E8D4C ; =ov85_021EA8F4
|
|
add r3, sp, #0x8c
|
|
add r4, r0, #0
|
|
add r2, r3, #0
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
add r0, r2, #0
|
|
bl SetBothScreensModesAndDisable
|
|
ldr r5, _021E8D50 ; =ov85_021EA980
|
|
add r3, sp, #0x70
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
mov r1, #4
|
|
str r0, [r3]
|
|
add r0, r4, #0
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
bl BgClearTilemapBufferAndCommit
|
|
ldr r5, _021E8D54 ; =ov85_021EA99C
|
|
add r3, sp, #0x54
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
mov r1, #5
|
|
str r0, [r3]
|
|
add r0, r4, #0
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
add r0, r4, #0
|
|
mov r1, #5
|
|
bl BgClearTilemapBufferAndCommit
|
|
ldr r5, _021E8D58 ; =ov85_021EA92C
|
|
add r3, sp, #0x38
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
mov r1, #6
|
|
str r0, [r3]
|
|
add r0, r4, #0
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
ldr r5, _021E8D5C ; =ov85_021EA948
|
|
add r3, sp, #0x1c
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
mov r1, #0
|
|
str r0, [r3]
|
|
add r0, r4, #0
|
|
add r3, r1, #0
|
|
bl InitBgFromTemplate
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl BgClearTilemapBufferAndCommit
|
|
ldr r5, _021E8D60 ; =ov85_021EA964
|
|
add r3, sp, #0
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
str r0, [r3]
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
mov r0, #0
|
|
mov r1, #0x20
|
|
add r2, r0, #0
|
|
mov r3, #0x66
|
|
bl BG_ClearCharDataRange
|
|
mov r0, #4
|
|
mov r1, #0x20
|
|
mov r2, #0
|
|
mov r3, #0x66
|
|
bl BG_ClearCharDataRange
|
|
add sp, #0x9c
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_021E8D4C: .word ov85_021EA8F4
|
|
_021E8D50: .word ov85_021EA980
|
|
_021E8D54: .word ov85_021EA99C
|
|
_021E8D58: .word ov85_021EA92C
|
|
_021E8D5C: .word ov85_021EA948
|
|
_021E8D60: .word ov85_021EA964
|
|
thumb_func_end ov85_021E8C5C
|
|
|
|
thumb_func_start ov85_021E8D64
|
|
ov85_021E8D64: ; 0x021E8D64
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
str r1, [sp]
|
|
mov r6, #0
|
|
add r4, r7, #0
|
|
add r5, r7, #0
|
|
_021E8D70:
|
|
mov r0, #8
|
|
mov r1, #0x66
|
|
bl String_New
|
|
str r0, [r4, #0x3c]
|
|
mov r0, #0xdd
|
|
mov r1, #0
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
add r0, r0, #4
|
|
str r1, [r5, r0]
|
|
mov r0, #0xe7
|
|
lsl r0, r0, #2
|
|
str r1, [r4, r0]
|
|
add r6, r6, #1
|
|
add r4, r4, #4
|
|
add r5, #8
|
|
cmp r6, #5
|
|
blt _021E8D70
|
|
mov r0, #0xb4
|
|
mov r1, #0x66
|
|
bl String_New
|
|
str r0, [r7, #0x54]
|
|
mov r0, #0x28
|
|
mov r1, #0x66
|
|
bl String_New
|
|
str r0, [r7, #0x58]
|
|
mov r0, #0xd5
|
|
mov r1, #0
|
|
lsl r0, r0, #2
|
|
str r1, [r7, r0]
|
|
ldr r0, [r7, #0x38]
|
|
ldr r2, [r7, #0x58]
|
|
mov r1, #0x11
|
|
bl ReadMsgDataIntoString
|
|
ldr r1, [sp]
|
|
add r0, r7, #0
|
|
bl ov85_021EA2C0
|
|
mov r0, #0x66
|
|
bl sub_0205B4A4
|
|
mov r1, #0xee
|
|
lsl r1, r1, #2
|
|
str r0, [r7, r1]
|
|
mov r0, #0
|
|
str r0, [r7, #0x1c]
|
|
str r0, [r7, #0x24]
|
|
str r0, [r7, #0x20]
|
|
add r2, r7, #0
|
|
ldr r0, [sp]
|
|
mov r1, #1
|
|
add r2, #0x2c
|
|
mov r3, #0x66
|
|
bl GfGfxLoader_GetPlttDataFromOpenNarc
|
|
str r0, [r7, #0x28]
|
|
ldr r0, _021E8DFC ; =0x00004A44
|
|
mov r1, #0
|
|
str r1, [r7, r0]
|
|
mov r0, #0x33
|
|
lsl r0, r0, #4
|
|
str r1, [r7, r0]
|
|
ldr r0, [r7, #0x10]
|
|
mov r1, #2
|
|
str r1, [r0, #0x2c]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E8DFC: .word 0x00004A44
|
|
thumb_func_end ov85_021E8D64
|
|
|
|
thumb_func_start ov85_021E8E00
|
|
ov85_021E8E00: ; 0x021E8E00
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
bl ov85_021EA368
|
|
ldr r0, [r6, #0x28]
|
|
bl FreeToHeap
|
|
mov r0, #0xee
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
bl FreeToHeap
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
_021E8E1C:
|
|
ldr r0, [r5, #0x3c]
|
|
bl String_Delete
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #5
|
|
blt _021E8E1C
|
|
ldr r0, [r6, #0x58]
|
|
bl String_Delete
|
|
ldr r0, [r6, #0x54]
|
|
bl String_Delete
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov85_021E8E00
|
|
|
|
thumb_func_start ov85_021E8E38
|
|
ov85_021E8E38: ; 0x021E8E38
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r1, #6
|
|
bl FreeBgTilemapBuffer
|
|
add r0, r4, #0
|
|
mov r1, #5
|
|
bl FreeBgTilemapBuffer
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
bl FreeBgTilemapBuffer
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl FreeBgTilemapBuffer
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl FreeBgTilemapBuffer
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E8E38
|
|
|
|
thumb_func_start ov85_021E8E6C
|
|
ov85_021E8E6C: ; 0x021E8E6C
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
mov r0, #2
|
|
ldr r4, [r5, #0x14]
|
|
lsl r0, r0, #8
|
|
add r6, r1, #0
|
|
mov r1, #0
|
|
str r0, [sp]
|
|
mov r0, #0x66
|
|
str r0, [sp, #4]
|
|
add r0, r6, #0
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl GfGfxLoader_GXLoadPalFromOpenNarc
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
mov r0, #0x66
|
|
str r0, [sp, #4]
|
|
mov r0, #0xe
|
|
mov r1, #0x47
|
|
mov r2, #4
|
|
mov r3, #0
|
|
bl GfGfxLoader_GXLoadPal
|
|
mov r1, #0x1a
|
|
mov r0, #0
|
|
lsl r1, r1, #4
|
|
mov r2, #0x66
|
|
bl LoadFontPal1
|
|
mov r1, #0x1a
|
|
mov r0, #4
|
|
lsl r1, r1, #4
|
|
mov r2, #0x66
|
|
bl LoadFontPal1
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x66
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xe
|
|
mov r1, #0xa
|
|
add r2, r4, #0
|
|
mov r3, #6
|
|
bl GfGfxLoader_LoadCharData
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x66
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xe
|
|
mov r1, #0xb
|
|
add r2, r4, #0
|
|
mov r3, #6
|
|
bl GfGfxLoader_LoadScrnData
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0x66
|
|
str r0, [sp, #0xc]
|
|
add r0, r6, #0
|
|
mov r1, #2
|
|
add r2, r4, #0
|
|
bl GfGfxLoader_LoadCharDataFromOpenNarc
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #6
|
|
lsl r0, r0, #8
|
|
str r0, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0x66
|
|
str r0, [sp, #0xc]
|
|
add r0, r6, #0
|
|
mov r1, #3
|
|
add r2, r4, #0
|
|
bl GfGfxLoader_LoadScrnDataFromOpenNarc
|
|
ldr r0, [r5, #0xc]
|
|
ldr r0, [r0, #0x24]
|
|
bl Options_GetFrame
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
mov r0, #0x66
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #1
|
|
mov r3, #0xa
|
|
bl LoadUserFrameGfx2
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #0x66
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
mov r2, #0x1f
|
|
mov r3, #0xb
|
|
bl LoadUserFrameGfx1
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov85_021E8E6C
|
|
|
|
thumb_func_start ov85_021E8F58
|
|
ov85_021E8F58: ; 0x021E8F58
|
|
push {r4, lr}
|
|
sub sp, #0x10
|
|
ldr r4, _021E8F84 ; =ov85_021EA904
|
|
add r3, sp, #0
|
|
add r2, r3, #0
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
add r0, r2, #0
|
|
bl sub_020215A0
|
|
mov r0, #0x14
|
|
mov r1, #0x66
|
|
bl sub_02022588
|
|
bl sub_020216C8
|
|
bl sub_02022638
|
|
add sp, #0x10
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E8F84: .word ov85_021EA904
|
|
thumb_func_end ov85_021E8F58
|
|
|
|
thumb_func_start ov85_021E8F88
|
|
ov85_021E8F88: ; 0x021E8F88
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r6, r0, #0
|
|
str r1, [sp, #0x14]
|
|
bl NNS_G2dInitOamManagerModule
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r1, #0x7e
|
|
str r1, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r3, #0x20
|
|
str r3, [sp, #0xc]
|
|
mov r2, #0x66
|
|
str r2, [sp, #0x10]
|
|
add r2, r0, #0
|
|
bl OamManager_Create
|
|
add r1, r6, #0
|
|
mov r0, #0x1e
|
|
add r1, #0x64
|
|
mov r2, #0x66
|
|
bl G2dRenderer_Init
|
|
str r0, [r6, #0x60]
|
|
cmp r0, #0
|
|
bne _021E8FC2
|
|
bl GF_AssertFail
|
|
_021E8FC2:
|
|
add r0, r6, #0
|
|
mov r2, #1
|
|
add r0, #0x64
|
|
mov r1, #0
|
|
lsl r2, r2, #0x14
|
|
bl G2dRenderer_SetSubSurfaceCoords
|
|
mov r7, #0x63
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
lsl r7, r7, #2
|
|
_021E8FD8:
|
|
mov r0, #3
|
|
add r1, r4, #0
|
|
mov r2, #0x66
|
|
bl Create2DGfxResObjMan
|
|
str r0, [r5, r7]
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _021E8FD8
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
mov r3, #1
|
|
str r3, [sp, #4]
|
|
mov r0, #0x66
|
|
str r0, [sp, #8]
|
|
mov r0, #0x63
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
ldr r1, [sp, #0x14]
|
|
mov r2, #0xc
|
|
bl AddCharResObjFromOpenNarc
|
|
mov r1, #0x6f
|
|
lsl r1, r1, #2
|
|
str r0, [r6, r1]
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
mov r2, #1
|
|
str r2, [sp, #4]
|
|
mov r0, #0xf
|
|
str r0, [sp, #8]
|
|
mov r0, #0x66
|
|
sub r1, #0x2c
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r6, r1]
|
|
ldr r1, [sp, #0x14]
|
|
mov r3, #0
|
|
bl AddPlttResObjFromOpenNarc
|
|
mov r1, #7
|
|
lsl r1, r1, #6
|
|
str r0, [r6, r1]
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #0x66
|
|
sub r1, #0x2c
|
|
str r0, [sp, #8]
|
|
ldr r0, [r6, r1]
|
|
ldr r1, [sp, #0x14]
|
|
mov r2, #0xd
|
|
mov r3, #1
|
|
bl AddCellOrAnimResObjFromOpenNarc
|
|
mov r1, #0x71
|
|
lsl r1, r1, #2
|
|
str r0, [r6, r1]
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
mov r0, #3
|
|
str r0, [sp, #4]
|
|
mov r0, #0x66
|
|
str r0, [sp, #8]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
ldr r1, [sp, #0x14]
|
|
mov r2, #0xe
|
|
mov r3, #1
|
|
bl AddCellOrAnimResObjFromOpenNarc
|
|
mov r1, #0x72
|
|
lsl r1, r1, #2
|
|
str r0, [r6, r1]
|
|
sub r1, #0xc
|
|
ldr r0, [r6, r1]
|
|
bl sub_0200ACF0
|
|
mov r0, #7
|
|
lsl r0, r0, #6
|
|
ldr r0, [r6, r0]
|
|
bl sub_0200AF94
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E8F88
|
|
|
|
thumb_func_start ov85_021E9084
|
|
ov85_021E9084: ; 0x021E9084
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x5c
|
|
mov r1, #2
|
|
add r5, r0, #0
|
|
str r1, [sp]
|
|
sub r0, r1, #3
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
mov r3, #0x63
|
|
str r0, [sp, #0xc]
|
|
mov r2, #1
|
|
lsl r3, r3, #2
|
|
str r2, [sp, #0x10]
|
|
ldr r2, [r5, r3]
|
|
str r2, [sp, #0x14]
|
|
add r2, r3, #4
|
|
ldr r2, [r5, r2]
|
|
str r2, [sp, #0x18]
|
|
add r2, r3, #0
|
|
add r2, #8
|
|
ldr r2, [r5, r2]
|
|
str r2, [sp, #0x1c]
|
|
add r2, r3, #0
|
|
add r2, #0xc
|
|
ldr r2, [r5, r2]
|
|
add r3, #0x88
|
|
str r2, [sp, #0x20]
|
|
str r0, [sp, #0x24]
|
|
str r0, [sp, #0x28]
|
|
add r0, r5, r3
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl CreateSpriteResourcesHeader
|
|
ldr r0, [r5, #0x60]
|
|
mov r6, #0
|
|
str r0, [sp, #0x2c]
|
|
mov r0, #0x85
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
str r0, [sp, #0x30]
|
|
mov r0, #1
|
|
lsl r0, r0, #0xc
|
|
mov r7, #0x8f
|
|
str r6, [sp, #0x3c]
|
|
str r0, [sp, #0x40]
|
|
str r0, [sp, #0x44]
|
|
str r0, [sp, #0x48]
|
|
add r0, sp, #0x2c
|
|
strh r6, [r0, #0x20]
|
|
mov r0, #1
|
|
str r0, [sp, #0x50]
|
|
str r0, [sp, #0x54]
|
|
mov r0, #0x66
|
|
ldr r4, _021E915C ; =ov85_021EA914
|
|
str r0, [sp, #0x58]
|
|
lsl r7, r7, #2
|
|
_021E90F8:
|
|
ldrh r0, [r4, #4]
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp, #0x34]
|
|
ldrh r0, [r4, #6]
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp, #0x38]
|
|
add r0, sp, #0x2c
|
|
bl CreateSprite
|
|
mov r1, #0x8f
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
add r0, r1, #0
|
|
ldr r0, [r5, r0]
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimActiveFlag
|
|
mov r0, #0x8f
|
|
lsl r0, r0, #2
|
|
sub r1, r6, #1
|
|
lsl r1, r1, #1
|
|
ldr r0, [r5, r0]
|
|
add r1, #0x1b
|
|
bl Set2dSpriteAnimSeqNo
|
|
ldr r0, [r5, r7]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
add r6, r6, #1
|
|
add r4, r4, #4
|
|
add r5, r5, #4
|
|
cmp r6, #5
|
|
blt _021E90F8
|
|
mov r0, #6
|
|
lsl r0, r0, #0xe
|
|
str r0, [sp, #0x34]
|
|
mov r0, #0x1a
|
|
lsl r0, r0, #0x10
|
|
str r0, [sp, #0x38]
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl GfGfx_EngineATogglePlanes
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl GfGfx_EngineBTogglePlanes
|
|
add sp, #0x5c
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E915C: .word ov85_021EA914
|
|
thumb_func_end ov85_021E9084
|
|
|
|
thumb_func_start ov85_021E9160
|
|
ov85_021E9160: ; 0x021E9160
|
|
push {r3, r4, lr}
|
|
sub sp, #0x14
|
|
add r4, r0, #0
|
|
mov r0, #0x14
|
|
str r0, [sp]
|
|
mov r0, #6
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
mov r0, #0xd
|
|
str r0, [sp, #0xc]
|
|
ldr r0, _021E923C ; =0x000001C3
|
|
mov r1, #0xc2
|
|
str r0, [sp, #0x10]
|
|
lsl r1, r1, #2
|
|
ldr r0, [r4, #0x14]
|
|
add r1, r4, r1
|
|
mov r2, #5
|
|
mov r3, #0x1a
|
|
bl AddWindowParameterized
|
|
mov r0, #0xc2
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
mov r0, #0x13
|
|
str r0, [sp]
|
|
mov r0, #0x1b
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
mov r0, #0xd
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x28
|
|
mov r1, #0xbe
|
|
str r0, [sp, #0x10]
|
|
lsl r1, r1, #2
|
|
ldr r0, [r4, #0x14]
|
|
add r1, r4, r1
|
|
mov r2, #0
|
|
mov r3, #2
|
|
bl AddWindowParameterized
|
|
mov r0, #0xbe
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
mov r1, #0xf
|
|
bl FillWindowPixelBuffer
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #0x1a
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
mov r0, #0xf
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x94
|
|
mov r1, #0xc6
|
|
str r0, [sp, #0x10]
|
|
lsl r1, r1, #2
|
|
ldr r0, [r4, #0x14]
|
|
add r1, r4, r1
|
|
mov r2, #0
|
|
mov r3, #3
|
|
bl AddWindowParameterized
|
|
mov r0, #0xc6
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, #0x58]
|
|
add r0, r4, r0
|
|
mov r2, #0
|
|
bl ov85_021E9244
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r0, #0x10
|
|
str r0, [sp, #4]
|
|
mov r0, #0xb
|
|
str r0, [sp, #8]
|
|
mov r0, #0xf
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xc8
|
|
mov r1, #0xaa
|
|
str r0, [sp, #0x10]
|
|
lsl r1, r1, #2
|
|
ldr r0, [r4, #0x14]
|
|
add r1, r4, r1
|
|
mov r2, #0
|
|
mov r3, #2
|
|
bl AddWindowParameterized
|
|
mov r0, #0xaa
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
mov r0, #0xaa
|
|
lsl r0, r0, #2
|
|
ldr r2, _021E9240 ; =0x00010300
|
|
add r0, r4, r0
|
|
mov r1, #0
|
|
add r3, r4, #0
|
|
bl ov85_021E9EC0
|
|
add sp, #0x14
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
_021E923C: .word 0x000001C3
|
|
_021E9240: .word 0x00010300
|
|
thumb_func_end ov85_021E9160
|
|
|
|
thumb_func_start ov85_021E9244
|
|
ov85_021E9244: ; 0x021E9244
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
add r4, r2, #0
|
|
mov r0, #1
|
|
mov r2, #0
|
|
add r7, r1, #0
|
|
bl FontID_String_GetWidth
|
|
add r6, r0, #0
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
mov r1, #1
|
|
str r1, [sp]
|
|
mov r0, #0x41
|
|
mov r3, #0xd0
|
|
str r4, [sp, #4]
|
|
sub r4, r3, r6
|
|
lsl r0, r0, #0xa
|
|
lsr r3, r4, #0x1f
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
add r3, r4, r3
|
|
str r0, [sp, #0xc]
|
|
add r0, r5, #0
|
|
add r2, r7, #0
|
|
asr r3, r3, #1
|
|
bl AddTextPrinterParameterized2
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E9244
|
|
|
|
thumb_func_start ov85_021E9288
|
|
ov85_021E9288: ; 0x021E9288
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0xaa
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl RemoveWindow
|
|
mov r0, #0xc6
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl RemoveWindow
|
|
mov r0, #0xc2
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl RemoveWindow
|
|
mov r0, #0xbe
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl RemoveWindow
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E9288
|
|
|
|
thumb_func_start ov85_021E92B8
|
|
ov85_021E92B8: ; 0x021E92B8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl sub_020398D4
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
bne _021E92E2
|
|
bl sub_02037454
|
|
cmp r0, #2
|
|
blt _021E92EC
|
|
add r0, r5, #0
|
|
mov r1, #2
|
|
mov r2, #0
|
|
bl ov85_021EA0EC
|
|
b _021E92EC
|
|
_021E92E2:
|
|
add r0, r5, #0
|
|
mov r1, #8
|
|
mov r2, #0
|
|
bl ov85_021EA0EC
|
|
_021E92EC:
|
|
add r0, r5, #0
|
|
mov r1, #3
|
|
bl ov85_021E9458
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov85_021E92B8
|
|
|
|
thumb_func_start ov85_021E92F8
|
|
ov85_021E92F8: ; 0x021E92F8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl ov85_021E9324
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
bne _021E931A
|
|
bl ov85_021E9EA4
|
|
cmp r0, #1
|
|
beq _021E9320
|
|
add r0, r5, #0
|
|
bl ov85_021E9FCC
|
|
b _021E9320
|
|
_021E931A:
|
|
add r0, r5, #0
|
|
bl ov85_021E9FCC
|
|
_021E9320:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov85_021E92F8
|
|
|
|
thumb_func_start ov85_021E9324
|
|
ov85_021E9324: ; 0x021E9324
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021E9430 ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #1
|
|
tst r0, r1
|
|
beq _021E9384
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
bne _021E942E
|
|
ldr r5, [r4, #0x10]
|
|
bl ov85_021E9FD0
|
|
ldr r1, [r5, #0x2c]
|
|
cmp r1, r0
|
|
bne _021E937C
|
|
ldr r0, [r5, #0x30]
|
|
cmp r0, #0
|
|
bne _021E937C
|
|
mov r1, #1
|
|
add r0, sp, #0
|
|
strb r1, [r0, #2]
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
mov r2, #0
|
|
bl ov85_021EA0EC
|
|
add r0, r4, #0
|
|
mov r1, #0x16
|
|
bl ov85_021E9458
|
|
add r2, sp, #0
|
|
ldr r0, [r4, #0x10]
|
|
mov r1, #7
|
|
add r2, #2
|
|
mov r3, #1
|
|
bl sub_02096D4C
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov85_021EA39C
|
|
pop {r3, r4, r5, pc}
|
|
_021E937C:
|
|
ldr r0, _021E9434 ; =0x000005F2
|
|
bl PlaySE
|
|
pop {r3, r4, r5, pc}
|
|
_021E9384:
|
|
mov r0, #2
|
|
tst r0, r1
|
|
beq _021E9400
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
beq _021E93B6
|
|
ldr r0, [r4, #0x10]
|
|
ldr r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
bne _021E93AE
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
mov r2, #0
|
|
bl ov85_021EA0EC
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
bl ov85_021E9458
|
|
pop {r3, r4, r5, pc}
|
|
_021E93AE:
|
|
ldr r0, _021E9434 ; =0x000005F2
|
|
bl PlaySE
|
|
pop {r3, r4, r5, pc}
|
|
_021E93B6:
|
|
ldr r5, [r4, #0x10]
|
|
bl sub_02037454
|
|
ldr r1, [r5, #0x2c]
|
|
cmp r1, r0
|
|
bne _021E93F8
|
|
ldr r0, [r5, #0x30]
|
|
cmp r0, #0
|
|
bne _021E93F8
|
|
mov r1, #1
|
|
add r0, sp, #0
|
|
strb r1, [r0, #1]
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
mov r2, #0
|
|
bl ov85_021EA0EC
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
bl ov85_021E9458
|
|
add r2, sp, #0
|
|
ldr r0, [r4, #0x10]
|
|
mov r1, #7
|
|
add r2, #1
|
|
mov r3, #1
|
|
bl sub_02096D4C
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov85_021EA39C
|
|
pop {r3, r4, r5, pc}
|
|
_021E93F8:
|
|
ldr r0, _021E9434 ; =0x000005F2
|
|
bl PlaySE
|
|
pop {r3, r4, r5, pc}
|
|
_021E9400:
|
|
ldr r0, _021E9438 ; =0x00004A48
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
bne _021E942E
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
bne _021E942E
|
|
bl sub_02037454
|
|
ldr r1, [r4, #0x10]
|
|
ldr r1, [r1, #0x2c]
|
|
cmp r1, r0
|
|
bne _021E942E
|
|
mov r1, #0
|
|
add r0, sp, #0
|
|
strb r1, [r0]
|
|
ldr r0, [r4, #0x10]
|
|
mov r1, #7
|
|
add r2, sp, #0
|
|
mov r3, #1
|
|
bl sub_02096D4C
|
|
_021E942E:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E9430: .word gSystem
|
|
_021E9434: .word 0x000005F2
|
|
_021E9438: .word 0x00004A48
|
|
thumb_func_end ov85_021E9324
|
|
|
|
thumb_func_start ov85_021E943C
|
|
ov85_021E943C: ; 0x021E943C
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E943C
|
|
|
|
thumb_func_start ov85_021E9440
|
|
ov85_021E9440: ; 0x021E9440
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
mov r1, #2
|
|
bl ov85_021E9458
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E9440
|
|
|
|
thumb_func_start ov85_021E9458
|
|
ov85_021E9458: ; 0x021E9458
|
|
mov r2, #0xd5
|
|
mov r3, #0x1e
|
|
lsl r2, r2, #2
|
|
str r3, [r0, r2]
|
|
add r2, r2, #4
|
|
str r1, [r0, r2]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E9458
|
|
|
|
thumb_func_start ov85_021E9468
|
|
ov85_021E9468: ; 0x021E9468
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0x5c]
|
|
add r4, r1, #0
|
|
bl ov85_021EA17C
|
|
cmp r0, #0
|
|
beq _021E9482
|
|
mov r0, #0xd6
|
|
lsl r0, r0, #2
|
|
ldr r1, [r5, r0]
|
|
sub r0, r0, #4
|
|
str r1, [r5, r0]
|
|
_021E9482:
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov85_021E9468
|
|
|
|
thumb_func_start ov85_021E948C
|
|
ov85_021E948C: ; 0x021E948C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
bne _021E94AA
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, [r5, #0x10]
|
|
mov r1, #7
|
|
add r2, sp, #0
|
|
mov r3, #1
|
|
bl sub_02096D4C
|
|
_021E94AA:
|
|
mov r0, #0xd5
|
|
mov r1, #3
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov85_021E948C
|
|
|
|
thumb_func_start ov85_021E94BC
|
|
ov85_021E94BC: ; 0x021E94BC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x66
|
|
add r4, r1, #0
|
|
str r0, [sp]
|
|
ldr r0, [r5, #0x14]
|
|
ldr r1, _021E94E8 ; =ov85_021EA8D8
|
|
mov r2, #0x1f
|
|
mov r3, #0xb
|
|
bl Std_CreateYesNoMenu
|
|
mov r1, #0x33
|
|
lsl r1, r1, #4
|
|
str r0, [r5, r1]
|
|
mov r0, #5
|
|
add r1, #0x24
|
|
str r0, [r5, r1]
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E94E8: .word ov85_021EA8D8
|
|
thumb_func_end ov85_021E94BC
|
|
|
|
thumb_func_start ov85_021E94EC
|
|
ov85_021E94EC: ; 0x021E94EC
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
ldr r0, [r5, #0x10]
|
|
beq _021E9520
|
|
ldr r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
beq _021E9542
|
|
ldr r0, _021E9608 ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #0xc3
|
|
tst r0, r1
|
|
beq _021E9514
|
|
ldr r0, _021E960C ; =0x000005F2
|
|
bl PlaySE
|
|
_021E9514:
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add sp, #8
|
|
add r0, r6, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021E9520:
|
|
ldr r0, [r0, #0x30]
|
|
cmp r0, #0
|
|
beq _021E9542
|
|
ldr r0, _021E9608 ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #0xc3
|
|
tst r0, r1
|
|
beq _021E9536
|
|
ldr r0, _021E960C ; =0x000005F2
|
|
bl PlaySE
|
|
_021E9536:
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add sp, #8
|
|
add r0, r6, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021E9542:
|
|
bl ov85_021E9FD0
|
|
add r4, r0, #0
|
|
bl sub_02037454
|
|
cmp r4, r0
|
|
beq _021E955C
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add sp, #8
|
|
add r0, r6, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021E955C:
|
|
mov r0, #0x33
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x66
|
|
bl Handle2dMenuInput_DeleteOnFinish
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _021E95FC
|
|
sub r1, r1, #1
|
|
cmp r0, r1
|
|
bne _021E95A0
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
bne _021E9596
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, #0x10]
|
|
mov r1, #7
|
|
add r2, sp, #4
|
|
mov r3, #1
|
|
bl sub_02096D4C
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov85_021EA39C
|
|
_021E9596:
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl ov85_021E9458
|
|
b _021E95F4
|
|
_021E95A0:
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
bne _021E95BC
|
|
add r0, r5, #0
|
|
mov r1, #0xb
|
|
bl ov85_021E9458
|
|
add r0, r5, #0
|
|
mov r1, #0xe
|
|
mov r2, #0
|
|
bl ov85_021EA0EC
|
|
b _021E95F4
|
|
_021E95BC:
|
|
add r0, sp, #0
|
|
mov r1, #0
|
|
mov r2, #4
|
|
bl MI_CpuFill8
|
|
mov r1, #0
|
|
add r0, sp, #0
|
|
strb r1, [r0, #2]
|
|
bl sub_0203769C
|
|
add r1, sp, #0
|
|
strb r0, [r1]
|
|
ldr r0, _021E9610 ; =0x00004A50
|
|
mov r1, #1
|
|
strb r1, [r5, r0]
|
|
mov r1, #0
|
|
add r0, #0xc
|
|
strh r1, [r5, r0]
|
|
mov r0, #0xd5
|
|
mov r1, #6
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
ldr r0, [r5, #0x10]
|
|
mov r1, #2
|
|
add r2, sp, #0
|
|
mov r3, #4
|
|
bl sub_02096D4C
|
|
_021E95F4:
|
|
mov r0, #0x33
|
|
mov r1, #0
|
|
lsl r0, r0, #4
|
|
str r1, [r5, r0]
|
|
_021E95FC:
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add r0, r6, #0
|
|
add sp, #8
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021E9608: .word gSystem
|
|
_021E960C: .word 0x000005F2
|
|
_021E9610: .word 0x00004A50
|
|
thumb_func_end ov85_021E94EC
|
|
|
|
thumb_func_start ov85_021E9614
|
|
ov85_021E9614: ; 0x021E9614
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
ldr r1, _021E9628 ; =0x00004A5C
|
|
mov r2, #0
|
|
strh r2, [r0, r1]
|
|
bl ov85_021E943C
|
|
add r0, r4, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_021E9628: .word 0x00004A5C
|
|
thumb_func_end ov85_021E9614
|
|
|
|
thumb_func_start ov85_021E962C
|
|
ov85_021E962C: ; 0x021E962C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl sub_02037454
|
|
ldr r1, [r5, #0x10]
|
|
ldrh r1, [r1, #0x38]
|
|
cmp r1, r0
|
|
bne _021E964A
|
|
bl ov85_021E9FD0
|
|
ldr r1, [r5, #0x10]
|
|
ldrh r1, [r1, #0x38]
|
|
cmp r1, r0
|
|
beq _021E9662
|
|
_021E964A:
|
|
ldr r0, _021E96AC ; =0x00004A5C
|
|
mov r1, #0
|
|
strh r1, [r5, r0]
|
|
mov r0, #0xd5
|
|
mov r1, #8
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
_021E9662:
|
|
ldr r0, _021E96AC ; =0x00004A5C
|
|
ldrsh r1, [r5, r0]
|
|
add r1, r1, #1
|
|
strh r1, [r5, r0]
|
|
ldrsh r0, [r5, r0]
|
|
cmp r0, #0x1e
|
|
ble _021E96A2
|
|
add r0, sp, #0
|
|
mov r1, #0
|
|
mov r2, #4
|
|
bl MI_CpuFill8
|
|
mov r1, #1
|
|
add r0, sp, #0
|
|
strb r1, [r0, #2]
|
|
bl sub_0203769C
|
|
add r1, sp, #0
|
|
strb r0, [r1]
|
|
ldr r0, [r5, #0x10]
|
|
mov r1, #2
|
|
add r2, sp, #0
|
|
mov r3, #4
|
|
bl sub_02096D4C
|
|
ldr r0, _021E96AC ; =0x00004A5C
|
|
mov r1, #0
|
|
strh r1, [r5, r0]
|
|
mov r0, #0xd5
|
|
mov r1, #9
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
_021E96A2:
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E96AC: .word 0x00004A5C
|
|
thumb_func_end ov85_021E962C
|
|
|
|
thumb_func_start ov85_021E96B0
|
|
ov85_021E96B0: ; 0x021E96B0
|
|
push {r3, r4, r5, lr}
|
|
ldr r2, _021E96CC ; =0x00004A50
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
mov r1, #0
|
|
strb r1, [r5, r2]
|
|
bl ov85_021E9458
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E96CC: .word 0x00004A50
|
|
thumb_func_end ov85_021E96B0
|
|
|
|
thumb_func_start ov85_021E96D0
|
|
ov85_021E96D0: ; 0x021E96D0
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x66
|
|
add r4, r1, #0
|
|
str r0, [sp]
|
|
ldr r0, [r5, #0x14]
|
|
ldr r1, _021E96FC ; =ov85_021EA8D8
|
|
mov r2, #0x1f
|
|
mov r3, #0xb
|
|
bl Std_CreateYesNoMenu
|
|
mov r1, #0x33
|
|
lsl r1, r1, #4
|
|
str r0, [r5, r1]
|
|
mov r0, #0x17
|
|
add r1, #0x24
|
|
str r0, [r5, r1]
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E96FC: .word ov85_021EA8D8
|
|
thumb_func_end ov85_021E96D0
|
|
|
|
thumb_func_start ov85_021E9700
|
|
ov85_021E9700: ; 0x021E9700
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r5, r0, #0
|
|
ldr r4, [r5, #0x10]
|
|
add r6, r1, #0
|
|
bl ov85_021E9FD0
|
|
ldr r1, [r4, #0x2c]
|
|
cmp r1, r0
|
|
bne _021E971A
|
|
ldr r0, [r4, #0x30]
|
|
cmp r0, #0
|
|
beq _021E9736
|
|
_021E971A:
|
|
ldr r0, _021E97AC ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #0xc3
|
|
tst r0, r1
|
|
beq _021E972A
|
|
ldr r0, _021E97B0 ; =0x000005F2
|
|
bl PlaySE
|
|
_021E972A:
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add sp, #4
|
|
add r0, r6, #0
|
|
pop {r3, r4, r5, r6, pc}
|
|
_021E9736:
|
|
mov r0, #0x33
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x66
|
|
bl Handle2dMenuInput_DeleteOnFinish
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _021E979E
|
|
sub r1, r1, #1
|
|
cmp r0, r1
|
|
bne _021E9772
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, [r5, #0x10]
|
|
mov r1, #7
|
|
add r2, sp, #0
|
|
mov r3, #1
|
|
bl sub_02096D4C
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov85_021EA39C
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl ov85_021E9458
|
|
b _021E9796
|
|
_021E9772:
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
bne _021E9792
|
|
mov r0, #0xd5
|
|
mov r1, #0x18
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
bl ov85_021E9FD0
|
|
ldr r1, _021E97B4 ; =0x00004A52
|
|
strb r0, [r5, r1]
|
|
mov r0, #0xc
|
|
bl sub_0205A904
|
|
b _021E9796
|
|
_021E9792:
|
|
bl GF_AssertFail
|
|
_021E9796:
|
|
mov r0, #0x33
|
|
mov r1, #0
|
|
lsl r0, r0, #4
|
|
str r1, [r5, r0]
|
|
_021E979E:
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add r0, r6, #0
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
nop
|
|
_021E97AC: .word gSystem
|
|
_021E97B0: .word 0x000005F2
|
|
_021E97B4: .word 0x00004A52
|
|
thumb_func_end ov85_021E9700
|
|
|
|
thumb_func_start ov85_021E97B8
|
|
ov85_021E97B8: ; 0x021E97B8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _021E97E4 ; =0x00004A53
|
|
add r4, r1, #0
|
|
ldrb r0, [r5, r0]
|
|
cmp r0, #0
|
|
bne _021E97DE
|
|
mov r2, #0
|
|
ldr r0, [r5, #0x10]
|
|
mov r1, #5
|
|
add r3, r2, #0
|
|
bl sub_02096D4C
|
|
cmp r0, #1
|
|
bne _021E97DE
|
|
mov r0, #0xd5
|
|
mov r1, #0x1f
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
_021E97DE:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E97E4: .word 0x00004A53
|
|
thumb_func_end ov85_021E97B8
|
|
|
|
thumb_func_start ov85_021E97E8
|
|
ov85_021E97E8: ; 0x021E97E8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
bne _021E97FA
|
|
bl sub_02037454
|
|
_021E97FA:
|
|
bl sub_02037454
|
|
ldr r1, [r5, #0x10]
|
|
ldr r1, [r1, #0x20]
|
|
cmp r1, r0
|
|
bne _021E980E
|
|
mov r0, #0xd5
|
|
mov r1, #0x1f
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
_021E980E:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E97E8
|
|
|
|
thumb_func_start ov85_021E9814
|
|
ov85_021E9814: ; 0x021E9814
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0xc]
|
|
add r4, r1, #0
|
|
mov r1, #0x3e
|
|
lsl r1, r1, #6
|
|
ldr r0, [r0, #0x1c]
|
|
add r1, r5, r1
|
|
bl ov85_021EA4EC
|
|
mov r0, #0xd5
|
|
mov r1, #0x1b
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov85_021E9814
|
|
|
|
thumb_func_start ov85_021E9834
|
|
ov85_021E9834: ; 0x021E9834
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
ldr r0, _021E9860 ; =gSystem + 0x60
|
|
mov r1, #1
|
|
strb r1, [r0, #0xc]
|
|
ldr r0, [r5, #0xc]
|
|
mov r1, #0x13
|
|
ldr r0, [r0, #0x28]
|
|
bl GameStats_AddSpecial
|
|
mov r0, #0x3b
|
|
lsl r0, r0, #4
|
|
add r0, r5, r0
|
|
bl sub_02039EAC
|
|
mov r0, #0xd5
|
|
mov r1, #0x1c
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E9860: .word gSystem + 0x60
|
|
thumb_func_end ov85_021E9834
|
|
|
|
thumb_func_start ov85_021E9864
|
|
ov85_021E9864: ; 0x021E9864
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
bne _021E9876
|
|
bl sub_02037454
|
|
_021E9876:
|
|
ldr r0, [r5, #0xc]
|
|
mov r2, #0x3b
|
|
lsl r2, r2, #4
|
|
ldr r0, [r0, #0x1c]
|
|
mov r1, #2
|
|
add r2, r5, r2
|
|
bl sub_02039EB4
|
|
cmp r0, #0
|
|
beq _021E98B6
|
|
ldr r0, _021E98BC ; =0x00000657
|
|
mov r1, #8
|
|
bl StopSE
|
|
add r0, r5, #0
|
|
mov r1, #0xd
|
|
mov r2, #0
|
|
bl ov85_021EA0EC
|
|
add r0, r5, #0
|
|
mov r1, #0x1d
|
|
bl ov85_021E9458
|
|
mov r1, #0
|
|
mov r0, #0x36
|
|
str r1, [r5, #0x1c]
|
|
lsl r0, r0, #4
|
|
str r1, [r5, r0]
|
|
ldr r0, _021E98C0 ; =gSystem + 0x60
|
|
strb r1, [r0, #0xc]
|
|
ldr r0, [r5, #0x10]
|
|
str r1, [r0, #0x24]
|
|
_021E98B6:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E98BC: .word 0x00000657
|
|
_021E98C0: .word gSystem + 0x60
|
|
thumb_func_end ov85_021E9864
|
|
|
|
thumb_func_start ov85_021E98C4
|
|
ov85_021E98C4: ; 0x021E98C4
|
|
push {r3, r4}
|
|
mov r2, #0x36
|
|
lsl r2, r2, #4
|
|
ldr r4, [r0, r2]
|
|
add r3, r4, #1
|
|
str r3, [r0, r2]
|
|
cmp r4, #0x3c
|
|
ble _021E98DA
|
|
mov r3, #0xf
|
|
sub r2, #0xc
|
|
str r3, [r0, r2]
|
|
_021E98DA:
|
|
add r0, r1, #0
|
|
pop {r3, r4}
|
|
bx lr
|
|
thumb_func_end ov85_021E98C4
|
|
|
|
thumb_func_start ov85_021E98E0
|
|
ov85_021E98E0: ; 0x021E98E0
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
mov r1, #5
|
|
mov r2, #0
|
|
bl ov85_021EA0EC
|
|
add r0, r5, #0
|
|
mov r1, #0xa
|
|
bl ov85_021E9458
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov85_021E98E0
|
|
|
|
thumb_func_start ov85_021E9900
|
|
ov85_021E9900: ; 0x021E9900
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
mov r0, #0x36
|
|
lsl r0, r0, #4
|
|
add r4, r1, #0
|
|
ldr r1, [r5, r0]
|
|
add r1, r1, #1
|
|
str r1, [r5, r0]
|
|
ldr r0, [r5, r0]
|
|
cmp r0, #0x3c
|
|
ble _021E9930
|
|
mov r1, #0x10
|
|
str r1, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0x66
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
add r2, r1, #0
|
|
add r3, r0, #0
|
|
bl BeginNormalPaletteFade
|
|
mov r4, #3
|
|
_021E9930:
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add r0, r4, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
thumb_func_end ov85_021E9900
|
|
|
|
thumb_func_start ov85_021E993C
|
|
ov85_021E993C: ; 0x021E993C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x66
|
|
add r4, r1, #0
|
|
str r0, [sp]
|
|
ldr r0, [r5, #0x14]
|
|
ldr r1, _021E9968 ; =ov85_021EA8D8
|
|
mov r2, #0x1f
|
|
mov r3, #0xb
|
|
bl Std_CreateYesNoMenu
|
|
mov r1, #0x33
|
|
lsl r1, r1, #4
|
|
str r0, [r5, r1]
|
|
mov r0, #0xc
|
|
add r1, #0x24
|
|
str r0, [r5, r1]
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E9968: .word ov85_021EA8D8
|
|
thumb_func_end ov85_021E993C
|
|
|
|
thumb_func_start ov85_021E996C
|
|
ov85_021E996C: ; 0x021E996C
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r5, r0, #0
|
|
ldr r4, [r5, #0x10]
|
|
add r6, r1, #0
|
|
bl ov85_021E9FD0
|
|
ldr r1, [r4, #0x2c]
|
|
cmp r1, r0
|
|
bne _021E9986
|
|
ldr r0, [r4, #0x30]
|
|
cmp r0, #0
|
|
beq _021E99A2
|
|
_021E9986:
|
|
ldr r0, _021E9A14 ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #0xc3
|
|
tst r0, r1
|
|
beq _021E9996
|
|
ldr r0, _021E9A18 ; =0x000005F2
|
|
bl PlaySE
|
|
_021E9996:
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add sp, #4
|
|
add r0, r6, #0
|
|
pop {r3, r4, r5, r6, pc}
|
|
_021E99A2:
|
|
mov r0, #0x33
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x66
|
|
bl Handle2dMenuInput_DeleteOnFinish
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _021E9A08
|
|
sub r1, r1, #1
|
|
cmp r0, r1
|
|
bne _021E99DC
|
|
mov r1, #0
|
|
mov r0, #0xd5
|
|
str r1, [sp]
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
ldr r0, [r5, #0x10]
|
|
mov r1, #7
|
|
add r2, sp, #0
|
|
mov r3, #1
|
|
bl sub_02096D4C
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov85_021EA39C
|
|
b _021E9A00
|
|
_021E99DC:
|
|
mov r0, #0xd5
|
|
mov r1, #0xd
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
mov r2, #0
|
|
ldr r0, [r5, #0x10]
|
|
mov r1, #3
|
|
add r3, r2, #0
|
|
bl sub_02096D4C
|
|
mov r0, #0
|
|
bl sub_02034818
|
|
add r2, r0, #0
|
|
ldr r0, [r5, #0x34]
|
|
mov r1, #0
|
|
bl BufferPlayersName
|
|
_021E9A00:
|
|
mov r0, #0x33
|
|
mov r1, #0
|
|
lsl r0, r0, #4
|
|
str r1, [r5, r0]
|
|
_021E9A08:
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add r0, r6, #0
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021E9A14: .word gSystem
|
|
_021E9A18: .word 0x000005F2
|
|
thumb_func_end ov85_021E996C
|
|
|
|
thumb_func_start ov85_021E9A1C
|
|
ov85_021E9A1C: ; 0x021E9A1C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
bne _021E9A36
|
|
add r0, r5, #0
|
|
mov r1, #5
|
|
mov r2, #0
|
|
bl ov85_021EA0EC
|
|
b _021E9A50
|
|
_021E9A36:
|
|
mov r0, #0
|
|
bl sub_02034818
|
|
add r2, r0, #0
|
|
ldr r0, [r5, #0x34]
|
|
mov r1, #0
|
|
bl BufferPlayersName
|
|
add r0, r5, #0
|
|
mov r1, #0x10
|
|
mov r2, #0
|
|
bl ov85_021EA0EC
|
|
_021E9A50:
|
|
add r0, r5, #0
|
|
mov r1, #0xe
|
|
bl ov85_021E9458
|
|
mov r0, #0x36
|
|
mov r1, #0
|
|
lsl r0, r0, #4
|
|
str r1, [r5, r0]
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E9A1C
|
|
|
|
thumb_func_start ov85_021E9A6C
|
|
ov85_021E9A6C: ; 0x021E9A6C
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
mov r1, #0x36
|
|
lsl r1, r1, #4
|
|
ldr r2, [r0, r1]
|
|
add r2, r2, #1
|
|
str r2, [r0, r1]
|
|
ldr r2, [r0, r1]
|
|
cmp r2, #0x2d
|
|
ble _021E9A86
|
|
mov r2, #0xf
|
|
sub r1, #0xc
|
|
str r2, [r0, r1]
|
|
_021E9A86:
|
|
bl ov85_021E943C
|
|
add r0, r4, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E9A6C
|
|
|
|
thumb_func_start ov85_021E9A90
|
|
ov85_021E9A90: ; 0x021E9A90
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0xca
|
|
add r4, r1, #0
|
|
bl sub_02037AC0
|
|
mov r0, #0xd5
|
|
mov r1, #0x10
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E9A90
|
|
|
|
thumb_func_start ov85_021E9AB0
|
|
ov85_021E9AB0: ; 0x021E9AB0
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
mov r0, #0xca
|
|
add r5, r1, #0
|
|
bl sub_02037B38
|
|
cmp r0, #0
|
|
beq _021E9AE2
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl sub_020398D4
|
|
mov r1, #0x10
|
|
str r1, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0x66
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
add r2, r1, #0
|
|
add r3, r0, #0
|
|
bl BeginNormalPaletteFade
|
|
mov r5, #3
|
|
_021E9AE2:
|
|
add r0, r4, #0
|
|
bl ov85_021E943C
|
|
add r0, r5, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E9AB0
|
|
|
|
thumb_func_start ov85_021E9AF0
|
|
ov85_021E9AF0: ; 0x021E9AF0
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0x5c]
|
|
add r4, r1, #0
|
|
bl ov85_021EA17C
|
|
cmp r0, #0
|
|
beq _021E9B0A
|
|
add r0, r5, #0
|
|
mov r1, #9
|
|
mov r2, #0
|
|
bl ov85_021EA0EC
|
|
_021E9B0A:
|
|
mov r0, #0xd5
|
|
mov r1, #0x12
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov85_021E9AF0
|
|
|
|
thumb_func_start ov85_021E9B1C
|
|
ov85_021E9B1C: ; 0x021E9B1C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0x5c]
|
|
add r4, r1, #0
|
|
bl ov85_021EA17C
|
|
cmp r0, #0
|
|
beq _021E9B34
|
|
mov r0, #0xd5
|
|
mov r1, #0xa
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
_021E9B34:
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E9B1C
|
|
|
|
thumb_func_start ov85_021E9B40
|
|
ov85_021E9B40: ; 0x021E9B40
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0x5c]
|
|
add r4, r1, #0
|
|
cmp r0, #0xff
|
|
beq _021E9B5E
|
|
bl ov85_021EA17C
|
|
cmp r0, #0
|
|
bne _021E9B5E
|
|
ldr r0, [r5, #0x5c]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl sub_020200A0
|
|
_021E9B5E:
|
|
add r0, r5, #0
|
|
mov r1, #0xf
|
|
mov r2, #1
|
|
bl ov85_021EA0EC
|
|
mov r0, #0xd5
|
|
mov r1, #0x14
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
bne _021E9B80
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl ov85_021EA39C
|
|
_021E9B80:
|
|
bl sub_02037454
|
|
ldr r1, _021E9B9C ; =0x00004A58
|
|
mov r2, #0x4b
|
|
str r0, [r5, r1]
|
|
lsl r2, r2, #2
|
|
sub r0, r1, #4
|
|
str r2, [r5, r0]
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E9B9C: .word 0x00004A58
|
|
thumb_func_end ov85_021E9B40
|
|
|
|
thumb_func_start ov85_021E9BA0
|
|
ov85_021E9BA0: ; 0x021E9BA0
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _021E9BD8 ; =0x00004A58
|
|
add r4, r1, #0
|
|
ldr r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _021E9BBE
|
|
bl sub_02037454
|
|
ldr r1, _021E9BD8 ; =0x00004A58
|
|
ldr r2, [r5, r1]
|
|
cmp r2, r0
|
|
beq _021E9BBE
|
|
mov r0, #0
|
|
str r0, [r5, r1]
|
|
_021E9BBE:
|
|
mov r0, #0xd5
|
|
mov r1, #0x15
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
mov r1, #0
|
|
add r0, #0xc
|
|
str r1, [r5, r0]
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E9BD8: .word 0x00004A58
|
|
thumb_func_end ov85_021E9BA0
|
|
|
|
thumb_func_start ov85_021E9BDC
|
|
ov85_021E9BDC: ; 0x021E9BDC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _021E9C48 ; =0x00004A58
|
|
add r4, r1, #0
|
|
ldr r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _021E9BFA
|
|
bl sub_02037454
|
|
ldr r1, _021E9C48 ; =0x00004A58
|
|
ldr r2, [r5, r1]
|
|
cmp r2, r0
|
|
beq _021E9BFA
|
|
mov r0, #0
|
|
str r0, [r5, r1]
|
|
_021E9BFA:
|
|
ldr r0, _021E9C4C ; =0x00004A54
|
|
ldr r1, [r5, r0]
|
|
sub r1, r1, #1
|
|
str r1, [r5, r0]
|
|
ldr r1, [r5, r0]
|
|
cmp r1, #0
|
|
bge _021E9C0E
|
|
mov r1, #0
|
|
add r0, r0, #4
|
|
str r1, [r5, r0]
|
|
_021E9C0E:
|
|
mov r1, #0x36
|
|
lsl r1, r1, #4
|
|
ldr r0, [r5, r1]
|
|
add r0, r0, #1
|
|
str r0, [r5, r1]
|
|
ldr r0, [r5, r1]
|
|
cmp r0, #0x3c
|
|
ble _021E9C3C
|
|
ldr r0, _021E9C48 ; =0x00004A58
|
|
ldr r0, [r5, r0]
|
|
cmp r0, #0
|
|
bne _021E9C3C
|
|
mov r0, #0
|
|
sub r1, #0xc
|
|
str r0, [r5, r1]
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
bne _021E9C3C
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov85_021EA39C
|
|
_021E9C3C:
|
|
add r0, r5, #0
|
|
bl ov85_021E943C
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E9C48: .word 0x00004A58
|
|
_021E9C4C: .word 0x00004A54
|
|
thumb_func_end ov85_021E9BDC
|
|
|
|
thumb_func_start ov85_021E9C50
|
|
ov85_021E9C50: ; 0x021E9C50
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
mov r0, #0xc
|
|
bl sub_0205A904
|
|
mov r1, #0x10
|
|
str r1, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0x66
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
add r2, r1, #0
|
|
add r3, r0, #0
|
|
bl BeginNormalPaletteFade
|
|
mov r0, #1
|
|
str r0, [r4, #8]
|
|
add r0, r4, #0
|
|
bl ov85_021E943C
|
|
mov r0, #3
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E9C50
|
|
|
|
thumb_func_start ov85_021E9C84
|
|
ov85_021E9C84: ; 0x021E9C84
|
|
push {r4, r5, r6, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r6, r2, #0
|
|
cmp r4, #0x13
|
|
bgt _021E9CAC
|
|
bge _021E9D12
|
|
cmp r4, #8
|
|
bgt _021E9CA6
|
|
cmp r4, #2
|
|
blt _021E9D92
|
|
beq _021E9CBA
|
|
cmp r4, #7
|
|
beq _021E9D8C
|
|
cmp r4, #8
|
|
beq _021E9D8C
|
|
pop {r4, r5, r6, pc}
|
|
_021E9CA6:
|
|
cmp r4, #0xd
|
|
beq _021E9CC0
|
|
pop {r4, r5, r6, pc}
|
|
_021E9CAC:
|
|
cmp r4, #0x19
|
|
bgt _021E9CB4
|
|
beq _021E9CDA
|
|
pop {r4, r5, r6, pc}
|
|
_021E9CB4:
|
|
cmp r4, #0x1f
|
|
beq _021E9D60
|
|
pop {r4, r5, r6, pc}
|
|
_021E9CBA:
|
|
bl ov85_021EA19C
|
|
b _021E9D8C
|
|
_021E9CC0:
|
|
mov r0, #0x33
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _021E9D8C
|
|
mov r1, #0x66
|
|
bl Clear2dMenuWindowAndDelete
|
|
mov r0, #0x33
|
|
mov r1, #0
|
|
lsl r0, r0, #4
|
|
str r1, [r5, r0]
|
|
b _021E9D8C
|
|
_021E9CDA:
|
|
ldr r0, [r5, #0x5c]
|
|
bl ov85_021EA17C
|
|
cmp r0, #0
|
|
bne _021E9CEE
|
|
ldr r0, [r5, #0x5c]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl sub_020200A0
|
|
_021E9CEE:
|
|
add r0, r5, #0
|
|
mov r1, #0xc
|
|
mov r2, #0
|
|
bl ov85_021EA0EC
|
|
mov r0, #0x33
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _021E9D8C
|
|
mov r1, #0x66
|
|
bl Clear2dMenuWindowAndDelete
|
|
mov r0, #0x33
|
|
mov r1, #0
|
|
lsl r0, r0, #4
|
|
str r1, [r5, r0]
|
|
b _021E9D8C
|
|
_021E9D12:
|
|
ldr r0, _021E9D94 ; =0x00004A50
|
|
ldrb r0, [r5, r0]
|
|
cmp r0, #1
|
|
beq _021E9D92
|
|
add r0, r6, #0
|
|
bl sub_02034818
|
|
add r2, r0, #0
|
|
ldr r0, [r5, #0x34]
|
|
mov r1, #0
|
|
bl BufferPlayersName
|
|
bl sub_0203769C
|
|
cmp r6, r0
|
|
beq _021E9D92
|
|
mov r0, #0x33
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _021E9D4A
|
|
mov r1, #0x66
|
|
bl Clear2dMenuWindowAndDelete
|
|
mov r0, #0x33
|
|
mov r1, #0
|
|
lsl r0, r0, #4
|
|
str r1, [r5, r0]
|
|
_021E9D4A:
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
bne _021E9D8C
|
|
ldr r2, [r5, #0x10]
|
|
ldr r0, _021E9D98 ; =0x0000FFFF
|
|
ldr r1, [r2, #0x30]
|
|
eor r0, r6
|
|
and r0, r1
|
|
str r0, [r2, #0x30]
|
|
b _021E9D8C
|
|
_021E9D60:
|
|
ldr r0, [r5, #0x5c]
|
|
bl ov85_021EA17C
|
|
cmp r0, #0
|
|
bne _021E9D74
|
|
ldr r0, [r5, #0x5c]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl sub_020200A0
|
|
_021E9D74:
|
|
mov r0, #0x33
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _021E9D8C
|
|
mov r1, #0x66
|
|
bl Clear2dMenuWindowAndDelete
|
|
mov r0, #0x33
|
|
mov r1, #0
|
|
lsl r0, r0, #4
|
|
str r1, [r5, r0]
|
|
_021E9D8C:
|
|
mov r0, #0xd5
|
|
lsl r0, r0, #2
|
|
str r4, [r5, r0]
|
|
_021E9D92:
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021E9D94: .word 0x00004A50
|
|
_021E9D98: .word 0x0000FFFF
|
|
thumb_func_end ov85_021E9C84
|
|
|
|
thumb_func_start ov85_021E9D9C
|
|
ov85_021E9D9C: ; 0x021E9D9C
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r5, r0, #0
|
|
mov r0, #0xd5
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
cmp r0, #3
|
|
bne _021E9E3E
|
|
cmp r4, #1
|
|
beq _021E9DBA
|
|
cmp r4, #0x13
|
|
beq _021E9E00
|
|
b _021E9E36
|
|
_021E9DBA:
|
|
add r0, r6, #0
|
|
bl sub_02034818
|
|
add r2, r0, #0
|
|
ldr r0, [r5, #0x34]
|
|
mov r1, #0
|
|
bl BufferPlayersName
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov85_021EA39C
|
|
mov r0, #0xd5
|
|
lsl r0, r0, #2
|
|
str r4, [r5, r0]
|
|
bl sub_02037454
|
|
ldr r1, [r5, #0x10]
|
|
str r0, [r1, #0x2c]
|
|
ldr r0, [r5, #0x10]
|
|
mov r1, #0
|
|
str r1, [r0, #0x30]
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
bne _021E9E50
|
|
mov r3, #1
|
|
str r3, [sp]
|
|
ldr r0, [r5, #0x10]
|
|
mov r1, #7
|
|
add r2, sp, #0
|
|
bl sub_02096D4C
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
_021E9E00:
|
|
add r0, r6, #0
|
|
bl sub_02034818
|
|
add r2, r0, #0
|
|
ldr r0, [r5, #0x34]
|
|
mov r1, #0
|
|
bl BufferPlayersName
|
|
bl sub_0203769C
|
|
cmp r6, r0
|
|
beq _021E9E50
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
bne _021E9E2C
|
|
ldr r2, [r5, #0x10]
|
|
ldr r0, _021E9E54 ; =0x0000FFFF
|
|
ldr r1, [r2, #0x30]
|
|
eor r0, r6
|
|
and r0, r1
|
|
str r0, [r2, #0x30]
|
|
_021E9E2C:
|
|
mov r0, #0xd5
|
|
lsl r0, r0, #2
|
|
add sp, #4
|
|
str r4, [r5, r0]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_021E9E36:
|
|
bl GF_AssertFail
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
_021E9E3E:
|
|
cmp r4, #1
|
|
bne _021E9E50
|
|
ldr r0, [r5, #0x10]
|
|
mov r1, #0
|
|
str r1, [r0, #0x30]
|
|
bl sub_02037454
|
|
ldr r1, [r5, #0x10]
|
|
str r0, [r1, #0x2c]
|
|
_021E9E50:
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021E9E54: .word 0x0000FFFF
|
|
thumb_func_end ov85_021E9D9C
|
|
|
|
thumb_func_start ov85_021E9E58
|
|
ov85_021E9E58: ; 0x021E9E58
|
|
push {r3, lr}
|
|
ldrh r1, [r0]
|
|
add r1, #0xa
|
|
strh r1, [r0]
|
|
ldrh r2, [r0]
|
|
mov r1, #0x5a
|
|
lsl r1, r1, #2
|
|
cmp r2, r1
|
|
bls _021E9E6E
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
_021E9E6E:
|
|
ldrh r0, [r0]
|
|
bl GF_SinDeg
|
|
mov r1, #0xa
|
|
add r2, r0, #0
|
|
mul r2, r1
|
|
asr r0, r2, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r2, r0
|
|
asr r0, r0, #0xc
|
|
add r0, #0xf
|
|
lsl r2, r0, #5
|
|
mov r0, #0x1d
|
|
orr r2, r0
|
|
add r0, sp, #0
|
|
strh r2, [r0]
|
|
add r0, sp, #0
|
|
mov r2, #2
|
|
bl GX_LoadOBJPltt
|
|
add r0, sp, #0
|
|
mov r1, #0x2a
|
|
mov r2, #2
|
|
bl GX_LoadOBJPltt
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E9E58
|
|
|
|
thumb_func_start ov85_021E9EA4
|
|
ov85_021E9EA4: ; 0x021E9EA4
|
|
push {r3, r4, r5, lr}
|
|
mov r5, #0
|
|
add r4, r5, #0
|
|
_021E9EAA:
|
|
add r0, r4, #0
|
|
bl sub_02034818
|
|
cmp r0, #0
|
|
beq _021E9EB6
|
|
add r5, r5, #1
|
|
_021E9EB6:
|
|
add r4, r4, #1
|
|
cmp r4, #5
|
|
blt _021E9EAA
|
|
add r0, r5, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov85_021E9EA4
|
|
|
|
thumb_func_start ov85_021E9EC0
|
|
ov85_021E9EC0: ; 0x021E9EC0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x28
|
|
str r3, [sp, #0x14]
|
|
add r6, r0, #0
|
|
str r2, [sp, #0x10]
|
|
bl sub_0203769C
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, [sp, #0x14]
|
|
bl ov85_021EA010
|
|
cmp r0, #0
|
|
bne _021E9EE0
|
|
add sp, #0x28
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E9EE0:
|
|
add r0, r6, #0
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
ldr r7, [sp, #0x14]
|
|
mov r0, #0
|
|
str r0, [sp, #0x20]
|
|
add r4, r7, #0
|
|
mov r5, #1
|
|
_021E9EF2:
|
|
mov r0, #0xdd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r7, r0]
|
|
cmp r0, #0
|
|
beq _021E9FAC
|
|
bl PlayerProfile_GetTrainerID_VisibleHalf
|
|
str r0, [sp, #0x24]
|
|
mov r0, #0xdd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r7, r0]
|
|
ldr r1, [r4, #0x3c]
|
|
bl PlayerName_FlatToString
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #0x14]
|
|
ldr r2, [sp, #0x24]
|
|
ldr r0, [r0, #0x34]
|
|
mov r1, #0
|
|
mov r3, #5
|
|
bl BufferIntegerAsString
|
|
ldr r0, [sp, #0x14]
|
|
ldr r1, [sp, #0x14]
|
|
ldr r0, [r0, #0x34]
|
|
ldr r1, [r1, #0x38]
|
|
mov r2, #1
|
|
mov r3, #0x66
|
|
bl ReadMsgData_ExpandPlaceholders
|
|
str r0, [sp, #0x18]
|
|
ldr r1, [sp, #0x1c]
|
|
ldr r0, [sp, #0x20]
|
|
cmp r1, r0
|
|
str r5, [sp]
|
|
bne _021E9F74
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E9FC8 ; =0x00020300
|
|
mov r1, #0
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0x3c]
|
|
add r0, r6, #0
|
|
mov r3, #5
|
|
bl AddTextPrinterParameterized2
|
|
str r5, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E9FC8 ; =0x00020300
|
|
ldr r2, [sp, #0x18]
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
add r0, r6, #0
|
|
mov r1, #0
|
|
mov r3, #0x46
|
|
bl AddTextPrinterParameterized2
|
|
b _021E9FA6
|
|
_021E9F74:
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #0x10]
|
|
mov r1, #0
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0x3c]
|
|
add r0, r6, #0
|
|
mov r3, #5
|
|
bl AddTextPrinterParameterized2
|
|
str r5, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #0x10]
|
|
ldr r2, [sp, #0x18]
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
add r0, r6, #0
|
|
mov r1, #0
|
|
mov r3, #0x46
|
|
bl AddTextPrinterParameterized2
|
|
_021E9FA6:
|
|
ldr r0, [sp, #0x18]
|
|
bl String_Delete
|
|
_021E9FAC:
|
|
ldr r0, [sp, #0x20]
|
|
add r7, #8
|
|
add r0, r0, #1
|
|
add r4, r4, #4
|
|
add r5, #0x12
|
|
str r0, [sp, #0x20]
|
|
cmp r0, #5
|
|
blt _021E9EF2
|
|
add r0, r6, #0
|
|
bl CopyWindowToVram
|
|
mov r0, #1
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E9FC8: .word 0x00020300
|
|
thumb_func_end ov85_021E9EC0
|
|
|
|
thumb_func_start ov85_021E9FCC
|
|
ov85_021E9FCC: ; 0x021E9FCC
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E9FCC
|
|
|
|
thumb_func_start ov85_021E9FD0
|
|
ov85_021E9FD0: ; 0x021E9FD0
|
|
push {r3, r4, r5, lr}
|
|
mov r5, #0
|
|
add r4, r5, #0
|
|
_021E9FD6:
|
|
add r0, r4, #0
|
|
bl sub_02034818
|
|
cmp r0, #0
|
|
beq _021E9FE2
|
|
add r5, r5, #1
|
|
_021E9FE2:
|
|
add r4, r4, #1
|
|
cmp r4, #5
|
|
blt _021E9FD6
|
|
add r0, r5, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov85_021E9FD0
|
|
|
|
thumb_func_start ov85_021E9FEC
|
|
ov85_021E9FEC: ; 0x021E9FEC
|
|
push {r4, r5, r6, lr}
|
|
mov r5, #0
|
|
add r4, r5, #0
|
|
mov r6, #1
|
|
_021E9FF4:
|
|
add r0, r4, #0
|
|
bl sub_02034818
|
|
cmp r0, #0
|
|
beq _021EA004
|
|
add r0, r6, #0
|
|
lsl r0, r4
|
|
orr r5, r0
|
|
_021EA004:
|
|
add r4, r4, #1
|
|
cmp r4, #5
|
|
blt _021E9FF4
|
|
add r0, r5, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021E9FEC
|
|
|
|
thumb_func_start ov85_021EA010
|
|
ov85_021EA010: ; 0x021EA010
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
mov r4, #0
|
|
str r4, [sp]
|
|
add r6, r7, #0
|
|
add r5, r7, #0
|
|
_021EA01C:
|
|
mov r0, #0xdd
|
|
lsl r0, r0, #2
|
|
ldr r1, [r6, r0]
|
|
add r0, r0, #4
|
|
str r1, [r6, r0]
|
|
add r0, r4, #0
|
|
bl sub_02034818
|
|
mov r1, #0xdd
|
|
lsl r1, r1, #2
|
|
str r0, [r6, r1]
|
|
ldr r0, _021EA0E0 ; =0x00004A60
|
|
ldr r2, _021EA0E4 ; =0x00004A68
|
|
ldr r1, [r5, r0]
|
|
add r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
str r1, [r5, r2]
|
|
add r1, r2, #4
|
|
str r0, [r5, r1]
|
|
mov r0, #0xdd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
cmp r0, #0
|
|
beq _021EA05A
|
|
bl PlayerProfile_GetTrainerID
|
|
ldr r1, _021EA0E0 ; =0x00004A60
|
|
str r0, [r5, r1]
|
|
mov r1, #1
|
|
ldr r0, _021EA0E8 ; =0x00004A64
|
|
b _021EA064
|
|
_021EA05A:
|
|
add r0, r2, #0
|
|
mov r1, #0
|
|
sub r0, #8
|
|
str r1, [r5, r0]
|
|
sub r0, r2, #4
|
|
_021EA064:
|
|
add r4, r4, #1
|
|
str r1, [r5, r0]
|
|
add r6, #8
|
|
add r5, #0x10
|
|
cmp r4, #5
|
|
blt _021EA01C
|
|
mov r4, #0
|
|
add r2, r7, #0
|
|
add r3, r7, #0
|
|
_021EA076:
|
|
mov r0, #0xdd
|
|
mov r1, #0xde
|
|
lsl r0, r0, #2
|
|
lsl r1, r1, #2
|
|
ldr r0, [r7, r0]
|
|
ldr r1, [r7, r1]
|
|
cmp r1, r0
|
|
beq _021EA0A0
|
|
mov r1, #1
|
|
str r1, [sp]
|
|
cmp r0, #0
|
|
bne _021EA098
|
|
mov r0, #0xe7
|
|
mov r1, #3
|
|
lsl r0, r0, #2
|
|
str r1, [r2, r0]
|
|
b _021EA0D0
|
|
_021EA098:
|
|
mov r0, #0xe7
|
|
lsl r0, r0, #2
|
|
str r1, [r2, r0]
|
|
b _021EA0D0
|
|
_021EA0A0:
|
|
ldr r0, _021EA0E0 ; =0x00004A60
|
|
ldr r5, _021EA0E4 ; =0x00004A68
|
|
ldr r1, [r3, r0]
|
|
ldr r6, [r3, r5]
|
|
add r0, r0, #4
|
|
add r5, r5, #4
|
|
ldr r0, [r3, r0]
|
|
ldr r5, [r3, r5]
|
|
eor r1, r6
|
|
eor r5, r0
|
|
orr r1, r5
|
|
beq _021EA0D0
|
|
mov r1, #1
|
|
str r1, [sp]
|
|
cmp r0, #0
|
|
bne _021EA0CA
|
|
mov r0, #0xe7
|
|
mov r1, #3
|
|
lsl r0, r0, #2
|
|
str r1, [r2, r0]
|
|
b _021EA0D0
|
|
_021EA0CA:
|
|
mov r0, #0xe7
|
|
lsl r0, r0, #2
|
|
str r1, [r2, r0]
|
|
_021EA0D0:
|
|
add r4, r4, #1
|
|
add r7, #8
|
|
add r2, r2, #4
|
|
add r3, #0x10
|
|
cmp r4, #5
|
|
blt _021EA076
|
|
ldr r0, [sp]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021EA0E0: .word 0x00004A60
|
|
_021EA0E4: .word 0x00004A68
|
|
_021EA0E8: .word 0x00004A64
|
|
thumb_func_end ov85_021EA010
|
|
|
|
thumb_func_start ov85_021EA0EC
|
|
ov85_021EA0EC: ; 0x021EA0EC
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
add r7, r1, #0
|
|
mov r0, #0xb4
|
|
mov r1, #0x66
|
|
add r6, r2, #0
|
|
bl String_New
|
|
add r4, r0, #0
|
|
ldr r0, [r5, #0x38]
|
|
add r1, r7, #0
|
|
add r2, r4, #0
|
|
bl ReadMsgDataIntoString
|
|
ldr r0, [r5, #0x34]
|
|
ldr r1, [r5, #0x54]
|
|
add r2, r4, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r4, #0
|
|
bl String_Delete
|
|
mov r0, #0xbe
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
mov r1, #0xf
|
|
bl FillWindowPixelBuffer
|
|
mov r0, #0xbe
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
mov r1, #0
|
|
mov r2, #1
|
|
mov r3, #0xa
|
|
bl DrawFrameAndWindow2
|
|
cmp r6, #0
|
|
bne _021EA15C
|
|
add r0, r5, #0
|
|
bl ov85_021EA398
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
str r0, [sp, #4]
|
|
str r3, [sp, #8]
|
|
mov r0, #0xbe
|
|
lsl r0, r0, #2
|
|
ldr r2, [r5, #0x54]
|
|
add r0, r5, r0
|
|
mov r1, #1
|
|
bl AddTextPrinterParameterized
|
|
add sp, #0xc
|
|
str r0, [r5, #0x5c]
|
|
pop {r4, r5, r6, r7, pc}
|
|
_021EA15C:
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
str r3, [sp, #4]
|
|
str r3, [sp, #8]
|
|
mov r0, #0xbe
|
|
lsl r0, r0, #2
|
|
ldr r2, [r5, #0x54]
|
|
add r0, r5, r0
|
|
mov r1, #1
|
|
bl AddTextPrinterParameterized
|
|
mov r0, #0xff
|
|
str r0, [r5, #0x5c]
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021EA0EC
|
|
|
|
thumb_func_start ov85_021EA17C
|
|
ov85_021EA17C: ; 0x021EA17C
|
|
push {r3, lr}
|
|
cmp r0, #0xff
|
|
bne _021EA186
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_021EA186:
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl TextPrinterCheckActive
|
|
cmp r0, #0
|
|
bne _021EA196
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_021EA196:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021EA17C
|
|
|
|
thumb_func_start ov85_021EA19C
|
|
ov85_021EA19C: ; 0x021EA19C
|
|
mov r1, #0xbe
|
|
lsl r1, r1, #2
|
|
add r0, r0, r1
|
|
ldr r3, _021EA1A8 ; =ClearFrameAndWindow2
|
|
mov r1, #0
|
|
bx r3
|
|
.balign 4, 0
|
|
_021EA1A8: .word ClearFrameAndWindow2
|
|
thumb_func_end ov85_021EA19C
|
|
|
|
thumb_func_start ov85_021EA1AC
|
|
ov85_021EA1AC: ; 0x021EA1AC
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x1c
|
|
add r5, r0, #0
|
|
mov r0, #0x1b
|
|
str r0, [sp, #4]
|
|
mov r0, #0xcf
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
str r0, [sp, #0x14]
|
|
mov r0, #0xd3
|
|
lsl r0, r0, #2
|
|
mov r4, #0
|
|
add r0, r5, r0
|
|
str r4, [sp, #8]
|
|
add r6, r5, #0
|
|
mov r7, #0x1c
|
|
str r0, [sp, #0x18]
|
|
_021EA1CE:
|
|
mov r0, #0xe7
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
cmp r0, #3
|
|
bhi _021EA29A
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021EA1E4: ; jump table
|
|
.short _021EA29A - _021EA1E4 - 2 ; case 0
|
|
.short _021EA1EC - _021EA1E4 - 2 ; case 1
|
|
.short _021EA29A - _021EA1E4 - 2 ; case 2
|
|
.short _021EA262 - _021EA1E4 - 2 ; case 3
|
|
_021EA1EC:
|
|
mov r0, #0xdd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
cmp r0, #0
|
|
bne _021EA1FA
|
|
bl GF_AssertFail
|
|
_021EA1FA:
|
|
mov r0, #0xdd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
bl PlayerProfile_GetTrainerGender
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xdd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
bl PlayerProfile_GetAvatar
|
|
str r0, [sp, #0x10]
|
|
bl sub_0203769C
|
|
cmp r4, r0
|
|
bne _021EA22C
|
|
mov r0, #0x8f
|
|
ldr r1, [sp, #0xc]
|
|
lsl r0, r0, #2
|
|
lsl r1, r1, #1
|
|
ldr r0, [r5, r0]
|
|
add r1, #0x26
|
|
bl Set2dSpriteAnimSeqNo
|
|
b _021EA248
|
|
_021EA22C:
|
|
ldr r0, [sp, #0xc]
|
|
ldr r1, [sp, #0x18]
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0x14]
|
|
ldr r3, [sp, #0x10]
|
|
add r2, r4, #0
|
|
bl ov85_021EA324
|
|
mov r0, #0x8f
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [sp, #4]
|
|
bl Set2dSpriteAnimSeqNo
|
|
_021EA248:
|
|
mov r0, #0x8f
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
mov r0, #0xe7
|
|
mov r1, #2
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
b _021EA29A
|
|
_021EA262:
|
|
bl sub_0203769C
|
|
cmp r4, r0
|
|
bne _021EA286
|
|
mov r0, #0xdd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
bl PlayerProfile_GetTrainerGender
|
|
add r1, r0, #0
|
|
mov r0, #0x8f
|
|
lsl r0, r0, #2
|
|
lsl r1, r1, #1
|
|
ldr r0, [r5, r0]
|
|
add r1, #0x27
|
|
bl Set2dSpriteAnimSeqNo
|
|
b _021EA292
|
|
_021EA286:
|
|
mov r0, #0x8f
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r1, r7, #0
|
|
bl Set2dSpriteAnimSeqNo
|
|
_021EA292:
|
|
mov r0, #0xe7
|
|
mov r1, #0
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
_021EA29A:
|
|
ldr r0, [sp, #4]
|
|
add r4, r4, #1
|
|
add r0, r0, #2
|
|
add r5, r5, #4
|
|
add r6, #8
|
|
add r7, r7, #2
|
|
str r0, [sp, #4]
|
|
cmp r4, #5
|
|
blt _021EA1CE
|
|
ldr r0, [sp, #8]
|
|
cmp r0, #0
|
|
beq _021EA2B8
|
|
ldr r0, _021EA2BC ; =0x0000064E
|
|
bl PlaySE
|
|
_021EA2B8:
|
|
add sp, #0x1c
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021EA2BC: .word 0x0000064E
|
|
thumb_func_end ov85_021EA1AC
|
|
|
|
thumb_func_start ov85_021EA2C0
|
|
ov85_021EA2C0: ; 0x021EA2C0
|
|
push {r3, r4, r5, lr}
|
|
mov r2, #0xd3
|
|
add r5, r0, #0
|
|
lsl r2, r2, #2
|
|
add r4, r1, #0
|
|
mov r0, #0x64
|
|
mov r1, #9
|
|
add r2, r5, r2
|
|
mov r3, #0x66
|
|
bl GfGfxLoader_GetPlttData
|
|
mov r2, #0xd1
|
|
lsl r2, r2, #2
|
|
str r0, [r5, r2]
|
|
add r2, #0xc
|
|
add r0, r4, #0
|
|
mov r1, #7
|
|
add r2, r5, r2
|
|
mov r3, #0x66
|
|
bl GfGfxLoader_GetPlttDataFromOpenNarc
|
|
mov r3, #0xd2
|
|
lsl r3, r3, #2
|
|
str r0, [r5, r3]
|
|
mov r0, #0x66
|
|
sub r3, #0xc
|
|
str r0, [sp]
|
|
mov r0, #0x64
|
|
mov r1, #0x2b
|
|
mov r2, #1
|
|
add r3, r5, r3
|
|
bl GfGfxLoader_GetCharData
|
|
mov r3, #0xcd
|
|
lsl r3, r3, #2
|
|
str r0, [r5, r3]
|
|
mov r0, #0x66
|
|
add r3, #0xc
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r1, #9
|
|
mov r2, #1
|
|
add r3, r5, r3
|
|
bl GfGfxLoader_GetCharDataFromOpenNarc
|
|
mov r1, #0xce
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021EA2C0
|
|
|
|
thumb_func_start ov85_021EA324
|
|
ov85_021EA324: ; 0x021EA324
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
add r6, r1, #0
|
|
ldr r0, [sp, #0x18]
|
|
add r1, r3, #0
|
|
add r5, r2, #0
|
|
bl SpriteToUnionRoomAvatarIdx
|
|
add r4, r0, #0
|
|
ldr r0, [r6, #4]
|
|
mov r2, #6
|
|
ldr r6, [r0, #0xc]
|
|
ldr r0, [r7, #4]
|
|
lsl r2, r2, #8
|
|
ldr r1, [r0, #0x14]
|
|
add r0, r4, #0
|
|
mul r0, r2
|
|
add r0, r1, r0
|
|
ldr r1, _021EA364 ; =ov85_021EA8E0
|
|
lsl r3, r5, #1
|
|
ldrh r1, [r1, r3]
|
|
bl GX_LoadOBJ
|
|
lsl r0, r4, #5
|
|
add r1, r5, #7
|
|
add r0, r6, r0
|
|
lsl r1, r1, #5
|
|
mov r2, #0x20
|
|
bl GX_LoadOBJPltt
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021EA364: .word ov85_021EA8E0
|
|
thumb_func_end ov85_021EA324
|
|
|
|
thumb_func_start ov85_021EA368
|
|
ov85_021EA368: ; 0x021EA368
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0xd1
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FreeToHeap
|
|
mov r0, #0xd2
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FreeToHeap
|
|
mov r0, #0xcd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FreeToHeap
|
|
mov r0, #0xce
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FreeToHeap
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021EA368
|
|
|
|
thumb_func_start ov85_021EA398
|
|
ov85_021EA398: ; 0x021EA398
|
|
mov r0, #1
|
|
bx lr
|
|
thumb_func_end ov85_021EA398
|
|
|
|
thumb_func_start ov85_021EA39C
|
|
ov85_021EA39C: ; 0x021EA39C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl sub_0203769C
|
|
cmp r0, #0
|
|
bne _021EA3E8
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r4, r0
|
|
bne _021EA3BA
|
|
mov r0, #1
|
|
bl sub_02038C1C
|
|
b _021EA3CA
|
|
_021EA3BA:
|
|
bl sub_02037454
|
|
add r0, r4, r0
|
|
cmp r0, #5
|
|
ble _021EA3C6
|
|
mov r0, #5
|
|
_021EA3C6:
|
|
bl sub_02038C1C
|
|
_021EA3CA:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r4, r0
|
|
ldr r0, _021EA3EC ; =0x00004A51
|
|
bne _021EA3DA
|
|
mov r1, #2
|
|
strb r1, [r5, r0]
|
|
pop {r3, r4, r5, pc}
|
|
_021EA3DA:
|
|
cmp r4, #0
|
|
bne _021EA3E4
|
|
mov r1, #1
|
|
strb r1, [r5, r0]
|
|
pop {r3, r4, r5, pc}
|
|
_021EA3E4:
|
|
mov r1, #0
|
|
strb r1, [r5, r0]
|
|
_021EA3E8:
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021EA3EC: .word 0x00004A51
|
|
thumb_func_end ov85_021EA39C
|
|
|
|
thumb_func_start ov85_021EA3F0
|
|
ov85_021EA3F0: ; 0x021EA3F0
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
add r6, r1, #0
|
|
bl ov85_021E9FD0
|
|
add r5, r0, #0
|
|
ldr r0, [r4, #0x10]
|
|
ldr r0, [r0, #0x2c]
|
|
cmp r5, r0
|
|
ble _021EA41A
|
|
mov r3, #1
|
|
add r0, sp, #0
|
|
strb r3, [r0]
|
|
ldr r0, [r4, #0x10]
|
|
mov r1, #7
|
|
add r2, sp, #0
|
|
bl sub_02096D4C
|
|
mov r1, #1
|
|
b _021EA41C
|
|
_021EA41A:
|
|
mov r1, #0
|
|
_021EA41C:
|
|
ldr r0, _021EA4E4 ; =0x00004A48
|
|
str r1, [r4, r0]
|
|
ldr r0, _021EA4E8 ; =0x00004A44
|
|
ldr r0, [r4, r0]
|
|
cmp r5, r0
|
|
bne _021EA42E
|
|
add sp, #4
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, pc}
|
|
_021EA42E:
|
|
cmp r5, #5
|
|
bhi _021EA4D4
|
|
add r0, r5, r5
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021EA43E: ; jump table
|
|
.short _021EA4D4 - _021EA43E - 2 ; case 0
|
|
.short _021EA44A - _021EA43E - 2 ; case 1
|
|
.short _021EA48E - _021EA43E - 2 ; case 2
|
|
.short _021EA48E - _021EA43E - 2 ; case 3
|
|
.short _021EA48E - _021EA43E - 2 ; case 4
|
|
.short _021EA4C6 - _021EA43E - 2 ; case 5
|
|
_021EA44A:
|
|
bl sub_02037454
|
|
cmp r0, #1
|
|
bgt _021EA45A
|
|
bl sub_02033250
|
|
cmp r0, #1
|
|
bls _021EA460
|
|
_021EA45A:
|
|
add sp, #4
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, pc}
|
|
_021EA460:
|
|
mov r0, #0xd5
|
|
mov r1, #0x11
|
|
lsl r0, r0, #2
|
|
str r1, [r4, r0]
|
|
add r0, r4, #0
|
|
sub r1, #0x12
|
|
bl ov85_021EA39C
|
|
mov r0, #0x33
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _021EA488
|
|
mov r1, #0x66
|
|
bl Clear2dMenuWindowAndDelete
|
|
mov r0, #0x33
|
|
mov r1, #0
|
|
lsl r0, r0, #4
|
|
str r1, [r4, r0]
|
|
_021EA488:
|
|
add sp, #4
|
|
mov r0, #2
|
|
pop {r3, r4, r5, r6, pc}
|
|
_021EA48E:
|
|
mov r0, #0xd
|
|
bl sub_0205A904
|
|
ldr r0, _021EA4E8 ; =0x00004A44
|
|
ldr r1, [r4, r0]
|
|
cmp r5, r1
|
|
bge _021EA4D4
|
|
add r0, #0xd
|
|
ldrsb r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _021EA4AA
|
|
cmp r0, #1
|
|
beq _021EA4B4
|
|
b _021EA4BC
|
|
_021EA4AA:
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
bl ov85_021EA39C
|
|
b _021EA4BC
|
|
_021EA4B4:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov85_021EA39C
|
|
_021EA4BC:
|
|
bl sub_02037454
|
|
ldr r1, [r4, #0x10]
|
|
str r0, [r1, #0x2c]
|
|
b _021EA4D4
|
|
_021EA4C6:
|
|
mov r0, #0xc
|
|
bl sub_0205A904
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
bl ov85_021EA39C
|
|
_021EA4D4:
|
|
bl ov85_021E9FD0
|
|
ldr r1, _021EA4E8 ; =0x00004A44
|
|
str r0, [r4, r1]
|
|
mov r0, #1
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
nop
|
|
_021EA4E4: .word 0x00004A48
|
|
_021EA4E8: .word 0x00004A44
|
|
thumb_func_end ov85_021EA3F0
|
|
|
|
thumb_func_start ov85_021EA4EC
|
|
ov85_021EA4EC: ; 0x021EA4EC
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov85_021EA4EC
|
|
|
|
.rodata
|
|
|
|
ov85_021EA4F0:
|
|
.byte 0x00, 0x00, 0xB4, 0x00
|
|
|
|
ov85_021EA4F4:
|
|
.byte 0x00, 0x00, 0xC6, 0x00, 0x56, 0x01, 0x67, 0x01
|
|
|
|
ov85_021EA4FC: ; 0x021EA4FC
|
|
.byte 0x01, 0x02, 0x13, 0x1A
|
|
.byte 0x04, 0x0F, 0x28, 0x00
|
|
|
|
ov85_021EA504:
|
|
.byte 0x00, 0x00, 0xD7, 0x00, 0x43, 0x01, 0x67, 0x01, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x08, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA514:
|
|
.byte 0x25, 0x00, 0x8E, 0x00, 0xD7, 0x00, 0x43, 0x01
|
|
|
|
ov85_021EA51C: ; 0x021EA51C
|
|
.word ov85_021E7BC0, ov85_021E7BEC, ov85_021E7C2C
|
|
|
|
ov85_021EA528: ; 0x021EA528
|
|
.byte 0xDD, 0x05, 0x00, 0x00, 0xDD, 0x05, 0x00, 0x00
|
|
.byte 0xDD, 0x05, 0x00, 0x00, 0x42, 0x06, 0x00, 0x00
|
|
|
|
ov85_021EA538: ; 0x021EA538
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA548:
|
|
.byte 0x01, 0x0C, 0x12, 0x08, 0x02, 0x0F, 0x94, 0x00
|
|
.byte 0x01, 0x0C, 0x06, 0x08, 0x02, 0x0F, 0xBC, 0x00
|
|
|
|
ov85_021EA558: ; 0x021EA558
|
|
.byte 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00
|
|
.byte 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA56C: ; 0x021EA56C
|
|
.byte 0x60, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA580: ; 0x021EA580
|
|
.byte 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00
|
|
.byte 0x0F, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA594: ; 0x021EA594
|
|
.byte 0x60, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00
|
|
.byte 0x40, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA5AC: ; 0x021EA5AC
|
|
.word 0
|
|
.word 0
|
|
.word ov85_021EA548
|
|
.word ov85_021EA5F4
|
|
.word ov85_021EA698
|
|
.word ov85_021EA6D8
|
|
|
|
ov85_021EA5C4: ; 0x021EA5C4
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA5DC: ; 0x021EA5DC
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFB, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xF4, 0xFF
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA5F4:
|
|
.byte 0x01, 0x0C, 0x12, 0x08, 0x02, 0x0F, 0x94, 0x00, 0x01, 0x05, 0x0A, 0x08
|
|
.byte 0x02, 0x0F, 0xBC, 0x00, 0x01, 0x13, 0x0A, 0x08, 0x02, 0x0F, 0xE4, 0x00
|
|
|
|
ov85_021EA60C: ; 0x021EA60C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA628: ; 0x021EA628
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x03, 0x00, 0x02, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA644: ; 0x021EA644
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA660: ; 0x021EA660
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x02, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA67C: ; 0x021EA67C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x07
|
|
.byte 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA698:
|
|
.byte 0x01, 0x0C, 0x12, 0x08, 0x02, 0x0F, 0x94, 0x00
|
|
.byte 0x01, 0x04, 0x0D, 0x08, 0x02, 0x0F, 0xBC, 0x00, 0x01, 0x0C, 0x06, 0x08, 0x02, 0x0F, 0xE4, 0x00
|
|
.byte 0x01, 0x14, 0x0D, 0x08, 0x02, 0x0F, 0x0C, 0x01
|
|
|
|
ov85_021EA6B8: ; 0x021EA6B8
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA6D8:
|
|
.byte 0x01, 0x0C, 0x13, 0x08, 0x02, 0x0F, 0x94, 0x00
|
|
.byte 0x01, 0x04, 0x0E, 0x08, 0x02, 0x0F, 0xBC, 0x00, 0x01, 0x06, 0x09, 0x08, 0x02, 0x0F, 0xE4, 0x00
|
|
.byte 0x01, 0x12, 0x09, 0x08, 0x02, 0x0F, 0x0C, 0x01, 0x01, 0x14, 0x0E, 0x08, 0x02, 0x0F, 0x34, 0x01
|
|
|
|
ov85_021EA700: ; 0x021EA700
|
|
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA728: ; 0x021EA728
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA72C: ; 0x021EA72C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9F, 0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00
|
|
.byte 0x9F, 0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00
|
|
.byte 0xAF, 0x00, 0x00, 0x00, 0xB7, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA758: ; 0x021EA758
|
|
.word 0, 0
|
|
.word 0, 0
|
|
.word 1, ov85_021EA4F0
|
|
.word 2, ov85_021EA4F4
|
|
.word 2, ov85_021EA514
|
|
.word 2, ov85_021EA504
|
|
|
|
ov85_021EA788: ; 0x021EA788
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB4, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x0E, 0x01, 0xB4, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x01, 0xD8, 0x00
|
|
.byte 0x90, 0x00, 0x48, 0x00
|
|
|
|
ov85_021EA7C4: ; 0x021EA7C4
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x0E, 0x01, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x5A, 0x00, 0xD2, 0x00, 0x4A, 0x01, 0x00, 0x00, 0x00, 0x00, 0x5A, 0x00, 0xB4, 0x00
|
|
.byte 0x0E, 0x01, 0x00, 0x00, 0x00, 0x00, 0x5A, 0x00, 0xA2, 0x00, 0xEA, 0x00, 0x32, 0x01, 0x12, 0x00
|
|
|
|
ov85_021EA800: ; 0x021EA800
|
|
.word ov85_021E5AF8
|
|
.word ov85_021E5B0C
|
|
.word ov85_021E5B30
|
|
.word ov85_021E5B48
|
|
.word ov85_021E5B78
|
|
.word ov85_021E5B98
|
|
.word ov85_021E5BC8
|
|
.word ov85_021E5C58
|
|
.word ov85_021E5C80
|
|
.word ov85_021E5CA4
|
|
.word ov85_021E5CD0
|
|
.word ov85_021E5CE4
|
|
.word ov85_021E5CFC
|
|
.word ov85_021E5D20
|
|
.word ov85_021E5D3C
|
|
.word ov85_021E5D84
|
|
.word ov85_021E5DAC
|
|
.word ov85_021E5E30
|
|
.word ov85_021E5EB4
|
|
.word ov85_021E5EE8
|
|
.word ov85_021E5F10
|
|
.word ov85_021E5F3C
|
|
.word ov85_021E5F58
|
|
.word ov85_021E5F6C
|
|
.word ov85_021E5F84
|
|
.word ov85_021E5F9C
|
|
.word ov85_021E5FD0
|
|
.word ov85_021E5FE0
|
|
.word ov85_021E60F0
|
|
.word ov85_021E61C8
|
|
.word ov85_021E61FC
|
|
.word ov85_021E6224
|
|
.word ov85_021E62A0
|
|
.word ov85_021E62B4
|
|
.word ov85_021E62D8
|
|
.word ov85_021E636C
|
|
.word ov85_021E63D8
|
|
.word ov85_021E6420
|
|
.word ov85_021E6474
|
|
.word ov85_021E6498
|
|
.word ov85_021E652C
|
|
.word ov85_021E6550
|
|
.word ov85_021E657C
|
|
.word ov85_021E6594
|
|
.word ov85_021E65D4
|
|
.word ov85_021E6610
|
|
.word ov85_021E6644
|
|
.word ov85_021E6658
|
|
.word ov85_021E6674
|
|
.word ov85_021E6694
|
|
.word ov85_021E66F4
|
|
.word ov85_021E670C
|
|
.word ov85_021E6748
|
|
.word ov85_021E6760
|
|
|
|
ov85_021EA8D8: ; 0x021EA8D8
|
|
.byte 0x00, 0x17, 0x0D, 0x07, 0x04, 0x0D, 0x78, 0x01
|
|
|
|
ov85_021EA8E0: ; 0x021EA8E0
|
|
.byte 0xA0, 0x01, 0xA0, 0x07, 0xA0, 0x0D, 0xA0, 0x13, 0xA0, 0x19
|
|
|
|
ov85_021EA8EA: ; 0x021EA8EA
|
|
.byte 0x08
|
|
|
|
ov85_021EA8EB: ; 0x021EA8EB
|
|
.byte 0x02, 0x08, 0x03, 0x08, 0x04
|
|
.byte 0x18, 0x00, 0x00, 0xFF
|
|
|
|
ov85_021EA8F4: ; 0x021EA8F4
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA904: ; 0x021EA904
|
|
.byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
|
|
.byte 0x66, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA914: ; 0x021EA914
|
|
.byte 0xCC, 0x00, 0x54, 0x00, 0xCC, 0x00, 0x35, 0x00, 0xE9, 0x00, 0x48, 0x00
|
|
.byte 0xDF, 0x00, 0x67, 0x00, 0xB8, 0x00, 0x67, 0x00, 0xAE, 0x00, 0x48, 0x00
|
|
|
|
ov85_021EA92C: ; 0x021EA92C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1B, 0x02
|
|
.byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA948: ; 0x021EA948
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA964: ; 0x021EA964
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1E, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA980: ; 0x021EA980
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x1E, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA99C: ; 0x021EA99C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1F, 0x00
|
|
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA9B8: ; 0x021EA9B8
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov85_021EA9E0: ; 0x021EA9E0
|
|
.word ov85_021E92B8
|
|
.word ov85_021E9440
|
|
.word ov85_021E948C
|
|
.word ov85_021E92F8
|
|
.word ov85_021E94BC
|
|
.word ov85_021E94EC
|
|
.word ov85_021E9614
|
|
.word ov85_021E962C
|
|
.word ov85_021E96B0
|
|
.word ov85_021E98E0
|
|
.word ov85_021E9900
|
|
.word ov85_021E993C
|
|
.word ov85_021E996C
|
|
.word ov85_021E9A1C
|
|
.word ov85_021E9A6C
|
|
.word ov85_021E9A90
|
|
.word ov85_021E9AB0
|
|
.word ov85_021E9AF0
|
|
.word ov85_021E9B1C
|
|
.word ov85_021E9B40
|
|
.word ov85_021E9BA0
|
|
.word ov85_021E9BDC
|
|
.word ov85_021E96D0
|
|
.word ov85_021E9700
|
|
.word ov85_021E97B8
|
|
.word ov85_021E97E8
|
|
.word ov85_021E9814
|
|
.word ov85_021E9834
|
|
.word ov85_021E9864
|
|
.word ov85_021E98C4
|
|
.word ov85_021E9468
|
|
.word ov85_021E9C50
|
|
|
|
.data
|
|
|
|
_021EAA80:
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
|
|
.byte 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00
|
|
.byte 0x0B, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
|
|
.byte 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
; 0x021EAAC0
|