mirror of
https://github.com/pret/pokeheartgold.git
synced 2024-11-24 13:49:45 +00:00
4453 lines
77 KiB
ArmAsm
4453 lines
77 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "overlay_17.inc"
|
|
.include "global.inc"
|
|
|
|
.text
|
|
|
|
thumb_func_start ov17_02201BC0
|
|
ov17_02201BC0: ; 0x02201BC0
|
|
push {r3, lr}
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl Main_SetVBlankIntrCB
|
|
bl HBlankInterruptDisable
|
|
bl GX_DisableEngineALayers
|
|
bl GX_DisableEngineBLayers
|
|
mov r2, #1
|
|
lsl r2, r2, #0x1a
|
|
ldr r1, [r2]
|
|
ldr r0, _02201C08 ; =0xFFFFE0FF
|
|
and r1, r0
|
|
str r1, [r2]
|
|
ldr r2, _02201C0C ; =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
|
|
_02201C08: .word 0xFFFFE0FF
|
|
_02201C0C: .word 0x04001000
|
|
thumb_func_end ov17_02201BC0
|
|
|
|
thumb_func_start ov17_02201C10
|
|
ov17_02201C10: ; 0x02201C10
|
|
push {r4, r5, r6, lr}
|
|
add r5, r1, #0
|
|
ldr r1, [r5]
|
|
add r6, r0, #0
|
|
cmp r1, #0
|
|
beq _02201C22
|
|
cmp r1, #1
|
|
beq _02201C64
|
|
b _02201C74
|
|
_02201C22:
|
|
bl ov17_02201BC0
|
|
mov r2, #2
|
|
mov r0, #3
|
|
mov r1, #0x83
|
|
lsl r2, r2, #0x10
|
|
bl CreateHeap
|
|
mov r1, #0x6b
|
|
add r0, r6, #0
|
|
lsl r1, r1, #2
|
|
mov r2, #0x83
|
|
bl OverlayManager_CreateAndGetData
|
|
mov r2, #0x6b
|
|
mov r1, #0
|
|
lsl r2, r2, #2
|
|
add r4, r0, #0
|
|
bl MI_CpuFill8
|
|
mov r0, #0x83
|
|
str r0, [r4]
|
|
add r0, r6, #0
|
|
bl OverlayManager_GetArgs
|
|
str r0, [r4, #4]
|
|
add r0, r4, #0
|
|
bl ov17_02201D30
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _02201C74
|
|
_02201C64:
|
|
bl OverlayManager_GetData
|
|
bl ov17_02201DF0
|
|
cmp r0, #0
|
|
beq _02201C74
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_02201C74:
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov17_02201C10
|
|
|
|
thumb_func_start ov17_02201C78
|
|
ov17_02201C78: ; 0x02201C78
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
bl OverlayManager_GetData
|
|
ldr r1, [r4]
|
|
add r5, r0, #0
|
|
cmp r1, #9
|
|
bhi _02201CF4
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_02201C94: ; jump table
|
|
.short _02201CA8 - _02201C94 - 2 ; case 0
|
|
.short _02201CB0 - _02201C94 - 2 ; case 1
|
|
.short _02201CB8 - _02201C94 - 2 ; case 2
|
|
.short _02201CC0 - _02201C94 - 2 ; case 3
|
|
.short _02201CC8 - _02201C94 - 2 ; case 4
|
|
.short _02201CD0 - _02201C94 - 2 ; case 5
|
|
.short _02201CD8 - _02201C94 - 2 ; case 6
|
|
.short _02201CE0 - _02201C94 - 2 ; case 7
|
|
.short _02201CE8 - _02201C94 - 2 ; case 8
|
|
.short _02201CF0 - _02201C94 - 2 ; case 9
|
|
_02201CA8:
|
|
bl ov17_02201E50
|
|
str r0, [r4]
|
|
b _02201CF4
|
|
_02201CB0:
|
|
bl ov17_02201EA8
|
|
str r0, [r4]
|
|
b _02201CF4
|
|
_02201CB8:
|
|
bl ov17_02201EFC
|
|
str r0, [r4]
|
|
b _02201CF4
|
|
_02201CC0:
|
|
bl ov17_02201F18
|
|
str r0, [r4]
|
|
b _02201CF4
|
|
_02201CC8:
|
|
bl ov17_02201FE8
|
|
str r0, [r4]
|
|
b _02201CF4
|
|
_02201CD0:
|
|
bl ov17_02202094
|
|
str r0, [r4]
|
|
b _02201CF4
|
|
_02201CD8:
|
|
bl ov17_02202184
|
|
str r0, [r4]
|
|
b _02201CF4
|
|
_02201CE0:
|
|
bl ov17_02202320
|
|
str r0, [r4]
|
|
b _02201CF4
|
|
_02201CE8:
|
|
bl ov17_02202378
|
|
str r0, [r4]
|
|
b _02201CF4
|
|
_02201CF0:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_02201CF4:
|
|
mov r0, #0x4d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl sub_0200D020
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov17_02201C78
|
|
|
|
thumb_func_start ov17_02201D04
|
|
ov17_02201D04: ; 0x02201D04
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
bl OverlayManager_GetData
|
|
add r4, r0, #0
|
|
bl ov17_02201E3C
|
|
cmp r0, #0
|
|
bne _02201D1A
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_02201D1A:
|
|
add r0, r4, #0
|
|
bl ov17_02201DD8
|
|
add r0, r5, #0
|
|
bl OverlayManager_FreeData
|
|
mov r0, #0x83
|
|
bl DestroyHeap
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov17_02201D04
|
|
|
|
thumb_func_start ov17_02201D30
|
|
ov17_02201D30: ; 0x02201D30
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #4]
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #4]
|
|
bl sub_020183F0
|
|
str r0, [r5, #0x74]
|
|
ldr r0, [r5, #4]
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #0xc]
|
|
bl Save_PlayerData_GetOptionsAddr
|
|
add r4, r0, #0
|
|
bl Options_GetTextFrameDelay
|
|
add r1, r5, #0
|
|
add r1, #0x78
|
|
strb r0, [r1]
|
|
add r0, r4, #0
|
|
bl Options_GetFrame
|
|
add r1, r5, #0
|
|
add r1, #0x79
|
|
strb r0, [r1]
|
|
ldr r0, [r5, #4]
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #0xc]
|
|
bl SaveGetBag
|
|
str r0, [r5, #0xc]
|
|
ldr r0, [r5, #4]
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #0xc]
|
|
bl Save_GameStats_get
|
|
str r0, [r5, #0x10]
|
|
ldr r0, [r5]
|
|
bl ov16_022014A0
|
|
str r0, [r5, #0x1c]
|
|
ldr r0, [r5, #4]
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #0xc]
|
|
bl Save_BerryPots_get
|
|
str r0, [r5, #0x14]
|
|
ldr r0, [r5, #4]
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #0xc]
|
|
bl Save_BerryPotRTC_get
|
|
str r0, [r5, #0x18]
|
|
ldr r1, [r5, #4]
|
|
ldrb r0, [r1, #0x14]
|
|
cmp r0, #0
|
|
beq _02201DA6
|
|
ldrb r1, [r1, #0x15]
|
|
b _02201DA8
|
|
_02201DA6:
|
|
mov r1, #0
|
|
_02201DA8:
|
|
add r0, r5, #0
|
|
add r0, #0x7c
|
|
strb r1, [r0]
|
|
add r0, r5, #0
|
|
bl ov17_022023B0
|
|
ldr r0, [r5, #0xc]
|
|
ldr r1, [r5]
|
|
bl ov16_022018F0
|
|
add r1, r5, #0
|
|
add r1, #0x82
|
|
strh r0, [r1]
|
|
ldr r0, [r5, #0xc]
|
|
ldr r1, [r5]
|
|
bl ov16_0220191C
|
|
add r1, r5, #0
|
|
add r1, #0x84
|
|
strh r0, [r1]
|
|
add r0, r5, #0
|
|
bl ov17_0220387C
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov17_02201D30
|
|
|
|
thumb_func_start ov17_02201DD8
|
|
ov17_02201DD8: ; 0x02201DD8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x1c]
|
|
bl FreeToHeap
|
|
ldr r0, [r4, #4]
|
|
ldr r1, [r4, #0x74]
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #4]
|
|
bl sub_02018410
|
|
pop {r4, pc}
|
|
thumb_func_end ov17_02201DD8
|
|
|
|
thumb_func_start ov17_02201DF0
|
|
ov17_02201DF0: ; 0x02201DF0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r1, r4, #0
|
|
add r1, #0x70
|
|
ldrh r1, [r1]
|
|
cmp r1, #0
|
|
beq _02201E04
|
|
cmp r1, #1
|
|
beq _02201E16
|
|
b _02201E38
|
|
_02201E04:
|
|
bl ov17_022024CC
|
|
add r0, r4, #0
|
|
add r0, #0x70
|
|
ldrh r0, [r0]
|
|
add r4, #0x70
|
|
add r0, r0, #1
|
|
strh r0, [r4]
|
|
b _02201E38
|
|
_02201E16:
|
|
bl ov17_02202528
|
|
bl sub_020210BC
|
|
mov r0, #1
|
|
bl sub_02021148
|
|
mov r1, #0
|
|
mov r0, #0x45
|
|
add r2, r1, #0
|
|
bl sub_02004EC4
|
|
mov r0, #0
|
|
add r4, #0x70
|
|
strh r0, [r4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02201E38:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov17_02201DF0
|
|
|
|
thumb_func_start ov17_02201E3C
|
|
ov17_02201E3C: ; 0x02201E3C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl sub_02021238
|
|
add r0, r4, #0
|
|
bl ov17_02202500
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov17_02201E3C
|
|
|
|
thumb_func_start ov17_02201E50
|
|
ov17_02201E50: ; 0x02201E50
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
add r0, #0x70
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
beq _02201E64
|
|
cmp r0, #1
|
|
beq _02201E88
|
|
b _02201EA2
|
|
_02201E64:
|
|
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
|
|
add r0, r4, #0
|
|
add r0, #0x70
|
|
ldrh r0, [r0]
|
|
add r4, #0x70
|
|
add r0, r0, #1
|
|
strh r0, [r4]
|
|
b _02201EA2
|
|
_02201E88:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _02201EA2
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x70
|
|
strh r1, [r0]
|
|
add r0, r4, #0
|
|
bl ov17_02202440
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
_02201EA2:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
thumb_func_end ov17_02201E50
|
|
|
|
thumb_func_start ov17_02201EA8
|
|
ov17_02201EA8: ; 0x02201EA8
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
add r0, #0x70
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
beq _02201EBC
|
|
cmp r0, #1
|
|
beq _02201EE2
|
|
b _02201EF6
|
|
_02201EBC:
|
|
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
|
|
add r0, r4, #0
|
|
add r0, #0x70
|
|
ldrh r0, [r0]
|
|
add r4, #0x70
|
|
add r0, r0, #1
|
|
strh r0, [r4]
|
|
b _02201EF6
|
|
_02201EE2:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _02201EF6
|
|
mov r0, #0
|
|
add r4, #0x70
|
|
strh r0, [r4]
|
|
add sp, #0xc
|
|
mov r0, #9
|
|
pop {r3, r4, pc}
|
|
_02201EF6:
|
|
mov r0, #1
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
thumb_func_end ov17_02201EA8
|
|
|
|
thumb_func_start ov17_02201EFC
|
|
ov17_02201EFC: ; 0x02201EFC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
bl ov17_02203A34
|
|
add r4, r0, #0
|
|
cmp r4, #2
|
|
bne _02201F12
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov17_022037C8
|
|
_02201F12:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov17_02201EFC
|
|
|
|
thumb_func_start ov17_02201F18
|
|
ov17_02201F18: ; 0x02201F18
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
add r1, r4, #0
|
|
add r1, #0x70
|
|
ldrh r1, [r1]
|
|
cmp r1, #0
|
|
beq _02201F2C
|
|
cmp r1, #1
|
|
beq _02201F58
|
|
b _02201FE4
|
|
_02201F2C:
|
|
mov r1, #0
|
|
bl ov17_022029C8
|
|
add r2, r4, #0
|
|
add r2, #0x7c
|
|
ldrb r2, [r2]
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
mov r3, #1
|
|
bl ov17_02202944
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov17_02202910
|
|
add r0, r4, #0
|
|
add r0, #0x70
|
|
ldrh r0, [r0]
|
|
add r4, #0x70
|
|
add r0, r0, #1
|
|
strh r0, [r4]
|
|
b _02201FE4
|
|
_02201F58:
|
|
bl ov17_02202A50
|
|
mov r2, #0
|
|
mvn r2, r2
|
|
cmp r0, r2
|
|
beq _02201FE4
|
|
add r1, r4, #0
|
|
mov r3, #0
|
|
add r1, #0x70
|
|
strh r3, [r1]
|
|
cmp r0, #2
|
|
beq _02201F76
|
|
sub r1, r3, #2
|
|
cmp r0, r1
|
|
bne _02201F8E
|
|
_02201F76:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #4
|
|
mov r3, #1
|
|
bl ov17_02202944
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov17_02202910
|
|
mov r0, #2
|
|
pop {r3, r4, r5, pc}
|
|
_02201F8E:
|
|
add r1, r4, #0
|
|
add r1, #0x7c
|
|
ldrb r5, [r1]
|
|
ldr r1, [r4, #4]
|
|
lsr r2, r2, #0x10
|
|
strb r5, [r1, #0x15]
|
|
ldr r1, [r4, #4]
|
|
cmp r0, #0
|
|
strh r2, [r1, #0x16]
|
|
bne _02201FC2
|
|
add r0, r4, #0
|
|
add r0, #0x84
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
bne _02201FBA
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
mov r2, #4
|
|
bl ov17_02202944
|
|
mov r0, #8
|
|
pop {r3, r4, r5, pc}
|
|
_02201FBA:
|
|
ldr r0, [r4, #4]
|
|
mov r1, #1
|
|
strb r1, [r0, #0x14]
|
|
b _02201FE0
|
|
_02201FC2:
|
|
add r0, r4, #0
|
|
add r0, #0x82
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
bne _02201FDA
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
mov r2, #4
|
|
bl ov17_02202944
|
|
mov r0, #8
|
|
pop {r3, r4, r5, pc}
|
|
_02201FDA:
|
|
ldr r0, [r4, #4]
|
|
mov r1, #2
|
|
strb r1, [r0, #0x14]
|
|
_02201FE0:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_02201FE4:
|
|
mov r0, #3
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov17_02201F18
|
|
|
|
thumb_func_start ov17_02201FE8
|
|
ov17_02201FE8: ; 0x02201FE8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r1, r4, #0
|
|
add r1, #0x70
|
|
ldrh r1, [r1]
|
|
cmp r1, #0
|
|
beq _02201FFC
|
|
cmp r1, #1
|
|
beq _02202028
|
|
b _02202090
|
|
_02201FFC:
|
|
mov r1, #1
|
|
bl ov17_022029C8
|
|
add r2, r4, #0
|
|
add r2, #0x7c
|
|
ldrb r2, [r2]
|
|
add r0, r4, #0
|
|
mov r1, #5
|
|
mov r3, #1
|
|
bl ov17_02202944
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov17_02202910
|
|
add r0, r4, #0
|
|
add r0, #0x70
|
|
ldrh r0, [r0]
|
|
add r4, #0x70
|
|
add r0, r0, #1
|
|
strh r0, [r4]
|
|
b _02202090
|
|
_02202028:
|
|
bl ov17_02202A50
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _02202090
|
|
add r2, r4, #0
|
|
mov r3, #0
|
|
add r2, #0x70
|
|
strh r3, [r2]
|
|
cmp r0, #1
|
|
beq _02202046
|
|
sub r2, r3, #2
|
|
cmp r0, r2
|
|
bne _0220205E
|
|
_02202046:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #4
|
|
mov r3, #1
|
|
bl ov17_02202944
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov17_02202910
|
|
mov r0, #2
|
|
pop {r4, pc}
|
|
_0220205E:
|
|
add r0, r4, #0
|
|
add r0, #0x82
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
bne _02202076
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
mov r2, #4
|
|
bl ov17_02202944
|
|
mov r0, #8
|
|
pop {r4, pc}
|
|
_02202076:
|
|
add r0, r4, #0
|
|
add r0, #0x7c
|
|
ldrb r2, [r0]
|
|
ldr r0, [r4, #4]
|
|
lsr r1, r1, #0x10
|
|
strb r2, [r0, #0x15]
|
|
ldr r0, [r4, #4]
|
|
strh r1, [r0, #0x16]
|
|
ldr r0, [r4, #4]
|
|
mov r1, #2
|
|
strb r1, [r0, #0x14]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02202090:
|
|
mov r0, #4
|
|
pop {r4, pc}
|
|
thumb_func_end ov17_02201FE8
|
|
|
|
thumb_func_start ov17_02202094
|
|
ov17_02202094: ; 0x02202094
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r1, r4, #0
|
|
add r1, #0x70
|
|
ldrh r1, [r1]
|
|
cmp r1, #0
|
|
beq _022020AC
|
|
cmp r1, #1
|
|
beq _022020E2
|
|
cmp r1, #2
|
|
beq _02202130
|
|
b _02202152
|
|
_022020AC:
|
|
mov r1, #2
|
|
bl ov17_022029C8
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov17_02202910
|
|
add r0, r4, #0
|
|
add r0, #0x7c
|
|
ldrb r2, [r0]
|
|
mov r1, #0x14
|
|
add r0, r4, #0
|
|
mul r1, r2
|
|
add r1, r4, r1
|
|
add r1, #0x21
|
|
ldrb r1, [r1]
|
|
mov r3, #1
|
|
add r1, r1, #5
|
|
bl ov17_02202944
|
|
add r0, r4, #0
|
|
add r0, #0x70
|
|
ldrh r0, [r0]
|
|
add r4, #0x70
|
|
add r0, r0, #1
|
|
strh r0, [r4]
|
|
b _02202180
|
|
_022020E2:
|
|
bl ov17_02202A50
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _02202180
|
|
cmp r0, #1
|
|
beq _022020F8
|
|
sub r1, r1, #1
|
|
cmp r0, r1
|
|
bne _02202116
|
|
_022020F8:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x70
|
|
strh r1, [r0]
|
|
add r0, r4, #0
|
|
mov r2, #4
|
|
mov r3, #1
|
|
bl ov17_02202944
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov17_02202910
|
|
mov r0, #2
|
|
pop {r4, pc}
|
|
_02202116:
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
mov r2, #4
|
|
mov r3, #0
|
|
bl ov17_02202944
|
|
add r0, r4, #0
|
|
add r0, #0x70
|
|
ldrh r0, [r0]
|
|
add r4, #0x70
|
|
add r0, r0, #1
|
|
strh r0, [r4]
|
|
b _02202180
|
|
_02202130:
|
|
bl ov17_022025B8
|
|
cmp r0, #0
|
|
beq _02202180
|
|
add r0, r4, #0
|
|
mov r1, #0xd
|
|
mov r2, #4
|
|
mov r3, #0
|
|
bl ov17_02202944
|
|
add r0, r4, #0
|
|
add r0, #0x70
|
|
ldrh r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x70
|
|
strh r1, [r0]
|
|
_02202152:
|
|
add r0, r4, #0
|
|
bl ov17_02202460
|
|
cmp r0, #0
|
|
beq _02202180
|
|
add r0, r4, #0
|
|
bl ov17_022028B8
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov17_02202910
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #4
|
|
mov r3, #1
|
|
bl ov17_02202944
|
|
mov r0, #0
|
|
add r4, #0x70
|
|
strh r0, [r4]
|
|
mov r0, #2
|
|
pop {r4, pc}
|
|
_02202180:
|
|
mov r0, #5
|
|
pop {r4, pc}
|
|
thumb_func_end ov17_02202094
|
|
|
|
thumb_func_start ov17_02202184
|
|
ov17_02202184: ; 0x02202184
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
add r1, r4, #0
|
|
add r1, #0x70
|
|
ldrh r1, [r1]
|
|
cmp r1, #5
|
|
bhi _022021E2
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0220219E: ; jump table
|
|
.short _022021AA - _0220219E - 2 ; case 0
|
|
.short _022021D6 - _0220219E - 2 ; case 1
|
|
.short _02202262 - _0220219E - 2 ; case 2
|
|
.short _02202288 - _0220219E - 2 ; case 3
|
|
.short _022022B4 - _0220219E - 2 ; case 4
|
|
.short _022022DA - _0220219E - 2 ; case 5
|
|
_022021AA:
|
|
mov r1, #3
|
|
bl ov17_022029C8
|
|
add r2, r4, #0
|
|
add r2, #0x7c
|
|
ldrb r2, [r2]
|
|
add r0, r4, #0
|
|
mov r1, #0xa
|
|
mov r3, #1
|
|
bl ov17_02202944
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov17_02202910
|
|
add r0, r4, #0
|
|
add r0, #0x70
|
|
ldrh r0, [r0]
|
|
add r4, #0x70
|
|
add r0, r0, #1
|
|
strh r0, [r4]
|
|
b _02202316
|
|
_022021D6:
|
|
bl ov17_02202A50
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _022021E4
|
|
_022021E2:
|
|
b _02202316
|
|
_022021E4:
|
|
cmp r0, #1
|
|
beq _022021EE
|
|
sub r1, r1, #1
|
|
cmp r0, r1
|
|
bne _0220220C
|
|
_022021EE:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x70
|
|
strh r1, [r0]
|
|
add r0, r4, #0
|
|
mov r2, #4
|
|
mov r3, #1
|
|
bl ov17_02202944
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov17_02202910
|
|
mov r0, #2
|
|
pop {r3, r4, r5, pc}
|
|
_0220220C:
|
|
add r0, r4, #0
|
|
add r0, #0x7c
|
|
ldrb r1, [r0]
|
|
add r2, r4, #0
|
|
mov r0, #0x14
|
|
add r2, #0x20
|
|
mul r0, r1
|
|
add r5, r2, r0
|
|
ldrb r0, [r2, r0]
|
|
bl ov16_022018B4
|
|
add r1, r0, #0
|
|
ldrb r2, [r5, #5]
|
|
ldr r0, [r4, #0xc]
|
|
ldr r3, [r4]
|
|
bl BagHasSpaceForItem
|
|
cmp r0, #0
|
|
beq _02202244
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
add r0, #0x70
|
|
strh r1, [r0]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov17_02202900
|
|
b _02202316
|
|
_02202244:
|
|
add r2, r4, #0
|
|
add r2, #0x7c
|
|
ldrb r2, [r2]
|
|
add r0, r4, #0
|
|
mov r1, #0x10
|
|
mov r3, #0
|
|
bl ov17_02202944
|
|
add r0, r4, #0
|
|
add r0, #0x70
|
|
ldrh r0, [r0]
|
|
add r4, #0x70
|
|
add r0, r0, #1
|
|
strh r0, [r4]
|
|
b _02202316
|
|
_02202262:
|
|
bl ov17_02202460
|
|
cmp r0, #0
|
|
beq _02202316
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x70
|
|
strh r1, [r0]
|
|
add r0, r4, #0
|
|
mov r2, #4
|
|
mov r3, #1
|
|
bl ov17_02202944
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov17_02202910
|
|
mov r0, #2
|
|
pop {r3, r4, r5, pc}
|
|
_02202288:
|
|
bl ov17_0220279C
|
|
cmp r0, #0
|
|
beq _02202316
|
|
add r2, r4, #0
|
|
add r2, #0x7c
|
|
ldrb r2, [r2]
|
|
add r0, r4, #0
|
|
mov r1, #0xe
|
|
mov r3, #0
|
|
bl ov17_02202944
|
|
ldr r0, _0220231C ; =0x000004A9
|
|
bl PlayFanfare
|
|
add r0, r4, #0
|
|
add r0, #0x70
|
|
ldrh r0, [r0]
|
|
add r4, #0x70
|
|
add r0, r0, #1
|
|
strh r0, [r4]
|
|
b _02202316
|
|
_022022B4:
|
|
bl IsFanfarePlaying
|
|
cmp r0, #0
|
|
bne _02202316
|
|
add r2, r4, #0
|
|
add r2, #0x7c
|
|
ldrb r2, [r2]
|
|
add r0, r4, #0
|
|
mov r1, #0xf
|
|
mov r3, #0
|
|
bl ov17_02202944
|
|
add r0, r4, #0
|
|
add r0, #0x70
|
|
ldrh r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x70
|
|
strh r1, [r0]
|
|
_022022DA:
|
|
add r0, r4, #0
|
|
bl ov17_02202460
|
|
cmp r0, #0
|
|
beq _02202316
|
|
add r0, r4, #0
|
|
bl ov17_02202B98
|
|
add r0, r4, #0
|
|
bl ov17_022028B8
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov17_02202910
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov17_02202900
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #4
|
|
mov r3, #1
|
|
bl ov17_02202944
|
|
mov r0, #0
|
|
add r4, #0x70
|
|
strh r0, [r4]
|
|
mov r0, #2
|
|
pop {r3, r4, r5, pc}
|
|
_02202316:
|
|
mov r0, #6
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0220231C: .word 0x000004A9
|
|
thumb_func_end ov17_02202184
|
|
|
|
thumb_func_start ov17_02202320
|
|
ov17_02202320: ; 0x02202320
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r1, r4, #0
|
|
add r1, #0x70
|
|
ldrh r1, [r1]
|
|
cmp r1, #0
|
|
beq _02202334
|
|
cmp r1, #1
|
|
beq _02202348
|
|
b _0220236E
|
|
_02202334:
|
|
ldr r0, _02202374 ; =0x00000888
|
|
bl PlaySE
|
|
add r0, r4, #0
|
|
add r0, #0x70
|
|
ldrh r0, [r0]
|
|
add r4, #0x70
|
|
add r0, r0, #1
|
|
strh r0, [r4]
|
|
b _0220236E
|
|
_02202348:
|
|
bl ov17_02202460
|
|
cmp r0, #0
|
|
beq _0220236E
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #4
|
|
mov r3, #1
|
|
bl ov17_02202944
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov17_02202910
|
|
mov r0, #0
|
|
add r4, #0x70
|
|
strh r0, [r4]
|
|
mov r0, #2
|
|
pop {r4, pc}
|
|
_0220236E:
|
|
mov r0, #7
|
|
pop {r4, pc}
|
|
nop
|
|
_02202374: .word 0x00000888
|
|
thumb_func_end ov17_02202320
|
|
|
|
thumb_func_start ov17_02202378
|
|
ov17_02202378: ; 0x02202378
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov17_02202460
|
|
cmp r0, #0
|
|
beq _0220239C
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #4
|
|
mov r3, #1
|
|
bl ov17_02202944
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov17_02202910
|
|
mov r0, #2
|
|
pop {r4, pc}
|
|
_0220239C:
|
|
mov r0, #8
|
|
pop {r4, pc}
|
|
thumb_func_end ov17_02202378
|
|
|
|
thumb_func_start ov17_022023A0
|
|
ov17_022023A0: ; 0x022023A0
|
|
cmp r0, #0x5f
|
|
blo _022023A8
|
|
cmp r0, #0x63
|
|
bls _022023AC
|
|
_022023A8:
|
|
mov r0, #0
|
|
bx lr
|
|
_022023AC:
|
|
mov r0, #1
|
|
bx lr
|
|
thumb_func_end ov17_022023A0
|
|
|
|
thumb_func_start ov17_022023B0
|
|
ov17_022023B0: ; 0x022023B0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r1, #0
|
|
add r0, #0x7b
|
|
strb r1, [r0]
|
|
ldr r0, [r4, #4]
|
|
ldrb r2, [r0, #0x14]
|
|
cmp r2, #0
|
|
beq _02202438
|
|
ldrh r0, [r0, #0x16]
|
|
ldr r1, _0220243C ; =0x0000FFFF
|
|
cmp r0, r1
|
|
beq _02202438
|
|
cmp r2, #1
|
|
bne _022023F6
|
|
bl ov17_022023A0
|
|
cmp r0, #0
|
|
beq _02202438
|
|
ldr r0, [r4, #4]
|
|
ldrh r0, [r0, #0x16]
|
|
bl ov16_022018E4
|
|
add r1, r4, #0
|
|
add r1, #0x7c
|
|
add r2, r0, #0
|
|
ldrb r1, [r1]
|
|
ldr r0, [r4, #0x14]
|
|
bl ov16_0220165C
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
add r0, #0x7b
|
|
strb r1, [r0]
|
|
b _0220242A
|
|
_022023F6:
|
|
cmp r2, #2
|
|
bne _0220242A
|
|
bl ItemIdIsBerry
|
|
cmp r0, #0
|
|
beq _02202438
|
|
ldr r0, [r4, #4]
|
|
ldrh r0, [r0, #0x16]
|
|
bl ov16_022018C4
|
|
add r1, r4, #0
|
|
add r1, #0x7c
|
|
add r3, r0, #0
|
|
ldrb r1, [r1]
|
|
ldr r0, [r4, #0x14]
|
|
ldr r2, [r4, #0x1c]
|
|
bl ov16_02201610
|
|
ldr r0, [r4, #0x10]
|
|
mov r1, #5
|
|
bl GameStats_Inc
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
add r0, #0x7b
|
|
strb r1, [r0]
|
|
_0220242A:
|
|
ldr r1, [r4, #4]
|
|
ldr r0, [r4, #0xc]
|
|
ldrh r1, [r1, #0x16]
|
|
ldr r3, [r4]
|
|
mov r2, #1
|
|
bl BagTakeItem
|
|
_02202438:
|
|
pop {r4, pc}
|
|
nop
|
|
_0220243C: .word 0x0000FFFF
|
|
thumb_func_end ov17_022023B0
|
|
|
|
thumb_func_start ov17_02202440
|
|
ov17_02202440: ; 0x02202440
|
|
ldr r3, [r0, #4]
|
|
mov r1, #0
|
|
ldrb r2, [r3, #0x14]
|
|
strb r1, [r3, #0x14]
|
|
cmp r2, #0
|
|
bne _02202450
|
|
mov r0, #2
|
|
bx lr
|
|
_02202450:
|
|
add r0, #0x7b
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0220245C
|
|
mov r0, #7
|
|
bx lr
|
|
_0220245C:
|
|
mov r0, #2
|
|
bx lr
|
|
thumb_func_end ov17_02202440
|
|
|
|
thumb_func_start ov17_02202460
|
|
ov17_02202460: ; 0x02202460
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl System_GetTouchNew
|
|
cmp r0, #0
|
|
beq _02202478
|
|
ldr r0, _022024C0 ; =0x000005DC
|
|
bl PlaySE
|
|
mov r0, #1
|
|
str r0, [r4, #0x74]
|
|
pop {r4, pc}
|
|
_02202478:
|
|
ldr r0, _022024C4 ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
ldr r0, _022024C8 ; =0x00000CF3
|
|
tst r0, r1
|
|
beq _02202486
|
|
mov r0, #0
|
|
str r0, [r4, #0x74]
|
|
_02202486:
|
|
ldr r0, _022024C4 ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #3
|
|
tst r0, r1
|
|
beq _0220249A
|
|
ldr r0, _022024C0 ; =0x000005DC
|
|
bl PlaySE
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_0220249A:
|
|
add r0, r4, #0
|
|
add r0, #0x7a
|
|
ldrb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x7a
|
|
ldrb r0, [r0]
|
|
add r4, #0x7a
|
|
sub r0, r0, #1
|
|
strb r0, [r4]
|
|
cmp r1, #0
|
|
bne _022024BA
|
|
ldr r0, _022024C0 ; =0x000005DC
|
|
bl PlaySE
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_022024BA:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_022024C0: .word 0x000005DC
|
|
_022024C4: .word gSystem
|
|
_022024C8: .word 0x00000CF3
|
|
thumb_func_end ov17_02202460
|
|
|
|
thumb_func_start ov17_022024CC
|
|
ov17_022024CC: ; 0x022024CC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov17_02202C4C
|
|
add r0, r4, #0
|
|
bl ov17_02202E28
|
|
add r0, r4, #0
|
|
bl ov17_02202F0C
|
|
add r0, r4, #0
|
|
bl ov17_02202FC4
|
|
add r0, r4, #0
|
|
bl ov17_02203030
|
|
add r0, r4, #0
|
|
bl ov17_02203278
|
|
ldr r0, _022024FC ; =ov17_02202BF8
|
|
add r1, r4, #0
|
|
bl Main_SetVBlankIntrCB
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_022024FC: .word ov17_02202BF8
|
|
thumb_func_end ov17_022024CC
|
|
|
|
thumb_func_start ov17_02202500
|
|
ov17_02202500: ; 0x02202500
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov17_02203290
|
|
add r0, r4, #0
|
|
bl ov17_02203084
|
|
add r0, r4, #0
|
|
bl ov17_02203004
|
|
add r0, r4, #0
|
|
bl ov17_02202F7C
|
|
add r0, r4, #0
|
|
bl ov17_02202EFC
|
|
add r0, r4, #0
|
|
bl ov17_02202DD0
|
|
pop {r4, pc}
|
|
thumb_func_end ov17_02202500
|
|
|
|
thumb_func_start ov17_02202528
|
|
ov17_02202528: ; 0x02202528
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
mov r1, #0
|
|
bl ov17_02202850
|
|
add r0, r4, #0
|
|
bl ov17_022028B8
|
|
add r0, r4, #0
|
|
add r0, #0x7b
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _02202580
|
|
cmp r0, #1
|
|
beq _0220254C
|
|
cmp r0, #2
|
|
beq _02202566
|
|
b _02202580
|
|
_0220254C:
|
|
add r2, r4, #0
|
|
add r2, #0x7c
|
|
ldrb r2, [r2]
|
|
add r0, r4, #0
|
|
mov r1, #0xb
|
|
mov r3, #1
|
|
bl ov17_02202944
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov17_02202910
|
|
b _02202594
|
|
_02202566:
|
|
add r2, r4, #0
|
|
add r2, #0x7c
|
|
ldrb r2, [r2]
|
|
add r0, r4, #0
|
|
mov r1, #0xc
|
|
mov r3, #1
|
|
bl ov17_02202944
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov17_02202910
|
|
b _02202594
|
|
_02202580:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #4
|
|
mov r3, #1
|
|
bl ov17_02202944
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov17_02202910
|
|
_02202594:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov17_022037C8
|
|
mov r5, #0
|
|
_0220259E:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl ov17_02203404
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl ov17_02202A84
|
|
add r5, r5, #1
|
|
cmp r5, #4
|
|
blt _0220259E
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov17_02202528
|
|
|
|
thumb_func_start ov17_022025B8
|
|
ov17_022025B8: ; 0x022025B8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r1, r4, #0
|
|
add r1, #0x72
|
|
ldrh r1, [r1]
|
|
cmp r1, #4
|
|
bhi _02202662
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_022025D2: ; jump table
|
|
.short _022025DC - _022025D2 - 2 ; case 0
|
|
.short _0220264C - _022025D2 - 2 ; case 1
|
|
.short _022026A2 - _022025D2 - 2 ; case 2
|
|
.short _02202718 - _022025D2 - 2 ; case 3
|
|
.short _0220274E - _022025D2 - 2 ; case 4
|
|
_022025DC:
|
|
add r0, #0x7c
|
|
ldrb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
mov r1, #0xff
|
|
add r0, #0x81
|
|
strb r1, [r0]
|
|
add r1, #0x6d
|
|
ldr r0, [r4, r1]
|
|
add r1, r4, #0
|
|
add r1, #0x80
|
|
ldrb r2, [r1]
|
|
mov r1, #0x1b
|
|
mul r1, r2
|
|
add r1, #0x1f
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
mov r2, #0x38
|
|
bl sub_0200DD88
|
|
mov r0, #0x5b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #8
|
|
bl Set2dSpriteAnimSeqNo
|
|
mov r0, #0x5b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl sub_02024964
|
|
mov r0, #0x5b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimActiveFlag
|
|
mov r0, #0x5b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x7f
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x72
|
|
ldrh r0, [r0]
|
|
add r4, #0x72
|
|
add r0, r0, #1
|
|
strh r0, [r4]
|
|
b _02202792
|
|
_0220264C:
|
|
add r0, #0x7f
|
|
ldrb r2, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x7f
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x7f
|
|
strb r1, [r0]
|
|
cmp r2, #0xf
|
|
bhs _02202664
|
|
_02202662:
|
|
b _02202792
|
|
_02202664:
|
|
ldr r0, _02202798 ; =0x00000889
|
|
bl PlaySE
|
|
mov r0, #0x5b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl sub_02024964
|
|
mov r0, #0x5b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #9
|
|
bl Set2dSpriteAnimSeqNo
|
|
mov r0, #0x5a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimActiveFlag
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x7f
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x72
|
|
ldrh r0, [r0]
|
|
add r4, #0x72
|
|
add r0, r0, #1
|
|
strh r0, [r4]
|
|
b _02202792
|
|
_022026A2:
|
|
add r1, r4, #0
|
|
add r1, #0x7f
|
|
ldrb r3, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0x7f
|
|
ldrb r1, [r1]
|
|
add r2, r1, #1
|
|
add r1, r4, #0
|
|
add r1, #0x7f
|
|
strb r2, [r1]
|
|
cmp r3, #0
|
|
bne _022026C4
|
|
add r1, r4, #0
|
|
add r1, #0x80
|
|
ldrb r1, [r1]
|
|
bl ov17_02202B58
|
|
_022026C4:
|
|
add r0, r4, #0
|
|
add r0, #0x7f
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x1e
|
|
bhs _022026D6
|
|
add r0, r4, #0
|
|
bl ov17_02203A54
|
|
b _02202792
|
|
_022026D6:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x7f
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x81
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xff
|
|
bne _02202704
|
|
ldr r0, _02202798 ; =0x00000889
|
|
mov r1, #2
|
|
bl StopSE
|
|
mov r0, #0x5b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #8
|
|
bl Set2dSpriteAnimSeqNo
|
|
mov r0, #4
|
|
add r4, #0x72
|
|
strh r0, [r4]
|
|
b _02202792
|
|
_02202704:
|
|
add r0, r4, #0
|
|
bl ov17_0220351C
|
|
add r0, r4, #0
|
|
add r0, #0x72
|
|
ldrh r0, [r0]
|
|
add r4, #0x72
|
|
add r0, r0, #1
|
|
strh r0, [r4]
|
|
b _02202792
|
|
_02202718:
|
|
add r0, #0x7d
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _02202792
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x7f
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x81
|
|
ldrb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
mov r1, #0xff
|
|
add r0, #0x81
|
|
strb r1, [r0]
|
|
add r1, #0x69
|
|
ldr r0, [r4, r1]
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimActiveFlag
|
|
mov r0, #2
|
|
add r4, #0x72
|
|
strh r0, [r4]
|
|
b _02202792
|
|
_0220274E:
|
|
add r1, r4, #0
|
|
add r1, #0x7f
|
|
ldrb r3, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0x7f
|
|
ldrb r1, [r1]
|
|
add r2, r1, #1
|
|
add r1, r4, #0
|
|
add r1, #0x7f
|
|
strb r2, [r1]
|
|
cmp r3, #0xf
|
|
blo _02202792
|
|
bl ov17_0220387C
|
|
mov r0, #0x5b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
mov r0, #0x5a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl Set2dSpriteAnimActiveFlag
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x7f
|
|
strb r1, [r0]
|
|
add r4, #0x72
|
|
strh r1, [r4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02202792:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_02202798: .word 0x00000889
|
|
thumb_func_end ov17_022025B8
|
|
|
|
thumb_func_start ov17_0220279C
|
|
ov17_0220279C: ; 0x0220279C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r1, r4, #0
|
|
add r1, #0x72
|
|
ldrh r1, [r1]
|
|
cmp r1, #0
|
|
beq _022027B4
|
|
cmp r1, #1
|
|
beq _022027EA
|
|
cmp r1, #2
|
|
beq _02202834
|
|
b _0220284C
|
|
_022027B4:
|
|
add r1, r4, #0
|
|
add r1, #0x7c
|
|
ldrb r1, [r1]
|
|
bl ov17_02203460
|
|
add r0, r4, #0
|
|
add r0, #0x7c
|
|
ldrb r1, [r0]
|
|
mov r0, #0x14
|
|
mul r0, r1
|
|
add r0, r4, r0
|
|
add r0, #0x25
|
|
ldrb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x7e
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x7f
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x72
|
|
ldrh r0, [r0]
|
|
add r4, #0x72
|
|
add r0, r0, #1
|
|
strh r0, [r4]
|
|
b _0220284C
|
|
_022027EA:
|
|
add r1, r4, #0
|
|
add r1, #0x7f
|
|
ldrb r1, [r1]
|
|
cmp r1, #0
|
|
bne _0220280E
|
|
bl ov17_02203638
|
|
add r0, r4, #0
|
|
add r0, #0x7e
|
|
ldrb r0, [r0]
|
|
sub r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x7e
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
mov r1, #8
|
|
add r0, #0x7f
|
|
strb r1, [r0]
|
|
_0220280E:
|
|
add r0, r4, #0
|
|
add r0, #0x7f
|
|
ldrb r0, [r0]
|
|
sub r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x7f
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x7e
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0220284C
|
|
add r0, r4, #0
|
|
add r0, #0x72
|
|
ldrh r0, [r0]
|
|
add r4, #0x72
|
|
add r0, r0, #1
|
|
strh r0, [r4]
|
|
b _0220284C
|
|
_02202834:
|
|
add r0, #0x7d
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0220284C
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x7f
|
|
strb r1, [r0]
|
|
add r4, #0x72
|
|
strh r1, [r4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_0220284C:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov17_0220279C
|
|
|
|
thumb_func_start ov17_02202850
|
|
ov17_02202850: ; 0x02202850
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r4, r0, #0
|
|
mov r0, #0x59
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl Set2dSpriteAnimSeqNo
|
|
mov r0, #0x59
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl sub_02024964
|
|
add r0, r4, #0
|
|
add r0, #0xfc
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
add r1, r4, #0
|
|
add r1, #0xa8
|
|
ldr r1, [r1]
|
|
mov r0, #4
|
|
mov r2, #0
|
|
bl FontID_String_GetWidth
|
|
mov r1, #0
|
|
add r3, r0, #0
|
|
add r2, r4, #0
|
|
mov r5, #0x30
|
|
sub r3, r5, r3
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _022028B4 ; =0x00010200
|
|
add r2, #0xa8
|
|
str r0, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
add r0, r4, #0
|
|
ldr r2, [r2]
|
|
add r0, #0xfc
|
|
mov r1, #4
|
|
lsr r3, r3, #1
|
|
bl AddTextPrinterParameterized2
|
|
add r4, #0xfc
|
|
add r0, r4, #0
|
|
bl ScheduleWindowCopyToVram
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_022028B4: .word 0x00010200
|
|
thumb_func_end ov17_02202850
|
|
|
|
thumb_func_start ov17_022028B8
|
|
ov17_022028B8: ; 0x022028B8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r0, #0x7c
|
|
ldrb r4, [r0]
|
|
mov r0, #0x5a
|
|
mov r1, #0x1b
|
|
add r2, r4, #1
|
|
mul r1, r2
|
|
lsl r0, r0, #2
|
|
lsl r1, r1, #0x10
|
|
ldr r0, [r5, r0]
|
|
asr r1, r1, #0x10
|
|
mov r2, #0x60
|
|
bl sub_0200DD88
|
|
mov r0, #0x14
|
|
mul r0, r4
|
|
add r0, r5, r0
|
|
add r0, #0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, #3
|
|
bls _022028F2
|
|
mov r0, #0x5a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #3
|
|
bl Set2dSpriteAnimSeqNo
|
|
pop {r3, r4, r5, pc}
|
|
_022028F2:
|
|
mov r0, #0x5a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #2
|
|
bl Set2dSpriteAnimSeqNo
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov17_022028B8
|
|
|
|
thumb_func_start ov17_02202900
|
|
ov17_02202900: ; 0x02202900
|
|
mov r2, #0x5a
|
|
lsl r2, r2, #2
|
|
ldr r3, _0220290C ; =Set2dSpriteVisibleFlag
|
|
ldr r0, [r0, r2]
|
|
bx r3
|
|
nop
|
|
_0220290C: .word Set2dSpriteVisibleFlag
|
|
thumb_func_end ov17_02202900
|
|
|
|
thumb_func_start ov17_02202910
|
|
ov17_02202910: ; 0x02202910
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x5a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r6, r1, #0
|
|
bl Set2dSpriteAnimActiveFlag
|
|
mov r4, #0
|
|
_02202922:
|
|
ldr r0, [r5, #0x30]
|
|
cmp r0, #0
|
|
beq _02202938
|
|
add r1, r5, #0
|
|
add r1, #0x21
|
|
ldrb r1, [r1]
|
|
cmp r1, #2
|
|
blo _02202938
|
|
add r1, r6, #0
|
|
bl Set2dSpriteAnimActiveFlag
|
|
_02202938:
|
|
add r4, r4, #1
|
|
add r5, #0x14
|
|
cmp r4, #4
|
|
blt _02202922
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov17_02202910
|
|
|
|
thumb_func_start ov17_02202944
|
|
ov17_02202944: ; 0x02202944
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r6, r1, #0
|
|
add r5, r0, #0
|
|
add r7, r3, #0
|
|
str r2, [sp, #0x10]
|
|
cmp r6, #0
|
|
bne _02202958
|
|
mov r0, #0x43
|
|
b _0220295A
|
|
_02202958:
|
|
mov r0, #0x47
|
|
_0220295A:
|
|
lsl r0, r0, #2
|
|
add r4, r5, r0
|
|
add r0, r4, #0
|
|
mov r1, #0xf
|
|
bl FillWindowPixelBuffer
|
|
cmp r7, #0
|
|
beq _02202994
|
|
mov r0, #0x12
|
|
str r0, [sp]
|
|
mov r0, #0x20
|
|
mov r1, #0
|
|
str r0, [sp, #4]
|
|
mov r0, #6
|
|
str r0, [sp, #8]
|
|
add r0, r5, #0
|
|
str r1, [sp, #0xc]
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl FillBgTilemapRect
|
|
mov r1, #1
|
|
add r0, r4, #0
|
|
add r2, r1, #0
|
|
mov r3, #0xd
|
|
bl DrawFrameAndWindow2
|
|
_02202994:
|
|
ldr r2, [sp, #0x10]
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov17_022036FC
|
|
mov r3, #0
|
|
add r2, r5, #0
|
|
str r3, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
str r3, [sp, #8]
|
|
add r2, #0xa4
|
|
ldr r2, [r2]
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl AddTextPrinterParameterized
|
|
add r0, r4, #0
|
|
bl ScheduleWindowCopyToVram
|
|
mov r0, #0x3c
|
|
add r5, #0x7a
|
|
strb r0, [r5]
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov17_02202944
|
|
|
|
thumb_func_start ov17_022029C8
|
|
ov17_022029C8: ; 0x022029C8
|
|
push {r4, r5, lr}
|
|
sub sp, #0x24
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r0, sp, #0xc
|
|
mov r1, #0
|
|
mov r2, #0x18
|
|
bl MI_CpuFill8
|
|
ldr r0, _02202A48 ; =ov17_02203D60
|
|
add r2, sp, #0xc
|
|
ldrh r3, [r0, #0xc]
|
|
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]
|
|
lsl r0, r4, #2
|
|
add r3, r5, r0
|
|
mov r0, #0x66
|
|
lsl r0, r0, #2
|
|
ldr r0, [r3, r0]
|
|
lsl r3, r4, #3
|
|
str r0, [sp, #0x18]
|
|
add r0, r5, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, _02202A4C ; =ov17_02203E88
|
|
ldr r0, [r0, r3]
|
|
mov r3, #0xf
|
|
strb r0, [r2, #0x14]
|
|
ldrb r2, [r2, #0x14]
|
|
lsl r0, r2, #1
|
|
add r2, r2, r0
|
|
mov r0, #0x10
|
|
sub r0, r0, r2
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
mov r0, #0xe
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
add r0, r5, #0
|
|
ldr r2, [r5, #0x74]
|
|
add r0, #0x8c
|
|
lsl r2, r2, #0x18
|
|
ldr r0, [r0]
|
|
lsr r2, r2, #0x18
|
|
bl sub_020185FC
|
|
mov r1, #0x6a
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
add sp, #0x24
|
|
pop {r4, r5, pc}
|
|
.balign 4, 0
|
|
_02202A48: .word ov17_02203D60
|
|
_02202A4C: .word ov17_02203E88
|
|
thumb_func_end ov17_022029C8
|
|
|
|
thumb_func_start ov17_02202A50
|
|
ov17_02202A50: ; 0x02202A50
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl sub_020186A4
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r4, r0
|
|
beq _02202A80
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl sub_02018674
|
|
str r0, [r5, #0x74]
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl sub_02018680
|
|
add r0, r4, #0
|
|
_02202A80:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov17_02202A50
|
|
|
|
thumb_func_start ov17_02202A84
|
|
ov17_02202A84: ; 0x02202A84
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x28
|
|
add r6, r1, #0
|
|
add r5, r0, #0
|
|
mov r0, #0x14
|
|
add r7, r6, #0
|
|
mul r7, r0
|
|
add r0, r5, #0
|
|
add r0, #0x20
|
|
add r4, r0, r7
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
beq _02202AA8
|
|
ldr r0, [r4, #0x10]
|
|
cmp r0, #0
|
|
beq _02202AA8
|
|
bl Sprite_Delete
|
|
_02202AA8:
|
|
ldrb r0, [r4, #1]
|
|
cmp r0, #0
|
|
bne _02202AC8
|
|
mov r0, #0
|
|
str r0, [r4, #0x10]
|
|
add r0, r6, #3
|
|
lsl r0, r0, #2
|
|
add r1, r5, r0
|
|
mov r0, #0x59
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #2
|
|
bl sub_020249D4
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02202AC8:
|
|
ldr r0, _02202B54 ; =ov17_02203EA8
|
|
add r1, sp, #0
|
|
mov r2, #0x28
|
|
bl MI_CpuCopy8
|
|
add r0, r6, #1
|
|
mov r1, #0x1b
|
|
add r2, r0, #0
|
|
mul r2, r1
|
|
add r1, sp, #0
|
|
strh r2, [r1, #4]
|
|
ldrb r2, [r4, #1]
|
|
cmp r2, #1
|
|
beq _02202AEA
|
|
cmp r2, #2
|
|
beq _02202AF0
|
|
b _02202AF6
|
|
_02202AEA:
|
|
mov r0, #5
|
|
strh r0, [r1, #0xa]
|
|
b _02202AFE
|
|
_02202AF0:
|
|
mov r0, #6
|
|
strh r0, [r1, #0xa]
|
|
b _02202AFE
|
|
_02202AF6:
|
|
str r0, [sp]
|
|
ldrb r0, [r4, #1]
|
|
sub r0, r0, #3
|
|
strh r0, [r1, #0xa]
|
|
_02202AFE:
|
|
mov r1, #0x13
|
|
lsl r1, r1, #4
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
add r2, sp, #0
|
|
bl sub_0200D2B4
|
|
str r0, [r4, #0x10]
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
ldrb r0, [r4, #1]
|
|
cmp r0, #1
|
|
ldr r0, [r4, #0x10]
|
|
bne _02202B32
|
|
mov r1, #0
|
|
bl Set2dSpriteAnimActiveFlag
|
|
add r1, r5, r7
|
|
add r1, #0x2a
|
|
ldrb r1, [r1]
|
|
ldr r0, [r4, #0x10]
|
|
bl sub_020249D4
|
|
b _02202B38
|
|
_02202B32:
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimActiveFlag
|
|
_02202B38:
|
|
add r0, r6, #3
|
|
lsl r0, r0, #2
|
|
add r1, r5, r0
|
|
mov r0, #0x59
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
add r1, r5, r7
|
|
add r1, #0x2a
|
|
ldrb r1, [r1]
|
|
bl sub_020249D4
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02202B54: .word ov17_02203EA8
|
|
thumb_func_end ov17_02202A84
|
|
|
|
thumb_func_start ov17_02202B58
|
|
ov17_02202B58: ; 0x02202B58
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r2, r5, #0
|
|
add r6, r1, #0
|
|
mov r0, #0x14
|
|
add r2, #0x20
|
|
mul r0, r6
|
|
add r4, r2, r0
|
|
ldr r0, [r5, #0x14]
|
|
bl ov16_02201644
|
|
add r0, r5, #0
|
|
bl ov17_0220387C
|
|
add r0, r6, #3
|
|
lsl r0, r0, #2
|
|
add r1, r5, r0
|
|
mov r0, #0x59
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #2
|
|
bl sub_020249D4
|
|
ldrb r0, [r4, #1]
|
|
cmp r0, #1
|
|
bne _02202B94
|
|
ldrb r1, [r4, #0xa]
|
|
ldr r0, [r4, #0x10]
|
|
bl sub_020249D4
|
|
_02202B94:
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov17_02202B58
|
|
|
|
thumb_func_start ov17_02202B98
|
|
ov17_02202B98: ; 0x02202B98
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r0, #0x7c
|
|
ldrb r1, [r0]
|
|
add r6, r5, #0
|
|
mov r0, #0x14
|
|
add r7, r1, #0
|
|
mul r7, r0
|
|
add r6, #0x20
|
|
ldr r0, [r5, #0x14]
|
|
add r4, r6, r7
|
|
bl ov16_02201674
|
|
ldrb r0, [r6, r7]
|
|
bl ov16_022018B4
|
|
add r1, r0, #0
|
|
ldrb r2, [r4, #5]
|
|
ldr r0, [r5, #0xc]
|
|
ldr r3, [r5]
|
|
bl BagAddItem
|
|
add r0, r5, #0
|
|
bl ov17_0220387C
|
|
ldr r0, [r4, #0x10]
|
|
bl Sprite_Delete
|
|
mov r0, #0
|
|
str r0, [r4, #0x10]
|
|
add r0, r5, #0
|
|
add r0, #0x7c
|
|
ldrb r0, [r0]
|
|
add r0, r0, #3
|
|
lsl r0, r0, #2
|
|
add r1, r5, r0
|
|
mov r0, #0x59
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #2
|
|
bl sub_020249D4
|
|
ldr r0, [r5, #0x10]
|
|
mov r1, #0
|
|
bl GameStats_AddSpecial
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov17_02202B98
|
|
|
|
thumb_func_start ov17_02202BF8
|
|
ov17_02202BF8: ; 0x02202BF8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x13
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _02202C0A
|
|
bl sub_0200D034
|
|
_02202C0A:
|
|
bl NNS_GfdDoVramTransfer
|
|
add r4, #0x88
|
|
ldr r0, [r4]
|
|
bl BgConfig_HandleScheduledScrollAndTransferOps
|
|
ldr r3, _02202C24 ; =0x027E0000
|
|
ldr r1, _02202C28 ; =0x00003FF8
|
|
mov r0, #1
|
|
ldr r2, [r3, r1]
|
|
orr r0, r2
|
|
str r0, [r3, r1]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_02202C24: .word 0x027E0000
|
|
_02202C28: .word 0x00003FF8
|
|
thumb_func_end ov17_02202BF8
|
|
|
|
thumb_func_start ov17_02202C2C
|
|
ov17_02202C2C: ; 0x02202C2C
|
|
push {r4, lr}
|
|
sub sp, #0x28
|
|
ldr r4, _02202C48 ; =ov17_02203ED0
|
|
add r3, sp, #0
|
|
mov r2, #5
|
|
_02202C36:
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _02202C36
|
|
add r0, sp, #0
|
|
bl GX_SetBanks
|
|
add sp, #0x28
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_02202C48: .word ov17_02203ED0
|
|
thumb_func_end ov17_02202C2C
|
|
|
|
thumb_func_start ov17_02202C4C
|
|
ov17_02202C4C: ; 0x02202C4C
|
|
push {r4, r5, lr}
|
|
sub sp, #0x9c
|
|
add r4, r0, #0
|
|
bl ov17_02202C2C
|
|
ldr r0, [r4]
|
|
bl BgConfig_Alloc
|
|
add r1, r4, #0
|
|
add r1, #0x88
|
|
add r3, sp, #0x8c
|
|
ldr r5, _02202DB0 ; =ov17_02203D88
|
|
str r0, [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 r2, _02202DB4 ; =0x04000304
|
|
ldr r0, _02202DB8 ; =0xFFFF7FFF
|
|
ldrh r1, [r2]
|
|
ldr r5, _02202DBC ; =ov17_02203E30
|
|
add r3, sp, #0x70
|
|
and r0, r1
|
|
strh r0, [r2]
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
mov r1, #4
|
|
str r0, [r3]
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r1, #4
|
|
bl BgClearTilemapBufferAndCommit
|
|
ldr r5, _02202DC0 ; =ov17_02203DDC
|
|
add r3, sp, #0x54
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
mov r1, #7
|
|
str r0, [r3]
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r1, #7
|
|
bl BgClearTilemapBufferAndCommit
|
|
ldr r5, _02202DC4 ; =ov17_02203DF8
|
|
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, #0
|
|
str r0, [r3]
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
add r3, r1, #0
|
|
bl InitBgFromTemplate
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
bl BgClearTilemapBufferAndCommit
|
|
ldr r5, _02202DC8 ; =ov17_02203E14
|
|
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]
|
|
str r0, [r3]
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r1, #2
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r1, #2
|
|
bl BgClearTilemapBufferAndCommit
|
|
ldr r5, _02202DCC ; =ov17_02203E4C
|
|
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, #3
|
|
str r0, [r3]
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r1, #3
|
|
bl BgClearTilemapBufferAndCommit
|
|
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
|
|
mov r0, #0
|
|
ldr r3, [r4]
|
|
mov r1, #0x20
|
|
add r2, r0, #0
|
|
bl BG_ClearCharDataRange
|
|
ldr r3, [r4]
|
|
mov r0, #2
|
|
mov r1, #0x20
|
|
mov r2, #0
|
|
bl BG_ClearCharDataRange
|
|
ldr r3, [r4]
|
|
mov r0, #3
|
|
mov r1, #0x40
|
|
mov r2, #0
|
|
bl BG_ClearCharDataRange
|
|
add sp, #0x9c
|
|
pop {r4, r5, pc}
|
|
.balign 4, 0
|
|
_02202DB0: .word ov17_02203D88
|
|
_02202DB4: .word 0x04000304
|
|
_02202DB8: .word 0xFFFF7FFF
|
|
_02202DBC: .word ov17_02203E30
|
|
_02202DC0: .word ov17_02203DDC
|
|
_02202DC4: .word ov17_02203DF8
|
|
_02202DC8: .word ov17_02203E14
|
|
_02202DCC: .word ov17_02203E4C
|
|
thumb_func_end ov17_02202C4C
|
|
|
|
thumb_func_start ov17_02202DD0
|
|
ov17_02202DD0: ; 0x02202DD0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r1, #3
|
|
bl FreeBgTilemapBuffer
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r1, #2
|
|
bl FreeBgTilemapBuffer
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
bl FreeBgTilemapBuffer
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r1, #7
|
|
bl FreeBgTilemapBuffer
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r1, #4
|
|
bl FreeBgTilemapBuffer
|
|
add r4, #0x88
|
|
ldr r0, [r4]
|
|
bl FreeToHeap
|
|
ldr r2, _02202E24 ; =0x04000304
|
|
ldrh r1, [r2]
|
|
lsr r0, r2, #0xb
|
|
orr r0, r1
|
|
strh r0, [r2]
|
|
pop {r4, pc}
|
|
nop
|
|
_02202E24: .word 0x04000304
|
|
thumb_func_end ov17_02202DD0
|
|
|
|
thumb_func_start ov17_02202E28
|
|
ov17_02202E28: ; 0x02202E28
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
ldr r1, [r5]
|
|
mov r0, #0xda
|
|
bl NARC_ctor
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
ldr r1, [r5]
|
|
add r3, r2, #0
|
|
str r1, [sp, #4]
|
|
mov r1, #3
|
|
add r4, r0, #0
|
|
bl GfGfxLoader_GXLoadPalFromOpenNarc
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
ldr r0, [r5]
|
|
add r2, r5, #0
|
|
str r0, [sp, #0xc]
|
|
add r2, #0x88
|
|
ldr r2, [r2]
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
mov r3, #3
|
|
bl GfGfxLoader_LoadCharDataFromOpenNarc
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
ldr r0, [r5]
|
|
add r2, r5, #0
|
|
str r0, [sp, #0xc]
|
|
add r2, #0x88
|
|
ldr r2, [r2]
|
|
add r0, r4, #0
|
|
mov r1, #5
|
|
mov r3, #3
|
|
bl GfGfxLoader_LoadScrnDataFromOpenNarc
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
ldr r0, [r5]
|
|
mov r2, #4
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r3, r1, #0
|
|
bl GfGfxLoader_GXLoadPalFromOpenNarc
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
ldr r0, [r5]
|
|
add r2, r5, #0
|
|
str r0, [sp, #0xc]
|
|
add r2, #0x88
|
|
ldr r2, [r2]
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
mov r3, #7
|
|
bl GfGfxLoader_LoadCharDataFromOpenNarc
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
ldr r0, [r5]
|
|
add r2, r5, #0
|
|
str r0, [sp, #0xc]
|
|
add r2, #0x88
|
|
ldr r2, [r2]
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
mov r3, #7
|
|
bl GfGfxLoader_LoadScrnDataFromOpenNarc
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
str r4, [r5, r0]
|
|
add r0, r5, #0
|
|
add r0, #0x79
|
|
ldrb r0, [r0]
|
|
mov r1, #0
|
|
mov r2, #1
|
|
str r0, [sp]
|
|
ldr r0, [r5]
|
|
mov r3, #0xd
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl LoadUserFrameGfx2
|
|
mov r1, #6
|
|
ldr r2, [r5]
|
|
mov r0, #0
|
|
lsl r1, r1, #6
|
|
bl LoadFontPal1
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov17_02202E28
|
|
|
|
thumb_func_start ov17_02202EFC
|
|
ov17_02202EFC: ; 0x02202EFC
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldr r3, _02202F08 ; =NARC_dtor
|
|
ldr r0, [r0, r1]
|
|
bx r3
|
|
nop
|
|
_02202F08: .word NARC_dtor
|
|
thumb_func_end ov17_02202EFC
|
|
|
|
thumb_func_start ov17_02202F0C
|
|
ov17_02202F0C: ; 0x02202F0C
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
ldr r1, [r6]
|
|
mov r0, #4
|
|
bl FontID_Alloc
|
|
ldr r3, [r6]
|
|
mov r0, #0
|
|
mov r1, #0x1b
|
|
mov r2, #0xf8
|
|
bl NewMsgDataFromNarc
|
|
add r1, r6, #0
|
|
add r1, #0x9c
|
|
str r0, [r1]
|
|
mov r0, #0x10
|
|
ldr r2, [r6]
|
|
add r1, r0, #0
|
|
bl MessageFormat_new_custom
|
|
add r1, r6, #0
|
|
add r1, #0xa0
|
|
str r0, [r1]
|
|
ldr r1, [r6]
|
|
mov r0, #0x80
|
|
bl String_New
|
|
add r1, r6, #0
|
|
add r1, #0xa4
|
|
str r0, [r1]
|
|
add r0, r6, #0
|
|
add r0, #0x9c
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
bl NewString_ReadMsgData
|
|
add r1, r6, #0
|
|
add r1, #0xa8
|
|
str r0, [r1]
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
_02202F5E:
|
|
add r0, r6, #0
|
|
add r0, #0x9c
|
|
ldr r0, [r0]
|
|
add r1, r4, #6
|
|
bl NewString_ReadMsgData
|
|
add r1, r5, #0
|
|
add r1, #0xb0
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
str r0, [r1]
|
|
cmp r4, #0x11
|
|
blt _02202F5E
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov17_02202F0C
|
|
|
|
thumb_func_start ov17_02202F7C
|
|
ov17_02202F7C: ; 0x02202F7C
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
_02202F84:
|
|
add r0, r5, #0
|
|
add r0, #0xb0
|
|
ldr r0, [r0]
|
|
bl String_dtor
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #0x11
|
|
blt _02202F84
|
|
add r0, r6, #0
|
|
add r0, #0xa8
|
|
ldr r0, [r0]
|
|
bl String_dtor
|
|
add r0, r6, #0
|
|
add r0, #0xa4
|
|
ldr r0, [r0]
|
|
bl String_dtor
|
|
add r0, r6, #0
|
|
add r0, #0xa0
|
|
ldr r0, [r0]
|
|
bl MessageFormat_delete
|
|
add r6, #0x9c
|
|
ldr r0, [r6]
|
|
bl DestroyMsgData
|
|
mov r0, #4
|
|
bl FontID_Release
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov17_02202F7C
|
|
|
|
thumb_func_start ov17_02202FC4
|
|
ov17_02202FC4: ; 0x02202FC4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
add r5, r7, #0
|
|
ldr r4, _02203000 ; =ov17_02203DC4
|
|
mov r6, #0
|
|
add r5, #0xfc
|
|
_02202FD0:
|
|
add r0, r7, #0
|
|
add r0, #0x88
|
|
ldr r0, [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, #3
|
|
blt _02202FD0
|
|
ldr r0, [r7]
|
|
bl sub_0201660C
|
|
mov r1, #0x4b
|
|
lsl r1, r1, #2
|
|
str r0, [r7, r1]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02203000: .word ov17_02203DC4
|
|
thumb_func_end ov17_02202FC4
|
|
|
|
thumb_func_start ov17_02203004
|
|
ov17_02203004: ; 0x02203004
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
add r5, r6, #0
|
|
mov r4, #0
|
|
add r5, #0xfc
|
|
_0220300E:
|
|
add r0, r5, #0
|
|
bl ClearWindowTilemapAndCopyToVram
|
|
add r0, r5, #0
|
|
bl RemoveWindow
|
|
add r4, r4, #1
|
|
add r5, #0x10
|
|
cmp r4, #3
|
|
blt _0220300E
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
bl sub_02016624
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov17_02203004
|
|
|
|
thumb_func_start ov17_02203030
|
|
ov17_02203030: ; 0x02203030
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
mov r0, #0
|
|
ldr r5, _02203080 ; =ov17_02203E88
|
|
str r0, [sp]
|
|
add r6, r7, #0
|
|
_0220303C:
|
|
ldr r0, [r5]
|
|
ldr r1, [r7]
|
|
bl ListMenuItems_ctor
|
|
mov r1, #0x66
|
|
lsl r1, r1, #2
|
|
str r0, [r6, r1]
|
|
ldr r0, [r5]
|
|
mov r4, #0
|
|
cmp r0, #0
|
|
ble _02203070
|
|
_02203052:
|
|
ldr r2, [r5, #4]
|
|
mov r0, #0x66
|
|
add r1, r7, #0
|
|
lsl r0, r0, #2
|
|
add r1, #0x9c
|
|
ldrb r2, [r2, r4]
|
|
ldr r0, [r6, r0]
|
|
ldr r1, [r1]
|
|
add r3, r4, #0
|
|
bl ListMenuItems_AppendFromMsgData
|
|
ldr r0, [r5]
|
|
add r4, r4, #1
|
|
cmp r4, r0
|
|
blt _02203052
|
|
_02203070:
|
|
ldr r0, [sp]
|
|
add r5, #8
|
|
add r0, r0, #1
|
|
add r6, r6, #4
|
|
str r0, [sp]
|
|
cmp r0, #4
|
|
blt _0220303C
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_02203080: .word ov17_02203E88
|
|
thumb_func_end ov17_02203030
|
|
|
|
thumb_func_start ov17_02203084
|
|
ov17_02203084: ; 0x02203084
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r4, #0
|
|
mov r7, #0x66
|
|
add r5, r0, #0
|
|
add r6, r4, #0
|
|
lsl r7, r7, #2
|
|
_02203090:
|
|
mov r0, #0x66
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl ListMenuItems_dtor
|
|
str r6, [r5, r7]
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _02203090
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov17_02203084
|
|
|
|
thumb_func_start ov17_022030A8
|
|
ov17_022030A8: ; 0x022030A8
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x28
|
|
add r4, r0, #0
|
|
ldr r1, [r4]
|
|
mov r0, #0x20
|
|
bl GF_CreateVramTransferManager
|
|
ldr r0, [r4]
|
|
bl sub_0200CF18
|
|
mov r1, #0x13
|
|
lsl r1, r1, #4
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
ldr r1, _0220320C ; =ov17_02203E68
|
|
ldr r2, _02203210 ; =ov17_02203D98
|
|
mov r3, #8
|
|
bl sub_0200CF70
|
|
ldr r0, [r4]
|
|
bl sub_0200B2E0
|
|
ldr r0, [r4]
|
|
bl sub_0200B2E8
|
|
mov r0, #0x13
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl sub_0200CF38
|
|
mov r1, #0x4d
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
sub r0, r1, #4
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r4, r1]
|
|
mov r2, #0x19
|
|
bl sub_0200CFF4
|
|
mov r3, #0
|
|
mov r1, #0x13
|
|
str r3, [sp]
|
|
lsl r1, r1, #4
|
|
ldr r0, [r4, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
ldr r2, _02203214 ; =ov17_02203D78
|
|
bl sub_0200D2A4
|
|
ldr r1, [r4]
|
|
mov r0, #0x12
|
|
bl NARC_ctor
|
|
mov r2, #0x19
|
|
lsl r2, r2, #4
|
|
str r0, [r4, r2]
|
|
ldr r5, _02203218 ; =ov17_02203DAC
|
|
add r3, sp, #0x10
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
sub r2, #0x60
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r4, r2]
|
|
bl sub_0200CF38
|
|
mov r1, #0x4e
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
add r0, r1, #0
|
|
sub r0, #8
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r4, r1]
|
|
add r2, sp, #0x10
|
|
bl sub_0200D3F8
|
|
mov r0, #0x4d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl sub_0200E2B0
|
|
add r1, r0, #0
|
|
mov r0, #0x4e
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl sub_0200E2B4
|
|
mov r0, #0x95
|
|
mov r1, #1
|
|
bl GetItemIndexMapping
|
|
add r3, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
mov r2, #0x13
|
|
str r0, [sp, #4]
|
|
mov r0, #0xfa
|
|
lsl r2, r2, #4
|
|
lsl r0, r0, #4
|
|
add r1, r2, #0
|
|
str r0, [sp, #8]
|
|
ldr r0, [r4, r2]
|
|
add r1, #8
|
|
add r2, #0x60
|
|
ldr r1, [r4, r1]
|
|
ldr r2, [r4, r2]
|
|
bl sub_0200D504
|
|
mov r0, #0x95
|
|
mov r1, #2
|
|
bl GetItemIndexMapping
|
|
add r3, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r2, #0x13
|
|
str r0, [sp, #8]
|
|
mov r0, #0xfa
|
|
lsl r2, r2, #4
|
|
lsl r0, r0, #4
|
|
add r1, r2, #0
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r4, r2]
|
|
add r1, #8
|
|
add r2, #0x60
|
|
ldr r1, [r4, r1]
|
|
ldr r2, [r4, r2]
|
|
bl sub_0200D5D4
|
|
bl GetItemIconCell
|
|
add r3, r0, #0
|
|
mov r0, #0
|
|
mov r2, #0x13
|
|
str r0, [sp]
|
|
mov r0, #0xfa
|
|
lsl r2, r2, #4
|
|
lsl r0, r0, #4
|
|
add r1, r2, #0
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4, r2]
|
|
add r1, #8
|
|
add r2, #0x60
|
|
ldr r1, [r4, r1]
|
|
ldr r2, [r4, r2]
|
|
bl sub_0200D6EC
|
|
bl GetItemIconAnim
|
|
add r3, r0, #0
|
|
mov r0, #0
|
|
mov r2, #0x13
|
|
str r0, [sp]
|
|
mov r0, #0xfa
|
|
lsl r2, r2, #4
|
|
lsl r0, r0, #4
|
|
add r1, r2, #0
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4, r2]
|
|
add r1, #8
|
|
add r2, #0x60
|
|
ldr r1, [r4, r1]
|
|
ldr r2, [r4, r2]
|
|
bl sub_0200D71C
|
|
ldr r0, [r4]
|
|
mov r1, #0
|
|
bl sub_02018424
|
|
add r4, #0x8c
|
|
str r0, [r4]
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0220320C: .word ov17_02203E68
|
|
_02203210: .word ov17_02203D98
|
|
_02203214: .word ov17_02203D78
|
|
_02203218: .word ov17_02203DAC
|
|
thumb_func_end ov17_022030A8
|
|
|
|
thumb_func_start ov17_0220321C
|
|
ov17_0220321C: ; 0x0220321C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0x8c
|
|
ldr r0, [r0]
|
|
bl sub_02018474
|
|
mov r0, #0x19
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl NARC_dtor
|
|
mov r1, #0x13
|
|
lsl r1, r1, #4
|
|
ldr r0, [r4, r1]
|
|
add r1, #8
|
|
ldr r1, [r4, r1]
|
|
bl sub_0200D998
|
|
mov r1, #0x13
|
|
lsl r1, r1, #4
|
|
ldr r0, [r4, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
bl sub_0200D0E4
|
|
mov r1, #0x4e
|
|
lsl r1, r1, #2
|
|
mov r2, #0
|
|
str r2, [r4, r1]
|
|
sub r0, r1, #4
|
|
sub r1, #8
|
|
str r2, [r4, r0]
|
|
ldr r0, [r4, r1]
|
|
bl sub_0200D108
|
|
mov r0, #0x13
|
|
mov r1, #0
|
|
lsl r0, r0, #4
|
|
str r1, [r4, r0]
|
|
bl GF_DestroyVramTransferManager
|
|
ldr r0, [r4]
|
|
bl sub_0200B2E0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov17_0220321C
|
|
|
|
thumb_func_start ov17_02203278
|
|
ov17_02203278: ; 0x02203278
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov17_022030A8
|
|
add r0, r4, #0
|
|
bl ov17_022032AC
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl GX_EngineAToggleLayers
|
|
pop {r4, pc}
|
|
thumb_func_end ov17_02203278
|
|
|
|
thumb_func_start ov17_02203290
|
|
ov17_02203290: ; 0x02203290
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x10
|
|
mov r1, #0
|
|
bl GX_EngineAToggleLayers
|
|
add r0, r4, #0
|
|
bl ov17_022033E4
|
|
add r0, r4, #0
|
|
bl ov17_0220321C
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov17_02203290
|
|
|
|
thumb_func_start ov17_022032AC
|
|
ov17_022032AC: ; 0x022032AC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r4, r0, #0
|
|
ldr r6, _022033D4 ; =ov17_02203EF8
|
|
mov r7, #0
|
|
add r5, r4, #0
|
|
_022032B6:
|
|
mov r0, #0x13
|
|
mov r1, #0x4d
|
|
lsl r0, r0, #4
|
|
lsl r1, r1, #2
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r4, r1]
|
|
add r2, r6, #0
|
|
bl sub_0200D2B4
|
|
mov r1, #0x59
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
add r0, r1, #0
|
|
ldr r0, [r5, r0]
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
mov r0, #0x59
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimActiveFlag
|
|
add r7, r7, #1
|
|
add r6, #0x28
|
|
add r5, r5, #4
|
|
cmp r7, #1
|
|
ble _022032B6
|
|
mov r1, #0x13
|
|
lsl r1, r1, #4
|
|
ldr r0, [r4, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
ldr r2, _022033D8 ; =ov17_02203F48
|
|
bl sub_0200D2B4
|
|
mov r1, #0x5b
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
mov r0, #0x5b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl Set2dSpriteAnimActiveFlag
|
|
mov r6, #0
|
|
add r7, r6, #0
|
|
str r4, [sp]
|
|
_0220331E:
|
|
add r0, r6, #3
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x16
|
|
add r5, r4, r0
|
|
mov r0, #0x13
|
|
mov r1, #0x4d
|
|
lsl r0, r0, #4
|
|
lsl r1, r1, #2
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r4, r1]
|
|
ldr r2, _022033DC ; =ov17_02203F70
|
|
bl sub_0200D2B4
|
|
mov r1, #0x59
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
add r0, r1, #0
|
|
add r1, r7, #0
|
|
add r1, #0x1b
|
|
lsl r1, r1, #0x10
|
|
ldr r0, [r5, r0]
|
|
asr r1, r1, #0x10
|
|
mov r2, #0x63
|
|
bl sub_0200DD88
|
|
ldr r1, [sp]
|
|
mov r0, #0x59
|
|
add r1, #0x2a
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r1]
|
|
ldr r0, [r5, r0]
|
|
bl sub_020249D4
|
|
mov r0, #0x59
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
mov r0, #0x59
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl Set2dSpriteAnimActiveFlag
|
|
add r0, r6, #7
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x16
|
|
add r5, r4, r0
|
|
mov r0, #0x13
|
|
mov r1, #0x4d
|
|
lsl r0, r0, #4
|
|
lsl r1, r1, #2
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r4, r1]
|
|
ldr r2, _022033E0 ; =ov17_02203F98
|
|
bl sub_0200D2B4
|
|
mov r1, #0x59
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
add r0, r1, #0
|
|
add r1, r7, #0
|
|
add r1, #0x1b
|
|
lsl r1, r1, #0x10
|
|
ldr r0, [r5, r0]
|
|
asr r1, r1, #0x10
|
|
mov r2, #0x58
|
|
bl sub_0200DD88
|
|
mov r0, #0x59
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
mov r0, #0x59
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimActiveFlag
|
|
ldr r0, [sp]
|
|
add r6, r6, #1
|
|
add r0, #0x14
|
|
add r7, #0x1b
|
|
str r0, [sp]
|
|
cmp r6, #4
|
|
blt _0220331E
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_022033D4: .word ov17_02203EF8
|
|
_022033D8: .word ov17_02203F48
|
|
_022033DC: .word ov17_02203F70
|
|
_022033E0: .word ov17_02203F98
|
|
thumb_func_end ov17_022032AC
|
|
|
|
thumb_func_start ov17_022033E4
|
|
ov17_022033E4: ; 0x022033E4
|
|
push {r4, r5, r6, lr}
|
|
mov r6, #0x59
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
lsl r6, r6, #2
|
|
_022033EE:
|
|
ldr r0, [r5, r6]
|
|
cmp r0, #0
|
|
beq _022033F8
|
|
bl Sprite_Delete
|
|
_022033F8:
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #0xb
|
|
blt _022033EE
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov17_022033E4
|
|
|
|
thumb_func_start ov17_02203404
|
|
ov17_02203404: ; 0x02203404
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r0, #0x14
|
|
mul r0, r6
|
|
add r0, r5, r0
|
|
add r0, #0x20
|
|
ldrb r4, [r0]
|
|
cmp r4, #0
|
|
beq _02203420
|
|
sub r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
_02203420:
|
|
mov r0, #0
|
|
mov r2, #0x13
|
|
str r0, [sp]
|
|
add r0, r6, #1
|
|
lsl r2, r2, #4
|
|
str r0, [sp, #4]
|
|
add r1, r2, #4
|
|
ldr r0, [r5, r2]
|
|
add r2, #0x64
|
|
add r3, r4, #0
|
|
ldr r1, [r5, r1]
|
|
ldr r2, [r5, r2]
|
|
add r3, #0x4c
|
|
bl sub_0200E2B8
|
|
mov r0, #0
|
|
mov r2, #0x13
|
|
str r0, [sp]
|
|
add r0, r6, #1
|
|
lsl r2, r2, #4
|
|
str r0, [sp, #4]
|
|
add r1, r2, #4
|
|
ldr r0, [r5, r2]
|
|
add r2, #0x64
|
|
add r4, #0xc
|
|
ldr r1, [r5, r1]
|
|
ldr r2, [r5, r2]
|
|
add r3, r4, #0
|
|
bl sub_0200E2EC
|
|
add sp, #8
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov17_02203404
|
|
|
|
thumb_func_start ov17_02203460
|
|
ov17_02203460: ; 0x02203460
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
mov r0, #0x14
|
|
mul r0, r1
|
|
add r0, r5, r0
|
|
add r0, #0x20
|
|
ldrb r0, [r0]
|
|
bl ov16_022018B4
|
|
mov r1, #1
|
|
add r4, r0, #0
|
|
bl GetItemIndexMapping
|
|
add r3, r0, #0
|
|
mov r0, #0
|
|
mov r2, #0x13
|
|
str r0, [sp]
|
|
mov r0, #0xfa
|
|
lsl r2, r2, #4
|
|
lsl r0, r0, #4
|
|
add r1, r2, #0
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, r2]
|
|
add r1, #8
|
|
add r2, #0x60
|
|
ldr r1, [r5, r1]
|
|
ldr r2, [r5, r2]
|
|
bl sub_0200E2B8
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
bl GetItemIndexMapping
|
|
add r3, r0, #0
|
|
mov r0, #0
|
|
mov r2, #0x13
|
|
str r0, [sp]
|
|
mov r0, #0xfa
|
|
lsl r2, r2, #4
|
|
lsl r0, r0, #4
|
|
add r1, r2, #0
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, r2]
|
|
add r1, #8
|
|
add r2, #0x60
|
|
ldr r1, [r5, r1]
|
|
ldr r2, [r5, r2]
|
|
bl sub_0200E2EC
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov17_02203460
|
|
|
|
thumb_func_start ov17_022034C8
|
|
ov17_022034C8: ; 0x022034C8
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x34
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
add r0, sp, #0
|
|
mov r1, #0
|
|
mov r2, #0x34
|
|
bl MI_CpuFill8
|
|
add r0, sp, #0
|
|
strh r4, [r0]
|
|
strh r6, [r0, #2]
|
|
mov r1, #0
|
|
strh r1, [r0, #4]
|
|
strh r1, [r0, #6]
|
|
mov r0, #2
|
|
str r0, [sp, #0x2c]
|
|
mov r0, #0xfa
|
|
lsl r0, r0, #4
|
|
str r1, [sp, #0xc]
|
|
str r1, [sp, #0x30]
|
|
mov r1, #1
|
|
str r1, [sp, #0x10]
|
|
str r0, [sp, #0x14]
|
|
str r0, [sp, #0x18]
|
|
str r0, [sp, #0x1c]
|
|
str r0, [sp, #0x20]
|
|
sub r0, r1, #2
|
|
mov r1, #0x13
|
|
lsl r1, r1, #4
|
|
str r0, [sp, #0x24]
|
|
str r0, [sp, #0x28]
|
|
ldr r0, [r5, r1]
|
|
add r1, #8
|
|
ldr r1, [r5, r1]
|
|
add r2, sp, #0
|
|
bl sub_0200D734
|
|
add sp, #0x34
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov17_022034C8
|
|
|
|
thumb_func_start ov17_0220351C
|
|
ov17_0220351C: ; 0x0220351C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5]
|
|
mov r1, #0xc
|
|
bl AllocFromHeap
|
|
mov r1, #0
|
|
mov r2, #0xc
|
|
add r4, r0, #0
|
|
bl MI_CpuFill8
|
|
add r0, r5, #0
|
|
str r5, [r4]
|
|
add r0, #0x80
|
|
ldrb r0, [r0]
|
|
strb r0, [r4, #6]
|
|
add r0, r5, #0
|
|
add r0, #0x81
|
|
ldrb r0, [r0]
|
|
strb r0, [r4, #7]
|
|
add r0, r5, #0
|
|
add r0, #0x81
|
|
ldrb r1, [r0]
|
|
add r0, r5, #0
|
|
add r0, #0x80
|
|
ldrb r0, [r0]
|
|
sub r0, r1, r0
|
|
lsl r0, r0, #0x18
|
|
asr r1, r0, #0x18
|
|
cmp r1, #0
|
|
ble _02203560
|
|
mov r0, #1
|
|
strb r0, [r4, #9]
|
|
b _0220356C
|
|
_02203560:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
strb r0, [r4, #9]
|
|
neg r0, r1
|
|
lsl r0, r0, #0x18
|
|
asr r1, r0, #0x18
|
|
_0220356C:
|
|
mov r0, #0x1b
|
|
mul r0, r1
|
|
lsl r0, r0, #0x18
|
|
asr r1, r0, #0x18
|
|
asr r0, r1, #1
|
|
lsr r0, r0, #0x1e
|
|
add r0, r1, r0
|
|
asr r0, r0, #2
|
|
strb r0, [r4, #8]
|
|
add r0, r5, #0
|
|
add r0, #0x80
|
|
ldrb r0, [r0]
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
strb r0, [r4, #0xa]
|
|
ldr r0, _022035A0 ; =ov17_022035A4
|
|
bl CreateSysTask
|
|
add r0, r5, #0
|
|
add r0, #0x7d
|
|
ldrb r0, [r0]
|
|
add r5, #0x7d
|
|
add r0, r0, #1
|
|
strb r0, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_022035A0: .word ov17_022035A4
|
|
thumb_func_end ov17_0220351C
|
|
|
|
thumb_func_start ov17_022035A4
|
|
ov17_022035A4: ; 0x022035A4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r1, #0
|
|
mov r1, #9
|
|
ldrsb r1, [r5, r1]
|
|
add r7, r0, #0
|
|
mov r0, #0x5b
|
|
lsl r1, r1, #0x12
|
|
ldr r4, [r5]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
asr r1, r1, #0x10
|
|
mov r2, #0
|
|
bl sub_0200DEA0
|
|
mov r0, #0x5b
|
|
lsl r0, r0, #2
|
|
add r1, sp, #0
|
|
ldr r0, [r4, r0]
|
|
add r1, #2
|
|
add r2, sp, #0
|
|
bl sub_0200DE00
|
|
add r1, sp, #0
|
|
mov r0, #2
|
|
ldrsh r0, [r1, r0]
|
|
mov r1, #0x1b
|
|
sub r0, #0x1f
|
|
bl _s32_div_f
|
|
lsl r0, r0, #0x18
|
|
lsr r6, r0, #0x18
|
|
ldrb r0, [r5, #0xa]
|
|
cmp r6, r0
|
|
beq _022035F8
|
|
ldrb r0, [r5, #7]
|
|
cmp r6, r0
|
|
beq _022035F8
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
bl ov17_02202B58
|
|
strb r6, [r5, #0xa]
|
|
_022035F8:
|
|
ldrb r0, [r5, #8]
|
|
sub r0, r0, #1
|
|
strb r0, [r5, #8]
|
|
ldrb r0, [r5, #8]
|
|
cmp r0, #0
|
|
bne _02203634
|
|
ldrb r2, [r5, #7]
|
|
mov r1, #0x1b
|
|
mov r0, #0x5b
|
|
mul r1, r2
|
|
lsl r0, r0, #2
|
|
add r1, #0x1f
|
|
lsl r1, r1, #0x10
|
|
ldr r0, [r4, r0]
|
|
asr r1, r1, #0x10
|
|
mov r2, #0x38
|
|
bl sub_0200DD88
|
|
add r0, r4, #0
|
|
add r0, #0x7d
|
|
ldrb r0, [r0]
|
|
add r4, #0x7d
|
|
sub r0, r0, #1
|
|
strb r0, [r4]
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add r0, r7, #0
|
|
bl DestroySysTask
|
|
_02203634:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov17_022035A4
|
|
|
|
thumb_func_start ov17_02203638
|
|
ov17_02203638: ; 0x02203638
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5]
|
|
mov r1, #0xc
|
|
bl AllocFromHeap
|
|
mov r1, #0
|
|
mov r2, #0xc
|
|
add r4, r0, #0
|
|
bl MI_CpuFill8
|
|
add r0, r5, #0
|
|
str r5, [r4]
|
|
add r0, #0x7c
|
|
ldrb r0, [r0]
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
strb r0, [r4, #6]
|
|
ldr r0, _02203670 ; =ov17_02203674
|
|
bl CreateSysTask
|
|
add r0, r5, #0
|
|
add r0, #0x7d
|
|
ldrb r0, [r0]
|
|
add r5, #0x7d
|
|
add r0, r0, #1
|
|
strb r0, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_02203670: .word ov17_02203674
|
|
thumb_func_end ov17_02203638
|
|
|
|
thumb_func_start ov17_02203674
|
|
ov17_02203674: ; 0x02203674
|
|
push {r4, r5, r6, lr}
|
|
add r5, r1, #0
|
|
add r6, r0, #0
|
|
ldrb r0, [r5, #4]
|
|
ldr r4, [r5]
|
|
cmp r0, #0
|
|
beq _0220368C
|
|
cmp r0, #1
|
|
beq _022036BA
|
|
cmp r0, #2
|
|
beq _022036D6
|
|
pop {r4, r5, r6, pc}
|
|
_0220368C:
|
|
add r0, r4, #0
|
|
add r4, #0x7e
|
|
ldrb r3, [r4]
|
|
ldrb r2, [r5, #6]
|
|
mov r1, #0x1b
|
|
add r3, r3, #2
|
|
mul r1, r2
|
|
add r1, #0x23
|
|
lsl r1, r1, #0x10
|
|
lsl r3, r3, #0x18
|
|
asr r1, r1, #0x10
|
|
mov r2, #0x50
|
|
lsr r3, r3, #0x18
|
|
bl ov17_022034C8
|
|
str r0, [r5, #8]
|
|
ldr r0, _022036F8 ; =0x000005DD
|
|
bl PlaySE
|
|
ldrb r0, [r5, #4]
|
|
add r0, r0, #1
|
|
strb r0, [r5, #4]
|
|
pop {r4, r5, r6, pc}
|
|
_022036BA:
|
|
mov r1, #2
|
|
ldr r0, [r5, #8]
|
|
sub r2, r1, #4
|
|
bl sub_0200DED0
|
|
ldrb r1, [r5, #5]
|
|
add r0, r1, #1
|
|
strb r0, [r5, #5]
|
|
cmp r1, #8
|
|
blo _022036F4
|
|
ldrb r0, [r5, #4]
|
|
add r0, r0, #1
|
|
strb r0, [r5, #4]
|
|
pop {r4, r5, r6, pc}
|
|
_022036D6:
|
|
ldr r0, [r5, #8]
|
|
bl sub_0200D9DC
|
|
add r0, r4, #0
|
|
add r0, #0x7d
|
|
ldrb r0, [r0]
|
|
add r4, #0x7d
|
|
sub r0, r0, #1
|
|
strb r0, [r4]
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
_022036F4:
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_022036F8: .word 0x000005DD
|
|
thumb_func_end ov17_02203674
|
|
|
|
thumb_func_start ov17_022036FC
|
|
ov17_022036FC: ; 0x022036FC
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
add r5, r1, #0
|
|
add r1, r4, #0
|
|
mov r0, #0x14
|
|
add r1, #0x20
|
|
mul r0, r2
|
|
add r6, r1, r0
|
|
cmp r5, #0x10
|
|
bhi _02203794
|
|
add r0, r5, r5
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0220371E: ; jump table
|
|
.short _02203794 - _0220371E - 2 ; case 0
|
|
.short _02203794 - _0220371E - 2 ; case 1
|
|
.short _02203794 - _0220371E - 2 ; case 2
|
|
.short _02203794 - _0220371E - 2 ; case 3
|
|
.short _02203794 - _0220371E - 2 ; case 4
|
|
.short _02203740 - _0220371E - 2 ; case 5
|
|
.short _0220376C - _0220371E - 2 ; case 6
|
|
.short _0220376C - _0220371E - 2 ; case 7
|
|
.short _0220376C - _0220371E - 2 ; case 8
|
|
.short _0220376C - _0220371E - 2 ; case 9
|
|
.short _02203756 - _0220371E - 2 ; case 10
|
|
.short _02203740 - _0220371E - 2 ; case 11
|
|
.short _0220376C - _0220371E - 2 ; case 12
|
|
.short _02203794 - _0220371E - 2 ; case 13
|
|
.short _02203756 - _0220371E - 2 ; case 14
|
|
.short _0220376C - _0220371E - 2 ; case 15
|
|
.short _0220376C - _0220371E - 2 ; case 16
|
|
_02203740:
|
|
ldrb r0, [r6, #4]
|
|
bl ov16_022018D4
|
|
add r2, r0, #0
|
|
add r0, r4, #0
|
|
add r0, #0xa0
|
|
ldr r0, [r0]
|
|
mov r1, #2
|
|
bl BufferItemName
|
|
b _022037AA
|
|
_02203756:
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r0, #0xa0
|
|
ldrb r2, [r6, #5]
|
|
ldr r0, [r0]
|
|
mov r1, #1
|
|
mov r3, #2
|
|
bl BufferIntegerAsString
|
|
_0220376C:
|
|
ldrb r0, [r6]
|
|
ldr r1, [r4]
|
|
bl GetNutName
|
|
mov r1, #0
|
|
add r6, r0, #0
|
|
str r1, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r0, #0xa0
|
|
ldr r0, [r0]
|
|
add r2, r6, #0
|
|
add r3, r1, #0
|
|
bl BufferString
|
|
add r0, r6, #0
|
|
bl String_dtor
|
|
b _022037AA
|
|
_02203794:
|
|
lsl r1, r5, #2
|
|
add r0, r4, #0
|
|
add r1, r4, r1
|
|
add r0, #0xa4
|
|
add r1, #0xb0
|
|
ldr r0, [r0]
|
|
ldr r1, [r1]
|
|
bl StringCopy
|
|
add sp, #8
|
|
pop {r4, r5, r6, pc}
|
|
_022037AA:
|
|
lsl r2, r5, #2
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r2, r4, r2
|
|
add r0, #0xa0
|
|
add r1, #0xa4
|
|
add r2, #0xb0
|
|
ldr r0, [r0]
|
|
ldr r1, [r1]
|
|
ldr r2, [r2]
|
|
bl StringExpandPlaceholders
|
|
add sp, #8
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov17_022036FC
|
|
|
|
thumb_func_start ov17_022037C8
|
|
ov17_022037C8: ; 0x022037C8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x48
|
|
add r4, r0, #0
|
|
add r7, r1, #0
|
|
add r0, sp, #0x38
|
|
add r1, sp, #0x1c
|
|
bl GF_RTC_CopyDateTime
|
|
add r0, sp, #0x38
|
|
add r1, sp, #0x1c
|
|
bl RTC_ConvertDateTimeToSecond
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
ldr r0, [r4, #0x18]
|
|
add r1, sp, #0x28
|
|
add r2, sp, #0x10
|
|
bl ov16_02201820
|
|
add r0, sp, #0x28
|
|
add r1, sp, #0x10
|
|
bl RTC_ConvertDateTimeToSecond
|
|
sub r2, r5, r0
|
|
mov ip, r6
|
|
mov r2, ip
|
|
sbc r2, r1
|
|
bge _02203828
|
|
add r2, sp, #0x1c
|
|
ldmia r2!, {r0, r1}
|
|
add r3, sp, #4
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r2]
|
|
mov r5, sp
|
|
sub r5, #0xc
|
|
str r0, [r3]
|
|
add r3, sp, #0x38
|
|
add r2, r5, #0
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r4, #0x18]
|
|
ldmia r5!, {r1, r2, r3}
|
|
bl ov16_022017FC
|
|
add sp, #0x48
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02203828:
|
|
sub r0, r5, r0
|
|
sbc r6, r1
|
|
add r1, r6, #0
|
|
mov r2, #0x3c
|
|
mov r3, #0
|
|
bl _ll_sdiv
|
|
add r2, r0, #0
|
|
beq _02203876
|
|
ldr r0, [r4, #0x14]
|
|
ldr r1, [r4, #0x1c]
|
|
bl ov16_02201760
|
|
add r0, r4, #0
|
|
bl ov17_0220387C
|
|
add r2, sp, #0x1c
|
|
mov r5, sp
|
|
ldmia r2!, {r0, r1}
|
|
add r3, sp, #4
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r2]
|
|
sub r5, #0xc
|
|
str r0, [r3]
|
|
add r3, sp, #0x38
|
|
add r2, r5, #0
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r4, #0x18]
|
|
ldmia r5!, {r1, r2, r3}
|
|
bl ov16_022017FC
|
|
cmp r7, #0
|
|
beq _02203876
|
|
add r0, r4, #0
|
|
bl ov17_02203928
|
|
_02203876:
|
|
add sp, #0x48
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov17_022037C8
|
|
|
|
thumb_func_start ov17_0220387C
|
|
ov17_0220387C: ; 0x0220387C
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
_02203884:
|
|
add r0, r5, #0
|
|
add r0, #0x20
|
|
ldrb r1, [r0]
|
|
add r0, r5, #0
|
|
add r0, #0x2b
|
|
strb r1, [r0]
|
|
add r0, r5, #0
|
|
add r0, #0x21
|
|
ldrb r1, [r0]
|
|
add r0, r5, #0
|
|
add r0, #0x2c
|
|
strb r1, [r0]
|
|
add r0, r5, #0
|
|
add r0, #0x2a
|
|
ldrb r1, [r0]
|
|
add r0, r5, #0
|
|
add r0, #0x2d
|
|
strb r1, [r0]
|
|
ldr r0, [r6, #0x14]
|
|
add r1, r4, #0
|
|
bl ov16_022015BC
|
|
add r1, r5, #0
|
|
add r1, #0x20
|
|
strb r0, [r1]
|
|
ldr r0, [r6, #0x14]
|
|
add r1, r4, #0
|
|
bl ov16_022015B0
|
|
add r1, r5, #0
|
|
add r1, #0x21
|
|
strb r0, [r1]
|
|
ldr r0, [r6, #0x14]
|
|
add r1, r4, #0
|
|
bl ov16_022015EC
|
|
add r1, r5, #0
|
|
add r1, #0x22
|
|
strb r0, [r1]
|
|
ldr r0, [r6, #0x14]
|
|
add r1, r4, #0
|
|
bl ov16_022015E0
|
|
add r1, r5, #0
|
|
add r1, #0x23
|
|
strb r0, [r1]
|
|
ldr r0, [r6, #0x14]
|
|
add r1, r4, #0
|
|
bl ov16_02201650
|
|
add r1, r5, #0
|
|
add r1, #0x24
|
|
strb r0, [r1]
|
|
ldr r0, [r6, #0x14]
|
|
add r1, r4, #0
|
|
bl ov16_02201668
|
|
add r1, r5, #0
|
|
add r1, #0x25
|
|
strb r0, [r1]
|
|
ldr r0, [r6, #0x14]
|
|
add r1, r4, #0
|
|
bl ov16_022015F8
|
|
strh r0, [r5, #0x26]
|
|
ldr r0, [r6, #0x14]
|
|
add r1, r4, #0
|
|
bl ov16_02201604
|
|
strh r0, [r5, #0x28]
|
|
ldr r0, [r6, #0x14]
|
|
add r1, r4, #0
|
|
bl ov16_022015C4
|
|
add r1, r5, #0
|
|
add r1, #0x2a
|
|
add r4, r4, #1
|
|
add r5, #0x14
|
|
strb r0, [r1]
|
|
cmp r4, #4
|
|
blt _02203884
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov17_0220387C
|
|
|
|
thumb_func_start ov17_02203928
|
|
ov17_02203928: ; 0x02203928
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
add r7, r0, #0
|
|
str r0, [sp]
|
|
mov r6, #0
|
|
add r4, #0x20
|
|
add r5, r0, #0
|
|
add r7, #0x7d
|
|
_0220393A:
|
|
ldrb r1, [r4, #0xa]
|
|
ldrb r0, [r4, #0xd]
|
|
cmp r1, r0
|
|
beq _0220395A
|
|
mov r0, #0x17
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
bl sub_020249D4
|
|
ldrb r0, [r4, #1]
|
|
cmp r0, #1
|
|
bne _0220395A
|
|
ldrb r1, [r4, #0xa]
|
|
ldr r0, [r4, #0x10]
|
|
bl sub_020249D4
|
|
_0220395A:
|
|
ldrb r1, [r4, #1]
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r1, r0
|
|
beq _0220398E
|
|
ldr r0, [sp]
|
|
mov r1, #8
|
|
ldr r0, [r0]
|
|
bl AllocFromHeap
|
|
str r0, [sp, #4]
|
|
mov r1, #0
|
|
mov r2, #8
|
|
bl MI_CpuFill8
|
|
ldr r1, [sp]
|
|
ldr r0, [sp, #4]
|
|
mov r2, #0
|
|
str r1, [r0]
|
|
strb r6, [r0, #4]
|
|
ldr r0, _0220399C ; =ov17_022039A0
|
|
ldr r1, [sp, #4]
|
|
bl CreateSysTask
|
|
ldrb r0, [r7]
|
|
add r0, r0, #1
|
|
strb r0, [r7]
|
|
_0220398E:
|
|
add r6, r6, #1
|
|
add r4, #0x14
|
|
add r5, r5, #4
|
|
cmp r6, #4
|
|
blt _0220393A
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0220399C: .word ov17_022039A0
|
|
thumb_func_end ov17_02203928
|
|
|
|
thumb_func_start ov17_022039A0
|
|
ov17_022039A0: ; 0x022039A0
|
|
push {r4, r5, r6, lr}
|
|
add r5, r1, #0
|
|
add r6, r0, #0
|
|
ldrb r0, [r5, #6]
|
|
ldr r4, [r5]
|
|
cmp r0, #0
|
|
beq _022039B4
|
|
cmp r0, #1
|
|
beq _022039D6
|
|
pop {r4, r5, r6, pc}
|
|
_022039B4:
|
|
ldrb r0, [r5, #4]
|
|
add r0, r0, #7
|
|
lsl r0, r0, #2
|
|
add r1, r4, r0
|
|
mov r0, #0x59
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, _02203A30 ; =0x00000569
|
|
bl PlaySE
|
|
ldrb r0, [r5, #6]
|
|
add r0, r0, #1
|
|
strb r0, [r5, #6]
|
|
pop {r4, r5, r6, pc}
|
|
_022039D6:
|
|
ldrb r1, [r5, #5]
|
|
add r0, r1, #1
|
|
strb r0, [r5, #5]
|
|
cmp r1, #0xf
|
|
bne _022039FA
|
|
ldrb r1, [r5, #4]
|
|
add r0, r4, #0
|
|
bl ov17_02202A84
|
|
add r0, r4, #0
|
|
add r0, #0x7c
|
|
ldrb r1, [r0]
|
|
ldrb r0, [r5, #4]
|
|
cmp r1, r0
|
|
bne _022039FA
|
|
add r0, r4, #0
|
|
bl ov17_022028B8
|
|
_022039FA:
|
|
ldrb r0, [r5, #5]
|
|
cmp r0, #0x1e
|
|
blo _02203A2C
|
|
ldrb r0, [r5, #4]
|
|
add r0, r0, #7
|
|
lsl r0, r0, #2
|
|
add r1, r4, r0
|
|
mov r0, #0x59
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
add r0, r4, #0
|
|
add r0, #0x7d
|
|
ldrb r0, [r0]
|
|
add r4, #0x7d
|
|
sub r0, r0, #1
|
|
strb r0, [r4]
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
_02203A2C:
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_02203A30: .word 0x00000569
|
|
thumb_func_end ov17_022039A0
|
|
|
|
thumb_func_start ov17_02203A34
|
|
ov17_02203A34: ; 0x02203A34
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
add r1, sp, #0
|
|
add r4, r0, #0
|
|
bl ov17_02203B68
|
|
ldr r1, [sp]
|
|
cmp r1, #0
|
|
bne _02203A50
|
|
add r0, r4, #0
|
|
bl ov17_02203AD4
|
|
_02203A50:
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
thumb_func_end ov17_02203A34
|
|
|
|
thumb_func_start ov17_02203A54
|
|
ov17_02203A54: ; 0x02203A54
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
add r1, sp, #0
|
|
add r4, r0, #0
|
|
bl ov17_02203C20
|
|
ldr r1, [sp]
|
|
cmp r1, #0
|
|
bne _02203A70
|
|
add r0, r4, #0
|
|
bl ov17_02203B88
|
|
_02203A70:
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
thumb_func_end ov17_02203A54
|
|
|
|
thumb_func_start ov17_02203A74
|
|
ov17_02203A74: ; 0x02203A74
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
cmp r1, #5
|
|
bhi _02203AB0
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_02203A88: ; jump table
|
|
.short _02203A94 - _02203A88 - 2 ; case 0
|
|
.short _02203A94 - _02203A88 - 2 ; case 1
|
|
.short _02203A94 - _02203A88 - 2 ; case 2
|
|
.short _02203A94 - _02203A88 - 2 ; case 3
|
|
.short _02203AA2 - _02203A88 - 2 ; case 4
|
|
.short _02203AB0 - _02203A88 - 2 ; case 5
|
|
_02203A94:
|
|
ldr r0, _02203AD0 ; =0x000005DC
|
|
bl PlaySE
|
|
add r0, r4, #0
|
|
bl ov17_022028B8
|
|
b _02203ACC
|
|
_02203AA2:
|
|
add r4, #0x7d
|
|
ldrb r1, [r4]
|
|
cmp r1, #0
|
|
bne _02203ACC
|
|
bl ov17_02203D00
|
|
pop {r4, pc}
|
|
_02203AB0:
|
|
add r0, r4, #0
|
|
add r0, #0x7d
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _02203ACC
|
|
ldr r0, _02203AD0 ; =0x000005DC
|
|
bl PlaySE
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov17_02202850
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02203ACC:
|
|
mov r0, #2
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_02203AD0: .word 0x000005DC
|
|
thumb_func_end ov17_02203A74
|
|
|
|
thumb_func_start ov17_02203AD4
|
|
ov17_02203AD4: ; 0x02203AD4
|
|
push {r4, lr}
|
|
ldr r1, _02203B60 ; =gSystem
|
|
mov r3, #0
|
|
ldr r2, [r1, #0x48]
|
|
ldr r1, _02203B64 ; =0x00000CF3
|
|
tst r1, r2
|
|
beq _02203AE4
|
|
str r3, [r0, #0x74]
|
|
_02203AE4:
|
|
ldr r1, _02203B60 ; =gSystem
|
|
ldr r2, [r1, #0x48]
|
|
mov r1, #2
|
|
tst r1, r2
|
|
beq _02203AF6
|
|
mov r1, #5
|
|
bl ov17_02203A74
|
|
pop {r4, pc}
|
|
_02203AF6:
|
|
mov r1, #1
|
|
add r4, r2, #0
|
|
tst r4, r1
|
|
beq _02203B06
|
|
mov r1, #4
|
|
bl ov17_02203A74
|
|
pop {r4, pc}
|
|
_02203B06:
|
|
mov r4, #0x20
|
|
tst r4, r2
|
|
beq _02203B2A
|
|
add r2, r0, #0
|
|
add r2, #0x7c
|
|
ldrb r2, [r2]
|
|
add r2, r2, #3
|
|
lsr r4, r2, #0x1f
|
|
lsl r3, r2, #0x1e
|
|
sub r3, r3, r4
|
|
mov r2, #0x1e
|
|
ror r3, r2
|
|
add r2, r0, #0
|
|
add r3, r4, r3
|
|
add r2, #0x7c
|
|
strb r3, [r2]
|
|
add r3, r1, #0
|
|
b _02203B4C
|
|
_02203B2A:
|
|
mov r4, #0x10
|
|
tst r2, r4
|
|
beq _02203B4C
|
|
add r2, r0, #0
|
|
add r2, #0x7c
|
|
ldrb r2, [r2]
|
|
add r2, r2, #1
|
|
lsr r4, r2, #0x1f
|
|
lsl r3, r2, #0x1e
|
|
sub r3, r3, r4
|
|
mov r2, #0x1e
|
|
ror r3, r2
|
|
add r2, r0, #0
|
|
add r3, r4, r3
|
|
add r2, #0x7c
|
|
strb r3, [r2]
|
|
add r3, r1, #0
|
|
_02203B4C:
|
|
cmp r3, #0
|
|
beq _02203B5C
|
|
add r1, r0, #0
|
|
add r1, #0x7c
|
|
ldrb r1, [r1]
|
|
bl ov17_02203A74
|
|
pop {r4, pc}
|
|
_02203B5C:
|
|
mov r0, #2
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_02203B60: .word gSystem
|
|
_02203B64: .word 0x00000CF3
|
|
thumb_func_end ov17_02203AD4
|
|
|
|
thumb_func_start ov17_02203B68
|
|
ov17_02203B68: ; 0x02203B68
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl ov17_02203CC8
|
|
add r1, r0, #0
|
|
bpl _02203B7A
|
|
mov r0, #2
|
|
pop {r3, r4, r5, pc}
|
|
_02203B7A:
|
|
mov r0, #1
|
|
str r0, [r4]
|
|
str r0, [r5, #0x74]
|
|
add r0, r5, #0
|
|
bl ov17_02203A74
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov17_02203B68
|
|
|
|
thumb_func_start ov17_02203B88
|
|
ov17_02203B88: ; 0x02203B88
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r1, r4, #0
|
|
add r1, #0x81
|
|
ldrb r1, [r1]
|
|
mov r0, #0
|
|
cmp r1, #0xff
|
|
bne _02203C16
|
|
ldr r1, _02203C18 ; =gSystem
|
|
ldr r2, [r1, #0x48]
|
|
ldr r1, _02203C1C ; =0x00000CF3
|
|
tst r1, r2
|
|
beq _02203BA4
|
|
str r0, [r4, #0x74]
|
|
_02203BA4:
|
|
ldr r1, _02203C18 ; =gSystem
|
|
ldr r2, [r1, #0x48]
|
|
mov r1, #0x20
|
|
tst r1, r2
|
|
beq _02203BCC
|
|
add r0, r4, #0
|
|
add r0, #0x7c
|
|
ldrb r0, [r0]
|
|
add r0, r0, #3
|
|
lsr r2, r0, #0x1f
|
|
lsl r1, r0, #0x1e
|
|
sub r1, r1, r2
|
|
mov r0, #0x1e
|
|
ror r1, r0
|
|
add r0, r4, #0
|
|
add r1, r2, r1
|
|
add r0, #0x7c
|
|
strb r1, [r0]
|
|
mov r0, #1
|
|
b _02203BEE
|
|
_02203BCC:
|
|
mov r1, #0x10
|
|
tst r1, r2
|
|
beq _02203BEE
|
|
add r0, r4, #0
|
|
add r0, #0x7c
|
|
ldrb r0, [r0]
|
|
add r0, r0, #1
|
|
lsr r2, r0, #0x1f
|
|
lsl r1, r0, #0x1e
|
|
sub r1, r1, r2
|
|
mov r0, #0x1e
|
|
ror r1, r0
|
|
add r0, r4, #0
|
|
add r1, r2, r1
|
|
add r0, #0x7c
|
|
strb r1, [r0]
|
|
mov r0, #1
|
|
_02203BEE:
|
|
cmp r0, #0
|
|
beq _02203C14
|
|
add r0, r4, #0
|
|
add r0, #0x7c
|
|
ldrb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x81
|
|
strb r1, [r0]
|
|
mov r0, #0x5a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl Set2dSpriteAnimActiveFlag
|
|
add r0, r4, #0
|
|
bl ov17_022028B8
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02203C14:
|
|
mov r0, #0
|
|
_02203C16:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_02203C18: .word gSystem
|
|
_02203C1C: .word 0x00000CF3
|
|
thumb_func_end ov17_02203B88
|
|
|
|
thumb_func_start ov17_02203C20
|
|
ov17_02203C20: ; 0x02203C20
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r1, r5, #0
|
|
add r1, #0x81
|
|
ldrb r1, [r1]
|
|
cmp r1, #0xff
|
|
beq _02203C34
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_02203C34:
|
|
bl ov17_02203C78
|
|
cmp r0, #0
|
|
blt _02203C46
|
|
add r1, r5, #0
|
|
add r1, #0x7c
|
|
ldrb r1, [r1]
|
|
cmp r1, r0
|
|
bne _02203C4A
|
|
_02203C46:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_02203C4A:
|
|
mov r1, #1
|
|
str r1, [r4]
|
|
str r1, [r5, #0x74]
|
|
add r1, r5, #0
|
|
add r1, #0x7c
|
|
strb r0, [r1]
|
|
add r0, r5, #0
|
|
add r0, #0x7c
|
|
ldrb r1, [r0]
|
|
add r0, r5, #0
|
|
add r0, #0x81
|
|
strb r1, [r0]
|
|
mov r0, #0x5a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl Set2dSpriteAnimActiveFlag
|
|
add r0, r5, #0
|
|
bl ov17_022028B8
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov17_02203C20
|
|
|
|
thumb_func_start ov17_02203C78
|
|
ov17_02203C78: ; 0x02203C78
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
mov r7, #0
|
|
mov r4, #0x10
|
|
add r6, sp, #0
|
|
_02203C82:
|
|
strb r4, [r6, #2]
|
|
ldrb r0, [r6, #2]
|
|
add r0, #0x16
|
|
strb r0, [r6, #3]
|
|
add r0, r5, #0
|
|
add r0, #0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, #3
|
|
bhs _02203C9E
|
|
mov r0, #0x58
|
|
strb r0, [r6]
|
|
ldrb r0, [r6]
|
|
add r0, #0x18
|
|
b _02203CA6
|
|
_02203C9E:
|
|
mov r0, #0x48
|
|
strb r0, [r6]
|
|
ldrb r0, [r6]
|
|
add r0, #0x20
|
|
_02203CA6:
|
|
strb r0, [r6, #1]
|
|
add r0, sp, #0
|
|
bl sub_02025320
|
|
cmp r0, #0
|
|
beq _02203CB6
|
|
add r0, r7, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02203CB6:
|
|
add r7, r7, #1
|
|
add r4, #0x1c
|
|
add r5, #0x14
|
|
cmp r7, #4
|
|
blt _02203C82
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov17_02203C78
|
|
|
|
thumb_func_start ov17_02203CC8
|
|
ov17_02203CC8: ; 0x02203CC8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _02203CFC ; =ov17_02203FC0
|
|
bl sub_02025320
|
|
cmp r0, #0
|
|
beq _02203CDA
|
|
mov r0, #5
|
|
pop {r4, pc}
|
|
_02203CDA:
|
|
add r0, r4, #0
|
|
bl ov17_02203C78
|
|
cmp r0, #0
|
|
blt _02203CF4
|
|
add r1, r4, #0
|
|
add r1, #0x7c
|
|
strb r0, [r1]
|
|
add r0, r4, #0
|
|
bl ov17_022028B8
|
|
mov r0, #4
|
|
pop {r4, pc}
|
|
_02203CF4:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r4, pc}
|
|
nop
|
|
_02203CFC: .word ov17_02203FC0
|
|
thumb_func_end ov17_02203CC8
|
|
|
|
thumb_func_start ov17_02203D00
|
|
ov17_02203D00: ; 0x02203D00
|
|
add r2, r0, #0
|
|
add r0, #0x7c
|
|
ldrb r1, [r0]
|
|
mov r0, #0x14
|
|
add r2, #0x20
|
|
mul r0, r1
|
|
add r2, r2, r0
|
|
ldrb r1, [r2, #1]
|
|
cmp r1, #5
|
|
bgt _02203D30
|
|
cmp r1, #0
|
|
blt _02203D4A
|
|
add r0, r1, r1
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02203D24: ; jump table
|
|
.short _02203D34 - _02203D24 - 2 ; case 0
|
|
.short _02203D42 - _02203D24 - 2 ; case 1
|
|
.short _02203D42 - _02203D24 - 2 ; case 2
|
|
.short _02203D42 - _02203D24 - 2 ; case 3
|
|
.short _02203D42 - _02203D24 - 2 ; case 4
|
|
.short _02203D46 - _02203D24 - 2 ; case 5
|
|
_02203D30:
|
|
cmp r1, #0xff
|
|
b _02203D4A
|
|
_02203D34:
|
|
ldrb r0, [r2, #4]
|
|
cmp r0, #0
|
|
beq _02203D3E
|
|
mov r0, #4
|
|
bx lr
|
|
_02203D3E:
|
|
mov r0, #3
|
|
bx lr
|
|
_02203D42:
|
|
mov r0, #5
|
|
bx lr
|
|
_02203D46:
|
|
mov r0, #6
|
|
bx lr
|
|
_02203D4A:
|
|
mov r0, #2
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov17_02203D00
|
|
|
|
.rodata
|
|
|
|
ov17_02203D50:
|
|
.byte 0x02, 0x01, 0x00, 0x00
|
|
|
|
ov17_02203D54:
|
|
.byte 0x05, 0x01, 0x00, 0x00
|
|
|
|
ov17_02203D58:
|
|
.byte 0x03, 0x01, 0x00, 0x00
|
|
|
|
ov17_02203D5C:
|
|
.byte 0x04, 0x03, 0x01, 0x00
|
|
|
|
ov17_02203D60: ; 0x02203D60
|
|
.byte 0x00, 0x02, 0x01, 0x00, 0x00, 0x04, 0x03, 0x00, 0x00, 0x06, 0x05, 0x00, 0x03, 0x04, 0x00, 0x0B
|
|
.byte 0x00, 0x00, 0x3A, 0x00, 0x1F, 0x00, 0x54, 0x00
|
|
|
|
ov17_02203D78: ; 0x02203D78
|
|
.byte 0x1E, 0x00, 0x1F, 0x00, 0x1D, 0x00, 0x1C, 0x00
|
|
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0x4F, 0x00, 0x00, 0x00
|
|
|
|
ov17_02203D88: ; 0x02203D88
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov17_02203D98: ; 0x02203D98
|
|
.byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
|
|
.byte 0x00, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
|
|
|
ov17_02203DAC: ; 0x02203DAC
|
|
.byte 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov17_02203DC4: ; 0x02203DC4
|
|
.byte 0x02, 0x19, 0x15, 0x06, 0x02, 0x09, 0xA2, 0x01, 0x00, 0x02, 0x13, 0x13
|
|
.byte 0x04, 0x0C, 0xCA, 0x00, 0x00, 0x02, 0x13, 0x1B, 0x04, 0x0C, 0x36, 0x01
|
|
|
|
ov17_02203DDC: ; 0x02203DDC
|
|
.byte 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
|
|
|
|
ov17_02203DF8: ; 0x02203DF8
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1F, 0x04, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov17_02203E14: ; 0x02203E14
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1E, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov17_02203E30: ; 0x02203E30
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x1F, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov17_02203E4C: ; 0x02203E4C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1D, 0x00
|
|
.byte 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov17_02203E68: ; 0x02203E68
|
|
.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
|
|
|
|
ov17_02203E88: ; 0x02203E88
|
|
.word 3, ov17_02203D5C
|
|
.word 2, ov17_02203D58
|
|
.word 2, ov17_02203D50
|
|
.word 2, ov17_02203D54
|
|
|
|
ov17_02203EA8: ; 0x02203EA8
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x60, 0x00
|
|
.byte 0x00, 0x00, 0x05, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov17_02203ED0: ; 0x02203ED0
|
|
.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
|
|
|
|
ov17_02203EF8: ; 0x02203EF8
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0xB0, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 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, 0x1B, 0x00, 0x60, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov17_02203F48: ; 0x02203F48
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x38, 0x00
|
|
.byte 0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov17_02203F70: ; 0x02203F70
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x63, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0E, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov17_02203F98: ; 0x02203F98
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x58, 0x00
|
|
.byte 0x00, 0x00, 0x07, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov17_02203FC0: ; 0x02203FC0
|
|
.byte 0xA0, 0xC0, 0xC0, 0x00
|