mirror of
https://github.com/pret/pokeheartgold.git
synced 2024-11-28 07:30:41 +00:00
2985 lines
54 KiB
ArmAsm
2985 lines
54 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "overlay_121.inc"
|
|
.include "global.inc"
|
|
|
|
.text
|
|
|
|
thumb_func_start ov121_021E5900
|
|
ov121_021E5900: ; 0x021E5900
|
|
push {r3, lr}
|
|
bl ov121_021E5AEC
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov121_021E5900
|
|
|
|
thumb_func_start ov121_021E590C
|
|
ov121_021E590C: ; 0x021E590C
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
bl OverlayManager_GetData
|
|
mov r1, #0x23
|
|
add r4, r0, #0
|
|
lsl r1, r1, #4
|
|
ldrb r1, [r4, r1]
|
|
cmp r1, #4
|
|
bhi _021E59B0
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021E592C: ; jump table
|
|
.short _021E5936 - _021E592C - 2 ; case 0
|
|
.short _021E5956 - _021E592C - 2 ; case 1
|
|
.short _021E5968 - _021E592C - 2 ; case 2
|
|
.short _021E597A - _021E592C - 2 ; case 3
|
|
.short _021E599C - _021E592C - 2 ; case 4
|
|
_021E5936:
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
mov r0, #0x9e
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
add r2, r1, #0
|
|
add r3, r0, #0
|
|
bl BeginNormalPaletteFade
|
|
mov r0, #0x23
|
|
mov r1, #1
|
|
lsl r0, r0, #4
|
|
strb r1, [r4, r0]
|
|
b _021E59B0
|
|
_021E5956:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _021E59B0
|
|
mov r0, #0x23
|
|
mov r1, #2
|
|
lsl r0, r0, #4
|
|
strb r1, [r4, r0]
|
|
b _021E59B0
|
|
_021E5968:
|
|
bl ov121_021E5C50
|
|
cmp r0, #0
|
|
beq _021E59B0
|
|
mov r0, #0x23
|
|
mov r1, #3
|
|
lsl r0, r0, #4
|
|
strb r1, [r4, r0]
|
|
b _021E59B0
|
|
_021E597A:
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0x9e
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
add r3, r0, #0
|
|
bl BeginNormalPaletteFade
|
|
mov r0, #0x23
|
|
mov r1, #4
|
|
lsl r0, r0, #4
|
|
strb r1, [r4, r0]
|
|
b _021E59B0
|
|
_021E599C:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _021E59B0
|
|
add r0, r4, #0
|
|
bl ov121_021E6F78
|
|
add sp, #0xc
|
|
mov r0, #1
|
|
pop {r3, r4, pc}
|
|
_021E59B0:
|
|
add r0, r4, #0
|
|
bl ov121_021E5CB4
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
thumb_func_end ov121_021E590C
|
|
|
|
thumb_func_start ov121_021E59BC
|
|
ov121_021E59BC: ; 0x021E59BC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
bl OverlayManager_GetData
|
|
add r4, r0, #0
|
|
ldr r0, _021E5AE0 ; =gSystem + 0x60
|
|
mov r1, #0
|
|
strb r1, [r0, #9]
|
|
bl GX_SwapDisplay
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl Main_SetVBlankIntrCB
|
|
ldr r0, _021E5AE4 ; =0x04000050
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
add r0, r4, #0
|
|
bl ov121_021E6A4C
|
|
add r0, r4, #4
|
|
bl RemoveWindow
|
|
add r0, r4, #0
|
|
add r0, #0x14
|
|
bl RemoveWindow
|
|
add r0, r4, #0
|
|
add r0, #0x24
|
|
bl RemoveWindow
|
|
add r0, r4, #0
|
|
add r0, #0x34
|
|
bl RemoveWindow
|
|
add r0, r4, #0
|
|
add r0, #0x44
|
|
bl RemoveWindow
|
|
add r0, r4, #0
|
|
add r0, #0x54
|
|
bl RemoveWindow
|
|
ldr r0, [r4]
|
|
mov r1, #0
|
|
bl FreeBgTilemapBuffer
|
|
ldr r0, [r4]
|
|
mov r1, #1
|
|
bl FreeBgTilemapBuffer
|
|
ldr r0, [r4]
|
|
mov r1, #2
|
|
bl FreeBgTilemapBuffer
|
|
ldr r0, [r4]
|
|
mov r1, #3
|
|
bl FreeBgTilemapBuffer
|
|
ldr r0, [r4]
|
|
mov r1, #4
|
|
bl FreeBgTilemapBuffer
|
|
add r0, r4, #0
|
|
bl ov121_021E611C
|
|
mov r0, #0x77
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl sub_0200AEB0
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl sub_0200B0A8
|
|
mov r7, #0x71
|
|
mov r6, #0
|
|
add r5, r4, #0
|
|
lsl r7, r7, #2
|
|
_021E5A5A:
|
|
ldr r0, [r5, r7]
|
|
bl Destroy2DGfxResObjMan
|
|
add r6, r6, #1
|
|
add r5, r5, #4
|
|
cmp r6, #6
|
|
blt _021E5A5A
|
|
add r0, r4, #0
|
|
add r0, #0x98
|
|
ldr r0, [r0]
|
|
bl sub_02024504
|
|
mov r0, #4
|
|
bl FontID_Release
|
|
bl OamManager_Free
|
|
bl sub_0202168C
|
|
bl sub_02022608
|
|
add r0, r4, #0
|
|
add r0, #0x94
|
|
ldr r0, [r0]
|
|
bl sub_02016624
|
|
mov r0, #0x8b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FreeToHeap
|
|
ldr r0, [r4]
|
|
bl FreeToHeap
|
|
ldr r0, _021E5AE8 ; =0x0000025E
|
|
mov r5, #0
|
|
ldrb r0, [r4, r0]
|
|
add r0, r0, #1
|
|
cmp r0, #0
|
|
ble _021E5AC4
|
|
ldr r7, _021E5AE8 ; =0x0000025E
|
|
add r6, r4, #0
|
|
_021E5AAE:
|
|
mov r0, #0x8e
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
bl sub_0202EAFC
|
|
ldrb r0, [r4, r7]
|
|
add r5, r5, #1
|
|
add r6, r6, #4
|
|
add r0, r0, #1
|
|
cmp r5, r0
|
|
blt _021E5AAE
|
|
_021E5AC4:
|
|
mov r0, #0x95
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
mov r0, #0x9e
|
|
bl DestroyHeap
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E5AE0: .word gSystem + 0x60
|
|
_021E5AE4: .word 0x04000050
|
|
_021E5AE8: .word 0x0000025E
|
|
thumb_func_end ov121_021E59BC
|
|
|
|
thumb_func_start ov121_021E5AEC
|
|
ov121_021E5AEC: ; 0x021E5AEC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
bl OverlayManager_GetArgs
|
|
mov r2, #1
|
|
add r4, r0, #0
|
|
mov r0, #3
|
|
mov r1, #0x9e
|
|
lsl r2, r2, #0x10
|
|
bl CreateHeap
|
|
mov r1, #0x9b
|
|
add r0, r5, #0
|
|
lsl r1, r1, #2
|
|
mov r2, #0x9e
|
|
bl OverlayManager_CreateAndGetData
|
|
mov r2, #0x9b
|
|
mov r1, #0
|
|
lsl r2, r2, #2
|
|
add r5, r0, #0
|
|
bl memset
|
|
mov r0, #0x9e
|
|
bl BgConfig_Alloc
|
|
str r0, [r5]
|
|
bl ov121_021E5D84
|
|
ldr r0, [r5]
|
|
bl ov121_021E5DA4
|
|
bl ov121_021E5EDC
|
|
bl ov121_021E5F0C
|
|
add r0, r5, #0
|
|
mov r1, #0x9e
|
|
bl ov121_021E600C
|
|
add r0, r5, #0
|
|
bl ov121_021E60D4
|
|
mov r0, #0x9e
|
|
bl sub_0201660C
|
|
add r1, r5, #0
|
|
add r1, #0x94
|
|
str r0, [r1]
|
|
ldr r0, [r4, #4]
|
|
bl Save_PlayerData_GetOptionsAddr
|
|
bl Options_GetFrame
|
|
mov r1, #0x9a
|
|
lsl r1, r1, #2
|
|
strb r0, [r5, r1]
|
|
ldr r0, _021E5C3C ; =ov121_021E5F30
|
|
ldr r1, [r5]
|
|
bl Main_SetVBlankIntrCB
|
|
mov r0, #0x23
|
|
mov r1, #0
|
|
lsl r0, r0, #4
|
|
strb r1, [r5, r0]
|
|
bl ResetAllTextPrinters
|
|
mov r0, #4
|
|
mov r1, #0x9e
|
|
bl FontID_Alloc
|
|
ldr r0, [r5]
|
|
mov r1, #0x9e
|
|
bl ov121_021E5F58
|
|
mov r1, #0x1e
|
|
mov r0, #0
|
|
lsl r1, r1, #4
|
|
mov r2, #0x9e
|
|
bl LoadFontPal0
|
|
add r0, r5, #0
|
|
bl ov121_021E66EC
|
|
add r0, r5, #0
|
|
bl ov121_021E6194
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl GX_EngineAToggleLayers
|
|
add r0, r5, #0
|
|
mov r1, #0x9e
|
|
bl ov121_021E62A0
|
|
ldr r0, _021E5C40 ; =0x00000233
|
|
mov r1, #1
|
|
strb r1, [r5, r0]
|
|
ldr r0, [r4, #4]
|
|
bl sub_0202E530
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
ldrh r0, [r4]
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
mov r0, #0x97
|
|
lsl r0, r0, #2
|
|
strb r1, [r5, r0]
|
|
ldrh r0, [r4]
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
ldr r1, _021E5C44 ; =0x0000025D
|
|
strb r0, [r5, r1]
|
|
sub r0, r1, #1
|
|
ldrb r0, [r5, r0]
|
|
bl sub_0202E4B0
|
|
ldr r1, _021E5C48 ; =0x0000025E
|
|
strb r0, [r5, r1]
|
|
sub r0, r1, #2
|
|
ldrb r0, [r5, r0]
|
|
bl sub_0202E4BC
|
|
ldr r1, _021E5C4C ; =0x0000025F
|
|
strb r0, [r5, r1]
|
|
ldr r1, [r4, #4]
|
|
add r0, r5, #0
|
|
bl ov121_021E67FC
|
|
mov r0, #0x26
|
|
ldrh r1, [r4, #2]
|
|
lsl r0, r0, #4
|
|
strb r1, [r5, r0]
|
|
ldrb r1, [r5, r0]
|
|
sub r0, r0, #2
|
|
ldrb r0, [r5, r0]
|
|
cmp r1, r0
|
|
blo _021E5C14
|
|
bl GF_AssertFail
|
|
mov r0, #0x26
|
|
mov r1, #0
|
|
lsl r0, r0, #4
|
|
strb r1, [r5, r0]
|
|
_021E5C14:
|
|
add r0, r5, #0
|
|
bl ov121_021E69F0
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl ov121_021E6690
|
|
add r0, r5, #0
|
|
bl ov121_021E6A84
|
|
add r0, r5, #0
|
|
bl ov121_021E6C5C
|
|
add r0, r5, #0
|
|
bl ov121_021E6CA4
|
|
add r0, r5, #0
|
|
bl ov121_021E6DD8
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E5C3C: .word ov121_021E5F30
|
|
_021E5C40: .word 0x00000233
|
|
_021E5C44: .word 0x0000025D
|
|
_021E5C48: .word 0x0000025E
|
|
_021E5C4C: .word 0x0000025F
|
|
thumb_func_end ov121_021E5AEC
|
|
|
|
thumb_func_start ov121_021E5C50
|
|
ov121_021E5C50: ; 0x021E5C50
|
|
push {r4, lr}
|
|
ldr r1, _021E5CB0 ; =0x00000233
|
|
add r4, r0, #0
|
|
ldrb r2, [r4, r1]
|
|
cmp r2, #4
|
|
bhi _021E5CAC
|
|
add r2, r2, r2
|
|
add r2, pc
|
|
ldrh r2, [r2, #6]
|
|
lsl r2, r2, #0x10
|
|
asr r2, r2, #0x10
|
|
add pc, r2
|
|
_021E5C68: ; jump table
|
|
.short _021E5C72 - _021E5C68 - 2 ; case 0
|
|
.short _021E5C7E - _021E5C68 - 2 ; case 1
|
|
.short _021E5C8A - _021E5C68 - 2 ; case 2
|
|
.short _021E5C90 - _021E5C68 - 2 ; case 3
|
|
.short _021E5CA0 - _021E5C68 - 2 ; case 4
|
|
_021E5C72:
|
|
bl ov121_021E6A84
|
|
ldr r0, _021E5CB0 ; =0x00000233
|
|
mov r1, #1
|
|
strb r1, [r4, r0]
|
|
b _021E5CAC
|
|
_021E5C7E:
|
|
bl ov121_021E5CC4
|
|
cmp r0, #0
|
|
beq _021E5CAC
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E5C8A:
|
|
bl ov121_021E5D08
|
|
b _021E5CAC
|
|
_021E5C90:
|
|
bl ov121_021E5D5C
|
|
cmp r0, #0
|
|
beq _021E5CAC
|
|
ldr r0, _021E5CB0 ; =0x00000233
|
|
mov r1, #1
|
|
strb r1, [r4, r0]
|
|
b _021E5CAC
|
|
_021E5CA0:
|
|
add r0, r1, #0
|
|
add r0, #0x25
|
|
ldr r0, [r4, r0]
|
|
mov r2, #0
|
|
strh r2, [r0, #4]
|
|
strb r2, [r4, r1]
|
|
_021E5CAC:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E5CB0: .word 0x00000233
|
|
thumb_func_end ov121_021E5C50
|
|
|
|
thumb_func_start ov121_021E5CB4
|
|
ov121_021E5CB4: ; 0x021E5CB4
|
|
push {r3, lr}
|
|
add r0, #0x98
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _021E5CC2
|
|
bl sub_0202457C
|
|
_021E5CC2:
|
|
pop {r3, pc}
|
|
thumb_func_end ov121_021E5CB4
|
|
|
|
thumb_func_start ov121_021E5CC4
|
|
ov121_021E5CC4: ; 0x021E5CC4
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r1, sp, #0
|
|
add r4, r0, #0
|
|
bl ov121_021E633C
|
|
add r1, r0, #0
|
|
bne _021E5CDA
|
|
add sp, #4
|
|
mov r0, #0
|
|
pop {r3, r4, pc}
|
|
_021E5CDA:
|
|
ldr r0, _021E5D04 ; =0x00000231
|
|
ldrb r0, [r4, r0]
|
|
cmp r0, #0
|
|
bne _021E5CF4
|
|
ldr r2, [sp]
|
|
add r0, r4, #0
|
|
bl ov121_021E6404
|
|
cmp r0, #0
|
|
beq _021E5CFC
|
|
add sp, #4
|
|
mov r0, #1
|
|
pop {r3, r4, pc}
|
|
_021E5CF4:
|
|
ldr r2, [sp]
|
|
add r0, r4, #0
|
|
bl ov121_021E6478
|
|
_021E5CFC:
|
|
mov r0, #0
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
nop
|
|
_021E5D04: .word 0x00000231
|
|
thumb_func_end ov121_021E5CC4
|
|
|
|
thumb_func_start ov121_021E5D08
|
|
ov121_021E5D08: ; 0x021E5D08
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0x94
|
|
ldr r0, [r0]
|
|
bl sub_020168F4
|
|
cmp r0, #1
|
|
beq _021E5D1E
|
|
cmp r0, #2
|
|
beq _021E5D3A
|
|
pop {r4, pc}
|
|
_021E5D1E:
|
|
add r0, r4, #0
|
|
add r0, #0x94
|
|
ldr r0, [r0]
|
|
bl sub_020169CC
|
|
bl ov121_021E6F6C
|
|
ldr r0, _021E5D58 ; =0x00000233
|
|
mov r1, #4
|
|
strb r1, [r4, r0]
|
|
add r0, r4, #0
|
|
bl ov121_021E6E68
|
|
pop {r4, pc}
|
|
_021E5D3A:
|
|
add r0, r4, #0
|
|
add r0, #0x94
|
|
ldr r0, [r0]
|
|
bl sub_020169CC
|
|
bl ov121_021E6F6C
|
|
ldr r0, _021E5D58 ; =0x00000233
|
|
mov r1, #1
|
|
strb r1, [r4, r0]
|
|
add r0, r4, #0
|
|
bl ov121_021E6E68
|
|
pop {r4, pc}
|
|
nop
|
|
_021E5D58: .word 0x00000233
|
|
thumb_func_end ov121_021E5D08
|
|
|
|
thumb_func_start ov121_021E5D5C
|
|
ov121_021E5D5C: ; 0x021E5D5C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021E5D80 ; =gSystem
|
|
ldr r0, [r0, #0x48]
|
|
cmp r0, #0
|
|
bne _021E5D70
|
|
bl System_GetTouchNew
|
|
cmp r0, #0
|
|
beq _021E5D7A
|
|
_021E5D70:
|
|
add r0, r4, #0
|
|
bl ov121_021E6E68
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E5D7A:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_021E5D80: .word gSystem
|
|
thumb_func_end ov121_021E5D5C
|
|
|
|
thumb_func_start ov121_021E5D84
|
|
ov121_021E5D84: ; 0x021E5D84
|
|
push {r4, lr}
|
|
sub sp, #0x28
|
|
ldr r4, _021E5DA0 ; =ov121_021E70E8
|
|
add r3, sp, #0
|
|
mov r2, #5
|
|
_021E5D8E:
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _021E5D8E
|
|
add r0, sp, #0
|
|
bl GX_SetBanks
|
|
add sp, #0x28
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E5DA0: .word ov121_021E70E8
|
|
thumb_func_end ov121_021E5D84
|
|
|
|
thumb_func_start ov121_021E5DA4
|
|
ov121_021E5DA4: ; 0x021E5DA4
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0xa0
|
|
add r4, r0, #0
|
|
ldr r0, _021E5EC0 ; =gSystem + 0x60
|
|
mov r1, #1
|
|
strb r1, [r0, #9]
|
|
bl GX_SwapDisplay
|
|
ldr r5, _021E5EC4 ; =ov121_021E701C
|
|
add r3, sp, #0x90
|
|
add r2, r3, #0
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
add r0, r2, #0
|
|
bl SetBothScreensModesAndDisable
|
|
ldr r5, _021E5EC8 ; =ov121_021E7058
|
|
add r3, sp, #0x74
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
mov r1, #0
|
|
str r0, [r3]
|
|
add r0, r4, #0
|
|
add r3, r1, #0
|
|
bl InitBgFromTemplate
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl BgClearTilemapBufferAndCommit
|
|
ldr r5, _021E5ECC ; =ov121_021E7074
|
|
add r3, sp, #0x58
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
mov r1, #1
|
|
str r0, [r3]
|
|
add r0, r4, #0
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl BgClearTilemapBufferAndCommit
|
|
ldr r5, _021E5ED0 ; =ov121_021E7090
|
|
add r3, sp, #0x3c
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
mov r1, #2
|
|
str r0, [r3]
|
|
add r0, r4, #0
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
bl BgClearTilemapBufferAndCommit
|
|
ldr r5, _021E5ED4 ; =ov121_021E703C
|
|
add r3, sp, #0x20
|
|
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
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl BgClearTilemapBufferAndCommit
|
|
ldr r5, _021E5ED8 ; =ov121_021E70AC
|
|
add r3, sp, #4
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
mov r1, #4
|
|
str r0, [r3]
|
|
add r0, r4, #0
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
bl BgClearTilemapBufferAndCommit
|
|
mov r1, #0
|
|
add r0, r4, #0
|
|
add r2, r1, #0
|
|
mov r3, #1
|
|
str r1, [sp]
|
|
bl BG_FillCharDataRange
|
|
mov r1, #1
|
|
mov r2, #0
|
|
add r0, r4, #0
|
|
add r3, r1, #0
|
|
str r2, [sp]
|
|
bl BG_FillCharDataRange
|
|
mov r2, #0
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
mov r3, #1
|
|
str r2, [sp]
|
|
bl BG_FillCharDataRange
|
|
add sp, #0xa0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E5EC0: .word gSystem + 0x60
|
|
_021E5EC4: .word ov121_021E701C
|
|
_021E5EC8: .word ov121_021E7058
|
|
_021E5ECC: .word ov121_021E7074
|
|
_021E5ED0: .word ov121_021E7090
|
|
_021E5ED4: .word ov121_021E703C
|
|
_021E5ED8: .word ov121_021E70AC
|
|
thumb_func_end ov121_021E5DA4
|
|
|
|
thumb_func_start ov121_021E5EDC
|
|
ov121_021E5EDC: ; 0x021E5EDC
|
|
push {r4, lr}
|
|
sub sp, #0x10
|
|
ldr r4, _021E5F08 ; =ov121_021E702C
|
|
add r3, sp, #0
|
|
add r2, r3, #0
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
add r0, r2, #0
|
|
bl sub_020215A0
|
|
mov r0, #1
|
|
mov r1, #0x9e
|
|
bl sub_02022588
|
|
bl sub_020216C8
|
|
bl sub_02022638
|
|
add sp, #0x10
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E5F08: .word ov121_021E702C
|
|
thumb_func_end ov121_021E5EDC
|
|
|
|
thumb_func_start ov121_021E5F0C
|
|
ov121_021E5F0C: ; 0x021E5F0C
|
|
push {lr}
|
|
sub sp, #0x14
|
|
bl NNS_G2dInitOamManagerModule
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r1, #0x7e
|
|
str r1, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r3, #0x20
|
|
str r3, [sp, #0xc]
|
|
mov r2, #0x9e
|
|
str r2, [sp, #0x10]
|
|
add r2, r0, #0
|
|
bl OamManager_Create
|
|
add sp, #0x14
|
|
pop {pc}
|
|
thumb_func_end ov121_021E5F0C
|
|
|
|
thumb_func_start ov121_021E5F30
|
|
ov121_021E5F30: ; 0x021E5F30
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl OamManager_ApplyAndResetBuffers
|
|
add r0, r4, #0
|
|
bl BgConfig_HandleScheduledScrollAndTransferOps
|
|
bl GF_RunVramTransferTasks
|
|
ldr r3, _021E5F50 ; =0x027E0000
|
|
ldr r1, _021E5F54 ; =0x00003FF8
|
|
mov r0, #1
|
|
ldr r2, [r3, r1]
|
|
orr r0, r2
|
|
str r0, [r3, r1]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E5F50: .word 0x027E0000
|
|
_021E5F54: .word 0x00003FF8
|
|
thumb_func_end ov121_021E5F30
|
|
|
|
thumb_func_start ov121_021E5F58
|
|
ov121_021E5F58: ; 0x021E5F58
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
mov r0, #0x40
|
|
mov r2, #0
|
|
add r4, r1, #0
|
|
str r0, [sp]
|
|
add r0, #0xc6
|
|
mov r1, #1
|
|
add r3, r2, #0
|
|
str r4, [sp, #4]
|
|
bl GfGfxLoader_GXLoadPal
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r1, #3
|
|
ldr r0, _021E6008 ; =0x00000106
|
|
add r2, r5, #0
|
|
add r3, r1, #0
|
|
str r4, [sp, #0xc]
|
|
bl GfGfxLoader_LoadCharData
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #6
|
|
lsl r0, r0, #8
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
ldr r0, _021E6008 ; =0x00000106
|
|
mov r1, #5
|
|
add r2, r5, #0
|
|
mov r3, #3
|
|
str r4, [sp, #0xc]
|
|
bl GfGfxLoader_LoadScrnData
|
|
add r0, r5, #0
|
|
mov r1, #3
|
|
bl BgCommitTilemapBufferToVram
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
mov r1, #0
|
|
add r0, #0xe6
|
|
mov r2, #4
|
|
add r3, r1, #0
|
|
str r4, [sp, #4]
|
|
bl GfGfxLoader_GXLoadPal
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
lsl r0, r0, #0xa
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
ldr r0, _021E6008 ; =0x00000106
|
|
mov r1, #2
|
|
add r2, r5, #0
|
|
mov r3, #4
|
|
str r4, [sp, #0xc]
|
|
bl GfGfxLoader_LoadCharData
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #6
|
|
lsl r0, r0, #8
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r1, #4
|
|
ldr r0, _021E6008 ; =0x00000106
|
|
add r2, r5, #0
|
|
add r3, r1, #0
|
|
str r4, [sp, #0xc]
|
|
bl GfGfxLoader_LoadScrnData
|
|
add r0, r5, #0
|
|
mov r1, #4
|
|
bl BgCommitTilemapBufferToVram
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E6008: .word 0x00000106
|
|
thumb_func_end ov121_021E5F58
|
|
|
|
thumb_func_start ov121_021E600C
|
|
ov121_021E600C: ; 0x021E600C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r6, r0, #0
|
|
add r7, r1, #0
|
|
add r1, r6, #0
|
|
mov r0, #5
|
|
add r1, #0x9c
|
|
add r2, r7, #0
|
|
bl G2dRenderer_Init
|
|
add r1, r6, #0
|
|
add r1, #0x98
|
|
str r0, [r1]
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
_021E602A:
|
|
mov r0, #1
|
|
add r1, r4, #0
|
|
add r2, r7, #0
|
|
bl Create2DGfxResObjMan
|
|
mov r1, #0x71
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #6
|
|
blt _021E602A
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r3, #1
|
|
str r3, [sp, #4]
|
|
str r7, [sp, #8]
|
|
ldr r0, [r6, r1]
|
|
sub r1, #0xbe
|
|
mov r2, #9
|
|
bl AddCharResObjFromNarc
|
|
mov r1, #0x77
|
|
lsl r1, r1, #2
|
|
str r0, [r6, r1]
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
add r0, r1, #0
|
|
str r7, [sp, #0xc]
|
|
sub r0, #0x14
|
|
ldr r0, [r6, r0]
|
|
sub r1, #0xd6
|
|
mov r2, #6
|
|
bl AddPlttResObjFromNarc
|
|
mov r1, #0x1e
|
|
lsl r1, r1, #4
|
|
str r0, [r6, r1]
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
add r0, r1, #0
|
|
str r7, [sp, #8]
|
|
sub r0, #0x14
|
|
ldr r0, [r6, r0]
|
|
sub r1, #0xda
|
|
mov r2, #8
|
|
mov r3, #1
|
|
bl AddCellOrAnimResObjFromNarc
|
|
mov r1, #0x79
|
|
lsl r1, r1, #2
|
|
str r0, [r6, r1]
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #3
|
|
str r0, [sp, #4]
|
|
add r0, r1, #0
|
|
str r7, [sp, #8]
|
|
sub r0, #0x14
|
|
ldr r0, [r6, r0]
|
|
sub r1, #0xde
|
|
mov r2, #7
|
|
mov r3, #1
|
|
bl AddCellOrAnimResObjFromNarc
|
|
mov r1, #0x7a
|
|
lsl r1, r1, #2
|
|
str r0, [r6, r1]
|
|
sub r1, #0xc
|
|
ldr r0, [r6, r1]
|
|
bl sub_0200ADA4
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r6, r0]
|
|
bl sub_0200AF94
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov121_021E600C
|
|
|
|
thumb_func_start ov121_021E60D4
|
|
ov121_021E60D4: ; 0x021E60D4
|
|
push {lr}
|
|
sub sp, #0x2c
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
sub r2, r1, #1
|
|
str r2, [sp, #4]
|
|
str r2, [sp, #8]
|
|
mov r3, #0x71
|
|
str r1, [sp, #0xc]
|
|
mov r2, #3
|
|
lsl r3, r3, #2
|
|
str r2, [sp, #0x10]
|
|
ldr r2, [r0, r3]
|
|
str r2, [sp, #0x14]
|
|
add r2, r3, #4
|
|
ldr r2, [r0, r2]
|
|
str r2, [sp, #0x18]
|
|
add r2, r3, #0
|
|
add r2, #8
|
|
ldr r2, [r0, r2]
|
|
str r2, [sp, #0x1c]
|
|
add r2, r3, #0
|
|
add r2, #0xc
|
|
ldr r2, [r0, r2]
|
|
add r3, #0x30
|
|
str r2, [sp, #0x20]
|
|
str r1, [sp, #0x24]
|
|
add r0, r0, r3
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
str r1, [sp, #0x28]
|
|
bl CreateSpriteResourcesHeader
|
|
add sp, #0x2c
|
|
pop {pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov121_021E60D4
|
|
|
|
thumb_func_start ov121_021E611C
|
|
ov121_021E611C: ; 0x021E611C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x86
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _021E612E
|
|
bl Sprite_Delete
|
|
_021E612E:
|
|
mov r0, #0x87
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _021E613C
|
|
bl Sprite_Delete
|
|
_021E613C:
|
|
mov r0, #0x22
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _021E614A
|
|
bl Sprite_Delete
|
|
_021E614A:
|
|
mov r0, #0x89
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _021E6158
|
|
bl Sprite_Delete
|
|
_021E6158:
|
|
mov r0, #0x8a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _021E6166
|
|
bl Sprite_Delete
|
|
_021E6166:
|
|
pop {r4, pc}
|
|
thumb_func_end ov121_021E611C
|
|
|
|
thumb_func_start ov121_021E6168
|
|
ov121_021E6168: ; 0x021E6168
|
|
add r2, r1, #0
|
|
add r2, #0x98
|
|
ldr r2, [r2]
|
|
str r2, [r0]
|
|
mov r2, #0x7d
|
|
lsl r2, r2, #2
|
|
add r1, r1, r2
|
|
str r1, [r0, #4]
|
|
mov r2, #0
|
|
mov r1, #1
|
|
str r2, [r0, #0x10]
|
|
lsl r1, r1, #0xc
|
|
str r1, [r0, #0x14]
|
|
str r1, [r0, #0x18]
|
|
str r1, [r0, #0x1c]
|
|
strh r2, [r0, #0x20]
|
|
str r2, [r0, #0x24]
|
|
mov r1, #1
|
|
str r1, [r0, #0x28]
|
|
mov r1, #0x9e
|
|
str r1, [r0, #0x2c]
|
|
bx lr
|
|
thumb_func_end ov121_021E6168
|
|
|
|
thumb_func_start ov121_021E6194
|
|
ov121_021E6194: ; 0x021E6194
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x30
|
|
add r4, r0, #0
|
|
add r0, sp, #0
|
|
add r1, r4, #0
|
|
bl ov121_021E6168
|
|
mov r0, #0xe
|
|
lsl r0, r0, #0x10
|
|
str r0, [sp, #8]
|
|
mov r0, #0xb
|
|
lsl r0, r0, #0x10
|
|
str r0, [sp, #0xc]
|
|
add r0, sp, #0
|
|
bl CreateSprite
|
|
add r5, r0, #0
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimActiveFlag
|
|
add r0, r5, #0
|
|
mov r1, #2
|
|
bl Set2dSpriteAnimSeqNo
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl sub_02024A04
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
mov r0, #0x86
|
|
lsl r0, r0, #2
|
|
str r5, [r4, r0]
|
|
mov r0, #1
|
|
lsl r0, r0, #0x10
|
|
str r0, [sp, #8]
|
|
mov r0, #6
|
|
lsl r0, r0, #0x10
|
|
str r0, [sp, #0xc]
|
|
add r0, sp, #0
|
|
bl CreateSprite
|
|
add r5, r0, #0
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimActiveFlag
|
|
add r0, r5, #0
|
|
mov r1, #3
|
|
bl Set2dSpriteAnimSeqNo
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
mov r0, #0x22
|
|
lsl r0, r0, #4
|
|
str r5, [r4, r0]
|
|
mov r0, #0xf
|
|
lsl r0, r0, #0x10
|
|
str r0, [sp, #8]
|
|
mov r0, #6
|
|
lsl r0, r0, #0x10
|
|
str r0, [sp, #0xc]
|
|
add r0, sp, #0
|
|
bl CreateSprite
|
|
add r5, r0, #0
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimActiveFlag
|
|
add r0, r5, #0
|
|
mov r1, #5
|
|
bl Set2dSpriteAnimSeqNo
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
mov r0, #0x87
|
|
lsl r0, r0, #2
|
|
str r5, [r4, r0]
|
|
mov r0, #0xe
|
|
lsl r0, r0, #0x10
|
|
str r0, [sp, #8]
|
|
mov r0, #0xb
|
|
lsl r0, r0, #0x10
|
|
str r0, [sp, #0xc]
|
|
add r0, sp, #0
|
|
bl CreateSprite
|
|
add r5, r0, #0
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimActiveFlag
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl Set2dSpriteAnimSeqNo
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
mov r0, #0x89
|
|
lsl r0, r0, #2
|
|
str r5, [r4, r0]
|
|
mov r0, #1
|
|
lsl r0, r0, #0x12
|
|
str r0, [sp, #8]
|
|
mov r0, #0xb
|
|
lsl r0, r0, #0x10
|
|
str r0, [sp, #0xc]
|
|
add r0, sp, #0
|
|
bl CreateSprite
|
|
add r5, r0, #0
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimActiveFlag
|
|
add r0, r5, #0
|
|
mov r1, #8
|
|
bl Set2dSpriteAnimSeqNo
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
mov r0, #0x8a
|
|
lsl r0, r0, #2
|
|
str r5, [r4, r0]
|
|
add sp, #0x30
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov121_021E6194
|
|
|
|
thumb_func_start ov121_021E62A0
|
|
ov121_021E62A0: ; 0x021E62A0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r4, r0, #0
|
|
add r0, r1, #0
|
|
mov r1, #0x28
|
|
bl AllocFromHeap
|
|
mov r1, #0x8b
|
|
lsl r1, r1, #2
|
|
mov r2, #0
|
|
str r0, [r4, r1]
|
|
add r3, r2, #0
|
|
mov r5, #0x38
|
|
mov r0, #0x28
|
|
add r6, r1, #0
|
|
_021E62BC:
|
|
ldr r7, [r4, r6]
|
|
add r2, r2, #1
|
|
strb r5, [r7, r3]
|
|
add r1, r7, r3
|
|
strb r0, [r1, #2]
|
|
ldrb r7, [r7, r3]
|
|
add r3, r3, #4
|
|
add r5, #0x10
|
|
add r7, #0x10
|
|
strb r7, [r1, #1]
|
|
ldrb r7, [r1, #2]
|
|
add r7, #0xb0
|
|
strb r7, [r1, #3]
|
|
cmp r2, #6
|
|
blt _021E62BC
|
|
mov r0, #0x8b
|
|
lsl r0, r0, #2
|
|
ldr r2, [r4, r0]
|
|
mov r5, #0xa8
|
|
add r3, r2, #0
|
|
add r3, #0x18
|
|
strb r5, [r2, #0x18]
|
|
mov r1, #8
|
|
strb r1, [r3, #2]
|
|
ldrb r1, [r2, #0x18]
|
|
add r1, #0x10
|
|
strb r1, [r3, #1]
|
|
ldrb r1, [r3, #2]
|
|
add r1, #0x80
|
|
strb r1, [r3, #3]
|
|
ldr r2, [r4, r0]
|
|
mov r1, #0xc0
|
|
add r3, r2, #0
|
|
strb r5, [r2, #0x1c]
|
|
add r3, #0x1c
|
|
strb r1, [r3, #2]
|
|
ldrb r1, [r2, #0x1c]
|
|
mov r5, #0xfe
|
|
mov r2, #0x60
|
|
add r1, #0x10
|
|
strb r1, [r3, #1]
|
|
ldrb r1, [r3, #2]
|
|
add r1, #0x40
|
|
strb r1, [r3, #3]
|
|
ldr r1, [r4, r0]
|
|
mov r3, #0x10
|
|
add r6, r1, #0
|
|
add r1, #0x20
|
|
add r6, #0x20
|
|
strb r5, [r1]
|
|
strb r3, [r6, #1]
|
|
strb r2, [r6, #2]
|
|
strb r3, [r6, #3]
|
|
ldr r0, [r4, r0]
|
|
add r1, r0, #0
|
|
add r0, #0x24
|
|
strb r5, [r0]
|
|
add r1, #0x24
|
|
mov r0, #0xf0
|
|
strb r0, [r1, #1]
|
|
strb r2, [r1, #2]
|
|
strb r3, [r1, #3]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov121_021E62A0
|
|
|
|
thumb_func_start ov121_021E633C
|
|
ov121_021E633C: ; 0x021E633C
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
add r5, r1, #0
|
|
mov r4, #0
|
|
bl System_GetTouchHeld
|
|
cmp r0, #0
|
|
bne _021E63A2
|
|
ldr r0, _021E6400 ; =gSystem
|
|
ldr r4, [r0, #0x48]
|
|
cmp r4, #0
|
|
beq _021E63A2
|
|
cmp r4, #0x20
|
|
bgt _021E6370
|
|
bge _021E6386
|
|
cmp r4, #2
|
|
bgt _021E636A
|
|
cmp r4, #1
|
|
blt _021E63A2
|
|
beq _021E639A
|
|
cmp r4, #2
|
|
beq _021E639E
|
|
b _021E63A2
|
|
_021E636A:
|
|
cmp r4, #0x10
|
|
beq _021E638A
|
|
b _021E63A2
|
|
_021E6370:
|
|
cmp r4, #0x80
|
|
bgt _021E637C
|
|
bge _021E6392
|
|
cmp r4, #0x40
|
|
beq _021E638E
|
|
b _021E63A2
|
|
_021E637C:
|
|
mov r0, #1
|
|
lsl r0, r0, #0xa
|
|
cmp r4, r0
|
|
beq _021E6396
|
|
b _021E63A2
|
|
_021E6386:
|
|
mov r0, #6
|
|
pop {r4, r5, r6, pc}
|
|
_021E638A:
|
|
mov r0, #7
|
|
pop {r4, r5, r6, pc}
|
|
_021E638E:
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_021E6392:
|
|
mov r0, #2
|
|
pop {r4, r5, r6, pc}
|
|
_021E6396:
|
|
mov r0, #5
|
|
pop {r4, r5, r6, pc}
|
|
_021E639A:
|
|
mov r0, #8
|
|
pop {r4, r5, r6, pc}
|
|
_021E639E:
|
|
mov r0, #4
|
|
pop {r4, r5, r6, pc}
|
|
_021E63A2:
|
|
cmp r4, #0
|
|
bne _021E63FC
|
|
bl System_GetTouchNew
|
|
cmp r0, #0
|
|
beq _021E63FC
|
|
mov r0, #0x8b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
bl sub_0202529C
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _021E63FC
|
|
cmp r0, #9
|
|
bhi _021E63FC
|
|
add r1, r0, r0
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021E63D0: ; jump table
|
|
.short _021E63E4 - _021E63D0 - 2 ; case 0
|
|
.short _021E63E4 - _021E63D0 - 2 ; case 1
|
|
.short _021E63E4 - _021E63D0 - 2 ; case 2
|
|
.short _021E63E4 - _021E63D0 - 2 ; case 3
|
|
.short _021E63E4 - _021E63D0 - 2 ; case 4
|
|
.short _021E63E4 - _021E63D0 - 2 ; case 5
|
|
.short _021E63EA - _021E63D0 - 2 ; case 6
|
|
.short _021E63EE - _021E63D0 - 2 ; case 7
|
|
.short _021E63F4 - _021E63D0 - 2 ; case 8
|
|
.short _021E63F8 - _021E63D0 - 2 ; case 9
|
|
_021E63E4:
|
|
str r0, [r5]
|
|
mov r0, #3
|
|
pop {r4, r5, r6, pc}
|
|
_021E63EA:
|
|
mov r0, #5
|
|
pop {r4, r5, r6, pc}
|
|
_021E63EE:
|
|
str r0, [r5]
|
|
mov r0, #4
|
|
pop {r4, r5, r6, pc}
|
|
_021E63F4:
|
|
mov r0, #6
|
|
pop {r4, r5, r6, pc}
|
|
_021E63F8:
|
|
mov r0, #7
|
|
pop {r4, r5, r6, pc}
|
|
_021E63FC:
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021E6400: .word gSystem
|
|
thumb_func_end ov121_021E633C
|
|
|
|
thumb_func_start ov121_021E6404
|
|
ov121_021E6404: ; 0x021E6404
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
cmp r1, #8
|
|
bhi _021E646E
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021E6418: ; jump table
|
|
.short _021E646E - _021E6418 - 2 ; case 0
|
|
.short _021E646E - _021E6418 - 2 ; case 1
|
|
.short _021E646E - _021E6418 - 2 ; case 2
|
|
.short _021E646E - _021E6418 - 2 ; case 3
|
|
.short _021E6458 - _021E6418 - 2 ; case 4
|
|
.short _021E643C - _021E6418 - 2 ; case 5
|
|
.short _021E642A - _021E6418 - 2 ; case 6
|
|
.short _021E6434 - _021E6418 - 2 ; case 7
|
|
.short _021E6458 - _021E6418 - 2 ; case 8
|
|
_021E642A:
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
bl ov121_021E662C
|
|
b _021E646E
|
|
_021E6434:
|
|
mov r1, #1
|
|
bl ov121_021E662C
|
|
b _021E646E
|
|
_021E643C:
|
|
ldr r0, _021E6474 ; =0x000005DD
|
|
bl PlaySE
|
|
mov r0, #0x8a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #9
|
|
bl Set2dSpriteAnimSeqNo
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov121_021E6690
|
|
b _021E646E
|
|
_021E6458:
|
|
ldr r0, _021E6474 ; =0x000005DD
|
|
bl PlaySE
|
|
mov r0, #0x89
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimSeqNo
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E646E:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_021E6474: .word 0x000005DD
|
|
thumb_func_end ov121_021E6404
|
|
|
|
thumb_func_start ov121_021E6478
|
|
ov121_021E6478: ; 0x021E6478
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
cmp r1, #8
|
|
bhi _021E653A
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021E648C: ; jump table
|
|
.short _021E653A - _021E648C - 2 ; case 0
|
|
.short _021E649E - _021E648C - 2 ; case 1
|
|
.short _021E64A8 - _021E648C - 2 ; case 2
|
|
.short _021E64B0 - _021E648C - 2 ; case 3
|
|
.short _021E64EC - _021E648C - 2 ; case 4
|
|
.short _021E64B8 - _021E648C - 2 ; case 5
|
|
.short _021E653A - _021E648C - 2 ; case 6
|
|
.short _021E653A - _021E648C - 2 ; case 7
|
|
.short _021E6508 - _021E648C - 2 ; case 8
|
|
_021E649E:
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
bl ov121_021E6544
|
|
pop {r4, pc}
|
|
_021E64A8:
|
|
mov r1, #1
|
|
bl ov121_021E6544
|
|
pop {r4, pc}
|
|
_021E64B0:
|
|
add r1, r2, #0
|
|
bl ov121_021E65A8
|
|
pop {r4, pc}
|
|
_021E64B8:
|
|
ldr r0, _021E653C ; =0x00000232
|
|
ldrsb r1, [r4, r0]
|
|
add r0, #0x2f
|
|
ldrb r0, [r4, r0]
|
|
cmp r1, r0
|
|
ldr r0, _021E6540 ; =0x000005DD
|
|
bge _021E64D2
|
|
bl PlaySE
|
|
add r0, r4, #0
|
|
bl ov121_021E6EC0
|
|
pop {r4, pc}
|
|
_021E64D2:
|
|
bl PlaySE
|
|
mov r0, #0x89
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimSeqNo
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov121_021E6690
|
|
pop {r4, pc}
|
|
_021E64EC:
|
|
ldr r0, _021E6540 ; =0x000005DD
|
|
bl PlaySE
|
|
mov r0, #0x89
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimSeqNo
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov121_021E6690
|
|
pop {r4, pc}
|
|
_021E6508:
|
|
ldr r0, _021E653C ; =0x00000232
|
|
ldrsb r1, [r4, r0]
|
|
add r0, #0x2f
|
|
ldrb r0, [r4, r0]
|
|
cmp r1, r0
|
|
ldr r0, _021E6540 ; =0x000005DD
|
|
bge _021E6522
|
|
bl PlaySE
|
|
add r0, r4, #0
|
|
bl ov121_021E6EC0
|
|
pop {r4, pc}
|
|
_021E6522:
|
|
bl PlaySE
|
|
mov r0, #0x89
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimSeqNo
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov121_021E6690
|
|
_021E653A:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E653C: .word 0x00000232
|
|
_021E6540: .word 0x000005DD
|
|
thumb_func_end ov121_021E6478
|
|
|
|
thumb_func_start ov121_021E6544
|
|
ov121_021E6544: ; 0x021E6544
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
cmp r1, #0
|
|
ble _021E6570
|
|
ldr r2, _021E65A0 ; =0x00000232
|
|
ldrsb r0, [r4, r2]
|
|
cmp r0, #6
|
|
bne _021E655A
|
|
mov r0, #0
|
|
strb r0, [r4, r2]
|
|
b _021E6592
|
|
_021E655A:
|
|
add r1, r0, r1
|
|
add r0, r2, #0
|
|
add r0, #0x2f
|
|
ldrb r0, [r4, r0]
|
|
cmp r1, r0
|
|
blt _021E656C
|
|
mov r0, #6
|
|
strb r0, [r4, r2]
|
|
b _021E6592
|
|
_021E656C:
|
|
strb r1, [r4, r2]
|
|
b _021E6592
|
|
_021E6570:
|
|
bge _021E6592
|
|
ldr r2, _021E65A0 ; =0x00000232
|
|
ldrsb r0, [r4, r2]
|
|
cmp r0, #6
|
|
bne _021E6586
|
|
add r0, r2, #0
|
|
add r0, #0x2f
|
|
ldrb r0, [r4, r0]
|
|
sub r0, r0, #1
|
|
strb r0, [r4, r2]
|
|
b _021E6592
|
|
_021E6586:
|
|
add r0, r0, r1
|
|
bpl _021E6590
|
|
mov r0, #6
|
|
strb r0, [r4, r2]
|
|
b _021E6592
|
|
_021E6590:
|
|
strb r0, [r4, r2]
|
|
_021E6592:
|
|
ldr r0, _021E65A4 ; =0x000005DC
|
|
bl PlaySE
|
|
add r0, r4, #0
|
|
bl ov121_021E65D8
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E65A0: .word 0x00000232
|
|
_021E65A4: .word 0x000005DC
|
|
thumb_func_end ov121_021E6544
|
|
|
|
thumb_func_start ov121_021E65A8
|
|
ov121_021E65A8: ; 0x021E65A8
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #6
|
|
beq _021E65BA
|
|
ldr r0, _021E65CC ; =0x00000261
|
|
ldrb r0, [r5, r0]
|
|
cmp r4, r0
|
|
bge _021E65CA
|
|
_021E65BA:
|
|
ldr r0, _021E65D0 ; =0x000005DC
|
|
bl PlaySE
|
|
ldr r0, _021E65D4 ; =0x00000232
|
|
strb r4, [r5, r0]
|
|
add r0, r5, #0
|
|
bl ov121_021E65D8
|
|
_021E65CA:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E65CC: .word 0x00000261
|
|
_021E65D0: .word 0x000005DC
|
|
_021E65D4: .word 0x00000232
|
|
thumb_func_end ov121_021E65A8
|
|
|
|
thumb_func_start ov121_021E65D8
|
|
ov121_021E65D8: ; 0x021E65D8
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
str r0, [r1]
|
|
str r0, [r1, #4]
|
|
str r0, [r1, #8]
|
|
ldr r2, _021E661C ; =0x00000232
|
|
mov r0, #0xc
|
|
ldrb r3, [r5, r2]
|
|
sub r2, #0x1a
|
|
add r4, r3, #0
|
|
mul r4, r0
|
|
ldr r0, _021E6620 ; =ov121_021E7140
|
|
ldr r0, [r0, r4]
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp]
|
|
ldr r0, _021E6624 ; =ov121_021E7144
|
|
ldr r0, [r0, r4]
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, r2]
|
|
bl sub_020247D4
|
|
mov r0, #0x86
|
|
ldr r1, _021E6628 ; =ov121_021E7148
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r1, r4]
|
|
bl Set2dSpriteAnimSeqNo
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E661C: .word 0x00000232
|
|
_021E6620: .word ov121_021E7140
|
|
_021E6624: .word ov121_021E7144
|
|
_021E6628: .word ov121_021E7148
|
|
thumb_func_end ov121_021E65D8
|
|
|
|
thumb_func_start ov121_021E662C
|
|
ov121_021E662C: ; 0x021E662C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x26
|
|
lsl r0, r0, #4
|
|
add r4, r1, #0
|
|
ldrb r1, [r5, r0]
|
|
add r1, r1, r4
|
|
bpl _021E6644
|
|
sub r0, r0, #2
|
|
ldrb r0, [r5, r0]
|
|
sub r1, r0, #1
|
|
b _021E664E
|
|
_021E6644:
|
|
sub r0, r0, #2
|
|
ldrb r0, [r5, r0]
|
|
cmp r1, r0
|
|
blt _021E664E
|
|
mov r1, #0
|
|
_021E664E:
|
|
mov r0, #0x26
|
|
lsl r0, r0, #4
|
|
strb r1, [r5, r0]
|
|
mov r0, #0x5e
|
|
lsl r0, r0, #4
|
|
bl PlaySE
|
|
cmp r4, #0
|
|
ble _021E666E
|
|
mov r0, #0x87
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #6
|
|
bl Set2dSpriteAnimSeqNo
|
|
b _021E667C
|
|
_021E666E:
|
|
bge _021E667C
|
|
mov r0, #0x22
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #4
|
|
bl Set2dSpriteAnimSeqNo
|
|
_021E667C:
|
|
add r0, r5, #0
|
|
bl ov121_021E6DD8
|
|
ldr r0, _021E668C ; =0x00000233
|
|
mov r1, #0
|
|
strb r1, [r5, r0]
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E668C: .word 0x00000233
|
|
thumb_func_end ov121_021E662C
|
|
|
|
thumb_func_start ov121_021E6690
|
|
ov121_021E6690: ; 0x021E6690
|
|
push {r4, lr}
|
|
ldr r2, _021E66E8 ; =0x00000231
|
|
add r4, r0, #0
|
|
strb r1, [r4, r2]
|
|
cmp r1, #0
|
|
bne _021E66C0
|
|
add r0, r2, #1
|
|
mov r1, #6
|
|
strb r1, [r4, r0]
|
|
sub r2, #0x15
|
|
ldr r0, [r4, r2]
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
mov r0, #0x22
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
add r0, r4, #0
|
|
bl ov121_021E67E4
|
|
b _021E66E0
|
|
_021E66C0:
|
|
add r0, r2, #1
|
|
mov r1, #0
|
|
sub r2, #0x15
|
|
strb r1, [r4, r0]
|
|
ldr r0, [r4, r2]
|
|
bl Set2dSpriteVisibleFlag
|
|
mov r0, #0x22
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
add r0, r4, #0
|
|
bl ov121_021E6E68
|
|
_021E66E0:
|
|
add r0, r4, #0
|
|
bl ov121_021E65D8
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E66E8: .word 0x00000231
|
|
thumb_func_end ov121_021E6690
|
|
|
|
thumb_func_start ov121_021E66EC
|
|
ov121_021E66EC: ; 0x021E66EC
|
|
push {r3, r4, lr}
|
|
sub sp, #0x14
|
|
mov r1, #0x1e
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
lsl r1, r1, #4
|
|
mov r2, #0x9e
|
|
bl LoadFontPal0
|
|
mov r0, #7
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
mov r0, #0xc
|
|
str r0, [sp, #8]
|
|
mov r0, #0xf
|
|
str r0, [sp, #0xc]
|
|
mov r2, #1
|
|
str r2, [sp, #0x10]
|
|
ldr r0, [r4]
|
|
add r1, r4, #4
|
|
mov r3, #5
|
|
bl AddWindowParameterized
|
|
mov r3, #7
|
|
add r1, r4, #0
|
|
str r3, [sp]
|
|
mov r0, #0x14
|
|
str r0, [sp, #4]
|
|
mov r0, #0xc
|
|
str r0, [sp, #8]
|
|
mov r0, #0xf
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x19
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r4]
|
|
add r1, #0x14
|
|
mov r2, #1
|
|
bl AddWindowParameterized
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #0x1c
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
mov r0, #0xf
|
|
str r0, [sp, #0xc]
|
|
add r0, #0xfa
|
|
str r0, [sp, #0x10]
|
|
add r1, r4, #0
|
|
mov r2, #2
|
|
ldr r0, [r4]
|
|
add r1, #0x24
|
|
add r3, r2, #0
|
|
bl AddWindowParameterized
|
|
mov r0, #0x15
|
|
str r0, [sp]
|
|
mov r0, #6
|
|
str r0, [sp, #4]
|
|
mov r2, #2
|
|
add r1, r4, #0
|
|
str r2, [sp, #8]
|
|
mov r0, #1
|
|
str r0, [sp, #0xc]
|
|
ldr r0, _021E67DC ; =0x00000179
|
|
add r1, #0x34
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r4]
|
|
mov r3, #0x19
|
|
bl AddWindowParameterized
|
|
mov r0, #0x15
|
|
str r0, [sp]
|
|
mov r0, #0xc
|
|
str r0, [sp, #4]
|
|
mov r2, #2
|
|
add r1, r4, #0
|
|
str r2, [sp, #8]
|
|
mov r0, #1
|
|
str r0, [sp, #0xc]
|
|
ldr r0, _021E67E0 ; =0x00000185
|
|
add r1, #0x44
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r4]
|
|
mov r3, #4
|
|
bl AddWindowParameterized
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #0x1c
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
mov r0, #0xf
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x1f
|
|
str r0, [sp, #0x10]
|
|
add r1, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #0x54
|
|
mov r2, #0
|
|
mov r3, #2
|
|
bl AddWindowParameterized
|
|
mov r0, #0x9a
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r4, r0]
|
|
mov r1, #0
|
|
mov r2, #1
|
|
str r0, [sp]
|
|
mov r0, #0x9e
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
mov r3, #0xc
|
|
bl LoadUserFrameGfx2
|
|
add sp, #0x14
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
_021E67DC: .word 0x00000179
|
|
_021E67E0: .word 0x00000185
|
|
thumb_func_end ov121_021E66EC
|
|
|
|
thumb_func_start ov121_021E67E4
|
|
ov121_021E67E4: ; 0x021E67E4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0x54
|
|
mov r1, #1
|
|
bl ClearFrameAndWindow2
|
|
add r4, #0x54
|
|
add r0, r4, #0
|
|
bl ClearWindowTilemapAndCopyToVram
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov121_021E67E4
|
|
|
|
thumb_func_start ov121_021E67FC
|
|
ov121_021E67FC: ; 0x021E67FC
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r5, r1, #0
|
|
add r4, r0, #0
|
|
ldr r1, _021E69EC ; =0x0000025E
|
|
mov r0, #0x9e
|
|
ldrb r2, [r4, r1]
|
|
mov r1, #0x3c
|
|
mul r1, r2
|
|
bl AllocFromHeap
|
|
mov r2, #0x95
|
|
lsl r2, r2, #2
|
|
str r0, [r4, r2]
|
|
ldr r0, [r4, r2]
|
|
add r2, #0xa
|
|
ldrb r3, [r4, r2]
|
|
mov r2, #0x3c
|
|
mov r1, #0
|
|
mul r2, r3
|
|
bl MI_CpuFill8
|
|
mov r1, #0x97
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r4, r1]
|
|
add r0, r5, #0
|
|
mov r2, #0x9e
|
|
bl sub_0202E9FC
|
|
mov r1, #0x8e
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
mov r0, #0
|
|
add r1, #0x26
|
|
str r0, [sp, #0x10]
|
|
ldrb r0, [r4, r1]
|
|
cmp r0, #0
|
|
bgt _021E684A
|
|
b _021E69E8
|
|
_021E684A:
|
|
ldr r0, [sp, #0x10]
|
|
str r4, [sp, #8]
|
|
str r0, [sp, #4]
|
|
add r5, r0, #0
|
|
_021E6852:
|
|
mov r2, #0x8d
|
|
lsl r2, r2, #2
|
|
add r1, r2, #0
|
|
ldr r0, [r4, r2]
|
|
add r2, #0x29
|
|
add r1, #0x2b
|
|
ldrb r3, [r4, r2]
|
|
mov r2, #0xd
|
|
ldrb r1, [r4, r1]
|
|
mul r2, r3
|
|
add r2, r1, r2
|
|
ldr r1, [sp, #0x10]
|
|
add r1, r1, r2
|
|
mov r2, #0x9e
|
|
bl sub_0202EA80
|
|
mov r1, #0x8f
|
|
mov r3, #0
|
|
ldr r2, [sp, #8]
|
|
lsl r1, r1, #2
|
|
str r0, [r2, r1]
|
|
add r0, r2, #0
|
|
ldr r0, [r0, r1]
|
|
mov ip, r3
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _021E68BE
|
|
sub r0, r1, #4
|
|
ldr r0, [r4, r0]
|
|
add r3, r1, #0
|
|
add r2, r0, #4
|
|
ldr r0, [sp, #4]
|
|
add r3, #0x18
|
|
add r2, r2, r0
|
|
add r0, r1, #0
|
|
add r0, #0x18
|
|
ldr r0, [r4, r0]
|
|
add r0, r0, r5
|
|
str r2, [r0, #4]
|
|
add r0, r1, #0
|
|
add r0, #0x18
|
|
ldr r0, [r4, r0]
|
|
mov r2, #1
|
|
add r0, r0, r5
|
|
strh r2, [r0, #8]
|
|
ldr r3, [r4, r3]
|
|
mov r0, #0xff
|
|
add r3, r3, r5
|
|
add r1, #0x18
|
|
strb r0, [r3, #0xa]
|
|
ldr r0, [r4, r1]
|
|
str r2, [r0, r5]
|
|
b _021E69C8
|
|
_021E68BE:
|
|
add r2, r3, #0
|
|
cmp r0, #0
|
|
ble _021E6980
|
|
ldr r0, [sp, #0xc]
|
|
str r0, [sp]
|
|
add r7, r0, #4
|
|
_021E68CA:
|
|
mov r0, ip
|
|
cmp r0, #0
|
|
bne _021E6944
|
|
mov r0, #0x8e
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [sp, #4]
|
|
add r1, r1, r0
|
|
ldr r6, [r1, #8]
|
|
ldr r1, [sp]
|
|
ldr r1, [r1, #8]
|
|
cmp r6, r1
|
|
blo _021E6944
|
|
add r6, r0, #4
|
|
ldr r0, [sp, #4]
|
|
lsl r1, r3, #3
|
|
add r0, r6, r0
|
|
mov r6, #0x95
|
|
lsl r6, r6, #2
|
|
ldr r6, [r4, r6]
|
|
add r3, r3, #1
|
|
add r6, r5, r6
|
|
add r6, r1, r6
|
|
str r0, [r6, #4]
|
|
mov r0, #0x95
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r0, r5, r0
|
|
add r6, r1, r0
|
|
mov r0, #1
|
|
strh r0, [r6, #8]
|
|
mov r0, #0x95
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
lsl r6, r3, #3
|
|
add r0, r5, r0
|
|
add r1, r1, r0
|
|
mov r0, #0xff
|
|
strb r0, [r1, #0xa]
|
|
mov r0, #0x95
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r0, r5, r0
|
|
add r0, r6, r0
|
|
str r7, [r0, #4]
|
|
mov r0, #0x95
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r0, r5, r0
|
|
add r1, r6, r0
|
|
mov r0, #1
|
|
strh r0, [r1, #8]
|
|
mov r0, #0x95
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r0, r5, r0
|
|
add r0, r6, r0
|
|
strb r2, [r0, #0xa]
|
|
mov r0, #1
|
|
mov ip, r0
|
|
b _021E696C
|
|
_021E6944:
|
|
mov r0, #0x95
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
lsl r6, r3, #3
|
|
add r0, r5, r0
|
|
add r0, r6, r0
|
|
str r7, [r0, #4]
|
|
mov r0, #0x95
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r0, r5, r0
|
|
add r1, r6, r0
|
|
mov r0, #1
|
|
strh r0, [r1, #8]
|
|
mov r0, #0x95
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r0, r5, r0
|
|
add r0, r6, r0
|
|
strb r2, [r0, #0xa]
|
|
_021E696C:
|
|
ldr r0, [sp]
|
|
add r2, r2, #1
|
|
add r0, #0xc
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0xc]
|
|
add r3, r3, #1
|
|
ldr r0, [r0]
|
|
add r7, #0xc
|
|
cmp r2, r0
|
|
blt _021E68CA
|
|
_021E6980:
|
|
mov r0, ip
|
|
cmp r0, #0
|
|
bne _021E69BA
|
|
mov r0, #0x8e
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
lsl r2, r3, #3
|
|
add r3, r1, #4
|
|
ldr r1, [sp, #4]
|
|
add r1, r3, r1
|
|
add r3, r0, #0
|
|
add r3, #0x1c
|
|
ldr r3, [r4, r3]
|
|
add r3, r3, r5
|
|
add r3, r2, r3
|
|
str r1, [r3, #4]
|
|
add r3, r0, #0
|
|
add r3, #0x1c
|
|
ldr r3, [r4, r3]
|
|
mov r1, #1
|
|
add r3, r3, r5
|
|
add r3, r2, r3
|
|
strh r1, [r3, #8]
|
|
add r0, #0x1c
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0xff
|
|
add r0, r0, r5
|
|
add r0, r2, r0
|
|
strb r1, [r0, #0xa]
|
|
_021E69BA:
|
|
ldr r0, [sp, #0xc]
|
|
ldr r0, [r0]
|
|
add r1, r0, #1
|
|
mov r0, #0x95
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
str r1, [r0, r5]
|
|
_021E69C8:
|
|
ldr r0, [sp, #8]
|
|
add r5, #0x3c
|
|
add r0, r0, #4
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp, #4]
|
|
add r0, #0xc
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #0x10]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x10]
|
|
ldr r0, _021E69EC ; =0x0000025E
|
|
ldrb r1, [r4, r0]
|
|
ldr r0, [sp, #0x10]
|
|
cmp r0, r1
|
|
bge _021E69E8
|
|
b _021E6852
|
|
_021E69E8:
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E69EC: .word 0x0000025E
|
|
thumb_func_end ov121_021E67FC
|
|
|
|
thumb_func_start ov121_021E69F0
|
|
ov121_021E69F0: ; 0x021E69F0
|
|
push {r4, r5, r6, lr}
|
|
ldr r2, _021E6A48 ; =0x000001A5
|
|
add r6, r0, #0
|
|
mov r0, #0
|
|
mov r1, #0x1b
|
|
mov r3, #0x9e
|
|
bl NewMsgDataFromNarc
|
|
str r0, [r6, #0x64]
|
|
mov r0, #2
|
|
mov r1, #0x4c
|
|
mov r2, #0x9e
|
|
bl MessageFormat_New_Custom
|
|
str r0, [r6, #0x68]
|
|
mov r0, #0x4c
|
|
mov r1, #0x9e
|
|
bl String_New
|
|
str r0, [r6, #0x6c]
|
|
ldr r0, [r6, #0x64]
|
|
mov r1, #0x2b
|
|
bl NewString_ReadMsgData
|
|
str r0, [r6, #0x70]
|
|
ldr r0, [r6, #0x64]
|
|
mov r1, #0x2a
|
|
bl NewString_ReadMsgData
|
|
str r0, [r6, #0x74]
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
_021E6A30:
|
|
add r1, r4, #0
|
|
ldr r0, [r6, #0x64]
|
|
add r1, #0x2c
|
|
bl NewString_ReadMsgData
|
|
str r0, [r5, #0x78]
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #7
|
|
blt _021E6A30
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021E6A48: .word 0x000001A5
|
|
thumb_func_end ov121_021E69F0
|
|
|
|
thumb_func_start ov121_021E6A4C
|
|
ov121_021E6A4C: ; 0x021E6A4C
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
_021E6A54:
|
|
ldr r0, [r5, #0x78]
|
|
bl String_Delete
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #7
|
|
blt _021E6A54
|
|
ldr r0, [r6, #0x70]
|
|
bl String_Delete
|
|
ldr r0, [r6, #0x74]
|
|
bl String_Delete
|
|
ldr r0, [r6, #0x6c]
|
|
bl String_Delete
|
|
ldr r0, [r6, #0x68]
|
|
bl MessageFormat_Delete
|
|
ldr r0, [r6, #0x64]
|
|
bl DestroyMsgData
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov121_021E6A4C
|
|
|
|
thumb_func_start ov121_021E6A84
|
|
ov121_021E6A84: ; 0x021E6A84
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x30
|
|
mov r2, #0x26
|
|
lsl r2, r2, #4
|
|
add r1, r2, #0
|
|
add r4, r0, #0
|
|
sub r1, #0xc
|
|
ldr r1, [r4, r1]
|
|
ldrb r0, [r4, r2]
|
|
str r1, [sp, #0x20]
|
|
mov r1, #0x3c
|
|
mul r1, r0
|
|
str r1, [sp, #0x24]
|
|
sub r1, r2, #4
|
|
ldrb r1, [r4, r1]
|
|
lsl r0, r0, #3
|
|
lsl r2, r1, #2
|
|
ldr r1, _021E6C4C ; =ov121_021E7014
|
|
ldr r1, [r1, r2]
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x10]
|
|
add r0, r4, #0
|
|
add r0, #0x14
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
add r0, r4, #4
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
mov r0, #1
|
|
str r0, [sp, #0x18]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
ldr r2, _021E6C50 ; =0x00000261
|
|
str r1, [sp, #0x1c]
|
|
strb r1, [r4, r2]
|
|
ldr r2, [sp, #0x20]
|
|
ldr r1, [sp, #0x24]
|
|
str r0, [sp, #0x14]
|
|
ldr r1, [r2, r1]
|
|
cmp r1, #0
|
|
bgt _021E6ADC
|
|
b _021E6C04
|
|
_021E6ADC:
|
|
ldr r1, [sp, #0x24]
|
|
add r7, r0, #0
|
|
add r1, r2, r1
|
|
str r1, [sp, #0x2c]
|
|
add r1, r4, #0
|
|
str r1, [sp, #0x28]
|
|
add r1, #0x14
|
|
str r1, [sp, #0x28]
|
|
_021E6AEC:
|
|
ldr r1, [sp, #0x2c]
|
|
ldrh r1, [r1, #8]
|
|
cmp r1, #0
|
|
beq _021E6BEA
|
|
ldr r1, [sp, #0x2c]
|
|
ldr r1, [r1, #4]
|
|
ldr r5, [r1, #4]
|
|
ldr r1, [sp, #0x10]
|
|
ldr r1, [r1]
|
|
cmp r5, r1
|
|
bls _021E6B04
|
|
add r5, r1, #0
|
|
_021E6B04:
|
|
cmp r5, r0
|
|
bge _021E6B0E
|
|
ldr r0, [sp, #0x18]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x18]
|
|
_021E6B0E:
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4, #0x68]
|
|
ldr r2, [sp, #0x18]
|
|
mov r1, #0
|
|
mov r3, #1
|
|
bl BufferIntegerAsString
|
|
ldr r0, [r4, #0x68]
|
|
ldr r1, [r4, #0x6c]
|
|
ldr r2, [r4, #0x74]
|
|
bl StringExpandPlaceholders
|
|
mov r1, #0
|
|
str r7, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E6C54 ; =0x00010200
|
|
add r3, r1, #0
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0x6c]
|
|
add r0, r4, #4
|
|
bl AddTextPrinterParameterized2
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
ldr r2, [sp, #0x2c]
|
|
ldr r0, [r4, #0x68]
|
|
ldr r2, [r2, #4]
|
|
mov r1, #1
|
|
ldr r2, [r2, #8]
|
|
mov r3, #2
|
|
bl BufferString
|
|
ldr r0, [r4, #0x68]
|
|
ldr r1, [r4, #0x6c]
|
|
ldr r2, [r4, #0x70]
|
|
bl StringExpandPlaceholders
|
|
mov r1, #0
|
|
str r7, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E6C54 ; =0x00010200
|
|
add r3, r1, #0
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #0x28]
|
|
ldr r2, [r4, #0x6c]
|
|
bl AddTextPrinterParameterized2
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
ldr r3, [sp, #0x10]
|
|
ldr r0, [r4, #0x68]
|
|
ldrh r3, [r3, #4]
|
|
mov r1, #0
|
|
add r2, r5, #0
|
|
bl BufferIntegerAsString
|
|
ldr r2, [sp, #0x10]
|
|
ldr r0, [r4, #0x68]
|
|
ldrh r2, [r2, #6]
|
|
ldr r1, [r4, #0x6c]
|
|
lsl r2, r2, #2
|
|
add r2, r4, r2
|
|
sub r2, #0x38
|
|
ldr r2, [r2]
|
|
bl StringExpandPlaceholders
|
|
mov r0, #0
|
|
ldr r1, [r4, #0x6c]
|
|
add r2, r0, #0
|
|
bl FontID_String_GetWidth
|
|
mov ip, r0
|
|
str r7, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E6C54 ; =0x00010200
|
|
mov r3, #0xa0
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
mov r6, ip
|
|
ldr r0, [sp, #0x28]
|
|
ldr r2, [r4, #0x6c]
|
|
mov r1, #0
|
|
sub r3, r3, r6
|
|
bl AddTextPrinterParameterized2
|
|
ldr r0, [sp, #0x14]
|
|
ldr r1, [sp, #0x1c]
|
|
add r2, r4, r0
|
|
ldr r0, _021E6C58 ; =0x00000262
|
|
add r7, #0x10
|
|
strb r1, [r2, r0]
|
|
ldr r1, [sp, #0x14]
|
|
add r0, r5, #0
|
|
add r1, r1, #1
|
|
str r1, [sp, #0x14]
|
|
cmp r1, #6
|
|
bge _021E6C04
|
|
_021E6BEA:
|
|
ldr r1, [sp, #0x2c]
|
|
ldr r2, [sp, #0x20]
|
|
add r1, #8
|
|
str r1, [sp, #0x2c]
|
|
ldr r1, [sp, #0x1c]
|
|
add r1, r1, #1
|
|
str r1, [sp, #0x1c]
|
|
ldr r1, [sp, #0x24]
|
|
ldr r2, [r2, r1]
|
|
ldr r1, [sp, #0x1c]
|
|
cmp r1, r2
|
|
bge _021E6C04
|
|
b _021E6AEC
|
|
_021E6C04:
|
|
add r0, r4, #0
|
|
add r0, #0x14
|
|
bl CopyWindowToVram
|
|
add r0, r4, #4
|
|
bl CopyWindowToVram
|
|
ldr r1, _021E6C50 ; =0x00000261
|
|
ldr r0, [sp, #0x14]
|
|
strb r0, [r4, r1]
|
|
add r0, r1, #0
|
|
sub r0, #0x30
|
|
ldrb r0, [r4, r0]
|
|
cmp r0, #1
|
|
bne _021E6C46
|
|
add r0, r1, #0
|
|
sub r0, #0x2f
|
|
ldrsb r2, [r4, r0]
|
|
ldrb r0, [r4, r1]
|
|
cmp r2, r0
|
|
blt _021E6C46
|
|
cmp r2, #7
|
|
bne _021E6C36
|
|
bl GF_AssertFail
|
|
_021E6C36:
|
|
ldr r0, _021E6C50 ; =0x00000261
|
|
ldrb r1, [r4, r0]
|
|
sub r0, #0x2f
|
|
sub r1, r1, #1
|
|
strb r1, [r4, r0]
|
|
add r0, r4, #0
|
|
bl ov121_021E65D8
|
|
_021E6C46:
|
|
add sp, #0x30
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E6C4C: .word ov121_021E7014
|
|
_021E6C50: .word 0x00000261
|
|
_021E6C54: .word 0x00010200
|
|
_021E6C58: .word 0x00000262
|
|
thumb_func_end ov121_021E6A84
|
|
|
|
thumb_func_start ov121_021E6C5C
|
|
ov121_021E6C5C: ; 0x021E6C5C
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
add r0, #0x44
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [r5, #0x64]
|
|
mov r1, #0x28
|
|
bl NewString_ReadMsgData
|
|
add r4, r0, #0
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E6CA0 ; =0x00030100
|
|
mov r1, #4
|
|
str r0, [sp, #8]
|
|
add r0, r5, #0
|
|
add r0, #0x44
|
|
add r2, r4, #0
|
|
str r3, [sp, #0xc]
|
|
bl AddTextPrinterParameterized2
|
|
add r0, r4, #0
|
|
bl String_Delete
|
|
add r5, #0x44
|
|
add r0, r5, #0
|
|
bl CopyWindowToVram
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E6CA0: .word 0x00030100
|
|
thumb_func_end ov121_021E6C5C
|
|
|
|
thumb_func_start ov121_021E6CA4
|
|
ov121_021E6CA4: ; 0x021E6CA4
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
add r0, #0x34
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [r5, #0x64]
|
|
mov r1, #0x29
|
|
bl NewString_ReadMsgData
|
|
add r4, r0, #0
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E6CE8 ; =0x00030100
|
|
mov r1, #4
|
|
str r0, [sp, #8]
|
|
add r0, r5, #0
|
|
add r0, #0x34
|
|
add r2, r4, #0
|
|
str r3, [sp, #0xc]
|
|
bl AddTextPrinterParameterized2
|
|
add r0, r4, #0
|
|
bl String_Delete
|
|
add r5, #0x34
|
|
add r0, r5, #0
|
|
bl CopyWindowToVram
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E6CE8: .word 0x00030100
|
|
thumb_func_end ov121_021E6CA4
|
|
|
|
thumb_func_start ov121_021E6CEC
|
|
ov121_021E6CEC: ; 0x021E6CEC
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
ldr r1, _021E6D78 ; =0x00000232
|
|
add r5, r0, #0
|
|
ldrsb r0, [r5, r1]
|
|
mov r3, #0xc
|
|
add r2, r5, r0
|
|
add r0, r1, #0
|
|
add r0, #0x30
|
|
ldrb r4, [r2, r0]
|
|
add r0, r1, #0
|
|
add r1, #0x2e
|
|
add r0, #0x22
|
|
ldr r2, [r5, r0]
|
|
ldrb r1, [r5, r1]
|
|
mov r0, #0x3c
|
|
mul r0, r1
|
|
add r6, r2, r0
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
add r0, #0x54
|
|
add r2, r1, #0
|
|
bl DrawFrameAndWindow2
|
|
add r0, r5, #0
|
|
add r0, #0x54
|
|
mov r1, #0xff
|
|
bl FillWindowPixelBuffer
|
|
mov r0, #1
|
|
lsl r2, r4, #3
|
|
str r0, [sp]
|
|
mov r3, #2
|
|
str r3, [sp, #4]
|
|
add r2, r6, r2
|
|
ldr r2, [r2, #4]
|
|
ldr r0, [r5, #0x68]
|
|
ldr r2, [r2, #8]
|
|
mov r1, #0
|
|
bl BufferString
|
|
ldr r0, [r5, #0x68]
|
|
ldr r1, [r5, #0x64]
|
|
mov r2, #0x31
|
|
mov r3, #0x9e
|
|
bl ReadMsgData_ExpandPlaceholders
|
|
mov r1, #0
|
|
add r4, r0, #0
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E6D7C ; =0x00010200
|
|
add r2, r4, #0
|
|
str r0, [sp, #8]
|
|
add r0, r5, #0
|
|
add r0, #0x54
|
|
add r3, r1, #0
|
|
str r1, [sp, #0xc]
|
|
bl AddTextPrinterParameterized2
|
|
add r0, r4, #0
|
|
bl String_Delete
|
|
add r5, #0x54
|
|
add r0, r5, #0
|
|
bl CopyWindowToVram
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021E6D78: .word 0x00000232
|
|
_021E6D7C: .word 0x00010200
|
|
thumb_func_end ov121_021E6CEC
|
|
|
|
thumb_func_start ov121_021E6D80
|
|
ov121_021E6D80: ; 0x021E6D80
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
mov r1, #1
|
|
add r5, r0, #0
|
|
add r0, #0x54
|
|
add r2, r1, #0
|
|
mov r3, #0xc
|
|
bl DrawFrameAndWindow2
|
|
add r0, r5, #0
|
|
add r0, #0x54
|
|
mov r1, #0xff
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [r5, #0x64]
|
|
mov r1, #0x34
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0
|
|
add r4, r0, #0
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E6DD4 ; =0x00010200
|
|
add r2, r4, #0
|
|
str r0, [sp, #8]
|
|
add r0, r5, #0
|
|
add r0, #0x54
|
|
add r3, r1, #0
|
|
str r1, [sp, #0xc]
|
|
bl AddTextPrinterParameterized2
|
|
add r0, r4, #0
|
|
bl String_Delete
|
|
add r5, #0x54
|
|
add r0, r5, #0
|
|
bl CopyWindowToVram
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E6DD4: .word 0x00010200
|
|
thumb_func_end ov121_021E6D80
|
|
|
|
thumb_func_start ov121_021E6DD8
|
|
ov121_021E6DD8: ; 0x021E6DD8
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
add r4, r0, #0
|
|
add r0, #0x24
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
mov r0, #0x97
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r4, r0]
|
|
cmp r0, #0
|
|
bne _021E6DF4
|
|
mov r1, #0x35
|
|
b _021E6DF6
|
|
_021E6DF4:
|
|
mov r1, #0x41
|
|
_021E6DF6:
|
|
mov r0, #0x26
|
|
lsl r0, r0, #4
|
|
ldrb r0, [r4, r0]
|
|
lsl r0, r0, #1
|
|
add r5, r1, r0
|
|
ldr r0, [r4, #0x64]
|
|
add r1, r5, #0
|
|
bl NewString_ReadMsgData
|
|
add r6, r0, #0
|
|
ldr r0, [r4, #0x64]
|
|
add r1, r5, #1
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0
|
|
add r5, r0, #0
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E6E64 ; =0x00010200
|
|
add r2, r6, #0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
add r0, #0x24
|
|
add r3, r1, #0
|
|
str r1, [sp, #0xc]
|
|
bl AddTextPrinterParameterized2
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E6E64 ; =0x00010200
|
|
mov r1, #0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
add r0, #0x24
|
|
add r2, r5, #0
|
|
add r3, r1, #0
|
|
str r1, [sp, #0xc]
|
|
bl AddTextPrinterParameterized2
|
|
add r0, r6, #0
|
|
bl String_Delete
|
|
add r0, r5, #0
|
|
bl String_Delete
|
|
add r4, #0x24
|
|
add r0, r4, #0
|
|
bl CopyWindowToVram
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021E6E64: .word 0x00010200
|
|
thumb_func_end ov121_021E6DD8
|
|
|
|
thumb_func_start ov121_021E6E68
|
|
ov121_021E6E68: ; 0x021E6E68
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
mov r1, #1
|
|
add r5, r0, #0
|
|
add r0, #0x54
|
|
add r2, r1, #0
|
|
mov r3, #0xc
|
|
bl DrawFrameAndWindow2
|
|
add r0, r5, #0
|
|
add r0, #0x54
|
|
mov r1, #0xff
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [r5, #0x64]
|
|
mov r1, #0x30
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0
|
|
add r4, r0, #0
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E6EBC ; =0x00010200
|
|
add r2, r4, #0
|
|
str r0, [sp, #8]
|
|
add r0, r5, #0
|
|
add r0, #0x54
|
|
add r3, r1, #0
|
|
str r1, [sp, #0xc]
|
|
bl AddTextPrinterParameterized2
|
|
add r0, r4, #0
|
|
bl String_Delete
|
|
add r5, #0x54
|
|
add r0, r5, #0
|
|
bl CopyWindowToVram
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E6EBC: .word 0x00010200
|
|
thumb_func_end ov121_021E6E68
|
|
|
|
thumb_func_start ov121_021E6EC0
|
|
ov121_021E6EC0: ; 0x021E6EC0
|
|
push {r4, r5, lr}
|
|
sub sp, #0x14
|
|
mov r2, #0x95
|
|
lsl r2, r2, #2
|
|
add r3, r2, #0
|
|
add r4, r0, #0
|
|
add r3, #0xc
|
|
ldrb r5, [r4, r3]
|
|
mov r3, #0x3c
|
|
ldr r1, [r4, r2]
|
|
mul r3, r5
|
|
add r1, r1, r3
|
|
add r3, r2, #0
|
|
sub r3, #0x22
|
|
ldrsb r3, [r4, r3]
|
|
add r1, r1, #4
|
|
add r5, r4, r3
|
|
add r3, r2, #0
|
|
add r3, #0xe
|
|
ldrb r3, [r5, r3]
|
|
lsl r3, r3, #3
|
|
add r3, r1, r3
|
|
add r1, r2, #4
|
|
str r3, [r4, r1]
|
|
ldr r1, [r4, r1]
|
|
ldrb r1, [r1, #6]
|
|
cmp r1, #0xff
|
|
bne _021E6F0C
|
|
mov r1, #3
|
|
sub r2, #0x21
|
|
strb r1, [r4, r2]
|
|
bl ov121_021E6D80
|
|
ldr r0, _021E6F50 ; =0x000005F2
|
|
bl PlaySE
|
|
add sp, #0x14
|
|
pop {r4, r5, pc}
|
|
_021E6F0C:
|
|
add r0, sp, #0
|
|
mov r1, #0
|
|
mov r2, #0x14
|
|
bl MI_CpuFill8
|
|
ldr r0, [r4]
|
|
mov r1, #0x19
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
mov r0, #0x8f
|
|
str r0, [sp, #8]
|
|
mov r0, #0xd
|
|
str r0, [sp, #0xc]
|
|
add r0, sp, #0
|
|
strb r1, [r0, #0x10]
|
|
mov r1, #6
|
|
strb r1, [r0, #0x11]
|
|
add r0, r4, #0
|
|
add r0, #0x94
|
|
ldr r0, [r0]
|
|
add r1, sp, #0
|
|
bl sub_020166FC
|
|
add r0, r4, #0
|
|
bl ov121_021E6CEC
|
|
bl ov121_021E6F58
|
|
ldr r0, _021E6F54 ; =0x00000233
|
|
mov r1, #2
|
|
strb r1, [r4, r0]
|
|
add sp, #0x14
|
|
pop {r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E6F50: .word 0x000005F2
|
|
_021E6F54: .word 0x00000233
|
|
thumb_func_end ov121_021E6EC0
|
|
|
|
thumb_func_start ov121_021E6F58
|
|
ov121_021E6F58: ; 0x021E6F58
|
|
mov r1, #0x1e
|
|
add r2, r1, #0
|
|
ldr r3, _021E6F64 ; =G2x_SetBlendBrightness_
|
|
ldr r0, _021E6F68 ; =0x04000050
|
|
sub r2, #0x25
|
|
bx r3
|
|
.balign 4, 0
|
|
_021E6F64: .word G2x_SetBlendBrightness_
|
|
_021E6F68: .word 0x04000050
|
|
thumb_func_end ov121_021E6F58
|
|
|
|
thumb_func_start ov121_021E6F6C
|
|
ov121_021E6F6C: ; 0x021E6F6C
|
|
ldr r0, _021E6F74 ; =0x04000050
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
bx lr
|
|
.balign 4, 0
|
|
_021E6F74: .word 0x04000050
|
|
thumb_func_end ov121_021E6F6C
|
|
|
|
thumb_func_start ov121_021E6F78
|
|
ov121_021E6F78: ; 0x021E6F78
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E700C ; =0x0000025E
|
|
ldrb r0, [r4, r0]
|
|
cmp r0, #0
|
|
ble _021E7008
|
|
ldr r0, [sp, #4]
|
|
str r0, [sp]
|
|
_021E6F8E:
|
|
mov r0, #0x95
|
|
lsl r0, r0, #2
|
|
ldr r2, [r4, r0]
|
|
ldr r0, [sp]
|
|
mov r6, #0
|
|
add r1, r2, r0
|
|
ldr r0, [r2, r0]
|
|
add r7, r6, #0
|
|
cmp r0, #0
|
|
ble _021E6FF2
|
|
add r5, r6, #0
|
|
_021E6FA4:
|
|
add r0, r1, #4
|
|
add r1, r0, r5
|
|
ldrb r0, [r1, #6]
|
|
mov ip, r0
|
|
cmp r0, #0xff
|
|
beq _021E6FDC
|
|
ldrh r0, [r1, #4]
|
|
cmp r0, #0
|
|
bne _021E6FDC
|
|
ldr r1, _021E7010 ; =0x0000025F
|
|
mov r0, #0x8d
|
|
ldrb r3, [r4, r1]
|
|
sub r1, r1, #2
|
|
ldrb r2, [r4, r1]
|
|
mov r1, #0xd
|
|
lsl r0, r0, #2
|
|
mul r1, r2
|
|
add r2, r3, r1
|
|
ldr r1, [sp, #4]
|
|
ldr r0, [r4, r0]
|
|
add r1, r1, r2
|
|
mov r2, ip
|
|
sub r2, r2, r6
|
|
lsl r2, r2, #0x18
|
|
lsr r2, r2, #0x18
|
|
bl sub_0202E544
|
|
add r6, r6, #1
|
|
_021E6FDC:
|
|
mov r0, #0x95
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [sp]
|
|
ldr r2, [sp]
|
|
add r1, r1, r0
|
|
ldr r0, [r2, r0]
|
|
add r7, r7, #1
|
|
add r5, #8
|
|
cmp r7, r0
|
|
blt _021E6FA4
|
|
_021E6FF2:
|
|
ldr r0, [sp]
|
|
add r0, #0x3c
|
|
str r0, [sp]
|
|
ldr r0, [sp, #4]
|
|
add r0, r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E700C ; =0x0000025E
|
|
ldrb r1, [r4, r0]
|
|
ldr r0, [sp, #4]
|
|
cmp r0, r1
|
|
blt _021E6F8E
|
|
_021E7008:
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E700C: .word 0x0000025E
|
|
_021E7010: .word 0x0000025F
|
|
thumb_func_end ov121_021E6F78
|
|
|
|
.rodata
|
|
|
|
ov121_021E7014:
|
|
.word ov121_021E7110
|
|
.word ov121_021E70C8
|
|
|
|
ov121_021E701C: ; 0x021E701C
|
|
.byte 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov121_021E702C: ; 0x021E702C
|
|
.byte 0x0A, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x9E, 0x00, 0x00, 0x00
|
|
|
|
ov121_021E703C: ; 0x021E703C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1B, 0x04
|
|
.byte 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov121_021E7058: ; 0x021E7058
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov121_021E7074: ; 0x021E7074
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1E, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov121_021E7090: ; 0x021E7090
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x1C, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov121_021E70AC: ; 0x021E70AC
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1E, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov121_021E70C8:
|
|
.byte 0x3F, 0x42, 0x0F, 0x00, 0x06, 0x00, 0x2F, 0x00
|
|
.byte 0x3F, 0x42, 0x0F, 0x00, 0x06, 0x00, 0x2F, 0x00, 0x3F, 0x42, 0x0F, 0x00, 0x06, 0x00, 0x2E, 0x00
|
|
.byte 0x3F, 0x42, 0x0F, 0x00, 0x06, 0x00, 0x2F, 0x00
|
|
|
|
ov121_021E70E8: ; 0x021E70E8
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
|
|
|
|
ov121_021E7110:
|
|
.byte 0x0F, 0x27, 0x00, 0x00, 0x04, 0x00, 0x2C, 0x00, 0x0F, 0x27, 0x00, 0x00, 0x04, 0x00, 0x2C, 0x00
|
|
.byte 0x0F, 0x27, 0x00, 0x00, 0x04, 0x00, 0x2C, 0x00, 0x0F, 0x27, 0x00, 0x00, 0x04, 0x00, 0x2C, 0x00
|
|
.byte 0x0F, 0x27, 0x00, 0x00, 0x04, 0x00, 0x2C, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x2D, 0x00
|
|
|
|
ov121_021E7140: ; 0x021E7140
|
|
.byte 0x80, 0x00, 0x00, 0x00
|
|
|
|
ov121_021E7144: ; 0x021E7144
|
|
.byte 0x40, 0x00, 0x00, 0x00
|
|
|
|
ov121_021E7148: ; 0x021E7148
|
|
.byte 0x07, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
|
|
.byte 0x50, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
|
|
.byte 0x07, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00
|
|
.byte 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
|
|
.byte 0x90, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x00, 0x00
|
|
; 0x021E7194
|