mirror of
https://github.com/pret/pokeheartgold.git
synced 2024-11-23 21:30:05 +00:00
10049 lines
184 KiB
ArmAsm
10049 lines
184 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "overlay_108.inc"
|
|
.include "global.inc"
|
|
|
|
.text
|
|
|
|
thumb_func_start ov108_021E5900
|
|
ov108_021E5900: ; 0x021E5900
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
bl OverlayManager_GetArgs
|
|
mov r2, #5
|
|
add r5, r0, #0
|
|
mov r0, #3
|
|
mov r1, #0x5f
|
|
lsl r2, r2, #0x10
|
|
bl CreateHeap
|
|
ldr r1, _021E5944 ; =0x000184EC
|
|
add r0, r4, #0
|
|
mov r2, #0x5f
|
|
bl OverlayManager_CreateAndGetData
|
|
ldr r2, _021E5944 ; =0x000184EC
|
|
mov r1, #0
|
|
add r4, r0, #0
|
|
bl MI_CpuFill8
|
|
mov r0, #0x5f
|
|
str r0, [r4]
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl ov108_021E59E4
|
|
mov r1, #0
|
|
mov r0, #0x43
|
|
add r2, r1, #0
|
|
bl sub_02004EC4
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E5944: .word 0x000184EC
|
|
thumb_func_end ov108_021E5900
|
|
|
|
thumb_func_start ov108_021E5948
|
|
ov108_021E5948: ; 0x021E5948
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
bl OverlayManager_GetData
|
|
add r6, r0, #0
|
|
bl ov108_021E5A48
|
|
ldr r2, _021E5974 ; =0x000184EC
|
|
ldr r4, [r6]
|
|
add r0, r6, #0
|
|
mov r1, #0
|
|
bl MI_CpuFill8
|
|
add r0, r5, #0
|
|
bl OverlayManager_FreeData
|
|
add r0, r4, #0
|
|
bl DestroyHeap
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021E5974: .word 0x000184EC
|
|
thumb_func_end ov108_021E5948
|
|
|
|
thumb_func_start ov108_021E5978
|
|
ov108_021E5978: ; 0x021E5978
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
bl OverlayManager_GetData
|
|
ldr r1, [r4]
|
|
cmp r1, #7
|
|
bhi _021E59DE
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021E5992: ; jump table
|
|
.short _021E59A2 - _021E5992 - 2 ; case 0
|
|
.short _021E59AA - _021E5992 - 2 ; case 1
|
|
.short _021E59B2 - _021E5992 - 2 ; case 2
|
|
.short _021E59BA - _021E5992 - 2 ; case 3
|
|
.short _021E59C2 - _021E5992 - 2 ; case 4
|
|
.short _021E59CA - _021E5992 - 2 ; case 5
|
|
.short _021E59D2 - _021E5992 - 2 ; case 6
|
|
.short _021E59DA - _021E5992 - 2 ; case 7
|
|
_021E59A2:
|
|
bl ov108_021E5A78
|
|
str r0, [r4]
|
|
b _021E59DE
|
|
_021E59AA:
|
|
bl ov108_021E5A8C
|
|
str r0, [r4]
|
|
b _021E59DE
|
|
_021E59B2:
|
|
bl ov108_021E5AA0
|
|
str r0, [r4]
|
|
b _021E59DE
|
|
_021E59BA:
|
|
bl ov108_021E5AF0
|
|
str r0, [r4]
|
|
b _021E59DE
|
|
_021E59C2:
|
|
bl ov108_021E5B48
|
|
str r0, [r4]
|
|
b _021E59DE
|
|
_021E59CA:
|
|
bl ov108_021E5B98
|
|
str r0, [r4]
|
|
b _021E59DE
|
|
_021E59D2:
|
|
bl ov108_021E5BFC
|
|
str r0, [r4]
|
|
b _021E59DE
|
|
_021E59DA:
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E59DE:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E5978
|
|
|
|
thumb_func_start ov108_021E59E4
|
|
ov108_021E59E4: ; 0x021E59E4
|
|
push {r4, r5, r6, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl Save_SafariZone_Get
|
|
add r2, r5, #0
|
|
str r0, [r5, #0x18]
|
|
mov r1, #0
|
|
add r2, #0x1c
|
|
bl SafariZone_CopyAreaSet
|
|
ldr r0, [r4]
|
|
bl Save_PlayerData_GetOptionsAddr
|
|
add r6, r0, #0
|
|
bl Options_GetTextSpeed
|
|
ldr r1, _021E5A38 ; =0x000184DC
|
|
strb r0, [r5, r1]
|
|
add r0, r6, #0
|
|
bl Options_GetFrame
|
|
ldr r1, _021E5A3C ; =0x000184DD
|
|
strb r0, [r5, r1]
|
|
ldr r0, [r4, #4]
|
|
bl sub_020183F0
|
|
str r0, [r5, #0x10]
|
|
ldr r0, _021E5A40 ; =0x000184E8
|
|
mov r1, #0
|
|
str r1, [r5, r0]
|
|
str r4, [r5, #0x14]
|
|
ldr r0, [r5, #0x18]
|
|
bl sub_0202F720
|
|
cmp r0, #0
|
|
beq _021E5A36
|
|
ldr r0, _021E5A44 ; =0x000184E3
|
|
mov r1, #1
|
|
strb r1, [r5, r0]
|
|
_021E5A36:
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021E5A38: .word 0x000184DC
|
|
_021E5A3C: .word 0x000184DD
|
|
_021E5A40: .word 0x000184E8
|
|
_021E5A44: .word 0x000184E3
|
|
thumb_func_end ov108_021E59E4
|
|
|
|
thumb_func_start ov108_021E5A48
|
|
ov108_021E5A48: ; 0x021E5A48
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r2, r4, #0
|
|
ldr r0, [r4, #0x18]
|
|
mov r1, #0
|
|
add r2, #0x1c
|
|
bl SafariZone_SetAreaSet
|
|
ldr r0, [r4, #0x14]
|
|
ldr r0, [r0]
|
|
bl Save_VarsFlags_Get
|
|
ldr r1, _021E5A74 ; =0x000184E8
|
|
ldr r1, [r4, r1]
|
|
bl ChangeFlag99D
|
|
ldr r0, [r4, #0x14]
|
|
ldr r1, [r4, #0x10]
|
|
ldr r0, [r0, #4]
|
|
bl sub_02018410
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E5A74: .word 0x000184E8
|
|
thumb_func_end ov108_021E5A48
|
|
|
|
thumb_func_start ov108_021E5A78
|
|
ov108_021E5A78: ; 0x021E5A78
|
|
push {r3, lr}
|
|
bl ov108_021E5C54
|
|
cmp r0, #0
|
|
beq _021E5A86
|
|
mov r0, #5
|
|
pop {r3, pc}
|
|
_021E5A86:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E5A78
|
|
|
|
thumb_func_start ov108_021E5A8C
|
|
ov108_021E5A8C: ; 0x021E5A8C
|
|
push {r3, lr}
|
|
bl ov108_021E5D0C
|
|
cmp r0, #0
|
|
beq _021E5A9A
|
|
mov r0, #7
|
|
pop {r3, pc}
|
|
_021E5A9A:
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E5A8C
|
|
|
|
thumb_func_start ov108_021E5AA0
|
|
ov108_021E5AA0: ; 0x021E5AA0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r1, [r4, #4]
|
|
cmp r1, #4
|
|
bhi _021E5AE4
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021E5AB6: ; jump table
|
|
.short _021E5AC0 - _021E5AB6 - 2 ; case 0
|
|
.short _021E5AC8 - _021E5AB6 - 2 ; case 1
|
|
.short _021E5AD0 - _021E5AB6 - 2 ; case 2
|
|
.short _021E5AE4 - _021E5AB6 - 2 ; case 3
|
|
.short _021E5AD8 - _021E5AB6 - 2 ; case 4
|
|
_021E5AC0:
|
|
bl ov108_021E5D90
|
|
str r0, [r4, #4]
|
|
b _021E5AE4
|
|
_021E5AC8:
|
|
bl ov108_021E5DB8
|
|
str r0, [r4, #4]
|
|
b _021E5AE4
|
|
_021E5AD0:
|
|
bl ov108_021E5E68
|
|
str r0, [r4, #4]
|
|
b _021E5AE4
|
|
_021E5AD8:
|
|
mov r1, #0
|
|
str r1, [r4, #4]
|
|
bl ov108_021E846C
|
|
ldr r0, [r4, #0xc]
|
|
pop {r4, pc}
|
|
_021E5AE4:
|
|
add r0, r4, #0
|
|
bl ov108_021E846C
|
|
mov r0, #2
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E5AA0
|
|
|
|
thumb_func_start ov108_021E5AF0
|
|
ov108_021E5AF0: ; 0x021E5AF0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r1, [r4, #4]
|
|
cmp r1, #4
|
|
bhi _021E5B3C
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021E5B06: ; jump table
|
|
.short _021E5B10 - _021E5B06 - 2 ; case 0
|
|
.short _021E5B18 - _021E5B06 - 2 ; case 1
|
|
.short _021E5B20 - _021E5B06 - 2 ; case 2
|
|
.short _021E5B28 - _021E5B06 - 2 ; case 3
|
|
.short _021E5B30 - _021E5B06 - 2 ; case 4
|
|
_021E5B10:
|
|
bl ov108_021E5F10
|
|
str r0, [r4, #4]
|
|
b _021E5B3C
|
|
_021E5B18:
|
|
bl ov108_021E5F38
|
|
str r0, [r4, #4]
|
|
b _021E5B3C
|
|
_021E5B20:
|
|
bl ov108_021E5E68
|
|
str r0, [r4, #4]
|
|
b _021E5B3C
|
|
_021E5B28:
|
|
bl ov108_021E6010
|
|
str r0, [r4, #4]
|
|
b _021E5B3C
|
|
_021E5B30:
|
|
mov r1, #0
|
|
str r1, [r4, #4]
|
|
bl ov108_021E846C
|
|
ldr r0, [r4, #0xc]
|
|
pop {r4, pc}
|
|
_021E5B3C:
|
|
add r0, r4, #0
|
|
bl ov108_021E846C
|
|
mov r0, #3
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E5AF0
|
|
|
|
thumb_func_start ov108_021E5B48
|
|
ov108_021E5B48: ; 0x021E5B48
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r1, [r4, #4]
|
|
cmp r1, #4
|
|
bhi _021E5B8C
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021E5B5E: ; jump table
|
|
.short _021E5B68 - _021E5B5E - 2 ; case 0
|
|
.short _021E5B8C - _021E5B5E - 2 ; case 1
|
|
.short _021E5B70 - _021E5B5E - 2 ; case 2
|
|
.short _021E5B78 - _021E5B5E - 2 ; case 3
|
|
.short _021E5B80 - _021E5B5E - 2 ; case 4
|
|
_021E5B68:
|
|
bl ov108_021E6068
|
|
str r0, [r4, #4]
|
|
b _021E5B8C
|
|
_021E5B70:
|
|
bl ov108_021E5E68
|
|
str r0, [r4, #4]
|
|
b _021E5B8C
|
|
_021E5B78:
|
|
bl ov108_021E6090
|
|
str r0, [r4, #4]
|
|
b _021E5B8C
|
|
_021E5B80:
|
|
mov r1, #0
|
|
str r1, [r4, #4]
|
|
bl ov108_021E846C
|
|
ldr r0, [r4, #0xc]
|
|
pop {r4, pc}
|
|
_021E5B8C:
|
|
add r0, r4, #0
|
|
bl ov108_021E846C
|
|
mov r0, #4
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E5B48
|
|
|
|
thumb_func_start ov108_021E5B98
|
|
ov108_021E5B98: ; 0x021E5B98
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _021E5BAA
|
|
cmp r0, #1
|
|
beq _021E5BD8
|
|
b _021E5BF0
|
|
_021E5BAA:
|
|
mov r0, #6
|
|
mov r1, #1
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
ldr r0, [r4]
|
|
add r2, r1, #0
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
add r3, r0, #0
|
|
bl BeginNormalPaletteFade
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl GfGfx_EngineATogglePlanes
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl GfGfx_EngineBTogglePlanes
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
b _021E5BF0
|
|
_021E5BD8:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _021E5BF0
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
add r0, r4, #0
|
|
bl ov108_021E846C
|
|
add sp, #0xc
|
|
mov r0, #2
|
|
pop {r3, r4, pc}
|
|
_021E5BF0:
|
|
add r0, r4, #0
|
|
bl ov108_021E846C
|
|
mov r0, #5
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
thumb_func_end ov108_021E5B98
|
|
|
|
thumb_func_start ov108_021E5BFC
|
|
ov108_021E5BFC: ; 0x021E5BFC
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _021E5C0E
|
|
cmp r0, #1
|
|
beq _021E5C2E
|
|
b _021E5C46
|
|
_021E5C0E:
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
add r3, r0, #0
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
b _021E5C46
|
|
_021E5C2E:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _021E5C46
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
add r0, r4, #0
|
|
bl ov108_021E846C
|
|
add sp, #0xc
|
|
mov r0, #1
|
|
pop {r3, r4, pc}
|
|
_021E5C46:
|
|
add r0, r4, #0
|
|
bl ov108_021E846C
|
|
mov r0, #6
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E5BFC
|
|
|
|
thumb_func_start ov108_021E5C54
|
|
ov108_021E5C54: ; 0x021E5C54
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r1, [r4, #8]
|
|
cmp r1, #0
|
|
beq _021E5C68
|
|
cmp r1, #1
|
|
beq _021E5CB8
|
|
cmp r1, #2
|
|
beq _021E5CE2
|
|
b _021E5CF6
|
|
_021E5C68:
|
|
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, _021E5D00 ; =0xFFFFE0FF
|
|
and r1, r0
|
|
str r1, [r2]
|
|
ldr r2, _021E5D04 ; =0x04001000
|
|
ldr r1, [r2]
|
|
and r0, r1
|
|
str r0, [r2]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl sub_0200FBF4
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl sub_0200FBF4
|
|
mov r0, #0
|
|
bl sub_0200FBDC
|
|
mov r0, #1
|
|
bl sub_0200FBDC
|
|
bl sub_020210BC
|
|
mov r0, #4
|
|
bl sub_02021148
|
|
b _021E5CF6
|
|
_021E5CB8:
|
|
bl ov108_021E6C68
|
|
add r0, r4, #0
|
|
bl ov108_021E6D80
|
|
add r0, r4, #0
|
|
bl ov108_021E6F74
|
|
add r0, r4, #0
|
|
bl ov108_021E7080
|
|
add r0, r4, #0
|
|
bl ov108_021E7224
|
|
add r0, r4, #0
|
|
bl ov108_021E72CC
|
|
add r0, r4, #0
|
|
bl ov108_021E733C
|
|
b _021E5CF6
|
|
_021E5CE2:
|
|
bl ov108_021E7BFC
|
|
ldr r0, _021E5D08 ; =ov108_021E6BA0
|
|
add r1, r4, #0
|
|
bl Main_SetVBlankIntrCB
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E5CF6:
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, #1
|
|
str r0, [r4, #8]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E5D00: .word 0xFFFFE0FF
|
|
_021E5D04: .word 0x04001000
|
|
_021E5D08: .word ov108_021E6BA0
|
|
thumb_func_end ov108_021E5C54
|
|
|
|
thumb_func_start ov108_021E5D0C
|
|
ov108_021E5D0C: ; 0x021E5D0C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _021E5D1C
|
|
cmp r0, #2
|
|
beq _021E5D54
|
|
b _021E5D7C
|
|
_021E5D1C:
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl Main_SetVBlankIntrCB
|
|
bl HBlankInterruptDisable
|
|
add r0, r4, #0
|
|
bl ov108_021E7510
|
|
add r0, r4, #0
|
|
bl ov108_021E730C
|
|
add r0, r4, #0
|
|
bl ov108_021E72A4
|
|
add r0, r4, #0
|
|
bl ov108_021E71EC
|
|
add r0, r4, #0
|
|
bl ov108_021E7014
|
|
add r0, r4, #0
|
|
bl ov108_021E6F58
|
|
add r0, r4, #0
|
|
bl ov108_021E6D24
|
|
b _021E5D7C
|
|
_021E5D54:
|
|
bl sub_02021238
|
|
mov r2, #1
|
|
lsl r2, r2, #0x1a
|
|
ldr r1, [r2]
|
|
ldr r0, _021E5D88 ; =0xFFFFE0FF
|
|
and r1, r0
|
|
str r1, [r2]
|
|
ldr r2, _021E5D8C ; =0x04001000
|
|
ldr r1, [r2]
|
|
and r0, r1
|
|
str r0, [r2]
|
|
bl GfGfx_DisableEngineAPlanes
|
|
bl GfGfx_DisableEngineBPlanes
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E5D7C:
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, #1
|
|
str r0, [r4, #8]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_021E5D88: .word 0xFFFFE0FF
|
|
_021E5D8C: .word 0x04001000
|
|
thumb_func_end ov108_021E5D0C
|
|
|
|
thumb_func_start ov108_021E5D90
|
|
ov108_021E5D90: ; 0x021E5D90
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov108_021E6240
|
|
cmp r0, #0
|
|
beq _021E5DA0
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E5DA0:
|
|
ldr r0, [r4, #0x10]
|
|
cmp r0, #0
|
|
bne _021E5DAE
|
|
add r0, r4, #0
|
|
bl ov108_021E62B4
|
|
pop {r4, pc}
|
|
_021E5DAE:
|
|
add r0, r4, #0
|
|
bl ov108_021E63B8
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E5D90
|
|
|
|
thumb_func_start ov108_021E5DB8
|
|
ov108_021E5DB8: ; 0x021E5DB8
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _021E5E5C ; =0x000004BC
|
|
ldr r0, [r5, r0]
|
|
bl sub_020186A4
|
|
add r6, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r6, r0
|
|
bne _021E5DD2
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_021E5DD2:
|
|
ldr r0, _021E5E5C ; =0x000004BC
|
|
ldr r0, [r5, r0]
|
|
add r1, r0, #0
|
|
add r1, #0x27
|
|
ldrb r1, [r1]
|
|
lsl r1, r1, #0x18
|
|
lsr r4, r1, #0x19
|
|
bl sub_02018680
|
|
ldr r0, [r5, #0x10]
|
|
cmp r4, r0
|
|
beq _021E5DFC
|
|
cmp r4, #0
|
|
bne _021E5DF6
|
|
add r0, r5, #0
|
|
bl ov108_021E61E8
|
|
b _021E5DFC
|
|
_021E5DF6:
|
|
add r0, r5, #0
|
|
bl ov108_021E6238
|
|
_021E5DFC:
|
|
str r4, [r5, #0x10]
|
|
cmp r6, #0
|
|
beq _021E5E0A
|
|
cmp r6, #1
|
|
beq _021E5E14
|
|
cmp r6, #2
|
|
b _021E5E40
|
|
_021E5E0A:
|
|
ldr r0, _021E5E60 ; =0x000184E0
|
|
mov r1, #0
|
|
strb r1, [r5, r0]
|
|
mov r0, #2
|
|
pop {r4, r5, r6, pc}
|
|
_021E5E14:
|
|
mov r2, #0
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
add r3, r2, #0
|
|
bl ov108_021E79A8
|
|
mov r2, #0
|
|
add r0, r5, #0
|
|
mov r1, #4
|
|
add r3, r2, #0
|
|
bl ov108_021E79A8
|
|
ldr r0, _021E5E64 ; =0x000184DF
|
|
ldrb r1, [r5, r0]
|
|
add r0, r0, #1
|
|
strb r1, [r5, r0]
|
|
add r0, r5, #0
|
|
bl ov108_021E6804
|
|
mov r0, #4
|
|
str r0, [r5, #0xc]
|
|
pop {r4, r5, r6, pc}
|
|
_021E5E40:
|
|
mov r2, #0
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
add r3, r2, #0
|
|
bl ov108_021E79A8
|
|
mov r2, #0
|
|
add r0, r5, #0
|
|
mov r1, #4
|
|
add r3, r2, #0
|
|
bl ov108_021E79A8
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021E5E5C: .word 0x000004BC
|
|
_021E5E60: .word 0x000184E0
|
|
_021E5E64: .word 0x000184DF
|
|
thumb_func_end ov108_021E5DB8
|
|
|
|
thumb_func_start ov108_021E5E68
|
|
ov108_021E5E68: ; 0x021E5E68
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r1, [r4, #8]
|
|
cmp r1, #0
|
|
beq _021E5E78
|
|
cmp r1, #1
|
|
beq _021E5E84
|
|
b _021E5E94
|
|
_021E5E78:
|
|
bl ov108_021E7F7C
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, #1
|
|
str r0, [r4, #8]
|
|
b _021E5EF6
|
|
_021E5E84:
|
|
bl ov108_021E80F4
|
|
cmp r0, #0
|
|
beq _021E5EF6
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, #1
|
|
str r0, [r4, #8]
|
|
b _021E5EF6
|
|
_021E5E94:
|
|
ldr r3, _021E5EFC ; =0x04001000
|
|
ldr r1, _021E5F00 ; =0xFFFF1FFF
|
|
ldr r2, [r3]
|
|
and r1, r2
|
|
str r1, [r3]
|
|
ldr r2, _021E5F04 ; =0x000184E1
|
|
mov r1, #0
|
|
strb r1, [r4, r2]
|
|
str r1, [r4, #8]
|
|
add r2, r2, #1
|
|
ldrb r2, [r4, r2]
|
|
lsl r2, r2, #0x18
|
|
lsr r2, r2, #0x1b
|
|
bne _021E5ED2
|
|
mov r2, #3
|
|
str r2, [r4, #0xc]
|
|
mov r2, #1
|
|
add r3, r2, #0
|
|
bl ov108_021E7700
|
|
add r0, r4, #0
|
|
bl ov108_021E7EB0
|
|
ldr r1, _021E5F08 ; =0x000184E2
|
|
mov r0, #0xf8
|
|
ldrb r2, [r4, r1]
|
|
bic r2, r0
|
|
mov r0, #8
|
|
orr r0, r2
|
|
strb r0, [r4, r1]
|
|
b _021E5EF2
|
|
_021E5ED2:
|
|
mov r2, #2
|
|
str r2, [r4, #0xc]
|
|
add r2, r1, #0
|
|
mov r3, #1
|
|
bl ov108_021E7700
|
|
ldr r1, _021E5F0C ; =0x000184DF
|
|
add r0, r4, #0
|
|
ldrb r1, [r4, r1]
|
|
bl ov108_021E7CD8
|
|
ldr r1, _021E5F08 ; =0x000184E2
|
|
mov r0, #0xf8
|
|
ldrb r2, [r4, r1]
|
|
bic r2, r0
|
|
strb r2, [r4, r1]
|
|
_021E5EF2:
|
|
mov r0, #4
|
|
pop {r4, pc}
|
|
_021E5EF6:
|
|
mov r0, #2
|
|
pop {r4, pc}
|
|
nop
|
|
_021E5EFC: .word 0x04001000
|
|
_021E5F00: .word 0xFFFF1FFF
|
|
_021E5F04: .word 0x000184E1
|
|
_021E5F08: .word 0x000184E2
|
|
_021E5F0C: .word 0x000184DF
|
|
thumb_func_end ov108_021E5E68
|
|
|
|
thumb_func_start ov108_021E5F10
|
|
ov108_021E5F10: ; 0x021E5F10
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov108_021E6240
|
|
cmp r0, #0
|
|
beq _021E5F20
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E5F20:
|
|
ldr r0, [r4, #0x10]
|
|
cmp r0, #0
|
|
bne _021E5F2E
|
|
add r0, r4, #0
|
|
bl ov108_021E64C0
|
|
pop {r4, pc}
|
|
_021E5F2E:
|
|
add r0, r4, #0
|
|
bl ov108_021E66AC
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E5F10
|
|
|
|
thumb_func_start ov108_021E5F38
|
|
ov108_021E5F38: ; 0x021E5F38
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x13
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
bl sub_020168F4
|
|
cmp r0, #1
|
|
beq _021E5F50
|
|
cmp r0, #2
|
|
beq _021E5F88
|
|
b _021E5F9E
|
|
_021E5F50:
|
|
ldr r1, _021E6008 ; =0x000184E0
|
|
mov r4, #1
|
|
sub r2, r1, #2
|
|
ldrb r3, [r5, r2]
|
|
ldrb r0, [r5, r1]
|
|
mov r2, #6
|
|
mul r2, r3
|
|
add r0, r0, r2
|
|
lsl r0, r0, #0x18
|
|
lsr r2, r0, #0x18
|
|
sub r0, r1, #1
|
|
ldrb r3, [r5, r0]
|
|
mov r0, #0x7a
|
|
mul r0, r3
|
|
add r0, r5, r0
|
|
ldrb r0, [r0, #0x1c]
|
|
cmp r2, r0
|
|
beq _021E5FA2
|
|
add r0, r1, #0
|
|
add r0, #8
|
|
str r4, [r5, r0]
|
|
sub r1, r1, #1
|
|
add r0, r5, #0
|
|
ldrb r1, [r5, r1]
|
|
add r0, #0x1c
|
|
bl SafariZone_InitAreaInSet
|
|
b _021E5FA2
|
|
_021E5F88:
|
|
ldr r0, _021E600C ; =0x000184DF
|
|
mov r2, #0x7a
|
|
ldrb r1, [r5, r0]
|
|
add r0, r5, #0
|
|
mul r2, r1
|
|
add r2, r5, r2
|
|
ldrb r2, [r2, #0x1c]
|
|
bl ov108_021E7BB4
|
|
mov r4, #0
|
|
b _021E5FA2
|
|
_021E5F9E:
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_021E5FA2:
|
|
mov r0, #0x13
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
bl sub_020169C0
|
|
add r6, r0, #0
|
|
ldr r0, [r5, #0x10]
|
|
cmp r6, r0
|
|
beq _021E5FC6
|
|
cmp r6, #0
|
|
bne _021E5FC0
|
|
add r0, r5, #0
|
|
bl ov108_021E61E8
|
|
b _021E5FC6
|
|
_021E5FC0:
|
|
add r0, r5, #0
|
|
bl ov108_021E6238
|
|
_021E5FC6:
|
|
mov r0, #0x13
|
|
str r6, [r5, #0x10]
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
bl sub_020169CC
|
|
mov r0, #0xf1
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
bl ClearWindowTilemapAndCopyToVram
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl ov108_021E767C
|
|
mov r2, #1
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
add r3, r2, #0
|
|
bl ov108_021E7700
|
|
mov r2, #0
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
add r3, r2, #0
|
|
bl ov108_021E79A8
|
|
cmp r4, #0
|
|
beq _021E6004
|
|
mov r0, #2
|
|
pop {r4, r5, r6, pc}
|
|
_021E6004:
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021E6008: .word 0x000184E0
|
|
_021E600C: .word 0x000184DF
|
|
thumb_func_end ov108_021E5F38
|
|
|
|
thumb_func_start ov108_021E6010
|
|
ov108_021E6010: ; 0x021E6010
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r1, [r4, #8]
|
|
cmp r1, #0
|
|
beq _021E6020
|
|
cmp r1, #1
|
|
beq _021E602C
|
|
b _021E603C
|
|
_021E6020:
|
|
bl ov108_021E81A8
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, #1
|
|
str r0, [r4, #8]
|
|
b _021E6060
|
|
_021E602C:
|
|
bl ov108_021E8270
|
|
cmp r0, #0
|
|
beq _021E6060
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, #1
|
|
str r0, [r4, #8]
|
|
b _021E6060
|
|
_021E603C:
|
|
ldr r2, _021E6064 ; =0x000184E2
|
|
mov r1, #4
|
|
ldrb r3, [r4, r2]
|
|
add r0, r3, #0
|
|
bic r0, r1
|
|
lsl r1, r3, #0x1d
|
|
lsr r3, r1, #0x1f
|
|
mov r1, #1
|
|
eor r1, r3
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
lsl r1, r1, #0x1f
|
|
lsr r1, r1, #0x1d
|
|
orr r0, r1
|
|
strb r0, [r4, r2]
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
pop {r4, pc}
|
|
_021E6060:
|
|
mov r0, #3
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E6064: .word 0x000184E2
|
|
thumb_func_end ov108_021E6010
|
|
|
|
thumb_func_start ov108_021E6068
|
|
ov108_021E6068: ; 0x021E6068
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov108_021E6240
|
|
cmp r0, #0
|
|
beq _021E6078
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E6078:
|
|
ldr r0, [r4, #0x10]
|
|
cmp r0, #0
|
|
bne _021E6086
|
|
add r0, r4, #0
|
|
bl ov108_021E6894
|
|
pop {r4, pc}
|
|
_021E6086:
|
|
add r0, r4, #0
|
|
bl ov108_021E69A0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E6068
|
|
|
|
thumb_func_start ov108_021E6090
|
|
ov108_021E6090: ; 0x021E6090
|
|
push {r3, r4, r5, lr}
|
|
ldr r2, _021E61D8 ; =0x000184E2
|
|
add r5, r0, #0
|
|
ldrb r1, [r5, r2]
|
|
lsl r1, r1, #0x1d
|
|
lsr r3, r1, #0x1f
|
|
mov r1, #6
|
|
add r4, r3, #0
|
|
mul r4, r1
|
|
ldr r1, [r5, #8]
|
|
cmp r1, #0
|
|
beq _021E60B2
|
|
cmp r1, #1
|
|
beq _021E60EE
|
|
cmp r1, #2
|
|
beq _021E6174
|
|
b _021E61BA
|
|
_021E60B2:
|
|
sub r0, r2, #3
|
|
ldrb r0, [r5, r0]
|
|
add r0, r0, r4
|
|
lsl r0, r0, #2
|
|
add r1, r5, r0
|
|
mov r0, #0xdb
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpritePriority
|
|
ldr r0, _021E61DC ; =0x000184E0
|
|
ldrb r0, [r5, r0]
|
|
add r0, r0, r4
|
|
lsl r0, r0, #2
|
|
add r1, r5, r0
|
|
mov r0, #0xdb
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpritePriority
|
|
mov r0, #0x10
|
|
mov r1, #0
|
|
bl GfGfx_EngineBTogglePlanes
|
|
ldr r0, [r5, #8]
|
|
add r0, r0, #1
|
|
str r0, [r5, #8]
|
|
b _021E61D2
|
|
_021E60EE:
|
|
mov r1, #0
|
|
bl ov108_021E82E0
|
|
cmp r0, #0
|
|
beq _021E61D2
|
|
ldr r2, _021E61E0 ; =0x000184E8
|
|
mov r0, #1
|
|
add r1, r2, #0
|
|
str r0, [r5, r2]
|
|
sub r1, #9
|
|
sub r2, #8
|
|
add r0, r5, #0
|
|
ldrb r1, [r5, r1]
|
|
ldrb r2, [r5, r2]
|
|
add r0, #0x1c
|
|
bl SafariZone_SwapAreasInSet
|
|
ldr r0, _021E61E4 ; =0x000184DF
|
|
mov r3, #0x7a
|
|
ldrb r2, [r5, r0]
|
|
mov r0, #0xd2
|
|
lsl r0, r0, #2
|
|
add r1, r2, r4
|
|
mul r3, r2
|
|
add r2, r5, r3
|
|
lsl r1, r1, #0x18
|
|
ldrb r2, [r2, #0x1c]
|
|
ldr r0, [r5, r0]
|
|
lsr r1, r1, #0x18
|
|
bl ov108_021E84F8
|
|
ldr r0, _021E61E4 ; =0x000184DF
|
|
mov r2, #0x7a
|
|
ldrb r1, [r5, r0]
|
|
add r0, r5, #0
|
|
mul r2, r1
|
|
add r2, r5, r2
|
|
ldrb r2, [r2, #0x1c]
|
|
bl ov108_021E7BB4
|
|
ldr r0, _021E61DC ; =0x000184E0
|
|
mov r3, #0x7a
|
|
ldrb r2, [r5, r0]
|
|
mov r0, #0xd2
|
|
lsl r0, r0, #2
|
|
add r1, r2, r4
|
|
mul r3, r2
|
|
add r2, r5, r3
|
|
lsl r1, r1, #0x18
|
|
ldrb r2, [r2, #0x1c]
|
|
ldr r0, [r5, r0]
|
|
lsr r1, r1, #0x18
|
|
bl ov108_021E84F8
|
|
ldr r0, _021E61DC ; =0x000184E0
|
|
mov r2, #0x7a
|
|
ldrb r1, [r5, r0]
|
|
add r0, r5, #0
|
|
mul r2, r1
|
|
add r2, r5, r2
|
|
ldrb r2, [r2, #0x1c]
|
|
bl ov108_021E7BB4
|
|
ldr r0, [r5, #8]
|
|
add r0, r0, #1
|
|
str r0, [r5, #8]
|
|
b _021E61D2
|
|
_021E6174:
|
|
mov r1, #1
|
|
bl ov108_021E82E0
|
|
cmp r0, #0
|
|
beq _021E61D2
|
|
ldr r0, _021E61E4 ; =0x000184DF
|
|
ldrb r0, [r5, r0]
|
|
add r0, r0, r4
|
|
lsl r0, r0, #2
|
|
add r1, r5, r0
|
|
mov r0, #0xdb
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #2
|
|
bl UnkImageStruct_SetSpritePriority
|
|
ldr r0, _021E61DC ; =0x000184E0
|
|
ldrb r0, [r5, r0]
|
|
add r0, r0, r4
|
|
lsl r0, r0, #2
|
|
add r1, r5, r0
|
|
mov r0, #0xdb
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #2
|
|
bl UnkImageStruct_SetSpritePriority
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl GfGfx_EngineBTogglePlanes
|
|
ldr r0, [r5, #8]
|
|
add r0, r0, #1
|
|
str r0, [r5, #8]
|
|
b _021E61D2
|
|
_021E61BA:
|
|
sub r1, r2, #2
|
|
ldrb r3, [r5, r1]
|
|
sub r1, r2, #3
|
|
strb r3, [r5, r1]
|
|
bl ov108_021E6850
|
|
mov r0, #0
|
|
str r0, [r5, #8]
|
|
mov r0, #2
|
|
str r0, [r5, #0xc]
|
|
mov r0, #4
|
|
pop {r3, r4, r5, pc}
|
|
_021E61D2:
|
|
mov r0, #3
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E61D8: .word 0x000184E2
|
|
_021E61DC: .word 0x000184E0
|
|
_021E61E0: .word 0x000184E8
|
|
_021E61E4: .word 0x000184DF
|
|
thumb_func_end ov108_021E6090
|
|
|
|
thumb_func_start ov108_021E61E8
|
|
ov108_021E61E8: ; 0x021E61E8
|
|
push {r4, lr}
|
|
ldr r2, _021E6230 ; =0x000184E2
|
|
add r4, r0, #0
|
|
ldrb r1, [r4, r2]
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x1b
|
|
beq _021E6200
|
|
cmp r1, #1
|
|
beq _021E620C
|
|
cmp r1, #2
|
|
beq _021E6224
|
|
pop {r4, pc}
|
|
_021E6200:
|
|
sub r2, r2, #3
|
|
ldrb r2, [r4, r2]
|
|
mov r1, #0
|
|
bl ov108_021E78F4
|
|
pop {r4, pc}
|
|
_021E620C:
|
|
sub r2, r2, #2
|
|
ldrb r2, [r4, r2]
|
|
mov r1, #1
|
|
bl ov108_021E78F4
|
|
ldr r2, _021E6234 ; =0x000184DF
|
|
add r0, r4, #0
|
|
ldrb r2, [r4, r2]
|
|
mov r1, #2
|
|
bl ov108_021E78F4
|
|
pop {r4, pc}
|
|
_021E6224:
|
|
sub r2, r2, #2
|
|
ldrb r2, [r4, r2]
|
|
mov r1, #0
|
|
bl ov108_021E78F4
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E6230: .word 0x000184E2
|
|
_021E6234: .word 0x000184DF
|
|
thumb_func_end ov108_021E61E8
|
|
|
|
thumb_func_start ov108_021E6238
|
|
ov108_021E6238: ; 0x021E6238
|
|
ldr r3, _021E623C ; =ov108_021E61E8
|
|
bx r3
|
|
.balign 4, 0
|
|
_021E623C: .word ov108_021E61E8
|
|
thumb_func_end ov108_021E6238
|
|
|
|
thumb_func_start ov108_021E6240
|
|
ov108_021E6240: ; 0x021E6240
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x10]
|
|
cmp r0, #1
|
|
bne _021E6276
|
|
bl System_GetTouchHeld
|
|
cmp r0, #0
|
|
beq _021E6256
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E6256:
|
|
ldr r0, _021E62A8 ; =gSystem
|
|
ldr r0, [r0, #0x44]
|
|
cmp r0, #0
|
|
beq _021E62A4
|
|
ldr r0, _021E62AC ; =0x000004C4
|
|
ldr r1, [r4, r0]
|
|
cmp r1, #0
|
|
beq _021E626A
|
|
add r0, r4, #0
|
|
blx r1
|
|
_021E626A:
|
|
add r0, r4, #0
|
|
bl ov108_021E61E8
|
|
mov r0, #0
|
|
str r0, [r4, #0x10]
|
|
pop {r4, pc}
|
|
_021E6276:
|
|
ldr r0, _021E62A8 ; =gSystem
|
|
ldr r0, [r0, #0x44]
|
|
cmp r0, #0
|
|
beq _021E6282
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E6282:
|
|
bl System_GetTouchHeld
|
|
cmp r0, #0
|
|
beq _021E62A4
|
|
ldr r0, _021E62B0 ; =0x000004C8
|
|
ldr r1, [r4, r0]
|
|
cmp r1, #0
|
|
beq _021E6296
|
|
add r0, r4, #0
|
|
blx r1
|
|
_021E6296:
|
|
add r0, r4, #0
|
|
bl ov108_021E6238
|
|
mov r0, #1
|
|
str r0, [r4, #0x10]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E62A4:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E62A8: .word gSystem
|
|
_021E62AC: .word 0x000004C4
|
|
_021E62B0: .word 0x000004C8
|
|
thumb_func_end ov108_021E6240
|
|
|
|
thumb_func_start ov108_021E62B4
|
|
ov108_021E62B4: ; 0x021E62B4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _021E63A8 ; =gSystem
|
|
ldr r4, [r0, #0x48]
|
|
mov r0, #2
|
|
tst r0, r4
|
|
beq _021E62D0
|
|
ldr r0, _021E63AC ; =0x000005DC
|
|
bl PlaySE
|
|
mov r0, #6
|
|
str r0, [r5, #0xc]
|
|
mov r0, #4
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E62D0:
|
|
mov r0, #1
|
|
tst r0, r4
|
|
beq _021E62FA
|
|
ldr r0, _021E63B0 ; =0x000184DF
|
|
ldrb r0, [r5, r0]
|
|
cmp r0, #6
|
|
ldr r0, _021E63AC ; =0x000005DC
|
|
blo _021E62EC
|
|
bl PlaySE
|
|
mov r0, #6
|
|
str r0, [r5, #0xc]
|
|
mov r0, #4
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E62EC:
|
|
bl PlaySE
|
|
add r0, r5, #0
|
|
bl ov108_021E6A58
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E62FA:
|
|
mov r0, #0xf0
|
|
tst r0, r4
|
|
bne _021E6304
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E6304:
|
|
ldr r0, _021E63B0 ; =0x000184DF
|
|
mov r1, #3
|
|
ldrb r6, [r5, r0]
|
|
add r0, r6, #0
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r7, r0, #0x18
|
|
add r0, r6, #0
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r0, r0, #0x18
|
|
lsr r6, r0, #0x18
|
|
cmp r6, #2
|
|
bhs _021E634A
|
|
mov r0, #0x10
|
|
tst r0, r4
|
|
beq _021E6338
|
|
add r0, r7, #1
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r7, r0, #0x18
|
|
b _021E634A
|
|
_021E6338:
|
|
mov r0, #0x20
|
|
tst r0, r4
|
|
beq _021E634A
|
|
add r0, r7, #2
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r7, r0, #0x18
|
|
_021E634A:
|
|
mov r0, #0x40
|
|
tst r0, r4
|
|
beq _021E635E
|
|
add r0, r6, #2
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r6, r0, #0x18
|
|
b _021E6370
|
|
_021E635E:
|
|
mov r0, #0x80
|
|
tst r0, r4
|
|
beq _021E6370
|
|
add r0, r6, #1
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r6, r0, #0x18
|
|
_021E6370:
|
|
lsl r0, r6, #1
|
|
add r0, r6, r0
|
|
add r1, r7, r0
|
|
ldr r0, _021E63B0 ; =0x000184DF
|
|
cmp r6, #2
|
|
strb r1, [r5, r0]
|
|
blo _021E6388
|
|
ldr r0, _021E63A8 ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #0xc0
|
|
tst r0, r1
|
|
beq _021E638E
|
|
_021E6388:
|
|
ldr r0, _021E63B4 ; =0x000005E5
|
|
bl PlaySE
|
|
_021E638E:
|
|
ldr r2, _021E63B0 ; =0x000184DF
|
|
add r0, r5, #0
|
|
ldrb r2, [r5, r2]
|
|
mov r1, #0
|
|
bl ov108_021E78F4
|
|
ldr r1, _021E63B0 ; =0x000184DF
|
|
add r0, r5, #0
|
|
ldrb r1, [r5, r1]
|
|
bl ov108_021E7CD8
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E63A8: .word gSystem
|
|
_021E63AC: .word 0x000005DC
|
|
_021E63B0: .word 0x000184DF
|
|
_021E63B4: .word 0x000005E5
|
|
thumb_func_end ov108_021E62B4
|
|
|
|
thumb_func_start ov108_021E63B8
|
|
ov108_021E63B8: ; 0x021E63B8
|
|
push {r4, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
ldr r0, _021E643C ; =ov108_021EA760
|
|
bl TouchscreenHitbox_FindRectAtTouchNew
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _021E63D2
|
|
add sp, #8
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E63D2:
|
|
cmp r0, #6
|
|
bne _021E640C
|
|
ldr r1, _021E6440 ; =0x0000FFFE
|
|
add r0, sp, #4
|
|
strh r1, [r0]
|
|
add r0, sp, #4
|
|
str r0, [sp]
|
|
ldr r3, _021E6444 ; =gSystem + 0x40
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldrh r2, [r3, #0x20]
|
|
ldrh r3, [r3, #0x22]
|
|
ldr r0, [r4, r0]
|
|
mov r1, #3
|
|
bl DoesPixelAtScreenXYMatchPtrVal
|
|
cmp r0, #0
|
|
bne _021E63FC
|
|
add sp, #8
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E63FC:
|
|
ldr r0, _021E6448 ; =0x000005DC
|
|
bl PlaySE
|
|
mov r0, #6
|
|
str r0, [r4, #0xc]
|
|
add sp, #8
|
|
mov r0, #4
|
|
pop {r4, pc}
|
|
_021E640C:
|
|
ldr r2, _021E644C ; =0x000184DF
|
|
mov r1, #0
|
|
strb r0, [r4, r2]
|
|
add r0, r2, #1
|
|
strb r1, [r4, r0]
|
|
ldrb r2, [r4, r2]
|
|
add r0, r4, #0
|
|
bl ov108_021E78F4
|
|
ldr r1, _021E644C ; =0x000184DF
|
|
add r0, r4, #0
|
|
ldrb r1, [r4, r1]
|
|
bl ov108_021E7CD8
|
|
ldr r0, _021E6448 ; =0x000005DC
|
|
bl PlaySE
|
|
add r0, r4, #0
|
|
bl ov108_021E6A58
|
|
mov r0, #1
|
|
add sp, #8
|
|
pop {r4, pc}
|
|
nop
|
|
_021E643C: .word ov108_021EA760
|
|
_021E6440: .word 0x0000FFFE
|
|
_021E6444: .word gSystem + 0x40
|
|
_021E6448: .word 0x000005DC
|
|
_021E644C: .word 0x000184DF
|
|
thumb_func_end ov108_021E63B8
|
|
|
|
thumb_func_start ov108_021E6450
|
|
ov108_021E6450: ; 0x021E6450
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021E64B4 ; =0x000005DC
|
|
bl PlaySE
|
|
ldr r1, _021E64B8 ; =0x000184E3
|
|
ldrb r0, [r4, r1]
|
|
cmp r0, #0
|
|
beq _021E646C
|
|
add r0, r4, #0
|
|
bl ov108_021E6B00
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E646C:
|
|
sub r0, r1, #3
|
|
ldrb r3, [r4, r0]
|
|
sub r0, r1, #5
|
|
ldrb r2, [r4, r0]
|
|
mov r0, #6
|
|
mul r0, r2
|
|
add r0, r3, r0
|
|
lsl r0, r0, #0x18
|
|
lsr r2, r0, #0x18
|
|
add r0, r1, #5
|
|
mov r3, #1
|
|
str r3, [r4, r0]
|
|
sub r1, r1, #4
|
|
add r0, r4, #0
|
|
ldrb r1, [r4, r1]
|
|
add r0, #0x1c
|
|
bl SafariZone_InitAreaInSet
|
|
ldr r0, _021E64BC ; =0x000184DF
|
|
mov r2, #0x7a
|
|
ldrb r1, [r4, r0]
|
|
add r0, r4, #0
|
|
mul r2, r1
|
|
add r2, r4, r2
|
|
ldrb r2, [r2, #0x1c]
|
|
bl ov108_021E7BB4
|
|
mov r2, #0
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
add r3, r2, #0
|
|
bl ov108_021E79A8
|
|
mov r0, #2
|
|
pop {r4, pc}
|
|
nop
|
|
_021E64B4: .word 0x000005DC
|
|
_021E64B8: .word 0x000184E3
|
|
_021E64BC: .word 0x000184DF
|
|
thumb_func_end ov108_021E6450
|
|
|
|
thumb_func_start ov108_021E64C0
|
|
ov108_021E64C0: ; 0x021E64C0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
ldr r1, _021E6694 ; =0x000184E0
|
|
add r5, r0, #0
|
|
ldrb r2, [r5, r1]
|
|
str r2, [sp]
|
|
ldr r2, _021E6698 ; =gSystem
|
|
ldr r7, [r2, #0x48]
|
|
mov r2, #2
|
|
tst r2, r7
|
|
beq _021E64E2
|
|
ldr r0, _021E669C ; =0x000005DC
|
|
bl PlaySE
|
|
add sp, #8
|
|
mov r0, #2
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E64E2:
|
|
mov r2, #1
|
|
tst r2, r7
|
|
beq _021E6526
|
|
ldr r2, [sp]
|
|
cmp r2, #6
|
|
blo _021E64FA
|
|
ldr r0, _021E669C ; =0x000005DC
|
|
bl PlaySE
|
|
add sp, #8
|
|
mov r0, #2
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E64FA:
|
|
sub r2, r1, #2
|
|
ldrb r3, [r5, r2]
|
|
sub r1, r1, #1
|
|
mov r2, #6
|
|
add r4, r3, #0
|
|
ldrb r3, [r5, r1]
|
|
mov r1, #0x7a
|
|
mul r4, r2
|
|
mul r1, r3
|
|
add r1, r5, r1
|
|
ldr r2, [sp]
|
|
ldrb r1, [r1, #0x1c]
|
|
add r2, r2, r4
|
|
cmp r2, r1
|
|
bne _021E651E
|
|
add sp, #8
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E651E:
|
|
bl ov108_021E6450
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E6526:
|
|
mov r0, #0xf0
|
|
tst r0, r7
|
|
bne _021E6532
|
|
add sp, #8
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E6532:
|
|
ldr r0, [sp]
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r6, r0, #0x18
|
|
ldr r0, [sp]
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
mov r0, #0x10
|
|
tst r0, r7
|
|
beq _021E65B6
|
|
cmp r4, #2
|
|
bhs _021E65B6
|
|
cmp r6, #2
|
|
bne _021E65A8
|
|
cmp r4, #0
|
|
bne _021E6576
|
|
mov r0, #1
|
|
eor r0, r4
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
add r0, r6, #1
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r6, r0, #0x18
|
|
b _021E6644
|
|
_021E6576:
|
|
cmp r4, #2
|
|
bhs _021E6644
|
|
ldr r1, _021E66A0 ; =0x000184DE
|
|
ldrb r0, [r5, r1]
|
|
cmp r0, #1
|
|
bhs _021E6644
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
add r0, r1, #4
|
|
ldrb r2, [r5, r0]
|
|
mov r0, #2
|
|
bic r2, r0
|
|
add r0, r1, #4
|
|
strb r2, [r5, r0]
|
|
ldr r0, [sp, #4]
|
|
mov r1, #3
|
|
eor r0, r4
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
add r0, r6, #1
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r6, r0, #0x18
|
|
b _021E6644
|
|
_021E65A8:
|
|
add r0, r6, #1
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r6, r0, #0x18
|
|
b _021E6644
|
|
_021E65B6:
|
|
mov r0, #0x20
|
|
tst r0, r7
|
|
beq _021E661E
|
|
cmp r4, #2
|
|
bhs _021E661E
|
|
cmp r6, #0
|
|
bne _021E6610
|
|
cmp r4, #1
|
|
bne _021E65DE
|
|
mov r0, #1
|
|
eor r0, r4
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
add r0, r6, #2
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r6, r0, #0x18
|
|
b _021E6644
|
|
_021E65DE:
|
|
cmp r4, #2
|
|
bhs _021E6644
|
|
ldr r1, _021E66A0 ; =0x000184DE
|
|
ldrb r0, [r5, r1]
|
|
cmp r0, #0
|
|
beq _021E6644
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
add r0, r1, #4
|
|
ldrb r2, [r5, r0]
|
|
mov r0, #2
|
|
orr r2, r0
|
|
add r0, r1, #4
|
|
strb r2, [r5, r0]
|
|
ldr r0, [sp, #4]
|
|
mov r1, #3
|
|
eor r0, r4
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
add r0, r6, #2
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r6, r0, #0x18
|
|
b _021E6644
|
|
_021E6610:
|
|
add r0, r6, #2
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r6, r0, #0x18
|
|
b _021E6644
|
|
_021E661E:
|
|
mov r0, #0x40
|
|
tst r0, r7
|
|
beq _021E6632
|
|
add r0, r4, #2
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r4, r0, #0x18
|
|
b _021E6644
|
|
_021E6632:
|
|
mov r0, #0x80
|
|
tst r0, r7
|
|
beq _021E6644
|
|
add r0, r4, #1
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r4, r0, #0x18
|
|
_021E6644:
|
|
lsl r0, r4, #1
|
|
add r0, r4, r0
|
|
ldr r2, _021E6694 ; =0x000184E0
|
|
add r0, r6, r0
|
|
strb r0, [r5, r2]
|
|
ldrb r2, [r5, r2]
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov108_021E78F4
|
|
ldr r0, [sp, #4]
|
|
cmp r0, #0
|
|
beq _021E6676
|
|
ldr r0, _021E66A4 ; =0x000005E1
|
|
bl PlaySE
|
|
mov r2, #0
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
add r3, r2, #0
|
|
bl ov108_021E78C0
|
|
add sp, #8
|
|
mov r0, #3
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E6676:
|
|
ldr r0, _021E6694 ; =0x000184E0
|
|
ldrb r1, [r5, r0]
|
|
ldr r0, [sp]
|
|
cmp r0, r1
|
|
beq _021E6686
|
|
ldr r0, _021E66A8 ; =0x000005E5
|
|
bl PlaySE
|
|
_021E6686:
|
|
add r0, r5, #0
|
|
bl ov108_021E7EB0
|
|
mov r0, #0
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E6694: .word 0x000184E0
|
|
_021E6698: .word gSystem
|
|
_021E669C: .word 0x000005DC
|
|
_021E66A0: .word 0x000184DE
|
|
_021E66A4: .word 0x000005E1
|
|
_021E66A8: .word 0x000005E5
|
|
thumb_func_end ov108_021E64C0
|
|
|
|
thumb_func_start ov108_021E66AC
|
|
ov108_021E66AC: ; 0x021E66AC
|
|
push {r4, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
ldr r0, _021E67E8 ; =ov108_021EA7D0
|
|
bl TouchscreenHitbox_FindRectAtTouchNew
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _021E66C6
|
|
add sp, #8
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E66C6:
|
|
cmp r0, #6
|
|
beq _021E66D4
|
|
cmp r0, #7
|
|
beq _021E670C
|
|
cmp r0, #8
|
|
beq _021E675A
|
|
b _021E67A6
|
|
_021E66D4:
|
|
ldr r1, _021E67EC ; =0x0000FFFE
|
|
add r0, sp, #4
|
|
strh r1, [r0]
|
|
add r0, sp, #4
|
|
str r0, [sp]
|
|
ldr r3, _021E67F0 ; =gSystem + 0x40
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldrh r2, [r3, #0x20]
|
|
ldrh r3, [r3, #0x22]
|
|
ldr r0, [r4, r0]
|
|
mov r1, #3
|
|
bl DoesPixelAtScreenXYMatchPtrVal
|
|
cmp r0, #0
|
|
bne _021E66FA
|
|
add sp, #8
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E66FA:
|
|
ldr r0, _021E67F4 ; =0x000184E0
|
|
mov r1, #6
|
|
strb r1, [r4, r0]
|
|
ldr r0, _021E67F8 ; =0x000005DC
|
|
bl PlaySE
|
|
add sp, #8
|
|
mov r0, #2
|
|
pop {r4, pc}
|
|
_021E670C:
|
|
ldr r1, _021E67FC ; =0x000184DE
|
|
ldrb r0, [r4, r1]
|
|
cmp r0, #0
|
|
bne _021E671A
|
|
add sp, #8
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E671A:
|
|
add r0, r1, #4
|
|
ldrb r2, [r4, r0]
|
|
mov r0, #2
|
|
orr r2, r0
|
|
add r0, r1, #4
|
|
strb r2, [r4, r0]
|
|
add r0, r1, #2
|
|
mov r2, #5
|
|
strb r2, [r4, r0]
|
|
mov r2, #0
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
add r3, r2, #0
|
|
bl ov108_021E78C0
|
|
mov r0, #0xd9
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimActiveFlag
|
|
mov r0, #0xd9
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl Sprite_ResetAnimCtrlState
|
|
ldr r0, _021E6800 ; =0x000005E1
|
|
bl PlaySE
|
|
add sp, #8
|
|
mov r0, #3
|
|
pop {r4, pc}
|
|
_021E675A:
|
|
ldr r1, _021E67FC ; =0x000184DE
|
|
ldrb r0, [r4, r1]
|
|
cmp r0, #1
|
|
bne _021E6768
|
|
add sp, #8
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E6768:
|
|
add r0, r1, #4
|
|
ldrb r2, [r4, r0]
|
|
mov r0, #2
|
|
bic r2, r0
|
|
add r0, r1, #4
|
|
strb r2, [r4, r0]
|
|
mov r2, #0
|
|
add r0, r1, #2
|
|
strb r2, [r4, r0]
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
add r3, r2, #0
|
|
bl ov108_021E78C0
|
|
mov r0, #0xda
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimActiveFlag
|
|
mov r0, #0xda
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl Sprite_ResetAnimCtrlState
|
|
ldr r0, _021E6800 ; =0x000005E1
|
|
bl PlaySE
|
|
add sp, #8
|
|
mov r0, #3
|
|
pop {r4, pc}
|
|
_021E67A6:
|
|
ldr r2, _021E67F4 ; =0x000184E0
|
|
mov r1, #1
|
|
strb r0, [r4, r2]
|
|
ldrb r2, [r4, r2]
|
|
add r0, r4, #0
|
|
bl ov108_021E78F4
|
|
add r0, r4, #0
|
|
bl ov108_021E7EB0
|
|
ldr r1, _021E67F4 ; =0x000184E0
|
|
sub r0, r1, #2
|
|
ldrb r2, [r4, r0]
|
|
ldrb r3, [r4, r1]
|
|
mov r0, #6
|
|
mul r0, r2
|
|
sub r1, r1, #1
|
|
ldrb r2, [r4, r1]
|
|
mov r1, #0x7a
|
|
add r0, r3, r0
|
|
mul r1, r2
|
|
add r1, r4, r1
|
|
ldrb r1, [r1, #0x1c]
|
|
cmp r0, r1
|
|
bne _021E67DE
|
|
add sp, #8
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E67DE:
|
|
add r0, r4, #0
|
|
bl ov108_021E6450
|
|
add sp, #8
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E67E8: .word ov108_021EA7D0
|
|
_021E67EC: .word 0x0000FFFE
|
|
_021E67F0: .word gSystem + 0x40
|
|
_021E67F4: .word 0x000184E0
|
|
_021E67F8: .word 0x000005DC
|
|
_021E67FC: .word 0x000184DE
|
|
_021E6800: .word 0x000005E1
|
|
thumb_func_end ov108_021E66AC
|
|
|
|
thumb_func_start ov108_021E6804
|
|
ov108_021E6804: ; 0x021E6804
|
|
push {r4, lr}
|
|
ldr r2, _021E6848 ; =0x000184E2
|
|
add r4, r0, #0
|
|
ldrb r3, [r4, r2]
|
|
mov r1, #0xf8
|
|
bic r3, r1
|
|
mov r1, #0x10
|
|
orr r1, r3
|
|
strb r1, [r4, r2]
|
|
sub r2, r2, #2
|
|
ldrb r2, [r4, r2]
|
|
mov r1, #0
|
|
bl ov108_021E78F4
|
|
mov r0, #0xd5
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl thunk_Sprite_SetPriority
|
|
ldr r2, _021E684C ; =0x000184DF
|
|
add r0, r4, #0
|
|
ldrb r2, [r4, r2]
|
|
mov r1, #3
|
|
bl ov108_021E78F4
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #2
|
|
mov r3, #1
|
|
bl ov108_021E7700
|
|
pop {r4, pc}
|
|
nop
|
|
_021E6848: .word 0x000184E2
|
|
_021E684C: .word 0x000184DF
|
|
thumb_func_end ov108_021E6804
|
|
|
|
thumb_func_start ov108_021E6850
|
|
ov108_021E6850: ; 0x021E6850
|
|
push {r4, lr}
|
|
ldr r2, _021E6890 ; =0x000184E2
|
|
add r4, r0, #0
|
|
ldrb r3, [r4, r2]
|
|
mov r1, #0xf8
|
|
bic r3, r1
|
|
strb r3, [r4, r2]
|
|
sub r2, r2, #3
|
|
ldrb r2, [r4, r2]
|
|
mov r1, #0
|
|
bl ov108_021E78F4
|
|
mov r0, #0xd5
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #2
|
|
bl thunk_Sprite_SetPriority
|
|
mov r2, #0
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
add r3, r2, #0
|
|
bl ov108_021E78C0
|
|
mov r1, #0
|
|
add r0, r4, #0
|
|
add r2, r1, #0
|
|
mov r3, #1
|
|
bl ov108_021E7700
|
|
pop {r4, pc}
|
|
nop
|
|
_021E6890: .word 0x000184E2
|
|
thumb_func_end ov108_021E6850
|
|
|
|
thumb_func_start ov108_021E6894
|
|
ov108_021E6894: ; 0x021E6894
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
ldr r1, _021E698C ; =gSystem
|
|
add r5, r0, #0
|
|
ldr r4, [r1, #0x48]
|
|
mov r1, #2
|
|
tst r1, r4
|
|
beq _021E68B4
|
|
bl ov108_021E6850
|
|
mov r0, #2
|
|
str r0, [r5, #0xc]
|
|
ldr r0, _021E6990 ; =0x000005DC
|
|
bl PlaySE
|
|
mov r0, #4
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E68B4:
|
|
mov r0, #1
|
|
tst r0, r4
|
|
beq _021E68E8
|
|
ldr r0, _021E6994 ; =0x000184E0
|
|
ldrb r1, [r5, r0]
|
|
cmp r1, #6
|
|
bhs _021E68CA
|
|
sub r0, r0, #1
|
|
ldrb r0, [r5, r0]
|
|
cmp r0, r1
|
|
bne _021E68DE
|
|
_021E68CA:
|
|
add r0, r5, #0
|
|
bl ov108_021E6850
|
|
mov r0, #2
|
|
str r0, [r5, #0xc]
|
|
ldr r0, _021E6990 ; =0x000005DC
|
|
bl PlaySE
|
|
mov r0, #4
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E68DE:
|
|
ldr r0, _021E6998 ; =0x0000069C
|
|
bl PlaySE
|
|
mov r0, #3
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E68E8:
|
|
mov r0, #0xf0
|
|
tst r0, r4
|
|
bne _021E68F2
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E68F2:
|
|
ldr r0, _021E6994 ; =0x000184E0
|
|
mov r1, #3
|
|
ldrb r6, [r5, r0]
|
|
add r0, r6, #0
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r7, r0, #0x18
|
|
add r0, r6, #0
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r0, r0, #0x18
|
|
lsr r6, r0, #0x18
|
|
cmp r6, #2
|
|
bhs _021E6938
|
|
mov r0, #0x10
|
|
tst r0, r4
|
|
beq _021E6926
|
|
add r0, r7, #1
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r7, r0, #0x18
|
|
b _021E6938
|
|
_021E6926:
|
|
mov r0, #0x20
|
|
tst r0, r4
|
|
beq _021E6938
|
|
add r0, r7, #2
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r7, r0, #0x18
|
|
_021E6938:
|
|
mov r0, #0x40
|
|
tst r0, r4
|
|
beq _021E694C
|
|
add r0, r6, #2
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r6, r0, #0x18
|
|
b _021E695E
|
|
_021E694C:
|
|
mov r0, #0x80
|
|
tst r0, r4
|
|
beq _021E695E
|
|
add r0, r6, #1
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r6, r0, #0x18
|
|
_021E695E:
|
|
lsl r0, r6, #1
|
|
add r0, r6, r0
|
|
add r1, r7, r0
|
|
ldr r0, _021E6994 ; =0x000184E0
|
|
cmp r6, #2
|
|
strb r1, [r5, r0]
|
|
blo _021E6976
|
|
ldr r0, _021E698C ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #0xc0
|
|
tst r0, r1
|
|
beq _021E697C
|
|
_021E6976:
|
|
ldr r0, _021E699C ; =0x000005E5
|
|
bl PlaySE
|
|
_021E697C:
|
|
ldr r2, _021E6994 ; =0x000184E0
|
|
add r0, r5, #0
|
|
ldrb r2, [r5, r2]
|
|
mov r1, #0
|
|
bl ov108_021E78F4
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E698C: .word gSystem
|
|
_021E6990: .word 0x000005DC
|
|
_021E6994: .word 0x000184E0
|
|
_021E6998: .word 0x0000069C
|
|
_021E699C: .word 0x000005E5
|
|
thumb_func_end ov108_021E6894
|
|
|
|
thumb_func_start ov108_021E69A0
|
|
ov108_021E69A0: ; 0x021E69A0
|
|
push {r4, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
ldr r0, _021E6A3C ; =ov108_021EA760
|
|
bl TouchscreenHitbox_FindRectAtTouchNew
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _021E69BA
|
|
add sp, #8
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E69BA:
|
|
cmp r0, #6
|
|
bne _021E6A00
|
|
ldr r1, _021E6A40 ; =0x0000FFFE
|
|
add r0, sp, #4
|
|
strh r1, [r0]
|
|
add r0, sp, #4
|
|
str r0, [sp]
|
|
ldr r3, _021E6A44 ; =gSystem + 0x40
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldrh r2, [r3, #0x20]
|
|
ldrh r3, [r3, #0x22]
|
|
ldr r0, [r4, r0]
|
|
mov r1, #3
|
|
bl DoesPixelAtScreenXYMatchPtrVal
|
|
cmp r0, #0
|
|
bne _021E69E4
|
|
add sp, #8
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E69E4:
|
|
ldr r0, _021E6A48 ; =0x000184E0
|
|
mov r1, #6
|
|
strb r1, [r4, r0]
|
|
add r0, r4, #0
|
|
bl ov108_021E6850
|
|
mov r0, #2
|
|
str r0, [r4, #0xc]
|
|
ldr r0, _021E6A4C ; =0x000005DC
|
|
bl PlaySE
|
|
add sp, #8
|
|
mov r0, #4
|
|
pop {r4, pc}
|
|
_021E6A00:
|
|
ldr r2, _021E6A50 ; =0x000184DF
|
|
ldrb r1, [r4, r2]
|
|
cmp r1, r0
|
|
bne _021E6A1E
|
|
add r0, r4, #0
|
|
bl ov108_021E6850
|
|
mov r0, #2
|
|
str r0, [r4, #0xc]
|
|
ldr r0, _021E6A4C ; =0x000005DC
|
|
bl PlaySE
|
|
add sp, #8
|
|
mov r0, #4
|
|
pop {r4, pc}
|
|
_021E6A1E:
|
|
add r1, r2, #1
|
|
strb r0, [r4, r1]
|
|
add r2, r2, #1
|
|
ldrb r2, [r4, r2]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov108_021E78F4
|
|
ldr r0, _021E6A54 ; =0x0000069C
|
|
bl PlaySE
|
|
mov r0, #3
|
|
add sp, #8
|
|
pop {r4, pc}
|
|
nop
|
|
_021E6A3C: .word ov108_021EA760
|
|
_021E6A40: .word 0x0000FFFE
|
|
_021E6A44: .word gSystem + 0x40
|
|
_021E6A48: .word 0x000184E0
|
|
_021E6A4C: .word 0x000005DC
|
|
_021E6A50: .word 0x000184DF
|
|
_021E6A54: .word 0x0000069C
|
|
thumb_func_end ov108_021E69A0
|
|
|
|
thumb_func_start ov108_021E6A58
|
|
ov108_021E6A58: ; 0x021E6A58
|
|
push {r4, r5, lr}
|
|
sub sp, #0x24
|
|
add r4, r0, #0
|
|
add r0, sp, #0xc
|
|
mov r1, #0
|
|
mov r2, #0x18
|
|
bl MI_CpuFill8
|
|
ldr r0, _021E6AE8 ; =_021EA720
|
|
add r2, sp, #0xc
|
|
ldrh r3, [r0, #0xc]
|
|
ldr r5, _021E6AEC ; =ov108_021EA748
|
|
add r1, sp, #0xc
|
|
strh r3, [r2]
|
|
ldrh r3, [r0, #0xe]
|
|
strh r3, [r2, #2]
|
|
ldrh r3, [r0, #0x10]
|
|
strh r3, [r2, #4]
|
|
ldrh r3, [r0, #0x12]
|
|
strh r3, [r2, #6]
|
|
ldrh r3, [r0, #0x14]
|
|
ldrh r0, [r0, #0x16]
|
|
strh r3, [r2, #8]
|
|
strh r0, [r2, #0xa]
|
|
ldr r0, _021E6AF0 ; =0x000004B4
|
|
ldr r0, [r4, r0]
|
|
str r0, [sp, #0x18]
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r3, [r4, r0]
|
|
add r0, r0, #4
|
|
str r3, [sp, #0x1c]
|
|
mov r3, #3
|
|
strb r3, [r2, #0x14]
|
|
ldr r2, _021E6AF4 ; =0x000184DF
|
|
ldrb r2, [r4, r2]
|
|
lsl r3, r2, #2
|
|
ldr r2, _021E6AF8 ; =ov108_021EA74A
|
|
ldrh r2, [r2, r3]
|
|
ldrh r3, [r5, r3]
|
|
lsl r2, r2, #0x18
|
|
lsr r2, r2, #0x18
|
|
str r2, [sp]
|
|
mov r2, #0
|
|
str r2, [sp, #4]
|
|
str r2, [sp, #8]
|
|
ldr r2, [r4, #0x10]
|
|
lsl r3, r3, #0x18
|
|
lsl r2, r2, #0x18
|
|
ldr r0, [r4, r0]
|
|
lsr r2, r2, #0x18
|
|
lsr r3, r3, #0x18
|
|
bl sub_020185FC
|
|
ldr r1, _021E6AFC ; =0x000004BC
|
|
ldr r2, _021E6AF4 ; =0x000184DF
|
|
str r0, [r4, r1]
|
|
mov r1, #1
|
|
ldrb r2, [r4, r2]
|
|
add r0, r4, #0
|
|
add r3, r1, #0
|
|
bl ov108_021E79A8
|
|
ldr r2, _021E6AF4 ; =0x000184DF
|
|
add r0, r4, #0
|
|
ldrb r2, [r4, r2]
|
|
mov r1, #4
|
|
mov r3, #1
|
|
bl ov108_021E79A8
|
|
add sp, #0x24
|
|
pop {r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E6AE8: .word _021EA720
|
|
_021E6AEC: .word ov108_021EA748
|
|
_021E6AF0: .word 0x000004B4
|
|
_021E6AF4: .word 0x000184DF
|
|
_021E6AF8: .word ov108_021EA74A
|
|
_021E6AFC: .word 0x000004BC
|
|
thumb_func_end ov108_021E6A58
|
|
|
|
thumb_func_start ov108_021E6B00
|
|
ov108_021E6B00: ; 0x021E6B00
|
|
push {r4, r5, lr}
|
|
sub sp, #0x14
|
|
add r4, r0, #0
|
|
add r0, sp, #0
|
|
mov r1, #0
|
|
mov r2, #0x14
|
|
bl MI_CpuFill8
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r1, [r4, r0]
|
|
add r0, #0x39
|
|
str r1, [sp]
|
|
mov r1, #0
|
|
str r0, [sp, #8]
|
|
mov r0, #0xd
|
|
str r1, [sp, #4]
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x1a
|
|
add r2, sp, #0
|
|
strb r0, [r2, #0x10]
|
|
mov r0, #0x10
|
|
strb r0, [r2, #0x11]
|
|
ldrb r0, [r2, #0x12]
|
|
mov r1, #0xf
|
|
bic r0, r1
|
|
ldr r1, [r4, #0x10]
|
|
lsl r1, r1, #0x18
|
|
lsr r3, r1, #0x18
|
|
mov r1, #0xf
|
|
and r1, r3
|
|
orr r0, r1
|
|
strb r0, [r2, #0x12]
|
|
ldrb r1, [r2, #0x12]
|
|
mov r0, #0xf0
|
|
bic r1, r0
|
|
mov r0, #0x13
|
|
strb r1, [r2, #0x12]
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
add r1, sp, #0
|
|
bl sub_020166FC
|
|
ldr r2, _021E6B98 ; =0x000184E0
|
|
mov r1, #1
|
|
ldrb r2, [r4, r2]
|
|
add r0, r4, #0
|
|
add r3, r1, #0
|
|
bl ov108_021E79A8
|
|
ldr r3, _021E6B9C ; =0x000184DF
|
|
add r0, r4, #0
|
|
add r2, r3, #1
|
|
ldrb r1, [r4, r3]
|
|
sub r3, r3, #1
|
|
ldrb r5, [r4, r3]
|
|
mov r3, #6
|
|
ldrb r2, [r4, r2]
|
|
mul r3, r5
|
|
add r2, r2, r3
|
|
lsl r2, r2, #0x18
|
|
lsr r2, r2, #0x18
|
|
bl ov108_021E7BB4
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov108_021E767C
|
|
mov r1, #1
|
|
add r0, r4, #0
|
|
mov r2, #3
|
|
add r3, r1, #0
|
|
bl ov108_021E7700
|
|
add sp, #0x14
|
|
pop {r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E6B98: .word 0x000184E0
|
|
_021E6B9C: .word 0x000184DF
|
|
thumb_func_end ov108_021E6B00
|
|
|
|
thumb_func_start ov108_021E6BA0
|
|
ov108_021E6BA0: ; 0x021E6BA0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov108_021E8490
|
|
ldr r3, _021E6C34 ; =0x000184E2
|
|
ldrb r0, [r4, r3]
|
|
lsl r0, r0, #0x1f
|
|
lsr r0, r0, #0x1f
|
|
beq _021E6C16
|
|
mov r0, #0xd
|
|
add r3, r3, #2
|
|
lsl r0, r0, #6
|
|
ldrsh r3, [r4, r3]
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
mov r2, #3
|
|
bl BgSetPosTextAndCommit
|
|
ldr r3, _021E6C38 ; =0x000184E4
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldrsh r3, [r4, r3]
|
|
ldr r0, [r4, r0]
|
|
mov r1, #2
|
|
mov r2, #3
|
|
bl BgSetPosTextAndCommit
|
|
ldr r3, _021E6C3C ; =0x000184E6
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldrsh r3, [r4, r3]
|
|
ldr r0, [r4, r0]
|
|
mov r1, #4
|
|
mov r2, #3
|
|
bl BgSetPosTextAndCommit
|
|
ldr r3, _021E6C3C ; =0x000184E6
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldrsh r3, [r4, r3]
|
|
ldr r0, [r4, r0]
|
|
mov r1, #6
|
|
mov r2, #3
|
|
bl BgSetPosTextAndCommit
|
|
ldr r3, _021E6C3C ; =0x000184E6
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldrsh r3, [r4, r3]
|
|
ldr r0, [r4, r0]
|
|
mov r1, #5
|
|
mov r2, #3
|
|
bl BgSetPosTextAndCommit
|
|
ldr r1, _021E6C34 ; =0x000184E2
|
|
mov r0, #1
|
|
ldrb r2, [r4, r1]
|
|
bic r2, r0
|
|
strb r2, [r4, r1]
|
|
_021E6C16:
|
|
bl GF_RunVramTransferTasks
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
bl DoScheduledBgGpuUpdates
|
|
ldr r3, _021E6C40 ; =0x027E0000
|
|
ldr r1, _021E6C44 ; =0x00003FF8
|
|
mov r0, #1
|
|
ldr r2, [r3, r1]
|
|
orr r0, r2
|
|
str r0, [r3, r1]
|
|
pop {r4, pc}
|
|
nop
|
|
_021E6C34: .word 0x000184E2
|
|
_021E6C38: .word 0x000184E4
|
|
_021E6C3C: .word 0x000184E6
|
|
_021E6C40: .word 0x027E0000
|
|
_021E6C44: .word 0x00003FF8
|
|
thumb_func_end ov108_021E6BA0
|
|
|
|
thumb_func_start ov108_021E6C48
|
|
ov108_021E6C48: ; 0x021E6C48
|
|
push {r4, lr}
|
|
sub sp, #0x28
|
|
ldr r4, _021E6C64 ; =ov108_021EA780
|
|
add r3, sp, #0
|
|
mov r2, #5
|
|
_021E6C52:
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _021E6C52
|
|
add r0, sp, #0
|
|
bl GfGfx_SetBanks
|
|
add sp, #0x28
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E6C64: .word ov108_021EA780
|
|
thumb_func_end ov108_021E6C48
|
|
|
|
thumb_func_start ov108_021E6C68
|
|
ov108_021E6C68: ; 0x021E6C68
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xf4
|
|
add r5, r0, #0
|
|
bl ov108_021E6C48
|
|
ldr r2, _021E6D0C ; =0x04000304
|
|
ldr r0, _021E6D10 ; =0xFFFF7FFF
|
|
ldrh r1, [r2]
|
|
and r0, r1
|
|
strh r0, [r2]
|
|
ldr r0, [r5]
|
|
bl BgConfig_Alloc
|
|
mov r1, #0xd
|
|
lsl r1, r1, #6
|
|
add r3, sp, #4
|
|
ldr r4, _021E6D14 ; =ov108_021EA738
|
|
str r0, [r5, r1]
|
|
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 SetBothScreensModesAndDisable
|
|
ldr r4, _021E6D18 ; =ov108_021EA898
|
|
add r3, sp, #0x14
|
|
mov r2, #0x1c
|
|
_021E6CA2:
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _021E6CA2
|
|
mov r4, #0
|
|
add r7, r4, #0
|
|
add r6, sp, #0x14
|
|
_021E6CB0:
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
lsl r1, r4, #0x18
|
|
ldr r0, [r5, r0]
|
|
lsr r1, r1, #0x18
|
|
add r2, r6, #0
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
lsl r1, r4, #0x18
|
|
ldr r0, [r5, r0]
|
|
lsr r1, r1, #0x18
|
|
bl BgClearTilemapBufferAndCommit
|
|
lsl r0, r4, #0x18
|
|
ldr r3, [r5]
|
|
lsr r0, r0, #0x18
|
|
mov r1, #0x40
|
|
mov r2, #0
|
|
bl BG_ClearCharDataRange
|
|
add r7, r7, #1
|
|
add r4, r4, #1
|
|
add r6, #0x1c
|
|
cmp r7, #8
|
|
blt _021E6CB0
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
mov r2, #0x1c
|
|
ldr r0, _021E6D1C ; =0x04000050
|
|
mov r1, #2
|
|
add r3, r2, #0
|
|
bl G2x_SetBlendAlpha_
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
ldr r0, _021E6D20 ; =0x04001050
|
|
mov r1, #1
|
|
mov r2, #0x1e
|
|
mov r3, #0x1c
|
|
bl G2x_SetBlendAlpha_
|
|
add sp, #0xf4
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E6D0C: .word 0x04000304
|
|
_021E6D10: .word 0xFFFF7FFF
|
|
_021E6D14: .word ov108_021EA738
|
|
_021E6D18: .word ov108_021EA898
|
|
_021E6D1C: .word 0x04000050
|
|
_021E6D20: .word 0x04001050
|
|
thumb_func_end ov108_021E6C68
|
|
|
|
thumb_func_start ov108_021E6D24
|
|
ov108_021E6D24: ; 0x021E6D24
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
mov r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, _021E6D74 ; =0x04000050
|
|
add r2, r1, #0
|
|
mov r3, #0x1f
|
|
str r1, [sp]
|
|
bl G2x_SetBlendAlpha_
|
|
mov r1, #0
|
|
ldr r0, _021E6D78 ; =0x04001050
|
|
add r2, r1, #0
|
|
mov r3, #0x1f
|
|
str r1, [sp]
|
|
bl G2x_SetBlendAlpha_
|
|
mov r6, #0xd
|
|
mov r4, #0
|
|
lsl r6, r6, #6
|
|
_021E6D4C:
|
|
lsl r1, r4, #0x18
|
|
ldr r0, [r5, r6]
|
|
lsr r1, r1, #0x18
|
|
bl FreeBgTilemapBuffer
|
|
add r4, r4, #1
|
|
cmp r4, #8
|
|
blt _021E6D4C
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
bl FreeToHeap
|
|
ldr r2, _021E6D7C ; =0x04000304
|
|
ldrh r1, [r2]
|
|
lsr r0, r2, #0xb
|
|
orr r0, r1
|
|
strh r0, [r2]
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021E6D74: .word 0x04000050
|
|
_021E6D78: .word 0x04001050
|
|
_021E6D7C: .word 0x04000304
|
|
thumb_func_end ov108_021E6D24
|
|
|
|
thumb_func_start ov108_021E6D80
|
|
ov108_021E6D80: ; 0x021E6D80
|
|
push {r4, r5, lr}
|
|
sub sp, #0x14
|
|
add r5, r0, #0
|
|
ldr r1, [r5]
|
|
mov r0, #0xa6
|
|
bl NARC_New
|
|
add r4, r0, #0
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r0, #3
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5]
|
|
add r2, r4, #0
|
|
mov r3, #0xa6
|
|
bl sub_0208820C
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r0, #4
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5]
|
|
add r2, r4, #0
|
|
mov r3, #0xa6
|
|
bl sub_0208820C
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #7
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5]
|
|
add r2, r4, #0
|
|
mov r3, #0xa6
|
|
bl sub_0208820C
|
|
mov r0, #5
|
|
str r0, [sp]
|
|
mov r0, #3
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5]
|
|
add r2, r4, #0
|
|
mov r3, #0xa6
|
|
bl sub_0208820C
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #7
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
mov r0, #0xd
|
|
str r1, [sp, #0x10]
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5]
|
|
add r2, r4, #0
|
|
mov r3, #0xa6
|
|
bl sub_0208820C
|
|
mov r0, #0xa
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5]
|
|
add r2, r4, #0
|
|
mov r3, #0xa6
|
|
bl sub_0208820C
|
|
mov r0, #7
|
|
str r0, [sp]
|
|
mov r0, #3
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5]
|
|
add r2, r4, #0
|
|
mov r3, #0xa6
|
|
bl sub_0208820C
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
mov r0, #6
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5]
|
|
add r2, r4, #0
|
|
mov r3, #0xa6
|
|
bl sub_0208820C
|
|
ldr r0, _021E6F4C ; =0x000184E3
|
|
ldrb r0, [r5, r0]
|
|
cmp r0, #0
|
|
bne _021E6EA4
|
|
mov r0, #1
|
|
b _021E6EA6
|
|
_021E6EA4:
|
|
mov r0, #0
|
|
_021E6EA6:
|
|
add r0, r0, #2
|
|
str r0, [sp]
|
|
mov r0, #7
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5]
|
|
add r2, r4, #0
|
|
mov r3, #0xa6
|
|
bl sub_0208820C
|
|
ldr r0, [r5]
|
|
ldr r3, _021E6F50 ; =0x000004D8
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r1, #8
|
|
mov r2, #0
|
|
add r3, r5, r3
|
|
bl GfGfxLoader_GetScrnDataFromOpenNarc
|
|
mov r3, #0x4d
|
|
lsl r3, r3, #4
|
|
str r0, [r5, r3]
|
|
ldr r0, [r5]
|
|
add r3, r3, #4
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r1, #9
|
|
mov r2, #0
|
|
add r3, r5, r3
|
|
bl GfGfxLoader_GetScrnDataFromOpenNarc
|
|
ldr r1, _021E6F54 ; =0x000004CC
|
|
str r0, [r5, r1]
|
|
add r0, r4, #0
|
|
bl NARC_Delete
|
|
add r0, r5, #0
|
|
bl ov108_021E7ADC
|
|
add r0, r5, #0
|
|
mov r1, #0xff
|
|
mov r2, #0
|
|
bl ov108_021E7BB4
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
mov r1, #2
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
mov r1, #3
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
mov r1, #6
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
mov r1, #7
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
add sp, #0x14
|
|
pop {r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E6F4C: .word 0x000184E3
|
|
_021E6F50: .word 0x000004D8
|
|
_021E6F54: .word 0x000004CC
|
|
thumb_func_end ov108_021E6D80
|
|
|
|
thumb_func_start ov108_021E6F58
|
|
ov108_021E6F58: ; 0x021E6F58
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x4d
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl FreeToHeap
|
|
ldr r0, _021E6F70 ; =0x000004CC
|
|
ldr r0, [r4, r0]
|
|
bl FreeToHeap
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E6F70: .word 0x000004CC
|
|
thumb_func_end ov108_021E6F58
|
|
|
|
thumb_func_start ov108_021E6F74
|
|
ov108_021E6F74: ; 0x021E6F74
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r1, [r5]
|
|
mov r0, #4
|
|
bl FontID_Alloc
|
|
ldr r2, _021E7010 ; =0x000001AD
|
|
ldr r3, [r5]
|
|
mov r0, #0
|
|
mov r1, #0x1b
|
|
bl NewMsgDataFromNarc
|
|
mov r1, #0xc1
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
ldr r2, [r5]
|
|
mov r0, #1
|
|
mov r1, #0x11
|
|
bl MessageFormat_New_Custom
|
|
mov r1, #0xc2
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
ldr r1, [r5]
|
|
mov r0, #0x51
|
|
bl String_New
|
|
mov r1, #0xc3
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
sub r1, #8
|
|
ldr r0, [r5, r1]
|
|
mov r1, #9
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0xcd
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
sub r1, #0x30
|
|
ldr r0, [r5, r1]
|
|
mov r1, #0xf
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0xce
|
|
lsl r1, r1, #2
|
|
add r7, r1, #0
|
|
str r0, [r5, r1]
|
|
mov r4, #0
|
|
add r6, r5, #0
|
|
sub r7, #0x28
|
|
_021E6FD8:
|
|
mov r0, #0xc1
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r1, r4, #4
|
|
bl NewString_ReadMsgData
|
|
str r0, [r6, r7]
|
|
add r4, r4, #1
|
|
add r6, r6, #4
|
|
cmp r4, #5
|
|
blt _021E6FD8
|
|
mov r7, #0xc9
|
|
mov r4, #0
|
|
add r6, r5, #0
|
|
lsl r7, r7, #2
|
|
_021E6FF6:
|
|
mov r0, #0xc1
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r1, r4, #0
|
|
bl NewString_ReadMsgData
|
|
str r0, [r6, r7]
|
|
add r4, r4, #1
|
|
add r6, r6, #4
|
|
cmp r4, #4
|
|
blt _021E6FF6
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E7010: .word 0x000001AD
|
|
thumb_func_end ov108_021E6F74
|
|
|
|
thumb_func_start ov108_021E7014
|
|
ov108_021E7014: ; 0x021E7014
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
mov r7, #0xc9
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
lsl r7, r7, #2
|
|
_021E7020:
|
|
ldr r0, [r5, r7]
|
|
bl String_Delete
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _021E7020
|
|
mov r7, #0x31
|
|
mov r5, #0
|
|
add r4, r6, #0
|
|
lsl r7, r7, #4
|
|
_021E7036:
|
|
ldr r0, [r4, r7]
|
|
bl String_Delete
|
|
add r5, r5, #1
|
|
add r4, r4, #4
|
|
cmp r5, #5
|
|
blt _021E7036
|
|
mov r0, #0xce
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
bl String_Delete
|
|
mov r0, #0xcd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
bl String_Delete
|
|
mov r0, #0xc3
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
bl String_Delete
|
|
mov r0, #0xc2
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
bl MessageFormat_Delete
|
|
mov r0, #0xc1
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
bl DestroyMsgData
|
|
mov r0, #4
|
|
bl FontID_Release
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E7014
|
|
|
|
thumb_func_start ov108_021E7080
|
|
ov108_021E7080: ; 0x021E7080
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x34
|
|
add r7, r0, #0
|
|
mov r0, #0xed
|
|
lsl r0, r0, #2
|
|
ldr r4, _021E71D8 ; =ov108_021EA7A8
|
|
mov r6, #0
|
|
add r5, r7, r0
|
|
_021E7090:
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r7, r0]
|
|
add r1, r5, #0
|
|
add r2, r4, #0
|
|
bl AddWindow
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
add r6, r6, #1
|
|
add r4, #8
|
|
add r5, #0x10
|
|
cmp r6, #4
|
|
ble _021E7090
|
|
mov r0, #5
|
|
str r0, [sp, #0x24]
|
|
mov r0, #1
|
|
ldr r4, _021E71DC ; =0x000003A6
|
|
str r0, [sp, #0x20]
|
|
add r0, r4, #0
|
|
add r0, #0xe
|
|
mov r5, #0
|
|
add r6, r7, r0
|
|
_021E70C2:
|
|
ldr r0, [sp, #0x20]
|
|
mov r2, #7
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x28]
|
|
asr r0, r5, #1
|
|
lsr r0, r0, #0x1e
|
|
add r0, r5, r0
|
|
asr r1, r0, #2
|
|
mov r0, #1
|
|
eor r0, r1
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x18]
|
|
lsl r0, r0, #1
|
|
add r0, r0, #2
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
mov r1, #0x16
|
|
mul r1, r0
|
|
str r1, [sp, #0x1c]
|
|
sub r4, r4, r1
|
|
ldr r1, [sp, #0x24]
|
|
mov r3, #1
|
|
lsl r1, r1, #4
|
|
str r1, [sp, #0x2c]
|
|
ldr r1, [sp, #0x28]
|
|
str r1, [sp]
|
|
mov r1, #0x16
|
|
str r1, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #5
|
|
str r0, [sp, #0xc]
|
|
lsl r0, r4, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r1, [sp, #0x2c]
|
|
ldr r0, [r7, r0]
|
|
add r1, r6, r1
|
|
bl AddWindowParameterized
|
|
lsr r2, r5, #0x1f
|
|
lsl r1, r5, #0x1f
|
|
sub r1, r1, r2
|
|
mov r0, #0x1f
|
|
ror r1, r0
|
|
add r0, r2, r1
|
|
lsl r1, r0, #2
|
|
ldr r0, _021E71E0 ; =ov108_021EA724
|
|
ldr r0, [r0, r1]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x14]
|
|
ldr r1, [sp, #0x14]
|
|
ldr r0, [sp, #0x2c]
|
|
lsl r1, r1, #0x18
|
|
add r0, r6, r0
|
|
lsr r1, r1, #0x18
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [sp, #0x1c]
|
|
ldr r1, [sp, #0x28]
|
|
sub r4, r4, r0
|
|
ldr r0, [sp, #0x24]
|
|
mov r2, #7
|
|
add r0, r0, #1
|
|
lsl r0, r0, #4
|
|
str r0, [sp, #0x30]
|
|
ldr r0, [sp, #0x18]
|
|
mov r3, #0x1a
|
|
add r0, r1, r0
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
mov r0, #5
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
mov r0, #5
|
|
str r0, [sp, #0xc]
|
|
lsl r0, r4, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r1, [sp, #0x30]
|
|
ldr r0, [r7, r0]
|
|
add r1, r6, r1
|
|
bl AddWindowParameterized
|
|
ldr r1, [sp, #0x14]
|
|
ldr r0, [sp, #0x30]
|
|
lsl r1, r1, #0x18
|
|
add r0, r6, r0
|
|
lsr r1, r1, #0x18
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [sp, #0x24]
|
|
add r5, r5, #1
|
|
add r0, r0, #2
|
|
str r0, [sp, #0x24]
|
|
ldr r0, [sp, #0x20]
|
|
sub r4, #0xa
|
|
add r0, r0, #4
|
|
str r0, [sp, #0x20]
|
|
cmp r5, #5
|
|
blt _021E70C2
|
|
ldr r0, _021E71E4 ; =0x000004A4
|
|
add r0, r7, r0
|
|
bl InitWindow
|
|
ldr r1, _021E71E8 ; =0x000002E1
|
|
mov r0, #0
|
|
str r1, [sp]
|
|
add r1, #0x5f
|
|
str r0, [sp, #4]
|
|
ldr r0, [r7, r1]
|
|
ldr r1, _021E71E4 ; =0x000004A4
|
|
mov r2, #6
|
|
add r1, r7, r1
|
|
mov r3, #2
|
|
bl AddTextWindowTopLeftCorner
|
|
ldr r0, _021E71E4 ; =0x000004A4
|
|
mov r1, #0
|
|
add r0, r7, r0
|
|
bl FillWindowPixelBufferText_AssumeTileSize32
|
|
ldr r0, [r7]
|
|
bl sub_0201660C
|
|
mov r1, #0x13
|
|
lsl r1, r1, #6
|
|
str r0, [r7, r1]
|
|
add sp, #0x34
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E71D8: .word ov108_021EA7A8
|
|
_021E71DC: .word 0x000003A6
|
|
_021E71E0: .word ov108_021EA724
|
|
_021E71E4: .word 0x000004A4
|
|
_021E71E8: .word 0x000002E1
|
|
thumb_func_end ov108_021E7080
|
|
|
|
thumb_func_start ov108_021E71EC
|
|
ov108_021E71EC: ; 0x021E71EC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x13
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
bl sub_02016624
|
|
ldr r0, _021E7220 ; =0x000004A4
|
|
add r0, r5, r0
|
|
bl RemoveWindow
|
|
mov r0, #0xed
|
|
lsl r0, r0, #2
|
|
mov r4, #0
|
|
add r5, r5, r0
|
|
_021E720A:
|
|
add r0, r5, #0
|
|
bl ClearWindowTilemapAndCopyToVram
|
|
add r0, r5, #0
|
|
bl RemoveWindow
|
|
add r4, r4, #1
|
|
add r5, #0x10
|
|
cmp r4, #0xf
|
|
blt _021E720A
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E7220: .word 0x000004A4
|
|
thumb_func_end ov108_021E71EC
|
|
|
|
thumb_func_start ov108_021E7224
|
|
ov108_021E7224: ; 0x021E7224
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r1, [r4]
|
|
mov r0, #3
|
|
bl ListMenuItems_New
|
|
ldr r1, _021E729C ; =0x000004B4
|
|
str r0, [r4, r1]
|
|
ldr r1, [r4]
|
|
mov r0, #2
|
|
bl ListMenuItems_New
|
|
ldr r1, _021E72A0 ; =0x000004B8
|
|
mov r2, #7
|
|
str r0, [r4, r1]
|
|
sub r0, r1, #4
|
|
mov r1, #0xc1
|
|
lsl r1, r1, #2
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r4, r1]
|
|
mov r3, #0
|
|
bl ListMenuItems_AppendFromMsgData
|
|
ldr r0, _021E729C ; =0x000004B4
|
|
mov r1, #0xc1
|
|
lsl r1, r1, #2
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r4, r1]
|
|
mov r2, #8
|
|
mov r3, #1
|
|
bl ListMenuItems_AppendFromMsgData
|
|
ldr r0, _021E729C ; =0x000004B4
|
|
mov r1, #0xc1
|
|
lsl r1, r1, #2
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r4, r1]
|
|
mov r2, #6
|
|
mov r3, #2
|
|
bl ListMenuItems_AppendFromMsgData
|
|
ldr r0, _021E72A0 ; =0x000004B8
|
|
mov r1, #0xc1
|
|
lsl r1, r1, #2
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r4, r1]
|
|
mov r2, #5
|
|
mov r3, #0
|
|
bl ListMenuItems_AppendFromMsgData
|
|
ldr r0, _021E72A0 ; =0x000004B8
|
|
mov r1, #0xc1
|
|
lsl r1, r1, #2
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r4, r1]
|
|
mov r2, #6
|
|
mov r3, #1
|
|
bl ListMenuItems_AppendFromMsgData
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E729C: .word 0x000004B4
|
|
_021E72A0: .word 0x000004B8
|
|
thumb_func_end ov108_021E7224
|
|
|
|
thumb_func_start ov108_021E72A4
|
|
ov108_021E72A4: ; 0x021E72A4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021E72C4 ; =0x000004B8
|
|
ldr r0, [r4, r0]
|
|
bl ListMenuItems_Delete
|
|
ldr r0, _021E72C8 ; =0x000004B4
|
|
ldr r0, [r4, r0]
|
|
bl ListMenuItems_Delete
|
|
ldr r0, _021E72C8 ; =0x000004B4
|
|
mov r1, #0
|
|
str r1, [r4, r0]
|
|
add r0, r0, #4
|
|
str r1, [r4, r0]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E72C4: .word 0x000004B8
|
|
_021E72C8: .word 0x000004B4
|
|
thumb_func_end ov108_021E72A4
|
|
|
|
thumb_func_start ov108_021E72CC
|
|
ov108_021E72CC: ; 0x021E72CC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov108_021E838C
|
|
ldr r0, [r4]
|
|
mov r1, #0xc
|
|
mov r2, #1
|
|
mov r3, #2
|
|
bl ov108_021E84A4
|
|
mov r1, #0xd2
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
add r0, r4, #0
|
|
bl ov108_021E83F0
|
|
ldr r0, [r4]
|
|
mov r1, #0
|
|
bl sub_02018424
|
|
mov r1, #0xd1
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
ldr r1, [r4]
|
|
mov r0, #1
|
|
bl sub_02013534
|
|
mov r1, #0xe7
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E72CC
|
|
|
|
thumb_func_start ov108_021E730C
|
|
ov108_021E730C: ; 0x021E730C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0xe7
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl sub_020135AC
|
|
mov r0, #0xd1
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl sub_02018474
|
|
add r0, r4, #0
|
|
bl ov108_021E844C
|
|
mov r0, #0xd2
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov108_021E84DC
|
|
add r0, r4, #0
|
|
bl ov108_021E83C8
|
|
pop {r4, pc}
|
|
thumb_func_end ov108_021E730C
|
|
|
|
thumb_func_start ov108_021E733C
|
|
ov108_021E733C: ; 0x021E733C
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
add r7, r5, #0
|
|
add r6, r5, #0
|
|
_021E7348:
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
str r1, [sp, #0x10]
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
add r3, r0, #0
|
|
mov r0, #0x80
|
|
str r0, [sp]
|
|
lsl r0, r4, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #4]
|
|
ldrb r0, [r7, #0x1c]
|
|
ldr r2, [sp, #0x10]
|
|
mov r1, #0x48
|
|
mul r1, r2
|
|
str r0, [sp, #8]
|
|
mov r0, #1
|
|
mov r2, #0x48
|
|
mul r2, r3
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xd2
|
|
lsl r0, r0, #2
|
|
add r1, #0x38
|
|
add r2, #0x38
|
|
lsl r1, r1, #0x10
|
|
lsl r2, r2, #0x10
|
|
ldr r0, [r5, r0]
|
|
lsr r1, r1, #0x10
|
|
lsr r2, r2, #0x10
|
|
mov r3, #2
|
|
bl ov108_021E8540
|
|
mov r1, #0xdb
|
|
lsl r1, r1, #2
|
|
str r0, [r6, r1]
|
|
add r4, r4, #1
|
|
add r7, #0x7a
|
|
add r6, r6, #4
|
|
cmp r4, #6
|
|
blt _021E7348
|
|
mov r4, #0
|
|
add r6, r5, #0
|
|
_021E73A4:
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
add r7, r1, #0
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
add r2, r0, #0
|
|
mov r0, #0x80
|
|
str r0, [sp]
|
|
add r0, r4, #6
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E74FC ; =0x000184DE
|
|
mov r3, #0x48
|
|
ldrb r1, [r5, r0]
|
|
mov r0, #6
|
|
mul r3, r2
|
|
mul r0, r1
|
|
add r0, r4, r0
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #8]
|
|
mov r0, #1
|
|
mov r1, #0x50
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xd2
|
|
mul r1, r7
|
|
lsl r0, r0, #2
|
|
add r1, #0x30
|
|
add r3, #0x38
|
|
lsl r2, r3, #0x10
|
|
lsl r1, r1, #0x10
|
|
ldr r0, [r5, r0]
|
|
lsr r1, r1, #0x10
|
|
lsr r2, r2, #0x10
|
|
mov r3, #3
|
|
bl ov108_021E8540
|
|
mov r1, #0xe1
|
|
lsl r1, r1, #2
|
|
str r0, [r6, r1]
|
|
add r4, r4, #1
|
|
add r6, r6, #4
|
|
cmp r4, #6
|
|
blt _021E73A4
|
|
sub r1, #0x38
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
ldr r2, _021E7500 ; =ov108_021EA7F8
|
|
bl SpriteRenderer_CreateSprite
|
|
mov r1, #0xd5
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
add r0, r1, #0
|
|
sub r0, #8
|
|
sub r1, r1, #4
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5, r1]
|
|
ldr r2, _021E7500 ; =ov108_021EA7F8
|
|
bl SpriteRenderer_CreateSprite
|
|
mov r1, #0xd6
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
add r0, r1, #0
|
|
sub r0, #0xc
|
|
sub r1, #8
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5, r1]
|
|
ldr r2, _021E7500 ; =ov108_021EA7F8
|
|
bl SpriteRenderer_CreateSprite
|
|
mov r1, #0x36
|
|
lsl r1, r1, #4
|
|
str r0, [r5, r1]
|
|
add r0, r1, #0
|
|
sub r0, #0x14
|
|
sub r1, #0x10
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5, r1]
|
|
ldr r2, _021E7504 ; =ov108_021EA820
|
|
bl SpriteRenderer_CreateSprite
|
|
mov r1, #0xd7
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
add r0, r1, #0
|
|
sub r0, #0x10
|
|
sub r1, #0xc
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5, r1]
|
|
ldr r2, _021E7508 ; =ov108_021EA848
|
|
bl SpriteRenderer_CreateSprite
|
|
mov r1, #0xd9
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
add r0, r1, #0
|
|
sub r0, #0x18
|
|
sub r1, #0x14
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5, r1]
|
|
ldr r2, _021E750C ; =ov108_021EA870
|
|
bl SpriteRenderer_CreateSprite
|
|
mov r1, #0xda
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
sub r1, #0x10
|
|
ldr r0, [r5, r1]
|
|
mov r1, #3
|
|
bl thunk_Sprite_SetPriority
|
|
mov r0, #0xd9
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #3
|
|
bl thunk_Sprite_SetPriority
|
|
mov r0, #0xda
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #3
|
|
bl thunk_Sprite_SetPriority
|
|
mov r0, #0x36
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl thunk_Sprite_SetPriority
|
|
mov r0, #0x36
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #5
|
|
bl thunk_Sprite_SetDrawPriority
|
|
mov r0, #0xd5
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl thunk_Set2dSpriteVisibleFlag
|
|
mov r0, #0xd6
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl thunk_Set2dSpriteVisibleFlag
|
|
mov r0, #0x36
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl thunk_Set2dSpriteVisibleFlag
|
|
mov r0, #0xd7
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl thunk_Set2dSpriteVisibleFlag
|
|
add r0, r5, #0
|
|
bl ov108_021E756C
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E74FC: .word 0x000184DE
|
|
_021E7500: .word ov108_021EA7F8
|
|
_021E7504: .word ov108_021EA820
|
|
_021E7508: .word ov108_021EA848
|
|
_021E750C: .word ov108_021EA870
|
|
thumb_func_end ov108_021E733C
|
|
|
|
thumb_func_start ov108_021E7510
|
|
ov108_021E7510: ; 0x021E7510
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
bl ov108_021E7650
|
|
mov r0, #0xd5
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl thunk_Sprite_Delete
|
|
mov r0, #0xd6
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl thunk_Sprite_Delete
|
|
mov r0, #0xd7
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl thunk_Sprite_Delete
|
|
mov r0, #0x36
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
bl thunk_Sprite_Delete
|
|
mov r0, #0xd9
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl thunk_Sprite_Delete
|
|
mov r0, #0xda
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl thunk_Sprite_Delete
|
|
mov r6, #0xdb
|
|
mov r4, #0
|
|
lsl r6, r6, #2
|
|
_021E755A:
|
|
ldr r0, [r5, r6]
|
|
bl ov108_021E8674
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #0xc
|
|
blt _021E755A
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E7510
|
|
|
|
thumb_func_start ov108_021E756C
|
|
ov108_021E756C: ; 0x021E756C
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x40
|
|
add r5, r0, #0
|
|
ldr r0, _021E7648 ; =0x000004A4
|
|
ldr r1, [r5]
|
|
add r0, r5, r0
|
|
bl sub_02013910
|
|
mov r1, #0x3a
|
|
lsl r1, r1, #4
|
|
str r0, [r5, r1]
|
|
ldr r0, [r5, r1]
|
|
mov r1, #1
|
|
bl sub_02013948
|
|
add r6, r0, #0
|
|
ldr r0, _021E7648 ; =0x000004A4
|
|
add r0, r5, r0
|
|
bl GetWindowWidth
|
|
mov r1, #0x31
|
|
lsl r1, r1, #4
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
ldr r1, [r5, r1]
|
|
add r2, r0, #0
|
|
bl FontID_String_GetWidth
|
|
lsl r1, r4, #3
|
|
sub r0, r1, r0
|
|
mov r1, #0
|
|
lsr r3, r0, #1
|
|
mov r2, #0x31
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E764C ; =0x000B0600
|
|
lsl r2, r2, #4
|
|
str r0, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
ldr r0, _021E7648 ; =0x000004A4
|
|
ldr r2, [r5, r2]
|
|
add r0, r5, r0
|
|
bl AddTextPrinterParameterized2
|
|
mov r1, #0xe7
|
|
lsl r1, r1, #2
|
|
ldr r0, [r5, r1]
|
|
sub r1, #0x4c
|
|
str r0, [sp, #0x10]
|
|
ldr r0, _021E7648 ; =0x000004A4
|
|
add r0, r5, r0
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [r5, r1]
|
|
bl sub_0200E2B0
|
|
str r0, [sp, #0x18]
|
|
mov r0, #0x35
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl sub_0200D934
|
|
str r0, [sp, #0x1c]
|
|
mov r0, #3
|
|
str r0, [sp, #0x30]
|
|
mov r0, #0x80
|
|
str r0, [sp, #0x34]
|
|
mov r0, #0xc8
|
|
mov r2, #1
|
|
str r0, [sp, #0x28]
|
|
mov r0, #0xac
|
|
mov r3, #0xea
|
|
lsl r3, r3, #2
|
|
str r2, [sp, #0x38]
|
|
str r0, [sp, #0x2c]
|
|
ldr r0, [r5]
|
|
mov r1, #0
|
|
str r0, [sp, #0x3c]
|
|
add r0, r6, #0
|
|
add r3, r5, r3
|
|
bl sub_02021AC8
|
|
mov r1, #0xeb
|
|
lsl r1, r1, #2
|
|
ldr r0, [r5, r1]
|
|
sub r1, #0xc
|
|
str r0, [sp, #0x24]
|
|
mov r0, #0
|
|
str r0, [sp, #0x20]
|
|
ldr r1, [r5, r1]
|
|
add r0, sp, #0x10
|
|
bl sub_02013950
|
|
mov r1, #0xe9
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
ldr r0, [r5, r1]
|
|
mov r1, #1
|
|
bl sub_020137C0
|
|
mov r0, #0xe9
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #4
|
|
bl sub_02013850
|
|
add sp, #0x40
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021E7648: .word 0x000004A4
|
|
_021E764C: .word 0x000B0600
|
|
thumb_func_end ov108_021E756C
|
|
|
|
thumb_func_start ov108_021E7650
|
|
ov108_021E7650: ; 0x021E7650
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0xe9
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl sub_020139C8
|
|
mov r0, #0xea
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl sub_02021B5C
|
|
mov r0, #0xe9
|
|
mov r1, #0
|
|
lsl r0, r0, #2
|
|
str r1, [r4, r0]
|
|
sub r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl sub_02013938
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E7650
|
|
|
|
thumb_func_start ov108_021E767C
|
|
ov108_021E767C: ; 0x021E767C
|
|
push {r4, r5, lr}
|
|
sub sp, #0x1c
|
|
add r5, r0, #0
|
|
mov r0, #0x13
|
|
str r0, [sp]
|
|
mov r0, #0x18
|
|
str r0, [sp, #4]
|
|
mov r0, #5
|
|
str r0, [sp, #8]
|
|
mov r0, #0x11
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
add r4, r1, #0
|
|
mov r1, #0
|
|
ldr r0, [r5, r0]
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl FillBgTilemapRect
|
|
ldr r0, _021E76FC ; =0x000004D8
|
|
lsl r3, r4, #1
|
|
add r2, r4, r3
|
|
lsl r2, r2, #0x18
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x18
|
|
str r1, [sp]
|
|
add r1, r3, #3
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
str r1, [sp, #4]
|
|
add r1, r0, #0
|
|
add r1, #0xc
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
mov r4, #0x15
|
|
sub r3, r4, r3
|
|
lsl r3, r3, #0x18
|
|
str r1, [sp, #0xc]
|
|
lsr r2, r2, #0x18
|
|
str r2, [sp, #0x10]
|
|
ldrh r2, [r0]
|
|
lsr r3, r3, #0x18
|
|
lsl r2, r2, #0x15
|
|
lsr r2, r2, #0x18
|
|
str r2, [sp, #0x14]
|
|
ldrh r0, [r0, #2]
|
|
add r2, r1, #0
|
|
lsl r0, r0, #0x15
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x18]
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
bl CopyToBgTilemapRect
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
add sp, #0x1c
|
|
pop {r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E76FC: .word 0x000004D8
|
|
thumb_func_end ov108_021E767C
|
|
|
|
thumb_func_start ov108_021E7700
|
|
ov108_021E7700: ; 0x021E7700
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x28
|
|
str r1, [sp, #0x10]
|
|
str r2, [sp, #0x14]
|
|
add r7, r0, #0
|
|
ldr r0, [sp, #0x10]
|
|
lsl r5, r0, #4
|
|
mov r0, #0xed
|
|
lsl r0, r0, #2
|
|
add r4, r7, r0
|
|
add r0, r4, r5
|
|
bl GetWindowWidth
|
|
lsl r0, r0, #0x1b
|
|
lsr r6, r0, #0x18
|
|
add r0, r4, r5
|
|
bl GetWindowHeight
|
|
lsl r0, r0, #0x1b
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, _021E77CC ; =0x00030102
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [sp, #0x10]
|
|
cmp r0, #2
|
|
beq _021E778A
|
|
mov r0, #0xc9
|
|
lsl r0, r0, #2
|
|
add r0, r7, r0
|
|
str r0, [sp, #0x24]
|
|
mov r0, #0
|
|
str r0, [sp, #0x20]
|
|
ldr r0, [sp, #0x10]
|
|
mov r7, #4
|
|
cmp r0, #1
|
|
bhi _021E7780
|
|
ldr r0, _021E77D0 ; =0x000D0C0E
|
|
mov r1, #0xe
|
|
str r0, [sp, #0x18]
|
|
add r0, r4, r5
|
|
bl FillWindowPixelBuffer
|
|
mov r2, #0
|
|
str r6, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
add r0, r4, r5
|
|
mov r1, #6
|
|
add r3, r2, #0
|
|
bl FillWindowPixelRect
|
|
str r6, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
ldr r3, [sp, #0x1c]
|
|
add r0, r4, r5
|
|
sub r3, r3, #2
|
|
lsl r3, r3, #0x10
|
|
mov r1, #6
|
|
mov r2, #0
|
|
lsr r3, r3, #0x10
|
|
bl FillWindowPixelRect
|
|
b _021E77AC
|
|
_021E7780:
|
|
add r0, r4, r5
|
|
mov r1, #2
|
|
bl FillWindowPixelBuffer
|
|
b _021E77AC
|
|
_021E778A:
|
|
mov r0, #0x31
|
|
lsl r0, r0, #4
|
|
add r0, r7, r0
|
|
ldr r1, [sp, #0x14]
|
|
str r0, [sp, #0x24]
|
|
lsl r2, r1, #2
|
|
ldr r1, [sp, #0x24]
|
|
mov r0, #0
|
|
ldr r1, [r1, r2]
|
|
add r2, r0, #0
|
|
bl FontID_String_GetWidth
|
|
sub r0, r6, r0
|
|
lsl r0, r0, #0x17
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x20]
|
|
mov r7, #4
|
|
_021E77AC:
|
|
str r7, [sp]
|
|
mov r1, #0
|
|
ldr r0, [sp, #0x18]
|
|
str r1, [sp, #4]
|
|
str r0, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
ldr r2, [sp, #0x14]
|
|
add r0, r4, r5
|
|
lsl r3, r2, #2
|
|
ldr r2, [sp, #0x24]
|
|
ldr r2, [r2, r3]
|
|
ldr r3, [sp, #0x20]
|
|
bl AddTextPrinterParameterized2
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E77CC: .word 0x00030102
|
|
_021E77D0: .word 0x000D0C0E
|
|
thumb_func_end ov108_021E7700
|
|
|
|
thumb_func_start ov108_021E77D4
|
|
ov108_021E77D4: ; 0x021E77D4
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
mov r0, #0xf9
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
mov r1, #2
|
|
bl FillWindowPixelBuffer
|
|
mov r3, #1
|
|
str r3, [sp]
|
|
mov r0, #0xc2
|
|
ldr r2, _021E78B8 ; =0x000184DE
|
|
str r3, [sp, #4]
|
|
ldrb r2, [r5, r2]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
add r2, r2, #1
|
|
bl BufferIntegerAsString
|
|
mov r2, #0xc2
|
|
lsl r2, r2, #2
|
|
add r1, r2, #4
|
|
ldr r0, [r5, r2]
|
|
add r2, #0x2c
|
|
ldr r1, [r5, r1]
|
|
ldr r2, [r5, r2]
|
|
bl StringExpandPlaceholders
|
|
mov r0, #0xf9
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
bl GetWindowWidth
|
|
mov r1, #0xc3
|
|
lsl r1, r1, #2
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
ldr r1, [r5, r1]
|
|
add r2, r0, #0
|
|
bl FontID_String_GetWidth
|
|
lsl r1, r4, #3
|
|
sub r0, r1, r0
|
|
mov r1, #0
|
|
lsr r3, r0, #1
|
|
str r1, [sp]
|
|
mov r2, #0xf9
|
|
ldr r0, _021E78BC ; =0x00030102
|
|
str r1, [sp, #4]
|
|
str r0, [sp, #8]
|
|
lsl r2, r2, #2
|
|
add r0, r5, r2
|
|
str r1, [sp, #0xc]
|
|
sub r2, #0xd8
|
|
ldr r2, [r5, r2]
|
|
bl AddTextPrinterParameterized2
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
mov r1, #3
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
mov r0, #0xd9
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl Set2dSpriteAnimActiveFlag
|
|
ldr r0, _021E78B8 ; =0x000184DE
|
|
ldrb r0, [r5, r0]
|
|
cmp r0, #0
|
|
bne _021E7878
|
|
mov r0, #0xd9
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #6
|
|
bl Set2dSpriteAnimSeqNo
|
|
b _021E7884
|
|
_021E7878:
|
|
mov r0, #0xd9
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #4
|
|
bl Set2dSpriteAnimSeqNo
|
|
_021E7884:
|
|
mov r0, #0xda
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl Set2dSpriteAnimActiveFlag
|
|
ldr r0, _021E78B8 ; =0x000184DE
|
|
ldrb r0, [r5, r0]
|
|
cmp r0, #1
|
|
bne _021E78A8
|
|
mov r0, #0xda
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #7
|
|
bl Set2dSpriteAnimSeqNo
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
_021E78A8:
|
|
mov r0, #0xda
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #5
|
|
bl Set2dSpriteAnimSeqNo
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E78B8: .word 0x000184DE
|
|
_021E78BC: .word 0x00030102
|
|
thumb_func_end ov108_021E77D4
|
|
|
|
thumb_func_start ov108_021E78C0
|
|
ov108_021E78C0: ; 0x021E78C0
|
|
push {r4, r5, r6, lr}
|
|
add r6, r2, #0
|
|
cmp r3, #0
|
|
bne _021E78DA
|
|
lsl r1, r1, #2
|
|
add r1, r0, r1
|
|
mov r0, #0xd5
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
pop {r4, r5, r6, pc}
|
|
_021E78DA:
|
|
mov r2, #0xd5
|
|
lsl r2, r2, #2
|
|
lsl r4, r1, #2
|
|
add r5, r0, r2
|
|
ldr r0, [r5, r4]
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, [r5, r4]
|
|
add r1, r6, #0
|
|
bl Set2dSpriteAnimSeqNo
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov108_021E78C0
|
|
|
|
thumb_func_start ov108_021E78F4
|
|
ov108_021E78F4: ; 0x021E78F4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r2, #0
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
mov r6, #0
|
|
cmp r7, #6
|
|
blo _021E790C
|
|
mov r0, #0xe0
|
|
str r0, [sp]
|
|
mov r2, #0xb4
|
|
mov r6, #1
|
|
b _021E7984
|
|
_021E790C:
|
|
cmp r4, #1
|
|
beq _021E795E
|
|
add r0, r7, #0
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
mov r0, #0x48
|
|
mul r0, r1
|
|
add r0, #0x38
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
str r0, [sp]
|
|
add r0, r7, #0
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
mov r1, #0x48
|
|
mul r1, r0
|
|
add r1, #0x38
|
|
lsl r0, r1, #0x10
|
|
asr r2, r0, #0x10
|
|
cmp r4, #2
|
|
bne _021E7942
|
|
add r2, #0xc0
|
|
lsl r0, r2, #0x10
|
|
asr r2, r0, #0x10
|
|
b _021E7984
|
|
_021E7942:
|
|
cmp r4, #3
|
|
bne _021E794A
|
|
mov r6, #2
|
|
b _021E7984
|
|
_021E794A:
|
|
cmp r4, #0
|
|
bne _021E7984
|
|
ldr r0, _021E79A4 ; =0x000184E2
|
|
ldrb r0, [r5, r0]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x1b
|
|
cmp r0, #2
|
|
bne _021E7984
|
|
mov r6, #3
|
|
b _021E7984
|
|
_021E795E:
|
|
add r0, r7, #0
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
mov r0, #0x50
|
|
mul r0, r1
|
|
add r0, #0x30
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
str r0, [sp]
|
|
add r0, r7, #0
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
mov r1, #0x48
|
|
mul r1, r0
|
|
add r1, #0x38
|
|
lsl r0, r1, #0x10
|
|
asr r2, r0, #0x10
|
|
_021E7984:
|
|
lsl r0, r4, #2
|
|
add r1, r5, r0
|
|
mov r0, #0xd5
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
ldr r1, [sp]
|
|
bl Sprite_SetPositionXY
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
mov r3, #1
|
|
bl ov108_021E78C0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E79A4: .word 0x000184E2
|
|
thumb_func_end ov108_021E78F4
|
|
|
|
thumb_func_start ov108_021E79A8
|
|
ov108_021E79A8: ; 0x021E79A8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x20
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r7, r2, #0
|
|
cmp r3, #0
|
|
bne _021E79D0
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
bl BgClearTilemapBufferAndCommit
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
add r1, r4, #0
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E79D0:
|
|
ldr r0, _021E7AD4 ; =0x000004D4
|
|
mov r2, #0x20
|
|
ldr r0, [r5, r0]
|
|
mov r6, #0x18
|
|
str r2, [sp]
|
|
add r2, r0, #0
|
|
str r6, [sp, #4]
|
|
add r2, #0xc
|
|
str r2, [sp, #8]
|
|
mov r3, #0
|
|
str r3, [sp, #0xc]
|
|
str r3, [sp, #0x10]
|
|
ldrh r2, [r0]
|
|
lsl r2, r2, #0x15
|
|
lsr r2, r2, #0x18
|
|
str r2, [sp, #0x14]
|
|
ldrh r0, [r0, #2]
|
|
add r2, r3, #0
|
|
ldr r3, _021E7AD8 ; =0x000184E2
|
|
lsl r0, r0, #0x15
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x18]
|
|
ldrb r3, [r5, r3]
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
lsl r3, r3, #0x18
|
|
lsr r3, r3, #0x1b
|
|
mul r6, r3
|
|
lsl r3, r6, #0x18
|
|
ldr r0, [r5, r0]
|
|
lsr r3, r3, #0x18
|
|
bl CopyToBgTilemapRect
|
|
ldr r0, _021E7AD8 ; =0x000184E2
|
|
ldrb r0, [r5, r0]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x1b
|
|
bne _021E7A80
|
|
add r0, r7, #0
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r0, r1, #3
|
|
add r0, r1, r0
|
|
add r0, r0, #3
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x1c]
|
|
add r0, r7, #0
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r1, r0, #3
|
|
add r0, r0, r1
|
|
add r0, r0, #3
|
|
lsl r0, r0, #0x18
|
|
lsr r6, r0, #0x18
|
|
cmp r4, #4
|
|
bne _021E7AA6
|
|
ldr r0, _021E7AD4 ; =0x000004D4
|
|
mov r1, #0x20
|
|
ldr r0, [r5, r0]
|
|
mov r2, #0
|
|
str r1, [sp]
|
|
mov r1, #3
|
|
str r1, [sp, #4]
|
|
add r1, r0, #0
|
|
add r1, #0xc
|
|
str r1, [sp, #8]
|
|
str r2, [sp, #0xc]
|
|
mov r1, #0x18
|
|
str r1, [sp, #0x10]
|
|
ldrh r1, [r0]
|
|
mov r3, #0x15
|
|
lsl r1, r1, #0x15
|
|
lsr r1, r1, #0x18
|
|
str r1, [sp, #0x14]
|
|
ldrh r0, [r0, #2]
|
|
add r1, r4, #0
|
|
lsl r0, r0, #0x15
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x18]
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
bl CopyToBgTilemapRect
|
|
b _021E7AA6
|
|
_021E7A80:
|
|
add r0, r7, #0
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
mov r0, #0xa
|
|
mul r0, r1
|
|
add r0, r0, #2
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x1c]
|
|
add r0, r7, #0
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r1, r0, #3
|
|
add r0, r0, r1
|
|
add r0, #0x1b
|
|
lsl r0, r0, #0x18
|
|
lsr r6, r0, #0x18
|
|
_021E7AA6:
|
|
str r6, [sp]
|
|
mov r0, #8
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #0x11
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
ldr r3, [sp, #0x1c]
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl FillBgTilemapRect
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
add r1, r4, #0
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E7AD4: .word 0x000004D4
|
|
_021E7AD8: .word 0x000184E2
|
|
thumb_func_end ov108_021E79A8
|
|
|
|
thumb_func_start ov108_021E7ADC
|
|
ov108_021E7ADC: ; 0x021E7ADC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x20
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0
|
|
mov r5, #1
|
|
str r0, [sp, #0x1c]
|
|
_021E7AE8:
|
|
mov r0, #0
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [sp, #0x1c]
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r1, r0, #3
|
|
add r0, r0, r1
|
|
add r0, r0, #3
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [sp, #0x1c]
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r0, r1, #3
|
|
add r0, r1, r0
|
|
add r0, r0, #3
|
|
lsl r0, r0, #0x18
|
|
lsr r7, r0, #0x18
|
|
_021E7B12:
|
|
ldr r0, [sp, #0x14]
|
|
mov r4, #0
|
|
lsl r0, r0, #0x18
|
|
lsr r6, r0, #0x18
|
|
_021E7B1A:
|
|
str r6, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #0x11
|
|
lsl r2, r5, #0x10
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xd
|
|
add r3, r7, r4
|
|
lsl r3, r3, #0x18
|
|
ldr r1, [sp, #0x10]
|
|
lsl r0, r0, #6
|
|
ldr r0, [r1, r0]
|
|
mov r1, #5
|
|
lsr r2, r2, #0x10
|
|
lsr r3, r3, #0x18
|
|
add r5, r5, #1
|
|
bl FillBgTilemapRect
|
|
add r4, r4, #1
|
|
cmp r4, #8
|
|
blt _021E7B1A
|
|
ldr r0, [sp, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [sp, #0x18]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x18]
|
|
cmp r0, #8
|
|
blt _021E7B12
|
|
ldr r0, [sp, #0x1c]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x1c]
|
|
cmp r0, #6
|
|
blt _021E7AE8
|
|
mov r1, #0xd
|
|
ldr r0, [sp, #0x10]
|
|
lsl r1, r1, #6
|
|
ldr r0, [r0, r1]
|
|
mov r1, #5
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E7ADC
|
|
|
|
thumb_func_start ov108_021E7B74
|
|
ov108_021E7B74: ; 0x021E7B74
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
ldr r0, [r5]
|
|
add r3, #0x12
|
|
add r4, r2, #0
|
|
str r0, [sp]
|
|
add r0, r1, #0
|
|
add r1, r3, #0
|
|
mov r2, #0
|
|
add r3, sp, #4
|
|
bl GfGfxLoader_GetCharDataFromOpenNarc
|
|
add r6, r0, #0
|
|
lsl r0, r4, #6
|
|
add r0, r0, #1
|
|
str r0, [sp]
|
|
mov r0, #0xd
|
|
ldr r2, [sp, #4]
|
|
lsl r0, r0, #6
|
|
mov r3, #1
|
|
ldr r0, [r5, r0]
|
|
ldr r2, [r2, #0x14]
|
|
mov r1, #5
|
|
lsl r3, r3, #0xc
|
|
bl BG_LoadCharTilesData
|
|
add r0, r6, #0
|
|
bl FreeToHeap
|
|
add sp, #8
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov108_021E7B74
|
|
|
|
thumb_func_start ov108_021E7BB4
|
|
ov108_021E7BB4: ; 0x021E7BB4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
add r4, r1, #0
|
|
ldr r1, [r6]
|
|
mov r0, #0xa6
|
|
add r5, r2, #0
|
|
bl NARC_New
|
|
add r7, r0, #0
|
|
cmp r4, #6
|
|
blo _021E7BE6
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
_021E7BCE:
|
|
ldrb r3, [r5, #0x1c]
|
|
lsl r2, r4, #0x18
|
|
add r0, r6, #0
|
|
add r1, r7, #0
|
|
lsr r2, r2, #0x18
|
|
bl ov108_021E7B74
|
|
add r4, r4, #1
|
|
add r5, #0x7a
|
|
cmp r4, #6
|
|
blt _021E7BCE
|
|
b _021E7BF2
|
|
_021E7BE6:
|
|
add r0, r6, #0
|
|
add r1, r7, #0
|
|
add r2, r4, #0
|
|
add r3, r5, #0
|
|
bl ov108_021E7B74
|
|
_021E7BF2:
|
|
add r0, r7, #0
|
|
bl NARC_Delete
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E7BB4
|
|
|
|
thumb_func_start ov108_021E7BFC
|
|
ov108_021E7BFC: ; 0x021E7BFC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov108_021E7C5C
|
|
ldr r1, _021E7C54 ; =0x000184DF
|
|
add r0, r4, #0
|
|
ldrb r1, [r4, r1]
|
|
bl ov108_021E7CD8
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov108_021E767C
|
|
mov r1, #0
|
|
add r0, r4, #0
|
|
add r2, r1, #0
|
|
mov r3, #1
|
|
bl ov108_021E7700
|
|
ldr r0, [r4, #0x10]
|
|
cmp r0, #0
|
|
bne _021E7C30
|
|
add r0, r4, #0
|
|
bl ov108_021E61E8
|
|
b _021E7C36
|
|
_021E7C30:
|
|
add r0, r4, #0
|
|
bl ov108_021E6238
|
|
_021E7C36:
|
|
ldr r0, _021E7C58 ; =0x000184E4
|
|
mov r2, #0
|
|
strh r2, [r4, r0]
|
|
sub r2, #0xc0
|
|
add r1, r0, #2
|
|
strh r2, [r4, r1]
|
|
sub r1, r0, #2
|
|
ldrb r2, [r4, r1]
|
|
mov r1, #1
|
|
sub r0, r0, #2
|
|
bic r2, r1
|
|
mov r1, #1
|
|
orr r1, r2
|
|
strb r1, [r4, r0]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E7C54: .word 0x000184DF
|
|
_021E7C58: .word 0x000184E4
|
|
thumb_func_end ov108_021E7BFC
|
|
|
|
thumb_func_start ov108_021E7C5C
|
|
ov108_021E7C5C: ; 0x021E7C5C
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r5, r0, #0
|
|
ldr r0, _021E7CD0 ; =0x000184E3
|
|
ldrb r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _021E7CCC
|
|
mov r0, #0xed
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
mov r4, #0
|
|
mov r6, #5
|
|
str r0, [sp, #0x10]
|
|
_021E7C76:
|
|
mov r0, #0xc1
|
|
mov r2, #0xc3
|
|
lsl r0, r0, #2
|
|
lsl r2, r2, #2
|
|
add r1, r4, #0
|
|
ldr r0, [r5, r0]
|
|
ldr r2, [r5, r2]
|
|
add r1, #0xa
|
|
lsl r7, r6, #4
|
|
bl ReadMsgDataIntoString
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
lsr r2, r4, #0x1f
|
|
lsl r1, r4, #0x1f
|
|
sub r1, r1, r2
|
|
mov r0, #0x1f
|
|
ror r1, r0
|
|
add r0, r2, r1
|
|
lsl r1, r0, #2
|
|
ldr r0, _021E7CD4 ; =ov108_021EA724
|
|
mov r2, #0xc3
|
|
ldr r0, [r0, r1]
|
|
mov r1, #0
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #0x10]
|
|
lsl r2, r2, #2
|
|
ldr r2, [r5, r2]
|
|
add r0, r0, r7
|
|
add r3, r1, #0
|
|
bl AddTextPrinterParameterized2
|
|
ldr r0, [sp, #0x10]
|
|
add r0, r0, r7
|
|
bl CopyWindowToVram
|
|
add r4, r4, #1
|
|
add r6, r6, #2
|
|
cmp r4, #5
|
|
blt _021E7C76
|
|
_021E7CCC:
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E7CD0: .word 0x000184E3
|
|
_021E7CD4: .word ov108_021EA724
|
|
thumb_func_end ov108_021E7C5C
|
|
|
|
thumb_func_start ov108_021E7CD8
|
|
ov108_021E7CD8: ; 0x021E7CD8
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x2c
|
|
add r5, r0, #0
|
|
cmp r1, #6
|
|
blo _021E7D3E
|
|
ldr r0, _021E7EA4 ; =0x000184E3
|
|
ldrb r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _021E7D24
|
|
mov r0, #0xed
|
|
lsl r0, r0, #2
|
|
mov r6, #0
|
|
mov r4, #6
|
|
add r7, r5, r0
|
|
_021E7CF4:
|
|
lsr r3, r6, #0x1f
|
|
lsl r2, r6, #0x1f
|
|
sub r2, r2, r3
|
|
mov r1, #0x1f
|
|
ror r2, r1
|
|
add r1, r3, r2
|
|
lsl r2, r1, #2
|
|
ldr r1, _021E7EA8 ; =ov108_021EA724
|
|
lsl r0, r4, #4
|
|
ldr r1, [r1, r2]
|
|
str r0, [sp, #0x20]
|
|
lsl r1, r1, #0x18
|
|
add r0, r7, r0
|
|
lsr r1, r1, #0x18
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [sp, #0x20]
|
|
add r0, r7, r0
|
|
bl ScheduleWindowCopyToVram
|
|
add r6, r6, #1
|
|
add r4, r4, #2
|
|
cmp r6, #5
|
|
blt _021E7CF4
|
|
_021E7D24:
|
|
mov r0, #0xfd
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
mov r1, #0xc
|
|
bl FillWindowPixelBuffer
|
|
mov r0, #0xfd
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
bl ScheduleWindowCopyToVram
|
|
add sp, #0x2c
|
|
pop {r4, r5, r6, r7, pc}
|
|
_021E7D3E:
|
|
add r3, r5, #0
|
|
mov r6, #0xfd
|
|
mov r0, #0x7a
|
|
add r2, r1, #0
|
|
add r3, #0x1c
|
|
mul r2, r0
|
|
add r0, r3, r2
|
|
ldrb r1, [r3, r2]
|
|
lsl r6, r6, #2
|
|
str r0, [sp, #0x1c]
|
|
add r0, r6, #0
|
|
add r2, r6, #0
|
|
sub r0, #0xf0
|
|
sub r2, #0xe8
|
|
ldr r0, [r5, r0]
|
|
ldr r2, [r5, r2]
|
|
add r1, #0x10
|
|
bl ReadMsgDataIntoString
|
|
add r0, r5, r6
|
|
bl GetWindowWidth
|
|
add r1, r6, #0
|
|
sub r1, #0xe8
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
ldr r1, [r5, r1]
|
|
add r2, r0, #0
|
|
bl FontID_String_GetWidth
|
|
lsl r1, r4, #3
|
|
sub r0, r1, r0
|
|
lsl r0, r0, #0x17
|
|
lsr r4, r0, #0x18
|
|
add r0, r5, r6
|
|
mov r1, #0xc
|
|
bl FillWindowPixelBuffer
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E7EAC ; =0x00080B0C
|
|
add r2, r6, #0
|
|
str r0, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
sub r2, #0xe8
|
|
ldr r2, [r5, r2]
|
|
add r0, r5, r6
|
|
add r3, r4, #0
|
|
bl AddTextPrinterParameterized2
|
|
add r0, r5, r6
|
|
bl ScheduleWindowCopyToVram
|
|
ldr r0, _021E7EA4 ; =0x000184E3
|
|
ldrb r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _021E7E9E
|
|
add r0, sp, #0x24
|
|
add r0, #3
|
|
mov r1, #0
|
|
mov r2, #5
|
|
bl MI_CpuFill8
|
|
ldr r0, [sp, #0x1c]
|
|
mov r4, #0
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0
|
|
ble _021E7E02
|
|
ldr r6, [sp, #0x1c]
|
|
add r7, sp, #0x24
|
|
_021E7DD0:
|
|
ldrb r1, [r6, #2]
|
|
add r0, sp, #0x24
|
|
mov r2, #2
|
|
bl sub_02097268
|
|
ldrb r1, [r7, #2]
|
|
cmp r1, #0
|
|
bne _021E7DE8
|
|
ldrb r0, [r7, #7]
|
|
add r0, r0, #1
|
|
strb r0, [r7, #7]
|
|
b _021E7DF6
|
|
_021E7DE8:
|
|
add r0, sp, #0x24
|
|
add r0, #3
|
|
add r0, r0, r1
|
|
sub r0, r0, #1
|
|
ldrb r1, [r0]
|
|
add r1, r1, #1
|
|
strb r1, [r0]
|
|
_021E7DF6:
|
|
ldr r0, [sp, #0x1c]
|
|
add r4, r4, #1
|
|
ldrb r0, [r0, #1]
|
|
add r6, r6, #4
|
|
cmp r4, r0
|
|
blt _021E7DD0
|
|
_021E7E02:
|
|
mov r0, #6
|
|
str r0, [sp, #0x18]
|
|
add r0, sp, #0x24
|
|
add r0, #3
|
|
str r0, [sp, #0x14]
|
|
mov r0, #0xed
|
|
lsl r0, r0, #2
|
|
mov r7, #0
|
|
add r6, r5, r0
|
|
_021E7E14:
|
|
ldr r0, [sp, #0x18]
|
|
ldr r2, [sp, #0x14]
|
|
lsl r4, r0, #4
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #0xc2
|
|
lsl r0, r0, #2
|
|
ldrb r2, [r2]
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
mov r3, #2
|
|
bl BufferIntegerAsString
|
|
mov r0, #0xc2
|
|
mov r1, #0xc3
|
|
mov r2, #0xce
|
|
lsl r0, r0, #2
|
|
lsl r1, r1, #2
|
|
lsl r2, r2, #2
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5, r1]
|
|
ldr r2, [r5, r2]
|
|
bl StringExpandPlaceholders
|
|
lsr r2, r7, #0x1f
|
|
lsl r1, r7, #0x1f
|
|
sub r1, r1, r2
|
|
mov r0, #0x1f
|
|
ror r1, r0
|
|
add r0, r2, r1
|
|
lsl r1, r0, #2
|
|
ldr r0, _021E7EA8 ; =ov108_021EA724
|
|
ldr r0, [r0, r1]
|
|
str r0, [sp, #0x10]
|
|
ldr r1, [sp, #0x10]
|
|
add r0, r6, r4
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
bl FillWindowPixelBuffer
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #0x10]
|
|
mov r2, #0xc3
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
lsl r2, r2, #2
|
|
mov r1, #0
|
|
ldr r2, [r5, r2]
|
|
add r0, r6, r4
|
|
add r3, r1, #0
|
|
bl AddTextPrinterParameterized2
|
|
add r0, r6, r4
|
|
bl ScheduleWindowCopyToVram
|
|
ldr r0, [sp, #0x18]
|
|
add r7, r7, #1
|
|
add r0, r0, #2
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [sp, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x14]
|
|
cmp r7, #5
|
|
blt _021E7E14
|
|
_021E7E9E:
|
|
add sp, #0x2c
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E7EA4: .word 0x000184E3
|
|
_021E7EA8: .word ov108_021EA724
|
|
_021E7EAC: .word 0x00080B0C
|
|
thumb_func_end ov108_021E7CD8
|
|
|
|
thumb_func_start ov108_021E7EB0
|
|
ov108_021E7EB0: ; 0x021E7EB0
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
mov r4, #0xfd
|
|
add r5, r0, #0
|
|
lsl r4, r4, #2
|
|
add r0, r5, r4
|
|
mov r1, #0xc
|
|
bl FillWindowPixelBuffer
|
|
ldr r1, _021E7F70 ; =0x000184DF
|
|
add r2, r4, #0
|
|
ldrb r3, [r5, r1]
|
|
mov r1, #0x7a
|
|
sub r2, #0xf0
|
|
mul r1, r3
|
|
add r1, r5, r1
|
|
ldrb r1, [r1, #0x1c]
|
|
ldr r0, [r5, r2]
|
|
add r2, #8
|
|
ldr r2, [r5, r2]
|
|
add r1, #0x10
|
|
bl ReadMsgDataIntoString
|
|
add r1, r4, #0
|
|
sub r1, #0xe8
|
|
mov r0, #0
|
|
ldr r1, [r5, r1]
|
|
add r2, r0, #0
|
|
bl FontID_String_GetWidth
|
|
mov r1, #0x60
|
|
sub r0, r1, r0
|
|
lsl r0, r0, #0x17
|
|
lsr r3, r0, #0x18
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E7F74 ; =0x00080B0C
|
|
add r2, r4, #0
|
|
str r0, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
sub r2, #0xe8
|
|
ldr r2, [r5, r2]
|
|
add r0, r5, r4
|
|
bl AddTextPrinterParameterized2
|
|
ldr r3, _021E7F78 ; =0x000184E0
|
|
ldrb r1, [r5, r3]
|
|
cmp r1, #6
|
|
bhs _021E7F66
|
|
sub r3, r3, #2
|
|
add r2, r4, #0
|
|
ldrb r6, [r5, r3]
|
|
sub r2, #0xf0
|
|
ldr r0, [r5, r2]
|
|
mov r3, #6
|
|
add r2, #8
|
|
add r1, #0x10
|
|
mul r3, r6
|
|
ldr r2, [r5, r2]
|
|
add r1, r1, r3
|
|
bl ReadMsgDataIntoString
|
|
add r1, r4, #0
|
|
sub r1, #0xe8
|
|
mov r0, #0
|
|
ldr r1, [r5, r1]
|
|
add r2, r0, #0
|
|
bl FontID_String_GetWidth
|
|
mov r1, #0x60
|
|
sub r0, r1, r0
|
|
lsl r0, r0, #0x17
|
|
lsr r3, r0, #0x18
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E7F74 ; =0x00080B0C
|
|
add r2, r4, #0
|
|
str r0, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
sub r2, #0xe8
|
|
ldr r2, [r5, r2]
|
|
add r0, r5, r4
|
|
add r3, #0x90
|
|
bl AddTextPrinterParameterized2
|
|
_021E7F66:
|
|
add r0, r5, r4
|
|
bl ScheduleWindowCopyToVram
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021E7F70: .word 0x000184DF
|
|
_021E7F74: .word 0x00080B0C
|
|
_021E7F78: .word 0x000184E0
|
|
thumb_func_end ov108_021E7EB0
|
|
|
|
thumb_func_start ov108_021E7F7C
|
|
ov108_021E7F7C: ; 0x021E7F7C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
ldr r1, _021E80DC ; =0x000184E2
|
|
add r6, r0, #0
|
|
ldrb r1, [r6, r1]
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x1b
|
|
bne _021E7FF4
|
|
mov r0, #0x15
|
|
str r0, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r0, #3
|
|
str r0, [sp, #8]
|
|
mov r0, #0x11
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
mov r2, #0
|
|
ldr r0, [r6, r0]
|
|
mov r1, #1
|
|
add r3, r2, #0
|
|
bl FillBgTilemapRect
|
|
mov r0, #0xd
|
|
lsl r0, r0, #6
|
|
ldr r0, [r6, r0]
|
|
mov r1, #1
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
mov r0, #0xbf
|
|
ldr r2, _021E80E0 ; =0x000184E6
|
|
mvn r0, r0
|
|
strh r0, [r6, r2]
|
|
sub r0, r2, #4
|
|
ldrb r3, [r6, r0]
|
|
mov r0, #1
|
|
mov r1, #1
|
|
bic r3, r0
|
|
orr r3, r1
|
|
sub r0, r2, #4
|
|
strb r3, [r6, r0]
|
|
sub r0, r2, #6
|
|
mov r3, #0
|
|
strb r3, [r6, r0]
|
|
sub r2, r2, #6
|
|
ldrb r2, [r6, r2]
|
|
add r0, r6, #0
|
|
bl ov108_021E78F4
|
|
ldr r2, _021E80E4 ; =0x000184DF
|
|
add r0, r6, #0
|
|
ldrb r2, [r6, r2]
|
|
mov r1, #2
|
|
bl ov108_021E78F4
|
|
add r0, r6, #0
|
|
bl ov108_021E77D4
|
|
b _021E807E
|
|
_021E7FF4:
|
|
mov r1, #1
|
|
mov r2, #0xff
|
|
mov r3, #0
|
|
bl ov108_021E79A8
|
|
mov r2, #0
|
|
add r0, r6, #0
|
|
mov r1, #1
|
|
add r3, r2, #0
|
|
bl ov108_021E78C0
|
|
ldr r0, _021E80DC ; =0x000184E2
|
|
mov r4, #0
|
|
ldrb r0, [r6, r0]
|
|
add r7, r6, #0
|
|
lsl r0, r0, #0x1d
|
|
lsr r1, r0, #0x1f
|
|
mov r0, #6
|
|
mul r0, r1
|
|
str r0, [sp, #0x14]
|
|
lsl r0, r0, #2
|
|
add r5, r6, r0
|
|
_021E8020:
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
str r1, [sp, #0x10]
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
add r3, r0, #0
|
|
mov r0, #0xdb
|
|
lsl r0, r0, #2
|
|
ldr r2, [sp, #0x10]
|
|
mov r1, #0x48
|
|
mul r1, r2
|
|
mov r2, #0x48
|
|
mul r2, r3
|
|
add r1, #0x38
|
|
sub r2, #0x88
|
|
lsl r1, r1, #0x10
|
|
lsl r2, r2, #0x10
|
|
ldr r0, [r5, r0]
|
|
asr r1, r1, #0x10
|
|
asr r2, r2, #0x10
|
|
bl UnkImageStruct_SetSpritePositionXY
|
|
mov r0, #0xdb
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #2
|
|
bl UnkImageStruct_SetSpritePriority
|
|
ldr r1, [sp, #0x14]
|
|
mov r0, #0xd2
|
|
lsl r0, r0, #2
|
|
add r1, r4, r1
|
|
lsl r1, r1, #0x18
|
|
ldrb r2, [r7, #0x1c]
|
|
ldr r0, [r6, r0]
|
|
lsr r1, r1, #0x18
|
|
bl ov108_021E84F8
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
add r7, #0x7a
|
|
cmp r4, #6
|
|
blt _021E8020
|
|
_021E807E:
|
|
ldr r0, _021E80E8 ; =0x000184E1
|
|
mov r1, #0
|
|
strb r1, [r6, r0]
|
|
mov r0, #0xfd
|
|
lsl r0, r0, #2
|
|
add r0, r6, r0
|
|
mov r1, #0xc
|
|
bl FillWindowPixelBuffer
|
|
mov r0, #0xfd
|
|
lsl r0, r0, #2
|
|
add r0, r6, r0
|
|
bl ScheduleWindowCopyToVram
|
|
ldr r0, _021E80EC ; =0x04001040
|
|
mov r1, #0xf0
|
|
strh r1, [r0]
|
|
mov r1, #0x10
|
|
add r4, r0, #0
|
|
strh r1, [r0, #4]
|
|
add r4, #8
|
|
ldrh r3, [r4]
|
|
mov r2, #0x3f
|
|
mov r1, #0xf
|
|
bic r3, r2
|
|
orr r1, r3
|
|
mov r3, #0x20
|
|
orr r1, r3
|
|
strh r1, [r4]
|
|
add r4, r0, #0
|
|
add r4, #0xa
|
|
ldrh r5, [r4]
|
|
mov r1, #0x1f
|
|
sub r0, #0x40
|
|
bic r5, r2
|
|
orr r1, r5
|
|
orr r1, r3
|
|
strh r1, [r4]
|
|
ldr r2, [r0]
|
|
ldr r1, _021E80F0 ; =0xFFFF1FFF
|
|
and r2, r1
|
|
lsl r1, r3, #8
|
|
orr r1, r2
|
|
str r1, [r0]
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E80DC: .word 0x000184E2
|
|
_021E80E0: .word 0x000184E6
|
|
_021E80E4: .word 0x000184DF
|
|
_021E80E8: .word 0x000184E1
|
|
_021E80EC: .word 0x04001040
|
|
_021E80F0: .word 0xFFFF1FFF
|
|
thumb_func_end ov108_021E7F7C
|
|
|
|
thumb_func_start ov108_021E80F4
|
|
ov108_021E80F4: ; 0x021E80F4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _021E81A0 ; =0x000184E2
|
|
ldrb r1, [r5, r0]
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x1b
|
|
bne _021E811A
|
|
add r1, r0, #2
|
|
ldrsh r2, [r5, r1]
|
|
mov r7, #0x17
|
|
mvn r7, r7
|
|
add r2, #0x18
|
|
strh r2, [r5, r1]
|
|
add r1, r0, #4
|
|
ldrsh r1, [r5, r1]
|
|
add r0, r0, #4
|
|
add r1, #0x18
|
|
strh r1, [r5, r0]
|
|
b _021E812E
|
|
_021E811A:
|
|
add r1, r0, #2
|
|
ldrsh r2, [r5, r1]
|
|
mov r7, #0x18
|
|
sub r2, #0x18
|
|
strh r2, [r5, r1]
|
|
add r1, r0, #4
|
|
ldrsh r1, [r5, r1]
|
|
add r0, r0, #4
|
|
sub r1, #0x18
|
|
strh r1, [r5, r0]
|
|
_021E812E:
|
|
ldr r1, _021E81A0 ; =0x000184E2
|
|
mov r0, #1
|
|
ldrb r2, [r5, r1]
|
|
mov r4, #0
|
|
bic r2, r0
|
|
mov r0, #1
|
|
orr r0, r2
|
|
strb r0, [r5, r1]
|
|
lsl r0, r7, #0x10
|
|
asr r6, r0, #0x10
|
|
_021E8142:
|
|
ldr r0, _021E81A0 ; =0x000184E2
|
|
add r2, r6, #0
|
|
ldrb r0, [r5, r0]
|
|
lsl r0, r0, #0x1d
|
|
lsr r1, r0, #0x1f
|
|
mov r0, #6
|
|
mul r0, r1
|
|
add r0, r4, r0
|
|
lsl r0, r0, #2
|
|
add r1, r5, r0
|
|
mov r0, #0xdb
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_AddSpritePositionXY
|
|
add r4, r4, #1
|
|
cmp r4, #6
|
|
blt _021E8142
|
|
mov r0, #0xd5
|
|
lsl r0, r0, #2
|
|
lsl r2, r7, #0x10
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
asr r2, r2, #0x10
|
|
bl Sprite_AddPositionXY
|
|
mov r0, #0xd7
|
|
lsl r0, r0, #2
|
|
lsl r2, r7, #0x10
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
asr r2, r2, #0x10
|
|
bl Sprite_AddPositionXY
|
|
ldr r0, _021E81A4 ; =0x000184E1
|
|
ldrb r1, [r5, r0]
|
|
add r1, r1, #1
|
|
strb r1, [r5, r0]
|
|
ldrb r0, [r5, r0]
|
|
cmp r0, #8
|
|
blo _021E819A
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E819A:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E81A0: .word 0x000184E2
|
|
_021E81A4: .word 0x000184E1
|
|
thumb_func_end ov108_021E80F4
|
|
|
|
thumb_func_start ov108_021E81A8
|
|
ov108_021E81A8: ; 0x021E81A8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
ldr r1, _021E8264 ; =0x000184E2
|
|
add r6, r0, #0
|
|
ldrb r0, [r6, r1]
|
|
lsl r0, r0, #0x1e
|
|
lsr r0, r0, #0x1f
|
|
bne _021E81CA
|
|
sub r0, r1, #4
|
|
ldrb r0, [r6, r0]
|
|
add r2, r0, #1
|
|
sub r0, r1, #4
|
|
strb r2, [r6, r0]
|
|
mov r0, #1
|
|
lsl r0, r0, #8
|
|
str r0, [sp]
|
|
b _021E81DA
|
|
_021E81CA:
|
|
sub r0, r1, #4
|
|
ldrb r0, [r6, r0]
|
|
sub r2, r0, #1
|
|
sub r0, r1, #4
|
|
strb r2, [r6, r0]
|
|
mov r0, #0xff
|
|
mvn r0, r0
|
|
str r0, [sp]
|
|
_021E81DA:
|
|
ldr r0, _021E8264 ; =0x000184E2
|
|
mov r4, #0
|
|
ldrb r0, [r6, r0]
|
|
lsl r0, r0, #0x1d
|
|
lsr r1, r0, #0x1f
|
|
mov r0, #6
|
|
mul r0, r1
|
|
str r0, [sp, #4]
|
|
lsl r0, r0, #2
|
|
add r5, r6, r0
|
|
_021E81EE:
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
add r7, r1, #0
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
mov r1, #0x50
|
|
mul r1, r7
|
|
add r2, r0, #0
|
|
mov r0, #0xdb
|
|
lsl r0, r0, #2
|
|
ldr r3, [sp]
|
|
add r1, #0x30
|
|
add r1, r3, r1
|
|
mov r3, #0x48
|
|
mul r3, r2
|
|
add r3, #0x38
|
|
lsl r1, r1, #0x10
|
|
lsl r2, r3, #0x10
|
|
ldr r0, [r5, r0]
|
|
asr r1, r1, #0x10
|
|
asr r2, r2, #0x10
|
|
bl UnkImageStruct_SetSpritePositionXY
|
|
ldr r2, _021E8268 ; =0x000184DE
|
|
ldr r1, [sp, #4]
|
|
ldrb r3, [r6, r2]
|
|
mov r2, #6
|
|
mov r0, #0xd2
|
|
mul r2, r3
|
|
lsl r0, r0, #2
|
|
add r1, r4, r1
|
|
add r2, r4, r2
|
|
lsl r1, r1, #0x18
|
|
lsl r2, r2, #0x18
|
|
ldr r0, [r6, r0]
|
|
lsr r1, r1, #0x18
|
|
lsr r2, r2, #0x18
|
|
bl ov108_021E84F8
|
|
mov r0, #0xdb
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #3
|
|
bl UnkImageStruct_SetSpritePriority
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #6
|
|
blt _021E81EE
|
|
ldr r0, _021E826C ; =0x000184E1
|
|
mov r1, #0
|
|
strb r1, [r6, r0]
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E8264: .word 0x000184E2
|
|
_021E8268: .word 0x000184DE
|
|
_021E826C: .word 0x000184E1
|
|
thumb_func_end ov108_021E81A8
|
|
|
|
thumb_func_start ov108_021E8270
|
|
ov108_021E8270: ; 0x021E8270
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
ldr r0, _021E82D8 ; =0x000184E2
|
|
ldrb r0, [r7, r0]
|
|
lsl r0, r0, #0x1e
|
|
lsr r0, r0, #0x1f
|
|
bne _021E8284
|
|
mov r0, #0x1f
|
|
mvn r0, r0
|
|
b _021E8286
|
|
_021E8284:
|
|
mov r0, #0x20
|
|
_021E8286:
|
|
lsl r0, r0, #0x10
|
|
mov r4, #0
|
|
add r5, r7, #0
|
|
asr r6, r0, #0x10
|
|
_021E828E:
|
|
mov r0, #0xdb
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r1, r6, #0
|
|
mov r2, #0
|
|
bl UnkImageStruct_AddSpritePositionXY
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #0xc
|
|
blt _021E828E
|
|
ldr r2, _021E82DC ; =0x000184E1
|
|
ldrb r0, [r7, r2]
|
|
add r0, r0, #1
|
|
strb r0, [r7, r2]
|
|
ldrb r0, [r7, r2]
|
|
cmp r0, #8
|
|
blo _021E82D2
|
|
mov r0, #0
|
|
strb r0, [r7, r2]
|
|
sub r2, r2, #1
|
|
ldrb r2, [r7, r2]
|
|
add r0, r7, #0
|
|
mov r1, #1
|
|
bl ov108_021E78F4
|
|
add r0, r7, #0
|
|
bl ov108_021E7EB0
|
|
add r0, r7, #0
|
|
bl ov108_021E77D4
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E82D2:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E82D8: .word 0x000184E2
|
|
_021E82DC: .word 0x000184E1
|
|
thumb_func_end ov108_021E8270
|
|
|
|
thumb_func_start ov108_021E82E0
|
|
ov108_021E82E0: ; 0x021E82E0
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
str r1, [sp]
|
|
ldr r1, _021E837C ; =0x000184E2
|
|
add r6, r0, #0
|
|
ldrb r0, [r6, r1]
|
|
add r3, sp, #8
|
|
lsl r0, r0, #0x1d
|
|
lsr r2, r0, #0x1f
|
|
mov r0, #6
|
|
mul r0, r2
|
|
sub r2, r1, #3
|
|
ldrb r2, [r6, r2]
|
|
add r2, r2, r0
|
|
strb r2, [r3, #2]
|
|
sub r2, r1, #2
|
|
ldrb r2, [r6, r2]
|
|
add r0, r2, r0
|
|
strb r0, [r3, #3]
|
|
sub r0, r1, #3
|
|
ldrb r0, [r6, r0]
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
add r1, sp, #8
|
|
strb r0, [r1]
|
|
ldr r0, _021E8380 ; =0x000184E0
|
|
mov r1, #3
|
|
ldrb r0, [r6, r0]
|
|
bl _s32_div_f
|
|
add r1, sp, #8
|
|
strb r0, [r1, #1]
|
|
ldr r0, [sp]
|
|
add r5, sp, #8
|
|
ldr r1, _021E8384 ; =_021EA720
|
|
lsl r0, r0, #1
|
|
add r0, r1, r0
|
|
mov r7, #0
|
|
add r4, sp, #8
|
|
add r5, #2
|
|
str r0, [sp, #4]
|
|
_021E8334:
|
|
ldrb r3, [r4]
|
|
ldrb r0, [r5]
|
|
ldr r2, [sp, #4]
|
|
ldrsb r3, [r2, r3]
|
|
lsl r0, r0, #2
|
|
add r1, r6, r0
|
|
mov r0, #0xdb
|
|
mov r2, #0xc
|
|
lsl r0, r0, #2
|
|
mul r2, r3
|
|
ldr r0, [r1, r0]
|
|
lsl r2, r2, #0x10
|
|
mov r1, #0
|
|
asr r2, r2, #0x10
|
|
bl UnkImageStruct_AddSpritePositionXY
|
|
add r7, r7, #1
|
|
add r4, r4, #1
|
|
add r5, r5, #1
|
|
cmp r7, #2
|
|
blt _021E8334
|
|
ldr r0, _021E8388 ; =0x000184E1
|
|
ldrb r1, [r6, r0]
|
|
add r1, r1, #1
|
|
strb r1, [r6, r0]
|
|
ldrb r1, [r6, r0]
|
|
cmp r1, #8
|
|
blo _021E8376
|
|
mov r1, #0
|
|
strb r1, [r6, r0]
|
|
add sp, #0xc
|
|
mov r0, #1
|
|
pop {r4, r5, r6, r7, pc}
|
|
_021E8376:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E837C: .word 0x000184E2
|
|
_021E8380: .word 0x000184E0
|
|
_021E8384: .word _021EA720
|
|
_021E8388: .word 0x000184E1
|
|
thumb_func_end ov108_021E82E0
|
|
|
|
thumb_func_start ov108_021E838C
|
|
ov108_021E838C: ; 0x021E838C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r1, [r4]
|
|
mov r0, #0x20
|
|
bl GF_CreateVramTransferManager
|
|
ldr r0, [r4]
|
|
bl SpriteRenderer_Create
|
|
mov r1, #0xd3
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
ldr r1, _021E83C0 ; =ov108_021EA9A0
|
|
ldr r2, _021E83C4 ; =ov108_021EA98C
|
|
mov r3, #4
|
|
bl sub_0200CF70
|
|
ldr r0, [r4]
|
|
bl sub_0200B2E0
|
|
ldr r0, [r4]
|
|
bl sub_0200B2E8
|
|
pop {r4, pc}
|
|
nop
|
|
_021E83C0: .word ov108_021EA9A0
|
|
_021E83C4: .word ov108_021EA98C
|
|
thumb_func_end ov108_021E838C
|
|
|
|
thumb_func_start ov108_021E83C8
|
|
ov108_021E83C8: ; 0x021E83C8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0xd3
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl SpriteRenderer_Delete
|
|
mov r0, #0xd3
|
|
mov r1, #0
|
|
lsl r0, r0, #2
|
|
str r1, [r4, r0]
|
|
bl GF_DestroyVramTransferManager
|
|
ldr r0, [r4]
|
|
bl sub_0200B2E0
|
|
ldr r0, [r4]
|
|
bl sub_0200B2E8
|
|
pop {r4, pc}
|
|
thumb_func_end ov108_021E83C8
|
|
|
|
thumb_func_start ov108_021E83F0
|
|
ov108_021E83F0: ; 0x021E83F0
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
mov r0, #0xd3
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _021E8442
|
|
bl SpriteRenderer_CreateGfxHandler
|
|
mov r1, #0x35
|
|
lsl r1, r1, #4
|
|
str r0, [r4, r1]
|
|
sub r0, r1, #4
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r4, r1]
|
|
mov r2, #0x8c
|
|
bl sub_0200CFF4
|
|
mov r1, #0xd3
|
|
mov r0, #0
|
|
lsl r1, r1, #2
|
|
str r0, [sp]
|
|
ldr r0, [r4, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
ldr r2, _021E8448 ; =ov108_021EA97C
|
|
mov r3, #2
|
|
bl sub_0200D2A4
|
|
mov r0, #0x35
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl sub_0200E2B0
|
|
add r1, r0, #0
|
|
mov r0, #0xd2
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov108_021E853C
|
|
_021E8442:
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
nop
|
|
_021E8448: .word ov108_021EA97C
|
|
thumb_func_end ov108_021E83F0
|
|
|
|
thumb_func_start ov108_021E844C
|
|
ov108_021E844C: ; 0x021E844C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x35
|
|
lsl r0, r0, #4
|
|
ldr r1, [r4, r0]
|
|
cmp r1, #0
|
|
beq _021E846A
|
|
sub r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl SpriteRenderer_RemoveGfxHandler
|
|
mov r0, #0x35
|
|
mov r1, #0
|
|
lsl r0, r0, #4
|
|
str r1, [r4, r0]
|
|
_021E846A:
|
|
pop {r4, pc}
|
|
thumb_func_end ov108_021E844C
|
|
|
|
thumb_func_start ov108_021E846C
|
|
ov108_021E846C: ; 0x021E846C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0xd2
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _021E847E
|
|
bl ov108_021E852C
|
|
_021E847E:
|
|
mov r0, #0x35
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _021E848C
|
|
bl sub_0200D020
|
|
_021E848C:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E846C
|
|
|
|
thumb_func_start ov108_021E8490
|
|
ov108_021E8490: ; 0x021E8490
|
|
push {r3, lr}
|
|
mov r1, #0xd3
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
cmp r0, #0
|
|
beq _021E84A0
|
|
bl thunk_OamManager_ApplyAndResetBuffers
|
|
_021E84A0:
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E8490
|
|
|
|
thumb_func_start ov108_021E84A4
|
|
ov108_021E84A4: ; 0x021E84A4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r1, #0
|
|
mov r1, #0x59
|
|
lsl r1, r1, #2
|
|
add r5, r0, #0
|
|
add r7, r2, #0
|
|
str r3, [sp]
|
|
bl AllocFromHeap
|
|
mov r2, #0x59
|
|
add r4, r0, #0
|
|
mov r1, #0
|
|
lsl r2, r2, #2
|
|
bl MI_CpuFill8
|
|
str r5, [r4]
|
|
mov r0, #4
|
|
strh r0, [r4, #0xa]
|
|
strh r6, [r4, #0xc]
|
|
ldr r0, [sp]
|
|
strh r7, [r4, #0xe]
|
|
str r0, [r4, #4]
|
|
add r0, r4, #0
|
|
bl ov108_021E867C
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E84A4
|
|
|
|
thumb_func_start ov108_021E84DC
|
|
ov108_021E84DC: ; 0x021E84DC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov108_021E8718
|
|
mov r2, #0x59
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
lsl r2, r2, #2
|
|
bl MI_CpuFill8
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
pop {r4, pc}
|
|
thumb_func_end ov108_021E84DC
|
|
|
|
thumb_func_start ov108_021E84F8
|
|
ov108_021E84F8: ; 0x021E84F8
|
|
push {r4, lr}
|
|
sub sp, #8
|
|
add r3, r2, #0
|
|
mov r2, #0x55
|
|
lsl r2, r2, #2
|
|
ldr r4, [r0, r2]
|
|
lsl r1, r1, #2
|
|
ldr r4, [r4]
|
|
sub r2, #0x10
|
|
ldr r4, [r4, r1]
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
ldr r1, [r0]
|
|
add r3, #0x12
|
|
str r1, [sp, #4]
|
|
ldr r0, [r0, r2]
|
|
add r1, r4, #0
|
|
mov r2, #0xa6
|
|
bl ReplaceCharResObjFromNarc
|
|
add r0, r4, #0
|
|
bl sub_0200AE8C
|
|
add sp, #8
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E84F8
|
|
|
|
thumb_func_start ov108_021E852C
|
|
ov108_021E852C: ; 0x021E852C
|
|
push {r3, lr}
|
|
ldr r0, [r0, #0x10]
|
|
cmp r0, #0
|
|
beq _021E8538
|
|
bl sub_0202457C
|
|
_021E8538:
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E852C
|
|
|
|
thumb_func_start ov108_021E853C
|
|
ov108_021E853C: ; 0x021E853C
|
|
str r1, [r0, #0x14]
|
|
bx lr
|
|
thumb_func_end ov108_021E853C
|
|
|
|
thumb_func_start ov108_021E8540
|
|
ov108_021E8540: ; 0x021E8540
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x60
|
|
add r5, r0, #0
|
|
str r3, [sp, #0x2c]
|
|
add r6, r1, #0
|
|
ldr r0, [r5]
|
|
mov r1, #0x10
|
|
add r7, r2, #0
|
|
bl AllocFromHeap
|
|
mov r1, #0
|
|
mov r2, #0x10
|
|
add r4, r0, #0
|
|
bl MI_CpuFill8
|
|
ldr r0, [r5]
|
|
mov r1, #8
|
|
bl AllocFromHeap
|
|
str r0, [r4, #8]
|
|
ldr r0, [r5]
|
|
mov r1, #0x24
|
|
bl AllocFromHeap
|
|
ldr r1, [r4, #8]
|
|
mov r3, #0xe
|
|
str r0, [r1]
|
|
ldr r0, [r4, #8]
|
|
lsl r3, r3, #0xc
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
str r0, [r4, #4]
|
|
mov r0, #0
|
|
str r3, [sp]
|
|
mvn r0, r0
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [sp, #0x2c]
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0x51
|
|
lsl r0, r0, #2
|
|
ldr r2, [r5, r0]
|
|
str r2, [sp, #0x14]
|
|
add r2, r0, #4
|
|
ldr r2, [r5, r2]
|
|
str r2, [sp, #0x18]
|
|
add r2, r0, #0
|
|
add r2, #8
|
|
ldr r2, [r5, r2]
|
|
add r0, #0xc
|
|
str r2, [sp, #0x1c]
|
|
ldr r0, [r5, r0]
|
|
add r2, r3, #0
|
|
str r0, [sp, #0x20]
|
|
str r1, [sp, #0x24]
|
|
str r1, [sp, #0x28]
|
|
add r1, sp, #0x68
|
|
ldrb r1, [r1, #0x14]
|
|
ldr r0, [r4, #4]
|
|
add r1, r1, r3
|
|
bl CreateSpriteResourcesHeader
|
|
ldr r0, [r5, #0x14]
|
|
cmp r0, #0
|
|
beq _021E85C8
|
|
str r0, [sp, #0x30]
|
|
b _021E85CC
|
|
_021E85C8:
|
|
ldr r0, [r5, #0x10]
|
|
str r0, [sp, #0x30]
|
|
_021E85CC:
|
|
ldr r0, [r4, #4]
|
|
cmp r6, #0
|
|
str r0, [sp, #0x34]
|
|
beq _021E85E6
|
|
lsl r0, r6, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _021E85F4
|
|
_021E85E6:
|
|
lsl r0, r6, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_021E85F4:
|
|
bl _ffix
|
|
str r0, [sp, #0x38]
|
|
cmp r7, #0
|
|
beq _021E8610
|
|
lsl r0, r7, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _021E861E
|
|
_021E8610:
|
|
lsl r0, r7, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_021E861E:
|
|
bl _ffix
|
|
mov r1, #0
|
|
str r1, [sp, #0x40]
|
|
ldr r1, [sp, #0x84]
|
|
str r0, [sp, #0x3c]
|
|
cmp r1, #2
|
|
bne _021E8636
|
|
mov r1, #3
|
|
lsl r1, r1, #0x12
|
|
add r0, r0, r1
|
|
str r0, [sp, #0x3c]
|
|
_021E8636:
|
|
mov r0, #1
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp, #0x44]
|
|
str r0, [sp, #0x48]
|
|
str r0, [sp, #0x4c]
|
|
mov r1, #0
|
|
add r0, sp, #0x30
|
|
add r2, sp, #0x68
|
|
strh r1, [r0, #0x20]
|
|
ldrb r0, [r2, #0x10]
|
|
str r0, [sp, #0x54]
|
|
ldr r0, [sp, #0x84]
|
|
str r0, [sp, #0x58]
|
|
ldr r0, [r5]
|
|
str r0, [sp, #0x5c]
|
|
ldrb r1, [r2, #0x14]
|
|
ldrb r2, [r2, #0x18]
|
|
add r0, r5, #0
|
|
bl ov108_021E84F8
|
|
add r0, sp, #0x30
|
|
bl CreateSprite
|
|
str r0, [r4]
|
|
cmp r0, #0
|
|
bne _021E866E
|
|
bl GF_AssertFail
|
|
_021E866E:
|
|
add r0, r4, #0
|
|
add sp, #0x60
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov108_021E8540
|
|
|
|
thumb_func_start ov108_021E8674
|
|
ov108_021E8674: ; 0x021E8674
|
|
ldr r3, _021E8678 ; =sub_0200D9DC
|
|
bx r3
|
|
.balign 4, 0
|
|
_021E8678: .word sub_0200D9DC
|
|
thumb_func_end ov108_021E8674
|
|
|
|
thumb_func_start ov108_021E867C
|
|
ov108_021E867C: ; 0x021E867C
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
ldr r1, _021E8714 ; =ov108_021EA978
|
|
str r0, [sp]
|
|
ldrb r2, [r1]
|
|
add r0, sp, #8
|
|
strb r2, [r0]
|
|
ldrb r2, [r1, #1]
|
|
strb r2, [r0, #1]
|
|
ldrb r2, [r1, #2]
|
|
ldrb r1, [r1, #3]
|
|
strb r2, [r0, #2]
|
|
strb r1, [r0, #3]
|
|
ldr r0, [sp]
|
|
ldr r2, [sp]
|
|
ldr r1, [sp]
|
|
ldrh r0, [r0, #0xc]
|
|
ldr r2, [r2]
|
|
add r1, #0x18
|
|
bl G2dRenderer_Init
|
|
ldr r1, [sp]
|
|
mov r6, #0x55
|
|
str r0, [r1, #0x10]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
add r7, sp, #8
|
|
add r5, r1, #0
|
|
add r4, r0, #0
|
|
lsl r6, r6, #2
|
|
_021E86B8:
|
|
ldr r2, [sp]
|
|
ldrb r0, [r7]
|
|
ldr r1, [sp, #4]
|
|
ldr r2, [r2]
|
|
bl Create2DGfxResObjMan
|
|
mov r1, #0x51
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
ldr r1, [sp]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r1]
|
|
bl Create2DGfxResObjList
|
|
mov r1, #0x55
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
mov r0, #0x55
|
|
lsl r0, r0, #2
|
|
ldr r3, [r5, r0]
|
|
mov r1, #0
|
|
ldr r0, [r3, #4]
|
|
cmp r0, #0
|
|
bls _021E86FA
|
|
add r2, r1, #0
|
|
_021E86EA:
|
|
ldr r0, [r3]
|
|
add r1, r1, #1
|
|
str r4, [r0, r2]
|
|
ldr r3, [r5, r6]
|
|
add r2, r2, #4
|
|
ldr r0, [r3, #4]
|
|
cmp r1, r0
|
|
blo _021E86EA
|
|
_021E86FA:
|
|
ldr r0, [sp, #4]
|
|
add r7, r7, #1
|
|
add r0, r0, #1
|
|
add r5, r5, #4
|
|
str r0, [sp, #4]
|
|
cmp r0, #4
|
|
blo _021E86B8
|
|
ldr r0, [sp]
|
|
bl ov108_021E8758
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E8714: .word ov108_021EA978
|
|
thumb_func_end ov108_021E867C
|
|
|
|
thumb_func_start ov108_021E8718
|
|
ov108_021E8718: ; 0x021E8718
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0x10]
|
|
bl SpriteList_Delete
|
|
mov r0, #0x55
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl sub_0200AED4
|
|
mov r0, #0x56
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl sub_0200B0CC
|
|
mov r7, #0x55
|
|
lsl r7, r7, #2
|
|
add r6, r7, #0
|
|
mov r4, #0
|
|
sub r6, #0x10
|
|
_021E8740:
|
|
ldr r0, [r5, r7]
|
|
bl Delete2DGfxResObjList
|
|
ldr r0, [r5, r6]
|
|
bl Destroy2DGfxResObjMan
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blo _021E8740
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E8718
|
|
|
|
thumb_func_start ov108_021E8758
|
|
ov108_021E8758: ; 0x021E8758
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
mov r0, #0x55
|
|
lsl r0, r0, #2
|
|
mov r7, #0
|
|
ldr r6, [r5, r0]
|
|
add r4, r7, #0
|
|
_021E8768:
|
|
mov r0, #0xe
|
|
lsl r0, r0, #0xc
|
|
add r0, r7, r0
|
|
str r0, [sp]
|
|
ldrh r0, [r5, #0xe]
|
|
add r2, r7, #0
|
|
mov r1, #0xa6
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5]
|
|
add r2, #0x12
|
|
str r0, [sp, #8]
|
|
mov r0, #0x51
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r3, #0
|
|
bl AddCharResObjFromNarc
|
|
ldr r1, [r6]
|
|
str r0, [r1, r4]
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, r4]
|
|
cmp r0, #0
|
|
bne _021E879A
|
|
bl GF_AssertFail
|
|
_021E879A:
|
|
ldr r0, [r5, #4]
|
|
cmp r0, #0
|
|
beq _021E87A8
|
|
cmp r0, #1
|
|
beq _021E87B2
|
|
cmp r0, #2
|
|
b _021E87BC
|
|
_021E87A8:
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, r4]
|
|
bl sub_0200ADA4
|
|
b _021E87C4
|
|
_021E87B2:
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, r4]
|
|
bl sub_0200AE18
|
|
b _021E87C4
|
|
_021E87BC:
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, r4]
|
|
bl sub_0200AD64
|
|
_021E87C4:
|
|
add r7, r7, #1
|
|
add r4, r4, #4
|
|
cmp r7, #0xc
|
|
blt _021E8768
|
|
mov r4, #0
|
|
add r6, r5, #0
|
|
_021E87D0:
|
|
mov r0, #0x57
|
|
lsl r0, r0, #2
|
|
ldr r7, [r6, r0]
|
|
mov r0, #0xe
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp]
|
|
add r0, r4, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5]
|
|
add r2, r4, #0
|
|
str r0, [sp, #8]
|
|
mov r0, #0x53
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
mov r1, #0xa6
|
|
add r2, #0x10
|
|
mov r3, #0
|
|
bl AddCellOrAnimResObjFromNarc
|
|
ldr r1, [r7]
|
|
str r0, [r1]
|
|
ldr r0, [r7]
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _021E8806
|
|
bl GF_AssertFail
|
|
_021E8806:
|
|
add r4, r4, #1
|
|
add r6, r6, #4
|
|
cmp r4, #2
|
|
blt _021E87D0
|
|
mov r0, #0x56
|
|
lsl r0, r0, #2
|
|
ldr r4, [r5, r0]
|
|
mov r1, #0xe
|
|
lsl r1, r1, #0xc
|
|
str r1, [sp]
|
|
ldrh r1, [r5, #0xe]
|
|
sub r0, #0x10
|
|
mov r2, #0xf
|
|
str r1, [sp, #4]
|
|
mov r1, #4
|
|
str r1, [sp, #8]
|
|
ldr r1, [r5]
|
|
mov r3, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0xa6
|
|
bl AddPlttResObjFromNarc
|
|
ldr r1, [r4]
|
|
str r0, [r1]
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _021E8844
|
|
bl GF_AssertFail
|
|
_021E8844:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
bl sub_0200B00C
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov108_021E8758
|
|
|
|
thumb_func_start ov108_021E8850
|
|
ov108_021E8850: ; 0x021E8850
|
|
push {r4, r5, r6, lr}
|
|
add r5, r1, #0
|
|
ldr r1, [r5]
|
|
add r4, r0, #0
|
|
cmp r1, #0
|
|
beq _021E8862
|
|
cmp r1, #1
|
|
beq _021E88B0
|
|
b _021E88C0
|
|
_021E8862:
|
|
bl ov108_021E8AD4
|
|
mov r2, #0x12
|
|
mov r0, #3
|
|
mov r1, #0x5f
|
|
lsl r2, r2, #0xe
|
|
bl CreateHeap
|
|
add r0, r4, #0
|
|
bl OverlayManager_GetArgs
|
|
mov r1, #0x53
|
|
add r6, r0, #0
|
|
add r0, r4, #0
|
|
lsl r1, r1, #4
|
|
mov r2, #0x5f
|
|
bl OverlayManager_CreateAndGetData
|
|
mov r2, #0x53
|
|
mov r1, #0
|
|
lsl r2, r2, #4
|
|
add r4, r0, #0
|
|
bl MI_CpuFill8
|
|
mov r0, #0x5f
|
|
str r0, [r4]
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
bl ov108_021E8968
|
|
mov r1, #0
|
|
mov r0, #0x43
|
|
add r2, r1, #0
|
|
bl sub_02004EC4
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _021E88C0
|
|
_021E88B0:
|
|
bl OverlayManager_GetData
|
|
bl ov108_021E929C
|
|
cmp r0, #0
|
|
beq _021E88C0
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_021E88C0:
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov108_021E8850
|
|
|
|
thumb_func_start ov108_021E88C4
|
|
ov108_021E88C4: ; 0x021E88C4
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
bl OverlayManager_GetData
|
|
add r4, r0, #0
|
|
bl ov108_021E9304
|
|
cmp r0, #0
|
|
bne _021E88DA
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021E88DA:
|
|
bl ov108_021E8AD4
|
|
add r0, r4, #0
|
|
bl ov108_021E8A88
|
|
mov r2, #0x53
|
|
ldr r5, [r4]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
lsl r2, r2, #4
|
|
bl MI_CpuFill8
|
|
add r0, r6, #0
|
|
bl OverlayManager_FreeData
|
|
add r0, r5, #0
|
|
bl DestroyHeap
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E88C4
|
|
|
|
thumb_func_start ov108_021E8904
|
|
ov108_021E8904: ; 0x021E8904
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
bl OverlayManager_GetData
|
|
ldr r1, [r4]
|
|
add r5, r0, #0
|
|
cmp r1, #4
|
|
bhi _021E894E
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021E8920: ; jump table
|
|
.short _021E892A - _021E8920 - 2 ; case 0
|
|
.short _021E8932 - _021E8920 - 2 ; case 1
|
|
.short _021E893A - _021E8920 - 2 ; case 2
|
|
.short _021E8942 - _021E8920 - 2 ; case 3
|
|
.short _021E894A - _021E8920 - 2 ; case 4
|
|
_021E892A:
|
|
bl ov108_021E8BC0
|
|
str r0, [r4]
|
|
b _021E894E
|
|
_021E8932:
|
|
bl ov108_021E8B24
|
|
str r0, [r4]
|
|
b _021E894E
|
|
_021E893A:
|
|
bl ov108_021E8B68
|
|
str r0, [r4]
|
|
b _021E894E
|
|
_021E8942:
|
|
bl ov108_021E8C18
|
|
str r0, [r4]
|
|
b _021E894E
|
|
_021E894A:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021E894E:
|
|
mov r0, #0x11
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
bl sub_0200D020
|
|
mov r0, #0xce
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
bl ov108_021E8E10
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E8904
|
|
|
|
thumb_func_start ov108_021E8968
|
|
ov108_021E8968: ; 0x021E8968
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl Save_SafariZone_Get
|
|
add r2, r5, #0
|
|
str r0, [r5, #0x20]
|
|
mov r1, #0
|
|
add r2, #0x24
|
|
bl SafariZone_CopyAreaSet
|
|
ldr r0, [r4]
|
|
bl Save_PlayerData_GetOptionsAddr
|
|
add r6, r0, #0
|
|
bl Options_GetTextSpeed
|
|
strb r0, [r5, #0x18]
|
|
add r0, r6, #0
|
|
bl Options_GetFrame
|
|
strb r0, [r5, #0x19]
|
|
ldr r0, [r4, #4]
|
|
bl sub_020183F0
|
|
str r0, [r5, #0x10]
|
|
str r4, [r5, #0x1c]
|
|
ldr r0, [r4, #0x20]
|
|
mov r1, #6
|
|
ldrb r0, [r0]
|
|
bl _s32_div_f
|
|
ldr r0, _021E8A74 ; =0x00000431
|
|
strb r1, [r5, r0]
|
|
ldr r0, [r5, #0x1c]
|
|
mov r1, #6
|
|
ldr r0, [r0, #0x20]
|
|
ldrb r0, [r0]
|
|
bl _s32_div_f
|
|
mov r1, #0x43
|
|
lsl r1, r1, #4
|
|
strb r0, [r5, r1]
|
|
ldr r0, [r4]
|
|
bl Save_PlayerData_GetProfileAddr
|
|
add r6, r0, #0
|
|
ldr r0, [r5, #0x20]
|
|
bl sub_0202F720
|
|
add r7, r0, #0
|
|
add r0, r6, #0
|
|
bl PlayerProfile_GetTrainerID
|
|
str r0, [sp, #4]
|
|
add r0, r6, #0
|
|
bl PlayerProfile_GetTrainerGender
|
|
lsl r0, r0, #0x18
|
|
lsr r2, r0, #0x18
|
|
ldr r0, [r5]
|
|
ldr r3, _021E8A78 ; =0x0000042D
|
|
str r0, [sp]
|
|
ldr r0, [sp, #4]
|
|
add r1, r7, #0
|
|
add r3, r5, r3
|
|
bl ov108_021EA63C
|
|
mov r1, #0xcd
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
ldrb r0, [r4, #0x19]
|
|
strb r0, [r5, #0x1a]
|
|
cmp r0, #5
|
|
bls _021E8A06
|
|
mov r0, #0
|
|
strb r0, [r5, #0x1a]
|
|
_021E8A06:
|
|
ldrb r1, [r5, #0x1a]
|
|
mov r0, #0x7a
|
|
mul r0, r1
|
|
add r0, r5, r0
|
|
add r0, #0x25
|
|
ldrb r1, [r0]
|
|
mov r0, #0x1e
|
|
sub r1, r0, r1
|
|
ldr r0, _021E8A7C ; =0x00000435
|
|
strb r1, [r5, r0]
|
|
sub r0, #8
|
|
ldrb r0, [r5, r0]
|
|
mov r1, #6
|
|
bl _s32_div_f
|
|
ldr r1, _021E8A80 ; =0x0000042E
|
|
strb r0, [r5, r1]
|
|
sub r0, r1, #1
|
|
ldrb r0, [r5, r0]
|
|
mov r1, #6
|
|
bl _s32_div_f
|
|
cmp r1, #0
|
|
ble _021E8A3E
|
|
ldr r0, _021E8A80 ; =0x0000042E
|
|
ldrb r1, [r5, r0]
|
|
add r1, r1, #1
|
|
strb r1, [r5, r0]
|
|
_021E8A3E:
|
|
mov r0, #0x43
|
|
lsl r0, r0, #4
|
|
sub r1, r0, #2
|
|
ldrb r2, [r5, r0]
|
|
ldrb r1, [r5, r1]
|
|
cmp r2, r1
|
|
blo _021E8A50
|
|
mov r1, #0
|
|
strb r1, [r5, r0]
|
|
_021E8A50:
|
|
ldr r0, [r5, #0x1c]
|
|
mov r1, #0xff
|
|
strh r1, [r0, #0x1c]
|
|
ldr r0, [r4]
|
|
bl Save_SysInfo_RTC_Get
|
|
ldr r0, [r0, #0x14]
|
|
bl GF_RTC_GetTimeOfDayByHour
|
|
ldr r1, _021E8A84 ; =0x0000042C
|
|
strb r0, [r5, r1]
|
|
ldrb r0, [r5, r1]
|
|
cmp r0, #4
|
|
bne _021E8A70
|
|
mov r0, #3
|
|
strb r0, [r5, r1]
|
|
_021E8A70:
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E8A74: .word 0x00000431
|
|
_021E8A78: .word 0x0000042D
|
|
_021E8A7C: .word 0x00000435
|
|
_021E8A80: .word 0x0000042E
|
|
_021E8A84: .word 0x0000042C
|
|
thumb_func_end ov108_021E8968
|
|
|
|
thumb_func_start ov108_021E8A88
|
|
ov108_021E8A88: ; 0x021E8A88
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0xcd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FreeToHeap
|
|
add r2, r4, #0
|
|
ldr r0, [r4, #0x20]
|
|
mov r1, #0
|
|
add r2, #0x24
|
|
bl SafariZone_SetAreaSet
|
|
ldr r0, _021E8AD0 ; =0x00000431
|
|
ldrb r1, [r4, r0]
|
|
cmp r1, #6
|
|
blo _021E8AAE
|
|
mov r1, #5
|
|
strb r1, [r4, r0]
|
|
_021E8AAE:
|
|
ldr r0, _021E8AD0 ; =0x00000431
|
|
ldrb r2, [r4, r0]
|
|
sub r0, r0, #1
|
|
ldrb r1, [r4, r0]
|
|
mov r0, #6
|
|
mul r0, r1
|
|
add r1, r2, r0
|
|
ldr r0, [r4, #0x1c]
|
|
ldr r0, [r0, #0x20]
|
|
strb r1, [r0]
|
|
ldr r0, [r4, #0x1c]
|
|
ldr r1, [r4, #0x10]
|
|
ldr r0, [r0, #4]
|
|
bl sub_02018410
|
|
pop {r4, pc}
|
|
nop
|
|
_021E8AD0: .word 0x00000431
|
|
thumb_func_end ov108_021E8A88
|
|
|
|
thumb_func_start ov108_021E8AD4
|
|
ov108_021E8AD4: ; 0x021E8AD4
|
|
push {r3, lr}
|
|
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, _021E8B1C ; =0xFFFFE0FF
|
|
and r1, r0
|
|
str r1, [r2]
|
|
ldr r2, _021E8B20 ; =0x04001000
|
|
ldr r1, [r2]
|
|
and r0, r1
|
|
str r0, [r2]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl sub_0200FBF4
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl sub_0200FBF4
|
|
mov r0, #0
|
|
bl sub_0200FBDC
|
|
mov r0, #1
|
|
bl sub_0200FBDC
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_021E8B1C: .word 0xFFFFE0FF
|
|
_021E8B20: .word 0x04001000
|
|
thumb_func_end ov108_021E8AD4
|
|
|
|
thumb_func_start ov108_021E8B24
|
|
ov108_021E8B24: ; 0x021E8B24
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r1, [r4, #4]
|
|
cmp r1, #3
|
|
bhi _021E8B62
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021E8B3A: ; jump table
|
|
.short _021E8B42 - _021E8B3A - 2 ; case 0
|
|
.short _021E8B4A - _021E8B3A - 2 ; case 1
|
|
.short _021E8B52 - _021E8B3A - 2 ; case 2
|
|
.short _021E8B5A - _021E8B3A - 2 ; case 3
|
|
_021E8B42:
|
|
bl ov108_021E9388
|
|
str r0, [r4, #4]
|
|
b _021E8B62
|
|
_021E8B4A:
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
mov r0, #2
|
|
pop {r4, pc}
|
|
_021E8B52:
|
|
bl ov108_021E93A8
|
|
str r0, [r4, #4]
|
|
b _021E8B62
|
|
_021E8B5A:
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
ldr r0, [r4, #0xc]
|
|
pop {r4, pc}
|
|
_021E8B62:
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E8B24
|
|
|
|
thumb_func_start ov108_021E8B68
|
|
ov108_021E8B68: ; 0x021E8B68
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r1, [r4, #4]
|
|
cmp r1, #0
|
|
beq _021E8B78
|
|
cmp r1, #1
|
|
beq _021E8B8C
|
|
b _021E8BAE
|
|
_021E8B78:
|
|
mov r1, #1
|
|
bl ov108_021E940C
|
|
add r0, r4, #0
|
|
bl ov108_021E9488
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
b _021E8BBC
|
|
_021E8B8C:
|
|
bl ov108_021E94E8
|
|
cmp r0, #0
|
|
blt _021E8BBC
|
|
cmp r0, #1
|
|
bne _021E8BA6
|
|
add r0, r4, #0
|
|
bl ov108_021E8C64
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
mov r0, #3
|
|
pop {r4, pc}
|
|
_021E8BA6:
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
b _021E8BBC
|
|
_021E8BAE:
|
|
mov r1, #0
|
|
bl ov108_021E940C
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E8BBC:
|
|
mov r0, #2
|
|
pop {r4, pc}
|
|
thumb_func_end ov108_021E8B68
|
|
|
|
thumb_func_start ov108_021E8BC0
|
|
ov108_021E8BC0: ; 0x021E8BC0
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _021E8BD2
|
|
cmp r0, #1
|
|
beq _021E8C00
|
|
b _021E8C12
|
|
_021E8BD2:
|
|
mov r0, #6
|
|
mov r1, #1
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
ldr r0, [r4]
|
|
add r2, r1, #0
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
add r3, r0, #0
|
|
bl BeginNormalPaletteFade
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl GfGfx_EngineATogglePlanes
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl GfGfx_EngineBTogglePlanes
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
b _021E8C12
|
|
_021E8C00:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _021E8C12
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
add sp, #0xc
|
|
mov r0, #1
|
|
pop {r3, r4, pc}
|
|
_021E8C12:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
thumb_func_end ov108_021E8BC0
|
|
|
|
thumb_func_start ov108_021E8C18
|
|
ov108_021E8C18: ; 0x021E8C18
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _021E8C2A
|
|
cmp r0, #1
|
|
beq _021E8C4A
|
|
b _021E8C5C
|
|
_021E8C2A:
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
add r3, r0, #0
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
b _021E8C5C
|
|
_021E8C4A:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _021E8C5C
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
add sp, #0xc
|
|
mov r0, #4
|
|
pop {r3, r4, pc}
|
|
_021E8C5C:
|
|
mov r0, #3
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E8C18
|
|
|
|
thumb_func_start ov108_021E8C64
|
|
ov108_021E8C64: ; 0x021E8C64
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
add r0, sp, #0
|
|
mov r1, #0
|
|
mov r2, #4
|
|
bl MI_CpuFill8
|
|
mov r0, #0xcd
|
|
lsl r0, r0, #2
|
|
ldr r2, [r4, r0]
|
|
add r0, #0xfe
|
|
ldrb r1, [r4, r0]
|
|
mov r5, #0x1b
|
|
lsl r0, r1, #2
|
|
add r0, r1, r0
|
|
add r1, r2, r0
|
|
ldrb r2, [r2, r0]
|
|
add r0, sp, #0
|
|
strb r2, [r0]
|
|
ldrb r2, [r1, #1]
|
|
ldr r3, [r4, #0x1c]
|
|
lsl r2, r2, #2
|
|
add r2, r3, r2
|
|
ldrb r2, [r2, #9]
|
|
lsr r3, r2, #0x1f
|
|
lsl r2, r2, #0x1b
|
|
sub r2, r2, r3
|
|
ror r2, r5
|
|
add r2, r3, r2
|
|
strb r2, [r0, #1]
|
|
ldrb r1, [r1, #1]
|
|
ldr r2, [r4, #0x1c]
|
|
lsl r1, r1, #2
|
|
add r1, r2, r1
|
|
ldrb r1, [r1, #0xb]
|
|
lsr r2, r1, #0x1f
|
|
lsl r1, r1, #0x1b
|
|
sub r1, r1, r2
|
|
ror r1, r5
|
|
add r1, r2, r1
|
|
strb r1, [r0, #3]
|
|
ldr r1, [r4, #0x1c]
|
|
add r2, sp, #0
|
|
ldrb r1, [r1, #0x1a]
|
|
strb r1, [r0, #2]
|
|
ldr r1, [r4, #0x1c]
|
|
add r0, r4, #0
|
|
ldrb r1, [r1, #0x19]
|
|
add r0, #0x24
|
|
bl SafariZone_AddObjectToArea
|
|
add r0, sp, #0
|
|
ldrb r1, [r0]
|
|
ldr r0, [r4, #0x1c]
|
|
strh r1, [r0, #0x1c]
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov108_021E8C64
|
|
|
|
thumb_func_start ov108_021E8CD4
|
|
ov108_021E8CD4: ; 0x021E8CD4
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r6, r1, #0
|
|
add r4, r2, #0
|
|
mov r1, #0
|
|
mov r2, #0xf4
|
|
add r5, r0, #0
|
|
bl MI_CpuFill8
|
|
bl NNS_G3dInit
|
|
bl G3X_Init
|
|
bl G3X_InitMtxStack
|
|
ldr r0, _021E8DF4 ; =0x04000060
|
|
ldr r1, _021E8DF8 ; =0xFFFFCFFD
|
|
ldrh r2, [r0]
|
|
and r2, r1
|
|
strh r2, [r0]
|
|
ldrh r3, [r0]
|
|
ldr r2, _021E8DFC ; =0x0000CFFB
|
|
and r2, r3
|
|
strh r2, [r0]
|
|
ldrh r3, [r0]
|
|
add r2, r1, #2
|
|
and r3, r2
|
|
mov r2, #8
|
|
orr r2, r3
|
|
strh r2, [r0]
|
|
add r2, r1, #2
|
|
ldrh r3, [r0]
|
|
add r1, r1, #2
|
|
and r3, r2
|
|
mov r2, #0x10
|
|
orr r2, r3
|
|
strh r2, [r0]
|
|
ldrh r2, [r0]
|
|
and r2, r1
|
|
mov r1, #0x20
|
|
orr r1, r2
|
|
strh r1, [r0]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
add r3, r0, #0
|
|
bl G3X_SetFog
|
|
mov r0, #0
|
|
ldr r2, _021E8E00 ; =0x00007FFF
|
|
add r1, r0, #0
|
|
mov r3, #0x3f
|
|
str r0, [sp]
|
|
bl G3X_SetClearColor
|
|
ldr r1, _021E8E04 ; =0x04000540
|
|
mov r0, #2
|
|
str r0, [r1]
|
|
ldr r0, _021E8E08 ; =0xBFFF0000
|
|
str r0, [r1, #0x40]
|
|
add r0, r5, #0
|
|
str r4, [r5, #0x14]
|
|
add r0, #0xf1
|
|
strb r6, [r0]
|
|
mov r0, #0x80
|
|
bl NNS_GfdGetLnkTexVramManagerWorkSize
|
|
add r6, r0, #0
|
|
ldr r0, [r5, #0x14]
|
|
add r1, r6, #0
|
|
bl AllocFromHeap
|
|
add r1, r5, #0
|
|
add r1, #0xec
|
|
str r0, [r1]
|
|
mov r0, #1
|
|
add r2, r5, #0
|
|
str r0, [sp]
|
|
add r2, #0xec
|
|
ldr r2, [r2]
|
|
lsl r0, r0, #0x11
|
|
mov r1, #0
|
|
add r3, r6, #0
|
|
bl GF_3DVramMan_InitLinkedListTexVramManager
|
|
mov r0, #1
|
|
lsl r0, r0, #8
|
|
bl NNS_GfdGetLnkPlttVramManagerWorkSize
|
|
add r6, r0, #0
|
|
ldr r0, [r5, #0x14]
|
|
add r1, r6, #0
|
|
bl AllocFromHeap
|
|
add r1, r5, #0
|
|
add r1, #0xe8
|
|
str r0, [r1]
|
|
add r1, r5, #0
|
|
add r1, #0xe8
|
|
mov r0, #1
|
|
ldr r1, [r1]
|
|
lsl r0, r0, #0xe
|
|
add r2, r6, #0
|
|
mov r3, #1
|
|
bl GF_3DVramMan_InitLinkedListPlttVramManager
|
|
add r0, r5, #4
|
|
add r1, r4, #0
|
|
mov r2, #0x20
|
|
bl GF_ExpHeap_FndInitAllocator
|
|
mov r0, #0x28
|
|
add r1, r4, #0
|
|
bl NARC_New
|
|
str r0, [r5, #0x18]
|
|
mov r0, #0x6b
|
|
add r1, r4, #0
|
|
bl NARC_New
|
|
str r0, [r5, #0x1c]
|
|
mov r0, #0x6a
|
|
add r1, r4, #0
|
|
bl NARC_New
|
|
str r0, [r5, #0x20]
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov108_021E9230
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
bl GfGfx_EngineATogglePlanes
|
|
ldr r1, _021E8E0C ; =0x04000008
|
|
mov r0, #3
|
|
ldrh r2, [r1]
|
|
bic r2, r0
|
|
mov r0, #1
|
|
orr r0, r2
|
|
strh r0, [r1]
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
nop
|
|
_021E8DF4: .word 0x04000060
|
|
_021E8DF8: .word 0xFFFFCFFD
|
|
_021E8DFC: .word 0x0000CFFB
|
|
_021E8E00: .word 0x00007FFF
|
|
_021E8E04: .word 0x04000540
|
|
_021E8E08: .word 0xBFFF0000
|
|
_021E8E0C: .word 0x04000008
|
|
thumb_func_end ov108_021E8CD4
|
|
|
|
thumb_func_start ov108_021E8E10
|
|
ov108_021E8E10: ; 0x021E8E10
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl Thunk_G3X_Reset
|
|
bl Camera_PushLookAtToNNSGlb
|
|
bl NNS_G3dGeFlushBuffer
|
|
ldr r2, _021E8E58 ; =0x04000440
|
|
mov r3, #0
|
|
add r1, r2, #0
|
|
str r3, [r2]
|
|
add r1, #0x14
|
|
str r3, [r1]
|
|
mov r0, #2
|
|
str r0, [r2]
|
|
add r0, r4, #0
|
|
str r3, [r1]
|
|
add r0, #0xf0
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _021E8E4E
|
|
add r0, r4, #0
|
|
add r0, #0xd8
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
beq _021E8E4E
|
|
add r4, #0x24
|
|
add r0, r4, #0
|
|
bl ov108_021E9144
|
|
_021E8E4E:
|
|
ldr r0, _021E8E5C ; =0x04000540
|
|
mov r1, #1
|
|
str r1, [r0]
|
|
pop {r4, pc}
|
|
nop
|
|
_021E8E58: .word 0x04000440
|
|
_021E8E5C: .word 0x04000540
|
|
thumb_func_end ov108_021E8E10
|
|
|
|
thumb_func_start ov108_021E8E60
|
|
ov108_021E8E60: ; 0x021E8E60
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r1, r4, #0
|
|
add r1, #0xd8
|
|
ldrh r1, [r1]
|
|
cmp r1, #0
|
|
beq _021E8E76
|
|
add r1, r4, #0
|
|
add r1, #0x24
|
|
bl ov108_021E90C4
|
|
_021E8E76:
|
|
ldr r0, [r4]
|
|
bl Camera_Delete
|
|
add r0, r4, #0
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
add r0, #0xec
|
|
ldr r0, [r0]
|
|
bl FreeToHeap
|
|
ldr r0, [r4, #0x20]
|
|
bl NARC_Delete
|
|
ldr r0, [r4, #0x1c]
|
|
bl NARC_Delete
|
|
ldr r0, [r4, #0x18]
|
|
bl NARC_Delete
|
|
pop {r4, pc}
|
|
thumb_func_end ov108_021E8E60
|
|
|
|
thumb_func_start ov108_021E8EA4
|
|
ov108_021E8EA4: ; 0x021E8EA4
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
add r1, r5, #0
|
|
add r1, #0xd8
|
|
ldrh r1, [r1]
|
|
add r4, r2, #0
|
|
cmp r1, #0
|
|
beq _021E8EBE
|
|
add r1, r5, #0
|
|
add r1, #0x24
|
|
bl ov108_021E90C4
|
|
_021E8EBE:
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
add r0, #0xf0
|
|
strb r1, [r0]
|
|
cmp r4, #0
|
|
beq _021E8ED4
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
add r2, r4, #0
|
|
bl ov108_021E8F00
|
|
_021E8ED4:
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E8EA4
|
|
|
|
thumb_func_start ov108_021E8ED8
|
|
ov108_021E8ED8: ; 0x021E8ED8
|
|
push {r3, lr}
|
|
add r2, r0, #0
|
|
add r2, #0xf0
|
|
strb r1, [r2]
|
|
add r0, #0xf0
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _021E8EFA
|
|
bl Thunk_G3X_Reset
|
|
bl Camera_PushLookAtToNNSGlb
|
|
bl NNS_G3dGeFlushBuffer
|
|
ldr r0, _021E8EFC ; =0x04000540
|
|
mov r1, #1
|
|
str r1, [r0]
|
|
_021E8EFA:
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_021E8EFC: .word 0x04000540
|
|
thumb_func_end ov108_021E8ED8
|
|
|
|
thumb_func_start ov108_021E8F00
|
|
ov108_021E8F00: ; 0x021E8F00
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x28
|
|
str r0, [sp, #4]
|
|
add r4, r2, #0
|
|
mov r2, #0
|
|
add r5, r0, #0
|
|
str r2, [sp]
|
|
ldr r3, [sp, #4]
|
|
str r1, [sp, #8]
|
|
ldrb r1, [r4]
|
|
ldr r0, [r0, #0x18]
|
|
ldr r3, [r3, #0x14]
|
|
add r5, #0x24
|
|
bl GfGfxLoader_LoadFromOpenNarc
|
|
ldr r1, [sp, #4]
|
|
str r0, [r1, #0x24]
|
|
bl NNS_G3dGetMdlSet
|
|
str r0, [r5, #4]
|
|
cmp r0, #0
|
|
beq _021E8F4C
|
|
add r2, r0, #0
|
|
add r2, #8
|
|
beq _021E8F40
|
|
ldrb r1, [r0, #9]
|
|
cmp r1, #0
|
|
bls _021E8F40
|
|
ldrh r1, [r0, #0xe]
|
|
add r1, r2, r1
|
|
add r1, r1, #4
|
|
b _021E8F42
|
|
_021E8F40:
|
|
mov r1, #0
|
|
_021E8F42:
|
|
cmp r1, #0
|
|
beq _021E8F4C
|
|
ldr r1, [r1]
|
|
add r0, r0, r1
|
|
b _021E8F4E
|
|
_021E8F4C:
|
|
mov r0, #0
|
|
_021E8F4E:
|
|
str r0, [r5, #8]
|
|
ldr r0, [r5]
|
|
bl NNS_G3dGetTex
|
|
str r0, [r5, #0xc]
|
|
cmp r0, #0
|
|
beq _021E8F68
|
|
bl AllocAndLoad3dTexResources
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, #0xc]
|
|
bl Bind3dModelSet
|
|
_021E8F68:
|
|
add r0, r5, #0
|
|
ldr r1, [r5, #8]
|
|
add r0, #0x10
|
|
bl NNS_G3dRenderObjInit
|
|
bl DC_FlushAll
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
add r0, #0xb4
|
|
strh r1, [r0]
|
|
ldr r0, [sp, #4]
|
|
ldrb r1, [r4]
|
|
ldr r0, [r0, #0x1c]
|
|
add r2, sp, #0x10
|
|
bl NARC_ReadWholeMember
|
|
add r0, sp, #0x10
|
|
ldrb r1, [r0]
|
|
cmp r1, #0
|
|
beq _021E8FEC
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #8
|
|
beq _021E8FEC
|
|
mov r0, #0
|
|
add r6, r5, #0
|
|
add r7, r5, #0
|
|
str r0, [sp, #0xc]
|
|
add r4, sp, #0x10
|
|
add r6, #0x64
|
|
add r7, #0xb6
|
|
_021E8FA6:
|
|
ldr r1, [r4, #8]
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
mov ip, r1
|
|
cmp r1, r0
|
|
beq _021E8FEC
|
|
add r2, r5, #0
|
|
add r2, #0xb6
|
|
ldrh r3, [r2]
|
|
mov r2, #0x14
|
|
ldr r0, [sp, #4]
|
|
mul r2, r3
|
|
add r1, r5, #0
|
|
add r2, r6, r2
|
|
mov r3, ip
|
|
bl ov108_021E9198
|
|
add r1, r5, #0
|
|
add r1, #0xb6
|
|
ldrh r2, [r1]
|
|
mov r1, #0x14
|
|
add r0, r5, #0
|
|
mul r1, r2
|
|
add r1, r6, r1
|
|
bl ov108_021E91F8
|
|
ldrh r0, [r7]
|
|
add r4, r4, #4
|
|
add r0, r0, #1
|
|
strh r0, [r7]
|
|
ldr r0, [sp, #0xc]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0xc]
|
|
cmp r0, #4
|
|
blt _021E8FA6
|
|
_021E8FEC:
|
|
ldr r0, [sp, #8]
|
|
ldr r1, _021E90C0 ; =ov108_021EA9E4
|
|
lsl r0, r0, #3
|
|
add r4, r1, r0
|
|
mov r0, #2
|
|
ldrsh r0, [r4, r0]
|
|
cmp r0, #0
|
|
ble _021E900E
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _021E901C
|
|
_021E900E:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_021E901C:
|
|
bl _ffix
|
|
ldr r1, [sp, #4]
|
|
add r1, #0xdc
|
|
str r0, [r1]
|
|
mov r0, #4
|
|
ldrsh r0, [r4, r0]
|
|
cmp r0, #0
|
|
ble _021E9040
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _021E904E
|
|
_021E9040:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_021E904E:
|
|
bl _ffix
|
|
ldr r1, [sp, #4]
|
|
add r1, #0xe0
|
|
str r0, [r1]
|
|
mov r0, #6
|
|
ldrsh r0, [r4, r0]
|
|
cmp r0, #0
|
|
ble _021E9072
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _021E9080
|
|
_021E9072:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_021E9080:
|
|
bl _ffix
|
|
ldr r1, [sp, #4]
|
|
add r1, #0xe4
|
|
str r0, [r1]
|
|
ldrh r0, [r4]
|
|
cmp r0, #0
|
|
beq _021E90A2
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _021E90B0
|
|
_021E90A2:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_021E90B0:
|
|
bl _ffix
|
|
ldr r1, [sp, #4]
|
|
ldr r1, [r1]
|
|
bl Camera_SetDistance
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E90C0: .word ov108_021EA9E4
|
|
thumb_func_end ov108_021E8F00
|
|
|
|
thumb_func_start ov108_021E90C4
|
|
ov108_021E90C4: ; 0x021E90C4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r6, r1, #0
|
|
add r7, r0, #0
|
|
add r0, r6, #0
|
|
add r0, #0xb6
|
|
ldrh r0, [r0]
|
|
mov r4, #0
|
|
cmp r0, #0
|
|
ble _021E90FA
|
|
add r5, r6, #0
|
|
add r5, #0x64
|
|
_021E90DC:
|
|
add r0, r6, #0
|
|
add r1, r5, #0
|
|
bl ov108_021E9204
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
bl ov108_021E91D4
|
|
add r0, r6, #0
|
|
add r0, #0xb6
|
|
ldrh r0, [r0]
|
|
add r4, r4, #1
|
|
add r5, #0x14
|
|
cmp r4, r0
|
|
blt _021E90DC
|
|
_021E90FA:
|
|
ldr r0, [r6, #0xc]
|
|
cmp r0, #0
|
|
beq _021E9124
|
|
add r1, sp, #4
|
|
add r2, sp, #0
|
|
bl NNS_G3dTexReleaseTexKey
|
|
ldr r1, _021E913C ; =NNS_GfdDefaultFuncFreeTexVram
|
|
ldr r0, [sp, #4]
|
|
ldr r1, [r1]
|
|
blx r1
|
|
ldr r1, _021E913C ; =NNS_GfdDefaultFuncFreeTexVram
|
|
ldr r0, [sp]
|
|
ldr r1, [r1]
|
|
blx r1
|
|
ldr r0, [r6, #0xc]
|
|
bl NNS_G3dPlttReleasePlttKey
|
|
ldr r1, _021E9140 ; =NNS_GfdDefaultFuncFreePlttVram
|
|
ldr r1, [r1]
|
|
blx r1
|
|
_021E9124:
|
|
ldr r0, [r6]
|
|
cmp r0, #0
|
|
beq _021E912E
|
|
bl FreeToHeap
|
|
_021E912E:
|
|
add r0, r6, #0
|
|
mov r1, #0
|
|
mov r2, #0xb8
|
|
bl MI_CpuFill8
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E913C: .word NNS_GfdDefaultFuncFreeTexVram
|
|
_021E9140: .word NNS_GfdDefaultFuncFreePlttVram
|
|
thumb_func_end ov108_021E90C4
|
|
|
|
thumb_func_start ov108_021E9144
|
|
ov108_021E9144: ; 0x021E9144
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x3c
|
|
add r6, r0, #0
|
|
add r0, #0xb6
|
|
ldrh r0, [r0]
|
|
mov r4, #0
|
|
cmp r0, #0
|
|
ble _021E916C
|
|
add r5, r6, #0
|
|
add r5, #0x64
|
|
_021E9158:
|
|
add r0, r5, #0
|
|
bl ov108_021E9210
|
|
add r0, r6, #0
|
|
add r0, #0xb6
|
|
ldrh r0, [r0]
|
|
add r4, r4, #1
|
|
add r5, #0x14
|
|
cmp r4, r0
|
|
blt _021E9158
|
|
_021E916C:
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
str r0, [sp, #0x14]
|
|
mov r0, #1
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
add r0, sp, #0x18
|
|
bl MTX_Identity33_
|
|
add r6, #0x10
|
|
add r0, r6, #0
|
|
add r1, sp, #0xc
|
|
add r2, sp, #0x18
|
|
add r3, sp, #0
|
|
bl Draw3dModel
|
|
add sp, #0x3c
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E9144
|
|
|
|
thumb_func_start ov108_021E9198
|
|
ov108_021E9198: ; 0x021E9198
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r4, r2, #0
|
|
mov r2, #0
|
|
add r6, r1, #0
|
|
add r5, r0, #0
|
|
str r2, [sp]
|
|
add r1, r3, #0
|
|
ldr r0, [r5, #0x20]
|
|
ldr r3, [r5, #0x14]
|
|
bl GfGfxLoader_LoadFromOpenNarc
|
|
str r0, [r4]
|
|
mov r1, #0
|
|
bl NNS_G3dGetAnmByIdx
|
|
str r0, [r4, #4]
|
|
ldr r1, [r4, #4]
|
|
ldr r2, [r6, #8]
|
|
add r0, r5, #4
|
|
bl NNS_G3dAllocAnmObj
|
|
str r0, [r4, #8]
|
|
ldr r1, [r4, #4]
|
|
ldr r2, [r6, #8]
|
|
ldr r3, [r6, #0xc]
|
|
bl NNS_G3dAnmObjInit
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
thumb_func_end ov108_021E9198
|
|
|
|
thumb_func_start ov108_021E91D4
|
|
ov108_021E91D4: ; 0x021E91D4
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
ldr r1, [r4]
|
|
cmp r1, #0
|
|
beq _021E91F6
|
|
ldr r1, [r4, #8]
|
|
add r0, r0, #4
|
|
bl NNS_G3dFreeAnmObj
|
|
ldr r0, [r4]
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #0x14
|
|
bl MI_CpuFill8
|
|
_021E91F6:
|
|
pop {r4, pc}
|
|
thumb_func_end ov108_021E91D4
|
|
|
|
thumb_func_start ov108_021E91F8
|
|
ov108_021E91F8: ; 0x021E91F8
|
|
ldr r3, _021E9200 ; =NNS_G3dRenderObjAddAnmObj
|
|
add r0, #0x10
|
|
ldr r1, [r1, #8]
|
|
bx r3
|
|
.balign 4, 0
|
|
_021E9200: .word NNS_G3dRenderObjAddAnmObj
|
|
thumb_func_end ov108_021E91F8
|
|
|
|
thumb_func_start ov108_021E9204
|
|
ov108_021E9204: ; 0x021E9204
|
|
ldr r3, _021E920C ; =NNS_G3dRenderObjRemoveAnmObj
|
|
add r0, #0x10
|
|
ldr r1, [r1, #8]
|
|
bx r3
|
|
.balign 4, 0
|
|
_021E920C: .word NNS_G3dRenderObjRemoveAnmObj
|
|
thumb_func_end ov108_021E9204
|
|
|
|
thumb_func_start ov108_021E9210
|
|
ov108_021E9210: ; 0x021E9210
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #1
|
|
ldr r1, [r4, #0xc]
|
|
lsl r0, r0, #0xc
|
|
add r0, r1, r0
|
|
ldr r1, [r4, #8]
|
|
ldr r1, [r1, #8]
|
|
ldrh r1, [r1, #4]
|
|
lsl r1, r1, #0xc
|
|
bl _s32_div_f
|
|
str r1, [r4, #0xc]
|
|
ldr r0, [r4, #8]
|
|
str r1, [r0]
|
|
pop {r4, pc}
|
|
thumb_func_end ov108_021E9210
|
|
|
|
thumb_func_start ov108_021E9230
|
|
ov108_021E9230: ; 0x021E9230
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
add r0, r1, #0
|
|
bl Camera_New
|
|
str r0, [r4]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0xdc
|
|
str r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0xe0
|
|
str r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0xe4
|
|
str r1, [r0]
|
|
str r1, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
ldr r1, _021E928C ; =0x0015B000
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
ldr r2, _021E9290 ; =ov108_021EA9C4
|
|
ldr r3, _021E9294 ; =0x000005C1
|
|
add r0, #0xdc
|
|
bl Camera_Init_FromTargetDistanceAndAngle
|
|
ldr r0, [r4]
|
|
bl Camera_SetStaticPtr
|
|
mov r0, #0x19
|
|
mov r1, #0x4b
|
|
ldr r2, [r4]
|
|
lsl r0, r0, #0xe
|
|
lsl r1, r1, #0x10
|
|
bl Camera_SetPerspectiveClippingPlane
|
|
ldr r0, _021E9298 ; =ov108_021EA9D8
|
|
ldr r1, [r4]
|
|
bl Camera_OffsetLookAtPosAndTarget
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
nop
|
|
_021E928C: .word 0x0015B000
|
|
_021E9290: .word ov108_021EA9C4
|
|
_021E9294: .word 0x000005C1
|
|
_021E9298: .word ov108_021EA9D8
|
|
thumb_func_end ov108_021E9230
|
|
|
|
thumb_func_start ov108_021E929C
|
|
ov108_021E929C: ; 0x021E929C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r1, [r4, #8]
|
|
cmp r1, #0
|
|
beq _021E92AC
|
|
cmp r1, #1
|
|
beq _021E92D6
|
|
b _021E92F4
|
|
_021E92AC:
|
|
bl ov108_021E9850
|
|
add r0, r4, #0
|
|
bl ov108_021E9A60
|
|
add r0, r4, #0
|
|
bl ov108_021E9C14
|
|
add r0, r4, #0
|
|
bl ov108_021E9C3C
|
|
add r0, r4, #0
|
|
bl ov108_021E9D30
|
|
add r0, r4, #0
|
|
bl ov108_021E9E10
|
|
add r0, r4, #0
|
|
bl ov108_021E9EB8
|
|
b _021E92F4
|
|
_021E92D6:
|
|
bl ov108_021EA50C
|
|
ldr r0, _021E9300 ; =ov108_021E979C
|
|
add r1, r4, #0
|
|
bl Main_SetVBlankIntrCB
|
|
bl sub_020210BC
|
|
mov r0, #4
|
|
bl sub_02021148
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E92F4:
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, #1
|
|
str r0, [r4, #8]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_021E9300: .word ov108_021E979C
|
|
thumb_func_end ov108_021E929C
|
|
|
|
thumb_func_start ov108_021E9304
|
|
ov108_021E9304: ; 0x021E9304
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _021E9314
|
|
cmp r0, #2
|
|
beq _021E934C
|
|
b _021E9374
|
|
_021E9314:
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl Main_SetVBlankIntrCB
|
|
bl HBlankInterruptDisable
|
|
add r0, r4, #0
|
|
bl ov108_021E9F04
|
|
add r0, r4, #0
|
|
bl ov108_021E9E80
|
|
add r0, r4, #0
|
|
bl ov108_021E9DE0
|
|
add r0, r4, #0
|
|
bl ov108_021E9CD0
|
|
add r0, r4, #0
|
|
bl ov108_021E9C2C
|
|
add r0, r4, #0
|
|
bl ov108_021E9BD4
|
|
add r0, r4, #0
|
|
bl ov108_021E9A08
|
|
b _021E9374
|
|
_021E934C:
|
|
bl sub_02021238
|
|
mov r2, #1
|
|
lsl r2, r2, #0x1a
|
|
ldr r1, [r2]
|
|
ldr r0, _021E9380 ; =0xFFFFE0FF
|
|
and r1, r0
|
|
str r1, [r2]
|
|
ldr r2, _021E9384 ; =0x04001000
|
|
ldr r1, [r2]
|
|
and r0, r1
|
|
str r0, [r2]
|
|
bl GfGfx_DisableEngineAPlanes
|
|
bl GfGfx_DisableEngineBPlanes
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E9374:
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, #1
|
|
str r0, [r4, #8]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_021E9380: .word 0xFFFFE0FF
|
|
_021E9384: .word 0x04001000
|
|
thumb_func_end ov108_021E9304
|
|
|
|
thumb_func_start ov108_021E9388
|
|
ov108_021E9388: ; 0x021E9388
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
add r1, sp, #0
|
|
add r4, r0, #0
|
|
bl ov108_021E96FC
|
|
ldr r1, [sp]
|
|
cmp r1, #0
|
|
bne _021E93A4
|
|
add r0, r4, #0
|
|
bl ov108_021E95AC
|
|
_021E93A4:
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
thumb_func_end ov108_021E9388
|
|
|
|
thumb_func_start ov108_021E93A8
|
|
ov108_021E93A8: ; 0x021E93A8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
bl System_GetTouchNew
|
|
cmp r0, #0
|
|
beq _021E93BC
|
|
mov r4, #1
|
|
str r4, [r5, #0x10]
|
|
b _021E93D6
|
|
_021E93BC:
|
|
ldr r0, _021E93FC ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
ldr r0, _021E9400 ; =0x00000CF3
|
|
tst r0, r1
|
|
beq _021E93CA
|
|
add r0, r4, #0
|
|
str r0, [r5, #0x10]
|
|
_021E93CA:
|
|
ldr r0, _021E93FC ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #3
|
|
tst r0, r1
|
|
beq _021E93D6
|
|
mov r4, #1
|
|
_021E93D6:
|
|
cmp r4, #0
|
|
beq _021E93F6
|
|
ldr r0, _021E9404 ; =0x000005E5
|
|
bl PlaySE
|
|
ldr r0, _021E9408 ; =0x00000464
|
|
mov r1, #1
|
|
add r0, r5, r0
|
|
bl ClearFrameAndWindow2
|
|
ldr r0, _021E9408 ; =0x00000464
|
|
add r0, r5, r0
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_021E93F6:
|
|
mov r0, #2
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E93FC: .word gSystem
|
|
_021E9400: .word 0x00000CF3
|
|
_021E9404: .word 0x000005E5
|
|
_021E9408: .word 0x00000464
|
|
thumb_func_end ov108_021E93A8
|
|
|
|
thumb_func_start ov108_021E940C
|
|
ov108_021E940C: ; 0x021E940C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
cmp r1, #1
|
|
bne _021E9434
|
|
mov r1, #1
|
|
bl ov108_021E9F94
|
|
add r0, r5, #0
|
|
mov r1, #2
|
|
bl ov108_021E9F20
|
|
add r0, r5, #0
|
|
bl ov108_021EA260
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl ov108_021EA334
|
|
mov r4, #0
|
|
b _021E945A
|
|
_021E9434:
|
|
mov r1, #0
|
|
bl ov108_021E9F94
|
|
ldr r0, _021E947C ; =0x00000494
|
|
add r0, r5, r0
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl ov108_021E9F20
|
|
add r0, r5, #0
|
|
bl ov108_021EA040
|
|
add r0, r5, #0
|
|
mov r1, #2
|
|
bl ov108_021EA334
|
|
mov r4, #1
|
|
_021E945A:
|
|
ldr r0, _021E9480 ; =0x0000044C
|
|
add r1, r4, #0
|
|
ldr r0, [r5, r0]
|
|
bl Set2dSpriteVisibleFlag
|
|
mov r0, #0x45
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
add r1, r4, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, _021E9484 ; =0x00000444
|
|
add r1, r4, #0
|
|
ldr r0, [r5, r0]
|
|
bl Set2dSpriteVisibleFlag
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E947C: .word 0x00000494
|
|
_021E9480: .word 0x0000044C
|
|
_021E9484: .word 0x00000444
|
|
thumb_func_end ov108_021E940C
|
|
|
|
thumb_func_start ov108_021E9488
|
|
ov108_021E9488: ; 0x021E9488
|
|
push {r4, r5, lr}
|
|
sub sp, #0x14
|
|
add r4, r0, #0
|
|
add r0, sp, #0
|
|
mov r1, #0
|
|
mov r2, #0x14
|
|
bl MI_CpuFill8
|
|
ldr r0, _021E94E4 ; =0x00000438
|
|
mov r3, #4
|
|
ldr r1, [r4, r0]
|
|
mov r2, #0x1a
|
|
str r1, [sp]
|
|
add r1, r0, #0
|
|
sub r1, #0x92
|
|
str r1, [sp, #8]
|
|
mov r1, #0xe
|
|
str r1, [sp, #0xc]
|
|
str r3, [sp, #4]
|
|
add r1, sp, #0
|
|
strb r2, [r1, #0x10]
|
|
strb r3, [r1, #0x11]
|
|
ldrb r2, [r1, #0x12]
|
|
mov r3, #0xf
|
|
add r0, #0xdc
|
|
bic r2, r3
|
|
ldr r3, [r4, #0x10]
|
|
lsl r3, r3, #0x18
|
|
lsr r5, r3, #0x18
|
|
mov r3, #0xf
|
|
and r3, r5
|
|
orr r2, r3
|
|
strb r2, [r1, #0x12]
|
|
ldrb r3, [r1, #0x12]
|
|
mov r2, #0xf0
|
|
bic r3, r2
|
|
strb r3, [r1, #0x12]
|
|
mov r2, #0
|
|
strb r2, [r1, #0x13]
|
|
ldr r0, [r4, r0]
|
|
add r1, sp, #0
|
|
bl sub_02016704
|
|
add sp, #0x14
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_021E94E4: .word 0x00000438
|
|
thumb_func_end ov108_021E9488
|
|
|
|
thumb_func_start ov108_021E94E8
|
|
ov108_021E94E8: ; 0x021E94E8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _021E9524 ; =0x00000514
|
|
ldr r0, [r5, r0]
|
|
bl sub_020168F4
|
|
cmp r0, #1
|
|
beq _021E94FE
|
|
cmp r0, #2
|
|
beq _021E9502
|
|
b _021E9506
|
|
_021E94FE:
|
|
mov r4, #1
|
|
b _021E950C
|
|
_021E9502:
|
|
mov r4, #0
|
|
b _021E950C
|
|
_021E9506:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, pc}
|
|
_021E950C:
|
|
ldr r0, _021E9524 ; =0x00000514
|
|
ldr r0, [r5, r0]
|
|
bl sub_020169C0
|
|
str r0, [r5, #0x10]
|
|
ldr r0, _021E9524 ; =0x00000514
|
|
ldr r0, [r5, r0]
|
|
bl sub_020169CC
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E9524: .word 0x00000514
|
|
thumb_func_end ov108_021E94E8
|
|
|
|
thumb_func_start ov108_021E9528
|
|
ov108_021E9528: ; 0x021E9528
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
cmp r1, #6
|
|
blo _021E9544
|
|
ldr r0, _021E95A0 ; =0x000005DC
|
|
bl PlaySE
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov108_021E9F20
|
|
mov r0, #3
|
|
str r0, [r4, #0xc]
|
|
pop {r3, r4, r5, pc}
|
|
_021E9544:
|
|
ldr r2, _021E95A4 ; =0x00000431
|
|
sub r3, r2, #1
|
|
ldrb r5, [r4, r3]
|
|
ldrb r1, [r4, r2]
|
|
mov r3, #6
|
|
mul r3, r5
|
|
add r3, r1, r3
|
|
add r1, r2, #1
|
|
strb r3, [r4, r1]
|
|
sub r2, r2, #4
|
|
ldrb r1, [r4, r1]
|
|
ldrb r2, [r4, r2]
|
|
cmp r1, r2
|
|
blo _021E9564
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_021E9564:
|
|
bl ov108_021EA52C
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
beq _021E9580
|
|
ldr r0, _021E95A8 ; =0x000005F3
|
|
bl PlaySE
|
|
add r0, r4, #0
|
|
sub r1, r5, #1
|
|
bl ov108_021EA418
|
|
mov r0, #2
|
|
pop {r3, r4, r5, pc}
|
|
_021E9580:
|
|
ldr r0, _021E95A0 ; =0x000005DC
|
|
bl PlaySE
|
|
mov r1, #0xcd
|
|
lsl r1, r1, #2
|
|
add r0, r1, #0
|
|
add r0, #0xfe
|
|
ldrb r2, [r4, r0]
|
|
ldr r3, [r4, r1]
|
|
add r1, #0xff
|
|
lsl r0, r2, #2
|
|
add r0, r2, r0
|
|
ldrb r0, [r3, r0]
|
|
strb r0, [r4, r1]
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E95A0: .word 0x000005DC
|
|
_021E95A4: .word 0x00000431
|
|
_021E95A8: .word 0x000005F3
|
|
thumb_func_end ov108_021E9528
|
|
|
|
thumb_func_start ov108_021E95AC
|
|
ov108_021E95AC: ; 0x021E95AC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021E96EC ; =gSystem
|
|
mov r1, #0
|
|
ldr r2, [r0, #0x48]
|
|
ldr r0, _021E96F0 ; =0x00000CF3
|
|
tst r0, r2
|
|
beq _021E95BE
|
|
str r1, [r4, #0x10]
|
|
_021E95BE:
|
|
ldr r0, _021E96EC ; =gSystem
|
|
ldr r6, [r0, #0x48]
|
|
mov r0, #2
|
|
tst r0, r6
|
|
beq _021E95D2
|
|
add r0, r4, #0
|
|
mov r1, #6
|
|
bl ov108_021E9528
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E95D2:
|
|
mov r0, #1
|
|
tst r0, r6
|
|
beq _021E95E4
|
|
ldr r1, _021E96F4 ; =0x00000431
|
|
add r0, r4, #0
|
|
ldrb r1, [r4, r1]
|
|
bl ov108_021E9528
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E95E4:
|
|
mov r0, #0xf0
|
|
tst r0, r6
|
|
bne _021E95EE
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E95EE:
|
|
ldr r0, _021E96F4 ; =0x00000431
|
|
mov r2, #0x1f
|
|
ldrb r5, [r4, r0]
|
|
lsr r3, r5, #0x1f
|
|
lsl r7, r5, #0x1f
|
|
sub r7, r7, r3
|
|
ror r7, r2
|
|
add r2, r3, r7
|
|
lsl r3, r5, #0x17
|
|
lsl r2, r2, #0x18
|
|
mov r5, #0x10
|
|
lsr r2, r2, #0x18
|
|
lsr r3, r3, #0x18
|
|
tst r5, r6
|
|
beq _021E9644
|
|
cmp r3, #3
|
|
bne _021E9614
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E9614:
|
|
cmp r2, #1
|
|
bne _021E963C
|
|
sub r5, r0, #3
|
|
sub r1, r0, #1
|
|
ldrb r5, [r4, r5]
|
|
ldrb r1, [r4, r1]
|
|
sub r5, r5, #1
|
|
cmp r1, r5
|
|
bge _021E9638
|
|
cmp r3, #3
|
|
bhs _021E9638
|
|
sub r1, r0, #1
|
|
ldrb r1, [r4, r1]
|
|
sub r0, r0, #1
|
|
add r1, r1, #1
|
|
strb r1, [r4, r0]
|
|
mov r1, #2
|
|
b _021E96AE
|
|
_021E9638:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E963C:
|
|
add r0, r2, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r2, r0, #0x18
|
|
b _021E96AE
|
|
_021E9644:
|
|
mov r5, #0x20
|
|
tst r5, r6
|
|
beq _021E967C
|
|
cmp r3, #3
|
|
bne _021E9652
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E9652:
|
|
cmp r2, #0
|
|
bne _021E9674
|
|
sub r1, r0, #1
|
|
ldrb r1, [r4, r1]
|
|
cmp r1, #0
|
|
beq _021E9670
|
|
cmp r3, #3
|
|
bhs _021E9670
|
|
sub r1, r0, #1
|
|
ldrb r1, [r4, r1]
|
|
sub r0, r0, #1
|
|
sub r1, r1, #1
|
|
strb r1, [r4, r0]
|
|
mov r1, #1
|
|
b _021E96AE
|
|
_021E9670:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E9674:
|
|
sub r0, r2, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r2, r0, #0x18
|
|
b _021E96AE
|
|
_021E967C:
|
|
mov r0, #0x40
|
|
tst r0, r6
|
|
beq _021E9696
|
|
add r0, r3, #3
|
|
lsr r5, r0, #0x1f
|
|
lsl r3, r0, #0x1e
|
|
sub r3, r3, r5
|
|
mov r0, #0x1e
|
|
ror r3, r0
|
|
add r0, r5, r3
|
|
lsl r0, r0, #0x18
|
|
lsr r3, r0, #0x18
|
|
b _021E96AE
|
|
_021E9696:
|
|
mov r0, #0x80
|
|
tst r0, r6
|
|
beq _021E96AE
|
|
add r0, r3, #1
|
|
lsr r5, r0, #0x1f
|
|
lsl r3, r0, #0x1e
|
|
sub r3, r3, r5
|
|
mov r0, #0x1e
|
|
ror r3, r0
|
|
add r0, r5, r3
|
|
lsl r0, r0, #0x18
|
|
lsr r3, r0, #0x18
|
|
_021E96AE:
|
|
lsl r0, r3, #1
|
|
add r2, r2, r0
|
|
ldr r0, _021E96F4 ; =0x00000431
|
|
cmp r1, #0
|
|
strb r2, [r4, r0]
|
|
beq _021E96D0
|
|
sub r1, r1, #1
|
|
add r0, r4, #0
|
|
lsl r1, r1, #0x18
|
|
add r4, #0x14
|
|
lsr r1, r1, #0x18
|
|
add r2, r4, #0
|
|
mov r3, #0
|
|
bl ov108_021EA584
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E96D0:
|
|
ldr r0, _021E96F8 ; =0x000005E5
|
|
bl PlaySE
|
|
ldr r1, _021E96F4 ; =0x00000431
|
|
add r0, r4, #0
|
|
ldrb r1, [r4, r1]
|
|
bl ov108_021EA2EC
|
|
add r0, r4, #0
|
|
bl ov108_021EA47C
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E96EC: .word gSystem
|
|
_021E96F0: .word 0x00000CF3
|
|
_021E96F4: .word 0x00000431
|
|
_021E96F8: .word 0x000005E5
|
|
thumb_func_end ov108_021E95AC
|
|
|
|
thumb_func_start ov108_021E96FC
|
|
ov108_021E96FC: ; 0x021E96FC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _021E9794 ; =ov108_021EABF0
|
|
add r4, r1, #0
|
|
bl TouchscreenHitbox_FindRectAtTouchNew
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _021E9716
|
|
mov r0, #0
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_021E9716:
|
|
cmp r0, #7
|
|
bne _021E973E
|
|
mov r0, #0x43
|
|
lsl r0, r0, #4
|
|
ldrb r1, [r5, r0]
|
|
cmp r1, #0
|
|
beq _021E973A
|
|
sub r1, r1, #1
|
|
strb r1, [r5, r0]
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
add r5, #0x14
|
|
add r2, r5, #0
|
|
add r3, r1, #0
|
|
bl ov108_021EA584
|
|
mov r0, #1
|
|
str r0, [r4]
|
|
_021E973A:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_021E973E:
|
|
cmp r0, #8
|
|
bne _021E976C
|
|
mov r0, #0x43
|
|
lsl r0, r0, #4
|
|
sub r1, r0, #2
|
|
ldrb r1, [r5, r1]
|
|
ldrb r2, [r5, r0]
|
|
sub r1, r1, #1
|
|
cmp r2, r1
|
|
bge _021E9768
|
|
add r1, r2, #1
|
|
strb r1, [r5, r0]
|
|
add r0, r5, #0
|
|
add r5, #0x14
|
|
mov r1, #1
|
|
add r2, r5, #0
|
|
mov r3, #0
|
|
bl ov108_021EA584
|
|
mov r0, #1
|
|
str r0, [r4]
|
|
_021E9768:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_021E976C:
|
|
ldr r1, _021E9798 ; =0x00000431
|
|
ldrb r2, [r5, r1]
|
|
cmp r0, r2
|
|
beq _021E9784
|
|
strb r0, [r5, r1]
|
|
ldrb r1, [r5, r1]
|
|
add r0, r5, #0
|
|
bl ov108_021EA2EC
|
|
add r0, r5, #0
|
|
bl ov108_021EA47C
|
|
_021E9784:
|
|
mov r0, #1
|
|
str r0, [r4]
|
|
ldr r1, _021E9798 ; =0x00000431
|
|
add r0, r5, #0
|
|
ldrb r1, [r5, r1]
|
|
bl ov108_021E9528
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E9794: .word ov108_021EABF0
|
|
_021E9798: .word 0x00000431
|
|
thumb_func_end ov108_021E96FC
|
|
|
|
thumb_func_start ov108_021E979C
|
|
ov108_021E979C: ; 0x021E979C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021E981C ; =0x00000434
|
|
ldrb r1, [r4, r0]
|
|
cmp r1, #0
|
|
beq _021E97F4
|
|
sub r2, r0, #4
|
|
sub r1, r0, #3
|
|
ldrb r3, [r4, r2]
|
|
mov r2, #6
|
|
ldrb r1, [r4, r1]
|
|
mul r2, r3
|
|
add r2, r1, r2
|
|
lsl r2, r2, #0x18
|
|
lsr r2, r2, #0x18
|
|
cmp r1, #6
|
|
bhs _021E97C6
|
|
sub r0, r0, #7
|
|
ldrb r0, [r4, r0]
|
|
cmp r2, r0
|
|
blo _021E97D6
|
|
_021E97C6:
|
|
mov r0, #0xce
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
mov r1, #0x18
|
|
mov r2, #0
|
|
bl ov108_021E8EA4
|
|
b _021E97EE
|
|
_021E97D6:
|
|
mov r0, #0xcd
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
lsl r3, r2, #2
|
|
add r3, r2, r3
|
|
add r2, r1, r3
|
|
add r0, r0, #4
|
|
ldrb r1, [r1, r3]
|
|
add r0, r4, r0
|
|
add r2, r2, #2
|
|
bl ov108_021E8EA4
|
|
_021E97EE:
|
|
ldr r0, _021E981C ; =0x00000434
|
|
mov r1, #0
|
|
strb r1, [r4, r0]
|
|
_021E97F4:
|
|
ldr r0, _021E9820 ; =0x0000043C
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _021E9800
|
|
bl thunk_OamManager_ApplyAndResetBuffers
|
|
_021E9800:
|
|
bl GF_RunVramTransferTasks
|
|
ldr r0, _021E9824 ; =0x00000438
|
|
ldr r0, [r4, r0]
|
|
bl DoScheduledBgGpuUpdates
|
|
ldr r3, _021E9828 ; =0x027E0000
|
|
ldr r1, _021E982C ; =0x00003FF8
|
|
mov r0, #1
|
|
ldr r2, [r3, r1]
|
|
orr r0, r2
|
|
str r0, [r3, r1]
|
|
pop {r4, pc}
|
|
nop
|
|
_021E981C: .word 0x00000434
|
|
_021E9820: .word 0x0000043C
|
|
_021E9824: .word 0x00000438
|
|
_021E9828: .word 0x027E0000
|
|
_021E982C: .word 0x00003FF8
|
|
thumb_func_end ov108_021E979C
|
|
|
|
thumb_func_start ov108_021E9830
|
|
ov108_021E9830: ; 0x021E9830
|
|
push {r4, lr}
|
|
sub sp, #0x28
|
|
ldr r4, _021E984C ; =ov108_021EABC8
|
|
add r3, sp, #0
|
|
mov r2, #5
|
|
_021E983A:
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _021E983A
|
|
add r0, sp, #0
|
|
bl GfGfx_SetBanks
|
|
add sp, #0x28
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E984C: .word ov108_021EABC8
|
|
thumb_func_end ov108_021E9830
|
|
|
|
thumb_func_start ov108_021E9850
|
|
ov108_021E9850: ; 0x021E9850
|
|
push {r4, r5, lr}
|
|
sub sp, #0xd4
|
|
add r4, r0, #0
|
|
bl ov108_021E9830
|
|
ldr r2, _021E99E0 ; =0x04000304
|
|
ldrh r1, [r2]
|
|
lsr r0, r2, #0xb
|
|
orr r0, r1
|
|
strh r0, [r2]
|
|
ldr r0, [r4]
|
|
bl BgConfig_Alloc
|
|
ldr r1, _021E99E4 ; =0x00000438
|
|
add r3, sp, #0xc4
|
|
ldr r5, _021E99E8 ; =ov108_021EAAC0
|
|
str r0, [r4, r1]
|
|
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, _021E99EC ; =ov108_021EAB54
|
|
add r3, sp, #0xa8
|
|
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, _021E99E4 ; =0x00000438
|
|
mov r3, #0
|
|
ldr r0, [r4, r0]
|
|
bl InitBgFromTemplate
|
|
ldr r0, _021E99E4 ; =0x00000438
|
|
mov r1, #1
|
|
ldr r0, [r4, r0]
|
|
bl BgClearTilemapBufferAndCommit
|
|
ldr r5, _021E99F0 ; =ov108_021EAB1C
|
|
add r3, sp, #0x8c
|
|
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, _021E99E4 ; =0x00000438
|
|
mov r3, #0
|
|
ldr r0, [r4, r0]
|
|
bl InitBgFromTemplate
|
|
ldr r0, _021E99E4 ; =0x00000438
|
|
mov r1, #2
|
|
ldr r0, [r4, r0]
|
|
bl BgClearTilemapBufferAndCommit
|
|
ldr r5, _021E99F4 ; =ov108_021EAB38
|
|
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, #3
|
|
str r0, [r3]
|
|
ldr r0, _021E99E4 ; =0x00000438
|
|
mov r3, #0
|
|
ldr r0, [r4, r0]
|
|
bl InitBgFromTemplate
|
|
ldr r0, _021E99E4 ; =0x00000438
|
|
mov r1, #3
|
|
ldr r0, [r4, r0]
|
|
bl BgClearTilemapBufferAndCommit
|
|
ldr r5, _021E99F8 ; =ov108_021EAB8C
|
|
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]
|
|
str r0, [r3]
|
|
ldr r0, _021E99E4 ; =0x00000438
|
|
mov r1, #4
|
|
ldr r0, [r4, r0]
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
ldr r0, _021E99E4 ; =0x00000438
|
|
mov r1, #4
|
|
ldr r0, [r4, r0]
|
|
bl BgClearTilemapBufferAndCommit
|
|
ldr r5, _021E99FC ; =ov108_021EAAE4
|
|
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, #5
|
|
str r0, [r3]
|
|
ldr r0, _021E99E4 ; =0x00000438
|
|
mov r3, #0
|
|
ldr r0, [r4, r0]
|
|
bl InitBgFromTemplate
|
|
ldr r0, _021E99E4 ; =0x00000438
|
|
mov r1, #5
|
|
ldr r0, [r4, r0]
|
|
bl BgClearTilemapBufferAndCommit
|
|
ldr r5, _021E9A00 ; =ov108_021EAB00
|
|
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, _021E99E4 ; =0x00000438
|
|
mov r3, #0
|
|
ldr r0, [r4, r0]
|
|
bl InitBgFromTemplate
|
|
ldr r0, _021E99E4 ; =0x00000438
|
|
mov r1, #6
|
|
ldr r0, [r4, r0]
|
|
bl BgClearTilemapBufferAndCommit
|
|
ldr r5, _021E9A04 ; =ov108_021EAB70
|
|
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, _021E99E4 ; =0x00000438
|
|
mov r3, #0
|
|
ldr r0, [r4, r0]
|
|
bl InitBgFromTemplate
|
|
ldr r0, _021E99E4 ; =0x00000438
|
|
mov r1, #7
|
|
ldr r0, [r4, r0]
|
|
bl BgClearTilemapBufferAndCommit
|
|
ldr r3, [r4]
|
|
mov r0, #3
|
|
mov r1, #0x20
|
|
mov r2, #0
|
|
bl BG_ClearCharDataRange
|
|
ldr r3, [r4]
|
|
mov r0, #4
|
|
mov r1, #0x20
|
|
mov r2, #0
|
|
bl BG_ClearCharDataRange
|
|
ldr r3, [r4]
|
|
mov r0, #7
|
|
mov r1, #0x20
|
|
mov r2, #0
|
|
bl BG_ClearCharDataRange
|
|
add sp, #0xd4
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_021E99E0: .word 0x04000304
|
|
_021E99E4: .word 0x00000438
|
|
_021E99E8: .word ov108_021EAAC0
|
|
_021E99EC: .word ov108_021EAB54
|
|
_021E99F0: .word ov108_021EAB1C
|
|
_021E99F4: .word ov108_021EAB38
|
|
_021E99F8: .word ov108_021EAB8C
|
|
_021E99FC: .word ov108_021EAAE4
|
|
_021E9A00: .word ov108_021EAB00
|
|
_021E9A04: .word ov108_021EAB70
|
|
thumb_func_end ov108_021E9850
|
|
|
|
thumb_func_start ov108_021E9A08
|
|
ov108_021E9A08: ; 0x021E9A08
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021E9A5C ; =0x00000438
|
|
mov r1, #7
|
|
ldr r0, [r4, r0]
|
|
bl FreeBgTilemapBuffer
|
|
ldr r0, _021E9A5C ; =0x00000438
|
|
mov r1, #6
|
|
ldr r0, [r4, r0]
|
|
bl FreeBgTilemapBuffer
|
|
ldr r0, _021E9A5C ; =0x00000438
|
|
mov r1, #5
|
|
ldr r0, [r4, r0]
|
|
bl FreeBgTilemapBuffer
|
|
ldr r0, _021E9A5C ; =0x00000438
|
|
mov r1, #4
|
|
ldr r0, [r4, r0]
|
|
bl FreeBgTilemapBuffer
|
|
ldr r0, _021E9A5C ; =0x00000438
|
|
mov r1, #3
|
|
ldr r0, [r4, r0]
|
|
bl FreeBgTilemapBuffer
|
|
ldr r0, _021E9A5C ; =0x00000438
|
|
mov r1, #2
|
|
ldr r0, [r4, r0]
|
|
bl FreeBgTilemapBuffer
|
|
ldr r0, _021E9A5C ; =0x00000438
|
|
mov r1, #1
|
|
ldr r0, [r4, r0]
|
|
bl FreeBgTilemapBuffer
|
|
ldr r0, _021E9A5C ; =0x00000438
|
|
ldr r0, [r4, r0]
|
|
bl FreeToHeap
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E9A5C: .word 0x00000438
|
|
thumb_func_end ov108_021E9A08
|
|
|
|
thumb_func_start ov108_021E9A60
|
|
ov108_021E9A60: ; 0x021E9A60
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
ldr r1, [r5]
|
|
mov r0, #0xe1
|
|
bl NARC_New
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
ldr r1, [r5]
|
|
ldr r2, _021E9BC0 ; =0x00000438
|
|
str r1, [sp, #0xc]
|
|
ldr r2, [r5, r2]
|
|
mov r1, #1
|
|
mov r3, #3
|
|
add r4, r0, #0
|
|
bl GfGfxLoader_LoadCharDataFromOpenNarc
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
ldr r0, [r5]
|
|
ldr r2, _021E9BC0 ; =0x00000438
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r5, r2]
|
|
add r0, r4, #0
|
|
mov r1, #5
|
|
mov r3, #7
|
|
bl GfGfxLoader_LoadCharDataFromOpenNarc
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
ldr r0, [r5]
|
|
add r2, r1, #0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r3, r1, #0
|
|
bl GfGfxLoader_GXLoadPalFromOpenNarc
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
ldr r0, [r5]
|
|
mov r1, #4
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r2, r1, #0
|
|
bl GfGfxLoader_GXLoadPalFromOpenNarc
|
|
mov r1, #0x1a
|
|
ldr r2, [r5]
|
|
mov r0, #0
|
|
lsl r1, r1, #4
|
|
bl LoadFontPal1
|
|
mov r1, #0x1a
|
|
ldr r2, [r5]
|
|
mov r0, #4
|
|
lsl r1, r1, #4
|
|
bl LoadFontPal1
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
ldr r0, [r5]
|
|
ldr r2, _021E9BC0 ; =0x00000438
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r5, r2]
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
mov r3, #3
|
|
bl GfGfxLoader_LoadScrnDataFromOpenNarc
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
ldr r0, [r5]
|
|
ldr r2, _021E9BC0 ; =0x00000438
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r5, r2]
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
mov r3, #2
|
|
bl GfGfxLoader_LoadScrnDataFromOpenNarc
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
ldr r0, [r5]
|
|
ldr r2, _021E9BC0 ; =0x00000438
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r5, r2]
|
|
add r0, r4, #0
|
|
mov r1, #6
|
|
mov r3, #7
|
|
bl GfGfxLoader_LoadScrnDataFromOpenNarc
|
|
ldr r0, [r5]
|
|
ldr r3, _021E9BC4 ; =0x0000051C
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r1, #8
|
|
mov r2, #0
|
|
add r3, r5, r3
|
|
bl GfGfxLoader_GetScrnDataFromOpenNarc
|
|
ldr r3, _021E9BC8 ; =0x00000518
|
|
mov r1, #6
|
|
str r0, [r5, r3]
|
|
ldr r0, [r5]
|
|
add r3, #0xc
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r2, #0
|
|
add r3, r5, r3
|
|
bl GfGfxLoader_GetScrnDataFromOpenNarc
|
|
mov r3, #0x52
|
|
lsl r3, r3, #4
|
|
str r0, [r5, r3]
|
|
ldr r0, [r5]
|
|
add r3, #0xc
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r1, #7
|
|
mov r2, #0
|
|
add r3, r5, r3
|
|
bl GfGfxLoader_GetScrnDataFromOpenNarc
|
|
ldr r1, _021E9BCC ; =0x00000528
|
|
str r0, [r5, r1]
|
|
add r0, r4, #0
|
|
bl NARC_Delete
|
|
ldrb r0, [r5, #0x19]
|
|
ldr r2, _021E9BC0 ; =0x00000438
|
|
mov r1, #4
|
|
str r0, [sp]
|
|
ldr r0, [r5]
|
|
mov r3, #0xc
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, r2]
|
|
sub r2, #0x56
|
|
bl LoadUserFrameGfx2
|
|
mov r1, #0x1a
|
|
ldr r2, [r5]
|
|
mov r0, #0
|
|
lsl r1, r1, #4
|
|
bl LoadFontPal1
|
|
ldr r0, _021E9BC0 ; =0x00000438
|
|
mov r1, #7
|
|
ldr r0, [r5, r0]
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
ldr r0, _021E9BC0 ; =0x00000438
|
|
mov r1, #3
|
|
ldr r0, [r5, r0]
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
ldr r0, _021E9BD0 ; =0x04000050
|
|
mov r1, #1
|
|
mov r2, #0x1e
|
|
mov r3, #0x1c
|
|
bl G2x_SetBlendAlpha_
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E9BC0: .word 0x00000438
|
|
_021E9BC4: .word 0x0000051C
|
|
_021E9BC8: .word 0x00000518
|
|
_021E9BCC: .word 0x00000528
|
|
_021E9BD0: .word 0x04000050
|
|
thumb_func_end ov108_021E9A60
|
|
|
|
thumb_func_start ov108_021E9BD4
|
|
ov108_021E9BD4: ; 0x021E9BD4
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
mov r1, #0
|
|
add r4, r0, #0
|
|
ldr r0, _021E9C08 ; =0x04000050
|
|
add r2, r1, #0
|
|
mov r3, #0x1f
|
|
str r1, [sp]
|
|
bl G2x_SetBlendAlpha_
|
|
ldr r0, _021E9C0C ; =0x00000528
|
|
ldr r0, [r4, r0]
|
|
bl FreeToHeap
|
|
mov r0, #0x52
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl FreeToHeap
|
|
ldr r0, _021E9C10 ; =0x00000518
|
|
ldr r0, [r4, r0]
|
|
bl FreeToHeap
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
nop
|
|
_021E9C08: .word 0x04000050
|
|
_021E9C0C: .word 0x00000528
|
|
_021E9C10: .word 0x00000518
|
|
thumb_func_end ov108_021E9BD4
|
|
|
|
thumb_func_start ov108_021E9C14
|
|
ov108_021E9C14: ; 0x021E9C14
|
|
mov r1, #0xce
|
|
add r2, r0, #0
|
|
lsl r1, r1, #2
|
|
add r0, r2, r1
|
|
add r1, #0xf4
|
|
ldrb r1, [r2, r1]
|
|
ldr r3, _021E9C28 ; =ov108_021E8CD4
|
|
ldr r2, [r2]
|
|
bx r3
|
|
nop
|
|
_021E9C28: .word ov108_021E8CD4
|
|
thumb_func_end ov108_021E9C14
|
|
|
|
thumb_func_start ov108_021E9C2C
|
|
ov108_021E9C2C: ; 0x021E9C2C
|
|
mov r1, #0xce
|
|
lsl r1, r1, #2
|
|
ldr r3, _021E9C38 ; =ov108_021E8E60
|
|
add r0, r0, r1
|
|
bx r3
|
|
nop
|
|
_021E9C38: .word ov108_021E8E60
|
|
thumb_func_end ov108_021E9C2C
|
|
|
|
thumb_func_start ov108_021E9C3C
|
|
ov108_021E9C3C: ; 0x021E9C3C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r1, [r5]
|
|
mov r0, #4
|
|
bl FontID_Alloc
|
|
ldr r2, _021E9CCC ; =0x000001AE
|
|
ldr r3, [r5]
|
|
mov r0, #0
|
|
mov r1, #0x1b
|
|
bl NewMsgDataFromNarc
|
|
mov r1, #0xc3
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
ldr r2, [r5]
|
|
mov r0, #2
|
|
mov r1, #0x10
|
|
bl MessageFormat_New_Custom
|
|
mov r1, #0x31
|
|
lsl r1, r1, #4
|
|
str r0, [r5, r1]
|
|
mov r0, #1
|
|
ldr r1, [r5]
|
|
lsl r0, r0, #8
|
|
bl String_New
|
|
mov r1, #0xc5
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
mov r0, #1
|
|
ldr r1, [r5]
|
|
lsl r0, r0, #8
|
|
bl String_New
|
|
mov r1, #0xc6
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
sub r1, #0xc
|
|
ldr r0, [r5, r1]
|
|
mov r1, #0xc
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0xcb
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
sub r1, #0x20
|
|
ldr r0, [r5, r1]
|
|
mov r1, #8
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0x33
|
|
lsl r1, r1, #4
|
|
add r7, r1, #0
|
|
str r0, [r5, r1]
|
|
mov r6, #0
|
|
add r4, r5, #0
|
|
sub r7, #0x14
|
|
_021E9CB2:
|
|
mov r0, #0xc3
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r1, r6, #0
|
|
bl NewString_ReadMsgData
|
|
str r0, [r4, r7]
|
|
add r6, r6, #1
|
|
add r4, r4, #4
|
|
cmp r6, #4
|
|
blt _021E9CB2
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E9CCC: .word 0x000001AE
|
|
thumb_func_end ov108_021E9C3C
|
|
|
|
thumb_func_start ov108_021E9CD0
|
|
ov108_021E9CD0: ; 0x021E9CD0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
mov r7, #0xc7
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
lsl r7, r7, #2
|
|
_021E9CDC:
|
|
ldr r0, [r5, r7]
|
|
bl String_Delete
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _021E9CDC
|
|
mov r0, #0x33
|
|
lsl r0, r0, #4
|
|
ldr r0, [r6, r0]
|
|
bl String_Delete
|
|
mov r0, #0xcb
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
bl String_Delete
|
|
mov r0, #0xc6
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
bl String_Delete
|
|
mov r0, #0xc5
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
bl String_Delete
|
|
mov r0, #0x31
|
|
lsl r0, r0, #4
|
|
ldr r0, [r6, r0]
|
|
bl MessageFormat_Delete
|
|
mov r0, #0xc3
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
bl DestroyMsgData
|
|
mov r0, #4
|
|
bl FontID_Release
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov108_021E9CD0
|
|
|
|
thumb_func_start ov108_021E9D30
|
|
ov108_021E9D30: ; 0x021E9D30
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x1c
|
|
add r7, r0, #0
|
|
ldr r0, _021E9DCC ; =0x00000454
|
|
ldr r4, _021E9DD0 ; =ov108_021EAC18
|
|
mov r6, #0
|
|
add r5, r7, r0
|
|
_021E9D3E:
|
|
ldr r0, _021E9DD4 ; =0x00000438
|
|
add r1, r5, #0
|
|
ldr r0, [r7, r0]
|
|
add r2, r4, #0
|
|
bl AddWindow
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
add r6, r6, #1
|
|
add r4, #8
|
|
add r5, #0x10
|
|
cmp r6, #5
|
|
ble _021E9D3E
|
|
ldr r0, _021E9DCC ; =0x00000454
|
|
ldr r6, _021E9DD8 ; =0x000002E2
|
|
add r0, r7, r0
|
|
mov r4, #0
|
|
str r0, [sp, #0x14]
|
|
_021E9D66:
|
|
lsr r0, r4, #0x1f
|
|
add r0, r4, r0
|
|
asr r1, r0, #1
|
|
lsl r0, r1, #2
|
|
add r0, r1, r0
|
|
lsr r3, r4, #0x1f
|
|
str r3, [sp, #0x18]
|
|
add r0, r0, #6
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
mov r0, #0xe
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
mov r0, #4
|
|
str r0, [sp, #0xc]
|
|
add r1, r4, #6
|
|
lsl r2, r1, #4
|
|
ldr r1, [sp, #0x14]
|
|
ldr r5, [sp, #0x18]
|
|
lsl r3, r4, #0x1f
|
|
sub r3, r3, r5
|
|
mov r5, #0x1f
|
|
ror r3, r5
|
|
ldr r5, [sp, #0x18]
|
|
add r1, r1, r2
|
|
add r3, r5, r3
|
|
lsl r3, r3, #4
|
|
add r3, r3, #1
|
|
lsl r3, r3, #0x18
|
|
ldr r0, _021E9DD4 ; =0x00000438
|
|
str r6, [sp, #0x10]
|
|
ldr r0, [r7, r0]
|
|
mov r2, #5
|
|
lsr r3, r3, #0x18
|
|
bl AddWindowParameterized
|
|
sub r6, #0x1c
|
|
lsl r0, r6, #0x10
|
|
add r4, r4, #1
|
|
lsr r6, r0, #0x10
|
|
cmp r4, #6
|
|
blt _021E9D66
|
|
ldr r0, [r7]
|
|
bl sub_0201660C
|
|
ldr r1, _021E9DDC ; =0x00000514
|
|
str r0, [r7, r1]
|
|
add sp, #0x1c
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E9DCC: .word 0x00000454
|
|
_021E9DD0: .word ov108_021EAC18
|
|
_021E9DD4: .word 0x00000438
|
|
_021E9DD8: .word 0x000002E2
|
|
_021E9DDC: .word 0x00000514
|
|
thumb_func_end ov108_021E9D30
|
|
|
|
thumb_func_start ov108_021E9DE0
|
|
ov108_021E9DE0: ; 0x021E9DE0
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _021E9E08 ; =0x00000514
|
|
ldr r0, [r5, r0]
|
|
bl sub_02016624
|
|
ldr r0, _021E9E0C ; =0x00000454
|
|
mov r4, #0
|
|
add r5, r5, r0
|
|
_021E9DF2:
|
|
add r0, r5, #0
|
|
bl ClearWindowTilemapAndCopyToVram
|
|
add r0, r5, #0
|
|
bl RemoveWindow
|
|
add r4, r4, #1
|
|
add r5, #0x10
|
|
cmp r4, #0xc
|
|
blt _021E9DF2
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E9E08: .word 0x00000514
|
|
_021E9E0C: .word 0x00000454
|
|
thumb_func_end ov108_021E9DE0
|
|
|
|
thumb_func_start ov108_021E9E10
|
|
ov108_021E9E10: ; 0x021E9E10
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
ldr r1, [r4]
|
|
mov r0, #0x20
|
|
bl GF_CreateVramTransferManager
|
|
ldr r0, [r4]
|
|
bl SpriteRenderer_Create
|
|
ldr r1, _021E9E70 ; =0x0000043C
|
|
ldr r2, _021E9E74 ; =ov108_021EAAD0
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
ldr r1, _021E9E78 ; =ov108_021EABA8
|
|
mov r3, #1
|
|
bl sub_0200CF70
|
|
ldr r0, _021E9E70 ; =0x0000043C
|
|
ldr r0, [r4, r0]
|
|
bl SpriteRenderer_CreateGfxHandler
|
|
mov r1, #0x11
|
|
lsl r1, r1, #6
|
|
str r0, [r4, r1]
|
|
sub r0, r1, #4
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r4, r1]
|
|
mov r2, #4
|
|
bl sub_0200CFF4
|
|
mov r3, #0
|
|
ldr r1, _021E9E70 ; =0x0000043C
|
|
str r3, [sp]
|
|
ldr r0, [r4, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
ldr r2, _021E9E7C ; =ov108_021EAAB0
|
|
bl sub_0200D2A4
|
|
ldr r0, [r4]
|
|
bl sub_0200B2E0
|
|
ldr r0, [r4]
|
|
bl sub_0200B2E8
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
_021E9E70: .word 0x0000043C
|
|
_021E9E74: .word ov108_021EAAD0
|
|
_021E9E78: .word ov108_021EABA8
|
|
_021E9E7C: .word ov108_021EAAB0
|
|
thumb_func_end ov108_021E9E10
|
|
|
|
thumb_func_start ov108_021E9E80
|
|
ov108_021E9E80: ; 0x021E9E80
|
|
push {r4, lr}
|
|
ldr r1, _021E9EB4 ; =0x0000043C
|
|
add r4, r0, #0
|
|
ldr r0, [r4, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
bl SpriteRenderer_RemoveGfxHandler
|
|
ldr r0, _021E9EB4 ; =0x0000043C
|
|
ldr r0, [r4, r0]
|
|
bl SpriteRenderer_Delete
|
|
ldr r0, _021E9EB4 ; =0x0000043C
|
|
mov r1, #0
|
|
str r1, [r4, r0]
|
|
add r0, r0, #4
|
|
str r1, [r4, r0]
|
|
bl GF_DestroyVramTransferManager
|
|
ldr r0, [r4]
|
|
bl sub_0200B2E0
|
|
ldr r0, [r4]
|
|
bl sub_0200B2E8
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E9EB4: .word 0x0000043C
|
|
thumb_func_end ov108_021E9E80
|
|
|
|
thumb_func_start ov108_021E9EB8
|
|
ov108_021E9EB8: ; 0x021E9EB8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
ldr r4, _021E9EF8 ; =ov108_021EAC48
|
|
mov r7, #0
|
|
add r5, r6, #0
|
|
_021E9EC2:
|
|
ldr r0, _021E9EFC ; =0x0000043C
|
|
mov r1, #0x11
|
|
lsl r1, r1, #6
|
|
ldr r0, [r6, r0]
|
|
ldr r1, [r6, r1]
|
|
add r2, r4, #0
|
|
bl SpriteRenderer_CreateSprite
|
|
ldr r1, _021E9F00 ; =0x00000444
|
|
str r0, [r5, r1]
|
|
add r0, r1, #0
|
|
ldr r0, [r5, r0]
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
add r7, r7, #1
|
|
add r4, #0x28
|
|
add r5, r5, #4
|
|
cmp r7, #4
|
|
blt _021E9EC2
|
|
ldr r0, _021E9F00 ; =0x00000444
|
|
mov r1, #1
|
|
ldr r0, [r6, r0]
|
|
bl thunk_Sprite_SetPriority
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E9EF8: .word ov108_021EAC48
|
|
_021E9EFC: .word 0x0000043C
|
|
_021E9F00: .word 0x00000444
|
|
thumb_func_end ov108_021E9EB8
|
|
|
|
thumb_func_start ov108_021E9F04
|
|
ov108_021E9F04: ; 0x021E9F04
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _021E9F1C ; =0x00000444
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
_021E9F0C:
|
|
ldr r0, [r5, r6]
|
|
bl thunk_Sprite_Delete
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _021E9F0C
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021E9F1C: .word 0x00000444
|
|
thumb_func_end ov108_021E9F04
|
|
|
|
thumb_func_start ov108_021E9F20
|
|
ov108_021E9F20: ; 0x021E9F20
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
ldr r0, _021E9F88 ; =0x00000448
|
|
add r4, r1, #0
|
|
ldr r0, [r5, r0]
|
|
add r1, r4, #2
|
|
bl Set2dSpriteAnimSeqNo
|
|
ldr r0, _021E9F88 ; =0x00000448
|
|
ldr r0, [r5, r0]
|
|
bl Sprite_ResetAnimCtrlState
|
|
ldr r0, _021E9F8C ; =0x00000474
|
|
mov r1, #0
|
|
add r0, r5, r0
|
|
bl FillWindowPixelBuffer
|
|
mov r1, #0x33
|
|
lsl r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
mov r0, #4
|
|
mov r2, #0
|
|
bl FontID_String_GetWidth
|
|
mov r1, #4
|
|
add r3, r0, #0
|
|
lsl r2, r4, #2
|
|
mov r4, #0x30
|
|
sub r3, r4, r3
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E9F90 ; =ov108_021EAAA4
|
|
lsr r3, r3, #1
|
|
ldr r0, [r0, r2]
|
|
mov r2, #0x33
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
ldr r0, _021E9F8C ; =0x00000474
|
|
lsl r2, r2, #4
|
|
ldr r2, [r5, r2]
|
|
add r0, r5, r0
|
|
bl AddTextPrinterParameterized2
|
|
ldr r0, _021E9F8C ; =0x00000474
|
|
add r0, r5, r0
|
|
bl ScheduleWindowCopyToVram
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E9F88: .word 0x00000448
|
|
_021E9F8C: .word 0x00000474
|
|
_021E9F90: .word ov108_021EAAA4
|
|
thumb_func_end ov108_021E9F20
|
|
|
|
thumb_func_start ov108_021E9F94
|
|
ov108_021E9F94: ; 0x021E9F94
|
|
push {r4, r5, lr}
|
|
sub sp, #0x1c
|
|
add r5, r0, #0
|
|
cmp r1, #0
|
|
bne _021E9FA2
|
|
ldr r0, _021EA034 ; =0x00000524
|
|
b _021E9FA4
|
|
_021E9FA2:
|
|
ldr r0, _021EA038 ; =0x0000052C
|
|
_021E9FA4:
|
|
ldr r4, [r5, r0]
|
|
mov r1, #5
|
|
str r1, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r0, #0xe
|
|
str r0, [sp, #8]
|
|
mov r0, #0x11
|
|
str r0, [sp, #0xc]
|
|
ldr r0, _021EA03C ; =0x00000438
|
|
mov r2, #0
|
|
ldr r0, [r5, r0]
|
|
add r3, r2, #0
|
|
bl FillBgTilemapRect
|
|
mov r0, #5
|
|
str r0, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r0, #0xe
|
|
str r0, [sp, #8]
|
|
mov r0, #0x11
|
|
str r0, [sp, #0xc]
|
|
ldr r0, _021EA03C ; =0x00000438
|
|
mov r2, #0
|
|
ldr r0, [r5, r0]
|
|
mov r1, #6
|
|
add r3, r2, #0
|
|
bl FillBgTilemapRect
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
mov r0, #0x18
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r0, #0xc
|
|
mov r2, #0
|
|
str r0, [sp, #8]
|
|
str r2, [sp, #0xc]
|
|
str r2, [sp, #0x10]
|
|
ldrh r0, [r4]
|
|
mov r1, #7
|
|
add r3, r2, #0
|
|
lsl r0, r0, #0x15
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x14]
|
|
ldrh r0, [r4, #2]
|
|
lsl r0, r0, #0x15
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x18]
|
|
ldr r0, _021EA03C ; =0x00000438
|
|
ldr r0, [r5, r0]
|
|
bl CopyToBgTilemapRect
|
|
ldr r0, _021EA03C ; =0x00000438
|
|
mov r1, #5
|
|
ldr r0, [r5, r0]
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
ldr r0, _021EA03C ; =0x00000438
|
|
mov r1, #6
|
|
ldr r0, [r5, r0]
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
ldr r0, _021EA03C ; =0x00000438
|
|
mov r1, #7
|
|
ldr r0, [r5, r0]
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
add sp, #0x1c
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_021EA034: .word 0x00000524
|
|
_021EA038: .word 0x0000052C
|
|
_021EA03C: .word 0x00000438
|
|
thumb_func_end ov108_021E9F94
|
|
|
|
thumb_func_start ov108_021EA040
|
|
ov108_021EA040: ; 0x021EA040
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x24
|
|
add r5, r0, #0
|
|
mov r0, #5
|
|
str r0, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r0, #0xe
|
|
str r0, [sp, #8]
|
|
mov r0, #0x11
|
|
str r0, [sp, #0xc]
|
|
ldr r0, _021EA244 ; =0x00000438
|
|
mov r2, #0
|
|
ldr r0, [r5, r0]
|
|
mov r1, #6
|
|
add r3, r2, #0
|
|
bl FillBgTilemapRect
|
|
ldr r0, _021EA248 ; =0x00000454
|
|
mov r4, #0
|
|
add r7, r5, r0
|
|
_021EA06A:
|
|
mov r0, #0x43
|
|
lsl r0, r0, #4
|
|
ldrb r1, [r5, r0]
|
|
mov r0, #6
|
|
mul r0, r1
|
|
add r0, r4, r0
|
|
str r0, [sp, #0x1c]
|
|
add r0, r4, #6
|
|
lsl r0, r0, #4
|
|
str r0, [sp, #0x20]
|
|
add r0, r7, r0
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, _021EA24C ; =0x0000042D
|
|
ldrb r1, [r5, r0]
|
|
ldr r0, [sp, #0x1c]
|
|
cmp r0, r1
|
|
blt _021EA09A
|
|
ldr r0, [sp, #0x20]
|
|
add r0, r7, r0
|
|
bl ScheduleWindowCopyToVram
|
|
b _021EA168
|
|
_021EA09A:
|
|
ldr r1, [sp, #0x1c]
|
|
add r0, r5, #0
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
bl ov108_021EA52C
|
|
cmp r0, #0
|
|
ble _021EA0AE
|
|
mov r0, #1
|
|
b _021EA0B0
|
|
_021EA0AE:
|
|
mov r0, #0
|
|
_021EA0B0:
|
|
lsl r0, r0, #0x18
|
|
lsr r1, r0, #0x18
|
|
ldr r0, _021EA250 ; =0x0000051C
|
|
lsl r1, r1, #0x1c
|
|
ldr r0, [r5, r0]
|
|
mov r2, #0x10
|
|
str r2, [sp]
|
|
mov r2, #4
|
|
str r2, [sp, #4]
|
|
add r2, r0, #0
|
|
add r2, #0xc
|
|
str r2, [sp, #8]
|
|
lsr r1, r1, #0x18
|
|
str r1, [sp, #0xc]
|
|
mov r1, #0
|
|
str r1, [sp, #0x10]
|
|
ldrh r1, [r0]
|
|
lsr r3, r4, #0x1f
|
|
lsl r6, r4, #0x1f
|
|
lsl r1, r1, #0x15
|
|
lsr r1, r1, #0x18
|
|
str r1, [sp, #0x14]
|
|
ldrh r0, [r0, #2]
|
|
sub r6, r6, r3
|
|
mov r2, #0x1f
|
|
ror r6, r2
|
|
add r2, r3, r6
|
|
add r3, r4, r3
|
|
lsl r0, r0, #0x15
|
|
asr r3, r3, #1
|
|
lsr r0, r0, #0x18
|
|
add r6, r3, #1
|
|
str r0, [sp, #0x18]
|
|
ldr r0, _021EA244 ; =0x00000438
|
|
lsl r3, r6, #2
|
|
add r3, r6, r3
|
|
lsl r2, r2, #0x1c
|
|
lsl r3, r3, #0x18
|
|
ldr r0, [r5, r0]
|
|
mov r1, #6
|
|
lsr r2, r2, #0x18
|
|
lsr r3, r3, #0x18
|
|
bl CopyToBgTilemapRect
|
|
mov r1, #0xcd
|
|
ldr r2, [sp, #0x1c]
|
|
lsl r1, r1, #2
|
|
lsl r3, r2, #2
|
|
mov r0, #0xc3
|
|
lsl r0, r0, #2
|
|
ldr r1, [r5, r1]
|
|
add r2, r2, r3
|
|
ldrb r1, [r1, r2]
|
|
mov r2, #0xc6
|
|
lsl r2, r2, #2
|
|
ldr r0, [r5, r0]
|
|
ldr r2, [r5, r2]
|
|
add r1, #0xe
|
|
bl ReadMsgDataIntoString
|
|
mov r1, #0xc6
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
mov r0, #4
|
|
mov r2, #0
|
|
bl FontID_String_GetWidth
|
|
mov r1, #0x70
|
|
sub r3, r1, r0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021EA254 ; =0x00010200
|
|
mov r2, #0xc6
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #0x20]
|
|
lsl r2, r2, #2
|
|
lsr r6, r3, #0x1f
|
|
add r6, r3, r6
|
|
ldr r2, [r5, r2]
|
|
add r0, r7, r0
|
|
mov r1, #4
|
|
asr r3, r6, #1
|
|
bl AddTextPrinterParameterized2
|
|
ldr r0, [sp, #0x20]
|
|
add r0, r7, r0
|
|
bl ScheduleWindowCopyToVram
|
|
_021EA168:
|
|
add r4, r4, #1
|
|
cmp r4, #6
|
|
bge _021EA170
|
|
b _021EA06A
|
|
_021EA170:
|
|
ldr r0, _021EA258 ; =0x00000484
|
|
mov r1, #0
|
|
add r0, r5, r0
|
|
bl FillWindowPixelBuffer
|
|
mov r3, #1
|
|
str r3, [sp]
|
|
mov r2, #0x43
|
|
mov r0, #0x31
|
|
str r3, [sp, #4]
|
|
lsl r2, r2, #4
|
|
ldrb r2, [r5, r2]
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
add r2, r2, #1
|
|
bl BufferIntegerAsString
|
|
mov r1, #1
|
|
str r1, [sp]
|
|
mov r0, #0x31
|
|
ldr r2, _021EA25C ; =0x0000042E
|
|
str r1, [sp, #4]
|
|
lsl r0, r0, #4
|
|
ldrb r2, [r5, r2]
|
|
ldr r0, [r5, r0]
|
|
add r3, r1, #0
|
|
bl BufferIntegerAsString
|
|
mov r2, #0x31
|
|
lsl r2, r2, #4
|
|
add r1, r2, #4
|
|
ldr r0, [r5, r2]
|
|
add r2, #0x1c
|
|
ldr r1, [r5, r1]
|
|
ldr r2, [r5, r2]
|
|
bl StringExpandPlaceholders
|
|
mov r1, #0
|
|
mov r2, #0xc5
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
mov r0, #0xc1
|
|
lsl r0, r0, #0xa
|
|
str r0, [sp, #8]
|
|
ldr r0, _021EA258 ; =0x00000484
|
|
str r1, [sp, #0xc]
|
|
lsl r2, r2, #2
|
|
ldr r2, [r5, r2]
|
|
add r0, r5, r0
|
|
add r3, r1, #0
|
|
bl AddTextPrinterParameterized2
|
|
ldr r0, _021EA258 ; =0x00000484
|
|
add r0, r5, r0
|
|
bl ScheduleWindowCopyToVram
|
|
ldr r0, _021EA244 ; =0x00000438
|
|
mov r1, #5
|
|
ldr r0, [r5, r0]
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
ldr r0, _021EA244 ; =0x00000438
|
|
mov r1, #6
|
|
ldr r0, [r5, r0]
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
mov r0, #0x43
|
|
lsl r0, r0, #4
|
|
ldrb r1, [r5, r0]
|
|
cmp r1, #0
|
|
bne _021EA20E
|
|
add r0, #0x1c
|
|
ldr r0, [r5, r0]
|
|
mov r1, #7
|
|
bl Set2dSpriteAnimSeqNo
|
|
b _021EA218
|
|
_021EA20E:
|
|
add r0, #0x1c
|
|
ldr r0, [r5, r0]
|
|
mov r1, #5
|
|
bl Set2dSpriteAnimSeqNo
|
|
_021EA218:
|
|
mov r0, #0x43
|
|
lsl r0, r0, #4
|
|
sub r1, r0, #2
|
|
ldrb r1, [r5, r1]
|
|
ldrb r2, [r5, r0]
|
|
sub r1, r1, #1
|
|
cmp r2, r1
|
|
bne _021EA236
|
|
add r0, #0x20
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0xa
|
|
bl Set2dSpriteAnimSeqNo
|
|
add sp, #0x24
|
|
pop {r4, r5, r6, r7, pc}
|
|
_021EA236:
|
|
add r0, #0x20
|
|
ldr r0, [r5, r0]
|
|
mov r1, #8
|
|
bl Set2dSpriteAnimSeqNo
|
|
add sp, #0x24
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021EA244: .word 0x00000438
|
|
_021EA248: .word 0x00000454
|
|
_021EA24C: .word 0x0000042D
|
|
_021EA250: .word 0x0000051C
|
|
_021EA254: .word 0x00010200
|
|
_021EA258: .word 0x00000484
|
|
_021EA25C: .word 0x0000042E
|
|
thumb_func_end ov108_021EA040
|
|
|
|
thumb_func_start ov108_021EA260
|
|
ov108_021EA260: ; 0x021EA260
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r4, r0, #0
|
|
ldr r0, _021EA2DC ; =0x00000494
|
|
mov r1, #0
|
|
add r0, r4, r0
|
|
bl FillWindowPixelBuffer
|
|
ldr r3, _021EA2E0 ; =0x00000432
|
|
mov r2, #0xc3
|
|
lsl r2, r2, #2
|
|
ldrb r5, [r4, r3]
|
|
add r1, r2, #0
|
|
add r1, #0x28
|
|
lsl r3, r5, #2
|
|
ldr r0, [r4, r2]
|
|
add r2, #0xc
|
|
ldr r1, [r4, r1]
|
|
add r3, r5, r3
|
|
ldrb r1, [r1, r3]
|
|
ldr r2, [r4, r2]
|
|
add r1, #0xe
|
|
bl ReadMsgDataIntoString
|
|
mov r1, #0xc6
|
|
lsl r1, r1, #2
|
|
ldr r1, [r4, r1]
|
|
mov r0, #4
|
|
mov r2, #0
|
|
bl FontID_String_GetWidth
|
|
mov r1, #0x70
|
|
sub r3, r1, r0
|
|
mov r1, #0
|
|
mov r2, #0xc6
|
|
lsr r5, r3, #0x1f
|
|
add r5, r3, r5
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021EA2E4 ; =0x00010200
|
|
lsl r2, r2, #2
|
|
str r0, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
ldr r0, _021EA2DC ; =0x00000494
|
|
ldr r2, [r4, r2]
|
|
add r0, r4, r0
|
|
mov r1, #4
|
|
asr r3, r5, #1
|
|
bl AddTextPrinterParameterized2
|
|
ldr r0, _021EA2DC ; =0x00000494
|
|
add r0, r4, r0
|
|
bl ScheduleWindowCopyToVram
|
|
ldr r0, _021EA2E8 ; =0x00000484
|
|
add r0, r4, r0
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021EA2DC: .word 0x00000494
|
|
_021EA2E0: .word 0x00000432
|
|
_021EA2E4: .word 0x00010200
|
|
_021EA2E8: .word 0x00000484
|
|
thumb_func_end ov108_021EA260
|
|
|
|
thumb_func_start ov108_021EA2EC
|
|
ov108_021EA2EC: ; 0x021EA2EC
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
cmp r1, #6
|
|
blo _021EA2FC
|
|
mov r3, #0xe0
|
|
mov r2, #0xb4
|
|
mov r5, #1
|
|
b _021EA31A
|
|
_021EA2FC:
|
|
lsr r3, r1, #0x1f
|
|
lsl r2, r1, #0x1f
|
|
sub r2, r2, r3
|
|
mov r0, #0x1f
|
|
ror r2, r0
|
|
add r0, r3, r2
|
|
lsl r0, r0, #0x17
|
|
asr r3, r0, #0x10
|
|
lsr r0, r1, #1
|
|
add r1, r0, #1
|
|
mov r0, #0x28
|
|
mul r0, r1
|
|
lsl r0, r0, #0x10
|
|
asr r2, r0, #0x10
|
|
mov r5, #0
|
|
_021EA31A:
|
|
ldr r0, _021EA330 ; =0x00000444
|
|
add r1, r3, #0
|
|
ldr r0, [r4, r0]
|
|
bl Sprite_SetPositionXY
|
|
ldr r0, _021EA330 ; =0x00000444
|
|
add r1, r5, #0
|
|
ldr r0, [r4, r0]
|
|
bl Set2dSpriteAnimSeqNo
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021EA330: .word 0x00000444
|
|
thumb_func_end ov108_021EA2EC
|
|
|
|
thumb_func_start ov108_021EA334
|
|
ov108_021EA334: ; 0x021EA334
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
ldr r0, _021EA40C ; =0x00000454
|
|
mov r6, #0
|
|
add r4, r1, #0
|
|
add r0, r5, r0
|
|
add r1, r6, #0
|
|
bl FillWindowPixelBuffer
|
|
cmp r4, #0
|
|
beq _021EA352
|
|
cmp r4, #2
|
|
beq _021EA382
|
|
b _021EA3A4
|
|
_021EA352:
|
|
ldr r1, _021EA410 ; =0x00000433
|
|
mov r2, #0xc3
|
|
lsl r2, r2, #2
|
|
ldrb r1, [r5, r1]
|
|
ldr r0, [r5, r2]
|
|
add r2, #8
|
|
ldr r2, [r5, r2]
|
|
add r1, #0xe
|
|
bl ReadMsgDataIntoString
|
|
add r1, r6, #0
|
|
mov r2, #0x31
|
|
str r1, [sp]
|
|
mov r0, #2
|
|
lsl r2, r2, #4
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, r2]
|
|
add r2, r2, #4
|
|
ldr r2, [r5, r2]
|
|
mov r3, #1
|
|
bl BufferString
|
|
mov r6, #1
|
|
b _021EA3A4
|
|
_021EA382:
|
|
ldr r0, _021EA414 ; =0x00000435
|
|
ldrb r2, [r5, r0]
|
|
cmp r2, #0
|
|
bne _021EA38E
|
|
mov r4, #3
|
|
b _021EA3A4
|
|
_021EA38E:
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #0x31
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
add r1, r6, #0
|
|
mov r3, #2
|
|
bl BufferIntegerAsString
|
|
mov r6, #1
|
|
_021EA3A4:
|
|
cmp r6, #0
|
|
beq _021EA3CE
|
|
mov r2, #0xc3
|
|
lsl r2, r2, #2
|
|
ldr r0, [r5, r2]
|
|
add r2, #8
|
|
ldr r2, [r5, r2]
|
|
add r1, r4, #0
|
|
bl ReadMsgDataIntoString
|
|
mov r2, #0x31
|
|
lsl r2, r2, #4
|
|
add r1, r2, #0
|
|
ldr r0, [r5, r2]
|
|
add r1, #8
|
|
add r2, r2, #4
|
|
ldr r1, [r5, r1]
|
|
ldr r2, [r5, r2]
|
|
bl StringExpandPlaceholders
|
|
b _021EA3DE
|
|
_021EA3CE:
|
|
mov r2, #0xc3
|
|
lsl r2, r2, #2
|
|
ldr r0, [r5, r2]
|
|
add r2, #0xc
|
|
ldr r2, [r5, r2]
|
|
add r1, r4, #0
|
|
bl ReadMsgDataIntoString
|
|
_021EA3DE:
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
mov r0, #0xc1
|
|
lsl r0, r0, #0xa
|
|
str r0, [sp, #8]
|
|
mov r2, #0xc6
|
|
ldr r0, _021EA40C ; =0x00000454
|
|
str r1, [sp, #0xc]
|
|
lsl r2, r2, #2
|
|
ldr r2, [r5, r2]
|
|
add r0, r5, r0
|
|
add r3, r1, #0
|
|
bl AddTextPrinterParameterized2
|
|
ldr r0, _021EA40C ; =0x00000454
|
|
add r0, r5, r0
|
|
bl ScheduleWindowCopyToVram
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021EA40C: .word 0x00000454
|
|
_021EA410: .word 0x00000433
|
|
_021EA414: .word 0x00000435
|
|
thumb_func_end ov108_021EA334
|
|
|
|
thumb_func_start ov108_021EA418
|
|
ov108_021EA418: ; 0x021EA418
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
ldr r0, _021EA474 ; =0x00000464
|
|
add r4, r1, #0
|
|
add r0, r5, r0
|
|
mov r1, #0xf
|
|
bl FillWindowPixelBuffer
|
|
mov r2, #0xc3
|
|
lsl r2, r2, #2
|
|
ldr r0, [r5, r2]
|
|
add r2, #0xc
|
|
ldr r2, [r5, r2]
|
|
add r1, r4, #4
|
|
bl ReadMsgDataIntoString
|
|
ldr r2, _021EA474 ; =0x00000464
|
|
mov r1, #1
|
|
add r0, r5, r2
|
|
sub r2, #0x82
|
|
mov r3, #0xc
|
|
bl DrawFrameAndWindow2
|
|
mov r3, #0
|
|
mov r2, #0xc6
|
|
str r3, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021EA478 ; =0x0001020F
|
|
lsl r2, r2, #2
|
|
str r0, [sp, #8]
|
|
str r3, [sp, #0xc]
|
|
ldr r0, _021EA474 ; =0x00000464
|
|
ldr r2, [r5, r2]
|
|
add r0, r5, r0
|
|
mov r1, #1
|
|
bl AddTextPrinterParameterized2
|
|
ldr r0, _021EA474 ; =0x00000464
|
|
add r0, r5, r0
|
|
bl ScheduleWindowCopyToVram
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021EA474: .word 0x00000464
|
|
_021EA478: .word 0x0001020F
|
|
thumb_func_end ov108_021EA418
|
|
|
|
thumb_func_start ov108_021EA47C
|
|
ov108_021EA47C: ; 0x021EA47C
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r4, r0, #0
|
|
bl ov108_021EA624
|
|
ldr r0, _021EA500 ; =0x000004A4
|
|
mov r1, #0
|
|
add r0, r4, r0
|
|
bl FillWindowPixelBuffer
|
|
ldr r2, _021EA504 ; =0x00000431
|
|
sub r1, r2, #1
|
|
ldrb r3, [r4, r1]
|
|
mov r1, #6
|
|
ldrb r0, [r4, r2]
|
|
mul r1, r3
|
|
add r1, r0, r1
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
cmp r0, #6
|
|
bhs _021EA4AE
|
|
sub r0, r2, #4
|
|
ldrb r0, [r4, r0]
|
|
cmp r1, r0
|
|
blo _021EA4BA
|
|
_021EA4AE:
|
|
ldr r0, _021EA500 ; =0x000004A4
|
|
add r0, r4, r0
|
|
bl ScheduleWindowCopyToVram
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
_021EA4BA:
|
|
mov r3, #0xc3
|
|
lsl r3, r3, #2
|
|
add r2, r3, #0
|
|
add r2, #0x28
|
|
ldr r5, [r4, r2]
|
|
lsl r2, r1, #2
|
|
add r1, r1, r2
|
|
ldrb r1, [r5, r1]
|
|
ldr r0, [r4, r3]
|
|
add r3, #0xc
|
|
ldr r2, [r4, r3]
|
|
add r1, #0x26
|
|
bl ReadMsgDataIntoString
|
|
mov r1, #0
|
|
mov r2, #0xc6
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021EA508 ; =0x00010200
|
|
lsl r2, r2, #2
|
|
str r0, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
ldr r0, _021EA500 ; =0x000004A4
|
|
ldr r2, [r4, r2]
|
|
add r0, r4, r0
|
|
add r3, r1, #0
|
|
bl AddTextPrinterParameterized2
|
|
ldr r0, _021EA500 ; =0x000004A4
|
|
add r0, r4, r0
|
|
bl ScheduleWindowCopyToVram
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021EA500: .word 0x000004A4
|
|
_021EA504: .word 0x00000431
|
|
_021EA508: .word 0x00010200
|
|
thumb_func_end ov108_021EA47C
|
|
|
|
thumb_func_start ov108_021EA50C
|
|
ov108_021EA50C: ; 0x021EA50C
|
|
push {r4, lr}
|
|
mov r1, #0
|
|
add r4, r0, #0
|
|
bl ov108_021E940C
|
|
ldr r1, _021EA528 ; =0x00000431
|
|
add r0, r4, #0
|
|
ldrb r1, [r4, r1]
|
|
bl ov108_021EA2EC
|
|
add r0, r4, #0
|
|
bl ov108_021EA47C
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021EA528: .word 0x00000431
|
|
thumb_func_end ov108_021EA50C
|
|
|
|
thumb_func_start ov108_021EA52C
|
|
ov108_021EA52C: ; 0x021EA52C
|
|
push {r3, r4}
|
|
ldr r2, _021EA580 ; =0x00000435
|
|
ldrb r2, [r0, r2]
|
|
cmp r2, #0
|
|
bne _021EA53C
|
|
mov r0, #4
|
|
pop {r3, r4}
|
|
bx lr
|
|
_021EA53C:
|
|
lsl r2, r1, #2
|
|
add r4, r1, r2
|
|
mov r1, #0xcd
|
|
lsl r1, r1, #2
|
|
ldr r1, [r0, r1]
|
|
ldr r3, [r0, #0x1c]
|
|
add r1, r1, r4
|
|
ldrb r0, [r1, #3]
|
|
ldrb r2, [r3, #0x18]
|
|
lsl r0, r0, #0x1f
|
|
lsr r0, r0, #0x1f
|
|
cmp r2, r0
|
|
beq _021EA566
|
|
cmp r2, #0
|
|
bne _021EA560
|
|
mov r0, #2
|
|
pop {r3, r4}
|
|
bx lr
|
|
_021EA560:
|
|
mov r0, #3
|
|
pop {r3, r4}
|
|
bx lr
|
|
_021EA566:
|
|
ldrb r0, [r1, #1]
|
|
lsl r0, r0, #2
|
|
add r0, r3, r0
|
|
ldrb r0, [r0, #8]
|
|
cmp r0, #0
|
|
bne _021EA578
|
|
mov r0, #1
|
|
pop {r3, r4}
|
|
bx lr
|
|
_021EA578:
|
|
mov r0, #0
|
|
pop {r3, r4}
|
|
bx lr
|
|
nop
|
|
_021EA580: .word 0x00000435
|
|
thumb_func_end ov108_021EA52C
|
|
|
|
thumb_func_start ov108_021EA584
|
|
ov108_021EA584: ; 0x021EA584
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
str r3, [sp]
|
|
add r6, r1, #0
|
|
ldr r0, [r5]
|
|
mov r1, #0x14
|
|
add r7, r2, #0
|
|
bl AllocFromHeap
|
|
mov r1, #0
|
|
mov r2, #0x14
|
|
add r4, r0, #0
|
|
bl MI_CpuFill8
|
|
add r0, r6, #2
|
|
str r5, [r4, #4]
|
|
lsl r0, r0, #2
|
|
str r7, [r4]
|
|
add r1, r5, r0
|
|
ldr r0, _021EA5D8 ; =0x00000444
|
|
strb r6, [r4, #8]
|
|
ldr r0, [r1, r0]
|
|
lsl r1, r6, #1
|
|
add r1, r6, r1
|
|
add r1, r1, #6
|
|
bl Set2dSpriteAnimSeqNo
|
|
ldr r0, _021EA5DC ; =0x000005E1
|
|
bl PlaySE
|
|
ldr r1, [r4]
|
|
cmp r1, #0
|
|
beq _021EA5CC
|
|
ldr r0, [r1]
|
|
add r0, r0, #1
|
|
str r0, [r1]
|
|
_021EA5CC:
|
|
ldr r0, _021EA5E0 ; =ov108_021EA5E4
|
|
ldr r2, [sp]
|
|
add r1, r4, #0
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021EA5D8: .word 0x00000444
|
|
_021EA5DC: .word 0x000005E1
|
|
_021EA5E0: .word ov108_021EA5E4
|
|
thumb_func_end ov108_021EA584
|
|
|
|
thumb_func_start ov108_021EA5E4
|
|
ov108_021EA5E4: ; 0x021EA5E4
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldrb r1, [r4, #9]
|
|
add r5, r0, #0
|
|
add r0, r1, #1
|
|
strb r0, [r4, #9]
|
|
cmp r1, #2
|
|
blo _021EA61E
|
|
ldr r0, [r4, #4]
|
|
bl ov108_021EA040
|
|
ldr r0, [r4, #4]
|
|
bl ov108_021EA47C
|
|
ldr r0, [r4, #4]
|
|
ldr r1, _021EA620 ; =0x00000431
|
|
ldrb r1, [r0, r1]
|
|
bl ov108_021EA2EC
|
|
ldr r1, [r4]
|
|
ldr r0, [r1]
|
|
sub r0, r0, #1
|
|
str r0, [r1]
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
_021EA61E:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021EA620: .word 0x00000431
|
|
thumb_func_end ov108_021EA5E4
|
|
|
|
thumb_func_start ov108_021EA624
|
|
ov108_021EA624: ; 0x021EA624
|
|
ldr r1, _021EA634 ; =0x00000434
|
|
mov r2, #1
|
|
strb r2, [r0, r1]
|
|
sub r1, #0xfc
|
|
add r0, r0, r1
|
|
ldr r3, _021EA638 ; =ov108_021E8ED8
|
|
mov r1, #0
|
|
bx r3
|
|
.balign 4, 0
|
|
_021EA634: .word 0x00000434
|
|
_021EA638: .word ov108_021E8ED8
|
|
thumb_func_end ov108_021EA624
|
|
|
|
thumb_func_start ov108_021EA63C
|
|
ov108_021EA63C: ; 0x021EA63C
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
str r1, [sp]
|
|
mov r6, #0
|
|
mov r1, #0xa
|
|
str r2, [sp, #4]
|
|
str r3, [sp, #8]
|
|
add r4, r6, #0
|
|
bl _u32_div_f
|
|
ldr r2, _021EA6F8 ; =ov108_021EAD28
|
|
lsl r0, r1, #2
|
|
add r0, r2, r0
|
|
str r0, [sp, #0xc]
|
|
add r0, r6, #0
|
|
mov ip, r0
|
|
ldr r0, [sp]
|
|
cmp r0, #0
|
|
ble _021EA69C
|
|
mov r7, #1
|
|
_021EA664:
|
|
ldr r1, [sp, #0xc]
|
|
mov r0, ip
|
|
ldrb r0, [r1, r0]
|
|
mov r2, #0
|
|
lsl r1, r0, #3
|
|
ldr r0, _021EA6FC ; =ov108_021EAD08
|
|
ldrb r5, [r0, r1]
|
|
add r3, r0, r1
|
|
cmp r5, #0
|
|
ble _021EA690
|
|
ldr r3, [r3, #4]
|
|
_021EA67A:
|
|
ldrb r0, [r3]
|
|
add r1, r7, #0
|
|
add r2, r2, #1
|
|
lsl r1, r0
|
|
add r0, r6, #1
|
|
lsl r0, r0, #0x18
|
|
orr r4, r1
|
|
lsr r6, r0, #0x18
|
|
add r3, r3, #1
|
|
cmp r2, r5
|
|
blt _021EA67A
|
|
_021EA690:
|
|
mov r0, ip
|
|
add r1, r0, #1
|
|
ldr r0, [sp]
|
|
mov ip, r1
|
|
cmp r1, r0
|
|
blt _021EA664
|
|
_021EA69C:
|
|
lsl r5, r6, #2
|
|
ldr r0, [sp, #0x28]
|
|
add r1, r6, r5
|
|
bl AllocFromHeap
|
|
mov r1, #0
|
|
add r2, r6, r5
|
|
str r0, [sp, #0x10]
|
|
bl MI_CpuFill8
|
|
mov r7, #0
|
|
add r6, r7, #0
|
|
_021EA6B4:
|
|
mov r0, #1
|
|
tst r0, r4
|
|
beq _021EA6E4
|
|
lsl r0, r7, #2
|
|
add r1, r7, r0
|
|
ldr r0, [sp, #0x10]
|
|
strb r6, [r0, r1]
|
|
add r5, r0, r1
|
|
ldr r2, [sp, #4]
|
|
add r0, r5, #2
|
|
add r1, r6, #0
|
|
bl sub_02097268
|
|
ldrb r1, [r5, #3]
|
|
lsl r0, r1, #0x1c
|
|
lsl r1, r1, #0x19
|
|
lsr r0, r0, #0x1d
|
|
lsr r1, r1, #0x1d
|
|
bl ov108_021EA700
|
|
strb r0, [r5, #1]
|
|
add r0, r7, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r7, r0, #0x18
|
|
_021EA6E4:
|
|
add r6, r6, #1
|
|
lsr r4, r4, #1
|
|
cmp r6, #0x18
|
|
blt _021EA6B4
|
|
ldr r0, [sp, #8]
|
|
strb r7, [r0]
|
|
ldr r0, [sp, #0x10]
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_021EA6F8: .word ov108_021EAD28
|
|
_021EA6FC: .word ov108_021EAD08
|
|
thumb_func_end ov108_021EA63C
|
|
|
|
thumb_func_start ov108_021EA700
|
|
ov108_021EA700: ; 0x021EA700
|
|
cmp r0, #1
|
|
bne _021EA714
|
|
cmp r1, #1
|
|
beq _021EA70C
|
|
mov r0, #1
|
|
b _021EA70E
|
|
_021EA70C:
|
|
mov r0, #0
|
|
_021EA70E:
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bx lr
|
|
_021EA714:
|
|
cmp r1, #1
|
|
bne _021EA71C
|
|
mov r0, #2
|
|
bx lr
|
|
_021EA71C:
|
|
mov r0, #3
|
|
bx lr
|
|
thumb_func_end ov108_021EA700
|
|
|
|
.rodata
|
|
|
|
_021EA720:
|
|
.byte 0xFF, 0x01, 0x01, 0xFF
|
|
|
|
ov108_021EA724: ; 0x021EA724
|
|
.byte 0x08, 0x0A, 0x0B, 0x00, 0x09, 0x0A, 0x0B, 0x00, 0x03, 0x00, 0x00, 0x0F
|
|
.byte 0x00, 0x00, 0xB5, 0x03, 0xE5, 0x03, 0x30, 0x00
|
|
|
|
ov108_021EA738: ; 0x021EA738
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EA748: ; 0x021EA748
|
|
.byte 0x0C, 0x00
|
|
|
|
ov108_021EA74A: ; 0x021EA74A
|
|
.byte 0x02, 0x00, 0x15, 0x00, 0x02, 0x00
|
|
.byte 0x0A, 0x00, 0x02, 0x00, 0x0C, 0x00, 0x09, 0x00, 0x15, 0x00, 0x09, 0x00, 0x0A, 0x00, 0x09, 0x00
|
|
|
|
ov108_021EA760: ; 0x021EA760
|
|
.byte 0x18, 0x58, 0x18, 0x58, 0x18, 0x58, 0x60, 0xA0, 0x18, 0x58, 0xA8, 0xE8, 0x60, 0xA0, 0x18, 0x58
|
|
.byte 0x60, 0xA0, 0x60, 0xA0, 0x60, 0xA0, 0xA8, 0xE8, 0xA8, 0xC0, 0xC0, 0x00, 0xFF, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EA780: ; 0x021EA780
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EA7A8: ; 0x021EA7A8
|
|
.byte 0x00, 0x01, 0x15, 0x16, 0x03, 0x04, 0x37, 0x03
|
|
.byte 0x00, 0x01, 0x13, 0x16, 0x05, 0x04, 0x0B, 0x03, 0x03, 0x19, 0x15, 0x06, 0x03, 0x0C, 0xF9, 0x02
|
|
.byte 0x03, 0x0D, 0x00, 0x06, 0x02, 0x0C, 0xED, 0x02, 0x07, 0x01, 0x15, 0x1E, 0x03, 0x05, 0xA6, 0x03
|
|
|
|
ov108_021EA7D0: ; 0x021EA7D0
|
|
.byte 0x18, 0x58, 0x10, 0x50, 0x18, 0x58, 0x60, 0xA0, 0x18, 0x58, 0xB0, 0xF0, 0x60, 0xA0, 0x10, 0x50
|
|
.byte 0x60, 0xA0, 0x60, 0xA0, 0x60, 0xA0, 0xB0, 0xF0, 0xA8, 0xC0, 0xC0, 0x00, 0x06, 0x1A, 0x40, 0x60
|
|
.byte 0x06, 0x1A, 0xA0, 0xC0, 0xFF, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EA7F8: ; 0x021EA7F8
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EA820: ; 0x021EA820
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EA848: ; 0x021EA848
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x10, 0x00
|
|
.byte 0x00, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EA870: ; 0x021EA870
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x00, 0x00
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EA898: ; 0x021EA898
|
|
.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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x1C, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x1A, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1E, 0x00
|
|
.byte 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x18, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x1A, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1E, 0x01
|
|
.byte 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EA978: ; 0x021EA978
|
|
.byte 0x0C, 0x01, 0x01, 0x01
|
|
|
|
ov108_021EA97C: ; 0x021EA97C
|
|
.byte 0x3A, 0x00, 0x3B, 0x00
|
|
.byte 0x39, 0x00, 0x38, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x56, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EA98C: ; 0x021EA98C
|
|
.byte 0x10, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00
|
|
|
|
ov108_021EA9A0: ; 0x021EA9A0
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0xB0, 0x15, 0x00
|
|
|
|
ov108_021EA9C4: ; 0x021EA9C4
|
|
.byte 0x62, 0xDD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x05
|
|
.byte 0x00, 0x40, 0x06, 0x00, 0x00, 0x00, 0x4B, 0x00
|
|
|
|
ov108_021EA9D8: ; 0x021EA9D8
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EA9E4: ; 0x021EA9E4
|
|
.byte 0x15, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x47, 0x01, 0x00, 0x00
|
|
.byte 0x14, 0x00, 0x14, 0x00, 0x47, 0x01, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00, 0x90, 0x01, 0x00, 0x00
|
|
.byte 0xFB, 0xFF, 0x00, 0x00, 0x29, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x01, 0x00, 0x00
|
|
.byte 0xFB, 0xFF, 0x00, 0x00, 0x5B, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x01, 0x00, 0x00
|
|
.byte 0xF9, 0xFF, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0xFD, 0xFF, 0x0A, 0x00, 0x5C, 0x01, 0x00, 0x00
|
|
.byte 0xFD, 0xFF, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0xFA, 0xFF, 0x00, 0x00, 0xED, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0xED, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x1B, 0x01, 0x00, 0x00, 0xF3, 0xFF, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00
|
|
.byte 0x06, 0x00, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0xA4, 0x01, 0x07, 0x00
|
|
.byte 0x05, 0x00, 0xFF, 0xFF, 0x3B, 0x01, 0x01, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x7A, 0x01, 0x00, 0x00
|
|
.byte 0x06, 0x00, 0x00, 0x00, 0x7A, 0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5B, 0x01, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EAAA4: ; 0x021EAAA4
|
|
.byte 0x00, 0x0F, 0x07, 0x00, 0x00, 0x0F, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00
|
|
|
|
ov108_021EAAB0: ; 0x021EAAB0
|
|
.byte 0x3E, 0x00, 0x3F, 0x00, 0x3D, 0x00, 0x3C, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x57, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EAAC0: ; 0x021EAAC0
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EAAD0: ; 0x021EAAD0
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
|
.byte 0x10, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EAAE4: ; 0x021EAAE4
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1E, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EAB00: ; 0x021EAB00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x1D, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EAB1C: ; 0x021EAB1C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1E, 0x00
|
|
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EAB38: ; 0x021EAB38
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1D, 0x00, 0x00, 0x03, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EAB54: ; 0x021EAB54
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EAB70: ; 0x021EAB70
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x1C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EAB8C: ; 0x021EAB8C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1F, 0x04
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EABA8: ; 0x021EABA8
|
|
.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
|
|
|
|
ov108_021EABC8: ; 0x021EABC8
|
|
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EABF0: ; 0x021EABF0
|
|
.byte 0x28, 0x48, 0x00, 0x80, 0x28, 0x48, 0x80, 0x00, 0x50, 0x70, 0x00, 0x80, 0x50, 0x70, 0x80, 0x00
|
|
.byte 0x78, 0x98, 0x00, 0x80, 0x78, 0x98, 0x80, 0x00, 0xA8, 0xC0, 0xC0, 0x00, 0xA4, 0xBC, 0x09, 0x37
|
|
.byte 0xA4, 0xBC, 0x31, 0x5F, 0xFF, 0x00, 0x00, 0x00
|
|
|
|
ov108_021EAC18: ; 0x021EAC18
|
|
.byte 0x04, 0x02, 0x01, 0x1C, 0x02, 0x04, 0x6E, 0x03
|
|
.byte 0x04, 0x02, 0x15, 0x1B, 0x02, 0x0D, 0x38, 0x03, 0x05, 0x19, 0x15, 0x06, 0x03, 0x0D, 0x26, 0x03
|
|
.byte 0x05, 0x0D, 0x15, 0x06, 0x02, 0x04, 0x1A, 0x03, 0x05, 0x09, 0x08, 0x0E, 0x02, 0x04, 0xFE, 0x02
|
|
.byte 0x01, 0x02, 0x12, 0x1C, 0x06, 0x01, 0x58, 0x03
|
|
|
|
ov108_021EAC48: ; 0x021EAC48
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0xB4, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xB0, 0x00
|
|
.byte 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
.balign 4, 0
|
|
ov108_021EACE8:
|
|
.byte 0x00, 0x01, 0x02, 0x13, 0x14, 0x0C
|
|
|
|
.balign 4, 0
|
|
ov108_021EACF0:
|
|
.byte 0x09, 0x0A, 0x0B, 0x0F, 0x10, 0x12
|
|
|
|
.balign 4, 0
|
|
ov108_021EACF8:
|
|
.byte 0x06, 0x07, 0x08, 0x15, 0x16, 0x17
|
|
|
|
.balign 4, 0
|
|
ov108_021EAD00:
|
|
.byte 0x03, 0x04, 0x05, 0x0D, 0x0E, 0x11
|
|
|
|
.balign 4, 0
|
|
ov108_021EAD08: ; 0x021EAD08
|
|
.word 6, ov108_021EACE8
|
|
.word 6, ov108_021EAD00
|
|
.word 6, ov108_021EACF8
|
|
.word 6, ov108_021EACF0
|
|
|
|
ov108_021EAD28: ; 0x021EAD28
|
|
.byte 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x02, 0x03
|
|
.byte 0x00, 0x01, 0x02, 0x03, 0x01, 0x02, 0x03, 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x02, 0x03, 0x00
|
|
.byte 0x02, 0x03, 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x03, 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x02
|
|
; 0x021EAD50
|