mirror of
https://github.com/pret/pokeheartgold.git
synced 2024-11-23 05:09:45 +00:00
14728 lines
274 KiB
ArmAsm
14728 lines
274 KiB
ArmAsm
#include "constants/sndseq.h"
|
|
#include "constants/items.h"
|
|
#include "msgdata/msg/msg_0010.h"
|
|
.include "asm/macros.inc"
|
|
.include "overlay_15.inc"
|
|
.include "global.inc"
|
|
|
|
.text
|
|
|
|
thumb_func_start Bag_Init
|
|
Bag_Init: ; 0x021F9380
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl Main_SetVBlankIntrCB
|
|
bl HBlankInterruptDisable
|
|
bl GfGfx_DisableEngineAPlanes
|
|
bl GfGfx_DisableEngineBPlanes
|
|
mov r0, #1
|
|
lsl r0, r0, #0x1a
|
|
ldr r2, [r0]
|
|
ldr r1, _021F95EC ; =0xFFFFE0FF
|
|
ldr r3, _021F95F0 ; =0x04001000
|
|
and r2, r1
|
|
str r2, [r0]
|
|
ldr r2, [r3]
|
|
add r0, #0x50
|
|
and r1, r2
|
|
str r1, [r3]
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
add r3, #0x50
|
|
mov r2, #0x42
|
|
strh r1, [r3]
|
|
mov r0, #3
|
|
mov r1, #6
|
|
lsl r2, r2, #0xc
|
|
bl CreateHeap
|
|
ldr r1, _021F95F4 ; =0x0000094C
|
|
add r0, r5, #0
|
|
mov r2, #6
|
|
bl OverlayManager_CreateAndGetData
|
|
ldr r2, _021F95F4 ; =0x0000094C
|
|
mov r1, #0
|
|
add r4, r0, #0
|
|
bl memset
|
|
add r0, r5, #0
|
|
bl OverlayManager_GetArgs
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
add r0, r4, #0
|
|
bl BagApp_GetSaveStructPtrs
|
|
mov r0, #6
|
|
bl BgConfig_Alloc
|
|
str r0, [r4]
|
|
mov r0, #0x8f
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl PlayerProfile_GetTrainerGender
|
|
ldr r1, _021F95F8 ; =0x00000615
|
|
mov r3, #0
|
|
strb r0, [r4, r1]
|
|
mov r1, #6
|
|
str r1, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #3
|
|
mov r0, #2
|
|
add r2, r1, #0
|
|
bl BeginNormalPaletteFade
|
|
mov r0, #3
|
|
mov r1, #8
|
|
bl SetKeyRepeatTimers
|
|
add r0, r4, #0
|
|
bl ov15_021F9DB4
|
|
add r0, r4, #0
|
|
bl ov15_021F9CBC
|
|
add r0, r4, #0
|
|
bl ov15_021FA008
|
|
add r0, r4, #0
|
|
bl ov15_021F9D28
|
|
add r0, r4, #0
|
|
bl ov15_021FA620
|
|
bl ov15_021F9984
|
|
ldr r0, [r4]
|
|
bl ov15_021F99A4
|
|
add r0, r4, #0
|
|
bl ov15_021F9AE4
|
|
bl sub_020210BC
|
|
mov r0, #4
|
|
bl sub_02021148
|
|
add r0, r4, #0
|
|
bl ov15_021FE020
|
|
mov r0, #1
|
|
bl TextFlags_SetCanTouchSpeedUpPrint
|
|
add r0, r4, #0
|
|
bl ov15_021FE4C8
|
|
add r0, r4, #0
|
|
bl ov15_021FE528
|
|
add r0, r4, #0
|
|
bl ov15_021FEA5C
|
|
add r0, r4, #0
|
|
bl ov15_021FE874
|
|
add r0, r4, #0
|
|
bl ov15_021F9F08
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov15_021FF29C
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r3, [r4, r0]
|
|
add r0, r3, #0
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
add r2, r1, #0
|
|
mul r2, r0
|
|
add r0, r3, #0
|
|
add r1, r3, #0
|
|
add r0, #0xa
|
|
add r1, #8
|
|
add r0, r0, r2
|
|
add r1, r1, r2
|
|
add r2, r3, r2
|
|
ldrb r2, [r2, #0xd]
|
|
bl ov15_021FA044
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r3, [r4, r0]
|
|
add r0, r3, #0
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
add r2, r1, #0
|
|
mul r2, r0
|
|
add r0, r3, #0
|
|
add r1, r3, #0
|
|
add r0, #0xa
|
|
add r1, #8
|
|
add r0, r0, r2
|
|
add r1, r1, r2
|
|
add r2, r3, r2
|
|
ldrb r2, [r2, #0xd]
|
|
mov r3, #6
|
|
bl ov15_021FA070
|
|
add r0, r4, #0
|
|
bl ov15_021FF850
|
|
add r0, r4, #0
|
|
bl ov15_021FA074
|
|
mov r1, #0
|
|
add r2, r0, #0
|
|
add r0, r4, #0
|
|
add r3, r1, #0
|
|
bl ov15_021FD574
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r3, [r4, r0]
|
|
add r0, r4, #0
|
|
add r1, r3, #0
|
|
add r1, #0x64
|
|
ldrb r2, [r1]
|
|
mov r1, #0xc
|
|
mul r1, r2
|
|
add r1, r3, r1
|
|
mov r2, #0xa
|
|
ldrsh r1, [r1, r2]
|
|
sub r2, #0xb
|
|
mov r3, #0
|
|
bl ov15_021FF364
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r4, r1]
|
|
add r0, r4, #0
|
|
add r1, #0x64
|
|
ldrb r1, [r1]
|
|
bl ov15_02200030
|
|
mov r2, #0x8d
|
|
lsl r2, r2, #2
|
|
ldr r2, [r4, r2]
|
|
add r0, r4, #0
|
|
add r2, #0x64
|
|
ldrb r2, [r2]
|
|
mov r1, #1
|
|
bl ov15_021FD404
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r3, [r4, r0]
|
|
add r0, r3, #0
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
add r2, r1, #0
|
|
mul r2, r0
|
|
add r3, r3, r2
|
|
mov r2, #0xa
|
|
ldrb r1, [r3, #0xd]
|
|
ldrsh r2, [r3, r2]
|
|
add r0, r4, #0
|
|
mov r3, #0
|
|
bl ov15_021FF6BC
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r5, [r4, r0]
|
|
add r0, r4, #0
|
|
bl ov15_021FA074
|
|
add r1, r5, #4
|
|
add r5, #0x64
|
|
add r2, r0, #0
|
|
ldrb r5, [r5]
|
|
mov r3, #0xc
|
|
add r0, r4, #0
|
|
mul r3, r5
|
|
add r1, r1, r3
|
|
mov r3, #1
|
|
bl ov15_02200140
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r2, [r4, r0]
|
|
add r0, r2, #0
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
mul r0, r1
|
|
add r0, r2, r0
|
|
ldrh r0, [r0, #8]
|
|
ldr r1, _021F95FC ; =0x00000644
|
|
add r0, #8
|
|
str r0, [r4, r1]
|
|
ldr r1, [r4, r1]
|
|
add r0, r4, #0
|
|
bl ov15_021FFECC
|
|
add r0, r4, #0
|
|
bl ov15_021FA170
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r0, #0x65
|
|
ldrb r0, [r0]
|
|
add r0, #0xfc
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
cmp r0, #1
|
|
bhi _021F95B6
|
|
add r0, r4, #0
|
|
bl ov15_021FF1E0
|
|
_021F95B6:
|
|
add r0, r4, #0
|
|
bl ov15_021FD93C
|
|
ldr r0, _021F9600 ; =ov15_021F995C
|
|
add r1, r4, #0
|
|
bl Main_SetVBlankIntrCB
|
|
mov r1, #0
|
|
mov r0, #0x33
|
|
add r2, r1, #0
|
|
bl sub_02004EC4
|
|
bl sub_0203A964
|
|
ldr r2, _021F9604 ; =0x04000304
|
|
ldrh r1, [r2]
|
|
lsr r0, r2, #0xb
|
|
orr r0, r1
|
|
strh r0, [r2]
|
|
mov r0, #4
|
|
mov r1, #1
|
|
bl ToggleBgLayer
|
|
mov r0, #1
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_021F95EC: .word 0xFFFFE0FF
|
|
_021F95F0: .word 0x04001000
|
|
_021F95F4: .word 0x0000094C
|
|
_021F95F8: .word 0x00000615
|
|
_021F95FC: .word 0x00000644
|
|
_021F9600: .word ov15_021F995C
|
|
_021F9604: .word 0x04000304
|
|
thumb_func_end Bag_Init
|
|
|
|
thumb_func_start Bag_Main
|
|
Bag_Main: ; 0x021F9608
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
bl OverlayManager_GetData
|
|
ldr r1, [r4]
|
|
add r5, r0, #0
|
|
cmp r1, #0x25
|
|
bhi _021F96B8
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021F9624: ; jump table
|
|
.short _021F9670 - _021F9624 - 2 ; case 0
|
|
.short _021F96A8 - _021F9624 - 2 ; case 1
|
|
.short _021F96B0 - _021F9624 - 2 ; case 2
|
|
.short _021F96E8 - _021F9624 - 2 ; case 3
|
|
.short _021F96F0 - _021F9624 - 2 ; case 4
|
|
.short _021F96F8 - _021F9624 - 2 ; case 5
|
|
.short _021F9700 - _021F9624 - 2 ; case 6
|
|
.short _021F9708 - _021F9624 - 2 ; case 7
|
|
.short _021F9710 - _021F9624 - 2 ; case 8
|
|
.short _021F9718 - _021F9624 - 2 ; case 9
|
|
.short _021F9720 - _021F9624 - 2 ; case 10
|
|
.short _021F9728 - _021F9624 - 2 ; case 11
|
|
.short _021F9730 - _021F9624 - 2 ; case 12
|
|
.short _021F9738 - _021F9624 - 2 ; case 13
|
|
.short _021F9740 - _021F9624 - 2 ; case 14
|
|
.short _021F9748 - _021F9624 - 2 ; case 15
|
|
.short _021F9750 - _021F9624 - 2 ; case 16
|
|
.short _021F9758 - _021F9624 - 2 ; case 17
|
|
.short _021F9760 - _021F9624 - 2 ; case 18
|
|
.short _021F9768 - _021F9624 - 2 ; case 19
|
|
.short _021F9770 - _021F9624 - 2 ; case 20
|
|
.short _021F9778 - _021F9624 - 2 ; case 21
|
|
.short _021F9780 - _021F9624 - 2 ; case 22
|
|
.short _021F9788 - _021F9624 - 2 ; case 23
|
|
.short _021F9790 - _021F9624 - 2 ; case 24
|
|
.short _021F97A0 - _021F9624 - 2 ; case 25
|
|
.short _021F9798 - _021F9624 - 2 ; case 26
|
|
.short _021F97A8 - _021F9624 - 2 ; case 27
|
|
.short _021F97B0 - _021F9624 - 2 ; case 28
|
|
.short _021F97B8 - _021F9624 - 2 ; case 29
|
|
.short _021F97C0 - _021F9624 - 2 ; case 30
|
|
.short _021F97CA - _021F9624 - 2 ; case 31
|
|
.short _021F97D6 - _021F9624 - 2 ; case 32
|
|
.short _021F97DE - _021F9624 - 2 ; case 33
|
|
.short _021F97E6 - _021F9624 - 2 ; case 34
|
|
.short _021F97EE - _021F9624 - 2 ; case 35
|
|
.short _021F97F6 - _021F9624 - 2 ; case 36
|
|
.short _021F9804 - _021F9624 - 2 ; case 37
|
|
_021F9670:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #1
|
|
bne _021F96B8
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r0, #0x65
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
beq _021F9696
|
|
cmp r0, #2
|
|
beq _021F9690
|
|
cmp r0, #3
|
|
beq _021F969C
|
|
b _021F96A2
|
|
_021F9690:
|
|
mov r0, #0x10
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F9696:
|
|
mov r0, #0xe
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F969C:
|
|
mov r0, #0x1a
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F96A2:
|
|
mov r0, #1
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F96A8:
|
|
bl ov15_021FA1BC
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F96B0:
|
|
bl ov15_021FA93C
|
|
cmp r0, #1
|
|
beq _021F96BA
|
|
_021F96B8:
|
|
b _021F9810
|
|
_021F96BA:
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r0, #0x65
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
bne _021F96CE
|
|
mov r0, #0x10
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F96CE:
|
|
cmp r0, #1
|
|
bne _021F96D8
|
|
mov r0, #0xe
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F96D8:
|
|
cmp r0, #3
|
|
bne _021F96E2
|
|
mov r0, #0x1a
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F96E2:
|
|
mov r0, #1
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F96E8:
|
|
bl ov15_021FAE48
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F96F0:
|
|
bl ov15_021FB5AC
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F96F8:
|
|
bl ov15_021FBD50
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F9700:
|
|
bl ov15_021FBF98
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F9708:
|
|
bl ov15_021FBFC0
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F9710:
|
|
bl ov15_021FBFF8
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F9718:
|
|
bl ov15_021FC01C
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F9720:
|
|
bl ov15_021FC140
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F9728:
|
|
bl ov15_021FC164
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F9730:
|
|
bl ov15_021FB700
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F9738:
|
|
bl ov15_021FB820
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F9740:
|
|
bl ov15_021FC41C
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F9748:
|
|
bl ov15_021FC784
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F9750:
|
|
bl ov15_021FC7EC
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F9758:
|
|
bl ov15_021FCD80
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F9760:
|
|
bl ov15_021FCDE4
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F9768:
|
|
bl ov15_021FCFC8
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F9770:
|
|
bl ov15_021FD058
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F9778:
|
|
bl ov15_021FD0E8
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F9780:
|
|
bl ov15_021FD10C
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F9788:
|
|
bl ov15_021FD24C
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F9790:
|
|
bl ov15_021FD2FC
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F9798:
|
|
bl ov15_021FD3AC
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F97A0:
|
|
bl ov15_021FC2E0
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F97A8:
|
|
bl ov15_021FA4F8
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F97B0:
|
|
bl ov15_021FB604
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F97B8:
|
|
bl ov15_021FB654
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F97C0:
|
|
mov r1, #1
|
|
bl ov15_021FA578
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F97CA:
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
bl ov15_021FA578
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F97D6:
|
|
bl ov15_021FB060
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F97DE:
|
|
bl ov15_021FAFFC
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F97E6:
|
|
bl ov15_021FCB64
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F97EE:
|
|
bl ov15_021FD850
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F97F6:
|
|
mov r0, #1
|
|
mov r1, #6
|
|
bl sub_020880CC
|
|
mov r0, #0x25
|
|
str r0, [r4]
|
|
b _021F9810
|
|
_021F9804:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #1
|
|
bne _021F9810
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021F9810:
|
|
add r0, r5, #0
|
|
bl ov15_021FF8D4
|
|
mov r0, #0x93
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl SpriteGfxHandler_RenderAndAnimateSprites
|
|
add r0, r5, #0
|
|
bl ov15_021FDC88
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end Bag_Main
|
|
|
|
thumb_func_start Bag_Exit
|
|
Bag_Exit: ; 0x021F982C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
bl OverlayManager_GetData
|
|
add r4, r0, #0
|
|
bl ov15_021FDC6C
|
|
add r0, r4, #0
|
|
bl ov15_021FF894
|
|
ldr r0, _021F98EC ; =0x0000068C
|
|
ldr r0, [r4, r0]
|
|
bl FreeToHeap
|
|
mov r0, #0x69
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
bl ov15_021FA0D8
|
|
add r0, r4, #0
|
|
bl ov15_021F9EA8
|
|
add r0, r4, #0
|
|
bl ov15_021FE154
|
|
ldr r0, [r4]
|
|
bl ov15_021F9A8C
|
|
bl sub_02021238
|
|
bl GF_DestroyVramTransferManager
|
|
add r0, r4, #0
|
|
bl ov15_021FEB64
|
|
add r0, r4, #0
|
|
bl ov15_021FE504
|
|
add r0, r4, #0
|
|
bl ov15_021FE8A4
|
|
add r0, r4, #0
|
|
bl ov15_021FA028
|
|
ldr r0, _021F98F0 ; =0x000005E4
|
|
ldr r0, [r4, r0]
|
|
bl String_Delete
|
|
mov r0, #0xbf
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl DestroyMsgData
|
|
mov r0, #0xbe
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl DestroyMsgData
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl DestroyMsgData
|
|
mov r0, #0xbb
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl MessagePrinter_Delete
|
|
mov r0, #0xbd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl MessageFormat_Delete
|
|
mov r0, #0x91
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl NARC_Delete
|
|
add r0, r5, #0
|
|
bl OverlayManager_FreeData
|
|
bl sub_02004B10
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl Main_SetVBlankIntrCB
|
|
mov r0, #6
|
|
bl DestroyHeap
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021F98EC: .word 0x0000068C
|
|
_021F98F0: .word 0x000005E4
|
|
thumb_func_end Bag_Exit
|
|
|
|
thumb_func_start BagApp_GetSaveStructPtrs
|
|
BagApp_GetSaveStructPtrs: ; 0x021F98F4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
ldr r0, [r0]
|
|
bl Save_Bag_Get
|
|
mov r1, #0x8e
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
sub r0, r1, #4
|
|
ldr r0, [r4, r0]
|
|
ldr r0, [r0]
|
|
bl Save_PlayerData_GetProfileAddr
|
|
mov r1, #0x8f
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
sub r1, #8
|
|
ldr r0, [r4, r1]
|
|
ldr r0, [r0]
|
|
bl Save_PlayerData_GetOptionsAddr
|
|
mov r1, #9
|
|
lsl r1, r1, #6
|
|
str r0, [r4, r1]
|
|
pop {r4, pc}
|
|
thumb_func_end BagApp_GetSaveStructPtrs
|
|
|
|
thumb_func_start BagApp_GetSaveRoamers
|
|
BagApp_GetSaveRoamers: ; 0x021F992C
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
ldr r3, _021F9938 ; =Save_Roamers_Get
|
|
ldr r0, [r0]
|
|
bx r3
|
|
.balign 4, 0
|
|
_021F9938: .word Save_Roamers_Get
|
|
thumb_func_end BagApp_GetSaveRoamers
|
|
|
|
thumb_func_start BagApp_GetRepelStepCountAddr
|
|
BagApp_GetRepelStepCountAddr: ; 0x021F993C
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
bl BagApp_GetSaveRoamers
|
|
bl RoamerSave_GetRepelAddr
|
|
strb r4, [r0]
|
|
pop {r4, pc}
|
|
thumb_func_end BagApp_GetRepelStepCountAddr
|
|
|
|
thumb_func_start BagApp_SetFlute
|
|
BagApp_SetFlute: ; 0x021F994C
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
bl BagApp_GetSaveRoamers
|
|
add r1, r4, #0
|
|
bl RoamerSave_SetFlute
|
|
pop {r4, pc}
|
|
thumb_func_end BagApp_SetFlute
|
|
|
|
thumb_func_start ov15_021F995C
|
|
ov15_021F995C: ; 0x021F995C
|
|
push {r3, lr}
|
|
ldr r0, [r0]
|
|
bl DoScheduledBgGpuUpdates
|
|
bl GF_RunVramTransferTasks
|
|
bl thunk_OamManager_ApplyAndResetBuffers
|
|
ldr r3, _021F997C ; =0x027E0000
|
|
ldr r1, _021F9980 ; =0x00003FF8
|
|
mov r0, #1
|
|
ldr r2, [r3, r1]
|
|
orr r0, r2
|
|
str r0, [r3, r1]
|
|
pop {r3, pc}
|
|
nop
|
|
_021F997C: .word 0x027E0000
|
|
_021F9980: .word 0x00003FF8
|
|
thumb_func_end ov15_021F995C
|
|
|
|
thumb_func_start ov15_021F9984
|
|
ov15_021F9984: ; 0x021F9984
|
|
push {r4, lr}
|
|
sub sp, #0x28
|
|
ldr r4, _021F99A0 ; =ov15_02200618
|
|
add r3, sp, #0
|
|
mov r2, #5
|
|
_021F998E:
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _021F998E
|
|
add r0, sp, #0
|
|
bl GfGfx_SetBanks
|
|
add sp, #0x28
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021F99A0: .word ov15_02200618
|
|
thumb_func_end ov15_021F9984
|
|
|
|
thumb_func_start ov15_021F99A4
|
|
ov15_021F99A4: ; 0x021F99A4
|
|
push {r4, r5, lr}
|
|
sub sp, #0x14
|
|
ldr r5, _021F9A68 ; =ov15_02200518
|
|
add r3, sp, #4
|
|
add r4, r0, #0
|
|
add r2, r3, #0
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
add r0, r2, #0
|
|
bl SetBothScreensModesAndDisable
|
|
ldr r2, _021F9A6C ; =ov15_022006CC
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
ldr r2, _021F9A70 ; =ov15_022006E8
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
ldr r2, _021F9A74 ; =ov15_02200704
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl BgClearTilemapBufferAndCommit
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl BgClearTilemapBufferAndCommit
|
|
mov r0, #1
|
|
mov r1, #0x20
|
|
mov r2, #0
|
|
mov r3, #6
|
|
bl BG_ClearCharDataRange
|
|
ldr r2, _021F9A78 ; =ov15_02200720
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
ldr r2, _021F9A7C ; =ov15_0220073C
|
|
add r0, r4, #0
|
|
mov r1, #5
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
ldr r2, _021F9A80 ; =ov15_02200758
|
|
add r0, r4, #0
|
|
mov r1, #6
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
ldr r2, _021F9A84 ; =ov15_02200774
|
|
add r0, r4, #0
|
|
mov r1, #7
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
bl BgClearTilemapBufferAndCommit
|
|
add r0, r4, #0
|
|
mov r1, #7
|
|
bl BgClearTilemapBufferAndCommit
|
|
mov r0, #4
|
|
mov r1, #0x20
|
|
mov r2, #0
|
|
mov r3, #6
|
|
bl BG_ClearCharDataRange
|
|
mov r0, #7
|
|
mov r1, #0x20
|
|
mov r2, #0
|
|
mov r3, #6
|
|
bl BG_ClearCharDataRange
|
|
mov r1, #0
|
|
ldr r0, _021F9A88 ; =0x04000050
|
|
mov r2, #8
|
|
add r3, r1, #0
|
|
str r1, [sp]
|
|
bl G2x_SetBlendAlpha_
|
|
add sp, #0x14
|
|
pop {r4, r5, pc}
|
|
.balign 4, 0
|
|
_021F9A68: .word ov15_02200518
|
|
_021F9A6C: .word ov15_022006CC
|
|
_021F9A70: .word ov15_022006E8
|
|
_021F9A74: .word ov15_02200704
|
|
_021F9A78: .word ov15_02200720
|
|
_021F9A7C: .word ov15_0220073C
|
|
_021F9A80: .word ov15_02200758
|
|
_021F9A84: .word ov15_02200774
|
|
_021F9A88: .word 0x04000050
|
|
thumb_func_end ov15_021F99A4
|
|
|
|
thumb_func_start ov15_021F9A8C
|
|
ov15_021F9A8C: ; 0x021F9A8C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x1f
|
|
mov r1, #0
|
|
bl GfGfx_EngineATogglePlanes
|
|
mov r0, #0x1b
|
|
mov r1, #0
|
|
bl GfGfx_EngineBTogglePlanes
|
|
add r0, r4, #0
|
|
mov r1, #7
|
|
bl FreeBgTilemapBuffer
|
|
add r0, r4, #0
|
|
mov r1, #6
|
|
bl FreeBgTilemapBuffer
|
|
add r0, r4, #0
|
|
mov r1, #5
|
|
bl FreeBgTilemapBuffer
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
bl FreeBgTilemapBuffer
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl FreeBgTilemapBuffer
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
bl FreeBgTilemapBuffer
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl FreeBgTilemapBuffer
|
|
mov r0, #6
|
|
add r1, r4, #0
|
|
bl FreeToHeapExplicit
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021F9A8C
|
|
|
|
thumb_func_start ov15_021F9AE4
|
|
ov15_021F9AE4: ; 0x021F9AE4
|
|
push {r4, lr}
|
|
sub sp, #0x10
|
|
add r4, r0, #0
|
|
mov r0, #0xf
|
|
mov r1, #6
|
|
bl NARC_New
|
|
mov r1, #0x91
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #6
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4]
|
|
mov r0, #0xf
|
|
mov r1, #7
|
|
mov r3, #2
|
|
bl GfGfxLoader_LoadCharData
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #6
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4]
|
|
mov r0, #0xf
|
|
mov r1, #0x36
|
|
mov r3, #2
|
|
bl GfGfxLoader_LoadScrnData
|
|
ldr r0, _021F9C60 ; =0x00000615
|
|
ldrb r0, [r4, r0]
|
|
cmp r0, #0
|
|
bne _021F9B4A
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #6
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4]
|
|
mov r0, #0xf
|
|
mov r1, #0x5e
|
|
mov r3, #3
|
|
bl GfGfxLoader_LoadScrnData
|
|
b _021F9B62
|
|
_021F9B4A:
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #6
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4]
|
|
mov r0, #0xf
|
|
mov r1, #0x5d
|
|
mov r3, #3
|
|
bl GfGfxLoader_LoadScrnData
|
|
_021F9B62:
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
mov r0, #6
|
|
str r0, [sp, #4]
|
|
mov r0, #0xf
|
|
mov r1, #8
|
|
add r3, r2, #0
|
|
bl GfGfxLoader_GXLoadPal
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
mov r0, #6
|
|
mov r3, #0x1a
|
|
str r0, [sp, #4]
|
|
mov r0, #0xf
|
|
mov r1, #0x11
|
|
mov r2, #0
|
|
lsl r3, r3, #4
|
|
bl GfGfxLoader_GXLoadPal
|
|
mov r1, #0x16
|
|
mov r0, #0
|
|
lsl r1, r1, #4
|
|
mov r2, #6
|
|
bl LoadFontPal1
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #6
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
ldr r2, _021F9C64 ; =0x000003F7
|
|
mov r1, #1
|
|
mov r3, #0xe
|
|
bl LoadUserFrameGfx1
|
|
mov r0, #9
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
bl Options_GetFrame
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
mov r0, #6
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
ldr r2, _021F9C68 ; =0x000003D9
|
|
mov r1, #1
|
|
mov r3, #0xc
|
|
bl LoadUserFrameGfx2
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #6
|
|
str r0, [sp, #4]
|
|
mov r0, #0xf
|
|
mov r1, #0x26
|
|
mov r2, #4
|
|
bl GfGfxLoader_GXLoadPal
|
|
mov r1, #0x16
|
|
mov r0, #4
|
|
lsl r1, r1, #4
|
|
mov r2, #6
|
|
bl LoadFontPal1
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r3, #6
|
|
str r3, [sp, #0xc]
|
|
ldr r2, [r4]
|
|
mov r0, #0xf
|
|
mov r1, #0x2e
|
|
bl GfGfxLoader_LoadCharData
|
|
ldr r2, _021F9C6C ; =0x00000694
|
|
mov r0, #0xf
|
|
mov r1, #0x28
|
|
add r2, r4, r2
|
|
mov r3, #6
|
|
bl GfGfxLoader_GetPlttData
|
|
ldr r2, _021F9C70 ; =0x0000068C
|
|
mov r1, #0x29
|
|
str r0, [r4, r2]
|
|
add r2, #0xc
|
|
mov r0, #0xf
|
|
add r2, r4, r2
|
|
mov r3, #6
|
|
bl GfGfxLoader_GetPlttData
|
|
mov r1, #0x69
|
|
lsl r1, r1, #4
|
|
str r0, [r4, r1]
|
|
mov r0, #0x80
|
|
mov r2, #4
|
|
str r0, [sp]
|
|
mov r0, #6
|
|
add r3, r2, #0
|
|
str r0, [sp, #4]
|
|
mov r0, #0xf
|
|
mov r1, #8
|
|
add r3, #0xfc
|
|
bl GfGfxLoader_GXLoadPal
|
|
mov r0, #9
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
bl Options_GetFrame
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
mov r0, #6
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
ldr r2, _021F9C74 ; =0x000003E2
|
|
mov r1, #4
|
|
mov r3, #0xc
|
|
bl LoadUserFrameGfx2
|
|
add sp, #0x10
|
|
pop {r4, pc}
|
|
nop
|
|
_021F9C60: .word 0x00000615
|
|
_021F9C64: .word 0x000003F7
|
|
_021F9C68: .word 0x000003D9
|
|
_021F9C6C: .word 0x00000694
|
|
_021F9C70: .word 0x0000068C
|
|
_021F9C74: .word 0x000003E2
|
|
thumb_func_end ov15_021F9AE4
|
|
|
|
thumb_func_start ov15_021F9C78
|
|
ov15_021F9C78: ; 0x021F9C78
|
|
push {r3, lr}
|
|
sub sp, #0x10
|
|
add r2, r0, #0
|
|
cmp r1, #1
|
|
bne _021F9C9E
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #6
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r2]
|
|
mov r0, #0xf
|
|
mov r1, #0x36
|
|
mov r3, #2
|
|
bl GfGfxLoader_LoadScrnData
|
|
add sp, #0x10
|
|
pop {r3, pc}
|
|
_021F9C9E:
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #6
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r2]
|
|
mov r0, #0xf
|
|
mov r1, #9
|
|
mov r3, #2
|
|
bl GfGfxLoader_LoadScrnData
|
|
add sp, #0x10
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021F9C78
|
|
|
|
thumb_func_start ov15_021F9CBC
|
|
ov15_021F9CBC: ; 0x021F9CBC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
mov r1, #0x1b
|
|
mov r2, #0xa
|
|
mov r3, #6
|
|
bl NewMsgDataFromNarc
|
|
mov r1, #0x2f
|
|
lsl r1, r1, #4
|
|
str r0, [r4, r1]
|
|
mov r0, #1
|
|
mov r1, #2
|
|
mov r2, #0
|
|
mov r3, #6
|
|
bl MessagePrinter_New
|
|
mov r1, #0xbb
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
mov r0, #6
|
|
bl MessageFormat_New
|
|
mov r1, #0xbd
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
mov r0, #0
|
|
mov r1, #0x1b
|
|
mov r2, #0xde
|
|
mov r3, #6
|
|
bl NewMsgDataFromNarc
|
|
mov r2, #0xbe
|
|
lsl r2, r2, #2
|
|
str r0, [r4, r2]
|
|
mov r0, #0
|
|
mov r1, #0x1b
|
|
sub r2, #0xa
|
|
mov r3, #6
|
|
bl NewMsgDataFromNarc
|
|
mov r1, #0xbf
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
mov r0, #1
|
|
lsl r0, r0, #8
|
|
mov r1, #6
|
|
bl String_New
|
|
ldr r1, _021F9D24 ; =0x000005E4
|
|
str r0, [r4, r1]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021F9D24: .word 0x000005E4
|
|
thumb_func_end ov15_021F9CBC
|
|
|
|
thumb_func_start ov15_021F9D28
|
|
ov15_021F9D28: ; 0x021F9D28
|
|
push {r3, r4, r5, r6}
|
|
ldr r2, _021F9D5C ; =0x00000614
|
|
mov r1, #0
|
|
strb r1, [r0, r2]
|
|
add r4, r2, #0
|
|
mov r2, #0x8d
|
|
lsl r2, r2, #2
|
|
mov r3, #0xc
|
|
_021F9D38:
|
|
add r5, r1, #0
|
|
ldr r6, [r0, r2]
|
|
mul r5, r3
|
|
add r5, r6, r5
|
|
ldr r5, [r5, #4]
|
|
cmp r5, #0
|
|
beq _021F9D4C
|
|
ldrb r5, [r0, r4]
|
|
add r5, r5, #1
|
|
strb r5, [r0, r4]
|
|
_021F9D4C:
|
|
add r1, r1, #1
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
cmp r1, #8
|
|
blo _021F9D38
|
|
pop {r3, r4, r5, r6}
|
|
bx lr
|
|
nop
|
|
_021F9D5C: .word 0x00000614
|
|
thumb_func_end ov15_021F9D28
|
|
|
|
thumb_func_start ov15_021F9D60
|
|
ov15_021F9D60: ; 0x021F9D60
|
|
push {r3, r4}
|
|
mov r3, #0x8d
|
|
lsl r3, r3, #2
|
|
ldr r0, [r0, r3]
|
|
add r4, r0, #4
|
|
add r0, #0x64
|
|
ldrb r3, [r0]
|
|
mov r0, #0xc
|
|
mul r0, r3
|
|
cmp r2, #0
|
|
ldr r2, [r4, r0]
|
|
bne _021F9D80
|
|
lsl r0, r1, #2
|
|
ldrh r0, [r2, r0]
|
|
pop {r3, r4}
|
|
bx lr
|
|
_021F9D80:
|
|
lsl r0, r1, #2
|
|
add r0, r2, r0
|
|
ldrh r0, [r0, #2]
|
|
pop {r3, r4}
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021F9D60
|
|
|
|
thumb_func_start ov15_021F9D8C
|
|
ov15_021F9D8C: ; 0x021F9D8C
|
|
add r3, r1, #0
|
|
add r1, r2, #0
|
|
add r2, r3, #0
|
|
ldr r3, _021F9D98 ; =ReadMsgDataIntoString
|
|
bx r3
|
|
nop
|
|
_021F9D98: .word ReadMsgDataIntoString
|
|
thumb_func_end ov15_021F9D8C
|
|
|
|
thumb_func_start ov15_021F9D9C
|
|
ov15_021F9D9C: ; 0x021F9D9C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r0, r2, #0
|
|
bl TMHMGetMove
|
|
add r1, r0, #0
|
|
add r0, r5, #0
|
|
add r2, r4, #0
|
|
bl ReadMsgDataIntoString
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov15_021F9D9C
|
|
|
|
thumb_func_start ov15_021F9DB4
|
|
ov15_021F9DB4: ; 0x021F9DB4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r1, [r7, r0]
|
|
mov r5, #0
|
|
add r1, #0x64
|
|
strb r5, [r1]
|
|
ldr r0, [r7, r0]
|
|
add r4, r0, #4
|
|
ldr r0, [r0, #0x6c]
|
|
cmp r0, #0
|
|
bne _021F9E12
|
|
add r2, r5, #0
|
|
mov r1, #0xc
|
|
_021F9DD2:
|
|
add r0, r5, #0
|
|
mul r0, r1
|
|
add r3, r4, r0
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _021F9DE2
|
|
strh r2, [r3, #4]
|
|
strh r2, [r3, #6]
|
|
_021F9DE2:
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x10
|
|
lsr r5, r0, #0x10
|
|
cmp r5, #8
|
|
blo _021F9DD2
|
|
mov r2, #0
|
|
mov r1, #0xc
|
|
_021F9DF0:
|
|
add r0, r2, #0
|
|
mul r0, r1
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _021F9E06
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r7, r0]
|
|
add r0, #0x64
|
|
strb r2, [r0]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021F9E06:
|
|
add r0, r2, #1
|
|
lsl r0, r0, #0x10
|
|
lsr r2, r0, #0x10
|
|
cmp r2, #8
|
|
blo _021F9DF0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021F9E12:
|
|
mov r0, #0xc
|
|
mul r0, r5
|
|
add r6, r4, r0
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _021F9E3E
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r7, r0]
|
|
ldrb r1, [r6, #8]
|
|
add r2, sp, #0
|
|
ldr r0, [r0, #0x6c]
|
|
add r2, #1
|
|
add r3, sp, #0
|
|
bl BagCursor_Field_PocketGetPosition
|
|
add r0, sp, #0
|
|
ldrb r0, [r0, #1]
|
|
strh r0, [r6, #4]
|
|
add r0, sp, #0
|
|
ldrb r0, [r0]
|
|
strh r0, [r6, #6]
|
|
_021F9E3E:
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x10
|
|
lsr r5, r0, #0x10
|
|
cmp r5, #8
|
|
blo _021F9E12
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r7, r0]
|
|
ldr r0, [r0, #0x6c]
|
|
bl BagCursor_Field_GetPocket
|
|
mov r1, #0xc
|
|
mul r1, r0
|
|
ldr r1, [r4, r1]
|
|
cmp r1, #0
|
|
bne _021F9E7A
|
|
mov r3, #0
|
|
mov r2, #0xc
|
|
_021F9E62:
|
|
add r1, r3, #0
|
|
mul r1, r2
|
|
ldr r1, [r4, r1]
|
|
cmp r1, #0
|
|
beq _021F9E70
|
|
add r0, r3, #0
|
|
b _021F9E7A
|
|
_021F9E70:
|
|
add r1, r3, #1
|
|
lsl r1, r1, #0x10
|
|
lsr r3, r1, #0x10
|
|
cmp r3, #8
|
|
blo _021F9E62
|
|
_021F9E7A:
|
|
mov r1, #0
|
|
mov r2, #0xc
|
|
_021F9E7E:
|
|
add r3, r1, #0
|
|
mul r3, r2
|
|
add r5, r4, r3
|
|
ldr r3, [r4, r3]
|
|
cmp r3, #0
|
|
beq _021F9E9C
|
|
ldrb r3, [r5, #8]
|
|
cmp r0, r3
|
|
bne _021F9E9C
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r7, r0]
|
|
add r0, #0x64
|
|
strb r1, [r0]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021F9E9C:
|
|
add r1, r1, #1
|
|
lsl r1, r1, #0x10
|
|
lsr r1, r1, #0x10
|
|
cmp r1, #8
|
|
blo _021F9E7E
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov15_021F9DB4
|
|
|
|
thumb_func_start ov15_021F9EA8
|
|
ov15_021F9EA8: ; 0x021F9EA8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r1, [r6, r0]
|
|
ldr r0, [r1, #0x6c]
|
|
cmp r0, #0
|
|
beq _021F9F06
|
|
add r0, r1, #4
|
|
str r0, [sp]
|
|
mov r4, #0
|
|
add r5, r0, #0
|
|
mov r7, #6
|
|
_021F9EC2:
|
|
ldr r0, [r5]
|
|
cmp r0, #0
|
|
beq _021F9EE2
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldrh r2, [r5, #4]
|
|
ldrsh r3, [r5, r7]
|
|
ldr r0, [r6, r0]
|
|
lsl r2, r2, #0x18
|
|
lsl r3, r3, #0x18
|
|
ldrb r1, [r5, #8]
|
|
ldr r0, [r0, #0x6c]
|
|
lsr r2, r2, #0x18
|
|
lsr r3, r3, #0x18
|
|
bl BagCursor_Field_PocketSetPosition
|
|
_021F9EE2:
|
|
add r4, r4, #1
|
|
add r5, #0xc
|
|
cmp r4, #8
|
|
blo _021F9EC2
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r1, [r6, r0]
|
|
ldr r0, [r1, #0x6c]
|
|
add r1, #0x64
|
|
ldrb r2, [r1]
|
|
mov r1, #0xc
|
|
add r3, r2, #0
|
|
mul r3, r1
|
|
ldr r1, [sp]
|
|
add r1, r1, r3
|
|
ldrb r1, [r1, #8]
|
|
bl BagCursor_Field_SetPocket
|
|
_021F9F06:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov15_021F9EA8
|
|
|
|
thumb_func_start ov15_021F9F08
|
|
ov15_021F9F08: ; 0x021F9F08
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
str r0, [sp]
|
|
ldr r0, [r0, r1]
|
|
add r2, r0, #4
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
mul r0, r1
|
|
add r4, r2, r0
|
|
ldrb r1, [r4, #8]
|
|
cmp r1, #3
|
|
bne _021F9F82
|
|
ldr r0, _021FA000 ; =ov15_022008B0
|
|
mov r6, #0
|
|
ldrb r0, [r0, r1]
|
|
cmp r0, #0
|
|
bls _021F9F7E
|
|
ldr r0, [sp]
|
|
add r5, r6, #0
|
|
str r0, [sp, #4]
|
|
add r7, r0, #0
|
|
_021F9F38:
|
|
ldr r0, [r4]
|
|
ldrh r3, [r0, r5]
|
|
add r1, r0, r5
|
|
cmp r3, #0
|
|
beq _021F9F7E
|
|
ldrh r0, [r1, #2]
|
|
cmp r0, #0
|
|
beq _021F9F7E
|
|
mov r0, #0xbf
|
|
ldr r1, [sp]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #0x35
|
|
ldr r2, [sp, #4]
|
|
lsl r1, r1, #4
|
|
ldr r1, [r2, r1]
|
|
add r2, r3, #0
|
|
mov r3, #6
|
|
bl ov15_021F9D9C
|
|
ldr r0, [r4]
|
|
add r6, r6, #1
|
|
ldrh r1, [r0, r5]
|
|
ldr r0, _021FA004 ; =0x000006A4
|
|
add r5, r5, #4
|
|
strh r1, [r7, r0]
|
|
ldr r0, [sp, #4]
|
|
ldrb r1, [r4, #8]
|
|
add r0, r0, #4
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FA000 ; =ov15_022008B0
|
|
add r7, r7, #2
|
|
ldrb r0, [r0, r1]
|
|
cmp r6, r0
|
|
blo _021F9F38
|
|
_021F9F7E:
|
|
strb r6, [r4, #9]
|
|
b _021F9FDC
|
|
_021F9F82:
|
|
ldr r0, _021FA000 ; =ov15_022008B0
|
|
mov r6, #0
|
|
ldrb r0, [r0, r1]
|
|
cmp r0, #0
|
|
bls _021F9FDA
|
|
ldr r0, [sp]
|
|
add r5, r6, #0
|
|
str r0, [sp, #8]
|
|
add r7, r0, #0
|
|
_021F9F94:
|
|
ldr r0, [r4]
|
|
ldrh r3, [r0, r5]
|
|
add r1, r0, r5
|
|
cmp r3, #0
|
|
beq _021F9FDA
|
|
ldrh r0, [r1, #2]
|
|
cmp r0, #0
|
|
beq _021F9FDA
|
|
mov r0, #0xbe
|
|
ldr r1, [sp]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #0x35
|
|
ldr r2, [sp, #8]
|
|
lsl r1, r1, #4
|
|
ldr r1, [r2, r1]
|
|
add r2, r3, #0
|
|
mov r3, #6
|
|
bl ov15_021F9D8C
|
|
ldr r0, [r4]
|
|
add r6, r6, #1
|
|
ldrh r1, [r0, r5]
|
|
ldr r0, _021FA004 ; =0x000006A4
|
|
add r5, r5, #4
|
|
strh r1, [r7, r0]
|
|
ldr r0, [sp, #8]
|
|
ldrb r1, [r4, #8]
|
|
add r0, r0, #4
|
|
str r0, [sp, #8]
|
|
ldr r0, _021FA000 ; =ov15_022008B0
|
|
add r7, r7, #2
|
|
ldrb r0, [r0, r1]
|
|
cmp r6, r0
|
|
blo _021F9F94
|
|
_021F9FDA:
|
|
strb r6, [r4, #9]
|
|
_021F9FDC:
|
|
ldrb r0, [r4, #9]
|
|
cmp r0, #0
|
|
bne _021F9FE6
|
|
mov r1, #0
|
|
b _021F9FF2
|
|
_021F9FE6:
|
|
sub r0, r0, #1
|
|
mov r1, #6
|
|
bl _s32_div_f
|
|
mov r1, #6
|
|
mul r1, r0
|
|
_021F9FF2:
|
|
mov r0, #6
|
|
ldrsh r0, [r4, r0]
|
|
cmp r0, r1
|
|
ble _021F9FFC
|
|
strh r1, [r4, #6]
|
|
_021F9FFC:
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021FA000: .word ov15_022008B0
|
|
_021FA004: .word 0x000006A4
|
|
thumb_func_end ov15_021F9F08
|
|
|
|
thumb_func_start ov15_021FA008
|
|
ov15_021FA008: ; 0x021FA008
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r6, #0x35
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
mov r7, #0x12
|
|
lsl r6, r6, #4
|
|
_021FA014:
|
|
add r0, r7, #0
|
|
mov r1, #6
|
|
bl String_New
|
|
str r0, [r5, r6]
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #0xa5
|
|
blo _021FA014
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov15_021FA008
|
|
|
|
thumb_func_start ov15_021FA028
|
|
ov15_021FA028: ; 0x021FA028
|
|
push {r4, r5, r6, lr}
|
|
mov r6, #0x35
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
lsl r6, r6, #4
|
|
_021FA032:
|
|
ldr r0, [r5, r6]
|
|
bl String_Delete
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #0xa5
|
|
blo _021FA032
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FA028
|
|
|
|
thumb_func_start ov15_021FA044
|
|
ov15_021FA044: ; 0x021FA044
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
ldrsh r3, [r4, r0]
|
|
ldrh r0, [r1]
|
|
add r0, r3, r0
|
|
cmp r0, r2
|
|
ble _021FA062
|
|
sub r0, r2, #1
|
|
mov r1, #6
|
|
bl _s32_div_f
|
|
mov r1, #6
|
|
mul r1, r0
|
|
strh r1, [r4]
|
|
_021FA062:
|
|
mov r0, #0
|
|
ldrsh r1, [r4, r0]
|
|
cmp r1, #0
|
|
bge _021FA06C
|
|
strh r0, [r4]
|
|
_021FA06C:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FA044
|
|
|
|
thumb_func_start ov15_021FA070
|
|
ov15_021FA070: ; 0x021FA070
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FA070
|
|
|
|
thumb_func_start ov15_021FA074
|
|
ov15_021FA074: ; 0x021FA074
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r2, [r0, r1]
|
|
add r0, r2, #0
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
mul r0, r1
|
|
add r2, r2, r0
|
|
mov r0, #0xa
|
|
ldrb r1, [r2, #0xd]
|
|
ldrsh r0, [r2, r0]
|
|
sub r0, r1, r0
|
|
cmp r0, #6
|
|
ble _021FA094
|
|
mov r0, #6
|
|
_021FA094:
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FA074
|
|
|
|
thumb_func_start ov15_021FA098
|
|
ov15_021FA098: ; 0x021FA098
|
|
push {r3, r4, r5, lr}
|
|
ldr r1, _021FA0D4 ; =0x00000672
|
|
ldrb r4, [r0, r1]
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r5, [r0, r1]
|
|
add r0, r4, #0
|
|
mov r1, #6
|
|
bl _s32_div_f
|
|
add r1, r5, #0
|
|
add r1, #0x64
|
|
ldrb r2, [r1]
|
|
mov r1, #0xc
|
|
mul r1, r2
|
|
add r2, r5, r1
|
|
mov r1, #0xa
|
|
ldrsh r3, [r2, r1]
|
|
mov r1, #6
|
|
add r2, r0, #0
|
|
mul r2, r1
|
|
cmp r3, r2
|
|
bne _021FA0CE
|
|
add r0, r4, #0
|
|
bl _s32_div_f
|
|
b _021FA0D0
|
|
_021FA0CE:
|
|
sub r1, r1, #7
|
|
_021FA0D0:
|
|
add r0, r1, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021FA0D4: .word 0x00000672
|
|
thumb_func_end ov15_021FA098
|
|
|
|
thumb_func_start ov15_021FA0D8
|
|
ov15_021FA0D8: ; 0x021FA0D8
|
|
mov r1, #0xd2
|
|
mov r2, #0
|
|
lsl r1, r1, #2
|
|
str r2, [r0, r1]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FA0D8
|
|
|
|
thumb_func_start ov15_021FA0E4
|
|
ov15_021FA0E4: ; 0x021FA0E4
|
|
cmp r1, #8
|
|
blt _021FA102
|
|
cmp r1, #0xe
|
|
bge _021FA102
|
|
mov r2, #0x8d
|
|
lsl r2, r2, #2
|
|
ldr r3, [r0, r2]
|
|
sub r1, #8
|
|
add r0, r3, #0
|
|
add r0, #0x64
|
|
ldrb r2, [r0]
|
|
mov r0, #0xc
|
|
mul r0, r2
|
|
add r0, r3, r0
|
|
strh r1, [r0, #8]
|
|
_021FA102:
|
|
bx lr
|
|
thumb_func_end ov15_021FA0E4
|
|
|
|
thumb_func_start ov15_021FA104
|
|
ov15_021FA104: ; 0x021FA104
|
|
add r2, r1, #0
|
|
sub r2, #0xe
|
|
cmp r2, #1
|
|
bhi _021FA110
|
|
mov r0, #0
|
|
bx lr
|
|
_021FA110:
|
|
cmp r1, #7
|
|
bgt _021FA124
|
|
ldr r1, _021FA128 ; =0x00000644
|
|
ldr r0, [r0, r1]
|
|
cmp r0, #8
|
|
blt _021FA124
|
|
cmp r0, #0xd
|
|
bgt _021FA124
|
|
mov r0, #0
|
|
bx lr
|
|
_021FA124:
|
|
mov r0, #1
|
|
bx lr
|
|
.balign 4, 0
|
|
_021FA128: .word 0x00000644
|
|
thumb_func_end ov15_021FA104
|
|
|
|
thumb_func_start ov15_021FA12C
|
|
ov15_021FA12C: ; 0x021FA12C
|
|
push {r3, r4}
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r3, [r0, r1]
|
|
add r1, r3, #0
|
|
add r1, #0x64
|
|
ldrb r2, [r1]
|
|
mov r1, #0xc
|
|
add r3, r3, #4
|
|
mul r1, r2
|
|
add r1, r3, r1
|
|
mov r3, #6
|
|
ldrsh r4, [r1, r3]
|
|
ldr r3, _021FA168 ; =0x00000644
|
|
ldr r0, [r0, r3]
|
|
add r3, r4, r0
|
|
ldr r0, _021FA16C ; =ov15_022008B0
|
|
sub r3, #8
|
|
ldrb r0, [r0, r2]
|
|
cmp r0, r3
|
|
bhi _021FA15C
|
|
mov r0, #0
|
|
pop {r3, r4}
|
|
bx lr
|
|
_021FA15C:
|
|
ldr r1, [r1]
|
|
lsl r0, r3, #2
|
|
ldrh r0, [r1, r0]
|
|
pop {r3, r4}
|
|
bx lr
|
|
nop
|
|
_021FA168: .word 0x00000644
|
|
_021FA16C: .word ov15_022008B0
|
|
thumb_func_end ov15_021FA12C
|
|
|
|
thumb_func_start ov15_021FA170
|
|
ov15_021FA170: ; 0x021FA170
|
|
push {r4, lr}
|
|
ldr r1, _021FA1B8 ; =0x00000644
|
|
add r4, r0, #0
|
|
ldr r2, [r4, r1]
|
|
cmp r2, #8
|
|
blt _021FA19C
|
|
cmp r2, #0xd
|
|
bgt _021FA19C
|
|
bl ov15_021FA12C
|
|
add r2, r0, #0
|
|
beq _021FA192
|
|
add r0, r4, #0
|
|
add r1, r4, #4
|
|
bl ov15_021FECA0
|
|
pop {r4, pc}
|
|
_021FA192:
|
|
add r0, r4, #0
|
|
add r1, r4, #4
|
|
bl ov15_021FECC4
|
|
pop {r4, pc}
|
|
_021FA19C:
|
|
cmp r2, #0
|
|
blt _021FA1AE
|
|
cmp r2, #7
|
|
bgt _021FA1AE
|
|
add r0, r4, #0
|
|
add r1, r4, #4
|
|
bl ov15_021FECD8
|
|
pop {r4, pc}
|
|
_021FA1AE:
|
|
add r0, r4, #0
|
|
add r1, r4, #4
|
|
bl ov15_021FECC4
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021FA1B8: .word 0x00000644
|
|
thumb_func_end ov15_021FA170
|
|
|
|
thumb_func_start ov15_021FA1BC
|
|
ov15_021FA1BC: ; 0x021FA1BC
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
ldr r1, _021FA4A4 ; =gSystem
|
|
mov r2, #0x40
|
|
ldr r3, [r1, #0x4c]
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
tst r2, r3
|
|
beq _021FA1DE
|
|
ldr r0, _021FA4A8 ; =0x00000644
|
|
add r4, r4, #1
|
|
ldr r1, [r5, r0]
|
|
lsl r2, r1, #2
|
|
ldr r1, _021FA4AC ; =ov15_02200640
|
|
ldrb r1, [r1, r2]
|
|
str r1, [r5, r0]
|
|
b _021FA38C
|
|
_021FA1DE:
|
|
mov r2, #0x80
|
|
tst r2, r3
|
|
beq _021FA1F4
|
|
ldr r0, _021FA4A8 ; =0x00000644
|
|
add r4, r4, #1
|
|
ldr r1, [r5, r0]
|
|
lsl r2, r1, #2
|
|
ldr r1, _021FA4B0 ; =ov15_02200641
|
|
ldrb r1, [r1, r2]
|
|
str r1, [r5, r0]
|
|
b _021FA38C
|
|
_021FA1F4:
|
|
mov r2, #0x20
|
|
add r6, r3, #0
|
|
tst r6, r2
|
|
beq _021FA246
|
|
ldr r1, _021FA4A8 ; =0x00000644
|
|
ldr r3, _021FA4B4 ; =ov15_02200642
|
|
ldr r1, [r5, r1]
|
|
lsl r6, r1, #2
|
|
ldrb r3, [r3, r6]
|
|
cmp r3, #0xe
|
|
bne _021FA21E
|
|
mov r1, #2
|
|
str r1, [sp]
|
|
mov r1, #0xe
|
|
add r2, sp, #0xc
|
|
mov r3, #1
|
|
str r4, [sp, #4]
|
|
bl ov15_021FA73C
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
_021FA21E:
|
|
cmp r1, #0x10
|
|
beq _021FA274
|
|
cmp r1, #0
|
|
blt _021FA23E
|
|
cmp r1, #8
|
|
bge _021FA23E
|
|
sub r2, #0x21
|
|
bl ov15_021FA6C0
|
|
ldr r1, _021FA4A8 ; =0x00000644
|
|
ldr r2, [r5, r1]
|
|
cmp r2, r0
|
|
beq _021FA274
|
|
str r0, [r5, r1]
|
|
add r4, r4, #1
|
|
b _021FA38C
|
|
_021FA23E:
|
|
ldr r0, _021FA4A8 ; =0x00000644
|
|
add r4, r4, #1
|
|
str r3, [r5, r0]
|
|
b _021FA38C
|
|
_021FA246:
|
|
mov r2, #0x10
|
|
tst r3, r2
|
|
beq _021FA29A
|
|
ldr r1, _021FA4A8 ; =0x00000644
|
|
ldr r2, _021FA4B8 ; =ov15_02200643
|
|
ldr r1, [r5, r1]
|
|
lsl r3, r1, #2
|
|
ldrb r2, [r2, r3]
|
|
cmp r2, #0xf
|
|
bne _021FA270
|
|
mov r1, #2
|
|
str r1, [sp]
|
|
add r2, sp, #8
|
|
mov r1, #0xf
|
|
add r2, #3
|
|
mov r3, #1
|
|
str r4, [sp, #4]
|
|
bl ov15_021FA73C
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
_021FA270:
|
|
cmp r1, #0x10
|
|
bne _021FA276
|
|
_021FA274:
|
|
b _021FA38C
|
|
_021FA276:
|
|
cmp r1, #0
|
|
blt _021FA292
|
|
cmp r1, #8
|
|
bge _021FA292
|
|
mov r2, #1
|
|
bl ov15_021FA6C0
|
|
ldr r1, _021FA4A8 ; =0x00000644
|
|
ldr r2, [r5, r1]
|
|
cmp r2, r0
|
|
beq _021FA38C
|
|
str r0, [r5, r1]
|
|
add r4, r4, #1
|
|
b _021FA38C
|
|
_021FA292:
|
|
ldr r0, _021FA4A8 ; =0x00000644
|
|
add r4, r4, #1
|
|
str r2, [r5, r0]
|
|
b _021FA38C
|
|
_021FA29A:
|
|
ldr r3, [r1, #0x48]
|
|
lsl r1, r2, #5
|
|
tst r1, r3
|
|
beq _021FA314
|
|
ldr r1, _021FA4A8 ; =0x00000644
|
|
ldr r1, [r5, r1]
|
|
cmp r1, #0
|
|
blt _021FA2E6
|
|
cmp r1, #8
|
|
bge _021FA2E6
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
sub r2, #0x11
|
|
add r1, #0x64
|
|
ldrb r1, [r1]
|
|
bl ov15_021FA6C0
|
|
ldr r1, _021FA4A8 ; =0x00000644
|
|
str r0, [r5, r1]
|
|
ldr r1, [r5, r1]
|
|
add r0, r5, #0
|
|
bl ov15_021FFECC
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
str r0, [sp, #4]
|
|
ldr r1, _021FA4A8 ; =0x00000644
|
|
add r2, sp, #8
|
|
ldr r1, [r5, r1]
|
|
add r0, r5, #0
|
|
add r2, #2
|
|
mov r3, #1
|
|
bl ov15_021FA73C
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
_021FA2E6:
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0
|
|
add r1, #0x64
|
|
ldrb r1, [r1]
|
|
add r0, r5, #0
|
|
mvn r2, r2
|
|
bl ov15_021FA6C0
|
|
add r1, r0, #0
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
add r2, sp, #8
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
add r2, #2
|
|
mov r3, #1
|
|
bl ov15_021FA73C
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
_021FA314:
|
|
add r2, #0xf0
|
|
add r1, r3, #0
|
|
tst r1, r2
|
|
beq _021FA38C
|
|
ldr r1, _021FA4A8 ; =0x00000644
|
|
ldr r1, [r5, r1]
|
|
cmp r1, #0
|
|
blt _021FA360
|
|
cmp r1, #8
|
|
bge _021FA360
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
mov r2, #1
|
|
add r1, #0x64
|
|
ldrb r1, [r1]
|
|
bl ov15_021FA6C0
|
|
ldr r1, _021FA4A8 ; =0x00000644
|
|
str r0, [r5, r1]
|
|
ldr r1, [r5, r1]
|
|
add r0, r5, #0
|
|
bl ov15_021FFECC
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
str r0, [sp, #4]
|
|
ldr r1, _021FA4A8 ; =0x00000644
|
|
add r2, sp, #8
|
|
ldr r1, [r5, r1]
|
|
add r0, r5, #0
|
|
add r2, #1
|
|
mov r3, #1
|
|
bl ov15_021FA73C
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
_021FA360:
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
add r0, r5, #0
|
|
add r1, #0x64
|
|
ldrb r1, [r1]
|
|
mov r2, #1
|
|
bl ov15_021FA6C0
|
|
add r1, r0, #0
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
add r2, sp, #8
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
add r2, #1
|
|
mov r3, #1
|
|
bl ov15_021FA73C
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
_021FA38C:
|
|
ldr r1, _021FA4A8 ; =0x00000644
|
|
ldr r0, [r5, r1]
|
|
cmp r0, #0x11
|
|
bne _021FA3A0
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r0, #0x64
|
|
ldrb r0, [r0]
|
|
str r0, [r5, r1]
|
|
_021FA3A0:
|
|
cmp r4, #0
|
|
beq _021FA3C4
|
|
ldr r0, _021FA4BC ; =0x000005DC
|
|
bl PlaySE
|
|
ldr r1, _021FA4A8 ; =0x00000644
|
|
add r0, r5, #0
|
|
ldr r1, [r5, r1]
|
|
bl ov15_021FFECC
|
|
ldr r1, _021FA4A8 ; =0x00000644
|
|
add r0, r5, #0
|
|
ldr r1, [r5, r1]
|
|
bl ov15_021FA0E4
|
|
add r0, r5, #0
|
|
bl ov15_021FA170
|
|
_021FA3C4:
|
|
mov r1, #0
|
|
add r0, sp, #8
|
|
strb r1, [r0]
|
|
add r0, r5, #0
|
|
bl ov15_021FAC2C
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r4, r0
|
|
beq _021FA440
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov15_021FA104
|
|
cmp r0, #0
|
|
beq _021FA426
|
|
cmp r4, #8
|
|
bhs _021FA408
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov15_021FA68C
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _021FA426
|
|
ldr r1, _021FA4A8 ; =0x00000644
|
|
add r0, r5, #0
|
|
str r4, [r5, r1]
|
|
ldr r1, [r5, r1]
|
|
bl ov15_021FFECC
|
|
b _021FA426
|
|
_021FA408:
|
|
ldr r1, _021FA4A8 ; =0x00000644
|
|
add r0, r5, #0
|
|
str r4, [r5, r1]
|
|
ldr r1, [r5, r1]
|
|
bl ov15_021FFECC
|
|
ldr r0, _021FA4A8 ; =0x00000644
|
|
ldr r1, [r5, r0]
|
|
cmp r1, #8
|
|
blt _021FA426
|
|
cmp r1, #0xd
|
|
bgt _021FA426
|
|
add r0, r5, #0
|
|
bl ov15_021FA0E4
|
|
_021FA426:
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
mov r3, #1
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, sp, #8
|
|
str r3, [sp, #4]
|
|
bl ov15_021FA73C
|
|
cmp r0, #1
|
|
beq _021FA4DA
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
_021FA440:
|
|
ldr r0, _021FA4A4 ; =gSystem
|
|
mov r3, #1
|
|
ldr r1, [r0, #0x48]
|
|
add r0, r1, #0
|
|
tst r0, r3
|
|
beq _021FA47E
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
ldr r1, _021FA4A8 ; =0x00000644
|
|
add r0, r5, #0
|
|
ldr r1, [r5, r1]
|
|
add r2, sp, #8
|
|
bl ov15_021FA73C
|
|
add r4, r0, #0
|
|
ldr r0, _021FA4A8 ; =0x00000644
|
|
ldr r1, [r5, r0]
|
|
cmp r1, #8
|
|
blt _021FA474
|
|
cmp r1, #0xd
|
|
bgt _021FA474
|
|
add r0, r5, #0
|
|
bl ov15_021FA0E4
|
|
_021FA474:
|
|
cmp r4, #1
|
|
beq _021FA4DA
|
|
add sp, #0x10
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021FA47E:
|
|
mov r0, #2
|
|
tst r1, r0
|
|
beq _021FA4DA
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
mov r1, #0x10
|
|
add r2, sp, #8
|
|
bl ov15_021FA73C
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl ov15_021FD774
|
|
ldr r0, _021FA4A8 ; =0x00000644
|
|
b _021FA4C0
|
|
nop
|
|
_021FA4A4: .word gSystem
|
|
_021FA4A8: .word 0x00000644
|
|
_021FA4AC: .word ov15_02200640
|
|
_021FA4B0: .word ov15_02200641
|
|
_021FA4B4: .word ov15_02200642
|
|
_021FA4B8: .word ov15_02200643
|
|
_021FA4BC: .word 0x000005DC
|
|
_021FA4C0:
|
|
ldr r1, [r5, r0]
|
|
cmp r1, #8
|
|
blt _021FA4D0
|
|
cmp r1, #0xd
|
|
bgt _021FA4D0
|
|
add r0, r5, #0
|
|
bl ov15_021FA0E4
|
|
_021FA4D0:
|
|
cmp r4, #1
|
|
beq _021FA4DA
|
|
add sp, #0x10
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021FA4DA:
|
|
add r0, sp, #8
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _021FA4F2
|
|
add r0, r5, #0
|
|
mov r1, #0x14
|
|
mov r2, #0x29
|
|
mov r3, #0x1b
|
|
bl ov15_021FD810
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
_021FA4F2:
|
|
mov r0, #1
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov15_021FA1BC
|
|
|
|
thumb_func_start ov15_021FA4F8
|
|
ov15_021FA4F8: ; 0x021FA4F8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r1, #0x8d
|
|
add r5, r0, #0
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
add r6, r1, #4
|
|
add r1, #0x64
|
|
ldrb r2, [r1]
|
|
mov r1, #0xc
|
|
add r7, r2, #0
|
|
mul r7, r1
|
|
mov r2, #0
|
|
mov r1, #2
|
|
add r3, r2, #0
|
|
add r4, r6, r7
|
|
bl ov15_021FD574
|
|
ldr r2, _021FA574 ; =0x00000644
|
|
mov r1, #6
|
|
ldr r2, [r5, r2]
|
|
ldrsh r1, [r4, r1]
|
|
add r0, r5, #0
|
|
sub r2, #8
|
|
bl ov15_021FF4EC
|
|
ldr r1, _021FA574 ; =0x00000644
|
|
add r0, r5, #0
|
|
ldr r1, [r5, r1]
|
|
sub r1, #8
|
|
bl ov15_022002B4
|
|
add r0, r5, #0
|
|
bl ov15_021FB14C
|
|
mov r0, #6
|
|
ldrsh r3, [r4, r0]
|
|
ldr r0, _021FA574 ; =0x00000644
|
|
ldr r1, [r6, r7]
|
|
ldr r2, [r5, r0]
|
|
add r2, r3, r2
|
|
sub r2, #8
|
|
lsl r2, r2, #2
|
|
ldrh r2, [r1, r2]
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
add r1, #0x66
|
|
strh r2, [r1]
|
|
mov r2, #6
|
|
ldrsh r3, [r4, r2]
|
|
ldr r2, [r5, r0]
|
|
ldr r1, [r6, r7]
|
|
add r2, r3, r2
|
|
sub r2, #8
|
|
lsl r2, r2, #2
|
|
add r1, r1, r2
|
|
ldrh r1, [r1, #2]
|
|
add r0, #0x3e
|
|
strh r1, [r5, r0]
|
|
mov r0, #4
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021FA574: .word 0x00000644
|
|
thumb_func_end ov15_021FA4F8
|
|
|
|
thumb_func_start ov15_021FA578
|
|
ov15_021FA578: ; 0x021FA578
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r3, r0, #4
|
|
add r0, #0x64
|
|
ldrb r2, [r0]
|
|
mov r0, #0xc
|
|
mul r0, r2
|
|
add r4, r3, r0
|
|
cmp r1, #0
|
|
ble _021FA5A8
|
|
mov r0, #6
|
|
ldrsh r0, [r4, r0]
|
|
add r1, r0, #6
|
|
ldrb r0, [r4, #9]
|
|
cmp r1, r0
|
|
bge _021FA5A2
|
|
strh r1, [r4, #6]
|
|
b _021FA5C2
|
|
_021FA5A2:
|
|
mov r0, #0
|
|
strh r0, [r4, #6]
|
|
b _021FA5C2
|
|
_021FA5A8:
|
|
mov r1, #6
|
|
ldrsh r0, [r4, r1]
|
|
sub r0, r0, #6
|
|
bmi _021FA5B4
|
|
strh r0, [r4, #6]
|
|
b _021FA5C2
|
|
_021FA5B4:
|
|
ldrb r0, [r4, #9]
|
|
sub r0, r0, #1
|
|
bl _s32_div_f
|
|
mov r1, #6
|
|
mul r1, r0
|
|
strh r1, [r4, #6]
|
|
_021FA5C2:
|
|
ldr r0, _021FA618 ; =0x00000671
|
|
ldrb r0, [r5, r0]
|
|
cmp r0, #1
|
|
bne _021FA5E0
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov15_021FAD80
|
|
ldr r1, _021FA61C ; =0x0000066C
|
|
add r0, r5, #0
|
|
ldr r1, [r5, r1]
|
|
bl ov15_021FFF34
|
|
mov r0, #3
|
|
pop {r3, r4, r5, pc}
|
|
_021FA5E0:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov15_021FA6F4
|
|
add r0, r5, #0
|
|
bl ov15_021FA170
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r0, #0x65
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
beq _021FA60A
|
|
cmp r0, #2
|
|
beq _021FA606
|
|
cmp r0, #3
|
|
beq _021FA60E
|
|
b _021FA612
|
|
_021FA606:
|
|
mov r0, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
_021FA60A:
|
|
mov r0, #0xe
|
|
pop {r3, r4, r5, pc}
|
|
_021FA60E:
|
|
mov r0, #0x1a
|
|
pop {r3, r4, r5, pc}
|
|
_021FA612:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021FA618: .word 0x00000671
|
|
_021FA61C: .word 0x0000066C
|
|
thumb_func_end ov15_021FA578
|
|
|
|
thumb_func_start ov15_021FA620
|
|
ov15_021FA620: ; 0x021FA620
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021FA648 ; =0x00000614
|
|
ldrb r2, [r4, r0]
|
|
mov r0, #0xa
|
|
add r1, r2, #0
|
|
mul r1, r0
|
|
mov r0, #0x5a
|
|
sub r0, r0, r1
|
|
add r1, r2, #1
|
|
bl _s32_div_f
|
|
add r1, r0, #6
|
|
ldr r0, _021FA64C ; =0x00000617
|
|
strb r1, [r4, r0]
|
|
ldrb r1, [r4, r0]
|
|
add r0, r0, #1
|
|
add r1, r1, #4
|
|
strb r1, [r4, r0]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021FA648: .word 0x00000614
|
|
_021FA64C: .word 0x00000617
|
|
thumb_func_end ov15_021FA620
|
|
|
|
thumb_func_start ov15_021FA650
|
|
ov15_021FA650: ; 0x021FA650
|
|
push {r4, lr}
|
|
ldr r1, _021FA680 ; =gSystem
|
|
ldr r2, [r1, #0x48]
|
|
mov r1, #2
|
|
lsl r1, r1, #0xc
|
|
tst r1, r2
|
|
beq _021FA67C
|
|
ldr r3, _021FA684 ; =_02201480
|
|
ldr r1, [r3]
|
|
add r4, r1, #1
|
|
ldr r1, _021FA688 ; =_02201300
|
|
str r4, [r3]
|
|
ldr r2, [r1]
|
|
cmp r4, r2
|
|
blt _021FA672
|
|
mov r1, #0
|
|
str r1, [r3]
|
|
_021FA672:
|
|
ldr r3, _021FA684 ; =_02201480
|
|
mov r1, #1
|
|
ldr r3, [r3]
|
|
bl ov15_021FD574
|
|
_021FA67C:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021FA680: .word gSystem
|
|
_021FA684: .word _02201480
|
|
_021FA688: .word _02201300
|
|
thumb_func_end ov15_021FA650
|
|
|
|
thumb_func_start ov15_021FA68C
|
|
ov15_021FA68C: ; 0x021FA68C
|
|
push {r4, r5}
|
|
mov r2, #0x8d
|
|
lsl r2, r2, #2
|
|
ldr r5, [r0, r2]
|
|
mov r3, #0
|
|
add r2, r5, #0
|
|
add r4, r3, #0
|
|
_021FA69A:
|
|
ldrb r0, [r2, #0xc]
|
|
cmp r1, r0
|
|
bne _021FA6AE
|
|
add r0, r5, r4
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
beq _021FA6AE
|
|
add r0, r3, #0
|
|
pop {r4, r5}
|
|
bx lr
|
|
_021FA6AE:
|
|
add r3, r3, #1
|
|
add r2, #0xc
|
|
add r4, #0xc
|
|
cmp r3, #8
|
|
blt _021FA69A
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r4, r5}
|
|
bx lr
|
|
thumb_func_end ov15_021FA68C
|
|
|
|
thumb_func_start ov15_021FA6C0
|
|
ov15_021FA6C0: ; 0x021FA6C0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
add r5, r1, #0
|
|
add r6, r2, #0
|
|
mov r4, #0
|
|
_021FA6CA:
|
|
add r5, r5, r6
|
|
bpl _021FA6D2
|
|
mov r5, #7
|
|
b _021FA6D8
|
|
_021FA6D2:
|
|
cmp r5, #8
|
|
bne _021FA6D8
|
|
mov r5, #0
|
|
_021FA6D8:
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
bl ov15_021FA68C
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _021FA6EE
|
|
add r4, r4, #1
|
|
cmp r4, #8
|
|
blt _021FA6CA
|
|
_021FA6EE:
|
|
add r0, r5, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FA6C0
|
|
|
|
thumb_func_start ov15_021FA6F4
|
|
ov15_021FA6F4: ; 0x021FA6F4
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl ov15_021FA074
|
|
mov r1, #0
|
|
add r2, r0, #0
|
|
add r0, r5, #0
|
|
add r3, r1, #0
|
|
bl ov15_021FD574
|
|
mov r2, #6
|
|
ldrsh r1, [r4, r2]
|
|
add r0, r5, #0
|
|
sub r2, r2, #7
|
|
mov r3, #0
|
|
bl ov15_021FF364
|
|
mov r2, #6
|
|
ldrb r1, [r4, #9]
|
|
ldrsh r2, [r4, r2]
|
|
add r0, r5, #0
|
|
mov r3, #0
|
|
bl ov15_021FF6BC
|
|
add r0, r5, #0
|
|
bl ov15_021FA074
|
|
add r2, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
mov r3, #1
|
|
bl ov15_02200140
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FA6F4
|
|
|
|
thumb_func_start ov15_021FA73C
|
|
ov15_021FA73C: ; 0x021FA73C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r4, r0, #0
|
|
add r7, r2, #0
|
|
mov r6, #1
|
|
cmp r1, #0x10
|
|
bls _021FA74A
|
|
b _021FA92A
|
|
_021FA74A:
|
|
add r2, r1, r1
|
|
add r2, pc
|
|
ldrh r2, [r2, #6]
|
|
lsl r2, r2, #0x10
|
|
asr r2, r2, #0x10
|
|
add pc, r2
|
|
_021FA756: ; jump table
|
|
.short _021FA778 - _021FA756 - 2 ; case 0
|
|
.short _021FA778 - _021FA756 - 2 ; case 1
|
|
.short _021FA778 - _021FA756 - 2 ; case 2
|
|
.short _021FA778 - _021FA756 - 2 ; case 3
|
|
.short _021FA778 - _021FA756 - 2 ; case 4
|
|
.short _021FA778 - _021FA756 - 2 ; case 5
|
|
.short _021FA778 - _021FA756 - 2 ; case 6
|
|
.short _021FA778 - _021FA756 - 2 ; case 7
|
|
.short _021FA856 - _021FA756 - 2 ; case 8
|
|
.short _021FA856 - _021FA756 - 2 ; case 9
|
|
.short _021FA856 - _021FA756 - 2 ; case 10
|
|
.short _021FA856 - _021FA756 - 2 ; case 11
|
|
.short _021FA856 - _021FA756 - 2 ; case 12
|
|
.short _021FA856 - _021FA756 - 2 ; case 13
|
|
.short _021FA8C4 - _021FA756 - 2 ; case 14
|
|
.short _021FA892 - _021FA756 - 2 ; case 15
|
|
.short _021FA8F6 - _021FA756 - 2 ; case 16
|
|
_021FA778:
|
|
bl ov15_021FA68C
|
|
sub r1, r6, #2
|
|
cmp r0, r1
|
|
bne _021FA786
|
|
add r0, r6, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021FA786:
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r2, [r4, r1]
|
|
add r1, r2, #0
|
|
add r1, #0x64
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bne _021FA7A0
|
|
ldr r1, [sp, #0x1c]
|
|
cmp r1, #0
|
|
bne _021FA7A0
|
|
add r0, r6, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021FA7A0:
|
|
add r2, #0x64
|
|
strb r0, [r2]
|
|
add r0, r4, #0
|
|
bl ov15_021F9F08
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r2, r0, #4
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
mul r0, r1
|
|
add r5, r2, r0
|
|
add r0, r4, #0
|
|
bl ov15_021FA074
|
|
mov r1, #0
|
|
add r2, r0, #0
|
|
add r0, r4, #0
|
|
add r3, r1, #0
|
|
bl ov15_021FD574
|
|
mov r2, #6
|
|
ldrsh r1, [r5, r2]
|
|
add r0, r4, #0
|
|
sub r2, r2, #7
|
|
mov r3, #0
|
|
bl ov15_021FF364
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r4, r1]
|
|
add r0, r4, #0
|
|
add r1, #0x64
|
|
ldrb r1, [r1]
|
|
bl ov15_02200030
|
|
mov r2, #6
|
|
ldrb r1, [r5, #9]
|
|
ldrsh r2, [r5, r2]
|
|
add r0, r4, #0
|
|
mov r3, #0
|
|
bl ov15_021FF6BC
|
|
add r0, r4, #0
|
|
bl ov15_021FA074
|
|
add r2, r0, #0
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
mov r3, #1
|
|
bl ov15_02200140
|
|
mov r2, #0x8d
|
|
lsl r2, r2, #2
|
|
ldr r2, [r4, r2]
|
|
add r0, r4, #0
|
|
add r2, #0x64
|
|
ldrb r2, [r2]
|
|
mov r1, #1
|
|
bl ov15_021FD404
|
|
ldr r0, _021FA930 ; =0x000005DC
|
|
bl PlaySE
|
|
add r0, r4, #0
|
|
bl ov15_021FA170
|
|
ldr r0, _021FA934 ; =0x00000644
|
|
ldr r1, [r4, r0]
|
|
cmp r1, #8
|
|
blt _021FA838
|
|
add r0, r4, #0
|
|
bl ov15_021FA0E4
|
|
_021FA838:
|
|
add r0, r4, #0
|
|
bl ov15_021FDF88
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r4, r1]
|
|
ldr r0, _021FA938 ; =0x00000808
|
|
add r1, #0x64
|
|
ldrb r1, [r1]
|
|
add r0, r4, r0
|
|
mov r2, #7
|
|
add r1, r1, #1
|
|
bl ov15_021FDAF4
|
|
b _021FA92A
|
|
_021FA856:
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r2, [r4, r0]
|
|
sub r1, #8
|
|
add r3, r2, #0
|
|
add r3, #0x64
|
|
ldrb r5, [r3]
|
|
mov r3, #0xc
|
|
add r0, r2, #4
|
|
mul r3, r5
|
|
add r3, r0, r3
|
|
mov r0, #6
|
|
ldrsh r0, [r3, r0]
|
|
add r0, r0, r1
|
|
ldrb r1, [r3, #9]
|
|
cmp r0, r1
|
|
bge _021FA88A
|
|
ldr r1, [r3]
|
|
lsl r0, r0, #2
|
|
ldrh r0, [r1, r0]
|
|
add r2, #0x66
|
|
strh r0, [r2]
|
|
ldr r0, _021FA930 ; =0x000005DC
|
|
strb r6, [r7]
|
|
bl PlaySE
|
|
_021FA88A:
|
|
add r0, r4, #0
|
|
bl ov15_021FA170
|
|
b _021FA92A
|
|
_021FA892:
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r2, [r4, r0]
|
|
add r0, r2, #0
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
mul r0, r1
|
|
add r0, r2, r0
|
|
ldrb r0, [r0, #0xd]
|
|
cmp r0, #6
|
|
bls _021FA92A
|
|
ldr r0, _021FA930 ; =0x000005DC
|
|
bl PlaySE
|
|
mov r0, #0x1e
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r1, #0x12
|
|
mov r2, #9
|
|
mov r3, #8
|
|
bl ov15_021FD7D0
|
|
add r6, r0, #0
|
|
b _021FA92A
|
|
_021FA8C4:
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r2, [r4, r0]
|
|
add r0, r2, #0
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
mul r0, r1
|
|
add r0, r2, r0
|
|
ldrb r0, [r0, #0xd]
|
|
cmp r0, #6
|
|
bls _021FA92A
|
|
ldr r0, _021FA930 ; =0x000005DC
|
|
bl PlaySE
|
|
mov r0, #0x1f
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r1, #0x11
|
|
mov r2, #9
|
|
mov r3, #8
|
|
bl ov15_021FD7D0
|
|
add r6, r0, #0
|
|
b _021FA92A
|
|
_021FA8F6:
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r2, [r4, r1]
|
|
mov r3, #0
|
|
add r2, #0x66
|
|
strh r3, [r2]
|
|
ldr r1, [r4, r1]
|
|
mov r2, #5
|
|
add r1, #0x68
|
|
strh r2, [r1]
|
|
ldr r1, [sp, #0x1c]
|
|
bl ov15_021FD774
|
|
mov r0, #SEQ_SE_GS_GEARCANCEL>>6
|
|
lsl r0, r0, #6
|
|
bl PlaySE
|
|
mov r0, #0x24
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r1, #0x13
|
|
mov r2, #9
|
|
mov r3, #8
|
|
bl ov15_021FD7D0
|
|
add r6, r0, #0
|
|
_021FA92A:
|
|
add r0, r6, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021FA930: .word 0x000005DC
|
|
_021FA934: .word 0x00000644
|
|
_021FA938: .word 0x00000808
|
|
thumb_func_end ov15_021FA73C
|
|
|
|
thumb_func_start ov15_021FA93C
|
|
ov15_021FA93C: ; 0x021FA93C
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _021FAA10 ; =0x00000619
|
|
add r4, r5, r0
|
|
bl System_GetTouchHeld
|
|
cmp r0, #0
|
|
bne _021FA958
|
|
ldrb r1, [r4, #7]
|
|
mov r0, #0x70
|
|
bic r1, r0
|
|
mov r0, #0x10
|
|
orr r0, r1
|
|
strb r0, [r4, #7]
|
|
_021FA958:
|
|
add r0, r5, #0
|
|
bl ov15_021FAC40
|
|
add r6, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r6, r0
|
|
beq _021FA96E
|
|
ldrb r0, [r4]
|
|
cmp r6, r0
|
|
beq _021FA97A
|
|
_021FA96E:
|
|
ldrb r1, [r4, #7]
|
|
mov r0, #0xf
|
|
bic r1, r0
|
|
mov r0, #1
|
|
orr r0, r1
|
|
strb r0, [r4, #7]
|
|
_021FA97A:
|
|
add r0, r5, #0
|
|
bl ov15_021FAA18
|
|
cmp r0, #0
|
|
bne _021FA9FE
|
|
ldrb r0, [r4, #7]
|
|
lsl r0, r0, #0x19
|
|
lsr r0, r0, #0x1d
|
|
cmp r0, #1
|
|
bne _021FA9FE
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r6, r0
|
|
beq _021FA9FE
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
ldrb r1, [r4]
|
|
add r0, #0x64
|
|
strb r1, [r0]
|
|
lsl r0, r6, #0x18
|
|
ldrb r1, [r4]
|
|
lsr r0, r0, #0x18
|
|
cmp r1, r0
|
|
bls _021FA9B4
|
|
mov r0, #0
|
|
strb r0, [r4, #1]
|
|
strb r0, [r4, #2]
|
|
b _021FA9C6
|
|
_021FA9B4:
|
|
cmp r1, r0
|
|
bhs _021FA9C2
|
|
mov r0, #1
|
|
strb r0, [r4, #1]
|
|
mov r0, #0
|
|
strb r0, [r4, #2]
|
|
b _021FA9C6
|
|
_021FA9C2:
|
|
mov r0, #2
|
|
strb r0, [r4, #1]
|
|
_021FA9C6:
|
|
lsl r0, r6, #0x18
|
|
lsr r0, r0, #0x18
|
|
strb r0, [r4]
|
|
ldrb r2, [r4, #7]
|
|
mov r1, #0xf
|
|
bic r2, r1
|
|
strb r2, [r4, #7]
|
|
ldrb r2, [r4, #7]
|
|
mov r1, #0x70
|
|
bic r2, r1
|
|
strb r2, [r4, #7]
|
|
mov r1, #0
|
|
strb r1, [r4, #4]
|
|
mov r1, #0x67
|
|
lsl r1, r1, #4
|
|
strb r0, [r5, r1]
|
|
add r0, r5, #0
|
|
bl ov15_021FF950
|
|
mov r1, #0x67
|
|
lsl r1, r1, #4
|
|
ldrb r1, [r5, r1]
|
|
ldr r0, _021FAA14 ; =0x00000808
|
|
mov r2, #7
|
|
add r0, r5, r0
|
|
add r1, r1, #1
|
|
bl ov15_021FDAF4
|
|
_021FA9FE:
|
|
add r0, r5, #0
|
|
bl ov15_021FAB34
|
|
add r0, r5, #0
|
|
bl ov15_021FF964
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021FAA10: .word 0x00000619
|
|
_021FAA14: .word 0x00000808
|
|
thumb_func_end ov15_021FA93C
|
|
|
|
thumb_func_start ov15_021FAA18
|
|
ov15_021FAA18: ; 0x021FAA18
|
|
push {r3, r4, r5, lr}
|
|
ldr r1, _021FAB28 ; =gSystem
|
|
add r5, r0, #0
|
|
ldr r0, _021FAB2C ; =0x00000619
|
|
ldr r2, [r1, #0x48]
|
|
mov r1, #0x20
|
|
add r4, r5, r0
|
|
tst r1, r2
|
|
beq _021FAAA6
|
|
sub r1, r0, #5
|
|
ldrb r1, [r5, r1]
|
|
cmp r1, #1
|
|
bne _021FAA36
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021FAA36:
|
|
sub r0, #0x3d
|
|
bl PlaySE
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
ldrb r1, [r4]
|
|
add r0, #0x64
|
|
strb r1, [r0]
|
|
ldrb r0, [r4]
|
|
cmp r0, #0
|
|
beq _021FAA5C
|
|
sub r0, r0, #1
|
|
strb r0, [r4]
|
|
mov r0, #0x67
|
|
lsl r0, r0, #4
|
|
ldrb r1, [r5, r0]
|
|
sub r1, r1, #1
|
|
b _021FAA6A
|
|
_021FAA5C:
|
|
ldr r0, _021FAB30 ; =0x00000614
|
|
ldrb r1, [r5, r0]
|
|
sub r1, r1, #1
|
|
strb r1, [r4]
|
|
ldrb r1, [r5, r0]
|
|
add r0, #0x5c
|
|
sub r1, r1, #1
|
|
_021FAA6A:
|
|
strb r1, [r5, r0]
|
|
mov r0, #0
|
|
strb r0, [r4, #2]
|
|
strb r0, [r4, #1]
|
|
ldrb r1, [r4, #7]
|
|
mov r0, #0x70
|
|
bic r1, r0
|
|
mov r0, #0x10
|
|
orr r0, r1
|
|
strb r0, [r4, #7]
|
|
ldrb r1, [r4, #7]
|
|
mov r0, #0xf
|
|
bic r1, r0
|
|
mov r0, #1
|
|
orr r0, r1
|
|
strb r0, [r4, #7]
|
|
ldrb r1, [r4, #7]
|
|
mov r0, #0x80
|
|
bic r1, r0
|
|
strb r1, [r4, #7]
|
|
ldrb r0, [r4, #4]
|
|
cmp r0, #3
|
|
beq _021FAA9C
|
|
mov r0, #4
|
|
strb r0, [r4, #4]
|
|
_021FAA9C:
|
|
add r0, r5, #0
|
|
bl ov15_021FF950
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021FAAA6:
|
|
mov r1, #0x10
|
|
tst r1, r2
|
|
beq _021FAB24
|
|
sub r1, r0, #5
|
|
ldrb r1, [r5, r1]
|
|
cmp r1, #1
|
|
bne _021FAAB8
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021FAAB8:
|
|
sub r0, #0x3d
|
|
bl PlaySE
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
ldrb r1, [r4]
|
|
add r0, #0x64
|
|
strb r1, [r0]
|
|
ldrb r0, [r4]
|
|
ldr r1, _021FAB30 ; =0x00000614
|
|
add r2, r0, #1
|
|
ldrb r0, [r5, r1]
|
|
cmp r2, r0
|
|
bge _021FAAE2
|
|
add r0, r1, #0
|
|
strb r2, [r4]
|
|
add r0, #0x5c
|
|
ldrb r0, [r5, r0]
|
|
add r0, r0, #1
|
|
b _021FAAE6
|
|
_021FAAE2:
|
|
mov r0, #0
|
|
strb r0, [r4]
|
|
_021FAAE6:
|
|
add r1, #0x5c
|
|
strb r0, [r5, r1]
|
|
mov r0, #0
|
|
strb r0, [r4, #2]
|
|
mov r0, #1
|
|
strb r0, [r4, #1]
|
|
ldrb r2, [r4, #7]
|
|
mov r1, #0x70
|
|
bic r2, r1
|
|
mov r1, #0x10
|
|
orr r1, r2
|
|
strb r1, [r4, #7]
|
|
ldrb r2, [r4, #7]
|
|
mov r1, #0xf
|
|
bic r2, r1
|
|
orr r0, r2
|
|
strb r0, [r4, #7]
|
|
ldrb r1, [r4, #7]
|
|
mov r0, #0x80
|
|
bic r1, r0
|
|
strb r1, [r4, #7]
|
|
ldrb r0, [r4, #4]
|
|
cmp r0, #3
|
|
beq _021FAB1A
|
|
mov r0, #4
|
|
strb r0, [r4, #4]
|
|
_021FAB1A:
|
|
add r0, r5, #0
|
|
bl ov15_021FF950
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021FAB24:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021FAB28: .word gSystem
|
|
_021FAB2C: .word 0x00000619
|
|
_021FAB30: .word 0x00000614
|
|
thumb_func_end ov15_021FAA18
|
|
|
|
thumb_func_start ov15_021FAB34
|
|
ov15_021FAB34: ; 0x021FAB34
|
|
push {r3, r4, r5, lr}
|
|
ldr r1, _021FAC28 ; =0x00000619
|
|
add r5, r0, #0
|
|
add r4, r5, r1
|
|
ldrb r1, [r4, #2]
|
|
cmp r1, #0
|
|
beq _021FAB4C
|
|
cmp r1, #1
|
|
beq _021FAB58
|
|
cmp r1, #2
|
|
beq _021FAC20
|
|
b _021FAC24
|
|
_021FAB4C:
|
|
mov r0, #0
|
|
strb r0, [r4, #3]
|
|
ldrb r0, [r4, #2]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #2]
|
|
b _021FAC24
|
|
_021FAB58:
|
|
ldrb r1, [r4, #3]
|
|
cmp r1, #8
|
|
bhs _021FAB64
|
|
add r0, r1, #1
|
|
strb r0, [r4, #3]
|
|
b _021FAC24
|
|
_021FAB64:
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
ldrb r2, [r4]
|
|
add r1, #0x64
|
|
strb r2, [r1]
|
|
bl ov15_021F9F08
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r1, [r5, r0]
|
|
add r0, r5, #0
|
|
add r2, r1, #0
|
|
add r2, #0x64
|
|
ldrb r3, [r2]
|
|
mov r2, #0xc
|
|
mul r2, r3
|
|
add r1, r1, r2
|
|
mov r2, #0xa
|
|
ldrsh r1, [r1, r2]
|
|
sub r2, #0xb
|
|
mov r3, #0
|
|
bl ov15_021FF364
|
|
add r0, r5, #0
|
|
bl ov15_021FA074
|
|
mov r1, #0
|
|
add r2, r0, #0
|
|
add r0, r5, #0
|
|
add r3, r1, #0
|
|
bl ov15_021FD574
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
add r0, r5, #0
|
|
add r1, #0x64
|
|
ldrb r1, [r1]
|
|
bl ov15_02200030
|
|
mov r2, #0x8d
|
|
lsl r2, r2, #2
|
|
ldr r2, [r5, r2]
|
|
add r0, r5, #0
|
|
add r2, #0x64
|
|
ldrb r2, [r2]
|
|
mov r1, #1
|
|
bl ov15_021FD404
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r3, [r5, r0]
|
|
add r0, r3, #0
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
add r2, r1, #0
|
|
mul r2, r0
|
|
add r0, r3, #0
|
|
add r1, r3, #0
|
|
add r0, #0xa
|
|
add r1, #8
|
|
add r0, r0, r2
|
|
add r1, r1, r2
|
|
add r2, r3, r2
|
|
ldrb r2, [r2, #0xd]
|
|
bl ov15_021FA044
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r3, [r5, r0]
|
|
add r0, r3, #0
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
add r2, r1, #0
|
|
mul r2, r0
|
|
add r0, r3, #0
|
|
add r1, r3, #0
|
|
add r0, #0xa
|
|
add r1, #8
|
|
add r0, r0, r2
|
|
add r1, r1, r2
|
|
add r2, r3, r2
|
|
ldrb r2, [r2, #0xd]
|
|
mov r3, #6
|
|
bl ov15_021FA070
|
|
ldrb r0, [r4, #2]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #2]
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021FAC20:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021FAC24:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021FAC28: .word 0x00000619
|
|
thumb_func_end ov15_021FAB34
|
|
|
|
thumb_func_start ov15_021FAC2C
|
|
ov15_021FAC2C: ; 0x021FAC2C
|
|
ldr r0, _021FAC38 ; =ov15_02201314
|
|
lsl r1, r1, #2
|
|
ldr r3, _021FAC3C ; =TouchscreenHitbox_FindRectAtTouchNew
|
|
ldr r0, [r0, r1]
|
|
bx r3
|
|
nop
|
|
_021FAC38: .word ov15_02201314
|
|
_021FAC3C: .word TouchscreenHitbox_FindRectAtTouchNew
|
|
thumb_func_end ov15_021FAC2C
|
|
|
|
thumb_func_start ov15_021FAC40
|
|
ov15_021FAC40: ; 0x021FAC40
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FAC40
|
|
|
|
thumb_func_start ov15_021FAC48
|
|
ov15_021FAC48: ; 0x021FAC48
|
|
push {r3, r4, r5, lr}
|
|
mov r1, #0x8d
|
|
add r5, r0, #0
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
add r3, r1, #4
|
|
add r1, #0x64
|
|
ldrb r2, [r1]
|
|
mov r1, #0xc
|
|
mul r1, r2
|
|
add r3, r3, r1
|
|
ldr r1, _021FAD20 ; =0x00000671
|
|
mov r2, #1
|
|
strb r2, [r5, r1]
|
|
mov r2, #6
|
|
ldrsh r3, [r3, r2]
|
|
add r2, r1, #0
|
|
sub r2, #0x2d
|
|
ldr r2, [r5, r2]
|
|
add r1, r1, #1
|
|
add r2, r3, r2
|
|
sub r2, #8
|
|
strb r2, [r5, r1]
|
|
bl ov15_021FED60
|
|
add r0, r5, #0
|
|
bl ov15_021FB114
|
|
add r0, r5, #0
|
|
bl ov15_02200294
|
|
add r0, r5, #0
|
|
bl ov15_021FF560
|
|
mov r0, #0x61
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
bl ov15_021FF7AC
|
|
add r0, r5, #0
|
|
bl ov15_021FED58
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r2, r0, #4
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
mul r0, r1
|
|
add r4, r2, r0
|
|
add r0, r5, #0
|
|
bl ov15_021FA074
|
|
ldr r3, _021FAD24 ; =0x00000644
|
|
add r2, r0, #0
|
|
ldr r3, [r5, r3]
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
sub r3, #8
|
|
bl ov15_021FD574
|
|
ldr r2, _021FAD24 ; =0x00000644
|
|
mov r1, #6
|
|
ldr r2, [r5, r2]
|
|
ldrsh r1, [r4, r1]
|
|
add r0, r5, #0
|
|
sub r2, #8
|
|
mov r3, #1
|
|
bl ov15_021FF364
|
|
mov r2, #6
|
|
ldrb r1, [r4, #9]
|
|
ldrsh r2, [r4, r2]
|
|
add r0, r5, #0
|
|
mov r3, #0
|
|
bl ov15_021FF6BC
|
|
add r0, r5, #0
|
|
bl ov15_021FA074
|
|
add r2, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
mov r3, #0
|
|
bl ov15_02200140
|
|
mov r2, #6
|
|
ldrsh r3, [r4, r2]
|
|
ldr r2, _021FAD24 ; =0x00000644
|
|
add r0, r5, #0
|
|
ldr r2, [r5, r2]
|
|
add r1, r4, #0
|
|
add r2, r3, r2
|
|
sub r2, #8
|
|
bl ov15_022001C4
|
|
ldr r1, _021FAD24 ; =0x00000644
|
|
add r0, r5, #0
|
|
ldr r1, [r5, r1]
|
|
bl ov15_021FFECC
|
|
ldr r0, _021FAD24 ; =0x00000644
|
|
ldr r1, [r5, r0]
|
|
add r0, #0x28
|
|
sub r1, #8
|
|
str r1, [r5, r0]
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021FAD20: .word 0x00000671
|
|
_021FAD24: .word 0x00000644
|
|
thumb_func_end ov15_021FAC48
|
|
|
|
thumb_func_start ov15_021FAD28
|
|
ov15_021FAD28: ; 0x021FAD28
|
|
ldr r1, _021FAD6C ; =gSystem
|
|
mov r2, #0x40
|
|
ldr r1, [r1, #0x48]
|
|
tst r2, r1
|
|
beq _021FAD3C
|
|
lsl r1, r0, #2
|
|
ldr r0, _021FAD70 ; =ov15_02200584
|
|
ldrb r0, [r0, r1]
|
|
sub r0, #8
|
|
bx lr
|
|
_021FAD3C:
|
|
mov r2, #0x80
|
|
tst r2, r1
|
|
beq _021FAD4C
|
|
lsl r1, r0, #2
|
|
ldr r0, _021FAD74 ; =ov15_02200585
|
|
ldrb r0, [r0, r1]
|
|
sub r0, #8
|
|
bx lr
|
|
_021FAD4C:
|
|
mov r2, #0x20
|
|
tst r2, r1
|
|
beq _021FAD5C
|
|
lsl r1, r0, #2
|
|
ldr r0, _021FAD78 ; =ov15_02200586
|
|
ldrb r0, [r0, r1]
|
|
sub r0, #8
|
|
bx lr
|
|
_021FAD5C:
|
|
mov r2, #0x10
|
|
tst r1, r2
|
|
beq _021FAD6A
|
|
lsl r1, r0, #2
|
|
ldr r0, _021FAD7C ; =ov15_02200587
|
|
ldrb r0, [r0, r1]
|
|
sub r0, #8
|
|
_021FAD6A:
|
|
bx lr
|
|
.balign 4, 0
|
|
_021FAD6C: .word gSystem
|
|
_021FAD70: .word ov15_02200584
|
|
_021FAD74: .word ov15_02200585
|
|
_021FAD78: .word ov15_02200586
|
|
_021FAD7C: .word ov15_02200587
|
|
thumb_func_end ov15_021FAD28
|
|
|
|
thumb_func_start ov15_021FAD80
|
|
ov15_021FAD80: ; 0x021FAD80
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl ov15_021FA074
|
|
add r6, r0, #0
|
|
add r0, r5, #0
|
|
bl ov15_021FA098
|
|
add r3, r0, #0
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
add r2, r6, #0
|
|
bl ov15_021FD574
|
|
add r0, r5, #0
|
|
bl ov15_021FA098
|
|
mov r1, #6
|
|
add r2, r0, #0
|
|
ldrsh r1, [r4, r1]
|
|
add r0, r5, #0
|
|
mov r3, #1
|
|
bl ov15_021FF364
|
|
ldr r2, _021FADE4 ; =0x00000672
|
|
add r0, r5, #0
|
|
ldrb r2, [r5, r2]
|
|
add r1, r4, #0
|
|
bl ov15_022001C4
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r3, [r5, r0]
|
|
add r0, r3, #0
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
add r2, r1, #0
|
|
mul r2, r0
|
|
add r3, r3, r2
|
|
mov r2, #0xa
|
|
ldrb r1, [r3, #0xd]
|
|
ldrsh r2, [r3, r2]
|
|
add r0, r5, #0
|
|
mov r3, #0
|
|
bl ov15_021FF6BC
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021FADE4: .word 0x00000672
|
|
thumb_func_end ov15_021FAD80
|
|
|
|
thumb_func_start ov15_021FADE8
|
|
ov15_021FADE8: ; 0x021FADE8
|
|
push {r4, r5, r6, lr}
|
|
mov r4, #0
|
|
add r5, r1, #0
|
|
add r6, r0, #0
|
|
mvn r4, r4
|
|
cmp r5, #8
|
|
bhi _021FAE3A
|
|
add r1, r5, r5
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021FAE02: ; jump table
|
|
.short _021FAE14 - _021FAE02 - 2 ; case 0
|
|
.short _021FAE14 - _021FAE02 - 2 ; case 1
|
|
.short _021FAE14 - _021FAE02 - 2 ; case 2
|
|
.short _021FAE14 - _021FAE02 - 2 ; case 3
|
|
.short _021FAE14 - _021FAE02 - 2 ; case 4
|
|
.short _021FAE14 - _021FAE02 - 2 ; case 5
|
|
.short _021FAE30 - _021FAE02 - 2 ; case 6
|
|
.short _021FAE34 - _021FAE02 - 2 ; case 7
|
|
.short _021FAE38 - _021FAE02 - 2 ; case 8
|
|
_021FAE14:
|
|
bl ov15_021FA074
|
|
cmp r0, r5
|
|
ble _021FAE28
|
|
ldr r0, _021FAE40 ; =0x0000066C
|
|
ldr r4, [r6, r0]
|
|
sub r0, #0x90
|
|
bl PlaySE
|
|
b _021FAE3A
|
|
_021FAE28:
|
|
ldr r0, _021FAE44 ; =0x000005F3
|
|
bl PlaySE
|
|
b _021FAE3A
|
|
_021FAE30:
|
|
mov r4, #0xe
|
|
b _021FAE3A
|
|
_021FAE34:
|
|
mov r4, #0xf
|
|
b _021FAE3A
|
|
_021FAE38:
|
|
sub r4, r4, #1
|
|
_021FAE3A:
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021FAE40: .word 0x0000066C
|
|
_021FAE44: .word 0x000005F3
|
|
thumb_func_end ov15_021FADE8
|
|
|
|
thumb_func_start ov15_021FAE48
|
|
ov15_021FAE48: ; 0x021FAE48
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r4, #0
|
|
add r2, r0, #4
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
mvn r4, r4
|
|
mul r0, r1
|
|
add r7, r2, r0
|
|
ldr r0, _021FAFE4 ; =0x0000066C
|
|
ldr r0, [r5, r0]
|
|
bl ov15_021FAD28
|
|
lsl r0, r0, #0x10
|
|
ldr r2, _021FAFE4 ; =0x0000066C
|
|
lsr r1, r0, #0x10
|
|
ldr r0, [r5, r2]
|
|
cmp r0, r1
|
|
beq _021FAE9C
|
|
ldr r0, _021FAFE8 ; =0x0000FFFA
|
|
add r0, r1, r0
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
cmp r0, #1
|
|
bhi _021FAE8C
|
|
add r0, r5, #0
|
|
bl ov15_021FADE8
|
|
add r4, r0, #0
|
|
b _021FAE9C
|
|
_021FAE8C:
|
|
str r1, [r5, r2]
|
|
ldr r1, [r5, r2]
|
|
add r0, r5, #0
|
|
bl ov15_021FFF34
|
|
ldr r0, _021FAFEC ; =0x000005DC
|
|
bl PlaySE
|
|
_021FAE9C:
|
|
add r0, r5, #0
|
|
mov r1, #2
|
|
bl ov15_021FAC2C
|
|
add r6, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r6, r0
|
|
beq _021FAF04
|
|
cmp r6, #8
|
|
bne _021FAEC6
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov15_021FADE8
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov15_021FFF34
|
|
b _021FAF24
|
|
_021FAEC6:
|
|
sub r0, r6, #6
|
|
cmp r0, #1
|
|
bhi _021FAED8
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov15_021FADE8
|
|
add r4, r0, #0
|
|
b _021FAF24
|
|
_021FAED8:
|
|
ldr r0, _021FAFE4 ; =0x0000066C
|
|
str r6, [r5, r0]
|
|
add r0, r5, #0
|
|
bl ov15_021FA074
|
|
cmp r0, r6
|
|
bls _021FAEF2
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov15_021FADE8
|
|
add r4, r0, #0
|
|
b _021FAEF8
|
|
_021FAEF2:
|
|
ldr r0, _021FAFF0 ; =0x000005F3
|
|
bl PlaySE
|
|
_021FAEF8:
|
|
ldr r1, _021FAFE4 ; =0x0000066C
|
|
add r0, r5, #0
|
|
ldr r1, [r5, r1]
|
|
bl ov15_021FFF34
|
|
b _021FAF24
|
|
_021FAF04:
|
|
ldr r0, _021FAFF4 ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #1
|
|
tst r0, r1
|
|
beq _021FAF1C
|
|
ldr r1, _021FAFE4 ; =0x0000066C
|
|
add r0, r5, #0
|
|
ldr r1, [r5, r1]
|
|
bl ov15_021FADE8
|
|
add r4, r0, #0
|
|
b _021FAF24
|
|
_021FAF1C:
|
|
mov r0, #2
|
|
tst r1, r0
|
|
beq _021FAF24
|
|
sub r4, r0, #4
|
|
_021FAF24:
|
|
mov r0, #1
|
|
mvn r0, r0
|
|
cmp r4, r0
|
|
bhi _021FAF3E
|
|
bhs _021FAF46
|
|
cmp r4, #0xf
|
|
bhi _021FAFAC
|
|
cmp r4, #0xe
|
|
blo _021FAFAC
|
|
beq _021FAF70
|
|
cmp r4, #0xf
|
|
beq _021FAF8E
|
|
b _021FAFAC
|
|
_021FAF3E:
|
|
add r0, r0, #1
|
|
cmp r4, r0
|
|
beq _021FAFE0
|
|
b _021FAFAC
|
|
_021FAF46:
|
|
mov r0, #SEQ_SE_GS_GEARCANCEL>>6
|
|
lsl r0, r0, #6
|
|
bl PlaySE
|
|
ldr r0, _021FAFF8 ; =0x00000672
|
|
mov r1, #6
|
|
ldrb r0, [r5, r0]
|
|
bl _s32_div_f
|
|
mov r1, #6
|
|
mul r1, r0
|
|
strh r1, [r7, #6]
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
add r0, r5, #0
|
|
mov r1, #0x13
|
|
mov r2, #9
|
|
mov r3, #8
|
|
bl ov15_021FD7D0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021FAF70:
|
|
ldrb r0, [r7, #9]
|
|
cmp r0, #6
|
|
bls _021FAFE0
|
|
ldr r0, _021FAFEC ; =0x000005DC
|
|
bl PlaySE
|
|
mov r0, #0x1f
|
|
str r0, [sp]
|
|
add r0, r5, #0
|
|
mov r1, #0x11
|
|
mov r2, #9
|
|
mov r3, #8
|
|
bl ov15_021FD7D0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021FAF8E:
|
|
ldrb r0, [r7, #9]
|
|
cmp r0, #6
|
|
bls _021FAFE0
|
|
ldr r0, _021FAFEC ; =0x000005DC
|
|
bl PlaySE
|
|
mov r0, #0x1e
|
|
str r0, [sp]
|
|
add r0, r5, #0
|
|
mov r1, #0x12
|
|
mov r2, #9
|
|
mov r3, #8
|
|
bl ov15_021FD7D0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021FAFAC:
|
|
ldr r0, _021FAFEC ; =0x000005DC
|
|
bl PlaySE
|
|
ldr r1, _021FAFF8 ; =0x00000672
|
|
mov r2, #6
|
|
ldrb r0, [r5, r1]
|
|
sub r1, r1, #6
|
|
ldrsh r2, [r7, r2]
|
|
ldr r1, [r5, r1]
|
|
add r1, r2, r1
|
|
cmp r0, r1
|
|
bne _021FAFD2
|
|
add r0, r5, #0
|
|
mov r1, #0x14
|
|
mov r2, #0x29
|
|
mov r3, #0x21
|
|
bl ov15_021FD810
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021FAFD2:
|
|
add r0, r5, #0
|
|
mov r1, #0x14
|
|
mov r2, #0x2a
|
|
mov r3, #0x21
|
|
bl ov15_021FD810
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021FAFE0:
|
|
mov r0, #3
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021FAFE4: .word 0x0000066C
|
|
_021FAFE8: .word 0x0000FFFA
|
|
_021FAFEC: .word 0x000005DC
|
|
_021FAFF0: .word 0x000005F3
|
|
_021FAFF4: .word gSystem
|
|
_021FAFF8: .word 0x00000672
|
|
thumb_func_end ov15_021FAE48
|
|
|
|
thumb_func_start ov15_021FAFFC
|
|
ov15_021FAFFC: ; 0x021FAFFC
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r0, r1, #0
|
|
add r0, #0x64
|
|
ldrb r3, [r0]
|
|
mov r0, #0xc
|
|
add r1, r1, #4
|
|
mul r0, r3
|
|
add r5, r1, r0
|
|
mov r0, #6
|
|
ldr r1, _021FB05C ; =0x0000066C
|
|
ldrsh r6, [r5, r0]
|
|
ldr r2, [r4, r1]
|
|
add r1, r1, #6
|
|
add r2, r6, r2
|
|
lsl r2, r2, #0x10
|
|
ldrb r1, [r4, r1]
|
|
lsr r2, r2, #0x10
|
|
cmp r1, r2
|
|
beq _021FB050
|
|
str r0, [sp]
|
|
ldr r0, [r5]
|
|
bl MoveItemSlotInList
|
|
add r0, r4, #0
|
|
bl ov15_021F9F08
|
|
ldr r1, _021FB05C ; =0x0000066C
|
|
ldr r2, [r4, r1]
|
|
add r0, r1, #0
|
|
add r2, #8
|
|
sub r0, #0x28
|
|
str r2, [r4, r0]
|
|
sub r1, #0x28
|
|
ldr r1, [r4, r1]
|
|
add r0, r4, #0
|
|
bl ov15_021FA0E4
|
|
_021FB050:
|
|
add r0, r4, #0
|
|
bl ov15_021FB060
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
nop
|
|
_021FB05C: .word 0x0000066C
|
|
thumb_func_end ov15_021FAFFC
|
|
|
|
thumb_func_start ov15_021FB060
|
|
ov15_021FB060: ; 0x021FB060
|
|
push {r3, r4, r5, lr}
|
|
mov r1, #0xd2
|
|
add r5, r0, #0
|
|
mov r3, #0
|
|
lsl r1, r1, #2
|
|
str r3, [r5, r1]
|
|
ldr r1, _021FB10C ; =0x00000671
|
|
strb r3, [r5, r1]
|
|
add r2, r1, #1
|
|
strb r3, [r5, r2]
|
|
add r1, r1, #3
|
|
str r3, [r5, r1]
|
|
bl ov15_021FB114
|
|
add r0, r5, #0
|
|
bl ov15_021F9F08
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r2, r0, #4
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
mul r0, r1
|
|
add r4, r2, r0
|
|
add r0, r5, #0
|
|
bl ov15_021FA074
|
|
mov r1, #0
|
|
add r2, r0, #0
|
|
add r0, r5, #0
|
|
add r3, r1, #0
|
|
bl ov15_021FD574
|
|
mov r2, #6
|
|
ldrsh r1, [r4, r2]
|
|
add r0, r5, #0
|
|
sub r2, r2, #7
|
|
mov r3, #0
|
|
bl ov15_021FF364
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
add r0, r5, #0
|
|
add r1, #0x64
|
|
ldrb r1, [r1]
|
|
bl ov15_02200030
|
|
mov r2, #0x8d
|
|
lsl r2, r2, #2
|
|
ldr r2, [r5, r2]
|
|
add r0, r5, #0
|
|
add r2, #0x64
|
|
ldrb r2, [r2]
|
|
mov r1, #1
|
|
bl ov15_021FD404
|
|
mov r2, #6
|
|
ldrb r1, [r4, #9]
|
|
ldrsh r2, [r4, r2]
|
|
add r0, r5, #0
|
|
mov r3, #0
|
|
bl ov15_021FF6BC
|
|
add r0, r5, #0
|
|
bl ov15_021FA074
|
|
add r2, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
mov r3, #1
|
|
bl ov15_02200140
|
|
add r0, r5, #0
|
|
bl ov15_021FED24
|
|
ldr r1, _021FB110 ; =0x00000644
|
|
add r0, r5, #0
|
|
ldr r1, [r5, r1]
|
|
bl ov15_021FFECC
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021FB10C: .word 0x00000671
|
|
_021FB110: .word 0x00000644
|
|
thumb_func_end ov15_021FB060
|
|
|
|
thumb_func_start ov15_021FB114
|
|
ov15_021FB114: ; 0x021FB114
|
|
push {r4, lr}
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r2, [r0, r1]
|
|
add r4, r2, #4
|
|
add r2, #0x64
|
|
ldrb r3, [r2]
|
|
mov r2, #0xc
|
|
mul r2, r3
|
|
add r3, r4, r2
|
|
ldr r2, _021FB148 ; =0x00000671
|
|
ldrb r2, [r0, r2]
|
|
cmp r2, #0
|
|
beq _021FB146
|
|
ldrh r2, [r3, #4]
|
|
add r1, #0x1c
|
|
ldr r0, [r0, r1]
|
|
sub r2, r2, #1
|
|
lsl r2, r2, #4
|
|
add r2, #0x10
|
|
lsl r2, r2, #0x10
|
|
mov r1, #0xb1
|
|
asr r2, r2, #0x10
|
|
bl UnkImageStruct_SetSpritePositionXY
|
|
_021FB146:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021FB148: .word 0x00000671
|
|
thumb_func_end ov15_021FB114
|
|
|
|
thumb_func_start ov15_021FB14C
|
|
ov15_021FB14C: ; 0x021FB14C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
ldr r1, _021FB370 ; =_022004EC
|
|
add r4, r0, #0
|
|
ldrb r2, [r1]
|
|
add r0, sp, #0
|
|
strb r2, [r0]
|
|
ldrb r2, [r1, #1]
|
|
strb r2, [r0, #1]
|
|
ldrb r2, [r1, #2]
|
|
strb r2, [r0, #2]
|
|
ldrb r2, [r1, #3]
|
|
ldrb r1, [r1, #4]
|
|
strb r2, [r0, #3]
|
|
strb r1, [r0, #4]
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
add r0, #0x66
|
|
ldrh r0, [r0]
|
|
mov r2, #6
|
|
bl LoadItemDataOrGfx
|
|
add r7, r0, #0
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r2, [r4, r0]
|
|
add r3, r4, #0
|
|
add r0, r2, #0
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
mul r0, r1
|
|
add r0, r2, r0
|
|
ldrb r5, [r0, #0xc]
|
|
mov r2, #0
|
|
mov r0, #0x7f
|
|
add r1, r2, #0
|
|
lsl r0, r0, #4
|
|
_021FB19C:
|
|
add r2, r2, #1
|
|
str r1, [r3, r0]
|
|
add r3, r3, #4
|
|
cmp r2, #5
|
|
blt _021FB19C
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r0, r1, #0
|
|
add r0, #0x65
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _021FB1B8
|
|
b _021FB2F8
|
|
_021FB1B8:
|
|
add r0, r1, #0
|
|
add r0, #0x76
|
|
ldrh r0, [r0]
|
|
lsl r0, r0, #0x10
|
|
lsr r2, r0, #0x11
|
|
ldr r0, _021FB374 ; =0x0000FFFE
|
|
add r0, r2, r0
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
cmp r0, #1
|
|
bhi _021FB1E8
|
|
add r0, r1, #0
|
|
add r0, #0x64
|
|
ldrb r2, [r0]
|
|
mov r0, #0xc
|
|
mul r0, r2
|
|
add r0, r1, r0
|
|
ldrb r0, [r0, #0xc]
|
|
cmp r0, #5
|
|
bne _021FB280
|
|
mov r1, #2
|
|
add r0, sp, #0
|
|
strb r1, [r0]
|
|
b _021FB280
|
|
_021FB1E8:
|
|
add r0, r7, #0
|
|
mov r1, #6
|
|
bl GetItemAttr_PreloadedItemData
|
|
cmp r0, #0
|
|
beq _021FB280
|
|
mov r2, #0x8d
|
|
lsl r2, r2, #2
|
|
ldr r1, [r4, r2]
|
|
sub r2, #0x72
|
|
add r0, r1, #0
|
|
add r0, #0x66
|
|
ldrh r0, [r0]
|
|
cmp r0, r2
|
|
bne _021FB21C
|
|
add r2, r1, #0
|
|
add r2, #0x76
|
|
ldrh r2, [r2]
|
|
lsl r2, r2, #0x1f
|
|
lsr r2, r2, #0x1f
|
|
cmp r2, #1
|
|
bne _021FB21C
|
|
mov r1, #1
|
|
add r0, sp, #0
|
|
strb r1, [r0]
|
|
b _021FB280
|
|
_021FB21C:
|
|
add r2, r1, #0
|
|
add r2, #0x64
|
|
ldrb r3, [r2]
|
|
mov r2, #0xc
|
|
mul r2, r3
|
|
add r2, r1, r2
|
|
ldrb r3, [r2, #0xc]
|
|
cmp r3, #5
|
|
bne _021FB236
|
|
mov r1, #2
|
|
add r0, sp, #0
|
|
strb r1, [r0]
|
|
b _021FB280
|
|
_021FB236:
|
|
ldr r2, _021FB378 ; =0x000001C1
|
|
cmp r0, r2
|
|
bne _021FB244
|
|
mov r1, #4
|
|
add r0, sp, #0
|
|
strb r1, [r0]
|
|
b _021FB280
|
|
_021FB244:
|
|
cmp r3, #4
|
|
bne _021FB25A
|
|
ldr r0, [r1, #0x70]
|
|
bl Leftover_CanPlantBerry
|
|
cmp r0, #1
|
|
bne _021FB25A
|
|
mov r1, #3
|
|
add r0, sp, #0
|
|
strb r1, [r0]
|
|
b _021FB280
|
|
_021FB25A:
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
sub r0, #0x3e
|
|
add r1, #0x66
|
|
ldrh r1, [r1]
|
|
cmp r1, r0
|
|
bne _021FB27A
|
|
bl SoundSys_GetGBSoundsState
|
|
cmp r0, #1
|
|
bne _021FB27A
|
|
mov r1, #0xf
|
|
add r0, sp, #0
|
|
strb r1, [r0]
|
|
b _021FB280
|
|
_021FB27A:
|
|
mov r1, #0
|
|
add r0, sp, #0
|
|
strb r1, [r0]
|
|
_021FB280:
|
|
add r0, r7, #0
|
|
mov r1, #3
|
|
bl GetItemAttr_PreloadedItemData
|
|
cmp r0, #0
|
|
bne _021FB2AE
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r0, #0x66
|
|
ldrh r0, [r0]
|
|
bl ItemIdIsNotJohtoBall
|
|
cmp r0, #1
|
|
bne _021FB2A4
|
|
mov r1, #8
|
|
add r0, sp, #0
|
|
strb r1, [r0, #2]
|
|
_021FB2A4:
|
|
cmp r5, #3
|
|
beq _021FB2AE
|
|
mov r1, #5
|
|
add r0, sp, #0
|
|
strb r1, [r0, #1]
|
|
_021FB2AE:
|
|
add r0, r7, #0
|
|
mov r1, #4
|
|
bl GetItemAttr_PreloadedItemData
|
|
cmp r0, #0
|
|
beq _021FB310
|
|
mov r0, #0x8e
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl Bag_GetRegisteredItem1
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r2, [r4, r1]
|
|
add r2, #0x66
|
|
ldrh r2, [r2]
|
|
cmp r2, r0
|
|
beq _021FB2E8
|
|
add r0, r1, #4
|
|
ldr r0, [r4, r0]
|
|
bl Bag_GetRegisteredItem2
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r4, r1]
|
|
add r1, #0x66
|
|
ldrh r1, [r1]
|
|
cmp r1, r0
|
|
bne _021FB2F0
|
|
_021FB2E8:
|
|
mov r1, #7
|
|
add r0, sp, #0
|
|
strb r1, [r0, #1]
|
|
b _021FB310
|
|
_021FB2F0:
|
|
mov r1, #6
|
|
add r0, sp, #0
|
|
strb r1, [r0, #1]
|
|
b _021FB310
|
|
_021FB2F8:
|
|
cmp r0, #6
|
|
bne _021FB310
|
|
add r1, #0x66
|
|
ldrh r1, [r1]
|
|
add r0, r5, #0
|
|
bl ov15_021FD3F0
|
|
cmp r0, #1
|
|
bne _021FB310
|
|
mov r1, #0xe
|
|
add r0, sp, #0
|
|
strb r1, [r0]
|
|
_021FB310:
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r0, #0x65
|
|
ldrb r0, [r0]
|
|
cmp r0, #6
|
|
beq _021FB32C
|
|
cmp r5, #3
|
|
beq _021FB32C
|
|
cmp r5, #4
|
|
beq _021FB32C
|
|
mov r1, #0xc
|
|
add r0, sp, #0
|
|
strb r1, [r0, #3]
|
|
_021FB32C:
|
|
mov r3, #0x7f
|
|
mov r1, #0xb
|
|
add r0, sp, #0
|
|
strb r1, [r0, #4]
|
|
ldr r6, _021FB37C ; =ov15_02201368
|
|
mov r2, #0
|
|
add r0, sp, #0
|
|
add r1, r4, #0
|
|
lsl r3, r3, #4
|
|
_021FB33E:
|
|
ldrb r5, [r0]
|
|
cmp r5, #0xff
|
|
beq _021FB34A
|
|
lsl r5, r5, #2
|
|
ldr r5, [r6, r5]
|
|
str r5, [r1, r3]
|
|
_021FB34A:
|
|
add r2, r2, #1
|
|
add r0, r0, #1
|
|
add r1, r1, #4
|
|
cmp r2, #5
|
|
blt _021FB33E
|
|
add r0, r4, #0
|
|
add r1, sp, #0
|
|
mov r2, #5
|
|
bl ov15_021FEB84
|
|
add r0, r4, #0
|
|
add r1, sp, #0
|
|
bl ov15_021FB380
|
|
add r0, r7, #0
|
|
bl FreeToHeap
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021FB370: .word _022004EC
|
|
_021FB374: .word 0x0000FFFE
|
|
_021FB378: .word 0x000001C1
|
|
_021FB37C: .word ov15_02201368
|
|
thumb_func_end ov15_021FB14C
|
|
|
|
thumb_func_start ov15_021FB380
|
|
ov15_021FB380: ; 0x021FB380
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldr r1, _021FB3E8 ; =0x0000066C
|
|
add r5, r0, #0
|
|
mov r2, #0
|
|
str r2, [r5, r1]
|
|
ldr r2, [r5, r1]
|
|
ldr r1, _021FB3EC ; =ov15_02201468
|
|
ldrb r1, [r1, r2]
|
|
bl ov15_021FFECC
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov15_0220023C
|
|
mov r0, #0x61
|
|
mov r1, #3
|
|
lsl r0, r0, #2
|
|
lsl r1, r1, #8
|
|
ldrb r2, [r4]
|
|
add r0, r5, r0
|
|
add r1, r5, r1
|
|
bl ov15_021FF758
|
|
mov r0, #0x65
|
|
mov r1, #3
|
|
lsl r0, r0, #2
|
|
lsl r1, r1, #8
|
|
ldrb r2, [r4, #1]
|
|
add r0, r5, r0
|
|
add r1, r5, r1
|
|
bl ov15_021FF758
|
|
mov r0, #0x69
|
|
mov r1, #3
|
|
lsl r0, r0, #2
|
|
lsl r1, r1, #8
|
|
ldrb r2, [r4, #2]
|
|
add r0, r5, r0
|
|
add r1, r5, r1
|
|
bl ov15_021FF758
|
|
mov r0, #0x6d
|
|
mov r1, #3
|
|
lsl r0, r0, #2
|
|
lsl r1, r1, #8
|
|
ldrb r2, [r4, #3]
|
|
add r0, r5, r0
|
|
add r1, r5, r1
|
|
bl ov15_021FF758
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021FB3E8: .word 0x0000066C
|
|
_021FB3EC: .word ov15_02201468
|
|
thumb_func_end ov15_021FB380
|
|
|
|
thumb_func_start ov15_021FB3F0
|
|
ov15_021FB3F0: ; 0x021FB3F0
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _021FB4F8 ; =0x0000066C
|
|
mov r2, #0x40
|
|
ldr r1, [r5, r0]
|
|
ldr r0, _021FB4FC ; =gSystem
|
|
add r4, r1, #0
|
|
ldr r0, [r0, #0x48]
|
|
tst r2, r0
|
|
beq _021FB40C
|
|
ldr r0, _021FB500 ; =ov15_02200528
|
|
lsl r2, r1, #2
|
|
ldrb r4, [r0, r2]
|
|
b _021FB434
|
|
_021FB40C:
|
|
mov r2, #0x80
|
|
tst r2, r0
|
|
beq _021FB41A
|
|
ldr r0, _021FB504 ; =ov15_02200529
|
|
lsl r2, r1, #2
|
|
ldrb r4, [r0, r2]
|
|
b _021FB434
|
|
_021FB41A:
|
|
mov r2, #0x20
|
|
tst r2, r0
|
|
beq _021FB428
|
|
ldr r0, _021FB508 ; =ov15_0220052A
|
|
lsl r2, r1, #2
|
|
ldrb r4, [r0, r2]
|
|
b _021FB434
|
|
_021FB428:
|
|
mov r2, #0x10
|
|
tst r0, r2
|
|
beq _021FB434
|
|
ldr r0, _021FB50C ; =ov15_0220052B
|
|
lsl r2, r1, #2
|
|
ldrb r4, [r0, r2]
|
|
_021FB434:
|
|
cmp r4, r1
|
|
beq _021FB452
|
|
ldr r0, _021FB4F8 ; =0x0000066C
|
|
ldr r1, _021FB510 ; =ov15_02201468
|
|
str r4, [r5, r0]
|
|
ldrb r1, [r1, r4]
|
|
add r0, r5, #0
|
|
bl ov15_021FFECC
|
|
ldr r0, _021FB514 ; =0x000005DC
|
|
bl PlaySE
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r4, r5, r6, pc}
|
|
_021FB452:
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov15_021FAC2C
|
|
add r6, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r6, r0
|
|
beq _021FB4A4
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov15_021FD774
|
|
ldr r0, _021FB4F8 ; =0x0000066C
|
|
ldr r1, _021FB510 ; =ov15_02201468
|
|
str r6, [r5, r0]
|
|
ldrb r1, [r1, r6]
|
|
add r0, r5, #0
|
|
bl ov15_021FFECC
|
|
cmp r6, #4
|
|
bne _021FB48C
|
|
mov r0, #SEQ_SE_GS_GEARCANCEL>>6
|
|
lsl r0, r0, #6
|
|
bl PlaySE
|
|
mov r0, #1
|
|
mvn r0, r0
|
|
pop {r4, r5, r6, pc}
|
|
_021FB48C:
|
|
lsl r0, r6, #2
|
|
add r1, r5, r0
|
|
mov r0, #0x7f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0
|
|
beq _021FB4F2
|
|
ldr r0, _021FB514 ; =0x000005DC
|
|
bl PlaySE
|
|
add r0, r6, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021FB4A4:
|
|
ldr r0, _021FB4FC ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #1
|
|
tst r0, r1
|
|
beq _021FB4DE
|
|
lsl r0, r4, #2
|
|
add r1, r5, r0
|
|
mov r0, #0x7f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0
|
|
beq _021FB4CE
|
|
ldr r0, _021FB514 ; =0x000005DC
|
|
bl PlaySE
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl ov15_021FD774
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021FB4CE:
|
|
cmp r4, #4
|
|
bne _021FB4F2
|
|
ldr r0, _021FB514 ; =0x000005DC
|
|
bl PlaySE
|
|
mov r0, #1
|
|
mvn r0, r0
|
|
pop {r4, r5, r6, pc}
|
|
_021FB4DE:
|
|
mov r0, #2
|
|
tst r0, r1
|
|
beq _021FB4F2
|
|
mov r0, #SEQ_SE_GS_GEARCANCEL>>6
|
|
lsl r0, r0, #6
|
|
bl PlaySE
|
|
mov r0, #1
|
|
mvn r0, r0
|
|
pop {r4, r5, r6, pc}
|
|
_021FB4F2:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021FB4F8: .word 0x0000066C
|
|
_021FB4FC: .word gSystem
|
|
_021FB500: .word ov15_02200528
|
|
_021FB504: .word ov15_02200529
|
|
_021FB508: .word ov15_0220052A
|
|
_021FB50C: .word ov15_0220052B
|
|
_021FB510: .word ov15_02201468
|
|
_021FB514: .word 0x000005DC
|
|
thumb_func_end ov15_021FB3F0
|
|
|
|
thumb_func_start ov15_021FB518
|
|
ov15_021FB518: ; 0x021FB518
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
bl ov15_021F9F08
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r2, r0, #4
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
mul r0, r1
|
|
add r4, r2, r0
|
|
add r0, r5, #0
|
|
bl ov15_021FA074
|
|
mov r1, #0
|
|
add r2, r0, #0
|
|
add r0, r5, #0
|
|
add r3, r1, #0
|
|
bl ov15_021FD574
|
|
mov r2, #6
|
|
ldrsh r1, [r4, r2]
|
|
add r0, r5, #0
|
|
sub r2, r2, #7
|
|
mov r3, #0
|
|
bl ov15_021FF364
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
add r0, r5, #0
|
|
add r1, #0x64
|
|
ldrb r1, [r1]
|
|
bl ov15_02200030
|
|
mov r2, #0x8d
|
|
lsl r2, r2, #2
|
|
ldr r2, [r5, r2]
|
|
add r0, r5, #0
|
|
add r2, #0x64
|
|
ldrb r2, [r2]
|
|
mov r1, #1
|
|
bl ov15_021FD404
|
|
mov r2, #6
|
|
ldrb r1, [r4, #9]
|
|
ldrsh r2, [r4, r2]
|
|
add r0, r5, #0
|
|
mov r3, #0
|
|
bl ov15_021FF6BC
|
|
add r0, r5, #0
|
|
bl ov15_021FA074
|
|
add r2, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
mov r3, #0
|
|
bl ov15_02200140
|
|
ldr r1, _021FB5A8 ; =0x00000644
|
|
add r0, r5, #0
|
|
ldr r1, [r5, r1]
|
|
bl ov15_021FFECC
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov15_021F9C78
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021FB5A8: .word 0x00000644
|
|
thumb_func_end ov15_021FB518
|
|
|
|
thumb_func_start ov15_021FB5AC
|
|
ov15_021FB5AC: ; 0x021FB5AC
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
bl ov15_021FB3F0
|
|
add r1, r0, #0
|
|
mov r0, #1
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
beq _021FB5C8
|
|
add r0, r0, #1
|
|
cmp r1, r0
|
|
beq _021FB5F8
|
|
b _021FB5DC
|
|
_021FB5C8:
|
|
mov r0, #0x1c
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r1, #0x13
|
|
mov r2, #9
|
|
mov r3, #8
|
|
bl ov15_021FD7D0
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
_021FB5DC:
|
|
ldr r0, _021FB600 ; =0x00000948
|
|
mov r2, #9
|
|
str r1, [r4, r0]
|
|
add r1, #0x1c
|
|
mov r0, #0x1d
|
|
lsl r1, r1, #0x18
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
lsr r1, r1, #0x18
|
|
mov r3, #8
|
|
bl ov15_021FD7D0
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
_021FB5F8:
|
|
mov r0, #4
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
nop
|
|
_021FB600: .word 0x00000948
|
|
thumb_func_end ov15_021FB5AC
|
|
|
|
thumb_func_start ov15_021FB604
|
|
ov15_021FB604: ; 0x021FB604
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
bl ov15_02200294
|
|
add r0, r5, #0
|
|
bl ov15_021FF560
|
|
mov r0, #0x61
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
bl ov15_021FF7AC
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r4, [r5, r0]
|
|
add r0, r5, #0
|
|
bl ov15_021FA074
|
|
add r1, r4, #4
|
|
add r4, #0x64
|
|
add r2, r0, #0
|
|
ldrb r4, [r4]
|
|
mov r3, #0xc
|
|
add r0, r5, #0
|
|
mul r3, r4
|
|
add r1, r1, r3
|
|
mov r3, #0
|
|
bl ov15_02200140
|
|
add r0, r5, #0
|
|
bl ov15_021FE868
|
|
add r0, r5, #0
|
|
bl ov15_021FED3C
|
|
add r0, r5, #0
|
|
bl ov15_021FB518
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov15_021FB604
|
|
|
|
thumb_func_start ov15_021FB654
|
|
ov15_021FB654: ; 0x021FB654
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov15_02200294
|
|
mov r0, #0x61
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl ov15_021FF7AC
|
|
ldr r1, _021FB67C ; =0x00000948
|
|
add r0, r4, #0
|
|
ldr r1, [r4, r1]
|
|
lsl r1, r1, #2
|
|
add r2, r4, r1
|
|
mov r1, #0x7f
|
|
lsl r1, r1, #4
|
|
ldr r1, [r2, r1]
|
|
blx r1
|
|
pop {r4, pc}
|
|
nop
|
|
_021FB67C: .word 0x00000948
|
|
thumb_func_end ov15_021FB654
|
|
|
|
thumb_func_start ov15_021FB680
|
|
ov15_021FB680: ; 0x021FB680
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
mov r1, #0
|
|
bl ov15_021FD788
|
|
add r0, r4, #0
|
|
bl ov15_021FFF24
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #6
|
|
add r0, #0x66
|
|
ldrh r0, [r0]
|
|
add r2, r1, #0
|
|
bl GetItemAttr
|
|
add r1, r0, #0
|
|
lsl r1, r1, #0x10
|
|
mov r0, #2
|
|
lsr r1, r1, #0x10
|
|
bl GetItemFieldUseFunc
|
|
add r1, r0, #0
|
|
beq _021FB6EE
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
ldr r0, [r0, #0x70]
|
|
blx r1
|
|
add r3, r0, #0
|
|
beq _021FB6EE
|
|
mov r2, #0x8f
|
|
mov r0, #6
|
|
lsl r2, r2, #2
|
|
str r0, [sp]
|
|
ldr r0, [r4, r2]
|
|
sub r2, #8
|
|
ldr r2, [r4, r2]
|
|
ldr r1, _021FB6F8 ; =0x000005E4
|
|
add r2, #0x66
|
|
ldrh r2, [r2]
|
|
ldr r1, [r4, r1]
|
|
bl GetItemUseErrorMessage
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov15_021FEF48
|
|
ldr r1, _021FB6FC ; =0x00000616
|
|
add sp, #4
|
|
strb r0, [r4, r1]
|
|
mov r0, #0xc
|
|
pop {r3, r4, pc}
|
|
_021FB6EE:
|
|
add r0, r4, #0
|
|
bl ov15_021FB784
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
_021FB6F8: .word 0x000005E4
|
|
_021FB6FC: .word 0x00000616
|
|
thumb_func_end ov15_021FB680
|
|
|
|
thumb_func_start ov15_021FB700
|
|
ov15_021FB700: ; 0x021FB700
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021FB778 ; =0x00000616
|
|
ldrb r0, [r4, r0]
|
|
bl TextPrinterCheckActive
|
|
cmp r0, #0
|
|
bne _021FB772
|
|
ldr r0, _021FB77C ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #3
|
|
tst r0, r1
|
|
bne _021FB722
|
|
ldr r0, _021FB780 ; =gSystem + 0x40
|
|
ldrh r0, [r0, #0x24]
|
|
cmp r0, #0
|
|
beq _021FB772
|
|
_021FB722:
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r0, #0x65
|
|
ldrb r0, [r0]
|
|
cmp r0, #3
|
|
beq _021FB736
|
|
add r0, r4, #0
|
|
bl ov15_021FED3C
|
|
_021FB736:
|
|
add r0, r4, #0
|
|
add r0, #0x34
|
|
mov r1, #1
|
|
bl ClearFrameAndWindow2
|
|
add r0, r4, #0
|
|
add r0, #0x34
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
add r0, r4, #4
|
|
bl ScheduleWindowCopyToVram
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov15_021FD788
|
|
add r0, r4, #0
|
|
bl ov15_021FB518
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r0, #0x65
|
|
ldrb r0, [r0]
|
|
cmp r0, #3
|
|
bne _021FB76E
|
|
mov r0, #0x1a
|
|
pop {r4, pc}
|
|
_021FB76E:
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021FB772:
|
|
mov r0, #0xc
|
|
pop {r4, pc}
|
|
nop
|
|
_021FB778: .word 0x00000616
|
|
_021FB77C: .word gSystem
|
|
_021FB780: .word gSystem + 0x40
|
|
thumb_func_end ov15_021FB700
|
|
|
|
thumb_func_start ov15_021FB784
|
|
ov15_021FB784: ; 0x021FB784
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r3, r1, #4
|
|
add r1, #0x64
|
|
ldrb r2, [r1]
|
|
mov r1, #0xc
|
|
mul r1, r2
|
|
add r3, r3, r1
|
|
ldr r1, _021FB80C ; =0x0000067B
|
|
mov r2, #0
|
|
strb r2, [r4, r1]
|
|
ldrb r2, [r3, #8]
|
|
cmp r2, #3
|
|
bne _021FB7B0
|
|
ldr r2, _021FB810 ; =ov15_021FB830
|
|
add r0, r1, #1
|
|
str r2, [r4, r0]
|
|
mov r0, #0xd
|
|
pop {r4, pc}
|
|
_021FB7B0:
|
|
ldr r2, [r4, r0]
|
|
sub r1, #0x97
|
|
ldr r0, [r2]
|
|
add r2, #0x66
|
|
ldrh r2, [r2]
|
|
ldr r1, [r4, r1]
|
|
mov r3, #6
|
|
bl TryFormatRegisteredKeyItemUseMessage
|
|
cmp r0, #1
|
|
bne _021FB7D6
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov15_021FEF48
|
|
ldr r1, _021FB814 ; =0x00000616
|
|
strb r0, [r4, r1]
|
|
mov r0, #0xc
|
|
pop {r4, pc}
|
|
_021FB7D6:
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r4, r1]
|
|
add r0, r4, #0
|
|
add r1, #0x66
|
|
ldrh r1, [r1]
|
|
bl BagApp_TryUseItemInPlace
|
|
cmp r0, #1
|
|
bne _021FB7F4
|
|
ldr r1, _021FB818 ; =ov15_021FBBB0
|
|
ldr r0, _021FB81C ; =0x0000067C
|
|
str r1, [r4, r0]
|
|
mov r0, #0xd
|
|
pop {r4, pc}
|
|
_021FB7F4:
|
|
mov r0, #1
|
|
mov r1, #6
|
|
bl sub_020880CC
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
add r0, #0x68
|
|
strh r1, [r0]
|
|
mov r0, #0x25
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021FB80C: .word 0x0000067B
|
|
_021FB810: .word ov15_021FB830
|
|
_021FB814: .word 0x00000616
|
|
_021FB818: .word ov15_021FBBB0
|
|
_021FB81C: .word 0x0000067C
|
|
thumb_func_end ov15_021FB784
|
|
|
|
thumb_func_start ov15_021FB820
|
|
ov15_021FB820: ; 0x021FB820
|
|
push {r3, lr}
|
|
ldr r1, _021FB82C ; =0x0000067C
|
|
ldr r1, [r0, r1]
|
|
blx r1
|
|
pop {r3, pc}
|
|
nop
|
|
_021FB82C: .word 0x0000067C
|
|
thumb_func_end ov15_021FB820
|
|
|
|
thumb_func_start ov15_021FB830
|
|
ov15_021FB830: ; 0x021FB830
|
|
push {r3, r4, r5, lr}
|
|
ldr r1, _021FB9C0 ; =0x0000067B
|
|
add r4, r0, #0
|
|
ldrb r0, [r4, r1]
|
|
cmp r0, #3
|
|
bhi _021FB936
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021FB848: ; jump table
|
|
.short _021FB850 - _021FB848 - 2 ; case 0
|
|
.short _021FB8AC - _021FB848 - 2 ; case 1
|
|
.short _021FB90C - _021FB848 - 2 ; case 2
|
|
.short _021FB926 - _021FB848 - 2 ; case 3
|
|
_021FB850:
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r0, #0x66
|
|
ldrh r0, [r0]
|
|
bl TMHMGetMove
|
|
add r5, r0, #0
|
|
mov r0, #0xbd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
add r2, r5, #0
|
|
bl BufferMoveName
|
|
add r0, r5, #0
|
|
bl MoveIsHM
|
|
cmp r0, #1
|
|
ldr r2, _021FB9C4 ; =0x000005E4
|
|
bne _021FB88A
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
ldr r2, [r4, r2]
|
|
mov r1, #0x3c
|
|
bl ReadMsgDataIntoString
|
|
b _021FB898
|
|
_021FB88A:
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
ldr r2, [r4, r2]
|
|
mov r1, #0x3b
|
|
bl ReadMsgDataIntoString
|
|
_021FB898:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov15_021FEF48
|
|
ldr r1, _021FB9C8 ; =0x00000616
|
|
strb r0, [r4, r1]
|
|
mov r0, #1
|
|
add r1, #0x65
|
|
strb r0, [r4, r1]
|
|
b _021FB9BA
|
|
_021FB8AC:
|
|
sub r1, #0x65
|
|
ldrb r0, [r4, r1]
|
|
bl TextPrinterCheckActive
|
|
cmp r0, #0
|
|
bne _021FB936
|
|
ldr r0, _021FB9CC ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #3
|
|
tst r0, r1
|
|
bne _021FB8CA
|
|
ldr r0, _021FB9D0 ; =gSystem + 0x40
|
|
ldrh r0, [r0, #0x24]
|
|
cmp r0, #0
|
|
beq _021FB9BA
|
|
_021FB8CA:
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x3d
|
|
bl NewString_ReadMsgData
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
add r0, #0x34
|
|
mov r1, #0xf
|
|
bl FillWindowPixelBuffer
|
|
mov r0, #0xbd
|
|
ldr r1, _021FB9C4 ; =0x000005E4
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r4, r1]
|
|
add r2, r5, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r5, #0
|
|
bl String_Delete
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov15_021FEF48
|
|
ldr r1, _021FB9C8 ; =0x00000616
|
|
strb r0, [r4, r1]
|
|
mov r0, #2
|
|
add r1, #0x65
|
|
strb r0, [r4, r1]
|
|
b _021FB9BA
|
|
_021FB90C:
|
|
sub r1, #0x65
|
|
ldrb r0, [r4, r1]
|
|
bl TextPrinterCheckActive
|
|
cmp r0, #0
|
|
bne _021FB9BA
|
|
add r0, r4, #0
|
|
bl ov15_021FF004
|
|
ldr r0, _021FB9C0 ; =0x0000067B
|
|
mov r1, #3
|
|
strb r1, [r4, r0]
|
|
b _021FB9BA
|
|
_021FB926:
|
|
ldr r0, _021FB9D4 ; =0x00000804
|
|
ldr r0, [r4, r0]
|
|
bl YesNoPrompt_HandleInput
|
|
cmp r0, #1
|
|
beq _021FB938
|
|
cmp r0, #2
|
|
beq _021FB956
|
|
_021FB936:
|
|
b _021FB9BA
|
|
_021FB938:
|
|
add r0, r4, #0
|
|
bl ov15_021FF058
|
|
mov r0, #1
|
|
mov r1, #6
|
|
bl sub_020880CC
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
add r0, #0x68
|
|
strh r1, [r0]
|
|
mov r0, #0x25
|
|
pop {r3, r4, r5, pc}
|
|
_021FB956:
|
|
add r0, r4, #0
|
|
bl ov15_021FF058
|
|
add r0, r4, #0
|
|
bl ov15_021FED3C
|
|
add r0, r4, #0
|
|
add r0, #0x34
|
|
mov r1, #1
|
|
bl ClearFrameAndWindow2
|
|
add r0, r4, #0
|
|
add r0, #0x34
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
add r0, r4, #4
|
|
bl ScheduleWindowCopyToVram
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r5, [r4, r0]
|
|
add r0, r4, #0
|
|
bl ov15_021FA074
|
|
add r1, r5, #4
|
|
add r5, #0x64
|
|
add r2, r0, #0
|
|
ldrb r5, [r5]
|
|
mov r3, #0xc
|
|
add r0, r4, #0
|
|
mul r3, r5
|
|
add r1, r1, r3
|
|
mov r3, #0
|
|
bl ov15_02200140
|
|
add r0, r4, #0
|
|
bl ov15_021FE868
|
|
add r0, r4, #0
|
|
bl ov15_02200294
|
|
add r0, r4, #0
|
|
bl ov15_021FB518
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov15_021FD788
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021FB9BA:
|
|
mov r0, #0xd
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021FB9C0: .word 0x0000067B
|
|
_021FB9C4: .word 0x000005E4
|
|
_021FB9C8: .word 0x00000616
|
|
_021FB9CC: .word gSystem
|
|
_021FB9D0: .word gSystem + 0x40
|
|
_021FB9D4: .word 0x00000804
|
|
thumb_func_end ov15_021FB830
|
|
|
|
thumb_func_start BagApp_TryUseItemInPlace
|
|
BagApp_TryUseItemInPlace: ; 0x021FB9D8
|
|
push {r3, r4, r5, lr}
|
|
mov r2, #0xbd
|
|
add r4, r0, #0
|
|
lsl r2, r2, #2
|
|
ldr r0, [r4, r2]
|
|
sub r2, #0xb8
|
|
add r5, r1, #0
|
|
ldr r2, [r4, r2]
|
|
mov r1, #0
|
|
bl BufferPlayersName
|
|
mov r0, #0xbd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
add r2, r5, #0
|
|
bl BufferItemName
|
|
cmp r5, #ITEM_BLACK_FLUTE
|
|
bne _021FBA20
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #msg_0010_00065
|
|
bl NewString_ReadMsgData
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl BagApp_SetFlute
|
|
mov r0, #0x1a
|
|
mov r1, #0
|
|
lsl r0, r0, #6
|
|
strh r1, [r4, r0]
|
|
b _021FBA7A
|
|
_021FBA20:
|
|
cmp r5, #ITEM_WHITE_FLUTE
|
|
bne _021FBA44
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #msg_0010_00064
|
|
bl NewString_ReadMsgData
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
bl BagApp_SetFlute
|
|
mov r0, #0x1a
|
|
mov r1, #0
|
|
lsl r0, r0, #6
|
|
strh r1, [r4, r0]
|
|
b _021FBA7A
|
|
_021FBA44:
|
|
cmp r5, #ITEM_MAX_REPEL
|
|
beq _021FBA50
|
|
cmp r5, #ITEM_SUPER_REPEL
|
|
beq _021FBA50
|
|
cmp r5, #ITEM_REPEL
|
|
bne _021FBA5C
|
|
_021FBA50:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl BagApp_TryUseRepel
|
|
add r5, r0, #0
|
|
b _021FBA7A
|
|
_021FBA5C:
|
|
ldr r0, _021FBA94 ; =ITEM_GB_SOUNDS
|
|
cmp r5, r0
|
|
bne _021FBA76
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl BagApp_ToggleGBSounds
|
|
add r5, r0, #0
|
|
mov r0, #0x1a
|
|
mov r1, #0
|
|
lsl r0, r0, #6
|
|
strh r1, [r4, r0]
|
|
b _021FBA7A
|
|
_021FBA76:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_021FBA7A:
|
|
mov r0, #0xbd
|
|
ldr r1, _021FBA98 ; =0x000005E4
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r4, r1]
|
|
add r2, r5, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r5, #0
|
|
bl String_Delete
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021FBA94: .word ITEM_GB_SOUNDS
|
|
_021FBA98: .word 0x000005E4
|
|
thumb_func_end BagApp_TryUseItemInPlace
|
|
|
|
thumb_func_start BagApp_TryUseRepel
|
|
BagApp_TryUseRepel: ; 0x021FBA9C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
add r5, r1, #0
|
|
bl BagApp_GetSaveRoamers
|
|
bl RoamerSave_RepelNotInUse
|
|
cmp r0, #0
|
|
bne _021FBAC4
|
|
mov r0, #0x1a
|
|
mov r1, #0
|
|
lsl r0, r0, #6
|
|
strh r1, [r4, r0]
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #msg_0010_00063
|
|
bl NewString_ReadMsgData
|
|
pop {r3, r4, r5, pc}
|
|
_021FBAC4:
|
|
add r0, r5, #0
|
|
mov r1, #2
|
|
mov r2, #6
|
|
bl GetItemAttr
|
|
add r1, r0, #0
|
|
lsl r1, r1, #0x18
|
|
add r0, r4, #0
|
|
lsr r1, r1, #0x18
|
|
bl BagApp_GetRepelStepCountAddr
|
|
mov r0, #0x680>>6
|
|
mov r1, #1
|
|
lsl r0, r0, #6
|
|
strh r1, [r4, r0]
|
|
sub r0, #0x680-SEQ_SE_DP_CARD2
|
|
bl PlaySE
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #msg_0010_00062
|
|
bl NewString_ReadMsgData
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end BagApp_TryUseRepel
|
|
|
|
thumb_func_start BagApp_ToggleGBSounds
|
|
BagApp_ToggleGBSounds: ; 0x021FBAF8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl SoundSys_GetGBSoundsState
|
|
cmp r0, #1
|
|
bne _021FBB16
|
|
bl SoundSys_ToggleGBSounds
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #msg_0010_00105
|
|
bl NewString_ReadMsgData
|
|
pop {r4, pc}
|
|
_021FBB16:
|
|
bl SoundSys_ToggleGBSounds
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #msg_0010_00104
|
|
bl NewString_ReadMsgData
|
|
pop {r4, pc}
|
|
thumb_func_end BagApp_ToggleGBSounds
|
|
|
|
thumb_func_start ov15_021FBB28
|
|
ov15_021FBB28: ; 0x021FBB28
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r2, [r4, r0]
|
|
add r0, r2, #0
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
add r3, r1, #0
|
|
mul r3, r0
|
|
add r1, r2, r3
|
|
mov r0, #6
|
|
mov r3, #0x1a
|
|
str r0, [sp]
|
|
add r2, #0x66
|
|
lsl r3, r3, #6
|
|
ldr r0, [r1, #4]
|
|
ldrb r1, [r1, #0xd]
|
|
ldrh r2, [r2]
|
|
ldrh r3, [r4, r3]
|
|
bl Pocket_TakeItem
|
|
add r0, r4, #0
|
|
bl ov15_021F9F08
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r3, [r4, r0]
|
|
add r0, r3, #0
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
add r2, r1, #0
|
|
mul r2, r0
|
|
add r0, r3, #0
|
|
add r1, r3, #0
|
|
add r0, #0xa
|
|
add r1, #8
|
|
add r0, r0, r2
|
|
add r1, r1, r2
|
|
add r2, r3, r2
|
|
ldrb r2, [r2, #0xd]
|
|
bl ov15_021FA044
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r2, [r4, r0]
|
|
add r0, r2, #0
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
add r3, r1, #0
|
|
mul r3, r0
|
|
add r0, r2, #0
|
|
add r1, r2, #0
|
|
add r2, r2, r3
|
|
add r0, #0xa
|
|
add r1, #8
|
|
ldrb r2, [r2, #0xd]
|
|
add r0, r0, r3
|
|
add r1, r1, r3
|
|
mov r3, #6
|
|
bl ov15_021FA070
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
thumb_func_end ov15_021FBB28
|
|
|
|
thumb_func_start ov15_021FBBB0
|
|
ov15_021FBBB0: ; 0x021FBBB0
|
|
push {r3, r4, r5, lr}
|
|
ldr r1, _021FBC5C ; =0x0000067B
|
|
add r5, r0, #0
|
|
ldrb r2, [r5, r1]
|
|
cmp r2, #0
|
|
beq _021FBBC2
|
|
cmp r2, #1
|
|
beq _021FBBD4
|
|
b _021FBC56
|
|
_021FBBC2:
|
|
mov r1, #0
|
|
bl ov15_021FEF48
|
|
ldr r1, _021FBC60 ; =0x00000616
|
|
strb r0, [r5, r1]
|
|
mov r0, #1
|
|
add r1, #0x65
|
|
strb r0, [r5, r1]
|
|
b _021FBC56
|
|
_021FBBD4:
|
|
sub r1, #0x65
|
|
ldrb r0, [r5, r1]
|
|
bl TextPrinterCheckActive
|
|
cmp r0, #0
|
|
bne _021FBC56
|
|
ldr r0, _021FBC64 ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #3
|
|
tst r0, r1
|
|
bne _021FBBF2
|
|
ldr r0, _021FBC68 ; =gSystem + 0x40
|
|
ldrh r0, [r0, #0x24]
|
|
cmp r0, #0
|
|
beq _021FBC56
|
|
_021FBBF2:
|
|
add r0, r5, #0
|
|
bl ov15_021FED3C
|
|
add r0, r5, #0
|
|
add r0, #0x34
|
|
mov r1, #1
|
|
bl ClearFrameAndWindow2
|
|
add r0, r5, #0
|
|
add r0, #0x34
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
add r0, r5, #0
|
|
bl ov15_021FBB28
|
|
add r0, r5, #0
|
|
bl ov15_021FB518
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r4, [r5, r0]
|
|
add r0, r5, #0
|
|
bl ov15_021FA074
|
|
add r1, r4, #4
|
|
add r4, #0x64
|
|
add r2, r0, #0
|
|
ldrb r4, [r4]
|
|
mov r3, #0xc
|
|
add r0, r5, #0
|
|
mul r3, r4
|
|
add r1, r1, r3
|
|
mov r3, #1
|
|
bl ov15_02200140
|
|
add r0, r5, #0
|
|
bl ov15_021FA170
|
|
add r0, r5, #4
|
|
bl ScheduleWindowCopyToVram
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov15_021FD788
|
|
ldr r0, _021FBC5C ; =0x0000067B
|
|
mov r1, #0
|
|
strb r1, [r5, r0]
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021FBC56:
|
|
mov r0, #0xd
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021FBC5C: .word 0x0000067B
|
|
_021FBC60: .word 0x00000616
|
|
_021FBC64: .word gSystem
|
|
_021FBC68: .word gSystem + 0x40
|
|
thumb_func_end ov15_021FBBB0
|
|
|
|
thumb_func_start ov15_021FBC6C
|
|
ov15_021FBC6C: ; 0x021FBC6C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov15_021FED3C
|
|
mov r0, #1
|
|
mov r1, #6
|
|
bl sub_020880CC
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
add r0, #0x68
|
|
strh r1, [r0]
|
|
mov r0, #0x25
|
|
pop {r4, pc}
|
|
thumb_func_end ov15_021FBC6C
|
|
|
|
thumb_func_start ov15_021FBC8C
|
|
ov15_021FBC8C: ; 0x021FBC8C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov15_021FED3C
|
|
mov r0, #1
|
|
mov r1, #6
|
|
bl sub_020880CC
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #3
|
|
add r0, #0x68
|
|
strh r1, [r0]
|
|
mov r0, #0x25
|
|
pop {r4, pc}
|
|
thumb_func_end ov15_021FBC8C
|
|
|
|
thumb_func_start ov15_021FBCAC
|
|
ov15_021FBCAC: ; 0x021FBCAC
|
|
push {r4, lr}
|
|
mov r1, #0x1a
|
|
add r4, r0, #0
|
|
mov r2, #1
|
|
lsl r1, r1, #6
|
|
strh r2, [r4, r1]
|
|
bl ov15_021FFF24
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r2, [r4, r0]
|
|
mov r3, #6
|
|
add r0, r2, #0
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
mul r0, r1
|
|
add r1, r2, r0
|
|
add r2, #0x66
|
|
ldr r0, [r1, #4]
|
|
ldrb r1, [r1, #0xd]
|
|
ldrh r2, [r2]
|
|
bl Pocket_GetQuantity
|
|
cmp r0, #1
|
|
bne _021FBCF2
|
|
add r0, r4, #0
|
|
bl ov15_021FEEA4
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov15_021FD788
|
|
mov r0, #8
|
|
pop {r4, pc}
|
|
_021FBCF2:
|
|
mov r2, #0
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
add r3, r2, #0
|
|
bl ov15_021FD574
|
|
ldr r2, _021FBD24 ; =0x00000682
|
|
add r0, r4, #0
|
|
ldrh r2, [r4, r2]
|
|
mov r1, #3
|
|
bl ov15_02200300
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl ov15_021FEDEC
|
|
add r0, r4, #0
|
|
bl ov15_021FF7C4
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov15_021FF29C
|
|
mov r0, #5
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021FBD24: .word 0x00000682
|
|
thumb_func_end ov15_021FBCAC
|
|
|
|
thumb_func_start ov15_021FBD28
|
|
ov15_021FBD28: ; 0x021FBD28
|
|
cmp r2, #0
|
|
ble _021FBD3E
|
|
cmp r0, r1
|
|
bne _021FBD34
|
|
mov r0, #1
|
|
bx lr
|
|
_021FBD34:
|
|
add r0, r0, r2
|
|
cmp r0, r1
|
|
ble _021FBD4E
|
|
add r0, r1, #0
|
|
bx lr
|
|
_021FBD3E:
|
|
cmp r0, #1
|
|
bne _021FBD46
|
|
add r0, r1, #0
|
|
bx lr
|
|
_021FBD46:
|
|
add r0, r0, r2
|
|
cmp r0, #0
|
|
bgt _021FBD4E
|
|
mov r0, #1
|
|
_021FBD4E:
|
|
bx lr
|
|
thumb_func_end ov15_021FBD28
|
|
|
|
thumb_func_start ov15_021FBD50
|
|
ov15_021FBD50: ; 0x021FBD50
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
mov r6, #0
|
|
mov r1, #3
|
|
add r4, r0, #0
|
|
bl ov15_021FAC2C
|
|
add r5, r0, #0
|
|
sub r0, r6, #1
|
|
cmp r5, r0
|
|
bne _021FBD68
|
|
b _021FBEF6
|
|
_021FBD68:
|
|
ldr r0, _021FBF88 ; =0x00000682
|
|
ldrh r0, [r4, r0]
|
|
bl ov15_022002EC
|
|
cmp r0, #1
|
|
beq _021FBD7A
|
|
cmp r0, #2
|
|
beq _021FBD88
|
|
b _021FBD9A
|
|
_021FBD7A:
|
|
cmp r5, #0
|
|
beq _021FBD82
|
|
cmp r5, #3
|
|
bne _021FBD9A
|
|
_021FBD82:
|
|
mov r5, #0
|
|
mvn r5, r5
|
|
b _021FBD9A
|
|
_021FBD88:
|
|
cmp r5, #0
|
|
beq _021FBD96
|
|
cmp r5, #1
|
|
beq _021FBD96
|
|
sub r0, r5, #3
|
|
cmp r0, #1
|
|
bhi _021FBD9A
|
|
_021FBD96:
|
|
mov r5, #0
|
|
mvn r5, r5
|
|
_021FBD9A:
|
|
cmp r5, #7
|
|
bls _021FBDA0
|
|
b _021FBF1E
|
|
_021FBDA0:
|
|
add r0, r5, r5
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021FBDAC: ; jump table
|
|
.short _021FBDBC - _021FBDAC - 2 ; case 0
|
|
.short _021FBDEE - _021FBDAC - 2 ; case 1
|
|
.short _021FBE20 - _021FBDAC - 2 ; case 2
|
|
.short _021FBE52 - _021FBDAC - 2 ; case 3
|
|
.short _021FBE86 - _021FBDAC - 2 ; case 4
|
|
.short _021FBEBA - _021FBDAC - 2 ; case 5
|
|
.short _021FBEEE - _021FBDAC - 2 ; case 6
|
|
.short _021FBEF2 - _021FBDAC - 2 ; case 7
|
|
_021FBDBC:
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #6
|
|
ldrsh r0, [r4, r1]
|
|
add r1, r1, #2
|
|
ldrh r1, [r4, r1]
|
|
mov r2, #0x64
|
|
bl ov15_021FBD28
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #6
|
|
strh r0, [r4, r1]
|
|
mov r0, #0x2d
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteAnimCtrlCurrentFrame
|
|
mov r0, #0x2d
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x1a
|
|
bl UnkImageStruct_SetSpriteAnimSeqNo
|
|
mov r6, #1
|
|
b _021FBF1E
|
|
_021FBDEE:
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #6
|
|
ldrsh r0, [r4, r1]
|
|
add r1, r1, #2
|
|
ldrh r1, [r4, r1]
|
|
mov r2, #0xa
|
|
bl ov15_021FBD28
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #6
|
|
strh r0, [r4, r1]
|
|
mov r0, #0xb5
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteAnimCtrlCurrentFrame
|
|
mov r0, #0xb5
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x1a
|
|
bl UnkImageStruct_SetSpriteAnimSeqNo
|
|
mov r6, #1
|
|
b _021FBF1E
|
|
_021FBE20:
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #6
|
|
ldrsh r0, [r4, r1]
|
|
add r1, r1, #2
|
|
ldrh r1, [r4, r1]
|
|
mov r2, #1
|
|
bl ov15_021FBD28
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #6
|
|
strh r0, [r4, r1]
|
|
mov r0, #0xb6
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteAnimCtrlCurrentFrame
|
|
mov r0, #0xb6
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x1a
|
|
bl UnkImageStruct_SetSpriteAnimSeqNo
|
|
mov r6, #1
|
|
b _021FBF1E
|
|
_021FBE52:
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #6
|
|
ldrsh r0, [r4, r1]
|
|
add r1, r1, #2
|
|
mov r2, #0x63
|
|
ldrh r1, [r4, r1]
|
|
mvn r2, r2
|
|
bl ov15_021FBD28
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #6
|
|
strh r0, [r4, r1]
|
|
mov r0, #0xb7
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteAnimCtrlCurrentFrame
|
|
mov r0, #0xb7
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x1c
|
|
bl UnkImageStruct_SetSpriteAnimSeqNo
|
|
mov r6, #2
|
|
b _021FBF1E
|
|
_021FBE86:
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #6
|
|
ldrsh r0, [r4, r1]
|
|
add r1, r1, #2
|
|
mov r2, #9
|
|
ldrh r1, [r4, r1]
|
|
mvn r2, r2
|
|
bl ov15_021FBD28
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #6
|
|
strh r0, [r4, r1]
|
|
mov r0, #0x2e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteAnimCtrlCurrentFrame
|
|
mov r0, #0x2e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x1c
|
|
bl UnkImageStruct_SetSpriteAnimSeqNo
|
|
mov r6, #2
|
|
b _021FBF1E
|
|
_021FBEBA:
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #6
|
|
ldrsh r0, [r4, r1]
|
|
add r1, r1, #2
|
|
mov r2, #0
|
|
ldrh r1, [r4, r1]
|
|
mvn r2, r2
|
|
bl ov15_021FBD28
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #6
|
|
strh r0, [r4, r1]
|
|
mov r0, #0xb9
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteAnimCtrlCurrentFrame
|
|
mov r0, #0xb9
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x1c
|
|
bl UnkImageStruct_SetSpriteAnimSeqNo
|
|
mov r6, #2
|
|
b _021FBF1E
|
|
_021FBEEE:
|
|
mov r6, #3
|
|
b _021FBF1E
|
|
_021FBEF2:
|
|
mov r6, #4
|
|
b _021FBF1E
|
|
_021FBEF6:
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #6
|
|
add r0, r4, r1
|
|
add r1, r1, #2
|
|
ldrh r1, [r4, r1]
|
|
bl sub_020881C0
|
|
add r6, r0, #0
|
|
bne _021FBF1E
|
|
ldr r0, _021FBF8C ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #1
|
|
tst r0, r1
|
|
beq _021FBF16
|
|
mov r6, #3
|
|
b _021FBF1E
|
|
_021FBF16:
|
|
mov r0, #2
|
|
tst r0, r1
|
|
beq _021FBF1E
|
|
mov r6, #4
|
|
_021FBF1E:
|
|
cmp r6, #4
|
|
bhi _021FBF82
|
|
add r0, r6, r6
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021FBF2E: ; jump table
|
|
.short _021FBF82 - _021FBF2E - 2 ; case 0
|
|
.short _021FBF38 - _021FBF2E - 2 ; case 1
|
|
.short _021FBF38 - _021FBF2E - 2 ; case 2
|
|
.short _021FBF4C - _021FBF2E - 2 ; case 3
|
|
.short _021FBF66 - _021FBF2E - 2 ; case 4
|
|
_021FBF38:
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl ov15_021FEDEC
|
|
ldr r0, _021FBF90 ; =0x00000637
|
|
bl PlaySE
|
|
add sp, #4
|
|
mov r0, #5
|
|
pop {r3, r4, r5, r6, pc}
|
|
_021FBF4C:
|
|
ldr r0, _021FBF94 ; =0x000005DC
|
|
bl PlaySE
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r1, #0x26
|
|
mov r2, #9
|
|
mov r3, #8
|
|
bl ov15_021FD7D0
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
_021FBF66:
|
|
mov r0, #SEQ_SE_GS_GEARCANCEL>>6
|
|
lsl r0, r0, #6
|
|
bl PlaySE
|
|
mov r0, #7
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r1, #0x13
|
|
mov r2, #9
|
|
mov r3, #8
|
|
bl ov15_021FD7D0
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
_021FBF82:
|
|
mov r0, #5
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021FBF88: .word 0x00000682
|
|
_021FBF8C: .word gSystem
|
|
_021FBF90: .word 0x00000637
|
|
_021FBF94: .word 0x000005DC
|
|
thumb_func_end ov15_021FBD50
|
|
|
|
thumb_func_start ov15_021FBF98
|
|
ov15_021FBF98: ; 0x021FBF98
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov15_021FEEA4
|
|
add r0, r4, #0
|
|
bl ov15_02200428
|
|
add r0, r4, #0
|
|
bl ov15_021FFF24
|
|
add r0, r4, #0
|
|
bl ov15_021FF834
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov15_021FD788
|
|
mov r0, #8
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FBF98
|
|
|
|
thumb_func_start ov15_021FBFC0
|
|
ov15_021FBFC0: ; 0x021FBFC0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov15_021FED3C
|
|
add r0, r4, #0
|
|
bl ov15_021FB518
|
|
add r0, r4, #0
|
|
bl ov15_02200428
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov15_021FF29C
|
|
mov r0, #0xa7
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteAnimCtrlCurrentFrame
|
|
mov r0, #0xa7
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x10
|
|
bl UnkImageStruct_SetSpriteAnimSeqNo
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
thumb_func_end ov15_021FBFC0
|
|
|
|
thumb_func_start ov15_021FBFF8
|
|
ov15_021FBFF8: ; 0x021FBFF8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021FC018 ; =0x00000616
|
|
ldrb r0, [r4, r0]
|
|
bl TextPrinterCheckActive
|
|
cmp r0, #0
|
|
bne _021FC012
|
|
add r0, r4, #0
|
|
bl ov15_021FF004
|
|
mov r0, #9
|
|
pop {r4, pc}
|
|
_021FC012:
|
|
mov r0, #8
|
|
pop {r4, pc}
|
|
nop
|
|
_021FC018: .word 0x00000616
|
|
thumb_func_end ov15_021FBFF8
|
|
|
|
thumb_func_start ov15_021FC01C
|
|
ov15_021FC01C: ; 0x021FC01C
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
ldr r0, _021FC134 ; =0x00000804
|
|
ldr r0, [r5, r0]
|
|
bl YesNoPrompt_HandleInput
|
|
cmp r0, #1
|
|
beq _021FC03A
|
|
cmp r0, #2
|
|
beq _021FC0CE
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
b _021FC12E
|
|
_021FC03A:
|
|
add r0, r5, #0
|
|
bl ov15_021FF058
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x36
|
|
bl NewString_ReadMsgData
|
|
add r4, r0, #0
|
|
mov r0, #0x1a
|
|
lsl r0, r0, #6
|
|
ldrsh r0, [r5, r0]
|
|
cmp r0, #1
|
|
bne _021FC06E
|
|
mov r2, #0xbd
|
|
lsl r2, r2, #2
|
|
ldr r0, [r5, r2]
|
|
sub r2, #0xc0
|
|
ldr r2, [r5, r2]
|
|
mov r1, #0
|
|
add r2, #0x66
|
|
ldrh r2, [r2]
|
|
bl BufferItemName
|
|
b _021FC082
|
|
_021FC06E:
|
|
mov r2, #0xbd
|
|
lsl r2, r2, #2
|
|
ldr r0, [r5, r2]
|
|
sub r2, #0xc0
|
|
ldr r2, [r5, r2]
|
|
mov r1, #0
|
|
add r2, #0x66
|
|
ldrh r2, [r2]
|
|
bl BufferItemNamePlural
|
|
_021FC082:
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
mov r2, #0x1a
|
|
mov r0, #0xbd
|
|
str r1, [sp, #4]
|
|
lsl r2, r2, #6
|
|
lsl r0, r0, #2
|
|
ldrsh r2, [r5, r2]
|
|
ldr r0, [r5, r0]
|
|
mov r3, #3
|
|
bl BufferIntegerAsString
|
|
mov r0, #0xbd
|
|
ldr r1, _021FC138 ; =0x000005E4
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5, r1]
|
|
add r2, r4, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r4, #0
|
|
bl String_Delete
|
|
add r0, r5, #0
|
|
add r0, #0x34
|
|
mov r1, #0xf
|
|
bl FillWindowPixelBuffer
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl ov15_021FEF48
|
|
ldr r1, _021FC13C ; =0x00000616
|
|
add sp, #8
|
|
strb r0, [r5, r1]
|
|
mov r0, #0xa
|
|
pop {r3, r4, r5, pc}
|
|
_021FC0CE:
|
|
add r0, r5, #0
|
|
bl ov15_021FF058
|
|
add r0, r5, #0
|
|
add r0, #0x34
|
|
mov r1, #1
|
|
bl ClearFrameAndWindow2
|
|
add r0, r5, #0
|
|
add r0, #0x34
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
add r0, r5, #4
|
|
bl ScheduleWindowCopyToVram
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r4, [r5, r0]
|
|
add r0, r5, #0
|
|
bl ov15_021FA074
|
|
add r1, r4, #4
|
|
add r4, #0x64
|
|
add r2, r0, #0
|
|
ldrb r4, [r4]
|
|
mov r3, #0xc
|
|
add r0, r5, #0
|
|
mul r3, r4
|
|
add r1, r1, r3
|
|
mov r3, #0
|
|
bl ov15_02200140
|
|
add r0, r5, #0
|
|
bl ov15_021FE868
|
|
add r0, r5, #0
|
|
bl ov15_021FED3C
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov15_021FD788
|
|
add r0, r5, #0
|
|
bl ov15_021FB518
|
|
add sp, #8
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021FC12E:
|
|
mov r0, #9
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021FC134: .word 0x00000804
|
|
_021FC138: .word 0x000005E4
|
|
_021FC13C: .word 0x00000616
|
|
thumb_func_end ov15_021FC01C
|
|
|
|
thumb_func_start ov15_021FC140
|
|
ov15_021FC140: ; 0x021FC140
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021FC160 ; =0x00000616
|
|
ldrb r0, [r4, r0]
|
|
bl TextPrinterCheckActive
|
|
cmp r0, #0
|
|
beq _021FC154
|
|
mov r0, #0xa
|
|
pop {r4, pc}
|
|
_021FC154:
|
|
add r4, #0x34
|
|
add r0, r4, #0
|
|
bl ScheduleWindowCopyToVram
|
|
mov r0, #0xb
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021FC160: .word 0x00000616
|
|
thumb_func_end ov15_021FC140
|
|
|
|
thumb_func_start ov15_021FC164
|
|
ov15_021FC164: ; 0x021FC164
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _021FC218 ; =0x00000616
|
|
ldrb r0, [r5, r0]
|
|
bl TextPrinterCheckActive
|
|
cmp r0, #0
|
|
bne _021FC214
|
|
ldr r0, _021FC21C ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #3
|
|
tst r0, r1
|
|
bne _021FC186
|
|
ldr r0, _021FC220 ; =gSystem + 0x40
|
|
ldrh r0, [r0, #0x24]
|
|
cmp r0, #0
|
|
beq _021FC214
|
|
_021FC186:
|
|
add r0, r5, #0
|
|
add r0, #0x34
|
|
mov r1, #1
|
|
bl ClearFrameAndWindow2
|
|
add r0, r5, #0
|
|
add r0, #0x34
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
add r0, r5, #4
|
|
bl ScheduleWindowCopyToVram
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r2, [r5, r0]
|
|
add r0, r2, #0
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
add r3, r1, #0
|
|
mul r3, r0
|
|
add r1, r2, r3
|
|
mov r0, #6
|
|
mov r3, #0x1a
|
|
str r0, [sp]
|
|
add r2, #0x66
|
|
lsl r3, r3, #6
|
|
ldr r0, [r1, #4]
|
|
ldrb r1, [r1, #0xd]
|
|
ldrh r2, [r2]
|
|
ldrh r3, [r5, r3]
|
|
bl Pocket_TakeItem
|
|
add r0, r5, #0
|
|
bl ov15_021F9F08
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r4, [r5, r0]
|
|
add r0, r5, #0
|
|
bl ov15_021FA074
|
|
add r1, r4, #4
|
|
add r4, #0x64
|
|
add r2, r0, #0
|
|
ldrb r4, [r4]
|
|
mov r3, #0xc
|
|
add r0, r5, #0
|
|
mul r3, r4
|
|
add r1, r1, r3
|
|
mov r3, #1
|
|
bl ov15_02200140
|
|
add r0, r5, #0
|
|
bl ov15_021FE868
|
|
add r0, r5, #0
|
|
bl ov15_021FED3C
|
|
add r0, r5, #0
|
|
bl ov15_021FB518
|
|
add r0, r5, #0
|
|
bl ov15_021FA170
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov15_021FD788
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021FC214:
|
|
mov r0, #0xb
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021FC218: .word 0x00000616
|
|
_021FC21C: .word gSystem
|
|
_021FC220: .word gSystem + 0x40
|
|
thumb_func_end ov15_021FC164
|
|
|
|
thumb_func_start ov15_021FC224
|
|
ov15_021FC224: ; 0x021FC224
|
|
push {r3, r4, r5, lr}
|
|
mov r1, #0x8e
|
|
add r5, r0, #0
|
|
lsl r1, r1, #2
|
|
ldr r0, [r5, r1]
|
|
sub r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
add r1, #0x66
|
|
ldrh r1, [r1]
|
|
bl Bag_TryRegisterItem
|
|
cmp r0, #0
|
|
bne _021FC28C
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x67
|
|
bl NewString_ReadMsgData
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
add r0, #0x34
|
|
mov r1, #0xf
|
|
bl FillWindowPixelBuffer
|
|
mov r0, #0xbd
|
|
ldr r1, _021FC2DC ; =0x000005E4
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5, r1]
|
|
add r2, r4, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r4, #0
|
|
bl String_Delete
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl ov15_021FEF48
|
|
add r0, r5, #0
|
|
bl ov15_02200294
|
|
add r0, r5, #0
|
|
bl ov15_021FFF24
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl ov15_021FD788
|
|
mov r0, #0x19
|
|
pop {r3, r4, r5, pc}
|
|
_021FC28C:
|
|
add r0, r5, #0
|
|
bl ov15_02200294
|
|
add r0, r5, #0
|
|
bl ov15_021FF560
|
|
mov r0, #0x61
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
bl ov15_021FF7AC
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r4, [r5, r0]
|
|
add r0, r5, #0
|
|
bl ov15_021FA074
|
|
add r1, r4, #4
|
|
add r4, #0x64
|
|
add r2, r0, #0
|
|
ldrb r4, [r4]
|
|
mov r3, #0xc
|
|
add r0, r5, #0
|
|
mul r3, r4
|
|
add r1, r1, r3
|
|
mov r3, #0
|
|
bl ov15_02200140
|
|
add r0, r5, #0
|
|
bl ov15_021FE868
|
|
add r0, r5, #0
|
|
bl ov15_021FED3C
|
|
add r0, r5, #0
|
|
bl ov15_021FB518
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021FC2DC: .word 0x000005E4
|
|
thumb_func_end ov15_021FC224
|
|
|
|
thumb_func_start ov15_021FC2E0
|
|
ov15_021FC2E0: ; 0x021FC2E0
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _021FC370 ; =0x00000616
|
|
ldrb r0, [r5, r0]
|
|
bl TextPrinterCheckActive
|
|
cmp r0, #0
|
|
bne _021FC36A
|
|
ldr r0, _021FC374 ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #3
|
|
tst r0, r1
|
|
bne _021FC302
|
|
ldr r0, _021FC378 ; =gSystem + 0x40
|
|
ldrh r0, [r0, #0x24]
|
|
cmp r0, #0
|
|
beq _021FC36A
|
|
_021FC302:
|
|
add r0, r5, #0
|
|
add r0, #0x34
|
|
mov r1, #1
|
|
bl ClearFrameAndWindow2
|
|
add r0, r5, #0
|
|
add r0, #0x34
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
add r0, r5, #0
|
|
bl ov15_02200294
|
|
add r0, r5, #0
|
|
bl ov15_021FF560
|
|
mov r0, #0x61
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
bl ov15_021FF7AC
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r4, [r5, r0]
|
|
add r0, r5, #0
|
|
bl ov15_021FA074
|
|
add r1, r4, #4
|
|
add r4, #0x64
|
|
add r2, r0, #0
|
|
ldrb r4, [r4]
|
|
mov r3, #0xc
|
|
add r0, r5, #0
|
|
mul r3, r4
|
|
add r1, r1, r3
|
|
mov r3, #0
|
|
bl ov15_02200140
|
|
add r0, r5, #0
|
|
bl ov15_021FE868
|
|
add r0, r5, #0
|
|
bl ov15_021FED3C
|
|
add r0, r5, #0
|
|
bl ov15_021FB518
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov15_021FD788
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021FC36A:
|
|
mov r0, #0x19
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021FC370: .word 0x00000616
|
|
_021FC374: .word gSystem
|
|
_021FC378: .word gSystem + 0x40
|
|
thumb_func_end ov15_021FC2E0
|
|
|
|
thumb_func_start ov15_021FC37C
|
|
ov15_021FC37C: ; 0x021FC37C
|
|
push {r3, r4, r5, lr}
|
|
mov r1, #0x8e
|
|
add r5, r0, #0
|
|
lsl r1, r1, #2
|
|
ldr r0, [r5, r1]
|
|
sub r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
add r1, #0x66
|
|
ldrh r1, [r1]
|
|
bl Bag_UnregisterItem
|
|
add r0, r5, #0
|
|
bl ov15_02200294
|
|
add r0, r5, #0
|
|
bl ov15_021FF560
|
|
mov r0, #0x61
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
bl ov15_021FF7AC
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r4, [r5, r0]
|
|
add r0, r5, #0
|
|
bl ov15_021FA074
|
|
add r1, r4, #4
|
|
add r4, #0x64
|
|
add r2, r0, #0
|
|
ldrb r4, [r4]
|
|
mov r3, #0xc
|
|
add r0, r5, #0
|
|
mul r3, r4
|
|
add r1, r1, r3
|
|
mov r3, #0
|
|
bl ov15_02200140
|
|
add r0, r5, #0
|
|
bl ov15_021FE868
|
|
add r0, r5, #0
|
|
bl ov15_021FED3C
|
|
add r0, r5, #0
|
|
bl ov15_021FB518
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov15_021FC37C
|
|
|
|
thumb_func_start ov15_021FC3E0
|
|
ov15_021FC3E0: ; 0x021FC3E0
|
|
push {r3, lr}
|
|
bl ov15_021FAC48
|
|
mov r0, #3
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FC3E0
|
|
|
|
thumb_func_start ov15_021FC3EC
|
|
ov15_021FC3EC: ; 0x021FC3EC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov15_021FED3C
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov15_021FD788
|
|
add r0, r4, #0
|
|
bl ov15_021FFF24
|
|
mov r0, #1
|
|
mov r1, #6
|
|
bl sub_020880CC
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #2
|
|
add r0, #0x68
|
|
strh r1, [r0]
|
|
mov r0, #0x25
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FC3EC
|
|
|
|
thumb_func_start ov15_021FC41C
|
|
ov15_021FC41C: ; 0x021FC41C
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
ldr r1, _021FC70C ; =gSystem
|
|
mov r2, #0x40
|
|
ldr r3, [r1, #0x4c]
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
tst r2, r3
|
|
beq _021FC43E
|
|
ldr r0, _021FC710 ; =0x00000644
|
|
add r4, r4, #1
|
|
ldr r1, [r5, r0]
|
|
lsl r2, r1, #2
|
|
ldr r1, _021FC714 ; =ov15_02200640
|
|
ldrb r1, [r1, r2]
|
|
str r1, [r5, r0]
|
|
b _021FC56E
|
|
_021FC43E:
|
|
mov r2, #0x80
|
|
tst r2, r3
|
|
beq _021FC454
|
|
ldr r0, _021FC710 ; =0x00000644
|
|
add r4, r4, #1
|
|
ldr r1, [r5, r0]
|
|
lsl r2, r1, #2
|
|
ldr r1, _021FC718 ; =ov15_02200641
|
|
ldrb r1, [r1, r2]
|
|
str r1, [r5, r0]
|
|
b _021FC56E
|
|
_021FC454:
|
|
mov r2, #0x20
|
|
add r6, r3, #0
|
|
tst r6, r2
|
|
beq _021FC4AC
|
|
ldr r1, _021FC710 ; =0x00000644
|
|
ldr r3, _021FC71C ; =ov15_02200642
|
|
ldr r1, [r5, r1]
|
|
lsl r6, r1, #2
|
|
ldrb r3, [r3, r6]
|
|
cmp r3, #0xe
|
|
bne _021FC484
|
|
mov r1, #2
|
|
str r1, [sp]
|
|
mov r1, #0xe
|
|
add r2, sp, #0xc
|
|
add r3, r4, #0
|
|
str r4, [sp, #4]
|
|
bl ov15_021FA73C
|
|
cmp r0, #1
|
|
bne _021FC4D6
|
|
add sp, #0x10
|
|
mov r0, #0xe
|
|
pop {r4, r5, r6, pc}
|
|
_021FC484:
|
|
cmp r1, #0x10
|
|
beq _021FC56E
|
|
cmp r1, #0
|
|
blt _021FC4A4
|
|
cmp r1, #8
|
|
bge _021FC4A4
|
|
sub r2, #0x21
|
|
bl ov15_021FA6C0
|
|
ldr r1, _021FC710 ; =0x00000644
|
|
ldr r2, [r5, r1]
|
|
cmp r2, r0
|
|
beq _021FC56E
|
|
str r0, [r5, r1]
|
|
add r4, r4, #1
|
|
b _021FC56E
|
|
_021FC4A4:
|
|
ldr r0, _021FC710 ; =0x00000644
|
|
add r4, r4, #1
|
|
str r3, [r5, r0]
|
|
b _021FC56E
|
|
_021FC4AC:
|
|
mov r2, #0x10
|
|
tst r3, r2
|
|
beq _021FC506
|
|
ldr r1, _021FC710 ; =0x00000644
|
|
ldr r2, _021FC720 ; =ov15_02200643
|
|
ldr r1, [r5, r1]
|
|
lsl r3, r1, #2
|
|
ldrb r2, [r2, r3]
|
|
cmp r2, #0xf
|
|
bne _021FC4DE
|
|
mov r1, #2
|
|
str r1, [sp]
|
|
add r2, sp, #8
|
|
mov r1, #0xf
|
|
add r2, #3
|
|
add r3, r4, #0
|
|
str r4, [sp, #4]
|
|
bl ov15_021FA73C
|
|
cmp r0, #1
|
|
beq _021FC4D8
|
|
_021FC4D6:
|
|
b _021FC77A
|
|
_021FC4D8:
|
|
add sp, #0x10
|
|
mov r0, #0xe
|
|
pop {r4, r5, r6, pc}
|
|
_021FC4DE:
|
|
cmp r1, #0x10
|
|
beq _021FC56E
|
|
cmp r1, #0
|
|
blt _021FC4FE
|
|
cmp r1, #8
|
|
bge _021FC4FE
|
|
mov r2, #1
|
|
bl ov15_021FA6C0
|
|
ldr r1, _021FC710 ; =0x00000644
|
|
ldr r2, [r5, r1]
|
|
cmp r2, r0
|
|
beq _021FC56E
|
|
str r0, [r5, r1]
|
|
add r4, r4, #1
|
|
b _021FC56E
|
|
_021FC4FE:
|
|
ldr r0, _021FC710 ; =0x00000644
|
|
add r4, r4, #1
|
|
str r2, [r5, r0]
|
|
b _021FC56E
|
|
_021FC506:
|
|
ldr r3, [r1, #0x48]
|
|
lsl r1, r2, #5
|
|
tst r1, r3
|
|
beq _021FC53A
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
sub r2, #0x11
|
|
add r1, #0x64
|
|
ldrb r1, [r1]
|
|
bl ov15_021FA6C0
|
|
add r1, r0, #0
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r2, sp, #8
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
add r2, #2
|
|
mov r3, #1
|
|
bl ov15_021FA73C
|
|
add sp, #0x10
|
|
mov r0, #0xe
|
|
pop {r4, r5, r6, pc}
|
|
_021FC53A:
|
|
add r2, #0xf0
|
|
add r1, r3, #0
|
|
tst r1, r2
|
|
beq _021FC56E
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
mov r2, #1
|
|
add r1, #0x64
|
|
ldrb r1, [r1]
|
|
bl ov15_021FA6C0
|
|
add r1, r0, #0
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r2, sp, #8
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
add r2, #1
|
|
mov r3, #1
|
|
bl ov15_021FA73C
|
|
add sp, #0x10
|
|
mov r0, #0xe
|
|
pop {r4, r5, r6, pc}
|
|
_021FC56E:
|
|
ldr r1, _021FC710 ; =0x00000644
|
|
ldr r0, [r5, r1]
|
|
cmp r0, #0x11
|
|
bne _021FC582
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r0, #0x64
|
|
ldrb r0, [r0]
|
|
str r0, [r5, r1]
|
|
_021FC582:
|
|
cmp r4, #0
|
|
beq _021FC5A6
|
|
ldr r0, _021FC724 ; =0x000005DC
|
|
bl PlaySE
|
|
ldr r1, _021FC710 ; =0x00000644
|
|
add r0, r5, #0
|
|
ldr r1, [r5, r1]
|
|
bl ov15_021FFECC
|
|
ldr r1, _021FC710 ; =0x00000644
|
|
add r0, r5, #0
|
|
ldr r1, [r5, r1]
|
|
bl ov15_021FA0E4
|
|
add r0, r5, #0
|
|
bl ov15_021FA170
|
|
_021FC5A6:
|
|
mov r1, #0
|
|
add r0, sp, #8
|
|
strb r1, [r0]
|
|
add r0, r5, #0
|
|
bl ov15_021FAC2C
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r4, r0
|
|
beq _021FC630
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov15_021FA104
|
|
cmp r0, #0
|
|
beq _021FC608
|
|
cmp r4, #8
|
|
bhs _021FC5EA
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov15_021FA68C
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _021FC608
|
|
ldr r1, _021FC710 ; =0x00000644
|
|
add r0, r5, #0
|
|
str r4, [r5, r1]
|
|
ldr r1, [r5, r1]
|
|
bl ov15_021FFECC
|
|
b _021FC608
|
|
_021FC5EA:
|
|
ldr r1, _021FC710 ; =0x00000644
|
|
add r0, r5, #0
|
|
str r4, [r5, r1]
|
|
ldr r1, [r5, r1]
|
|
bl ov15_021FFECC
|
|
ldr r0, _021FC710 ; =0x00000644
|
|
ldr r1, [r5, r0]
|
|
cmp r1, #8
|
|
blt _021FC608
|
|
cmp r1, #0xd
|
|
bgt _021FC608
|
|
add r0, r5, #0
|
|
bl ov15_021FA0E4
|
|
_021FC608:
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, sp, #8
|
|
mov r3, #0
|
|
bl ov15_021FA73C
|
|
cmp r0, #1
|
|
beq _021FC6B4
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
mov r2, #4
|
|
add r1, #0x68
|
|
strh r2, [r1]
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
_021FC630:
|
|
ldr r0, _021FC70C ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #1
|
|
tst r0, r1
|
|
beq _021FC678
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
mov r3, #0
|
|
ldr r1, _021FC710 ; =0x00000644
|
|
str r3, [sp, #4]
|
|
ldr r1, [r5, r1]
|
|
add r0, r5, #0
|
|
add r2, sp, #8
|
|
bl ov15_021FA73C
|
|
add r4, r0, #0
|
|
ldr r0, _021FC710 ; =0x00000644
|
|
ldr r1, [r5, r0]
|
|
cmp r1, #8
|
|
blt _021FC662
|
|
cmp r1, #0xd
|
|
bgt _021FC662
|
|
add r0, r5, #0
|
|
bl ov15_021FA0E4
|
|
_021FC662:
|
|
cmp r4, #1
|
|
beq _021FC6B4
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #4
|
|
add r0, #0x68
|
|
strh r1, [r0]
|
|
add sp, #0x10
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021FC678:
|
|
mov r0, #2
|
|
tst r1, r0
|
|
beq _021FC6B4
|
|
str r0, [sp]
|
|
mov r3, #0
|
|
add r0, r5, #0
|
|
mov r1, #0x10
|
|
add r2, sp, #8
|
|
str r3, [sp, #4]
|
|
bl ov15_021FA73C
|
|
add r4, r0, #0
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #4
|
|
add r0, #0x68
|
|
strh r1, [r0]
|
|
ldr r0, _021FC710 ; =0x00000644
|
|
ldr r1, [r5, r0]
|
|
cmp r1, #8
|
|
blt _021FC6AE
|
|
cmp r1, #0xd
|
|
bgt _021FC6AE
|
|
add r0, r5, #0
|
|
bl ov15_021FA0E4
|
|
_021FC6AE:
|
|
add sp, #0x10
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021FC6B4:
|
|
add r0, sp, #8
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _021FC778
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #3
|
|
add r0, #0x66
|
|
ldrh r0, [r0]
|
|
mov r2, #6
|
|
bl GetItemAttr
|
|
cmp r0, #0
|
|
bne _021FC6E4
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r0, #0x66
|
|
ldrh r0, [r0]
|
|
bl ItemIdIsNotJohtoBall
|
|
cmp r0, #0
|
|
bne _021FC75C
|
|
_021FC6E4:
|
|
mov r2, #0xbd
|
|
lsl r2, r2, #2
|
|
ldr r0, [r5, r2]
|
|
sub r2, #0xc0
|
|
ldr r2, [r5, r2]
|
|
mov r1, #0
|
|
add r2, #0x66
|
|
ldrh r2, [r2]
|
|
bl BufferItemName
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x2f
|
|
bl NewString_ReadMsgData
|
|
add r4, r0, #0
|
|
mov r0, #0xbd
|
|
ldr r1, _021FC728 ; =0x000005E4
|
|
b _021FC72C
|
|
.balign 4, 0
|
|
_021FC70C: .word gSystem
|
|
_021FC710: .word 0x00000644
|
|
_021FC714: .word ov15_02200640
|
|
_021FC718: .word ov15_02200641
|
|
_021FC71C: .word ov15_02200642
|
|
_021FC720: .word ov15_02200643
|
|
_021FC724: .word 0x000005DC
|
|
_021FC728: .word 0x000005E4
|
|
_021FC72C:
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5, r1]
|
|
add r2, r4, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r4, #0
|
|
bl String_Delete
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl ov15_021FEF48
|
|
ldr r1, _021FC780 ; =0x00000616
|
|
add sp, #0x10
|
|
strb r0, [r5, r1]
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #5
|
|
add r0, #0x68
|
|
strh r1, [r0]
|
|
mov r0, #0xf
|
|
pop {r4, r5, r6, pc}
|
|
_021FC75C:
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #4
|
|
add r0, #0x68
|
|
strh r1, [r0]
|
|
add r0, r5, #0
|
|
mov r1, #0x14
|
|
mov r2, #0x29
|
|
mov r3, #0x24
|
|
bl ov15_021FD810
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
_021FC778:
|
|
mov r0, #0xe
|
|
_021FC77A:
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021FC780: .word 0x00000616
|
|
thumb_func_end ov15_021FC41C
|
|
|
|
thumb_func_start ov15_021FC784
|
|
ov15_021FC784: ; 0x021FC784
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021FC7E0 ; =0x00000616
|
|
ldrb r0, [r4, r0]
|
|
bl TextPrinterCheckActive
|
|
cmp r0, #0
|
|
bne _021FC7DC
|
|
ldr r0, _021FC7E4 ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #3
|
|
tst r0, r1
|
|
bne _021FC7A6
|
|
ldr r0, _021FC7E8 ; =gSystem + 0x40
|
|
ldrh r0, [r0, #0x24]
|
|
cmp r0, #0
|
|
beq _021FC7DC
|
|
_021FC7A6:
|
|
add r0, r4, #0
|
|
add r0, #0x34
|
|
mov r1, #1
|
|
bl ClearFrameAndWindow2
|
|
add r0, r4, #0
|
|
add r0, #0x34
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r3, [r4, r0]
|
|
add r0, r4, #0
|
|
add r1, r3, #0
|
|
add r1, #0x64
|
|
ldrb r2, [r1]
|
|
mov r1, #0xc
|
|
mul r1, r2
|
|
add r1, r3, r1
|
|
mov r2, #0xa
|
|
ldrsh r1, [r1, r2]
|
|
sub r2, #0xb
|
|
mov r3, #0
|
|
bl ov15_021FF364
|
|
mov r0, #0xe
|
|
pop {r4, pc}
|
|
_021FC7DC:
|
|
mov r0, #0xf
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021FC7E0: .word 0x00000616
|
|
_021FC7E4: .word gSystem
|
|
_021FC7E8: .word gSystem + 0x40
|
|
thumb_func_end ov15_021FC784
|
|
|
|
thumb_func_start ov15_021FC7EC
|
|
ov15_021FC7EC: ; 0x021FC7EC
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
ldr r1, _021FCAB0 ; =gSystem
|
|
mov r2, #0x40
|
|
ldr r3, [r1, #0x4c]
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
tst r2, r3
|
|
beq _021FC80E
|
|
ldr r0, _021FCAB4 ; =0x00000644
|
|
add r4, r4, #1
|
|
ldr r1, [r5, r0]
|
|
lsl r2, r1, #2
|
|
ldr r1, _021FCAB8 ; =ov15_02200640
|
|
ldrb r1, [r1, r2]
|
|
str r1, [r5, r0]
|
|
b _021FC9CA
|
|
_021FC80E:
|
|
mov r2, #0x80
|
|
tst r2, r3
|
|
beq _021FC824
|
|
ldr r0, _021FCAB4 ; =0x00000644
|
|
add r4, r4, #1
|
|
ldr r1, [r5, r0]
|
|
lsl r2, r1, #2
|
|
ldr r1, _021FCABC ; =ov15_02200641
|
|
ldrb r1, [r1, r2]
|
|
str r1, [r5, r0]
|
|
b _021FC9CA
|
|
_021FC824:
|
|
mov r2, #0x20
|
|
add r6, r3, #0
|
|
tst r6, r2
|
|
beq _021FC87C
|
|
ldr r1, _021FCAB4 ; =0x00000644
|
|
ldr r3, _021FCAC0 ; =ov15_02200642
|
|
ldr r1, [r5, r1]
|
|
lsl r6, r1, #2
|
|
ldrb r3, [r3, r6]
|
|
cmp r3, #0xe
|
|
bne _021FC854
|
|
mov r1, #4
|
|
str r1, [sp]
|
|
mov r1, #0xe
|
|
add r2, sp, #0xc
|
|
mov r3, #1
|
|
str r4, [sp, #4]
|
|
bl ov15_021FA73C
|
|
cmp r0, #1
|
|
bne _021FC8A6
|
|
add sp, #0x10
|
|
mov r0, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
_021FC854:
|
|
cmp r1, #0x10
|
|
beq _021FC8B2
|
|
cmp r1, #0
|
|
blt _021FC874
|
|
cmp r1, #8
|
|
bge _021FC874
|
|
sub r2, #0x21
|
|
bl ov15_021FA6C0
|
|
ldr r1, _021FCAB4 ; =0x00000644
|
|
ldr r2, [r5, r1]
|
|
cmp r2, r0
|
|
beq _021FC8B2
|
|
str r0, [r5, r1]
|
|
add r4, r4, #1
|
|
b _021FC9CA
|
|
_021FC874:
|
|
ldr r0, _021FCAB4 ; =0x00000644
|
|
add r4, r4, #1
|
|
str r3, [r5, r0]
|
|
b _021FC9CA
|
|
_021FC87C:
|
|
mov r2, #0x10
|
|
tst r3, r2
|
|
beq _021FC8D8
|
|
ldr r1, _021FCAB4 ; =0x00000644
|
|
ldr r2, _021FCAC4 ; =ov15_02200643
|
|
ldr r1, [r5, r1]
|
|
lsl r3, r1, #2
|
|
ldrb r2, [r2, r3]
|
|
cmp r2, #0xf
|
|
bne _021FC8AE
|
|
mov r1, #4
|
|
str r1, [sp]
|
|
add r2, sp, #8
|
|
mov r1, #0xf
|
|
add r2, #3
|
|
mov r3, #1
|
|
str r4, [sp, #4]
|
|
bl ov15_021FA73C
|
|
cmp r0, #1
|
|
beq _021FC8A8
|
|
_021FC8A6:
|
|
b _021FCB5A
|
|
_021FC8A8:
|
|
add sp, #0x10
|
|
mov r0, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
_021FC8AE:
|
|
cmp r1, #0x10
|
|
bne _021FC8B4
|
|
_021FC8B2:
|
|
b _021FC9CA
|
|
_021FC8B4:
|
|
cmp r1, #0
|
|
blt _021FC8D0
|
|
cmp r1, #8
|
|
bge _021FC8D0
|
|
mov r2, #1
|
|
bl ov15_021FA6C0
|
|
ldr r1, _021FCAB4 ; =0x00000644
|
|
ldr r2, [r5, r1]
|
|
cmp r2, r0
|
|
beq _021FC9CA
|
|
str r0, [r5, r1]
|
|
add r4, r4, #1
|
|
b _021FC9CA
|
|
_021FC8D0:
|
|
ldr r0, _021FCAB4 ; =0x00000644
|
|
add r4, r4, #1
|
|
str r2, [r5, r0]
|
|
b _021FC9CA
|
|
_021FC8D8:
|
|
ldr r3, [r1, #0x48]
|
|
lsl r1, r2, #5
|
|
tst r1, r3
|
|
beq _021FC952
|
|
ldr r1, _021FCAB4 ; =0x00000644
|
|
ldr r1, [r5, r1]
|
|
cmp r1, #0
|
|
blt _021FC922
|
|
cmp r1, #8
|
|
bge _021FC922
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
sub r2, #0x11
|
|
add r1, #0x64
|
|
ldrb r1, [r1]
|
|
bl ov15_021FA6C0
|
|
ldr r1, _021FCAB4 ; =0x00000644
|
|
str r0, [r5, r1]
|
|
ldr r1, [r5, r1]
|
|
add r0, r5, #0
|
|
bl ov15_021FFECC
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
str r0, [sp, #4]
|
|
ldr r1, _021FCAB4 ; =0x00000644
|
|
add r2, sp, #8
|
|
ldr r1, [r5, r1]
|
|
add r0, r5, #0
|
|
add r2, #2
|
|
mov r3, #1
|
|
bl ov15_021FA73C
|
|
b _021FC94C
|
|
_021FC922:
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0
|
|
add r1, #0x64
|
|
ldrb r1, [r1]
|
|
add r0, r5, #0
|
|
mvn r2, r2
|
|
bl ov15_021FA6C0
|
|
add r1, r0, #0
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
add r2, sp, #8
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
add r2, #2
|
|
mov r3, #1
|
|
bl ov15_021FA73C
|
|
_021FC94C:
|
|
add sp, #0x10
|
|
mov r0, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
_021FC952:
|
|
add r2, #0xf0
|
|
add r1, r3, #0
|
|
tst r1, r2
|
|
beq _021FC9CA
|
|
ldr r1, _021FCAB4 ; =0x00000644
|
|
ldr r1, [r5, r1]
|
|
cmp r1, #0
|
|
blt _021FC99C
|
|
cmp r1, #8
|
|
bge _021FC99C
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
mov r2, #1
|
|
add r1, #0x64
|
|
ldrb r1, [r1]
|
|
bl ov15_021FA6C0
|
|
ldr r1, _021FCAB4 ; =0x00000644
|
|
str r0, [r5, r1]
|
|
ldr r1, [r5, r1]
|
|
add r0, r5, #0
|
|
bl ov15_021FFECC
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
str r0, [sp, #4]
|
|
ldr r1, _021FCAB4 ; =0x00000644
|
|
add r2, sp, #8
|
|
ldr r1, [r5, r1]
|
|
add r0, r5, #0
|
|
add r2, #1
|
|
mov r3, #1
|
|
bl ov15_021FA73C
|
|
b _021FC9C4
|
|
_021FC99C:
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
add r0, r5, #0
|
|
add r1, #0x64
|
|
ldrb r1, [r1]
|
|
mov r2, #1
|
|
bl ov15_021FA6C0
|
|
add r1, r0, #0
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
add r2, sp, #8
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
add r2, #1
|
|
mov r3, #1
|
|
bl ov15_021FA73C
|
|
_021FC9C4:
|
|
add sp, #0x10
|
|
mov r0, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
_021FC9CA:
|
|
ldr r1, _021FCAB4 ; =0x00000644
|
|
ldr r0, [r5, r1]
|
|
cmp r0, #0x11
|
|
bne _021FC9DE
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r0, #0x64
|
|
ldrb r0, [r0]
|
|
str r0, [r5, r1]
|
|
_021FC9DE:
|
|
cmp r4, #0
|
|
beq _021FCA02
|
|
ldr r0, _021FCAC8 ; =0x000005DC
|
|
bl PlaySE
|
|
ldr r1, _021FCAB4 ; =0x00000644
|
|
add r0, r5, #0
|
|
ldr r1, [r5, r1]
|
|
bl ov15_021FFECC
|
|
ldr r1, _021FCAB4 ; =0x00000644
|
|
add r0, r5, #0
|
|
ldr r1, [r5, r1]
|
|
bl ov15_021FA0E4
|
|
add r0, r5, #0
|
|
bl ov15_021FA170
|
|
_021FCA02:
|
|
mov r1, #0
|
|
add r0, sp, #8
|
|
strb r1, [r0]
|
|
add r0, r5, #0
|
|
bl ov15_021FAC2C
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r4, r0
|
|
beq _021FCA8A
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov15_021FA104
|
|
cmp r0, #0
|
|
beq _021FCA64
|
|
cmp r4, #8
|
|
bhs _021FCA46
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov15_021FA68C
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _021FCA64
|
|
ldr r1, _021FCAB4 ; =0x00000644
|
|
add r0, r5, #0
|
|
str r4, [r5, r1]
|
|
ldr r1, [r5, r1]
|
|
bl ov15_021FFECC
|
|
b _021FCA64
|
|
_021FCA46:
|
|
ldr r1, _021FCAB4 ; =0x00000644
|
|
add r0, r5, #0
|
|
str r4, [r5, r1]
|
|
ldr r1, [r5, r1]
|
|
bl ov15_021FFECC
|
|
ldr r0, _021FCAB4 ; =0x00000644
|
|
ldr r1, [r5, r0]
|
|
cmp r1, #8
|
|
blt _021FCA64
|
|
cmp r1, #0xd
|
|
bgt _021FCA64
|
|
add r0, r5, #0
|
|
bl ov15_021FA0E4
|
|
_021FCA64:
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
mov r3, #1
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, sp, #8
|
|
str r3, [sp, #4]
|
|
bl ov15_021FA73C
|
|
cmp r0, #1
|
|
beq _021FCB40
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
mov r2, #5
|
|
add r1, #0x68
|
|
strh r2, [r1]
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
_021FCA8A:
|
|
ldr r0, _021FCAB0 ; =gSystem
|
|
mov r3, #1
|
|
ldr r1, [r0, #0x48]
|
|
add r0, r1, #0
|
|
tst r0, r3
|
|
beq _021FCAF2
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
ldr r1, _021FCAB4 ; =0x00000644
|
|
add r0, r5, #0
|
|
ldr r1, [r5, r1]
|
|
add r2, sp, #8
|
|
bl ov15_021FA73C
|
|
add r4, r0, #0
|
|
ldr r0, _021FCAB4 ; =0x00000644
|
|
b _021FCACC
|
|
.balign 4, 0
|
|
_021FCAB0: .word gSystem
|
|
_021FCAB4: .word 0x00000644
|
|
_021FCAB8: .word ov15_02200640
|
|
_021FCABC: .word ov15_02200641
|
|
_021FCAC0: .word ov15_02200642
|
|
_021FCAC4: .word ov15_02200643
|
|
_021FCAC8: .word 0x000005DC
|
|
_021FCACC:
|
|
ldr r1, [r5, r0]
|
|
cmp r1, #8
|
|
blt _021FCADC
|
|
cmp r1, #0xd
|
|
bgt _021FCADC
|
|
add r0, r5, #0
|
|
bl ov15_021FA0E4
|
|
_021FCADC:
|
|
cmp r4, #1
|
|
beq _021FCB40
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #5
|
|
add r0, #0x68
|
|
strh r1, [r0]
|
|
add sp, #0x10
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021FCAF2:
|
|
mov r0, #2
|
|
tst r0, r1
|
|
beq _021FCB40
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r2, [r5, r0]
|
|
mov r1, #0
|
|
add r2, #0x66
|
|
strh r1, [r2]
|
|
ldr r0, [r5, r0]
|
|
mov r2, #5
|
|
add r0, #0x68
|
|
strh r2, [r0]
|
|
add r0, r5, #0
|
|
bl ov15_021FD774
|
|
mov r0, #SEQ_SE_GS_GEARCANCEL>>6
|
|
lsl r0, r0, #6
|
|
bl PlaySE
|
|
ldr r0, _021FCB60 ; =0x00000644
|
|
ldr r1, [r5, r0]
|
|
cmp r1, #8
|
|
blt _021FCB2C
|
|
cmp r1, #0xd
|
|
bgt _021FCB2C
|
|
add r0, r5, #0
|
|
bl ov15_021FA0E4
|
|
_021FCB2C:
|
|
mov r0, #0x24
|
|
str r0, [sp]
|
|
add r0, r5, #0
|
|
mov r1, #0x13
|
|
mov r2, #9
|
|
mov r3, #8
|
|
bl ov15_021FD7D0
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
_021FCB40:
|
|
add r0, sp, #8
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _021FCB58
|
|
add r0, r5, #0
|
|
mov r1, #0x14
|
|
mov r2, #0x29
|
|
mov r3, #0x22
|
|
bl ov15_021FD810
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
_021FCB58:
|
|
mov r0, #0x10
|
|
_021FCB5A:
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021FCB60: .word 0x00000644
|
|
thumb_func_end ov15_021FC7EC
|
|
|
|
thumb_func_start ov15_021FCB64
|
|
ov15_021FCB64: ; 0x021FCB64
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #8
|
|
mov r1, #0x8d
|
|
add r4, r0, #0
|
|
lsl r1, r1, #2
|
|
ldr r1, [r4, r1]
|
|
add r3, r1, #4
|
|
add r1, #0x64
|
|
ldrb r2, [r1]
|
|
mov r1, #0xc
|
|
mul r1, r2
|
|
add r5, r3, r1
|
|
mov r2, #0
|
|
mov r1, #4
|
|
add r3, r2, #0
|
|
bl ov15_021FD574
|
|
mov r0, #0x1a
|
|
mov r1, #1
|
|
lsl r0, r0, #6
|
|
strh r1, [r4, r0]
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
add r0, #0x66
|
|
ldrh r0, [r0]
|
|
mov r2, #6
|
|
bl GetItemAttr
|
|
asr r1, r0, #1
|
|
ldr r0, _021FCD70 ; =0x00000684
|
|
mov r2, #0
|
|
str r1, [r4, r0]
|
|
ldr r0, [r4]
|
|
mov r1, #5
|
|
bl ov15_021FD43C
|
|
ldr r0, [r4]
|
|
mov r1, #5
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
mov r0, #0xa5
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
mov r0, #0xa6
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov15_02200458
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov15_021FD788
|
|
ldr r2, _021FCD74 ; =0x00000644
|
|
mov r1, #6
|
|
ldr r2, [r4, r2]
|
|
ldrsh r1, [r5, r1]
|
|
add r0, r4, #0
|
|
sub r2, #8
|
|
bl ov15_021FF4EC
|
|
ldr r1, _021FCD74 ; =0x00000644
|
|
add r0, r4, #0
|
|
ldr r1, [r4, r1]
|
|
sub r1, #8
|
|
bl ov15_022002B4
|
|
mov r2, #0x8d
|
|
lsl r2, r2, #2
|
|
ldr r2, [r4, r2]
|
|
add r0, r4, #0
|
|
add r2, #0x66
|
|
ldrh r2, [r2]
|
|
add r1, r4, #4
|
|
bl ov15_021FECA0
|
|
add r0, r4, #0
|
|
bl ov15_021FFF24
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #3
|
|
add r0, #0x66
|
|
ldrh r0, [r0]
|
|
mov r2, #6
|
|
bl GetItemAttr
|
|
cmp r0, #0
|
|
bne _021FCC32
|
|
ldr r0, _021FCD70 ; =0x00000684
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
bne _021FCC7C
|
|
_021FCC32:
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x4c
|
|
bl NewString_ReadMsgData
|
|
mov r2, #0xbd
|
|
lsl r2, r2, #2
|
|
add r5, r0, #0
|
|
ldr r0, [r4, r2]
|
|
sub r2, #0xc0
|
|
ldr r2, [r4, r2]
|
|
mov r1, #0
|
|
add r2, #0x66
|
|
ldrh r2, [r2]
|
|
bl BufferItemName
|
|
mov r0, #0xbd
|
|
ldr r1, _021FCD78 ; =0x000005E4
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r4, r1]
|
|
add r2, r5, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r5, #0
|
|
bl String_Delete
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov15_021FEF48
|
|
ldr r1, _021FCD7C ; =0x00000616
|
|
add sp, #8
|
|
strb r0, [r4, r1]
|
|
mov r0, #0x18
|
|
pop {r3, r4, r5, pc}
|
|
_021FCC7C:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov15_021FF0FC
|
|
add r0, r4, #0
|
|
bl ov15_021FF068
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
bl ov15_021FEDEC
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r2, [r4, r0]
|
|
mov r3, #6
|
|
add r0, r2, #0
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
mul r0, r1
|
|
add r1, r2, r0
|
|
add r2, #0x66
|
|
ldr r0, [r1, #4]
|
|
ldrb r1, [r1, #0xd]
|
|
ldrh r2, [r2]
|
|
bl Pocket_GetQuantity
|
|
cmp r0, #1
|
|
bne _021FCD0C
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x4e
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0
|
|
add r5, r0, #0
|
|
mov r2, #0x1a
|
|
str r1, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
lsl r2, r2, #6
|
|
mov r0, #0xbd
|
|
ldrsh r3, [r4, r2]
|
|
add r2, r2, #4
|
|
lsl r0, r0, #2
|
|
ldr r2, [r4, r2]
|
|
ldr r0, [r4, r0]
|
|
mul r2, r3
|
|
mov r3, #6
|
|
bl BufferIntegerAsString
|
|
mov r0, #0xbd
|
|
ldr r1, _021FCD78 ; =0x000005E4
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r4, r1]
|
|
add r2, r5, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r5, #0
|
|
bl String_Delete
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov15_021FEF48
|
|
ldr r1, _021FCD7C ; =0x00000616
|
|
add sp, #8
|
|
strb r0, [r4, r1]
|
|
mov r0, #0x15
|
|
pop {r3, r4, r5, pc}
|
|
_021FCD0C:
|
|
mov r1, #6
|
|
ldrsh r3, [r5, r1]
|
|
ldr r1, _021FCD74 ; =0x00000644
|
|
ldr r0, [r5]
|
|
ldr r2, [r4, r1]
|
|
add r1, #0x3e
|
|
add r2, r3, r2
|
|
sub r2, #8
|
|
lsl r2, r2, #2
|
|
add r0, r0, r2
|
|
ldrh r0, [r0, #2]
|
|
strh r0, [r4, r1]
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x4d
|
|
bl NewString_ReadMsgData
|
|
mov r2, #0xbd
|
|
lsl r2, r2, #2
|
|
add r5, r0, #0
|
|
ldr r0, [r4, r2]
|
|
sub r2, #0xc0
|
|
ldr r2, [r4, r2]
|
|
mov r1, #0
|
|
add r2, #0x66
|
|
ldrh r2, [r2]
|
|
bl BufferItemName
|
|
mov r0, #0xbd
|
|
ldr r1, _021FCD78 ; =0x000005E4
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r4, r1]
|
|
add r2, r5, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r5, #0
|
|
bl String_Delete
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov15_021FEF48
|
|
ldr r1, _021FCD7C ; =0x00000616
|
|
strb r0, [r4, r1]
|
|
mov r0, #0x11
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021FCD70: .word 0x00000684
|
|
_021FCD74: .word 0x00000644
|
|
_021FCD78: .word 0x000005E4
|
|
_021FCD7C: .word 0x00000616
|
|
thumb_func_end ov15_021FCB64
|
|
|
|
thumb_func_start ov15_021FCD80
|
|
ov15_021FCD80: ; 0x021FCD80
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021FCDDC ; =0x00000616
|
|
ldrb r0, [r4, r0]
|
|
bl TextPrinterCheckActive
|
|
cmp r0, #0
|
|
bne _021FCDD6
|
|
ldr r0, _021FCDE0 ; =0x00000682
|
|
ldrh r1, [r4, r0]
|
|
cmp r1, #0x63
|
|
bls _021FCD9C
|
|
mov r1, #0x63
|
|
strh r1, [r4, r0]
|
|
_021FCD9C:
|
|
mov r2, #0
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
add r3, r2, #0
|
|
bl ov15_021FD574
|
|
ldr r2, _021FCDE0 ; =0x00000682
|
|
add r0, r4, #0
|
|
ldrh r2, [r4, r2]
|
|
mov r1, #2
|
|
bl ov15_02200300
|
|
add r0, r4, #0
|
|
bl ov15_021FF7FC
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov15_021FF29C
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov15_022004DC
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov15_021FFFDC
|
|
mov r0, #0x12
|
|
pop {r4, pc}
|
|
_021FCDD6:
|
|
mov r0, #0x11
|
|
pop {r4, pc}
|
|
nop
|
|
_021FCDDC: .word 0x00000616
|
|
_021FCDE0: .word 0x00000682
|
|
thumb_func_end ov15_021FCD80
|
|
|
|
thumb_func_start ov15_021FCDE4
|
|
ov15_021FCDE4: ; 0x021FCDE4
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
mov r5, #0
|
|
mov r1, #4
|
|
add r4, r0, #0
|
|
bl ov15_021FAC2C
|
|
add r6, r0, #0
|
|
sub r0, r5, #1
|
|
cmp r6, r0
|
|
bne _021FCDFC
|
|
b _021FCF06
|
|
_021FCDFC:
|
|
ldr r0, _021FCFB8 ; =0x00000682
|
|
ldrh r0, [r4, r0]
|
|
bl ov15_022002EC
|
|
cmp r0, #2
|
|
bne _021FCE14
|
|
cmp r6, #0
|
|
beq _021FCE10
|
|
cmp r6, #2
|
|
bne _021FCE14
|
|
_021FCE10:
|
|
mov r6, #0
|
|
mvn r6, r6
|
|
_021FCE14:
|
|
cmp r6, #5
|
|
bls _021FCE1A
|
|
b _021FCF2E
|
|
_021FCE1A:
|
|
add r0, r6, r6
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021FCE26: ; jump table
|
|
.short _021FCE32 - _021FCE26 - 2 ; case 0
|
|
.short _021FCE64 - _021FCE26 - 2 ; case 1
|
|
.short _021FCE96 - _021FCE26 - 2 ; case 2
|
|
.short _021FCECA - _021FCE26 - 2 ; case 3
|
|
.short _021FCEFE - _021FCE26 - 2 ; case 4
|
|
.short _021FCF02 - _021FCE26 - 2 ; case 5
|
|
_021FCE32:
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #6
|
|
ldrsh r0, [r4, r1]
|
|
add r1, r1, #2
|
|
ldrh r1, [r4, r1]
|
|
mov r2, #0xa
|
|
bl ov15_021FBD28
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #6
|
|
strh r0, [r4, r1]
|
|
mov r0, #0x2d
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteAnimCtrlCurrentFrame
|
|
mov r0, #0x2d
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x1a
|
|
bl UnkImageStruct_SetSpriteAnimSeqNo
|
|
mov r5, #1
|
|
b _021FCF2E
|
|
_021FCE64:
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #6
|
|
ldrsh r0, [r4, r1]
|
|
add r1, r1, #2
|
|
ldrh r1, [r4, r1]
|
|
mov r2, #1
|
|
bl ov15_021FBD28
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #6
|
|
strh r0, [r4, r1]
|
|
mov r0, #0xb5
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteAnimCtrlCurrentFrame
|
|
mov r0, #0xb5
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x1a
|
|
bl UnkImageStruct_SetSpriteAnimSeqNo
|
|
mov r5, #1
|
|
b _021FCF2E
|
|
_021FCE96:
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #6
|
|
ldrsh r0, [r4, r1]
|
|
add r1, r1, #2
|
|
mov r2, #9
|
|
ldrh r1, [r4, r1]
|
|
mvn r2, r2
|
|
bl ov15_021FBD28
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #6
|
|
strh r0, [r4, r1]
|
|
mov r0, #0xb7
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteAnimCtrlCurrentFrame
|
|
mov r0, #0xb7
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x1c
|
|
bl UnkImageStruct_SetSpriteAnimSeqNo
|
|
mov r5, #2
|
|
b _021FCF2E
|
|
_021FCECA:
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #6
|
|
ldrsh r0, [r4, r1]
|
|
add r1, r1, #2
|
|
mov r2, #0
|
|
ldrh r1, [r4, r1]
|
|
mvn r2, r2
|
|
bl ov15_021FBD28
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #6
|
|
strh r0, [r4, r1]
|
|
mov r0, #0x2e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteAnimCtrlCurrentFrame
|
|
mov r0, #0x2e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x1c
|
|
bl UnkImageStruct_SetSpriteAnimSeqNo
|
|
mov r5, #2
|
|
b _021FCF2E
|
|
_021FCEFE:
|
|
mov r5, #3
|
|
b _021FCF2E
|
|
_021FCF02:
|
|
mov r5, #4
|
|
b _021FCF2E
|
|
_021FCF06:
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #6
|
|
add r0, r4, r1
|
|
add r1, r1, #2
|
|
ldrh r1, [r4, r1]
|
|
bl sub_020881C0
|
|
add r5, r0, #0
|
|
bne _021FCF2E
|
|
ldr r0, _021FCFBC ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #1
|
|
tst r0, r1
|
|
beq _021FCF26
|
|
mov r5, #3
|
|
b _021FCF2E
|
|
_021FCF26:
|
|
mov r0, #2
|
|
tst r0, r1
|
|
beq _021FCF2E
|
|
mov r5, #4
|
|
_021FCF2E:
|
|
cmp r5, #4
|
|
bhi _021FCFB2
|
|
add r0, r5, r5
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021FCF3E: ; jump table
|
|
.short _021FCFB2 - _021FCF3E - 2 ; case 0
|
|
.short _021FCF48 - _021FCF3E - 2 ; case 1
|
|
.short _021FCF62 - _021FCF3E - 2 ; case 2
|
|
.short _021FCF7C - _021FCF3E - 2 ; case 3
|
|
.short _021FCF96 - _021FCF3E - 2 ; case 4
|
|
_021FCF48:
|
|
add r0, r4, #0
|
|
bl ov15_021FF068
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
bl ov15_021FEDEC
|
|
ldr r0, _021FCFC0 ; =0x00000637
|
|
bl PlaySE
|
|
add sp, #4
|
|
mov r0, #0x12
|
|
pop {r3, r4, r5, r6, pc}
|
|
_021FCF62:
|
|
add r0, r4, #0
|
|
bl ov15_021FF068
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
bl ov15_021FEDEC
|
|
ldr r0, _021FCFC0 ; =0x00000637
|
|
bl PlaySE
|
|
add sp, #4
|
|
mov r0, #0x12
|
|
pop {r3, r4, r5, r6, pc}
|
|
_021FCF7C:
|
|
ldr r0, _021FCFC4 ; =0x000005DC
|
|
bl PlaySE
|
|
mov r0, #0x13
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r1, #0x26
|
|
mov r2, #9
|
|
mov r3, #8
|
|
bl ov15_021FD7D0
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
_021FCF96:
|
|
mov r0, #SEQ_SE_GS_GEARCANCEL>>6
|
|
lsl r0, r0, #6
|
|
bl PlaySE
|
|
mov r0, #0x14
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r1, #0x13
|
|
mov r2, #9
|
|
mov r3, #8
|
|
bl ov15_021FD7D0
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
_021FCFB2:
|
|
mov r0, #0x12
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021FCFB8: .word 0x00000682
|
|
_021FCFBC: .word gSystem
|
|
_021FCFC0: .word 0x00000637
|
|
_021FCFC4: .word 0x000005DC
|
|
thumb_func_end ov15_021FCDE4
|
|
|
|
thumb_func_start ov15_021FCFC8
|
|
ov15_021FCFC8: ; 0x021FCFC8
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
add r0, #0x44
|
|
mov r1, #1
|
|
bl sub_0200E5D4
|
|
add r0, r5, #0
|
|
bl ov15_021FF834
|
|
add r0, r5, #0
|
|
add r0, #0x34
|
|
mov r1, #0xf
|
|
bl FillWindowPixelBuffer
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x4e
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0
|
|
add r4, r0, #0
|
|
mov r2, #0x1a
|
|
str r1, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
lsl r2, r2, #6
|
|
mov r0, #0xbd
|
|
ldrsh r3, [r5, r2]
|
|
add r2, r2, #4
|
|
lsl r0, r0, #2
|
|
ldr r2, [r5, r2]
|
|
ldr r0, [r5, r0]
|
|
mul r2, r3
|
|
mov r3, #6
|
|
bl BufferIntegerAsString
|
|
mov r0, #0xbd
|
|
ldr r1, _021FD050 ; =0x000005E4
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5, r1]
|
|
add r2, r4, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r4, #0
|
|
bl String_Delete
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov15_021FEF48
|
|
ldr r1, _021FD054 ; =0x00000616
|
|
strb r0, [r5, r1]
|
|
add r0, r5, #0
|
|
bl ov15_02200428
|
|
add r0, r5, #0
|
|
bl ov15_021FFF24
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl ov15_021FD788
|
|
mov r0, #0x15
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021FD050: .word 0x000005E4
|
|
_021FD054: .word 0x00000616
|
|
thumb_func_end ov15_021FCFC8
|
|
|
|
thumb_func_start ov15_021FD058
|
|
ov15_021FD058: ; 0x021FD058
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _021FD0E4 ; =0x00000684
|
|
mov r1, #0
|
|
str r1, [r5, r0]
|
|
mov r0, #0x85
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
mov r1, #1
|
|
bl sub_0200E5D4
|
|
add r0, r5, #0
|
|
add r0, #0x44
|
|
mov r1, #1
|
|
bl sub_0200E5D4
|
|
add r0, r5, #0
|
|
add r0, #0x34
|
|
mov r1, #1
|
|
bl ClearFrameAndWindow2
|
|
add r0, r5, #0
|
|
add r0, #0x34
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
add r0, r5, #4
|
|
bl ScheduleWindowCopyToVram
|
|
add r0, r5, #0
|
|
bl ov15_02200428
|
|
add r0, r5, #0
|
|
bl ov15_021FFF24
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r4, [r5, r0]
|
|
add r0, r5, #0
|
|
bl ov15_021FA074
|
|
add r1, r4, #4
|
|
add r4, #0x64
|
|
add r2, r0, #0
|
|
ldrb r4, [r4]
|
|
mov r3, #0xc
|
|
add r0, r5, #0
|
|
mul r3, r4
|
|
add r1, r1, r3
|
|
mov r3, #0
|
|
bl ov15_02200140
|
|
add r0, r5, #0
|
|
bl ov15_021FE868
|
|
add r0, r5, #0
|
|
bl ov15_021FED3C
|
|
add r0, r5, #0
|
|
bl ov15_021FB518
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov15_02200458
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov15_021FD788
|
|
mov r0, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021FD0E4: .word 0x00000684
|
|
thumb_func_end ov15_021FD058
|
|
|
|
thumb_func_start ov15_021FD0E8
|
|
ov15_021FD0E8: ; 0x021FD0E8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021FD108 ; =0x00000616
|
|
ldrb r0, [r4, r0]
|
|
bl TextPrinterCheckActive
|
|
cmp r0, #0
|
|
bne _021FD102
|
|
add r0, r4, #0
|
|
bl ov15_021FF004
|
|
mov r0, #0x16
|
|
pop {r4, pc}
|
|
_021FD102:
|
|
mov r0, #0x15
|
|
pop {r4, pc}
|
|
nop
|
|
_021FD108: .word 0x00000616
|
|
thumb_func_end ov15_021FD0E8
|
|
|
|
thumb_func_start ov15_021FD10C
|
|
ov15_021FD10C: ; 0x021FD10C
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
ldr r0, _021FD23C ; =0x00000804
|
|
ldr r0, [r4, r0]
|
|
bl YesNoPrompt_HandleInput
|
|
cmp r0, #1
|
|
beq _021FD12A
|
|
cmp r0, #2
|
|
beq _021FD1BA
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
b _021FD234
|
|
_021FD12A:
|
|
add r0, r4, #0
|
|
bl ov15_021FF058
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x4f
|
|
bl NewString_ReadMsgData
|
|
add r5, r0, #0
|
|
mov r0, #0x1a
|
|
lsl r0, r0, #6
|
|
ldrsh r0, [r4, r0]
|
|
cmp r0, #1
|
|
ble _021FD15E
|
|
mov r2, #0xbd
|
|
lsl r2, r2, #2
|
|
ldr r0, [r4, r2]
|
|
sub r2, #0xc0
|
|
ldr r2, [r4, r2]
|
|
mov r1, #0
|
|
add r2, #0x66
|
|
ldrh r2, [r2]
|
|
bl BufferItemNamePlural
|
|
b _021FD172
|
|
_021FD15E:
|
|
mov r2, #0xbd
|
|
lsl r2, r2, #2
|
|
ldr r0, [r4, r2]
|
|
sub r2, #0xc0
|
|
ldr r2, [r4, r2]
|
|
mov r1, #0
|
|
add r2, #0x66
|
|
ldrh r2, [r2]
|
|
bl BufferItemName
|
|
_021FD172:
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
mov r2, #0x1a
|
|
mov r0, #0xbd
|
|
str r1, [sp, #4]
|
|
lsl r2, r2, #6
|
|
ldrsh r3, [r4, r2]
|
|
add r2, r2, #4
|
|
lsl r0, r0, #2
|
|
ldr r2, [r4, r2]
|
|
ldr r0, [r4, r0]
|
|
mul r2, r3
|
|
mov r3, #6
|
|
bl BufferIntegerAsString
|
|
mov r0, #0xbd
|
|
ldr r1, _021FD240 ; =0x000005E4
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r4, r1]
|
|
add r2, r5, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r5, #0
|
|
bl String_Delete
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov15_021FEF48
|
|
ldr r1, _021FD244 ; =0x00000616
|
|
add sp, #8
|
|
strb r0, [r4, r1]
|
|
mov r0, #0x17
|
|
pop {r3, r4, r5, pc}
|
|
_021FD1BA:
|
|
add r0, r4, #0
|
|
bl ov15_021FF058
|
|
ldr r0, _021FD248 ; =0x00000684
|
|
mov r1, #0
|
|
str r1, [r4, r0]
|
|
mov r0, #0x85
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
mov r1, #1
|
|
bl sub_0200E5D4
|
|
add r0, r4, #0
|
|
add r0, #0x34
|
|
mov r1, #1
|
|
bl ClearFrameAndWindow2
|
|
add r0, r4, #0
|
|
add r0, #0x34
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
add r0, r4, #4
|
|
bl ScheduleWindowCopyToVram
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r5, [r4, r0]
|
|
add r0, r4, #0
|
|
bl ov15_021FA074
|
|
add r1, r5, #4
|
|
add r5, #0x64
|
|
add r2, r0, #0
|
|
ldrb r5, [r5]
|
|
mov r3, #0xc
|
|
add r0, r4, #0
|
|
mul r3, r5
|
|
add r1, r1, r3
|
|
mov r3, #0
|
|
bl ov15_02200140
|
|
add r0, r4, #0
|
|
bl ov15_021FE868
|
|
add r0, r4, #0
|
|
bl ov15_021FED3C
|
|
add r0, r4, #0
|
|
bl ov15_021FB518
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov15_02200458
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov15_021FD788
|
|
add sp, #8
|
|
mov r0, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
_021FD234:
|
|
mov r0, #0x16
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021FD23C: .word 0x00000804
|
|
_021FD240: .word 0x000005E4
|
|
_021FD244: .word 0x00000616
|
|
_021FD248: .word 0x00000684
|
|
thumb_func_end ov15_021FD10C
|
|
|
|
thumb_func_start ov15_021FD24C
|
|
ov15_021FD24C: ; 0x021FD24C
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
ldr r0, _021FD2F4 ; =0x00000616
|
|
ldrb r0, [r4, r0]
|
|
bl TextPrinterCheckActive
|
|
cmp r0, #0
|
|
beq _021FD264
|
|
add sp, #4
|
|
mov r0, #0x17
|
|
pop {r3, r4, pc}
|
|
_021FD264:
|
|
ldr r0, _021FD2F8 ; =0x00000643
|
|
bl PlaySE
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #6
|
|
mov r0, #0x8f
|
|
ldrsh r2, [r4, r1]
|
|
add r1, r1, #4
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r1]
|
|
ldr r0, [r4, r0]
|
|
mul r1, r2
|
|
bl PlayerProfile_AddMoney
|
|
mov r0, #0x1a
|
|
lsl r0, r0, #6
|
|
ldrsh r0, [r4, r0]
|
|
cmp r0, #1
|
|
bne _021FD2A8
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r0, r1, #0
|
|
add r0, #0x75
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xff
|
|
beq _021FD2B4
|
|
add r0, r1, #0
|
|
add r0, #0x75
|
|
ldrb r0, [r0]
|
|
add r1, #0x75
|
|
add r0, r0, #1
|
|
strb r0, [r1]
|
|
b _021FD2B4
|
|
_021FD2A8:
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #2
|
|
add r0, #0x75
|
|
strb r1, [r0]
|
|
_021FD2B4:
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r2, [r4, r0]
|
|
add r0, r2, #0
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
add r3, r1, #0
|
|
mul r3, r0
|
|
add r1, r2, r3
|
|
mov r0, #6
|
|
mov r3, #0x1a
|
|
str r0, [sp]
|
|
add r2, #0x66
|
|
lsl r3, r3, #6
|
|
ldr r0, [r1, #4]
|
|
ldrb r1, [r1, #0xd]
|
|
ldrh r2, [r2]
|
|
ldrh r3, [r4, r3]
|
|
bl Pocket_TakeItem
|
|
add r0, r4, #0
|
|
bl ov15_021F9F08
|
|
add r4, #0x34
|
|
add r0, r4, #0
|
|
bl ScheduleWindowCopyToVram
|
|
mov r0, #0x18
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
nop
|
|
_021FD2F4: .word 0x00000616
|
|
_021FD2F8: .word 0x00000643
|
|
thumb_func_end ov15_021FD24C
|
|
|
|
thumb_func_start ov15_021FD2FC
|
|
ov15_021FD2FC: ; 0x021FD2FC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _021FD39C ; =0x00000616
|
|
ldrb r0, [r5, r0]
|
|
bl TextPrinterCheckActive
|
|
cmp r0, #0
|
|
bne _021FD396
|
|
ldr r0, _021FD3A0 ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #3
|
|
tst r0, r1
|
|
bne _021FD31E
|
|
ldr r0, _021FD3A4 ; =gSystem + 0x40
|
|
ldrh r0, [r0, #0x24]
|
|
cmp r0, #0
|
|
beq _021FD396
|
|
_021FD31E:
|
|
ldr r0, _021FD3A8 ; =0x00000684
|
|
mov r1, #0
|
|
str r1, [r5, r0]
|
|
mov r0, #0x85
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
mov r1, #1
|
|
bl sub_0200E5D4
|
|
add r0, r5, #0
|
|
add r0, #0x34
|
|
mov r1, #1
|
|
bl ClearFrameAndWindow2
|
|
add r0, r5, #0
|
|
add r0, #0x34
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
add r0, r5, #4
|
|
bl ScheduleWindowCopyToVram
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r4, [r5, r0]
|
|
add r0, r5, #0
|
|
bl ov15_021FA074
|
|
add r1, r4, #4
|
|
add r4, #0x64
|
|
add r2, r0, #0
|
|
ldrb r4, [r4]
|
|
mov r3, #0xc
|
|
add r0, r5, #0
|
|
mul r3, r4
|
|
add r1, r1, r3
|
|
mov r3, #1
|
|
bl ov15_02200140
|
|
add r0, r5, #0
|
|
bl ov15_021FE868
|
|
add r0, r5, #0
|
|
bl ov15_021FED3C
|
|
add r0, r5, #0
|
|
bl ov15_021FB518
|
|
add r0, r5, #0
|
|
bl ov15_021FA170
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov15_02200458
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov15_021FD788
|
|
mov r0, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
_021FD396:
|
|
mov r0, #0x18
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021FD39C: .word 0x00000616
|
|
_021FD3A0: .word gSystem
|
|
_021FD3A4: .word gSystem + 0x40
|
|
_021FD3A8: .word 0x00000684
|
|
thumb_func_end ov15_021FD2FC
|
|
|
|
thumb_func_start ov15_021FD3AC
|
|
ov15_021FD3AC: ; 0x021FD3AC
|
|
push {r3, lr}
|
|
bl ov15_021FA650
|
|
cmp r0, #1
|
|
bne _021FD3BA
|
|
mov r0, #2
|
|
pop {r3, pc}
|
|
_021FD3BA:
|
|
mov r0, #0x1a
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FD3AC
|
|
|
|
thumb_func_start ov15_021FD3C0
|
|
ov15_021FD3C0: ; 0x021FD3C0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov15_021FED3C
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov15_021FD788
|
|
add r0, r4, #0
|
|
bl ov15_021FFF24
|
|
mov r0, #1
|
|
mov r1, #6
|
|
bl sub_020880CC
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #4
|
|
add r0, #0x68
|
|
strh r1, [r0]
|
|
mov r0, #0x25
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FD3C0
|
|
|
|
thumb_func_start ov15_021FD3F0
|
|
ov15_021FD3F0: ; 0x021FD3F0
|
|
cmp r0, #4
|
|
beq _021FD3FC
|
|
cmp r1, #0x5f
|
|
blo _021FD400
|
|
cmp r1, #0x63
|
|
bhs _021FD400
|
|
_021FD3FC:
|
|
mov r0, #1
|
|
bx lr
|
|
_021FD400:
|
|
mov r0, #0
|
|
bx lr
|
|
thumb_func_end ov15_021FD3F0
|
|
|
|
thumb_func_start ov15_021FD404
|
|
ov15_021FD404: ; 0x021FD404
|
|
push {r3, r4, r5, lr}
|
|
lsl r1, r1, #2
|
|
add r1, r0, r1
|
|
ldr r0, _021FD438 ; =0x00000694
|
|
cmp r2, #7
|
|
ldr r0, [r1, r0]
|
|
ldr r5, [r0, #0xc]
|
|
bgt _021FD434
|
|
lsl r4, r2, #5
|
|
add r0, r5, r4
|
|
mov r1, #0
|
|
mov r2, #0x20
|
|
bl GXS_LoadBGPltt
|
|
add r0, r5, r4
|
|
mov r1, #0x20
|
|
mov r2, #0x40
|
|
bl GXS_LoadBGPltt
|
|
add r0, r5, r4
|
|
mov r1, #0x60
|
|
mov r2, #0x20
|
|
bl GXS_LoadBGPltt
|
|
_021FD434:
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021FD438: .word 0x00000694
|
|
thumb_func_end ov15_021FD404
|
|
|
|
thumb_func_start ov15_021FD43C
|
|
ov15_021FD43C: ; 0x021FD43C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
str r1, [sp, #0x10]
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
add r6, r0, #0
|
|
add r4, r2, #0
|
|
bl GetBgTilemapBuffer
|
|
str r0, [sp, #0x14]
|
|
cmp r4, #6
|
|
beq _021FD4B6
|
|
ldr r1, _021FD4BC ; =ov15_022013A8
|
|
lsl r0, r4, #5
|
|
add r5, r1, r0
|
|
ldr r0, [sp, #0x10]
|
|
mov r7, #0
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
_021FD462:
|
|
ldrb r0, [r5]
|
|
cmp r0, #1
|
|
bne _021FD48E
|
|
ldrb r0, [r5, #4]
|
|
add r1, r4, #0
|
|
str r0, [sp]
|
|
ldrb r0, [r5, #5]
|
|
str r0, [sp, #4]
|
|
ldrb r0, [r5, #6]
|
|
str r0, [sp, #8]
|
|
ldrb r3, [r5, #2]
|
|
ldrb r2, [r5, #1]
|
|
add r0, r6, #0
|
|
lsl r3, r3, #5
|
|
add r2, r2, r3
|
|
lsl r3, r2, #1
|
|
ldr r2, [sp, #0x14]
|
|
add r2, r2, r3
|
|
ldrb r3, [r5, #3]
|
|
bl LoadRectToBgTilemapRect
|
|
b _021FD4AE
|
|
_021FD48E:
|
|
cmp r0, #2
|
|
bne _021FD4AE
|
|
ldrb r0, [r5, #4]
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
str r0, [sp]
|
|
ldrb r0, [r5, #5]
|
|
str r0, [sp, #4]
|
|
ldrb r0, [r5, #6]
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
ldrb r3, [r5, #3]
|
|
add r0, r6, #0
|
|
bl FillBgTilemapRect
|
|
_021FD4AE:
|
|
add r7, r7, #1
|
|
add r5, #8
|
|
cmp r7, #4
|
|
blt _021FD462
|
|
_021FD4B6:
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021FD4BC: .word ov15_022013A8
|
|
thumb_func_end ov15_021FD43C
|
|
|
|
thumb_func_start ov15_021FD4C0
|
|
ov15_021FD4C0: ; 0x021FD4C0
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x1c
|
|
str r1, [sp, #0x10]
|
|
lsl r1, r1, #0x18
|
|
add r5, r2, #0
|
|
lsr r1, r1, #0x18
|
|
add r6, r0, #0
|
|
str r3, [sp, #0x14]
|
|
bl GetBgTilemapBuffer
|
|
str r0, [sp, #0x18]
|
|
sub r0, r5, #1
|
|
ldr r1, _021FD56C ; =ov15_02201340
|
|
lsl r0, r0, #3
|
|
add r5, r1, r0
|
|
ldr r0, [sp, #0x10]
|
|
mov r4, #0
|
|
lsl r0, r0, #0x18
|
|
lsr r7, r0, #0x18
|
|
_021FD4E6:
|
|
ldrb r0, [r5, #1]
|
|
add r1, r7, #0
|
|
mov r2, #0
|
|
str r0, [sp]
|
|
ldrb r0, [r5, #2]
|
|
str r0, [sp, #4]
|
|
ldrb r0, [r5, #3]
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
ldrb r3, [r5]
|
|
add r0, r6, #0
|
|
bl FillBgTilemapRect
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #2
|
|
blt _021FD4E6
|
|
mov r1, #0
|
|
ldr r0, [sp, #0x14]
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _021FD566
|
|
ldr r1, _021FD570 ; =ov15_02201328
|
|
lsl r0, r0, #2
|
|
add r3, r1, r0
|
|
ldr r0, [sp, #0x14]
|
|
cmp r0, #1
|
|
ldrb r0, [r3, #1]
|
|
bhi _021FD546
|
|
str r0, [sp]
|
|
ldrb r0, [r3, #2]
|
|
ldr r1, [sp, #0x10]
|
|
mov r4, #6
|
|
str r0, [sp, #4]
|
|
ldrb r0, [r3, #3]
|
|
lsl r1, r1, #0x18
|
|
ldr r2, [sp, #0x18]
|
|
str r0, [sp, #8]
|
|
lsl r4, r4, #8
|
|
ldrb r3, [r3]
|
|
add r0, r6, #0
|
|
lsr r1, r1, #0x18
|
|
add r2, r2, r4
|
|
bl LoadRectToBgTilemapRect
|
|
add sp, #0x1c
|
|
pop {r4, r5, r6, r7, pc}
|
|
_021FD546:
|
|
str r0, [sp]
|
|
ldrb r0, [r3, #2]
|
|
ldr r1, [sp, #0x10]
|
|
mov r4, #0x1b
|
|
str r0, [sp, #4]
|
|
ldrb r0, [r3, #3]
|
|
lsl r1, r1, #0x18
|
|
ldr r2, [sp, #0x18]
|
|
str r0, [sp, #8]
|
|
lsl r4, r4, #6
|
|
ldrb r3, [r3]
|
|
add r0, r6, #0
|
|
lsr r1, r1, #0x18
|
|
add r2, r2, r4
|
|
bl LoadRectToBgTilemapRect
|
|
_021FD566:
|
|
add sp, #0x1c
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_021FD56C: .word ov15_02201340
|
|
_021FD570: .word ov15_02201328
|
|
thumb_func_end ov15_021FD4C0
|
|
|
|
thumb_func_start ov15_021FD574
|
|
ov15_021FD574: ; 0x021FD574
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r5, r1, #0
|
|
add r4, r0, #0
|
|
add r6, r2, #0
|
|
add r7, r3, #0
|
|
cmp r5, #4
|
|
bls _021FD588
|
|
bl GF_AssertFail
|
|
_021FD588:
|
|
cmp r5, #4
|
|
bls _021FD58E
|
|
b _021FD770
|
|
_021FD58E:
|
|
add r0, r5, r5
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021FD59A: ; jump table
|
|
.short _021FD5A4 - _021FD59A - 2 ; case 0
|
|
.short _021FD62E - _021FD59A - 2 ; case 1
|
|
.short _021FD6C6 - _021FD59A - 2 ; case 2
|
|
.short _021FD70C - _021FD59A - 2 ; case 3
|
|
.short _021FD740 - _021FD59A - 2 ; case 4
|
|
_021FD5A4:
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r0, #0xf
|
|
mov r1, #0x2b
|
|
mov r2, #0
|
|
add r3, sp, #4
|
|
bl GfGfxLoader_GetScrnData
|
|
ldr r3, [sp, #4]
|
|
add r5, r0, #0
|
|
add r2, r3, #0
|
|
ldr r0, [r4]
|
|
ldr r3, [r3, #8]
|
|
mov r1, #5
|
|
add r2, #0xc
|
|
bl BG_LoadScreenTilemapData
|
|
ldr r0, [r4]
|
|
mov r1, #5
|
|
bl GetBgTilemapBuffer
|
|
ldr r1, [sp, #4]
|
|
ldr r1, [r1, #8]
|
|
bl DC_FlushRange
|
|
ldr r0, [r4]
|
|
mov r1, #5
|
|
add r2, r6, #0
|
|
bl ov15_021FD43C
|
|
ldr r0, [r4]
|
|
mov r1, #5
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r0, #0xf
|
|
mov r1, #0x27
|
|
mov r2, #0
|
|
add r3, sp, #4
|
|
bl GfGfxLoader_GetScrnData
|
|
ldr r3, [sp, #4]
|
|
add r5, r0, #0
|
|
add r2, r3, #0
|
|
ldr r0, [r4]
|
|
ldr r3, [r3, #8]
|
|
mov r1, #6
|
|
add r2, #0xc
|
|
bl BG_LoadScreenTilemapData
|
|
ldr r0, [r4]
|
|
mov r1, #6
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
mov r1, #0
|
|
add r0, r4, #0
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl ov15_0220005C
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021FD62E:
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r0, #0xf
|
|
mov r1, #0x2c
|
|
mov r2, #0
|
|
add r3, sp, #4
|
|
bl GfGfxLoader_GetScrnData
|
|
ldr r3, [sp, #4]
|
|
add r5, r0, #0
|
|
add r2, r3, #0
|
|
ldr r0, [r4]
|
|
ldr r3, [r3, #8]
|
|
mov r1, #5
|
|
add r2, #0xc
|
|
bl BG_LoadScreenTilemapData
|
|
ldr r0, [r4]
|
|
mov r1, #5
|
|
bl GetBgTilemapBuffer
|
|
ldr r1, [sp, #4]
|
|
ldr r1, [r1, #8]
|
|
bl DC_FlushRange
|
|
ldr r0, [r4]
|
|
mov r1, #5
|
|
add r2, r6, #0
|
|
add r3, r7, #0
|
|
bl ov15_021FD4C0
|
|
ldr r0, [r4]
|
|
mov r1, #5
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r0, #0xf
|
|
mov r1, #0x2a
|
|
mov r2, #0
|
|
add r3, sp, #4
|
|
bl GfGfxLoader_GetScrnData
|
|
ldr r3, [sp, #4]
|
|
add r5, r0, #0
|
|
add r2, r3, #0
|
|
ldr r0, [r4]
|
|
ldr r3, [r3, #8]
|
|
mov r1, #6
|
|
add r2, #0xc
|
|
bl BG_LoadScreenTilemapData
|
|
ldr r0, [r4]
|
|
mov r1, #6
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
bl ov15_02200294
|
|
add r0, r4, #0
|
|
bl ov15_021FA098
|
|
add r2, r0, #0
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
mov r3, #0
|
|
bl ov15_0220005C
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021FD6C6:
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r0, #0xf
|
|
mov r1, #0x2d
|
|
mov r2, #0
|
|
add r3, sp, #4
|
|
bl GfGfxLoader_GetScrnData
|
|
ldr r3, [sp, #4]
|
|
add r5, r0, #0
|
|
add r2, r3, #0
|
|
ldr r0, [r4]
|
|
ldr r3, [r3, #8]
|
|
mov r1, #6
|
|
add r2, #0xc
|
|
bl BG_LoadScreenTilemapData
|
|
ldr r0, [r4]
|
|
mov r1, #6
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
ldr r0, [r4]
|
|
mov r1, #5
|
|
add r2, r6, #0
|
|
bl ov15_021FD43C
|
|
ldr r0, [r4]
|
|
mov r1, #5
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021FD70C:
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r0, #0xf
|
|
mov r1, #0x34
|
|
mov r2, #0
|
|
add r3, sp, #4
|
|
bl GfGfxLoader_GetScrnData
|
|
ldr r3, [sp, #4]
|
|
add r5, r0, #0
|
|
add r2, r3, #0
|
|
ldr r0, [r4]
|
|
ldr r3, [r3, #8]
|
|
mov r1, #6
|
|
add r2, #0xc
|
|
bl BG_LoadScreenTilemapData
|
|
ldr r0, [r4]
|
|
mov r1, #6
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021FD740:
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r0, #0xf
|
|
mov r1, #0x35
|
|
mov r2, #0
|
|
add r3, sp, #4
|
|
bl GfGfxLoader_GetScrnData
|
|
ldr r3, [sp, #4]
|
|
add r5, r0, #0
|
|
add r2, r3, #0
|
|
ldr r0, [r4]
|
|
ldr r3, [r3, #8]
|
|
mov r1, #6
|
|
add r2, #0xc
|
|
bl BG_LoadScreenTilemapData
|
|
ldr r0, [r4]
|
|
mov r1, #6
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
_021FD770:
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov15_021FD574
|
|
|
|
thumb_func_start ov15_021FD774
|
|
ov15_021FD774: ; 0x021FD774
|
|
push {r3, lr}
|
|
mov r2, #0x8d
|
|
lsl r2, r2, #2
|
|
ldr r0, [r0, r2]
|
|
ldr r0, [r0, #0x78]
|
|
cmp r0, #0
|
|
beq _021FD786
|
|
bl MenuInputStateMgr_SetState
|
|
_021FD786:
|
|
pop {r3, pc}
|
|
thumb_func_end ov15_021FD774
|
|
|
|
thumb_func_start ov15_021FD788
|
|
ov15_021FD788: ; 0x021FD788
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
cmp r1, #1
|
|
bne _021FD7C0
|
|
mov r1, #1
|
|
bl ov15_022004DC
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov15_021FF29C
|
|
add r0, r4, #0
|
|
add r0, #0x74
|
|
bl ScheduleWindowCopyToVram
|
|
mov r0, #0xa7
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteAnimCtrlCurrentFrame
|
|
mov r0, #0xa7
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x10
|
|
bl UnkImageStruct_SetSpriteAnimSeqNo
|
|
pop {r4, pc}
|
|
_021FD7C0:
|
|
mov r1, #0
|
|
bl ov15_022004DC
|
|
add r0, r4, #0
|
|
bl ov15_021FF844
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FD788
|
|
|
|
thumb_func_start ov15_021FD7D0
|
|
ov15_021FD7D0: ; 0x021FD7D0
|
|
push {r4, r5}
|
|
mov r4, #0x25
|
|
lsl r4, r4, #6
|
|
add r0, r0, r4
|
|
mov r4, #0
|
|
strb r4, [r0, #2]
|
|
strb r1, [r0]
|
|
ldrb r5, [r0, #1]
|
|
mov r4, #0xf
|
|
mov r1, #0xf
|
|
and r1, r2
|
|
bic r5, r4
|
|
orr r1, r5
|
|
strb r1, [r0, #1]
|
|
lsl r2, r3, #0x1c
|
|
ldrb r5, [r0, #1]
|
|
mov r1, #0xf0
|
|
lsr r2, r2, #0x18
|
|
bic r5, r1
|
|
orr r2, r5
|
|
strb r2, [r0, #1]
|
|
ldr r2, [sp, #8]
|
|
str r2, [r0, #4]
|
|
ldrb r2, [r0, #3]
|
|
bic r2, r4
|
|
strb r2, [r0, #3]
|
|
ldrb r2, [r0, #3]
|
|
bic r2, r1
|
|
strb r2, [r0, #3]
|
|
mov r0, #0x23
|
|
pop {r4, r5}
|
|
bx lr
|
|
thumb_func_end ov15_021FD7D0
|
|
|
|
thumb_func_start ov15_021FD810
|
|
ov15_021FD810: ; 0x021FD810
|
|
push {r4, r5, r6, lr}
|
|
add r6, r2, #0
|
|
mov r2, #0x25
|
|
add r4, r0, #0
|
|
lsl r2, r2, #6
|
|
add r0, r4, r2
|
|
mov r5, #1
|
|
strb r5, [r0, #2]
|
|
strb r1, [r0]
|
|
str r3, [r0, #4]
|
|
ldrb r5, [r0, #3]
|
|
mov r3, #0xf
|
|
bic r5, r3
|
|
strb r5, [r0, #3]
|
|
ldrb r5, [r0, #3]
|
|
mov r3, #0xf0
|
|
bic r5, r3
|
|
strb r5, [r0, #3]
|
|
lsr r0, r2, #2
|
|
add r5, r4, r0
|
|
lsl r4, r1, #2
|
|
ldr r0, [r5, r4]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteAnimCtrlCurrentFrame
|
|
ldr r0, [r5, r4]
|
|
add r1, r6, #0
|
|
bl UnkImageStruct_SetSpriteAnimSeqNo
|
|
mov r0, #0x23
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FD810
|
|
|
|
thumb_func_start ov15_021FD850
|
|
ov15_021FD850: ; 0x021FD850
|
|
push {r3, r4, r5, lr}
|
|
mov r5, #0x25
|
|
lsl r5, r5, #6
|
|
add r4, r0, r5
|
|
ldrb r1, [r4, #2]
|
|
cmp r1, #1
|
|
bne _021FD874
|
|
ldrb r1, [r4]
|
|
lsl r1, r1, #2
|
|
add r1, r0, r1
|
|
lsr r0, r5, #2
|
|
ldr r0, [r1, r0]
|
|
bl sub_0200DCA0
|
|
cmp r0, #0
|
|
bne _021FD936
|
|
ldr r0, [r4, #4]
|
|
pop {r3, r4, r5, pc}
|
|
_021FD874:
|
|
ldrb r2, [r4, #3]
|
|
lsl r1, r2, #0x1c
|
|
lsr r1, r1, #0x1c
|
|
beq _021FD886
|
|
cmp r1, #1
|
|
beq _021FD8B6
|
|
cmp r1, #2
|
|
beq _021FD910
|
|
b _021FD936
|
|
_021FD886:
|
|
ldrb r1, [r4]
|
|
lsl r1, r1, #2
|
|
add r1, r0, r1
|
|
lsr r0, r5, #2
|
|
ldr r0, [r1, r0]
|
|
ldrb r1, [r4, #1]
|
|
lsl r1, r1, #0x1c
|
|
lsr r1, r1, #0x1c
|
|
bl UnkImageStruct_SetSpritePalIndex
|
|
ldrb r2, [r4, #3]
|
|
mov r1, #0xf
|
|
add r0, r2, #0
|
|
bic r0, r1
|
|
lsl r1, r2, #0x1c
|
|
lsr r1, r1, #0x1c
|
|
add r1, r1, #1
|
|
lsl r1, r1, #0x18
|
|
lsr r2, r1, #0x18
|
|
mov r1, #0xf
|
|
and r1, r2
|
|
orr r0, r1
|
|
strb r0, [r4, #3]
|
|
b _021FD936
|
|
_021FD8B6:
|
|
add r1, r2, #0
|
|
lsl r2, r2, #0x18
|
|
lsr r2, r2, #0x1c
|
|
add r2, r2, #1
|
|
lsl r2, r2, #0x18
|
|
lsr r2, r2, #0x18
|
|
mov r3, #0xf0
|
|
lsl r2, r2, #0x1c
|
|
bic r1, r3
|
|
lsr r2, r2, #0x18
|
|
orr r1, r2
|
|
strb r1, [r4, #3]
|
|
ldrb r1, [r4, #3]
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x1c
|
|
cmp r1, #4
|
|
bne _021FD936
|
|
ldrb r1, [r4]
|
|
lsl r1, r1, #2
|
|
add r1, r0, r1
|
|
lsr r0, r5, #2
|
|
ldr r0, [r1, r0]
|
|
ldrb r1, [r4, #1]
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x1c
|
|
bl UnkImageStruct_SetSpritePalIndex
|
|
ldrb r1, [r4, #3]
|
|
mov r0, #0xf0
|
|
bic r1, r0
|
|
strb r1, [r4, #3]
|
|
ldrb r2, [r4, #3]
|
|
mov r1, #0xf
|
|
add r0, r2, #0
|
|
bic r0, r1
|
|
lsl r1, r2, #0x1c
|
|
lsr r1, r1, #0x1c
|
|
add r1, r1, #1
|
|
lsl r1, r1, #0x18
|
|
lsr r2, r1, #0x18
|
|
mov r1, #0xf
|
|
and r1, r2
|
|
orr r0, r1
|
|
strb r0, [r4, #3]
|
|
b _021FD936
|
|
_021FD910:
|
|
mov r1, #0xf0
|
|
add r0, r2, #0
|
|
bic r0, r1
|
|
lsl r1, r2, #0x18
|
|
lsr r1, r1, #0x1c
|
|
add r1, r1, #1
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
lsl r1, r1, #0x1c
|
|
lsr r1, r1, #0x18
|
|
orr r0, r1
|
|
strb r0, [r4, #3]
|
|
ldrb r0, [r4, #3]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x1c
|
|
cmp r0, #2
|
|
bne _021FD936
|
|
ldr r0, [r4, #4]
|
|
pop {r3, r4, r5, pc}
|
|
_021FD936:
|
|
mov r0, #0x23
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FD850
|
|
|
|
thumb_func_start ov15_021FD93C
|
|
ov15_021FD93C: ; 0x021FD93C
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
mov r0, #6
|
|
bl GF3dRender_InitSimpleManager
|
|
ldr r2, _021FDA94 ; =0x04000060
|
|
ldr r0, _021FDA98 ; =0xFFFFCFFF
|
|
ldrh r1, [r2]
|
|
and r1, r0
|
|
mov r0, #0x10
|
|
orr r0, r1
|
|
strh r0, [r2]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
add r3, r0, #0
|
|
bl G3X_SetFog
|
|
mov r0, #0
|
|
ldr r2, _021FDA9C ; =0x00007FFF
|
|
add r1, r0, #0
|
|
add r3, r0, #0
|
|
str r0, [sp]
|
|
bl G3X_SetClearColor
|
|
ldr r0, _021FDAA0 ; =0x00003DEF
|
|
ldr r1, _021FDAA4 ; =0x0000294A
|
|
mov r2, #0
|
|
bl NNS_G3dGlbMaterialColorDiffAmb
|
|
ldr r0, _021FDAA0 ; =0x00003DEF
|
|
mov r2, #0
|
|
add r1, r0, #0
|
|
bl NNS_G3dGlbMaterialColorSpecEmi
|
|
mov r0, #0x1f
|
|
mov r1, #0
|
|
str r0, [sp]
|
|
mov r0, #0xf
|
|
mov r2, #3
|
|
add r3, r1, #0
|
|
str r1, [sp, #4]
|
|
bl NNS_G3dGlbPolygonAttr
|
|
ldr r2, _021FDA94 ; =0x04000060
|
|
ldr r0, _021FDA98 ; =0xFFFFCFFF
|
|
ldrh r1, [r2]
|
|
and r1, r0
|
|
mov r0, #0x20
|
|
orr r0, r1
|
|
strh r0, [r2]
|
|
ldr r0, _021FDAA8 ; =ov15_02201304
|
|
bl G3X_SetEdgeColorTable
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl SetBgPriority
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
bl GfGfx_EngineATogglePlanes
|
|
mov r0, #6
|
|
bl Camera_New
|
|
ldr r2, _021FDAAC ; =0x00000818
|
|
ldr r4, _021FDAB0 ; =ov15_02200500
|
|
str r0, [r5, r2]
|
|
add r0, r2, #0
|
|
add r0, #0xec
|
|
add r3, r5, r0
|
|
ldmia r4!, {r0, r1}
|
|
add r6, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r4]
|
|
ldr r4, _021FDAB4 ; =ov15_0220053C
|
|
str r0, [r3]
|
|
add r0, r2, #0
|
|
add r0, #0xf8
|
|
add r3, r5, r0
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r4]
|
|
str r0, [r3]
|
|
ldr r3, _021FDAB8 ; =0x0000091C
|
|
ldrb r0, [r5, r3]
|
|
add r1, r3, #0
|
|
sub r1, #0xc
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, r2]
|
|
add r2, r3, #0
|
|
str r0, [sp, #8]
|
|
add r3, r3, #2
|
|
sub r2, #8
|
|
ldrh r3, [r5, r3]
|
|
ldr r1, [r5, r1]
|
|
add r0, r6, #0
|
|
add r2, r5, r2
|
|
bl Camera_Init_FromTargetDistanceAndAngle
|
|
ldr r0, _021FDABC ; =0x00000934
|
|
ldr r3, _021FDAC0 ; =ov15_0220050C
|
|
add r2, r5, r0
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
ldr r0, _021FDAC4 ; =0x00000808
|
|
add r0, r5, r0
|
|
bl ov15_021FDAD0
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
ldr r0, _021FDAC4 ; =0x00000808
|
|
add r1, #0x64
|
|
ldrb r1, [r1]
|
|
add r0, r5, r0
|
|
mov r2, #7
|
|
add r1, r1, #1
|
|
bl ov15_021FDAF4
|
|
ldr r2, _021FDAAC ; =0x00000818
|
|
mov r0, #0x7b
|
|
ldr r1, _021FDAC8 ; =0x006A4000
|
|
ldr r2, [r5, r2]
|
|
lsl r0, r0, #0xc
|
|
bl Camera_SetPerspectiveClippingPlane
|
|
ldr r0, _021FDAAC ; =0x00000818
|
|
ldr r0, [r5, r0]
|
|
bl Camera_SetStaticPtr
|
|
mov r6, #1
|
|
ldr r7, _021FDA9C ; =0x00007FFF
|
|
mov r4, #0
|
|
lsl r6, r6, #0xc
|
|
_021FDA58:
|
|
mov r2, #0
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
add r3, r2, #0
|
|
bl NNS_G3dGlbLightVector
|
|
add r0, r4, #0
|
|
add r1, r7, #0
|
|
bl NNS_G3dGlbLightColor
|
|
add r4, r4, #1
|
|
cmp r4, #4
|
|
blo _021FDA58
|
|
add r0, r5, #0
|
|
bl ov15_021FDD70
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
bl GfGfx_EngineATogglePlanes
|
|
ldr r1, _021FDACC ; =0x04000008
|
|
mov r0, #3
|
|
ldrh r2, [r1]
|
|
bic r2, r0
|
|
mov r0, #2
|
|
orr r0, r2
|
|
strh r0, [r1]
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_021FDA94: .word 0x04000060
|
|
_021FDA98: .word 0xFFFFCFFF
|
|
_021FDA9C: .word 0x00007FFF
|
|
_021FDAA0: .word 0x00003DEF
|
|
_021FDAA4: .word 0x0000294A
|
|
_021FDAA8: .word ov15_02201304
|
|
_021FDAAC: .word 0x00000818
|
|
_021FDAB0: .word ov15_02200500
|
|
_021FDAB4: .word ov15_0220053C
|
|
_021FDAB8: .word 0x0000091C
|
|
_021FDABC: .word 0x00000934
|
|
_021FDAC0: .word ov15_0220050C
|
|
_021FDAC4: .word 0x00000808
|
|
_021FDAC8: .word 0x006A4000
|
|
_021FDACC: .word 0x04000008
|
|
thumb_func_end ov15_021FD93C
|
|
|
|
thumb_func_start ov15_021FDAD0
|
|
ov15_021FDAD0: ; 0x021FDAD0
|
|
mov r2, #0x47
|
|
lsl r2, r2, #2
|
|
mov r3, #0
|
|
str r3, [r0, r2]
|
|
add r1, r2, #4
|
|
str r3, [r0, r1]
|
|
add r1, r2, #0
|
|
sub r3, r3, #1
|
|
add r1, #8
|
|
str r3, [r0, r1]
|
|
add r1, r2, #0
|
|
mov r3, #7
|
|
add r1, #0xc
|
|
strh r3, [r0, r1]
|
|
add r2, #0xe
|
|
strh r3, [r0, r2]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FDAD0
|
|
|
|
thumb_func_start ov15_021FDAF4
|
|
ov15_021FDAF4: ; 0x021FDAF4
|
|
push {r4, r5}
|
|
mov r4, #0x4a
|
|
lsl r4, r4, #2
|
|
add r3, r4, #2
|
|
ldrh r5, [r0, r4]
|
|
ldrh r3, [r0, r3]
|
|
cmp r5, r3
|
|
bne _021FDB22
|
|
add r3, r4, #0
|
|
sub r3, #8
|
|
ldr r5, [r0, r3]
|
|
add r3, r4, #0
|
|
sub r3, #0xc
|
|
str r5, [r0, r3]
|
|
add r3, r4, #0
|
|
sub r3, #8
|
|
str r1, [r0, r3]
|
|
mov r1, #0
|
|
strh r1, [r0, r4]
|
|
add r1, r4, #2
|
|
strh r2, [r0, r1]
|
|
pop {r4, r5}
|
|
bx lr
|
|
_021FDB22:
|
|
sub r2, r4, #4
|
|
str r1, [r0, r2]
|
|
pop {r4, r5}
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FDAF4
|
|
|
|
thumb_func_start ov15_021FDB2C
|
|
ov15_021FDB2C: ; 0x021FDB2C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r5, r0, #0
|
|
mov r0, #0x90
|
|
add r2, r1, #0
|
|
add r1, r0, #0
|
|
ldr r3, _021FDC64 ; =ov15_02200790
|
|
mul r2, r0
|
|
add r1, #0x98
|
|
add r4, r3, r2
|
|
ldrh r2, [r5, r1]
|
|
add r1, r0, #0
|
|
add r1, #0x9a
|
|
ldrh r1, [r5, r1]
|
|
cmp r2, r1
|
|
beq _021FDC28
|
|
add r1, r0, #0
|
|
add r1, #0x98
|
|
ldrh r1, [r5, r1]
|
|
add r2, r1, #1
|
|
add r1, r0, #0
|
|
add r1, #0x98
|
|
strh r2, [r5, r1]
|
|
add r1, r0, #0
|
|
add r1, #0x8c
|
|
add r0, #0x90
|
|
ldr r1, [r5, r1]
|
|
ldr r0, [r5, r0]
|
|
lsl r1, r1, #4
|
|
lsl r0, r0, #4
|
|
str r1, [sp, #8]
|
|
ldrh r7, [r4, r1]
|
|
ldrh r1, [r4, r0]
|
|
str r0, [sp, #4]
|
|
sub r0, r1, r7
|
|
bpl _021FDB76
|
|
neg r0, r0
|
|
_021FDB76:
|
|
cmp r1, r7
|
|
bhs _021FDB80
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
b _021FDB82
|
|
_021FDB80:
|
|
mov r1, #1
|
|
_021FDB82:
|
|
mov r2, #2
|
|
lsl r2, r2, #0xe
|
|
cmp r0, r2
|
|
ble _021FDB94
|
|
lsl r2, r2, #1
|
|
sub r0, r2, r0
|
|
mov r2, #0
|
|
mvn r2, r2
|
|
mul r1, r2
|
|
_021FDB94:
|
|
cmp r1, #0
|
|
ldr r2, _021FDC68 ; =0x0000012A
|
|
ble _021FDBB0
|
|
ldrh r1, [r5, r2]
|
|
str r1, [sp]
|
|
sub r1, r2, #2
|
|
ldrh r6, [r5, r1]
|
|
ldr r1, [sp]
|
|
bl _s32_div_f
|
|
mul r0, r6
|
|
add r0, r7, r0
|
|
str r0, [sp, #0x14]
|
|
b _021FDBC4
|
|
_021FDBB0:
|
|
ldrh r1, [r5, r2]
|
|
str r1, [sp]
|
|
sub r1, r2, #2
|
|
ldrh r6, [r5, r1]
|
|
ldr r1, [sp]
|
|
bl _s32_div_f
|
|
mul r0, r6
|
|
sub r0, r7, r0
|
|
str r0, [sp, #0x14]
|
|
_021FDBC4:
|
|
ldr r0, [sp, #8]
|
|
ldr r1, [sp]
|
|
add r0, r4, r0
|
|
ldrh r7, [r0, #2]
|
|
ldr r0, [sp, #4]
|
|
add r0, r4, r0
|
|
ldrh r0, [r0, #2]
|
|
sub r0, r0, r7
|
|
bl _s32_div_f
|
|
mul r0, r6
|
|
add r0, r7, r0
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sp, #8]
|
|
ldr r1, [sp]
|
|
add r0, r4, r0
|
|
ldr r7, [r0, #8]
|
|
ldr r0, [sp, #4]
|
|
add r0, r4, r0
|
|
ldr r0, [r0, #8]
|
|
sub r0, r0, r7
|
|
bl _s32_div_f
|
|
mul r0, r6
|
|
add r0, r7, r0
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #8]
|
|
ldr r1, [sp]
|
|
add r0, r4, r0
|
|
ldr r7, [r0, #0xc]
|
|
ldr r0, [sp, #4]
|
|
add r0, r4, r0
|
|
ldr r0, [r0, #0xc]
|
|
sub r0, r0, r7
|
|
bl _s32_div_f
|
|
mul r0, r6
|
|
add r1, r7, r0
|
|
mov r0, #0x43
|
|
lsl r0, r0, #2
|
|
ldr r2, [sp, #0x14]
|
|
add r3, r0, #2
|
|
strh r2, [r5, r0]
|
|
ldr r2, [sp, #0x10]
|
|
strh r2, [r5, r3]
|
|
sub r3, r0, #4
|
|
ldr r2, [sp, #0xc]
|
|
add r0, #0x24
|
|
str r2, [r5, r3]
|
|
str r1, [r5, r0]
|
|
_021FDC28:
|
|
mov r1, #0x4a
|
|
lsl r1, r1, #2
|
|
add r0, r1, #2
|
|
ldrh r2, [r5, r1]
|
|
ldrh r0, [r5, r0]
|
|
cmp r2, r0
|
|
bne _021FDC60
|
|
sub r0, r1, #4
|
|
mov r2, #0
|
|
ldr r0, [r5, r0]
|
|
mvn r2, r2
|
|
cmp r0, r2
|
|
beq _021FDC60
|
|
add r0, r1, #0
|
|
sub r0, #8
|
|
ldr r3, [r5, r0]
|
|
add r0, r1, #0
|
|
sub r0, #0xc
|
|
str r3, [r5, r0]
|
|
sub r0, r1, #4
|
|
ldr r3, [r5, r0]
|
|
add r0, r1, #0
|
|
sub r0, #8
|
|
str r3, [r5, r0]
|
|
sub r0, r1, #4
|
|
str r2, [r5, r0]
|
|
mov r0, #0
|
|
strh r0, [r5, r1]
|
|
_021FDC60:
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021FDC64: .word ov15_02200790
|
|
_021FDC68: .word 0x0000012A
|
|
thumb_func_end ov15_021FDB2C
|
|
|
|
thumb_func_start ov15_021FDC6C
|
|
ov15_021FDC6C: ; 0x021FDC6C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov15_021FDF20
|
|
ldr r0, _021FDC84 ; =0x00000818
|
|
ldr r0, [r4, r0]
|
|
bl Camera_Delete
|
|
bl GF3dRender_DeleteSimpleManager
|
|
pop {r4, pc}
|
|
nop
|
|
_021FDC84: .word 0x00000818
|
|
thumb_func_end ov15_021FDC6C
|
|
|
|
thumb_func_start ov15_021FDC88
|
|
ov15_021FDC88: ; 0x021FDC88
|
|
push {r4, r5, lr}
|
|
sub sp, #0x3c
|
|
ldr r4, _021FDD34 ; =ov15_022005CC
|
|
add r5, r0, #0
|
|
add r3, sp, #0x18
|
|
mov r2, #4
|
|
_021FDC94:
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _021FDC94
|
|
ldr r0, [r4]
|
|
add r2, sp, #0xc
|
|
str r0, [r3]
|
|
ldr r3, _021FDD38 ; =ov15_022004F4
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
ldr r1, _021FDD3C ; =0x00000615
|
|
str r0, [r2]
|
|
ldr r0, _021FDD40 ; =0x00000808
|
|
ldrb r1, [r5, r1]
|
|
add r0, r5, r0
|
|
bl ov15_021FDB2C
|
|
ldr r3, _021FDD44 ; =0x0000091C
|
|
ldr r2, _021FDD48 ; =0x00000818
|
|
ldrb r0, [r5, r3]
|
|
add r1, r2, #0
|
|
add r3, r3, #2
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, r2]
|
|
add r1, #0xf8
|
|
str r0, [sp, #8]
|
|
add r0, r2, #0
|
|
add r0, #0xec
|
|
add r2, #0xfc
|
|
ldrh r3, [r5, r3]
|
|
ldr r1, [r5, r1]
|
|
add r0, r5, r0
|
|
add r2, r5, r2
|
|
bl Camera_Init_FromTargetDistanceAndAngle
|
|
bl Thunk_G3X_Reset
|
|
bl Camera_PushLookAtToNNSGlb
|
|
ldr r0, _021FDD4C ; =0x0000081C
|
|
add r4, r5, r0
|
|
add r0, r4, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
add r0, #0xa0
|
|
ldr r0, [r0]
|
|
bl ov15_021FDD54
|
|
add r0, r4, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
add r0, #0xc0
|
|
ldr r0, [r0]
|
|
bl ov15_021FDD54
|
|
add r0, r4, #0
|
|
add r0, #0xe0
|
|
ldr r0, [r0]
|
|
bl ov15_021FDD54
|
|
ldr r1, _021FDD50 ; =0x00000934
|
|
add r0, r4, #0
|
|
add r1, r5, r1
|
|
add r2, sp, #0x18
|
|
add r3, sp, #0xc
|
|
bl GF3dRender_DrawModel
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl RequestSwap3DBuffers
|
|
add sp, #0x3c
|
|
pop {r4, r5, pc}
|
|
.balign 4, 0
|
|
_021FDD34: .word ov15_022005CC
|
|
_021FDD38: .word ov15_022004F4
|
|
_021FDD3C: .word 0x00000615
|
|
_021FDD40: .word 0x00000808
|
|
_021FDD44: .word 0x0000091C
|
|
_021FDD48: .word 0x00000818
|
|
_021FDD4C: .word 0x0000081C
|
|
_021FDD50: .word 0x00000934
|
|
thumb_func_end ov15_021FDC88
|
|
|
|
thumb_func_start ov15_021FDD54
|
|
ov15_021FDD54: ; 0x021FDD54
|
|
mov r1, #1
|
|
ldr r2, [r0]
|
|
lsl r1, r1, #0xc
|
|
add r2, r2, r1
|
|
ldr r1, [r0, #8]
|
|
ldrh r1, [r1, #4]
|
|
lsl r1, r1, #0xc
|
|
cmp r2, r1
|
|
bge _021FDD6A
|
|
str r2, [r0]
|
|
bx lr
|
|
_021FDD6A:
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
bx lr
|
|
thumb_func_end ov15_021FDD54
|
|
|
|
thumb_func_start ov15_021FDD70
|
|
ov15_021FDD70: ; 0x021FDD70
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x1c
|
|
add r7, r0, #0
|
|
mov r0, #0xf
|
|
mov r1, #6
|
|
bl NARC_New
|
|
str r0, [sp, #0x10]
|
|
ldr r0, _021FDF14 ; =0x00000808
|
|
mov r1, #6
|
|
add r0, r7, r0
|
|
mov r2, #4
|
|
bl GF_ExpHeap_FndInitAllocator
|
|
ldr r0, _021FDF18 ; =0x0000081C
|
|
add r4, r7, r0
|
|
ldr r0, _021FDF1C ; =0x00000615
|
|
ldrb r0, [r7, r0]
|
|
cmp r0, #0
|
|
bne _021FDDA8
|
|
mov r0, #0x39
|
|
str r0, [sp, #8]
|
|
mov r0, #0x41
|
|
str r0, [sp, #4]
|
|
mov r0, #0x49
|
|
mov r1, #0x37
|
|
str r0, [sp]
|
|
b _021FDDB6
|
|
_021FDDA8:
|
|
mov r0, #0x4c
|
|
str r0, [sp, #8]
|
|
mov r0, #0x54
|
|
str r0, [sp, #4]
|
|
mov r0, #0x5c
|
|
mov r1, #0x4a
|
|
str r0, [sp]
|
|
_021FDDB6:
|
|
ldr r0, [sp, #0x10]
|
|
mov r2, #6
|
|
bl NARC_AllocAndReadWholeMember
|
|
add r1, r4, #0
|
|
add r2, r4, #0
|
|
str r0, [r4, #0x58]
|
|
add r0, r4, #0
|
|
add r1, #0x54
|
|
add r2, #0x58
|
|
bl GF3dRender_InitObjFromHeader
|
|
ldr r0, [r4, #0x58]
|
|
bl NNS_G3dGetTex
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r4, #0x54]
|
|
mov r1, #1
|
|
mov r2, #0x40
|
|
bl NNSi_G3dModifyMatFlag
|
|
ldr r0, [r4, #0x54]
|
|
mov r1, #1
|
|
mov r2, #0x80
|
|
bl NNSi_G3dModifyMatFlag
|
|
mov r1, #1
|
|
ldr r0, [r4, #0x54]
|
|
lsl r2, r1, #9
|
|
bl NNSi_G3dModifyMatFlag
|
|
mov r1, #1
|
|
ldr r0, [r4, #0x54]
|
|
lsl r2, r1, #0xa
|
|
bl NNSi_G3dModifyMatFlag
|
|
mov r2, #0x3f
|
|
ldr r0, [r4, #0x54]
|
|
mov r1, #1
|
|
lsl r2, r2, #0x18
|
|
bl NNSi_G3dModifyPolygonAttrMask
|
|
mov r6, #0
|
|
add r5, r4, #0
|
|
_021FDE0E:
|
|
ldr r1, [sp, #8]
|
|
ldr r0, [sp, #0x10]
|
|
add r1, r1, r6
|
|
mov r2, #6
|
|
bl NARC_AllocAndReadWholeMember
|
|
mov r1, #0
|
|
str r0, [r5, #0x5c]
|
|
bl NNS_G3dGetAnmByIdx
|
|
str r0, [sp, #0x14]
|
|
ldr r0, _021FDF14 ; =0x00000808
|
|
ldr r1, [sp, #0x14]
|
|
ldr r2, [r4, #0x54]
|
|
add r0, r7, r0
|
|
bl NNS_G3dAllocAnmObj
|
|
add r1, r5, #0
|
|
add r1, #0xa0
|
|
str r0, [r1]
|
|
add r0, r5, #0
|
|
add r0, #0xa0
|
|
ldr r0, [r0]
|
|
ldr r1, [sp, #0x14]
|
|
ldr r2, [r4, #0x54]
|
|
ldr r3, [sp, #0xc]
|
|
bl NNS_G3dAnmObjInit
|
|
ldr r1, [sp, #4]
|
|
ldr r0, [sp, #0x10]
|
|
add r1, r1, r6
|
|
mov r2, #6
|
|
bl NARC_AllocAndReadWholeMember
|
|
mov r1, #0
|
|
str r0, [r5, #0x7c]
|
|
bl NNS_G3dGetAnmByIdx
|
|
str r0, [sp, #0x18]
|
|
ldr r0, _021FDF14 ; =0x00000808
|
|
ldr r1, [sp, #0x18]
|
|
ldr r2, [r4, #0x54]
|
|
add r0, r7, r0
|
|
bl NNS_G3dAllocAnmObj
|
|
add r1, r5, #0
|
|
add r1, #0xc0
|
|
str r0, [r1]
|
|
add r0, r5, #0
|
|
add r0, #0xc0
|
|
ldr r0, [r0]
|
|
ldr r1, [sp, #0x18]
|
|
ldr r2, [r4, #0x54]
|
|
ldr r3, [sp, #0xc]
|
|
bl NNS_G3dAnmObjInit
|
|
add r6, r6, #1
|
|
add r5, r5, #4
|
|
cmp r6, #8
|
|
blo _021FDE0E
|
|
ldr r0, [sp, #0x10]
|
|
ldr r1, [sp]
|
|
mov r2, #6
|
|
bl NARC_AllocAndReadWholeMember
|
|
add r1, r4, #0
|
|
add r1, #0x9c
|
|
str r0, [r1]
|
|
add r0, r4, #0
|
|
add r0, #0x9c
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
bl NNS_G3dGetAnmByIdx
|
|
add r5, r0, #0
|
|
ldr r0, _021FDF14 ; =0x00000808
|
|
ldr r2, [r4, #0x54]
|
|
add r0, r7, r0
|
|
add r1, r5, #0
|
|
bl NNS_G3dAllocAnmObj
|
|
add r1, r4, #0
|
|
add r1, #0xe0
|
|
str r0, [r1]
|
|
add r0, r4, #0
|
|
add r0, #0xe0
|
|
ldr r0, [r0]
|
|
ldr r2, [r4, #0x54]
|
|
ldr r3, [sp, #0xc]
|
|
add r1, r5, #0
|
|
bl NNS_G3dAnmObjInit
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r7, r0]
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0xe4
|
|
str r1, [r0]
|
|
add r1, r4, #0
|
|
add r1, #0xe4
|
|
ldr r1, [r1]
|
|
add r0, r4, #0
|
|
lsl r1, r1, #2
|
|
add r1, r4, r1
|
|
add r1, #0xa0
|
|
ldr r1, [r1]
|
|
bl NNS_G3dRenderObjAddAnmObj
|
|
add r1, r4, #0
|
|
add r1, #0xe4
|
|
ldr r1, [r1]
|
|
add r0, r4, #0
|
|
lsl r1, r1, #2
|
|
add r1, r4, r1
|
|
add r1, #0xc0
|
|
ldr r1, [r1]
|
|
bl NNS_G3dRenderObjAddAnmObj
|
|
add r0, r4, #0
|
|
add r4, #0xe0
|
|
ldr r1, [r4]
|
|
bl NNS_G3dRenderObjAddAnmObj
|
|
ldr r0, [sp, #0x10]
|
|
bl NARC_Delete
|
|
add sp, #0x1c
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_021FDF14: .word 0x00000808
|
|
_021FDF18: .word 0x0000081C
|
|
_021FDF1C: .word 0x00000615
|
|
thumb_func_end ov15_021FDD70
|
|
|
|
thumb_func_start ov15_021FDF20
|
|
ov15_021FDF20: ; 0x021FDF20
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _021FDF80 ; =0x0000081C
|
|
ldr r7, _021FDF84 ; =0x00000808
|
|
add r0, r5, r0
|
|
str r0, [sp]
|
|
mov r6, #0
|
|
add r4, r0, #0
|
|
_021FDF30:
|
|
add r1, r4, #0
|
|
add r1, #0xa0
|
|
ldr r1, [r1]
|
|
add r0, r5, r7
|
|
bl NNS_G3dFreeAnmObj
|
|
add r1, r4, #0
|
|
add r1, #0xc0
|
|
ldr r1, [r1]
|
|
add r0, r5, r7
|
|
bl NNS_G3dFreeAnmObj
|
|
ldr r0, [r4, #0x5c]
|
|
bl FreeToHeap
|
|
ldr r0, [r4, #0x7c]
|
|
bl FreeToHeap
|
|
add r6, r6, #1
|
|
add r4, r4, #4
|
|
cmp r6, #8
|
|
blo _021FDF30
|
|
ldr r1, [sp]
|
|
ldr r0, _021FDF84 ; =0x00000808
|
|
add r1, #0xe0
|
|
ldr r1, [r1]
|
|
add r0, r5, r0
|
|
bl NNS_G3dFreeAnmObj
|
|
ldr r0, [sp]
|
|
add r0, #0x9c
|
|
ldr r0, [r0]
|
|
bl FreeToHeap
|
|
ldr r0, [sp]
|
|
ldr r0, [r0, #0x58]
|
|
bl FreeToHeap
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021FDF80: .word 0x0000081C
|
|
_021FDF84: .word 0x00000808
|
|
thumb_func_end ov15_021FDF20
|
|
|
|
thumb_func_start ov15_021FDF88
|
|
ov15_021FDF88: ; 0x021FDF88
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _021FE01C ; =0x0000081C
|
|
add r4, r5, r0
|
|
add r1, r4, #0
|
|
add r1, #0xe4
|
|
ldr r1, [r1]
|
|
add r0, r4, #0
|
|
lsl r1, r1, #2
|
|
add r1, r4, r1
|
|
add r1, #0xc0
|
|
ldr r1, [r1]
|
|
bl NNS_G3dRenderObjRemoveAnmObj
|
|
add r1, r4, #0
|
|
add r1, #0xe4
|
|
ldr r1, [r1]
|
|
add r0, r4, #0
|
|
lsl r1, r1, #2
|
|
add r1, r4, r1
|
|
add r1, #0xa0
|
|
ldr r1, [r1]
|
|
bl NNS_G3dRenderObjRemoveAnmObj
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0xe4
|
|
str r1, [r0]
|
|
add r1, r4, #0
|
|
add r1, #0xe4
|
|
ldr r1, [r1]
|
|
mov r0, #0
|
|
lsl r1, r1, #2
|
|
add r1, r4, r1
|
|
add r1, #0xa0
|
|
ldr r1, [r1]
|
|
str r0, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0xe4
|
|
ldr r1, [r1]
|
|
lsl r1, r1, #2
|
|
add r1, r4, r1
|
|
add r1, #0xc0
|
|
ldr r1, [r1]
|
|
str r0, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0xe0
|
|
ldr r1, [r1]
|
|
str r0, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0xe4
|
|
ldr r1, [r1]
|
|
add r0, r4, #0
|
|
lsl r1, r1, #2
|
|
add r1, r4, r1
|
|
add r1, #0xa0
|
|
ldr r1, [r1]
|
|
bl NNS_G3dRenderObjAddAnmObj
|
|
add r1, r4, #0
|
|
add r1, #0xe4
|
|
ldr r1, [r1]
|
|
add r0, r4, #0
|
|
lsl r1, r1, #2
|
|
add r1, r4, r1
|
|
add r1, #0xc0
|
|
ldr r1, [r1]
|
|
bl NNS_G3dRenderObjAddAnmObj
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021FE01C: .word 0x0000081C
|
|
thumb_func_end ov15_021FDF88
|
|
|
|
thumb_func_start ov15_021FE020
|
|
ov15_021FE020: ; 0x021FE020
|
|
push {r3, r4, lr}
|
|
sub sp, #0x14
|
|
add r4, r0, #0
|
|
mov r0, #0x12
|
|
str r0, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r0, #6
|
|
str r0, [sp, #8]
|
|
mov r0, #4
|
|
str r0, [sp, #0xc]
|
|
mov r2, #1
|
|
str r2, [sp, #0x10]
|
|
ldr r0, [r4]
|
|
add r1, r4, #4
|
|
mov r3, #0
|
|
bl AddWindowParameterized
|
|
mov r0, #0xd
|
|
str r0, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xc1
|
|
str r0, [sp, #0x10]
|
|
add r1, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #0x14
|
|
mov r2, #1
|
|
mov r3, #0
|
|
bl AddWindowParameterized
|
|
mov r1, #1
|
|
str r1, [sp]
|
|
mov r0, #0x1b
|
|
str r0, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0xc]
|
|
str r1, [sp, #0x10]
|
|
add r1, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #0x24
|
|
mov r2, #4
|
|
bl AddWindowParameterized
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #0x1b
|
|
str r0, [sp, #4]
|
|
mov r2, #4
|
|
add r1, r4, #0
|
|
str r2, [sp, #8]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x53
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r4]
|
|
add r1, #0x34
|
|
mov r3, #2
|
|
bl AddWindowParameterized
|
|
mov r0, #0xd
|
|
str r0, [sp]
|
|
mov r0, #0xc
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xdb
|
|
str r0, [sp, #0x10]
|
|
add r1, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #0x44
|
|
mov r2, #1
|
|
mov r3, #0x13
|
|
bl AddWindowParameterized
|
|
mov r0, #0xc
|
|
str r0, [sp]
|
|
mov r0, #0xb
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
str r0, [sp, #0xc]
|
|
ldr r0, _021FE150 ; =0x0000012B
|
|
add r1, r4, #0
|
|
str r0, [sp, #0x10]
|
|
mov r2, #1
|
|
ldr r0, [r4]
|
|
add r1, #0x54
|
|
add r3, r2, #0
|
|
bl AddWindowParameterized
|
|
mov r0, #0x15
|
|
str r0, [sp]
|
|
mov r0, #7
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x37
|
|
str r0, [sp, #0x10]
|
|
add r1, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #0x64
|
|
mov r2, #4
|
|
mov r3, #0xa
|
|
bl AddWindowParameterized
|
|
add r0, r4, #0
|
|
add r0, #0x64
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
mov r0, #0x15
|
|
str r0, [sp]
|
|
mov r0, #7
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x45
|
|
str r0, [sp, #0x10]
|
|
add r1, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #0x74
|
|
mov r2, #4
|
|
mov r3, #0x18
|
|
bl AddWindowParameterized
|
|
add r0, r4, #0
|
|
add r0, #0x74
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
mov r2, #0
|
|
add r1, r2, #0
|
|
_021FE13E:
|
|
add r0, r4, #0
|
|
add r0, #0xb4
|
|
add r2, r2, #1
|
|
add r4, #0x10
|
|
str r1, [r0]
|
|
cmp r2, #0x18
|
|
blt _021FE13E
|
|
add sp, #0x14
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
_021FE150: .word 0x0000012B
|
|
thumb_func_end ov15_021FE020
|
|
|
|
thumb_func_start ov15_021FE154
|
|
ov15_021FE154: ; 0x021FE154
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
mov r5, #0
|
|
add r4, r6, #4
|
|
_021FE15C:
|
|
lsl r0, r5, #4
|
|
add r0, r4, r0
|
|
bl RemoveWindow
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x10
|
|
lsr r5, r0, #0x10
|
|
cmp r5, #8
|
|
blo _021FE15C
|
|
add r0, r6, #0
|
|
bl ov15_021FE3E0
|
|
add r0, r6, #0
|
|
bl ov15_021FE1D0
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov15_021FE154
|
|
|
|
thumb_func_start ov15_021FE17C
|
|
ov15_021FE17C: ; 0x021FE17C
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r7, r0, #0
|
|
add r0, #0xb4
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _021FE1C8
|
|
add r5, r7, #0
|
|
ldr r4, _021FE1CC ; =ov15_02200908
|
|
mov r6, #0
|
|
add r5, #0xb4
|
|
_021FE192:
|
|
ldr r0, [r4, #4]
|
|
add r1, r5, #0
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
mov r0, #0xb
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r4, #8]
|
|
mov r2, #4
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #0x10]
|
|
ldr r3, [r4]
|
|
ldr r0, [r7]
|
|
lsl r3, r3, #0x18
|
|
lsr r3, r3, #0x18
|
|
bl AddWindowParameterized
|
|
add r6, r6, #1
|
|
add r4, #0xc
|
|
add r5, #0x10
|
|
cmp r6, #0xc
|
|
blt _021FE192
|
|
_021FE1C8:
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021FE1CC: .word ov15_02200908
|
|
thumb_func_end ov15_021FE17C
|
|
|
|
thumb_func_start ov15_021FE1D0
|
|
ov15_021FE1D0: ; 0x021FE1D0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r0, #0xb4
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _021FE200
|
|
mov r6, #0
|
|
add r4, r5, #0
|
|
add r4, #0xb4
|
|
add r7, r6, #0
|
|
_021FE1E4:
|
|
add r0, r4, #0
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
add r0, r4, #0
|
|
bl RemoveWindow
|
|
add r0, r5, #0
|
|
add r0, #0xb4
|
|
add r6, r6, #1
|
|
str r7, [r0]
|
|
add r4, #0x10
|
|
add r5, #0x10
|
|
cmp r6, #0xc
|
|
blt _021FE1E4
|
|
_021FE200:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FE1D0
|
|
|
|
thumb_func_start ov15_021FE204
|
|
ov15_021FE204: ; 0x021FE204
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x20
|
|
mov r3, #0x5d
|
|
lsl r3, r3, #2
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [r0, r3]
|
|
cmp r0, #0
|
|
beq _021FE216
|
|
b _021FE3BC
|
|
_021FE216:
|
|
mov r0, #7
|
|
str r0, [sp]
|
|
mov r0, #0xb
|
|
str r0, [sp, #4]
|
|
mov r2, #4
|
|
str r2, [sp, #8]
|
|
str r0, [sp, #0xc]
|
|
ldr r0, _021FE3C0 ; =0x000002CF
|
|
ldr r1, [sp, #0x14]
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sp, #0x14]
|
|
add r1, r1, r3
|
|
ldr r0, [r0]
|
|
mov r3, #0xc
|
|
bl AddWindowParameterized
|
|
mov r1, #0x5d
|
|
ldr r0, [sp, #0x14]
|
|
lsl r1, r1, #2
|
|
add r0, r0, r1
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [sp, #0x14]
|
|
ldr r4, _021FE3C4 ; =0x0000031B
|
|
str r0, [sp, #0x18]
|
|
add r0, #0xb4
|
|
ldr r5, _021FE3C8 ; =ov15_022008E8
|
|
mov r6, #0
|
|
str r0, [sp, #0x18]
|
|
_021FE252:
|
|
add r0, r6, #0
|
|
add r0, #0xd
|
|
lsl r7, r0, #4
|
|
ldr r0, [r5, #4]
|
|
ldr r1, [sp, #0x18]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
mov r0, #0xa
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0xc]
|
|
lsl r0, r4, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sp, #0x14]
|
|
ldr r3, [r5]
|
|
ldr r0, [r0]
|
|
lsl r3, r3, #0x18
|
|
add r1, r1, r7
|
|
mov r2, #4
|
|
lsr r3, r3, #0x18
|
|
bl AddWindowParameterized
|
|
ldr r0, [sp, #0x18]
|
|
mov r1, #0
|
|
add r0, r0, r7
|
|
bl FillWindowPixelBuffer
|
|
add r6, r6, #1
|
|
add r4, #0x14
|
|
add r5, #8
|
|
cmp r6, #4
|
|
blt _021FE252
|
|
ldr r0, [sp, #0x14]
|
|
ldr r4, _021FE3CC ; =0x000002FB
|
|
str r0, [sp, #0x1c]
|
|
add r0, #0xb4
|
|
ldr r5, _021FE3D0 ; =ov15_022008D0
|
|
mov r6, #0
|
|
str r0, [sp, #0x1c]
|
|
_021FE2A8:
|
|
add r0, r6, #0
|
|
add r0, #0x11
|
|
lsl r7, r0, #4
|
|
ldr r0, [r5, #4]
|
|
ldr r1, [sp, #0x1c]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
mov r0, #3
|
|
str r0, [sp, #8]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0xc]
|
|
lsl r0, r4, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sp, #0x14]
|
|
ldr r3, [r5]
|
|
ldr r0, [r0]
|
|
lsl r3, r3, #0x18
|
|
add r1, r1, r7
|
|
mov r2, #4
|
|
lsr r3, r3, #0x18
|
|
bl AddWindowParameterized
|
|
ldr r0, [sp, #0x1c]
|
|
mov r1, #0
|
|
add r0, r0, r7
|
|
bl FillWindowPixelBuffer
|
|
add r6, r6, #1
|
|
add r4, r4, #6
|
|
add r5, #8
|
|
cmp r6, #3
|
|
blt _021FE2A8
|
|
mov r0, #0x15
|
|
str r0, [sp]
|
|
mov r0, #7
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0xc]
|
|
ldr r0, _021FE3D4 ; =0x0000030D
|
|
mov r2, #0x7d
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sp, #0x14]
|
|
ldr r1, [sp, #0x14]
|
|
lsl r2, r2, #2
|
|
add r1, r1, r2
|
|
ldr r0, [r0]
|
|
mov r2, #4
|
|
mov r3, #0xe
|
|
bl AddWindowParameterized
|
|
mov r1, #0x7d
|
|
ldr r0, [sp, #0x14]
|
|
lsl r1, r1, #2
|
|
add r0, r0, r1
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #0x12
|
|
str r0, [sp, #4]
|
|
mov r2, #4
|
|
mov r4, #0x81
|
|
str r2, [sp, #8]
|
|
mov r3, #0xb
|
|
ldr r0, _021FE3C4 ; =0x0000031B
|
|
str r3, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sp, #0x14]
|
|
ldr r1, [sp, #0x14]
|
|
lsl r4, r4, #2
|
|
ldr r0, [r0]
|
|
add r1, r1, r4
|
|
bl AddWindowParameterized
|
|
ldr r0, [sp, #0x14]
|
|
add r1, r4, #0
|
|
add r0, r0, r1
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #9
|
|
str r0, [sp, #4]
|
|
mov r2, #4
|
|
str r2, [sp, #8]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0xc]
|
|
ldr r0, _021FE3D8 ; =0x00000363
|
|
ldr r1, [sp, #0x14]
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sp, #0x14]
|
|
add r4, #0x10
|
|
ldr r0, [r0]
|
|
add r1, r1, r4
|
|
bl AddWindowParameterized
|
|
mov r1, #0x85
|
|
ldr r0, [sp, #0x14]
|
|
lsl r1, r1, #2
|
|
add r0, r0, r1
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
mov r0, #0xe
|
|
str r0, [sp]
|
|
mov r0, #8
|
|
str r0, [sp, #4]
|
|
mov r0, #3
|
|
str r0, [sp, #8]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0xc]
|
|
ldr r0, _021FE3DC ; =0x00000387
|
|
mov r2, #0x89
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sp, #0x14]
|
|
ldr r1, [sp, #0x14]
|
|
lsl r2, r2, #2
|
|
add r1, r1, r2
|
|
ldr r0, [r0]
|
|
mov r2, #4
|
|
mov r3, #0x18
|
|
bl AddWindowParameterized
|
|
mov r1, #0x89
|
|
ldr r0, [sp, #0x14]
|
|
lsl r1, r1, #2
|
|
add r0, r0, r1
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
_021FE3BC:
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021FE3C0: .word 0x000002CF
|
|
_021FE3C4: .word 0x0000031B
|
|
_021FE3C8: .word ov15_022008E8
|
|
_021FE3CC: .word 0x000002FB
|
|
_021FE3D0: .word ov15_022008D0
|
|
_021FE3D4: .word 0x0000030D
|
|
_021FE3D8: .word 0x00000363
|
|
_021FE3DC: .word 0x00000387
|
|
thumb_func_end ov15_021FE204
|
|
|
|
thumb_func_start ov15_021FE3E0
|
|
ov15_021FE3E0: ; 0x021FE3E0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r1, #0x5d
|
|
lsl r1, r1, #2
|
|
str r0, [sp]
|
|
ldr r0, [r0, r1]
|
|
cmp r0, #0
|
|
beq _021FE4C6
|
|
ldr r5, [sp]
|
|
mov r4, #0
|
|
add r6, r5, #0
|
|
add r6, #0xb4
|
|
_021FE3F6:
|
|
add r0, r4, #0
|
|
add r0, #0x11
|
|
lsl r7, r0, #4
|
|
add r0, r6, r7
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
add r0, r6, r7
|
|
bl RemoveWindow
|
|
mov r0, #0x71
|
|
mov r1, #0
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
add r4, r4, #1
|
|
add r5, #0x10
|
|
cmp r4, #3
|
|
blt _021FE3F6
|
|
add r1, r0, #0
|
|
ldr r0, [sp]
|
|
add r1, #0x60
|
|
add r0, r0, r1
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
mov r1, #0x89
|
|
ldr r0, [sp]
|
|
lsl r1, r1, #2
|
|
add r0, r0, r1
|
|
bl RemoveWindow
|
|
mov r1, #0x89
|
|
ldr r0, [sp]
|
|
mov r2, #0
|
|
lsl r1, r1, #2
|
|
str r2, [r0, r1]
|
|
sub r1, #0x10
|
|
add r0, r0, r1
|
|
bl RemoveWindow
|
|
mov r1, #0x85
|
|
ldr r0, [sp]
|
|
mov r2, #0
|
|
lsl r1, r1, #2
|
|
str r2, [r0, r1]
|
|
sub r1, #0x10
|
|
add r0, r0, r1
|
|
bl RemoveWindow
|
|
mov r1, #0x81
|
|
ldr r0, [sp]
|
|
mov r2, #0
|
|
lsl r1, r1, #2
|
|
str r2, [r0, r1]
|
|
sub r1, #0x10
|
|
add r0, r0, r1
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
mov r1, #0x7d
|
|
ldr r0, [sp]
|
|
lsl r1, r1, #2
|
|
add r0, r0, r1
|
|
bl RemoveWindow
|
|
ldr r0, [sp]
|
|
mov r1, #0x7d
|
|
add r6, r0, #0
|
|
mov r5, #0
|
|
lsl r1, r1, #2
|
|
str r5, [r0, r1]
|
|
add r4, r0, #0
|
|
add r6, #0xb4
|
|
_021FE482:
|
|
add r0, r5, #0
|
|
add r0, #0xd
|
|
lsl r7, r0, #4
|
|
add r0, r6, r7
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
add r0, r6, r7
|
|
bl RemoveWindow
|
|
mov r0, #0x61
|
|
mov r1, #0
|
|
lsl r0, r0, #2
|
|
str r1, [r4, r0]
|
|
add r5, r5, #1
|
|
add r4, #0x10
|
|
cmp r5, #4
|
|
blt _021FE482
|
|
add r1, r0, #0
|
|
ldr r0, [sp]
|
|
sub r1, #0x10
|
|
add r0, r0, r1
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
mov r1, #0x5d
|
|
ldr r0, [sp]
|
|
lsl r1, r1, #2
|
|
add r0, r0, r1
|
|
bl RemoveWindow
|
|
mov r1, #0x5d
|
|
ldr r0, [sp]
|
|
mov r2, #0
|
|
lsl r1, r1, #2
|
|
str r2, [r0, r1]
|
|
_021FE4C6:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov15_021FE3E0
|
|
|
|
thumb_func_start ov15_021FE4C8
|
|
ov15_021FE4C8: ; 0x021FE4C8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
mov r0, #1
|
|
mov r1, #0x1b
|
|
mov r2, #0xe1
|
|
mov r3, #6
|
|
bl NewMsgDataFromNarc
|
|
ldr r7, _021FE500 ; =0x000005F4
|
|
add r6, r0, #0
|
|
mov r4, #0
|
|
_021FE4DE:
|
|
add r0, r6, #0
|
|
add r1, r4, #0
|
|
bl NewString_ReadMsgData
|
|
lsl r1, r4, #2
|
|
add r1, r5, r1
|
|
str r0, [r1, r7]
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x10
|
|
lsr r4, r0, #0x10
|
|
cmp r4, #8
|
|
blo _021FE4DE
|
|
add r0, r6, #0
|
|
bl DestroyMsgData
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021FE500: .word 0x000005F4
|
|
thumb_func_end ov15_021FE4C8
|
|
|
|
thumb_func_start ov15_021FE504
|
|
ov15_021FE504: ; 0x021FE504
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _021FE524 ; =0x000005F4
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
_021FE50C:
|
|
lsl r0, r4, #2
|
|
add r0, r5, r0
|
|
ldr r0, [r0, r6]
|
|
bl String_Delete
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x10
|
|
lsr r4, r0, #0x10
|
|
cmp r4, #8
|
|
blo _021FE50C
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021FE524: .word 0x000005F4
|
|
thumb_func_end ov15_021FE504
|
|
|
|
thumb_func_start ov15_021FE528
|
|
ov15_021FE528: ; 0x021FE528
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
mov r6, #0xd
|
|
mov r7, #1
|
|
_021FE534:
|
|
str r6, [sp]
|
|
str r7, [sp, #4]
|
|
add r2, r4, #0
|
|
add r2, #0xcd
|
|
lsl r2, r2, #0x10
|
|
lsl r3, r4, #0x18
|
|
str r7, [sp, #8]
|
|
mov r0, #4
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r5]
|
|
mov r1, #3
|
|
lsr r2, r2, #0x10
|
|
lsr r3, r3, #0x18
|
|
bl FillBgTilemapRect
|
|
mov r0, #0xe
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
add r2, r4, #0
|
|
str r0, [sp, #8]
|
|
mov r0, #4
|
|
add r2, #0xf1
|
|
str r0, [sp, #0xc]
|
|
lsl r2, r2, #0x10
|
|
lsl r3, r4, #0x18
|
|
ldr r0, [r5]
|
|
mov r1, #3
|
|
lsr r2, r2, #0x10
|
|
lsr r3, r3, #0x18
|
|
bl FillBgTilemapRect
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x10
|
|
lsr r4, r0, #0x10
|
|
cmp r4, #0xc
|
|
blo _021FE534
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FE528
|
|
|
|
thumb_func_start ov15_021FE584
|
|
ov15_021FE584: ; 0x021FE584
|
|
push {r3, r4, r5, lr}
|
|
lsl r1, r1, #0x10
|
|
add r4, r2, #0
|
|
lsr r1, r1, #0x10
|
|
mov r2, #0
|
|
add r5, r0, #0
|
|
bl ov15_021F9D60
|
|
add r2, r0, #0
|
|
mov r0, #0xbd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r1, r4, #0
|
|
bl BufferItemName
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov15_021FE584
|
|
|
|
thumb_func_start ov15_021FE5A4
|
|
ov15_021FE5A4: ; 0x021FE5A4
|
|
push {r3, r4, r5, lr}
|
|
lsl r1, r1, #0x10
|
|
add r4, r2, #0
|
|
lsr r1, r1, #0x10
|
|
mov r2, #0
|
|
add r5, r0, #0
|
|
bl ov15_021F9D60
|
|
add r2, r0, #0
|
|
mov r0, #0xbd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r1, r4, #0
|
|
bl BufferItemNamePlural
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov15_021FE5A4
|
|
|
|
thumb_func_start ov15_021FE5C4
|
|
ov15_021FE5C4: ; 0x021FE5C4
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
ldr r0, _021FE618 ; =0x0000FFFF
|
|
add r6, r1, #0
|
|
cmp r6, r0
|
|
beq _021FE5E6
|
|
mov r0, #0x82
|
|
mov r1, #6
|
|
bl String_New
|
|
add r1, r6, #0
|
|
mov r2, #6
|
|
add r4, r0, #0
|
|
bl GetItemDescIntoString
|
|
b _021FE5F4
|
|
_021FE5E6:
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x61
|
|
bl NewString_ReadMsgData
|
|
add r4, r0, #0
|
|
_021FE5F4:
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FE61C ; =0x000F0E00
|
|
add r2, r4, #0
|
|
str r0, [sp, #8]
|
|
add r0, r5, #4
|
|
mov r3, #0x14
|
|
str r1, [sp, #0xc]
|
|
bl AddTextPrinterParameterizedWithColor
|
|
add r0, r4, #0
|
|
bl String_Delete
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021FE618: .word 0x0000FFFF
|
|
_021FE61C: .word 0x000F0E00
|
|
thumb_func_end ov15_021FE5C4
|
|
|
|
thumb_func_start ov15_021FE620
|
|
ov15_021FE620: ; 0x021FE620
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r5, r0, #0
|
|
add r4, r5, #0
|
|
add r0, r1, #0
|
|
add r4, #0x14
|
|
bl TMHMGetMove
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x65
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0
|
|
add r6, r0, #0
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FE860 ; =0x000F0E00
|
|
add r2, r6, #0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
add r3, r1, #0
|
|
str r1, [sp, #0xc]
|
|
bl AddTextPrinterParameterizedWithColor
|
|
add r0, r6, #0
|
|
bl String_Delete
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x59
|
|
bl NewString_ReadMsgData
|
|
add r6, r0, #0
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FE860 ; =0x000F0E00
|
|
mov r1, #0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
add r2, r6, #0
|
|
add r3, r1, #0
|
|
str r1, [sp, #0xc]
|
|
bl AddTextPrinterParameterizedWithColor
|
|
add r0, r6, #0
|
|
bl String_Delete
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x5c
|
|
bl NewString_ReadMsgData
|
|
add r6, r0, #0
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FE860 ; =0x000F0E00
|
|
add r2, r6, #0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
mov r3, #0x48
|
|
str r1, [sp, #0xc]
|
|
bl AddTextPrinterParameterizedWithColor
|
|
add r0, r6, #0
|
|
bl String_Delete
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x5a
|
|
bl NewString_ReadMsgData
|
|
add r6, r0, #0
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FE860 ; =0x000F0E00
|
|
add r2, r6, #0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
mov r3, #0xa8
|
|
str r1, [sp, #0xc]
|
|
bl AddTextPrinterParameterizedWithColor
|
|
add r0, r6, #0
|
|
bl String_Delete
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x5b
|
|
bl NewString_ReadMsgData
|
|
add r6, r0, #0
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FE860 ; =0x000F0E00
|
|
mov r1, #0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
add r2, r6, #0
|
|
mov r3, #0xa8
|
|
str r1, [sp, #0xc]
|
|
bl AddTextPrinterParameterizedWithColor
|
|
add r0, r6, #0
|
|
bl String_Delete
|
|
ldr r0, [sp, #0x10]
|
|
mov r1, #0
|
|
bl GetMoveMaxPP
|
|
add r7, r0, #0
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x5d
|
|
bl NewString_ReadMsgData
|
|
add r6, r0, #0
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #0xbd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
add r2, r7, #0
|
|
mov r3, #2
|
|
bl BufferIntegerAsString
|
|
mov r0, #0xbd
|
|
ldr r1, _021FE864 ; =0x000005E4
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5, r1]
|
|
add r2, r6, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r6, #0
|
|
bl String_Delete
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FE860 ; =0x000F0E00
|
|
mov r1, #0
|
|
str r0, [sp, #8]
|
|
ldr r2, _021FE864 ; =0x000005E4
|
|
str r1, [sp, #0xc]
|
|
ldr r2, [r5, r2]
|
|
add r0, r4, #0
|
|
mov r3, #0x30
|
|
bl AddTextPrinterParameterizedWithColor
|
|
ldr r0, [sp, #0x10]
|
|
mov r1, #2
|
|
bl GetMoveAttr
|
|
lsl r0, r0, #0x10
|
|
lsr r7, r0, #0x10
|
|
cmp r7, #1
|
|
bhi _021FE790
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x19
|
|
bl NewString_ReadMsgData
|
|
b _021FE79C
|
|
_021FE790:
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x5e
|
|
bl NewString_ReadMsgData
|
|
_021FE79C:
|
|
mov r1, #0
|
|
add r6, r0, #0
|
|
str r1, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0xbd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r2, r7, #0
|
|
mov r3, #3
|
|
bl BufferIntegerAsString
|
|
mov r0, #0xbd
|
|
ldr r1, _021FE864 ; =0x000005E4
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5, r1]
|
|
add r2, r6, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r6, #0
|
|
bl String_Delete
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FE860 ; =0x000F0E00
|
|
ldr r2, _021FE864 ; =0x000005E4
|
|
str r0, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
ldr r2, [r5, r2]
|
|
add r0, r4, #0
|
|
mov r3, #0xe8
|
|
bl AddTextPrinterParameterizedWithColor
|
|
ldr r0, [sp, #0x10]
|
|
mov r1, #4
|
|
bl GetMoveAttr
|
|
lsl r0, r0, #0x10
|
|
lsr r7, r0, #0x10
|
|
bne _021FE800
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x19
|
|
bl NewString_ReadMsgData
|
|
b _021FE80C
|
|
_021FE800:
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x5e
|
|
bl NewString_ReadMsgData
|
|
_021FE80C:
|
|
mov r1, #0
|
|
add r6, r0, #0
|
|
str r1, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0xbd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r2, r7, #0
|
|
mov r3, #3
|
|
bl BufferIntegerAsString
|
|
mov r0, #0xbd
|
|
ldr r1, _021FE864 ; =0x000005E4
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5, r1]
|
|
add r2, r6, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r6, #0
|
|
bl String_Delete
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FE860 ; =0x000F0E00
|
|
mov r1, #0
|
|
str r0, [sp, #8]
|
|
ldr r2, _021FE864 ; =0x000005E4
|
|
str r1, [sp, #0xc]
|
|
ldr r2, [r5, r2]
|
|
add r0, r4, #0
|
|
mov r3, #0xe8
|
|
bl AddTextPrinterParameterizedWithColor
|
|
add r0, r4, #0
|
|
bl ScheduleWindowCopyToVram
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021FE860: .word 0x000F0E00
|
|
_021FE864: .word 0x000005E4
|
|
thumb_func_end ov15_021FE620
|
|
|
|
thumb_func_start ov15_021FE868
|
|
ov15_021FE868: ; 0x021FE868
|
|
ldr r3, _021FE870 ; =ClearWindowTilemapAndScheduleTransfer
|
|
add r0, #0x14
|
|
bx r3
|
|
nop
|
|
_021FE870: .word ClearWindowTilemapAndScheduleTransfer
|
|
thumb_func_end ov15_021FE868
|
|
|
|
thumb_func_start ov15_021FE874
|
|
ov15_021FE874: ; 0x021FE874
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x27
|
|
bl NewString_ReadMsgData
|
|
ldr r1, _021FE89C ; =0x000005E8
|
|
str r0, [r4, r1]
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x26
|
|
bl NewString_ReadMsgData
|
|
ldr r1, _021FE8A0 ; =0x000005EC
|
|
str r0, [r4, r1]
|
|
pop {r4, pc}
|
|
nop
|
|
_021FE89C: .word 0x000005E8
|
|
_021FE8A0: .word 0x000005EC
|
|
thumb_func_end ov15_021FE874
|
|
|
|
thumb_func_start ov15_021FE8A4
|
|
ov15_021FE8A4: ; 0x021FE8A4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021FE8BC ; =0x000005E8
|
|
ldr r0, [r4, r0]
|
|
bl String_Delete
|
|
ldr r0, _021FE8C0 ; =0x000005EC
|
|
ldr r0, [r4, r0]
|
|
bl String_Delete
|
|
pop {r4, pc}
|
|
nop
|
|
_021FE8BC: .word 0x000005E8
|
|
_021FE8C0: .word 0x000005EC
|
|
thumb_func_end ov15_021FE8A4
|
|
|
|
thumb_func_start ov15_021FE8C4
|
|
ov15_021FE8C4: ; 0x021FE8C4
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r0, #0xa
|
|
mov r1, #6
|
|
bl String_New
|
|
mov r1, #0
|
|
add r4, r0, #0
|
|
str r1, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0xbd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r2, r6, #0
|
|
mov r3, #3
|
|
bl BufferIntegerAsString
|
|
mov r0, #0xbd
|
|
ldr r2, _021FE910 ; =0x000005EC
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
ldr r2, [r5, r2]
|
|
add r1, r4, #0
|
|
bl StringExpandPlaceholders
|
|
mov r0, #0
|
|
add r1, r4, #0
|
|
add r2, r0, #0
|
|
bl FontID_String_GetWidth
|
|
add r0, r4, #0
|
|
bl String_Delete
|
|
add sp, #8
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021FE910: .word 0x000005EC
|
|
thumb_func_end ov15_021FE8C4
|
|
|
|
thumb_func_start ov15_021FE914
|
|
ov15_021FE914: ; 0x021FE914
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r7, r2, #0
|
|
add r6, r1, #0
|
|
add r5, r0, #0
|
|
mov r0, #0x69
|
|
ldrh r1, [r7]
|
|
lsl r0, r0, #2
|
|
add r4, r3, #0
|
|
cmp r1, r0
|
|
bhs _021FE95E
|
|
sub r0, #0x5d
|
|
sub r0, r1, r0
|
|
mov r1, #2
|
|
lsl r0, r0, #0x10
|
|
str r1, [sp]
|
|
lsr r2, r0, #0x10
|
|
str r6, [sp, #4]
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #5
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xbb
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r3, r1, #0
|
|
bl sub_0200CE7C
|
|
lsl r2, r4, #0x10
|
|
ldrh r1, [r7, #2]
|
|
ldr r3, _021FE98C ; =0x00010200
|
|
add r0, r5, #0
|
|
lsr r2, r2, #0x10
|
|
bl ov15_021FE8C4
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021FE95E:
|
|
sub r0, r0, #1
|
|
sub r0, r1, r0
|
|
lsl r0, r0, #0x10
|
|
lsr r1, r0, #0x10
|
|
str r6, [sp]
|
|
mov r0, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r4, #5
|
|
str r0, [sp, #8]
|
|
mov r0, #0xbb
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r2, #2
|
|
mov r3, #1
|
|
bl PrintUIntOnWindow
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
mov r2, #0x10
|
|
bl ov15_021FE9B0
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021FE98C: .word 0x00010200
|
|
thumb_func_end ov15_021FE914
|
|
|
|
thumb_func_start ov15_021FE990
|
|
ov15_021FE990: ; 0x021FE990
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
mov r1, #0x91
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
mov r1, #0x25
|
|
mov r2, #6
|
|
bl NARC_AllocAndReadWholeMember
|
|
add r1, r4, #0
|
|
add r5, r0, #0
|
|
bl NNS_G2dGetUnpackedBGCharacterData
|
|
add r0, r5, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FE990
|
|
|
|
thumb_func_start ov15_021FE9B0
|
|
ov15_021FE9B0: ; 0x021FE9B0
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x1c
|
|
add r5, r1, #0
|
|
add r1, sp, #0x18
|
|
add r4, r2, #0
|
|
bl ov15_021FE990
|
|
add r6, r0, #0
|
|
mov r0, #0x68
|
|
str r0, [sp]
|
|
mov r0, #0x10
|
|
mov r2, #0
|
|
str r0, [sp, #4]
|
|
lsl r1, r4, #0x10
|
|
str r2, [sp, #8]
|
|
lsr r1, r1, #0x10
|
|
str r1, [sp, #0xc]
|
|
mov r1, #0x18
|
|
str r1, [sp, #0x10]
|
|
str r0, [sp, #0x14]
|
|
ldr r1, [sp, #0x18]
|
|
add r0, r5, #0
|
|
ldr r1, [r1, #0x14]
|
|
add r3, r2, #0
|
|
bl BlitBitmapRectToWindow
|
|
mov r0, #6
|
|
add r1, r6, #0
|
|
bl FreeToHeapExplicit
|
|
add sp, #0x1c
|
|
pop {r3, r4, r5, r6, pc}
|
|
thumb_func_end ov15_021FE9B0
|
|
|
|
thumb_func_start ov15_021FE9F0
|
|
ov15_021FE9F0: ; 0x021FE9F0
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x1c
|
|
add r5, r1, #0
|
|
add r1, sp, #0x18
|
|
add r4, r2, #0
|
|
add r6, r3, #0
|
|
bl ov15_021FE990
|
|
add r7, r0, #0
|
|
cmp r6, #0
|
|
bne _021FEA2C
|
|
mov r0, #0x68
|
|
str r0, [sp]
|
|
mov r0, #0x10
|
|
lsl r1, r4, #0x10
|
|
str r0, [sp, #4]
|
|
mov r3, #0
|
|
str r3, [sp, #8]
|
|
lsr r1, r1, #0x10
|
|
str r1, [sp, #0xc]
|
|
mov r1, #0x28
|
|
str r1, [sp, #0x10]
|
|
str r0, [sp, #0x14]
|
|
ldr r1, [sp, #0x18]
|
|
add r0, r5, #0
|
|
ldr r1, [r1, #0x14]
|
|
mov r2, #0x18
|
|
bl BlitBitmapRectToWindow
|
|
b _021FEA50
|
|
_021FEA2C:
|
|
mov r0, #0x68
|
|
str r0, [sp]
|
|
mov r0, #0x10
|
|
lsl r1, r4, #0x10
|
|
str r0, [sp, #4]
|
|
mov r3, #0
|
|
str r3, [sp, #8]
|
|
lsr r1, r1, #0x10
|
|
str r1, [sp, #0xc]
|
|
mov r1, #0x28
|
|
str r1, [sp, #0x10]
|
|
str r0, [sp, #0x14]
|
|
ldr r1, [sp, #0x18]
|
|
add r0, r5, #0
|
|
ldr r1, [r1, #0x14]
|
|
mov r2, #0x40
|
|
bl BlitBitmapRectToWindow
|
|
_021FEA50:
|
|
mov r0, #6
|
|
add r1, r7, #0
|
|
bl FreeToHeapExplicit
|
|
add sp, #0x1c
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end ov15_021FE9F0
|
|
|
|
thumb_func_start ov15_021FEA5C
|
|
ov15_021FEA5C: ; 0x021FEA5C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl NewString_ReadMsgData
|
|
mov r1, #3
|
|
lsl r1, r1, #8
|
|
str r0, [r4, r1]
|
|
sub r1, #0x10
|
|
ldr r0, [r4, r1]
|
|
mov r1, #6
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0xc1
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
sub r1, #0x14
|
|
ldr r0, [r4, r1]
|
|
mov r1, #0x10
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0xc2
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
sub r1, #0x18
|
|
ldr r0, [r4, r1]
|
|
mov r1, #0x62
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0xc3
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
sub r1, #0x1c
|
|
ldr r0, [r4, r1]
|
|
mov r1, #0x63
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0x31
|
|
lsl r1, r1, #4
|
|
str r0, [r4, r1]
|
|
sub r1, #0x20
|
|
ldr r0, [r4, r1]
|
|
mov r1, #1
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0xc5
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
sub r1, #0x24
|
|
ldr r0, [r4, r1]
|
|
mov r1, #2
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0xc6
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
sub r1, #0x28
|
|
ldr r0, [r4, r1]
|
|
mov r1, #0x12
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0xc7
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
sub r1, #0x2c
|
|
ldr r0, [r4, r1]
|
|
mov r1, #3
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0x32
|
|
lsl r1, r1, #4
|
|
str r0, [r4, r1]
|
|
sub r1, #0x30
|
|
ldr r0, [r4, r1]
|
|
mov r1, #4
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0xc9
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
sub r1, #0x34
|
|
ldr r0, [r4, r1]
|
|
mov r1, #5
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0xca
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
sub r1, #0x38
|
|
ldr r0, [r4, r1]
|
|
mov r1, #8
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0xcb
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
sub r1, #0x3c
|
|
ldr r0, [r4, r1]
|
|
mov r1, #0x4b
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0x33
|
|
lsl r1, r1, #4
|
|
str r0, [r4, r1]
|
|
sub r1, #0x40
|
|
ldr r0, [r4, r1]
|
|
mov r1, #0x56
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0xcd
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
sub r1, #0x44
|
|
ldr r0, [r4, r1]
|
|
mov r1, #0
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0xce
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
sub r1, #0x48
|
|
ldr r0, [r4, r1]
|
|
mov r1, #0x80
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0xcf
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
pop {r4, pc}
|
|
thumb_func_end ov15_021FEA5C
|
|
|
|
thumb_func_start ov15_021FEB64
|
|
ov15_021FEB64: ; 0x021FEB64
|
|
push {r4, r5, r6, lr}
|
|
mov r6, #3
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
lsl r6, r6, #8
|
|
_021FEB6E:
|
|
lsl r0, r4, #2
|
|
add r0, r5, r0
|
|
ldr r0, [r0, r6]
|
|
bl String_Delete
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x10
|
|
lsr r4, r0, #0x10
|
|
cmp r4, #0x10
|
|
blo _021FEB6E
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov15_021FEB64
|
|
|
|
thumb_func_start ov15_021FEB84
|
|
ov15_021FEB84: ; 0x021FEB84
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r2, [r5, r0]
|
|
add r0, r2, #0
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
mul r0, r1
|
|
add r0, r2, r0
|
|
ldrb r0, [r0, #0xc]
|
|
cmp r0, #3
|
|
bne _021FEBDC
|
|
add r0, r5, #0
|
|
add r0, #0x14
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
add r0, r5, #0
|
|
add r1, #0x66
|
|
ldrh r1, [r1]
|
|
bl ov15_021FE620
|
|
add r0, r5, #4
|
|
bl ScheduleWindowCopyToVram
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
add r0, r5, #0
|
|
add r1, #0x66
|
|
ldrh r1, [r1]
|
|
mov r2, #1
|
|
bl ov15_021FF97C
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl ov15_021F9C78
|
|
_021FEBDC:
|
|
add r0, r5, #0
|
|
ldr r2, _021FEC98 ; =0x000003E2
|
|
add r0, #0x24
|
|
mov r1, #1
|
|
mov r3, #0xc
|
|
bl DrawFrameAndWindow2
|
|
add r0, r5, #0
|
|
add r0, #0x24
|
|
mov r1, #0xf
|
|
bl FillWindowPixelBuffer
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r1, [r5, r0]
|
|
add r0, r1, #0
|
|
add r0, #0x64
|
|
ldrb r2, [r0]
|
|
mov r0, #0xc
|
|
add r3, r1, #4
|
|
mul r0, r2
|
|
add r4, r3, r0
|
|
add r0, r1, #0
|
|
add r0, #0x65
|
|
ldrb r0, [r0]
|
|
cmp r0, #6
|
|
bne _021FEC30
|
|
add r1, #0x66
|
|
ldrb r0, [r4, #8]
|
|
ldrh r1, [r1]
|
|
bl ov15_021FD3F0
|
|
cmp r0, #0
|
|
bne _021FEC30
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x6a
|
|
bl NewString_ReadMsgData
|
|
add r7, r0, #0
|
|
b _021FEC3E
|
|
_021FEC30:
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x2b
|
|
bl NewString_ReadMsgData
|
|
add r7, r0, #0
|
|
_021FEC3E:
|
|
mov r0, #0x6c
|
|
mov r1, #6
|
|
bl String_New
|
|
mov r1, #6
|
|
ldrsh r2, [r4, r1]
|
|
ldr r1, _021FEC9C ; =0x00000644
|
|
add r6, r0, #0
|
|
ldr r1, [r5, r1]
|
|
add r0, r5, #0
|
|
add r1, r2, r1
|
|
sub r1, #8
|
|
mov r2, #0
|
|
bl ov15_021FE584
|
|
mov r0, #0xbd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r1, r6, #0
|
|
add r2, r7, #0
|
|
bl StringExpandPlaceholders
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
add r0, #0x24
|
|
mov r1, #1
|
|
add r2, r6, #0
|
|
str r3, [sp, #8]
|
|
bl AddTextPrinterParameterized
|
|
add r0, r6, #0
|
|
bl String_Delete
|
|
add r0, r7, #0
|
|
bl String_Delete
|
|
add r5, #0x24
|
|
add r0, r5, #0
|
|
bl ScheduleWindowCopyToVram
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021FEC98: .word 0x000003E2
|
|
_021FEC9C: .word 0x00000644
|
|
thumb_func_end ov15_021FEB84
|
|
|
|
thumb_func_start ov15_021FECA0
|
|
ov15_021FECA0: ; 0x021FECA0
|
|
push {r4, r5, r6, lr}
|
|
add r5, r1, #0
|
|
add r6, r0, #0
|
|
add r4, r2, #0
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
lsl r1, r4, #0x10
|
|
add r0, r6, #0
|
|
lsr r1, r1, #0x10
|
|
bl ov15_021FE5C4
|
|
add r0, r5, #0
|
|
bl ScheduleWindowCopyToVram
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FECA0
|
|
|
|
thumb_func_start ov15_021FECC4
|
|
ov15_021FECC4: ; 0x021FECC4
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
add r0, r4, #0
|
|
bl ScheduleWindowCopyToVram
|
|
pop {r4, pc}
|
|
thumb_func_end ov15_021FECC4
|
|
|
|
thumb_func_start ov15_021FECD8
|
|
ov15_021FECD8: ; 0x021FECD8
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r1, #0
|
|
mov r1, #0x2f
|
|
lsl r1, r1, #4
|
|
ldr r0, [r0, r1]
|
|
add r2, #0x78
|
|
add r1, r2, #0
|
|
bl NewString_ReadMsgData
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FED20 ; =0x000F0E00
|
|
add r2, r4, #0
|
|
str r0, [sp, #8]
|
|
add r0, r5, #0
|
|
mov r3, #0x14
|
|
str r1, [sp, #0xc]
|
|
bl AddTextPrinterParameterizedWithColor
|
|
add r0, r4, #0
|
|
bl String_Delete
|
|
add r0, r5, #0
|
|
bl ScheduleWindowCopyToVram
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021FED20: .word 0x000F0E00
|
|
thumb_func_end ov15_021FECD8
|
|
|
|
thumb_func_start ov15_021FED24
|
|
ov15_021FED24: ; 0x021FED24
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0x24
|
|
mov r1, #1
|
|
bl ClearFrameAndWindow2
|
|
add r4, #0x24
|
|
add r0, r4, #0
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FED24
|
|
|
|
thumb_func_start ov15_021FED3C
|
|
ov15_021FED3C: ; 0x021FED3C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov15_021FED24
|
|
add r0, r4, #0
|
|
bl ov15_021FE3E0
|
|
mov r1, #0
|
|
add r0, r4, #0
|
|
add r2, r1, #0
|
|
bl ov15_021FF97C
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FED3C
|
|
|
|
thumb_func_start ov15_021FED58
|
|
ov15_021FED58: ; 0x021FED58
|
|
ldr r3, _021FED5C ; =ov15_021FE3E0
|
|
bx r3
|
|
.balign 4, 0
|
|
_021FED5C: .word ov15_021FE3E0
|
|
thumb_func_end ov15_021FED58
|
|
|
|
thumb_func_start ov15_021FED60
|
|
ov15_021FED60: ; 0x021FED60
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
add r0, #0x24
|
|
mov r1, #0xff
|
|
bl FillWindowPixelBuffer
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x2e
|
|
bl NewString_ReadMsgData
|
|
add r6, r0, #0
|
|
mov r0, #0x82
|
|
mov r1, #6
|
|
bl String_New
|
|
ldr r1, _021FEDE0 ; =0x00000672
|
|
add r4, r0, #0
|
|
ldrb r1, [r5, r1]
|
|
add r0, r5, #0
|
|
mov r2, #0
|
|
bl ov15_021FE584
|
|
mov r0, #0xbd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r5, #0
|
|
ldr r2, _021FEDE4 ; =0x000003E2
|
|
add r0, #0x24
|
|
mov r1, #1
|
|
mov r3, #0xc
|
|
bl DrawFrameAndWindow2
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FEDE8 ; =0x00010200
|
|
mov r1, #1
|
|
str r0, [sp, #8]
|
|
add r0, r5, #0
|
|
add r0, #0x24
|
|
add r2, r4, #0
|
|
str r3, [sp, #0xc]
|
|
bl AddTextPrinterParameterizedWithColor
|
|
add r5, #0x24
|
|
add r0, r5, #0
|
|
bl ScheduleWindowCopyToVram
|
|
add r0, r4, #0
|
|
bl String_Delete
|
|
add r0, r6, #0
|
|
bl String_Delete
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021FEDE0: .word 0x00000672
|
|
_021FEDE4: .word 0x000003E2
|
|
_021FEDE8: .word 0x00010200
|
|
thumb_func_end ov15_021FED60
|
|
|
|
thumb_func_start ov15_021FEDEC
|
|
ov15_021FEDEC: ; 0x021FEDEC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x20
|
|
add r5, r0, #0
|
|
mov r0, #0x1a
|
|
lsl r0, r0, #6
|
|
str r1, [sp, #0x10]
|
|
ldrsh r1, [r5, r0]
|
|
mov r0, #0xfa
|
|
lsl r0, r0, #2
|
|
cmp r1, r0
|
|
blt _021FEE06
|
|
bl GF_AssertFail
|
|
_021FEE06:
|
|
mov r0, #2
|
|
mov r1, #6
|
|
bl String_New
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [sp, #0x10]
|
|
cmp r0, #2
|
|
bne _021FEE1A
|
|
mov r4, #0xa
|
|
b _021FEE1C
|
|
_021FEE1A:
|
|
mov r4, #0x64
|
|
_021FEE1C:
|
|
mov r0, #0x1a
|
|
lsl r0, r0, #6
|
|
ldrsh r7, [r5, r0]
|
|
ldr r0, [sp, #0x10]
|
|
mov r6, #0
|
|
cmp r0, #0
|
|
bls _021FEE96
|
|
add r5, #0xb4
|
|
_021FEE2C:
|
|
add r0, r7, #0
|
|
add r1, r4, #0
|
|
bl _u32_div_f
|
|
str r0, [sp, #0x18]
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0x14]
|
|
ldr r1, [sp, #0x18]
|
|
mov r2, #1
|
|
mov r3, #0
|
|
bl String16_FormatInteger
|
|
ldr r0, [sp, #0x18]
|
|
add r1, r0, #0
|
|
mul r1, r4
|
|
sub r7, r7, r1
|
|
add r0, r4, #0
|
|
mov r1, #0xa
|
|
bl _u32_div_f
|
|
add r4, r0, #0
|
|
add r0, r6, #0
|
|
add r0, #0x11
|
|
lsl r0, r0, #4
|
|
str r0, [sp, #0x1c]
|
|
add r0, r5, r0
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FEEA0 ; =0x00010200
|
|
mov r1, #0
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #0x1c]
|
|
ldr r2, [sp, #0x14]
|
|
add r0, r5, r0
|
|
add r3, r1, #0
|
|
bl AddTextPrinterParameterizedWithColor
|
|
ldr r0, [sp, #0x1c]
|
|
add r0, r5, r0
|
|
bl ScheduleWindowCopyToVram
|
|
ldr r0, [sp, #0x10]
|
|
add r6, r6, #1
|
|
cmp r6, r0
|
|
blo _021FEE2C
|
|
_021FEE96:
|
|
ldr r0, [sp, #0x14]
|
|
bl String_Delete
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021FEEA0: .word 0x00010200
|
|
thumb_func_end ov15_021FEDEC
|
|
|
|
thumb_func_start ov15_021FEEA4
|
|
ov15_021FEEA4: ; 0x021FEEA4
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x37
|
|
bl NewString_ReadMsgData
|
|
add r4, r0, #0
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r3, #0x1a
|
|
add r2, r0, #4
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
lsl r3, r3, #6
|
|
mul r0, r1
|
|
add r1, r2, r0
|
|
ldrsh r0, [r5, r3]
|
|
cmp r0, #1
|
|
ble _021FEEEA
|
|
mov r2, #6
|
|
ldrsh r2, [r1, r2]
|
|
sub r3, #0x3c
|
|
ldr r1, [r5, r3]
|
|
add r0, r5, #0
|
|
add r1, r2, r1
|
|
sub r1, #8
|
|
mov r2, #0
|
|
bl ov15_021FE5A4
|
|
b _021FEEFE
|
|
_021FEEEA:
|
|
mov r2, #6
|
|
ldrsh r2, [r1, r2]
|
|
sub r3, #0x3c
|
|
ldr r1, [r5, r3]
|
|
add r0, r5, #0
|
|
add r1, r2, r1
|
|
sub r1, #8
|
|
mov r2, #0
|
|
bl ov15_021FE584
|
|
_021FEEFE:
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
mov r2, #0x1a
|
|
mov r0, #0xbd
|
|
str r1, [sp, #4]
|
|
lsl r2, r2, #6
|
|
lsl r0, r0, #2
|
|
ldrsh r2, [r5, r2]
|
|
ldr r0, [r5, r0]
|
|
mov r3, #3
|
|
bl BufferIntegerAsString
|
|
mov r0, #0xbd
|
|
ldr r1, _021FEF40 ; =0x000005E4
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5, r1]
|
|
add r2, r4, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r4, #0
|
|
bl String_Delete
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl ov15_021FEF48
|
|
ldr r1, _021FEF44 ; =0x00000616
|
|
strb r0, [r5, r1]
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021FEF40: .word 0x000005E4
|
|
_021FEF44: .word 0x00000616
|
|
thumb_func_end ov15_021FEEA4
|
|
|
|
thumb_func_start ov15_021FEF48
|
|
ov15_021FEF48: ; 0x021FEF48
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
cmp r1, #0
|
|
bne _021FEF58
|
|
add r4, r5, #0
|
|
add r4, #0x34
|
|
b _021FEF6C
|
|
_021FEF58:
|
|
mov r0, #0x81
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
cmp r0, #0
|
|
bne _021FEF66
|
|
bl GF_AssertFail
|
|
_021FEF66:
|
|
mov r0, #0x81
|
|
lsl r0, r0, #2
|
|
add r4, r5, r0
|
|
_021FEF6C:
|
|
add r0, r4, #0
|
|
mov r1, #0xf
|
|
bl FillWindowPixelBuffer
|
|
ldr r2, _021FEFB8 ; =0x000003E2
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
mov r3, #0xc
|
|
bl DrawFrameAndWindow2
|
|
add r0, r4, #0
|
|
bl ScheduleWindowCopyToVram
|
|
mov r0, #1
|
|
bl TextFlags_SetCanABSpeedUpPrint
|
|
mov r0, #0
|
|
bl TextFlags_SetAutoScrollParam
|
|
mov r0, #9
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
bl Options_GetTextFrameDelay
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FEFBC ; =ov15_021FEFC4
|
|
ldr r2, _021FEFC0 ; =0x000005E4
|
|
str r0, [sp, #8]
|
|
ldr r2, [r5, r2]
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl AddTextPrinterParameterized
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_021FEFB8: .word 0x000003E2
|
|
_021FEFBC: .word ov15_021FEFC4
|
|
_021FEFC0: .word 0x000005E4
|
|
thumb_func_end ov15_021FEF48
|
|
|
|
thumb_func_start ov15_021FEFC4
|
|
ov15_021FEFC4: ; 0x021FEFC4
|
|
push {r3, lr}
|
|
cmp r1, #4
|
|
bhi _021FEFFC
|
|
add r0, r1, r1
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021FEFD6: ; jump table
|
|
.short _021FEFFC - _021FEFD6 - 2 ; case 0
|
|
.short _021FEFE0 - _021FEFD6 - 2 ; case 1
|
|
.short _021FEFE6 - _021FEFD6 - 2 ; case 2
|
|
.short _021FEFEC - _021FEFD6 - 2 ; case 3
|
|
.short _021FEFF4 - _021FEFD6 - 2 ; case 4
|
|
_021FEFE0:
|
|
bl GF_IsAnySEPlaying
|
|
pop {r3, pc}
|
|
_021FEFE6:
|
|
bl IsFanfarePlaying
|
|
pop {r3, pc}
|
|
_021FEFEC:
|
|
ldr r0, _021FF000 ; =SEQ_SE_DP_PC_LOGIN
|
|
bl PlaySE
|
|
b _021FEFFC
|
|
_021FEFF4:
|
|
ldr r0, _021FF000 ; =SEQ_SE_DP_PC_LOGIN
|
|
bl IsSEPlaying
|
|
pop {r3, pc}
|
|
_021FEFFC:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_021FF000: .word SEQ_SE_DP_PC_LOGIN
|
|
thumb_func_end ov15_021FEFC4
|
|
|
|
thumb_func_start ov15_021FF004
|
|
ov15_021FF004: ; 0x021FF004
|
|
push {r3, r4, lr}
|
|
sub sp, #0x14
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
add r2, sp, #0
|
|
str r0, [sp]
|
|
mov r0, #5
|
|
str r0, [sp, #4]
|
|
mov r0, #0x81
|
|
str r0, [sp, #8]
|
|
mov r0, #9
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x19
|
|
strb r0, [r2, #0x10]
|
|
mov r0, #6
|
|
strb r0, [r2, #0x11]
|
|
ldrb r3, [r2, #0x12]
|
|
mov r1, #0xf
|
|
bic r3, r1
|
|
strb r3, [r2, #0x12]
|
|
ldrb r3, [r2, #0x12]
|
|
mov r1, #0xf0
|
|
bic r3, r1
|
|
strb r3, [r2, #0x12]
|
|
ldrb r3, [r2, #0x12]
|
|
bic r3, r1
|
|
strb r3, [r2, #0x12]
|
|
mov r1, #0
|
|
strb r1, [r2, #0x13]
|
|
bl YesNoPrompt_Create
|
|
ldr r1, _021FF054 ; =0x00000804
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
add r1, sp, #0
|
|
bl YesNoPrompt_InitFromTemplate
|
|
add sp, #0x14
|
|
pop {r3, r4, pc}
|
|
nop
|
|
_021FF054: .word 0x00000804
|
|
thumb_func_end ov15_021FF004
|
|
|
|
thumb_func_start ov15_021FF058
|
|
ov15_021FF058: ; 0x021FF058
|
|
ldr r1, _021FF060 ; =0x00000804
|
|
ldr r3, _021FF064 ; =YesNoPrompt_Destroy
|
|
ldr r0, [r0, r1]
|
|
bx r3
|
|
.balign 4, 0
|
|
_021FF060: .word 0x00000804
|
|
_021FF064: .word YesNoPrompt_Destroy
|
|
thumb_func_end ov15_021FF058
|
|
|
|
thumb_func_start ov15_021FF068
|
|
ov15_021FF068: ; 0x021FF068
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
mov r6, #0x89
|
|
add r5, r0, #0
|
|
lsl r6, r6, #2
|
|
add r0, r5, r6
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
add r0, r6, #0
|
|
add r0, #0xcc
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x53
|
|
bl NewString_ReadMsgData
|
|
add r4, r0, #0
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
ldr r2, _021FF0F0 ; =0x00000684
|
|
add r0, r6, #0
|
|
ldr r3, [r5, r2]
|
|
sub r2, r2, #4
|
|
ldrsh r2, [r5, r2]
|
|
add r0, #0xd0
|
|
ldr r0, [r5, r0]
|
|
mul r2, r3
|
|
mov r1, #0
|
|
mov r3, #6
|
|
bl BufferIntegerAsString
|
|
add r0, r6, #0
|
|
ldr r1, _021FF0F4 ; =0x000005E4
|
|
add r0, #0xd0
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5, r1]
|
|
add r2, r4, #0
|
|
bl StringExpandPlaceholders
|
|
ldr r1, _021FF0F4 ; =0x000005E4
|
|
mov r0, #0
|
|
ldr r1, [r5, r1]
|
|
add r2, r0, #0
|
|
bl FontID_String_GetWidth
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FF0F8 ; =0x00010200
|
|
mov r1, #0
|
|
str r0, [sp, #8]
|
|
ldr r2, _021FF0F4 ; =0x000005E4
|
|
str r1, [sp, #0xc]
|
|
ldr r2, [r5, r2]
|
|
add r0, r5, r6
|
|
add r3, r1, #0
|
|
bl AddTextPrinterParameterizedWithColor
|
|
add r0, r5, r6
|
|
bl ScheduleWindowCopyToVram
|
|
add r0, r4, #0
|
|
bl String_Delete
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021FF0F0: .word 0x00000684
|
|
_021FF0F4: .word 0x000005E4
|
|
_021FF0F8: .word 0x00010200
|
|
thumb_func_end ov15_021FF068
|
|
|
|
thumb_func_start ov15_021FF0FC
|
|
ov15_021FF0FC: ; 0x021FF0FC
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r5, r0, #0
|
|
mov r0, #1
|
|
add r7, r1, #0
|
|
lsl r0, r0, #8
|
|
mov r1, #6
|
|
bl String_New
|
|
mov r6, #0x85
|
|
add r4, r0, #0
|
|
lsl r6, r6, #2
|
|
cmp r7, #0
|
|
bne _021FF14E
|
|
add r0, r5, r6
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
add r0, r6, #0
|
|
add r0, #0xdc
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x50
|
|
bl NewString_ReadMsgData
|
|
add r7, r0, #0
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FF1DC ; =0x00010200
|
|
add r2, r7, #0
|
|
str r0, [sp, #8]
|
|
add r0, r5, r6
|
|
mov r3, #4
|
|
str r1, [sp, #0xc]
|
|
bl AddTextPrinterParameterizedWithColor
|
|
add r0, r7, #0
|
|
bl String_Delete
|
|
b _021FF160
|
|
_021FF14E:
|
|
mov r0, #0x48
|
|
mov r1, #0
|
|
str r0, [sp]
|
|
mov r3, #0x10
|
|
add r0, r5, r6
|
|
add r2, r1, #0
|
|
str r3, [sp, #4]
|
|
bl FillWindowPixelRect
|
|
_021FF160:
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x51
|
|
bl NewString_ReadMsgData
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0x8f
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl PlayerProfile_GetMoney
|
|
add r2, r0, #0
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #0xbd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
mov r3, #6
|
|
bl BufferIntegerAsString
|
|
mov r0, #0xbd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
ldr r2, [sp, #0x10]
|
|
add r1, r4, #0
|
|
bl StringExpandPlaceholders
|
|
mov r0, #0
|
|
add r1, r4, #0
|
|
add r2, r0, #0
|
|
bl FontID_String_GetWidth
|
|
add r7, r0, #0
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FF1DC ; =0x00010200
|
|
add r7, #8
|
|
mov r3, #0x44
|
|
str r0, [sp, #8]
|
|
mov r1, #0
|
|
add r0, r5, r6
|
|
add r2, r4, #0
|
|
sub r3, r3, r7
|
|
str r1, [sp, #0xc]
|
|
bl AddTextPrinterParameterizedWithColor
|
|
add r0, r5, r6
|
|
bl ScheduleWindowCopyToVram
|
|
ldr r0, [sp, #0x10]
|
|
bl String_Delete
|
|
add r0, r4, #0
|
|
bl String_Delete
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021FF1DC: .word 0x00010200
|
|
thumb_func_end ov15_021FF0FC
|
|
|
|
thumb_func_start ov15_021FF1E0
|
|
ov15_021FF1E0: ; 0x021FF1E0
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
add r4, r5, #0
|
|
add r4, #0x54
|
|
add r0, r4, #0
|
|
mov r1, #0xf
|
|
bl FillWindowPixelBuffer
|
|
ldr r2, _021FF294 ; =0x000003F7
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
mov r3, #0xe
|
|
bl DrawFrameAndWindow1
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x73
|
|
bl NewString_ReadMsgData
|
|
mov r1, #0
|
|
add r6, r0, #0
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r2, r6, #0
|
|
add r3, r1, #0
|
|
str r1, [sp, #8]
|
|
bl AddTextPrinterParameterized
|
|
add r0, r6, #0
|
|
bl String_Delete
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x74
|
|
bl NewString_ReadMsgData
|
|
add r6, r0, #0
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #0xbd
|
|
lsl r0, r0, #2
|
|
mov r1, #0
|
|
ldr r0, [r5, r0]
|
|
add r2, r1, #0
|
|
mov r3, #3
|
|
bl BufferIntegerAsString
|
|
mov r0, #0xbd
|
|
ldr r1, _021FF298 ; =0x000005E4
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5, r1]
|
|
add r2, r6, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r6, #0
|
|
bl String_Delete
|
|
ldr r1, _021FF298 ; =0x000005E4
|
|
mov r0, #0
|
|
ldr r1, [r5, r1]
|
|
add r2, r0, #0
|
|
bl FontID_String_GetWidth
|
|
add r3, r0, #0
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
mov r1, #0
|
|
ldr r2, _021FF298 ; =0x000005E4
|
|
str r1, [sp, #8]
|
|
ldr r2, [r5, r2]
|
|
mov r5, #0x58
|
|
add r0, r4, #0
|
|
sub r3, r5, r3
|
|
bl AddTextPrinterParameterized
|
|
add r0, r4, #0
|
|
bl ScheduleWindowCopyToVram
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
nop
|
|
_021FF294: .word 0x000003F7
|
|
_021FF298: .word 0x000005E4
|
|
thumb_func_end ov15_021FF1E0
|
|
|
|
thumb_func_start ov15_021FF29C
|
|
ov15_021FF29C: ; 0x021FF29C
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
mov r0, #0x2f
|
|
lsl r0, r0, #4
|
|
add r6, r1, #0
|
|
ldr r0, [r5, r0]
|
|
mov r1, #8
|
|
bl NewString_ReadMsgData
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
add r0, #0x74
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
cmp r6, #0
|
|
bne _021FF2EE
|
|
mov r0, #0
|
|
add r1, r4, #0
|
|
add r2, r0, #0
|
|
bl FontID_String_GetWidth
|
|
mov r1, #0
|
|
add r3, r0, #0
|
|
mov r6, #0x30
|
|
sub r3, r6, r3
|
|
lsr r3, r3, #1
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FF31C ; =0x000F0E00
|
|
add r2, r4, #0
|
|
str r0, [sp, #8]
|
|
add r0, r5, #0
|
|
add r0, #0x74
|
|
add r3, #8
|
|
str r1, [sp, #0xc]
|
|
bl AddTextPrinterParameterizedWithColor
|
|
b _021FF308
|
|
_021FF2EE:
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FF31C ; =0x000F0E00
|
|
add r2, r4, #0
|
|
str r0, [sp, #8]
|
|
add r0, r5, #0
|
|
add r0, #0x74
|
|
mov r3, #5
|
|
str r1, [sp, #0xc]
|
|
bl AddTextPrinterParameterizedWithColor
|
|
_021FF308:
|
|
add r5, #0x74
|
|
add r0, r5, #0
|
|
bl ScheduleWindowCopyToVram
|
|
add r0, r4, #0
|
|
bl String_Delete
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021FF31C: .word 0x000F0E00
|
|
thumb_func_end ov15_021FF29C
|
|
|
|
thumb_func_start ov15_021FF320
|
|
ov15_021FF320: ; 0x021FF320
|
|
push {r4, r5, r6, r7}
|
|
add r3, r1, #0
|
|
add r1, r2, #0
|
|
ldr r2, _021FF360 ; =ov15_022008C8
|
|
mov r5, #0
|
|
ldrb r6, [r2, r3]
|
|
add r4, r5, #0
|
|
cmp r6, #0
|
|
ble _021FF35A
|
|
ldr r7, [r0]
|
|
ldrb r2, [r2, r3]
|
|
add r0, r7, #0
|
|
add r6, r5, #0
|
|
add r1, r1, #1
|
|
_021FF33C:
|
|
ldrh r3, [r0]
|
|
cmp r3, #0
|
|
beq _021FF350
|
|
add r3, r7, r6
|
|
ldrh r3, [r3, #2]
|
|
cmp r3, #0
|
|
beq _021FF350
|
|
add r5, r5, #1
|
|
cmp r5, r1
|
|
beq _021FF35A
|
|
_021FF350:
|
|
add r4, r4, #1
|
|
add r0, r0, #4
|
|
add r6, r6, #4
|
|
cmp r4, r2
|
|
blt _021FF33C
|
|
_021FF35A:
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, r7}
|
|
bx lr
|
|
.balign 4, 0
|
|
_021FF360: .word ov15_022008C8
|
|
thumb_func_end ov15_021FF320
|
|
|
|
thumb_func_start ov15_021FF364
|
|
ov15_021FF364: ; 0x021FF364
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x34
|
|
add r5, r0, #0
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
str r1, [sp, #0x10]
|
|
add r2, r0, #4
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
str r3, [sp, #0x14]
|
|
mul r0, r1
|
|
add r0, r2, r0
|
|
mov r1, #6
|
|
str r0, [sp, #0x24]
|
|
ldrb r2, [r0, #9]
|
|
ldrsh r0, [r0, r1]
|
|
sub r0, r2, r0
|
|
str r0, [sp, #0x20]
|
|
cmp r0, #6
|
|
ble _021FF392
|
|
str r1, [sp, #0x20]
|
|
_021FF392:
|
|
ldr r0, _021FF4DC ; =0x0000068A
|
|
ldrb r0, [r5, r0]
|
|
cmp r0, #0
|
|
bne _021FF3A2
|
|
mov r0, #0
|
|
str r0, [sp, #0x18]
|
|
mov r4, #6
|
|
b _021FF3A8
|
|
_021FF3A2:
|
|
mov r0, #6
|
|
str r0, [sp, #0x18]
|
|
mov r4, #0
|
|
_021FF3A8:
|
|
ldr r1, _021FF4DC ; =0x0000068A
|
|
mov r0, #1
|
|
ldrb r2, [r5, r1]
|
|
eor r0, r2
|
|
strb r0, [r5, r1]
|
|
add r0, r5, #0
|
|
bl ov15_021FE17C
|
|
mov r0, #0
|
|
add r7, r5, #0
|
|
ldr r6, [sp, #0x18]
|
|
str r0, [sp, #0x2c]
|
|
add r7, #0xb4
|
|
_021FF3C2:
|
|
lsl r0, r6, #4
|
|
add r0, r7, r0
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
lsl r0, r4, #4
|
|
add r0, r7, r0
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
ldr r0, [sp, #0x2c]
|
|
add r6, r6, #1
|
|
add r0, r0, #1
|
|
add r4, r4, #1
|
|
str r0, [sp, #0x2c]
|
|
cmp r0, #6
|
|
blt _021FF3C2
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
ldr r1, [r5, r1]
|
|
mov r0, #0
|
|
add r1, #0x64
|
|
ldrb r1, [r1]
|
|
str r0, [sp, #0x28]
|
|
ldr r0, [sp, #0x24]
|
|
ldr r2, [sp, #0x10]
|
|
bl ov15_021FF320
|
|
add r4, r0, #0
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
ldr r0, _021FF4E0 ; =ov15_022008C8
|
|
ldrb r0, [r0, r1]
|
|
cmp r4, r0
|
|
bge _021FF4BE
|
|
lsl r0, r4, #2
|
|
str r0, [sp, #0x1c]
|
|
add r7, r5, r0
|
|
add r0, r5, #0
|
|
str r0, [sp, #0x30]
|
|
add r0, #0xb4
|
|
ldr r6, [sp, #0x18]
|
|
str r0, [sp, #0x30]
|
|
_021FF41C:
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x1c]
|
|
ldr r0, [r0]
|
|
ldr r2, [sp, #0x1c]
|
|
add r1, r0, r1
|
|
ldrh r0, [r0, r2]
|
|
cmp r0, #0
|
|
beq _021FF4A2
|
|
ldrh r0, [r1, #2]
|
|
cmp r0, #0
|
|
beq _021FF4A2
|
|
ldr r0, [sp, #0x14]
|
|
cmp r0, #0
|
|
bne _021FF450
|
|
ldr r1, [sp, #0x30]
|
|
lsl r2, r6, #4
|
|
add r1, r1, r2
|
|
mov r2, #0x35
|
|
str r4, [sp]
|
|
lsl r2, r2, #4
|
|
ldr r2, [r7, r2]
|
|
ldr r3, [sp, #0x24]
|
|
add r0, r5, #0
|
|
bl ov15_021FF570
|
|
b _021FF494
|
|
_021FF450:
|
|
ldr r0, _021FF4E4 ; =0x00000672
|
|
ldrb r0, [r5, r0]
|
|
cmp r4, r0
|
|
bne _021FF470
|
|
ldr r1, [sp, #0x30]
|
|
lsl r2, r6, #4
|
|
add r1, r1, r2
|
|
mov r2, #0x35
|
|
str r4, [sp]
|
|
lsl r2, r2, #4
|
|
ldr r2, [r7, r2]
|
|
ldr r3, [sp, #0x24]
|
|
add r0, r5, #0
|
|
bl ov15_021FF570
|
|
b _021FF494
|
|
_021FF470:
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FF4E8 ; =0x00010200
|
|
mov r2, #0x35
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
lsl r2, r2, #4
|
|
ldr r0, [sp, #0x30]
|
|
lsl r1, r6, #4
|
|
add r0, r0, r1
|
|
mov r1, #0
|
|
ldr r2, [r7, r2]
|
|
add r3, r1, #0
|
|
bl AddTextPrinterParameterizedWithColor
|
|
_021FF494:
|
|
ldr r0, [sp, #0x28]
|
|
add r6, r6, #1
|
|
add r1, r0, #1
|
|
ldr r0, [sp, #0x20]
|
|
str r1, [sp, #0x28]
|
|
cmp r1, r0
|
|
bge _021FF4BE
|
|
_021FF4A2:
|
|
ldr r0, [sp, #0x1c]
|
|
add r4, r4, #1
|
|
add r0, r0, #4
|
|
str r0, [sp, #0x1c]
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r7, r7, #4
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
ldr r0, _021FF4E0 ; =ov15_022008C8
|
|
ldrb r0, [r0, r1]
|
|
cmp r4, r0
|
|
blt _021FF41C
|
|
_021FF4BE:
|
|
mov r4, #0
|
|
add r5, #0xb4
|
|
_021FF4C2:
|
|
ldr r0, [sp, #0x18]
|
|
lsl r0, r0, #4
|
|
add r0, r5, r0
|
|
bl ScheduleWindowCopyToVram
|
|
ldr r0, [sp, #0x18]
|
|
add r4, r4, #1
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x18]
|
|
cmp r4, #6
|
|
blt _021FF4C2
|
|
add sp, #0x34
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021FF4DC: .word 0x0000068A
|
|
_021FF4E0: .word ov15_022008C8
|
|
_021FF4E4: .word 0x00000672
|
|
_021FF4E8: .word 0x00010200
|
|
thumb_func_end ov15_021FF364
|
|
|
|
thumb_func_start ov15_021FF4EC
|
|
ov15_021FF4EC: ; 0x021FF4EC
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r6, r0, #0
|
|
mov r0, #0x8d
|
|
add r7, r2, #0
|
|
lsl r0, r0, #2
|
|
ldr r2, [r6, r0]
|
|
add r5, r6, #0
|
|
add r0, r2, #4
|
|
add r2, #0x64
|
|
str r0, [sp, #4]
|
|
ldrb r2, [r2]
|
|
mov r0, #0xc
|
|
add r7, r7, r1
|
|
mul r0, r2
|
|
str r0, [sp, #8]
|
|
mov r4, #0
|
|
add r5, #0xb4
|
|
_021FF510:
|
|
add r0, r5, #0
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
add r4, r4, #1
|
|
add r5, #0x10
|
|
cmp r4, #6
|
|
blt _021FF510
|
|
add r0, r6, #0
|
|
bl ov15_021FE1D0
|
|
add r0, r6, #0
|
|
add r0, #0x64
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
add r0, r6, #0
|
|
bl ov15_021FE204
|
|
lsl r2, r7, #2
|
|
add r3, r6, r2
|
|
mov r2, #0x35
|
|
mov r1, #0x5d
|
|
lsl r1, r1, #2
|
|
str r7, [sp]
|
|
lsl r2, r2, #4
|
|
ldr r2, [r3, r2]
|
|
ldr r4, [sp, #4]
|
|
ldr r3, [sp, #8]
|
|
add r0, r6, #0
|
|
add r1, r6, r1
|
|
add r3, r4, r3
|
|
bl ov15_021FF570
|
|
mov r0, #0x5d
|
|
lsl r0, r0, #2
|
|
add r0, r6, r0
|
|
bl ScheduleWindowCopyToVram
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FF4EC
|
|
|
|
thumb_func_start ov15_021FF560
|
|
ov15_021FF560: ; 0x021FF560
|
|
mov r1, #0x5d
|
|
lsl r1, r1, #2
|
|
ldr r3, _021FF56C ; =ClearWindowTilemapAndScheduleTransfer
|
|
add r0, r0, r1
|
|
bx r3
|
|
nop
|
|
_021FF56C: .word ClearWindowTilemapAndScheduleTransfer
|
|
thumb_func_end ov15_021FF560
|
|
|
|
thumb_func_start ov15_021FF570
|
|
ov15_021FF570: ; 0x021FF570
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r4, r3, #0
|
|
add r5, r0, #0
|
|
ldrb r0, [r4, #8]
|
|
add r6, r1, #0
|
|
cmp r0, #3
|
|
beq _021FF586
|
|
cmp r0, #7
|
|
beq _021FF5D8
|
|
b _021FF632
|
|
_021FF586:
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FF668 ; =0x00010200
|
|
add r3, r1, #0
|
|
str r0, [sp, #8]
|
|
add r0, r6, #0
|
|
str r1, [sp, #0xc]
|
|
bl AddTextPrinterParameterizedWithColor
|
|
ldr r0, [sp, #0x28]
|
|
ldr r2, [r4]
|
|
lsl r7, r0, #2
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
add r2, r2, r7
|
|
mov r3, #0x10
|
|
bl ov15_021FE914
|
|
ldr r3, [r4]
|
|
mov r0, #0x52
|
|
ldrh r1, [r3, r7]
|
|
lsl r0, r0, #2
|
|
cmp r1, r0
|
|
blo _021FF662
|
|
add r0, #0x5b
|
|
cmp r1, r0
|
|
bhi _021FF662
|
|
mov r1, #0xbd
|
|
lsl r1, r1, #2
|
|
add r3, r3, r7
|
|
ldr r0, [r5, r1]
|
|
sub r1, r1, #4
|
|
ldrh r3, [r3, #2]
|
|
ldr r1, [r5, r1]
|
|
add r2, r6, #0
|
|
bl ov15_021FF66C
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021FF5D8:
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FF668 ; =0x00010200
|
|
add r3, r1, #0
|
|
str r0, [sp, #8]
|
|
add r0, r6, #0
|
|
str r1, [sp, #0xc]
|
|
bl AddTextPrinterParameterizedWithColor
|
|
ldr r0, [sp, #0x28]
|
|
lsl r7, r0, #2
|
|
mov r0, #0x8e
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl Bag_GetRegisteredItem1
|
|
ldr r1, [r4]
|
|
ldrh r1, [r1, r7]
|
|
cmp r1, r0
|
|
bne _021FF610
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
mov r2, #0x10
|
|
mov r3, #0
|
|
bl ov15_021FE9F0
|
|
_021FF610:
|
|
mov r0, #0x8e
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl Bag_GetRegisteredItem2
|
|
ldr r1, [r4]
|
|
ldrh r1, [r1, r7]
|
|
cmp r1, r0
|
|
bne _021FF662
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
mov r2, #0x10
|
|
mov r3, #1
|
|
bl ov15_021FE9F0
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021FF632:
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FF668 ; =0x00010200
|
|
add r3, r1, #0
|
|
str r0, [sp, #8]
|
|
add r0, r6, #0
|
|
str r1, [sp, #0xc]
|
|
bl AddTextPrinterParameterizedWithColor
|
|
ldr r3, [sp, #0x28]
|
|
mov r1, #0xbd
|
|
lsl r1, r1, #2
|
|
ldr r0, [r5, r1]
|
|
sub r1, r1, #4
|
|
ldr r4, [r4]
|
|
lsl r3, r3, #2
|
|
add r3, r4, r3
|
|
ldrh r3, [r3, #2]
|
|
ldr r1, [r5, r1]
|
|
add r2, r6, #0
|
|
bl ov15_021FF66C
|
|
_021FF662:
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021FF668: .word 0x00010200
|
|
thumb_func_end ov15_021FF570
|
|
|
|
thumb_func_start ov15_021FF66C
|
|
ov15_021FF66C: ; 0x021FF66C
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
add r4, r1, #0
|
|
mov r1, #0
|
|
add r6, r2, #0
|
|
str r1, [sp]
|
|
mov r2, #1
|
|
str r2, [sp, #4]
|
|
add r2, r3, #0
|
|
add r5, r0, #0
|
|
mov r3, #3
|
|
bl BufferIntegerAsString
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
mov r2, #0x57
|
|
mov r3, #6
|
|
bl ReadMsgData_ExpandPlaceholders
|
|
add r4, r0, #0
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FF6B8 ; =0x00010200
|
|
mov r1, #0
|
|
str r0, [sp, #8]
|
|
add r0, r6, #0
|
|
add r2, r4, #0
|
|
mov r3, #0x30
|
|
str r1, [sp, #0xc]
|
|
bl AddTextPrinterParameterizedWithColor
|
|
add r0, r4, #0
|
|
bl String_Delete
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021FF6B8: .word 0x00010200
|
|
thumb_func_end ov15_021FF66C
|
|
|
|
thumb_func_start ov15_021FF6BC
|
|
ov15_021FF6BC: ; 0x021FF6BC
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
add r4, r0, #0
|
|
add r5, r1, #0
|
|
add r0, r2, r3
|
|
mov r1, #6
|
|
bl _s32_div_f
|
|
add r6, r0, #0
|
|
cmp r5, #0
|
|
bne _021FF6D6
|
|
mov r5, #1
|
|
b _021FF6E0
|
|
_021FF6D6:
|
|
add r0, r5, #5
|
|
mov r1, #6
|
|
bl _s32_div_f
|
|
add r5, r0, #0
|
|
_021FF6E0:
|
|
add r0, r4, #0
|
|
add r0, #0x64
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #0xbd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
add r2, r6, #1
|
|
mov r3, #3
|
|
bl BufferIntegerAsString
|
|
mov r1, #1
|
|
str r1, [sp]
|
|
mov r0, #0xbd
|
|
str r1, [sp, #4]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r2, r5, #0
|
|
mov r3, #3
|
|
bl BufferIntegerAsString
|
|
mov r1, #0xbd
|
|
lsl r1, r1, #2
|
|
ldr r0, [r4, r1]
|
|
sub r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
mov r2, #0x16
|
|
mov r3, #6
|
|
bl ReadMsgData_ExpandPlaceholders
|
|
mov r1, #0
|
|
add r5, r0, #0
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FF754 ; =0x000F0100
|
|
add r2, r5, #0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
add r0, #0x64
|
|
add r3, r1, #0
|
|
str r1, [sp, #0xc]
|
|
bl AddTextPrinterParameterizedWithColor
|
|
add r4, #0x64
|
|
add r0, r4, #0
|
|
bl ScheduleWindowCopyToVram
|
|
add r0, r5, #0
|
|
bl String_Delete
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021FF754: .word 0x000F0100
|
|
thumb_func_end ov15_021FF6BC
|
|
|
|
thumb_func_start ov15_021FF758
|
|
ov15_021FF758: ; 0x021FF758
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r4, r1, #0
|
|
mov r1, #0
|
|
add r6, r0, #0
|
|
add r5, r2, #0
|
|
bl FillWindowPixelBuffer
|
|
cmp r5, #0xff
|
|
beq _021FF79E
|
|
lsl r5, r5, #2
|
|
add r0, r6, #0
|
|
bl GetWindowWidth
|
|
add r7, r0, #0
|
|
mov r0, #0
|
|
ldr r1, [r4, r5]
|
|
add r2, r0, #0
|
|
bl FontID_String_GetWidth
|
|
mov r1, #0
|
|
add r3, r0, #0
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FF7A8 ; =0x000F0E00
|
|
str r0, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
ldr r2, [r4, r5]
|
|
lsl r4, r7, #3
|
|
sub r3, r4, r3
|
|
add r0, r6, #0
|
|
lsr r3, r3, #1
|
|
bl AddTextPrinterParameterizedWithColor
|
|
_021FF79E:
|
|
add r0, r6, #0
|
|
bl ScheduleWindowCopyToVram
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021FF7A8: .word 0x000F0E00
|
|
thumb_func_end ov15_021FF758
|
|
|
|
thumb_func_start ov15_021FF7AC
|
|
ov15_021FF7AC: ; 0x021FF7AC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
_021FF7B2:
|
|
add r0, r5, #0
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
add r4, r4, #1
|
|
add r5, #0x10
|
|
cmp r4, #4
|
|
blt _021FF7B2
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FF7AC
|
|
|
|
thumb_func_start ov15_021FF7C4
|
|
ov15_021FF7C4: ; 0x021FF7C4
|
|
push {r4, lr}
|
|
sub sp, #0x10
|
|
mov r1, #0
|
|
add r4, r0, #0
|
|
str r1, [sp]
|
|
mov r2, #0xff
|
|
str r2, [sp, #4]
|
|
ldr r0, _021FF7F8 ; =0x000F0E00
|
|
add r2, #0xf5
|
|
str r0, [sp, #8]
|
|
add r0, r4, r2
|
|
mov r2, #0xc5
|
|
str r1, [sp, #0xc]
|
|
lsl r2, r2, #2
|
|
ldr r2, [r4, r2]
|
|
mov r3, #5
|
|
bl AddTextPrinterParameterizedWithColor
|
|
mov r0, #0x7d
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl ScheduleWindowCopyToVram
|
|
add sp, #0x10
|
|
pop {r4, pc}
|
|
nop
|
|
_021FF7F8: .word 0x000F0E00
|
|
thumb_func_end ov15_021FF7C4
|
|
|
|
thumb_func_start ov15_021FF7FC
|
|
ov15_021FF7FC: ; 0x021FF7FC
|
|
push {r4, lr}
|
|
sub sp, #0x10
|
|
mov r1, #0
|
|
add r4, r0, #0
|
|
str r1, [sp]
|
|
mov r2, #0xff
|
|
str r2, [sp, #4]
|
|
ldr r0, _021FF830 ; =0x000F0E00
|
|
add r2, #0xf5
|
|
str r0, [sp, #8]
|
|
add r0, r4, r2
|
|
mov r2, #0xcd
|
|
str r1, [sp, #0xc]
|
|
lsl r2, r2, #2
|
|
ldr r2, [r4, r2]
|
|
mov r3, #5
|
|
bl AddTextPrinterParameterizedWithColor
|
|
mov r0, #0x7d
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl ScheduleWindowCopyToVram
|
|
add sp, #0x10
|
|
pop {r4, pc}
|
|
nop
|
|
_021FF830: .word 0x000F0E00
|
|
thumb_func_end ov15_021FF7FC
|
|
|
|
thumb_func_start ov15_021FF834
|
|
ov15_021FF834: ; 0x021FF834
|
|
mov r1, #0x7d
|
|
lsl r1, r1, #2
|
|
ldr r3, _021FF840 ; =ClearWindowTilemapAndScheduleTransfer
|
|
add r0, r0, r1
|
|
bx r3
|
|
nop
|
|
_021FF840: .word ClearWindowTilemapAndScheduleTransfer
|
|
thumb_func_end ov15_021FF834
|
|
|
|
thumb_func_start ov15_021FF844
|
|
ov15_021FF844: ; 0x021FF844
|
|
ldr r3, _021FF84C ; =ClearWindowTilemapAndScheduleTransfer
|
|
add r0, #0x74
|
|
bx r3
|
|
nop
|
|
_021FF84C: .word ClearWindowTilemapAndScheduleTransfer
|
|
thumb_func_end ov15_021FF844
|
|
|
|
thumb_func_start ov15_021FF850
|
|
ov15_021FF850: ; 0x021FF850
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl GfGfx_EngineATogglePlanes
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl GfGfx_EngineBTogglePlanes
|
|
mov r0, #0x20
|
|
mov r1, #6
|
|
bl GF_CreateVramTransferManager
|
|
add r0, r4, #0
|
|
bl ov15_021FFA40
|
|
add r0, r4, #0
|
|
bl ov15_021FFAD0
|
|
add r0, r4, #0
|
|
bl ov15_021FFDD8
|
|
mov r0, #0x92
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl SpriteRenderer_GetG2dRendererPtr
|
|
mov r2, #1
|
|
mov r1, #0
|
|
lsl r2, r2, #0x14
|
|
bl G2dRenderer_SetSubSurfaceCoords
|
|
pop {r4, pc}
|
|
thumb_func_end ov15_021FF850
|
|
|
|
thumb_func_start ov15_021FF894
|
|
ov15_021FF894: ; 0x021FF894
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
mov r7, #0x25
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
lsl r7, r7, #4
|
|
_021FF8A0:
|
|
ldr r0, [r5, r7]
|
|
bl UnkImageStruct_Delete
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #0x27
|
|
blo _021FF8A0
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
ldr r0, [r6, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r6, r1]
|
|
bl SpriteRenderer_UnloadResourcesAndRemoveGfxHandler
|
|
mov r0, #0x92
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
bl SpriteRenderer_Delete
|
|
ldr r0, _021FF8D0 ; =0x0000069C
|
|
ldr r0, [r6, r0]
|
|
bl FreeToHeap
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021FF8D0: .word 0x0000069C
|
|
thumb_func_end ov15_021FF894
|
|
|
|
thumb_func_start ov15_021FF8D4
|
|
ov15_021FF8D4: ; 0x021FF8D4
|
|
push {r4, r5, r6, lr}
|
|
mov r6, #0x25
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
lsl r6, r6, #4
|
|
_021FF8DE:
|
|
ldr r0, [r5, r6]
|
|
bl UnkImageStruct_TickSpriteAnimation1Frame
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #0x27
|
|
blo _021FF8DE
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_021FF8D4
|
|
|
|
thumb_func_start ov15_021FF8F0
|
|
ov15_021FF8F0: ; 0x021FF8F0
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #8
|
|
add r6, r2, #0
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r0, r6, #0
|
|
mov r1, #1
|
|
bl GetItemIndexMapping
|
|
add r3, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, _021FF948 ; =0x0000C0FC
|
|
mov r1, #0x92
|
|
add r0, r4, r0
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0x12
|
|
bl sub_0200E248
|
|
add r0, r6, #0
|
|
mov r1, #2
|
|
bl GetItemIndexMapping
|
|
add r3, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, _021FF94C ; =0x0000C0FB
|
|
mov r1, #0x92
|
|
add r0, r4, r0
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0x12
|
|
bl sub_0200E27C
|
|
add sp, #8
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021FF948: .word 0x0000C0FC
|
|
_021FF94C: .word 0x0000C0FB
|
|
thumb_func_end ov15_021FF8F0
|
|
|
|
thumb_func_start ov15_021FF950
|
|
ov15_021FF950: ; 0x021FF950
|
|
ldr r1, _021FF960 ; =0x0000064B
|
|
mov r2, #0
|
|
strb r2, [r0, r1]
|
|
mov r2, #1
|
|
sub r1, r1, #3
|
|
strb r2, [r0, r1]
|
|
bx lr
|
|
nop
|
|
_021FF960: .word 0x0000064B
|
|
thumb_func_end ov15_021FF950
|
|
|
|
thumb_func_start ov15_021FF964
|
|
ov15_021FF964: ; 0x021FF964
|
|
push {r3, lr}
|
|
ldr r1, _021FF978 ; =0x00000648
|
|
ldrb r1, [r0, r1]
|
|
cmp r1, #0
|
|
beq _021FF976
|
|
cmp r1, #1
|
|
bne _021FF976
|
|
bl ov15_021FFEC0
|
|
_021FF976:
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_021FF978: .word 0x00000648
|
|
thumb_func_end ov15_021FF964
|
|
|
|
thumb_func_start ov15_021FF97C
|
|
ov15_021FF97C: ; 0x021FF97C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
mov r0, #0x9b
|
|
lsl r0, r0, #2
|
|
add r4, r2, #0
|
|
add r6, r1, #0
|
|
ldr r0, [r5, r0]
|
|
add r1, r4, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
mov r0, #0x27
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
add r1, r4, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
cmp r4, #0
|
|
beq _021FFA34
|
|
add r0, r6, #0
|
|
bl TMHMGetMove
|
|
mov r1, #3
|
|
add r4, r0, #0
|
|
bl GetMoveAttr
|
|
lsl r0, r0, #0x10
|
|
lsr r6, r0, #0x10
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl GetMoveAttr
|
|
lsl r0, r0, #0x10
|
|
lsr r4, r0, #0x10
|
|
bl sub_020776B4
|
|
add r7, r0, #0
|
|
add r0, r6, #0
|
|
bl sub_02077678
|
|
add r3, r0, #0
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r0, _021FFA38 ; =0x0000C103
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
add r2, r7, #0
|
|
bl sub_0200E248
|
|
add r0, r6, #0
|
|
bl sub_0207769C
|
|
add r1, r0, #0
|
|
mov r0, #0x9b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r1, r1, #4
|
|
bl UnkImageStruct_SetSpritePalIndex
|
|
bl sub_02077830
|
|
add r6, r0, #0
|
|
add r0, r4, #0
|
|
bl sub_02077800
|
|
add r3, r0, #0
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r0, _021FFA3C ; =0x0000C104
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
add r2, r6, #0
|
|
bl sub_0200E248
|
|
add r0, r4, #0
|
|
bl sub_02077818
|
|
add r1, r0, #0
|
|
mov r0, #0x27
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
add r1, r1, #4
|
|
bl UnkImageStruct_SetSpritePalIndex
|
|
_021FFA34:
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021FFA38: .word 0x0000C103
|
|
_021FFA3C: .word 0x0000C104
|
|
thumb_func_end ov15_021FF97C
|
|
|
|
thumb_func_start ov15_021FFA40
|
|
ov15_021FFA40: ; 0x021FFA40
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x4c
|
|
ldr r3, _021FFAC4 ; =ov15_022009BC
|
|
add r2, sp, #0x34
|
|
add r4, r0, #0
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
mov r0, #6
|
|
bl SpriteRenderer_Create
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
bl SpriteRenderer_CreateGfxHandler
|
|
mov r7, #0x93
|
|
lsl r7, r7, #2
|
|
add r2, sp, #0x14
|
|
ldr r3, _021FFAC8 ; =ov15_022009F4
|
|
str r0, [r4, r7]
|
|
ldmia r3!, {r0, r1}
|
|
add r6, r2, #0
|
|
stmia r2!, {r0, r1}
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldmia r3!, {r0, r1}
|
|
ldr r5, _021FFACC ; =ov15_022009A8
|
|
stmia r2!, {r0, r1}
|
|
add r3, sp, #0
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
add r1, r6, #0
|
|
str r0, [r3]
|
|
sub r0, r7, #4
|
|
ldr r0, [r4, r0]
|
|
mov r3, #0x20
|
|
bl SpriteRenderer_CreateOamCharPlttManagers
|
|
sub r1, r7, #4
|
|
ldr r0, [r4, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
mov r2, #0x27
|
|
bl SpriteRenderer_CreateSpriteList
|
|
sub r1, r7, #4
|
|
ldr r0, [r4, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
add r2, sp, #0x34
|
|
bl SpriteRenderer_Init2DGfxResManagersFromCountsArray
|
|
add sp, #0x4c
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_021FFAC4: .word ov15_022009BC
|
|
_021FFAC8: .word ov15_022009F4
|
|
_021FFACC: .word ov15_022009A8
|
|
thumb_func_end ov15_021FFA40
|
|
|
|
thumb_func_start ov15_021FFAD0
|
|
ov15_021FFAD0: ; 0x021FFAD0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FFDAC ; =0x0000C0F9
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #8]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0xf
|
|
mov r3, #0x1a
|
|
bl SpriteRenderer_LoadCharResObjFromNarcId
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FFDB0 ; =0x0000C0FA
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #8]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0xf
|
|
mov r3, #6
|
|
bl SpriteRenderer_LoadCharResObjFromNarcId
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FFDB4 ; =0x0000C0FB
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #8]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0xf
|
|
mov r3, #0x33
|
|
bl SpriteRenderer_LoadCharResObjFromNarcId
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, _021FFDB8 ; =0x0000C102
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #8]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0x3c
|
|
mov r3, #4
|
|
bl SpriteRenderer_LoadCharResObjFromNarcId
|
|
mov r4, #0
|
|
add r6, r4, #0
|
|
mov r7, #2
|
|
_021FFB54:
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl GetItemIndexMapping
|
|
add r3, r0, #0
|
|
ldr r0, _021FFDBC ; =0x0000C0FC
|
|
str r6, [sp]
|
|
mov r1, #0x93
|
|
str r7, [sp, #4]
|
|
add r0, r4, r0
|
|
str r0, [sp, #8]
|
|
mov r0, #0x92
|
|
lsl r0, r0, #2
|
|
lsl r1, r1, #2
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0x12
|
|
bl SpriteRenderer_LoadCharResObjFromNarcId
|
|
add r4, r4, #1
|
|
cmp r4, #6
|
|
blt _021FFB54
|
|
ldr r0, _021FFDC0 ; =0x0000C103
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
str r0, [sp]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
mov r2, #1
|
|
mov r3, #0
|
|
bl sub_020776B8
|
|
ldr r0, _021FFDC4 ; =0x0000C104
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
str r0, [sp]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
mov r2, #1
|
|
mov r3, #0
|
|
bl sub_02077834
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
ldr r0, _021FFDAC ; =0x0000C0F9
|
|
mov r1, #0x92
|
|
mov r2, #0xf
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
add r3, r2, #0
|
|
bl SpriteRenderer_LoadPlttResObjFromNarcId
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
ldr r0, _021FFDC8 ; =0x0000C101
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0x3c
|
|
mov r3, #0xa
|
|
bl SpriteRenderer_LoadPlttResObjFromNarcId
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
ldr r3, _021FFDB8 ; =0x0000C102
|
|
mov r2, #1
|
|
bl sub_020776EC
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #0xa
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
ldr r0, _021FFDB0 ; =0x0000C0FA
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0xf
|
|
mov r3, #0x2f
|
|
bl SpriteRenderer_LoadPlttResObjFromNarcId
|
|
mov r4, #0
|
|
add r6, r4, #0
|
|
mov r7, #1
|
|
_021FFC2A:
|
|
mov r0, #0
|
|
mov r1, #2
|
|
bl GetItemIndexMapping
|
|
str r6, [sp]
|
|
add r3, r0, #0
|
|
mov r1, #0x93
|
|
str r7, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
ldr r0, _021FFDB4 ; =0x0000C0FB
|
|
lsl r1, r1, #2
|
|
add r0, r4, r0
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x92
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0x12
|
|
bl SpriteRenderer_LoadPlttResObjFromNarcId
|
|
add r4, r4, #1
|
|
cmp r4, #6
|
|
blt _021FFC2A
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, _021FFDAC ; =0x0000C0F9
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0xf
|
|
mov r3, #0x19
|
|
bl SpriteRenderer_LoadCellResObjFromNarcId
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, _021FFDB0 ; =0x0000C0FA
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0xf
|
|
mov r3, #5
|
|
bl SpriteRenderer_LoadCellResObjFromNarcId
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, _021FFDB4 ; =0x0000C0FB
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0xf
|
|
mov r3, #0x31
|
|
bl SpriteRenderer_LoadCellResObjFromNarcId
|
|
bl GetItemIconCell
|
|
add r3, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, _021FFDBC ; =0x0000C0FC
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0x12
|
|
bl SpriteRenderer_LoadCellResObjFromNarcId
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, _021FFDCC ; =0x0000C0FD
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0x3c
|
|
mov r3, #5
|
|
bl SpriteRenderer_LoadCellResObjFromNarcId
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, _021FFDAC ; =0x0000C0F9
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0xf
|
|
mov r3, #0x15
|
|
bl SpriteRenderer_LoadAnimResObjFromNarcId
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, _021FFDB0 ; =0x0000C0FA
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0xf
|
|
mov r3, #0x18
|
|
bl SpriteRenderer_LoadAnimResObjFromNarcId
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, _021FFDB4 ; =0x0000C0FB
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0xf
|
|
mov r3, #4
|
|
bl SpriteRenderer_LoadAnimResObjFromNarcId
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, _021FFDBC ; =0x0000C0FC
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0xf
|
|
mov r3, #0x32
|
|
bl SpriteRenderer_LoadAnimResObjFromNarcId
|
|
bl GetItemIconAnim
|
|
add r3, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, _021FFDCC ; =0x0000C0FD
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0x12
|
|
bl SpriteRenderer_LoadAnimResObjFromNarcId
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, _021FFDD0 ; =0x0000C0FE
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0x3c
|
|
mov r3, #6
|
|
bl SpriteRenderer_LoadAnimResObjFromNarcId
|
|
mov r1, #0x92
|
|
lsl r1, r1, #2
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r2, _021FFDD0 ; =0x0000C0FE
|
|
ldr r1, [r5, r1]
|
|
add r3, r2, #1
|
|
bl sub_0207775C
|
|
mov r2, #0x6a
|
|
lsl r2, r2, #4
|
|
mov r0, #0xf
|
|
mov r1, #0x30
|
|
add r2, r5, r2
|
|
mov r3, #6
|
|
bl GfGfxLoader_GetPlttData
|
|
ldr r1, _021FFDD4 ; =0x0000069C
|
|
str r0, [r5, r1]
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021FFDAC: .word 0x0000C0F9
|
|
_021FFDB0: .word 0x0000C0FA
|
|
_021FFDB4: .word 0x0000C0FB
|
|
_021FFDB8: .word 0x0000C102
|
|
_021FFDBC: .word 0x0000C0FC
|
|
_021FFDC0: .word 0x0000C103
|
|
_021FFDC4: .word 0x0000C104
|
|
_021FFDC8: .word 0x0000C101
|
|
_021FFDCC: .word 0x0000C0FD
|
|
_021FFDD0: .word 0x0000C0FE
|
|
_021FFDD4: .word 0x0000069C
|
|
thumb_func_end ov15_021FFAD0
|
|
|
|
thumb_func_start ov15_021FFDD8
|
|
ov15_021FFDD8: ; 0x021FFDD8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
ldr r4, _021FFEBC ; =ov15_02200B0C
|
|
mov r7, #0
|
|
add r5, r6, #0
|
|
_021FFDE2:
|
|
mov r0, #0x92
|
|
mov r1, #0x93
|
|
lsl r0, r0, #2
|
|
lsl r1, r1, #2
|
|
mov r3, #1
|
|
ldr r0, [r6, r0]
|
|
ldr r1, [r6, r1]
|
|
add r2, r4, #0
|
|
lsl r3, r3, #0x14
|
|
bl SpriteRenderer_LoadResourcesAndCreateSprite_CustomBottomScreenOffset
|
|
mov r1, #0x25
|
|
lsl r1, r1, #4
|
|
str r0, [r5, r1]
|
|
add r7, r7, #1
|
|
add r4, #0x34
|
|
add r5, r5, #4
|
|
cmp r7, #0x27
|
|
blo _021FFDE2
|
|
add r0, r1, #0
|
|
add r0, #0x4c
|
|
ldr r0, [r6, r0]
|
|
mov r1, #1
|
|
bl UnkImageStruct_SetSpritePriority
|
|
mov r7, #0xb
|
|
mov r5, #0
|
|
add r4, r6, #0
|
|
lsl r7, r7, #6
|
|
_021FFE1C:
|
|
ldr r0, [r4, r7]
|
|
mov r1, #1
|
|
bl UnkImageStruct_SetSpritePriority
|
|
add r5, r5, #1
|
|
add r4, r4, #4
|
|
cmp r5, #4
|
|
blo _021FFE1C
|
|
mov r7, #0x9d
|
|
mov r5, #0
|
|
add r4, r6, #0
|
|
lsl r7, r7, #2
|
|
_021FFE34:
|
|
ldr r0, [r4, r7]
|
|
mov r1, #1
|
|
bl UnkImageStruct_SetSpritePriority
|
|
add r5, r5, #1
|
|
add r4, r4, #4
|
|
cmp r5, #8
|
|
blo _021FFE34
|
|
add r0, r6, #0
|
|
mov r1, #1
|
|
bl ov15_02200458
|
|
mov r0, #0x25
|
|
lsl r0, r0, #4
|
|
ldr r0, [r6, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
mov r0, #0x9b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
mov r0, #0x27
|
|
lsl r0, r0, #4
|
|
ldr r0, [r6, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
mov r7, #0xb
|
|
mov r5, #0
|
|
add r4, r6, #0
|
|
lsl r7, r7, #6
|
|
_021FFE78:
|
|
ldr r0, [r4, r7]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
add r5, r5, #1
|
|
add r4, r4, #4
|
|
cmp r5, #4
|
|
blo _021FFE78
|
|
mov r7, #0x2d
|
|
mov r5, #0
|
|
add r4, r6, #0
|
|
lsl r7, r7, #4
|
|
_021FFE90:
|
|
ldr r0, [r4, r7]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
add r5, r5, #1
|
|
add r4, r4, #4
|
|
cmp r5, #6
|
|
blo _021FFE90
|
|
mov r0, #0xba
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
mov r0, #0xba
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
mov r1, #1
|
|
bl UnkImageStruct_SetSpritePriority
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021FFEBC: .word ov15_02200B0C
|
|
thumb_func_end ov15_021FFDD8
|
|
|
|
thumb_func_start ov15_021FFEC0
|
|
ov15_021FFEC0: ; 0x021FFEC0
|
|
ldr r1, _021FFEC8 ; =0x00000648
|
|
mov r2, #0
|
|
strb r2, [r0, r1]
|
|
bx lr
|
|
.balign 4, 0
|
|
_021FFEC8: .word 0x00000648
|
|
thumb_func_end ov15_021FFEC0
|
|
|
|
thumb_func_start ov15_021FFECC
|
|
ov15_021FFECC: ; 0x021FFECC
|
|
push {r3, r4, r5, lr}
|
|
lsl r4, r1, #2
|
|
ldr r1, _021FFF14 ; =ov15_02200AB8
|
|
ldr r2, _021FFF18 ; =ov15_02200AB9
|
|
add r5, r0, #0
|
|
mov r0, #0x2a
|
|
lsl r0, r0, #4
|
|
mov r3, #1
|
|
ldrb r1, [r1, r4]
|
|
ldrb r2, [r2, r4]
|
|
ldr r0, [r5, r0]
|
|
lsl r3, r3, #0x14
|
|
bl UnkImageStruct_SetSpritePositionXY_CustomScreenYOffset
|
|
ldr r1, _021FFF1C ; =ov15_02200ABA
|
|
mov r0, #0x2a
|
|
lsl r0, r0, #4
|
|
ldrb r1, [r1, r4]
|
|
ldr r0, [r5, r0]
|
|
bl UnkImageStruct_SetSpriteAnimSeqNo
|
|
ldr r1, _021FFF20 ; =ov15_02200ABB
|
|
mov r0, #0x2a
|
|
lsl r0, r0, #4
|
|
ldrb r1, [r1, r4]
|
|
ldr r0, [r5, r0]
|
|
bl UnkImageStruct_SetSpritePalIndex
|
|
mov r0, #0x2a
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #1
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021FFF14: .word ov15_02200AB8
|
|
_021FFF18: .word ov15_02200AB9
|
|
_021FFF1C: .word ov15_02200ABA
|
|
_021FFF20: .word ov15_02200ABB
|
|
thumb_func_end ov15_021FFECC
|
|
|
|
thumb_func_start ov15_021FFF24
|
|
ov15_021FFF24: ; 0x021FFF24
|
|
mov r1, #0x2a
|
|
lsl r1, r1, #4
|
|
ldr r0, [r0, r1]
|
|
ldr r3, _021FFF30 ; =UnkImageStruct_SetSpriteVisibleFlag
|
|
mov r1, #0
|
|
bx r3
|
|
.balign 4, 0
|
|
_021FFF30: .word UnkImageStruct_SetSpriteVisibleFlag
|
|
thumb_func_end ov15_021FFF24
|
|
|
|
thumb_func_start ov15_021FFF34
|
|
ov15_021FFF34: ; 0x021FFF34
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #9
|
|
blt _021FFF42
|
|
bl GF_AssertFail
|
|
_021FFF42:
|
|
cmp r4, #8
|
|
bne _021FFF58
|
|
ldr r1, _021FFFC8 ; =ov15_02200A36
|
|
mov r0, #0x2a
|
|
lsl r2, r4, #2
|
|
lsl r0, r0, #4
|
|
ldrb r1, [r1, r2]
|
|
ldr r0, [r5, r0]
|
|
bl UnkImageStruct_SetSpriteAnimSeqNo
|
|
b _021FFFA0
|
|
_021FFF58:
|
|
mov r2, #0x8d
|
|
lsl r2, r2, #2
|
|
ldr r0, [r5, r2]
|
|
add r3, r0, #4
|
|
add r0, #0x64
|
|
ldrb r1, [r0]
|
|
mov r0, #0xc
|
|
mul r0, r1
|
|
add r1, r3, r0
|
|
mov r0, #6
|
|
ldr r3, _021FFFCC ; =0x00000672
|
|
ldrsh r0, [r1, r0]
|
|
ldrb r3, [r5, r3]
|
|
add r0, r0, r4
|
|
cmp r0, r3
|
|
bne _021FFF84
|
|
add r2, #0x6c
|
|
ldr r0, [r5, r2]
|
|
mov r1, #0xa
|
|
bl UnkImageStruct_SetSpriteAnimSeqNo
|
|
b _021FFFA0
|
|
_021FFF84:
|
|
ldrb r1, [r1, #9]
|
|
cmp r0, r1
|
|
blt _021FFF96
|
|
add r2, #0x6c
|
|
ldr r0, [r5, r2]
|
|
mov r1, #0x28
|
|
bl UnkImageStruct_SetSpriteAnimSeqNo
|
|
b _021FFFA0
|
|
_021FFF96:
|
|
add r2, #0x6c
|
|
ldr r0, [r5, r2]
|
|
mov r1, #0x14
|
|
bl UnkImageStruct_SetSpriteAnimSeqNo
|
|
_021FFFA0:
|
|
ldr r1, _021FFFD0 ; =ov15_02200A34
|
|
lsl r4, r4, #2
|
|
ldr r2, _021FFFD4 ; =ov15_02200A35
|
|
mov r0, #0x2a
|
|
lsl r0, r0, #4
|
|
mov r3, #1
|
|
ldrb r1, [r1, r4]
|
|
ldrb r2, [r2, r4]
|
|
ldr r0, [r5, r0]
|
|
lsl r3, r3, #0x14
|
|
bl UnkImageStruct_SetSpritePositionXY_CustomScreenYOffset
|
|
ldr r1, _021FFFD8 ; =ov15_02200A37
|
|
mov r0, #0x2a
|
|
lsl r0, r0, #4
|
|
ldrb r1, [r1, r4]
|
|
ldr r0, [r5, r0]
|
|
bl UnkImageStruct_SetSpritePalIndex
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021FFFC8: .word ov15_02200A36
|
|
_021FFFCC: .word 0x00000672
|
|
_021FFFD0: .word ov15_02200A34
|
|
_021FFFD4: .word ov15_02200A35
|
|
_021FFFD8: .word ov15_02200A37
|
|
thumb_func_end ov15_021FFF34
|
|
|
|
thumb_func_start ov15_021FFFDC
|
|
ov15_021FFFDC: ; 0x021FFFDC
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #8
|
|
blt _021FFFEA
|
|
bl GF_AssertFail
|
|
_021FFFEA:
|
|
ldr r1, _02200020 ; =ov15_022009D4
|
|
lsl r4, r4, #2
|
|
ldr r2, _02200024 ; =ov15_022009D5
|
|
mov r0, #0x2a
|
|
lsl r0, r0, #4
|
|
mov r3, #1
|
|
ldrb r1, [r1, r4]
|
|
ldrb r2, [r2, r4]
|
|
ldr r0, [r5, r0]
|
|
lsl r3, r3, #0x14
|
|
bl UnkImageStruct_SetSpritePositionXY_CustomScreenYOffset
|
|
ldr r1, _02200028 ; =ov15_022009D6
|
|
mov r0, #0x2a
|
|
lsl r0, r0, #4
|
|
ldrb r1, [r1, r4]
|
|
ldr r0, [r5, r0]
|
|
bl UnkImageStruct_SetSpriteAnimSeqNo
|
|
ldr r1, _0220002C ; =ov15_022009D7
|
|
mov r0, #0x2a
|
|
lsl r0, r0, #4
|
|
ldrb r1, [r1, r4]
|
|
ldr r0, [r5, r0]
|
|
bl UnkImageStruct_SetSpritePalIndex
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_02200020: .word ov15_022009D4
|
|
_02200024: .word ov15_022009D5
|
|
_02200028: .word ov15_022009D6
|
|
_0220002C: .word ov15_022009D7
|
|
thumb_func_end ov15_021FFFDC
|
|
|
|
thumb_func_start ov15_02200030
|
|
ov15_02200030: ; 0x02200030
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
cmp r5, #7
|
|
bgt _02200058
|
|
mov r1, #0x6a
|
|
lsl r1, r1, #4
|
|
ldr r0, [r0, r1]
|
|
mov r2, #1
|
|
ldr r4, [r0, #0xc]
|
|
lsl r2, r2, #8
|
|
add r0, r4, r2
|
|
mov r1, #0
|
|
bl GXS_LoadOBJPltt
|
|
lsl r0, r5, #5
|
|
add r0, r4, r0
|
|
lsl r1, r5, #5
|
|
mov r2, #0x20
|
|
bl GXS_LoadOBJPltt
|
|
_02200058:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_02200030
|
|
|
|
thumb_func_start ov15_0220005C
|
|
ov15_0220005C: ; 0x0220005C
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
str r0, [sp]
|
|
add r6, r1, #0
|
|
str r2, [sp, #4]
|
|
str r3, [sp, #8]
|
|
bne _02200096
|
|
mov r4, #0
|
|
mov r6, #0xa9
|
|
add r5, r0, #0
|
|
add r7, r4, #0
|
|
lsl r6, r6, #2
|
|
_02200074:
|
|
ldr r0, [r5, r6]
|
|
add r1, r7, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #6
|
|
blt _02200074
|
|
mov r1, #0xaf
|
|
ldr r0, [sp]
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02200096:
|
|
mov r7, #0xa9
|
|
mov r5, #0
|
|
add r4, r0, #0
|
|
lsl r7, r7, #2
|
|
_0220009E:
|
|
cmp r5, r6
|
|
bge _022000AC
|
|
ldr r0, [r4, r7]
|
|
mov r1, #1
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
b _022000B8
|
|
_022000AC:
|
|
mov r0, #0xa9
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
_022000B8:
|
|
add r5, r5, #1
|
|
add r4, r4, #4
|
|
cmp r5, #6
|
|
blt _0220009E
|
|
ldr r0, [sp, #4]
|
|
cmp r0, #0
|
|
blt _022000DC
|
|
add r0, #0x15
|
|
str r0, [sp, #4]
|
|
lsl r1, r0, #2
|
|
ldr r0, [sp]
|
|
add r1, r0, r1
|
|
mov r0, #0x25
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
_022000DC:
|
|
ldr r0, [sp, #8]
|
|
cmp r0, #0
|
|
beq _022000F0
|
|
mov r1, #0xaf
|
|
ldr r0, [sp]
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
_022000F0:
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end ov15_0220005C
|
|
|
|
thumb_func_start ov15_022000F4
|
|
ov15_022000F4: ; 0x022000F4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r3, [r4, r0]
|
|
add r1, r3, #0
|
|
add r1, #0x64
|
|
ldrb r2, [r1]
|
|
mov r1, #0xc
|
|
mul r1, r2
|
|
add r1, r3, r1
|
|
ldrb r1, [r1, #0xd]
|
|
cmp r1, #6
|
|
bhi _02200128
|
|
add r0, #0x60
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
mov r0, #0xa6
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
pop {r4, pc}
|
|
_02200128:
|
|
add r0, #0x60
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
mov r0, #0xa6
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
pop {r4, pc}
|
|
thumb_func_end ov15_022000F4
|
|
|
|
thumb_func_start ov15_02200140
|
|
ov15_02200140: ; 0x02200140
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r7, r0, #0
|
|
ldr r6, _022001BC ; =ov15_02200B0C
|
|
str r1, [sp]
|
|
str r2, [sp, #4]
|
|
str r3, [sp, #8]
|
|
mov r4, #0
|
|
add r5, r7, #0
|
|
_02200152:
|
|
mov r0, #0x95
|
|
mov r1, #0x34
|
|
mov r2, #0x36
|
|
lsl r0, r0, #2
|
|
mov r3, #1
|
|
ldrsh r1, [r6, r1]
|
|
ldrsh r2, [r6, r2]
|
|
ldr r0, [r5, r0]
|
|
lsl r3, r3, #0x14
|
|
bl UnkImageStruct_SetSpritePositionXY_CustomScreenYOffset
|
|
ldr r0, [sp, #4]
|
|
cmp r4, r0
|
|
bge _0220019A
|
|
ldr r0, [sp, #8]
|
|
cmp r0, #0
|
|
beq _0220018C
|
|
ldr r3, [sp]
|
|
mov r2, #6
|
|
ldrsh r2, [r3, r2]
|
|
add r0, r7, #0
|
|
add r1, r4, #0
|
|
add r2, r2, r4
|
|
lsl r2, r2, #1
|
|
add r3, r7, r2
|
|
ldr r2, _022001C0 ; =0x000006A4
|
|
ldrh r2, [r3, r2]
|
|
bl ov15_021FF8F0
|
|
_0220018C:
|
|
mov r0, #0x95
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #1
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
b _022001A6
|
|
_0220019A:
|
|
mov r0, #0x95
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
_022001A6:
|
|
add r4, r4, #1
|
|
add r6, #0x34
|
|
add r5, r5, #4
|
|
cmp r4, #6
|
|
blt _02200152
|
|
add r0, r7, #0
|
|
bl ov15_022000F4
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_022001BC: .word ov15_02200B0C
|
|
_022001C0: .word 0x000006A4
|
|
thumb_func_end ov15_02200140
|
|
|
|
thumb_func_start ov15_022001C4
|
|
ov15_022001C4: ; 0x022001C4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r2, #0
|
|
str r0, [sp]
|
|
add r4, r1, #0
|
|
mov r7, #0
|
|
add r0, r5, #0
|
|
mov r1, #6
|
|
mvn r7, r7
|
|
bl _s32_div_f
|
|
mov r1, #6
|
|
add r2, r0, #0
|
|
ldrsh r3, [r4, r1]
|
|
mul r2, r1
|
|
cmp r3, r2
|
|
bne _022001EC
|
|
add r0, r5, #0
|
|
bl _s32_div_f
|
|
add r7, r1, #0
|
|
_022001EC:
|
|
ldr r4, _02200238 ; =ov15_02200B0C
|
|
ldr r5, [sp]
|
|
mov r6, #0
|
|
_022001F2:
|
|
mov r0, #0x95
|
|
mov r1, #0x34
|
|
mov r2, #0x36
|
|
lsl r0, r0, #2
|
|
mov r3, #1
|
|
ldrsh r1, [r4, r1]
|
|
ldrsh r2, [r4, r2]
|
|
ldr r0, [r5, r0]
|
|
lsl r3, r3, #0x14
|
|
bl UnkImageStruct_SetSpritePositionXY_CustomScreenYOffset
|
|
cmp r6, r7
|
|
bne _0220021A
|
|
mov r0, #0x95
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #1
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
b _02200226
|
|
_0220021A:
|
|
mov r0, #0x95
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
_02200226:
|
|
add r6, r6, #1
|
|
add r4, #0x34
|
|
add r5, r5, #4
|
|
cmp r6, #6
|
|
blt _022001F2
|
|
ldr r0, [sp]
|
|
bl ov15_022000F4
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_02200238: .word ov15_02200B0C
|
|
thumb_func_end ov15_022001C4
|
|
|
|
thumb_func_start ov15_0220023C
|
|
ov15_0220023C: ; 0x0220023C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
mov r0, #0x2a
|
|
lsl r0, r0, #4
|
|
add r6, r1, #0
|
|
ldr r0, [r7, r0]
|
|
mov r1, #1
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
mov r4, #0
|
|
add r5, r7, #0
|
|
_02200252:
|
|
ldrb r0, [r6, r4]
|
|
cmp r0, #0xff
|
|
beq _02200266
|
|
mov r0, #0xb
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
mov r1, #1
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
b _02200272
|
|
_02200266:
|
|
mov r0, #0xb
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
_02200272:
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _02200252
|
|
mov r0, #0xa5
|
|
lsl r0, r0, #2
|
|
ldr r0, [r7, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
mov r0, #0xa6
|
|
lsl r0, r0, #2
|
|
ldr r0, [r7, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov15_0220023C
|
|
|
|
thumb_func_start ov15_02200294
|
|
ov15_02200294: ; 0x02200294
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r4, #0
|
|
mov r6, #0xb
|
|
add r5, r0, #0
|
|
add r7, r4, #0
|
|
lsl r6, r6, #6
|
|
_022002A0:
|
|
ldr r0, [r5, r6]
|
|
add r1, r7, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _022002A0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_02200294
|
|
|
|
thumb_func_start ov15_022002B4
|
|
ov15_022002B4: ; 0x022002B4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r7, #0x95
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r4, #0
|
|
lsl r7, r7, #2
|
|
_022002C0:
|
|
cmp r6, r4
|
|
beq _022002CE
|
|
ldr r0, [r5, r7]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
b _022002E0
|
|
_022002CE:
|
|
mov r0, #0x95
|
|
lsl r0, r0, #2
|
|
mov r3, #1
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x56
|
|
mov r2, #0x4c
|
|
lsl r3, r3, #0x14
|
|
bl UnkImageStruct_SetSpritePositionXY_CustomScreenYOffset
|
|
_022002E0:
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #6
|
|
blt _022002C0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_022002B4
|
|
|
|
thumb_func_start ov15_022002EC
|
|
ov15_022002EC: ; 0x022002EC
|
|
mov r1, #0
|
|
cmp r0, #0x64
|
|
bge _022002F4
|
|
mov r1, #1
|
|
_022002F4:
|
|
cmp r0, #0xa
|
|
bge _022002FA
|
|
mov r1, #2
|
|
_022002FA:
|
|
add r0, r1, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov15_022002EC
|
|
|
|
thumb_func_start ov15_02200300
|
|
ov15_02200300: ; 0x02200300
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
add r0, r1, #0
|
|
str r1, [sp]
|
|
str r2, [sp, #4]
|
|
cmp r0, #2
|
|
bne _0220031A
|
|
add r0, r2, #0
|
|
cmp r0, #0x63
|
|
ble _0220031A
|
|
mov r0, #0x63
|
|
str r0, [sp, #4]
|
|
_0220031A:
|
|
ldr r0, [sp]
|
|
ldr r2, _02200414 ; =ov15_02200998
|
|
sub r0, r0, #2
|
|
lsl r1, r0, #2
|
|
str r1, [sp, #8]
|
|
ldr r1, [r2, r1]
|
|
mov r7, #0
|
|
cmp r1, #0
|
|
ble _0220036C
|
|
mov r1, #0x18
|
|
mul r1, r0
|
|
ldr r0, _02200418 ; =ov15_02200A58
|
|
add r4, r0, r1
|
|
ldr r0, _0220041C ; =ov15_02200A88
|
|
add r6, r0, r1
|
|
_02200338:
|
|
ldr r0, [r4]
|
|
lsl r0, r0, #2
|
|
add r1, r5, r0
|
|
mov r0, #0x2d
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
mov r1, #1
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
ldr r0, [r4]
|
|
lsl r0, r0, #2
|
|
add r1, r5, r0
|
|
mov r0, #0x2d
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
ldr r1, [r6]
|
|
bl UnkImageStruct_SetSpriteAnimSeqNo
|
|
ldr r1, _02200414 ; =ov15_02200998
|
|
ldr r0, [sp, #8]
|
|
add r7, r7, #1
|
|
ldr r0, [r1, r0]
|
|
add r4, r4, #4
|
|
add r6, r6, #4
|
|
cmp r7, r0
|
|
blt _02200338
|
|
_0220036C:
|
|
ldr r0, [sp, #4]
|
|
bl ov15_022002EC
|
|
cmp r0, #0
|
|
beq _022003D4
|
|
ldr r1, [sp]
|
|
sub r1, r1, #2
|
|
bne _0220039A
|
|
cmp r0, #2
|
|
bne _0220039A
|
|
mov r0, #0x2d
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
mov r0, #0xb7
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
b _022003D4
|
|
_0220039A:
|
|
ldr r1, [sp]
|
|
sub r1, r1, #2
|
|
cmp r1, #1
|
|
bne _022003D4
|
|
sub r2, r0, #1
|
|
ldr r0, _02200420 ; =ov15_022009A0
|
|
lsl r7, r2, #2
|
|
ldr r0, [r0, r7]
|
|
mov r4, #0
|
|
cmp r0, #0
|
|
ble _022003D4
|
|
ldr r1, _02200424 ; =ov15_02200A14
|
|
lsl r0, r2, #4
|
|
add r6, r1, r0
|
|
_022003B6:
|
|
ldr r0, [r6]
|
|
lsl r0, r0, #2
|
|
add r1, r5, r0
|
|
mov r0, #0x2d
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
ldr r0, _02200420 ; =ov15_022009A0
|
|
add r4, r4, #1
|
|
ldr r0, [r0, r7]
|
|
add r6, r6, #4
|
|
cmp r4, r0
|
|
blt _022003B6
|
|
_022003D4:
|
|
mov r0, #0xba
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #1
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
mov r0, #0xba
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteAnimCtrlCurrentFrame
|
|
mov r0, #0xba
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x25
|
|
bl UnkImageStruct_SetSpriteAnimSeqNo
|
|
mov r0, #0xa7
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteAnimCtrlCurrentFrame
|
|
mov r0, #0xa7
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x27
|
|
bl UnkImageStruct_SetSpriteAnimSeqNo
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_02200414: .word ov15_02200998
|
|
_02200418: .word ov15_02200A58
|
|
_0220041C: .word ov15_02200A88
|
|
_02200420: .word ov15_022009A0
|
|
_02200424: .word ov15_02200A14
|
|
thumb_func_end ov15_02200300
|
|
|
|
thumb_func_start ov15_02200428
|
|
ov15_02200428: ; 0x02200428
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r4, #0
|
|
mov r6, #0x2d
|
|
str r0, [sp]
|
|
add r5, r0, #0
|
|
add r7, r4, #0
|
|
lsl r6, r6, #4
|
|
_02200436:
|
|
ldr r0, [r5, r6]
|
|
add r1, r7, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #6
|
|
blt _02200436
|
|
mov r1, #0xba
|
|
ldr r0, [sp]
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov15_02200428
|
|
|
|
thumb_func_start ov15_02200458
|
|
ov15_02200458: ; 0x02200458
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r7, r1, #0
|
|
add r5, r0, #0
|
|
cmp r7, #1
|
|
beq _0220046C
|
|
cmp r7, #0
|
|
beq _0220046C
|
|
bl GF_AssertFail
|
|
_0220046C:
|
|
add r0, sp, #0
|
|
mov r1, #0
|
|
mov r2, #8
|
|
bl MI_CpuFill8
|
|
mov r6, #0
|
|
add r4, r6, #0
|
|
_0220047A:
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r0, r0, r4
|
|
ldrb r0, [r0, #0xc]
|
|
cmp r0, #8
|
|
blo _0220048C
|
|
bl GF_AssertFail
|
|
_0220048C:
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r1, r0, r4
|
|
ldr r0, [r1, #4]
|
|
cmp r0, #0
|
|
beq _022004A2
|
|
ldrb r2, [r1, #0xc]
|
|
mov r1, #1
|
|
add r0, sp, #0
|
|
strb r1, [r0, r2]
|
|
_022004A2:
|
|
add r6, r6, #1
|
|
add r4, #0xc
|
|
cmp r6, #8
|
|
blt _0220047A
|
|
mov r6, #0
|
|
add r4, sp, #0
|
|
_022004AE:
|
|
ldrb r0, [r4]
|
|
cmp r0, #0
|
|
beq _022004C2
|
|
mov r0, #0x9d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r1, r7, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
b _022004CE
|
|
_022004C2:
|
|
mov r0, #0x9d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl UnkImageStruct_SetSpriteVisibleFlag
|
|
_022004CE:
|
|
add r6, r6, #1
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r6, #8
|
|
blt _022004AE
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov15_02200458
|
|
|
|
thumb_func_start ov15_022004DC
|
|
ov15_022004DC: ; 0x022004DC
|
|
mov r2, #0xa7
|
|
lsl r2, r2, #2
|
|
ldr r3, _022004E8 ; =UnkImageStruct_SetSpriteVisibleFlag
|
|
ldr r0, [r0, r2]
|
|
bx r3
|
|
nop
|
|
_022004E8: .word UnkImageStruct_SetSpriteVisibleFlag
|
|
thumb_func_end ov15_022004DC
|
|
|
|
.rodata
|
|
|
|
_022004EC:
|
|
.byte 0xFF, 0xFF, 0xFF, 0xFF
|
|
.byte 0xFF, 0x00, 0x00, 0x00
|
|
|
|
ov15_022004F4: ; 0x022004F4
|
|
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
|
|
|
|
ov15_02200500: ; 0x02200500
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov15_0220050C: ; 0x0220050C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x30, 0xFD, 0xFF, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov15_02200518: ; 0x02200518
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
|
|
ov15_02200528: ; 0x02200528
|
|
.byte 0x02
|
|
|
|
ov15_02200529: ; 0x02200529
|
|
.byte 0x02
|
|
|
|
ov15_0220052A: ; 0x0220052A
|
|
.byte 0x01
|
|
|
|
ov15_0220052B: ; 0x0220052B
|
|
.byte 0x01, 0x03, 0x03, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x04, 0x03, 0x01, 0x01, 0x02, 0x04, 0x04, 0x04, 0x03, 0x02
|
|
|
|
ov15_0220053C: ; 0x0220053C
|
|
.byte 0x51, 0x3B, 0x15, 0x00
|
|
.byte 0x82, 0xE9, 0x20, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov15_02200550:
|
|
.byte 0x80, 0x9F, 0x00, 0x5D, 0x80, 0x9F, 0x60, 0xBF, 0xA0, 0xBF, 0x00, 0x5D, 0xA0, 0xBF, 0x60, 0xBF
|
|
.byte 0xA8, 0xBF, 0xC0, 0xFF, 0xFF, 0x00, 0x00, 0x00
|
|
|
|
ov15_02200568:
|
|
.byte 0x58, 0x6F, 0x78, 0x97, 0x58, 0x6F, 0x98, 0xB7
|
|
.byte 0x88, 0x9F, 0x78, 0x97, 0x88, 0x9F, 0x98, 0xB7, 0xA8, 0xBF, 0x60, 0xAD, 0xA8, 0xBF, 0xB2, 0xFF
|
|
.byte 0xFF, 0x00, 0x00, 0x00
|
|
|
|
ov15_02200584: ; 0x02200584
|
|
.byte 0x0C
|
|
|
|
ov15_02200585: ; 0x02200585
|
|
.byte 0x0A
|
|
|
|
ov15_02200586: ; 0x02200586
|
|
.byte 0x0E
|
|
|
|
ov15_02200587: ; 0x02200587
|
|
.byte 0x09, 0x10, 0x0B, 0x08, 0x0F, 0x08, 0x0C, 0x0E, 0x0B
|
|
.byte 0x09, 0x0D, 0x0A, 0x0F, 0x0A, 0x08, 0x0E, 0x0D, 0x0B, 0x10, 0x0C, 0x0F, 0x0C, 0x08, 0x10, 0x10
|
|
.byte 0x0C, 0x08, 0x10, 0x10, 0x0D, 0x09, 0x10, 0x10
|
|
|
|
ov15_022005A8:
|
|
.byte 0x58, 0x6F, 0x78, 0x97, 0x58, 0x6F, 0x98, 0xB7
|
|
.byte 0x58, 0x6F, 0xB8, 0xD7, 0x88, 0x9F, 0x78, 0x97, 0x88, 0x9F, 0x98, 0xB7, 0x88, 0x9F, 0xB8, 0xD7
|
|
.byte 0xA8, 0xBF, 0x60, 0xAD, 0xA8, 0xBF, 0xB2, 0xFF, 0xFF, 0x00, 0x00, 0x00
|
|
|
|
ov15_022005CC: ; 0x022005CC
|
|
.byte 0x00, 0x10, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
|
|
|
|
ov15_022005F0:
|
|
.byte 0x20, 0x49, 0x00, 0x7F, 0x20, 0x49, 0x80, 0xFF, 0x4A, 0x75, 0x00, 0x7F, 0x4A, 0x75, 0x80, 0xFF
|
|
.byte 0x76, 0x99, 0x00, 0x7F, 0x76, 0x99, 0x80, 0xFF, 0xA8, 0xBF, 0x00, 0x27, 0xA8, 0xBF, 0x28, 0x4F
|
|
.byte 0xA8, 0xBF, 0xC0, 0xFF, 0xFF, 0x00, 0x00, 0x00
|
|
|
|
ov15_02200618: ; 0x02200618
|
|
.byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
|
|
|
|
ov15_02200640: ; 0x02200640
|
|
.byte 0x0C
|
|
|
|
ov15_02200641: ; 0x02200641
|
|
.byte 0x08
|
|
|
|
ov15_02200642: ; 0x02200642
|
|
.byte 0x07
|
|
|
|
ov15_02200643: ; 0x02200643
|
|
.byte 0x01, 0x0C, 0x08, 0x00, 0x02, 0x0C, 0x08, 0x01, 0x03, 0x0C, 0x08, 0x02, 0x04
|
|
.byte 0x10, 0x09, 0x03, 0x05, 0x10, 0x09, 0x04, 0x06, 0x10, 0x09, 0x05, 0x07, 0x10, 0x09, 0x06, 0x00
|
|
.byte 0x11, 0x0A, 0x0E, 0x09, 0x11, 0x0B, 0x08, 0x0F, 0x08, 0x0C, 0x0E, 0x0B, 0x09, 0x0D, 0x0A, 0x0F
|
|
.byte 0x0A, 0x11, 0x0E, 0x0D, 0x0B, 0x10, 0x0C, 0x0F, 0x0C, 0x11, 0x10, 0x10, 0x0C, 0x11, 0x10, 0x10
|
|
.byte 0x0D, 0x11, 0x10, 0x10
|
|
|
|
ov15_02200684:
|
|
.byte 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x20, 0x3F, 0x00, 0x1F, 0x40, 0x5F
|
|
.byte 0x00, 0x1F, 0x60, 0x7F, 0x00, 0x1F, 0x80, 0x9F, 0x00, 0x1F, 0xA0, 0xBF, 0x00, 0x1F, 0xC0, 0xDF
|
|
.byte 0x00, 0x1F, 0xE0, 0xFF, 0x20, 0x49, 0x00, 0x7F, 0x20, 0x49, 0x80, 0xFF, 0x4A, 0x75, 0x00, 0x7F
|
|
.byte 0x4A, 0x75, 0x80, 0xFF, 0x76, 0x99, 0x00, 0x7F, 0x76, 0x99, 0x80, 0xFF, 0xA8, 0xBF, 0x00, 0x27
|
|
.byte 0xA8, 0xBF, 0x28, 0x4F, 0xA8, 0xBF, 0xC0, 0xFF, 0xFF, 0x00, 0x00, 0x00
|
|
|
|
ov15_022006CC: ; 0x022006CC
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1F, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov15_022006E8: ; 0x022006E8
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1E, 0x02, 0x00, 0x01, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov15_02200704: ; 0x02200704
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1D, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov15_02200720: ; 0x02200720
|
|
.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
|
|
|
|
ov15_0220073C: ; 0x0220073C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1E, 0x00
|
|
.byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov15_02200758: ; 0x02200758
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1D, 0x00, 0x00, 0x03, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov15_02200774: ; 0x02200774
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov15_02200790: ; 0x02200790
|
|
.byte 0x82, 0xE9, 0x20, 0x14, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3B, 0x15, 0x00, 0x00, 0x80, 0xFD, 0xFF
|
|
.byte 0x82, 0xEE, 0x19, 0x67, 0x00, 0x00, 0x00, 0x00, 0x55, 0x3B, 0x15, 0x00, 0x00, 0xB0, 0xFD, 0xFF
|
|
.byte 0x87, 0xE0, 0x28, 0x48, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3B, 0x0E, 0x00, 0x00, 0x20, 0xFD, 0xFF
|
|
.byte 0x7F, 0xF0, 0x16, 0x78, 0x00, 0x00, 0x00, 0x00, 0x53, 0xEB, 0x14, 0x00, 0x02, 0x00, 0xFD, 0xFF
|
|
.byte 0x75, 0x03, 0x22, 0x56, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x5B, 0x0B, 0x00, 0x01, 0xB0, 0xFB, 0xFF
|
|
.byte 0x81, 0xE7, 0x27, 0x75, 0x00, 0x00, 0x00, 0x00, 0x58, 0xAB, 0x0C, 0x00, 0x06, 0x40, 0xFC, 0xFF
|
|
.byte 0x7E, 0xE8, 0x1A, 0x74, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x8B, 0x12, 0x00, 0xFE, 0x9F, 0xFC, 0xFF
|
|
.byte 0x80, 0xEB, 0x1B, 0x92, 0x00, 0x00, 0x00, 0x00, 0x52, 0x1B, 0x0D, 0x00, 0x00, 0xA0, 0xFB, 0xFF
|
|
.byte 0x87, 0x05, 0x1F, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3B, 0x15, 0x00, 0xFF, 0xFF, 0xFD, 0xFF
|
|
.byte 0x82, 0xE9, 0x20, 0x14, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3B, 0x15, 0x00, 0x00, 0x80, 0xFD, 0xFF
|
|
.byte 0x82, 0xEC, 0x20, 0x38, 0x00, 0x00, 0x00, 0x00, 0x53, 0x5B, 0x12, 0x00, 0x00, 0x30, 0xFD, 0xFF
|
|
.byte 0x82, 0xE9, 0x20, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x51, 0xBB, 0x10, 0x00, 0x00, 0x80, 0xFD, 0xFF
|
|
.byte 0x82, 0xE9, 0x18, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x53, 0x3B, 0x0D, 0x00, 0x01, 0x00, 0xFD, 0xFF
|
|
.byte 0x7C, 0xF1, 0x1E, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3B, 0x15, 0x00, 0x00, 0x80, 0xFD, 0xFF
|
|
.byte 0x80, 0x01, 0x22, 0x32, 0x00, 0x00, 0x00, 0x00, 0x51, 0x5B, 0x0C, 0x00, 0x00, 0xD0, 0xFC, 0xFF
|
|
.byte 0x7B, 0xEC, 0x16, 0x81, 0x00, 0x00, 0x00, 0x00, 0x49, 0x7B, 0x0C, 0x00, 0x01, 0x30, 0xFC, 0xFF
|
|
.byte 0x7D, 0xF1, 0x1F, 0x72, 0x00, 0x00, 0x00, 0x00, 0x51, 0x5B, 0x0D, 0x00, 0x00, 0x60, 0xFD, 0xFF
|
|
.byte 0x87, 0x05, 0x1D, 0x50, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3B, 0x15, 0x00, 0x00, 0x00, 0xFE, 0xFF
|
|
|
|
ov15_022008B0: ; 0x022008B0
|
|
.byte 0xA5, 0x28, 0x18, 0x65, 0x40, 0x0C, 0x1E, 0x32
|
|
|
|
.public ov15_022008B8
|
|
ov15_022008B8:
|
|
.word Bag_Init, Bag_Main, Bag_Exit, 0xFFFFFFFF
|
|
|
|
ov15_022008C8: ; 0x022008C8
|
|
.byte 0xA5, 0x28, 0x18, 0x65, 0x40, 0x0C, 0x1E, 0x32
|
|
|
|
ov15_022008D0: ; 0x022008D0
|
|
.byte 0x10, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00
|
|
.byte 0x18, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00
|
|
|
|
ov15_022008E8: ; 0x022008E8
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00
|
|
.byte 0x0D, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00
|
|
.byte 0x0D, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00
|
|
|
|
ov15_02200908: ; 0x02200908
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
|
|
.byte 0xBF, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x00
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00
|
|
.byte 0x0A, 0x00, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00
|
|
.byte 0x6F, 0x01, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x9B, 0x01, 0x00, 0x00
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xC7, 0x01, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00
|
|
.byte 0x05, 0x00, 0x00, 0x00, 0xF3, 0x01, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
|
|
.byte 0x1F, 0x02, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x4B, 0x02, 0x00, 0x00
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x77, 0x02, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00
|
|
.byte 0x0F, 0x00, 0x00, 0x00, 0xA3, 0x02, 0x00, 0x00
|
|
|
|
ov15_02200998: ; 0x02200998
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00
|
|
|
|
ov15_022009A0: ; 0x022009A0
|
|
.byte 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
|
|
|
|
ov15_022009A8: ; 0x022009A8
|
|
.byte 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00
|
|
.byte 0x00, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
|
|
|
ov15_022009BC: ; 0x022009BC
|
|
.byte 0x0C, 0x00, 0x00, 0x00
|
|
.byte 0x0A, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov15_022009D4: ; 0x022009D4
|
|
.byte 0x88
|
|
|
|
ov15_022009D5: ; 0x022009D5
|
|
.byte 0x68
|
|
|
|
ov15_022009D6: ; 0x022009D6
|
|
.byte 0x1D
|
|
|
|
ov15_022009D7: ; 0x022009D7
|
|
.byte 0x09, 0xA8, 0x68, 0x1D, 0x09, 0xC8, 0x68, 0x1D, 0x09
|
|
.byte 0x88, 0xA0, 0x1D, 0x09, 0xA8, 0xA0, 0x1D, 0x09, 0xC8, 0xA0, 0x1D, 0x09, 0xA0, 0xB0, 0x11, 0x09
|
|
.byte 0xE0, 0xB0, 0x11, 0x09
|
|
|
|
ov15_022009F4: ; 0x022009F4
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x20, 0x00, 0x00, 0x00
|
|
|
|
ov15_02200A14: ; 0x02200A14
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
|
|
.byte 0x04, 0x00, 0x00, 0x00
|
|
|
|
ov15_02200A34: ; 0x02200A34
|
|
.byte 0x30
|
|
|
|
ov15_02200A35: ; 0x02200A35
|
|
.byte 0x38
|
|
|
|
ov15_02200A36: ; 0x02200A36
|
|
.byte 0x14
|
|
|
|
ov15_02200A37: ; 0x02200A37
|
|
.byte 0x09, 0xB0, 0x38, 0x14, 0x09, 0x30, 0x60, 0x14, 0x09
|
|
.byte 0xB0, 0x60, 0x14, 0x09, 0x30, 0x88, 0x14, 0x09, 0xB0, 0x88, 0x14, 0x09, 0x18, 0xB0, 0x0E, 0x09
|
|
.byte 0x40, 0xB0, 0x0E, 0x09, 0xE0, 0xB0, 0x11, 0x09
|
|
|
|
ov15_02200A58: ; 0x02200A58
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
|
|
|
|
ov15_02200A88: ; 0x02200A88
|
|
.byte 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00
|
|
.byte 0x1B, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00
|
|
.byte 0x1B, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00
|
|
|
|
ov15_02200AB8: ; 0x02200AB8
|
|
.byte 0x10
|
|
|
|
ov15_02200AB9: ; 0x02200AB9
|
|
.byte 0x10
|
|
|
|
ov15_02200ABA: ; 0x02200ABA
|
|
.byte 0x08
|
|
|
|
ov15_02200ABB: ; 0x02200ABB
|
|
.byte 0x09, 0x30, 0x10, 0x08, 0x09
|
|
.byte 0x50, 0x10, 0x08, 0x09, 0x70, 0x10, 0x08, 0x09, 0x90, 0x10, 0x08, 0x09, 0xB0, 0x10, 0x08, 0x09
|
|
.byte 0xD0, 0x10, 0x08, 0x09, 0xF0, 0x10, 0x08, 0x09, 0x30, 0x38, 0x0A, 0x09, 0xB0, 0x38, 0x0A, 0x09
|
|
.byte 0x30, 0x60, 0x0A, 0x09, 0xB0, 0x60, 0x0A, 0x09, 0x30, 0x88, 0x0A, 0x09, 0xB0, 0x88, 0x0A, 0x09
|
|
.byte 0x18, 0xB0, 0x0E, 0x09, 0x40, 0xB0, 0x0E, 0x09, 0xE0, 0xB0, 0x11, 0x09, 0x30, 0x90, 0x17, 0x09
|
|
.byte 0x90, 0x90, 0x17, 0x09, 0x30, 0xB0, 0x17, 0x09, 0x90, 0xB0, 0x17, 0x09
|
|
|
|
ov15_02200B0C: ; 0x02200B0C
|
|
.byte 0xB1, 0x00, 0x0E, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0xF9, 0xC0, 0x00, 0x00, 0xF9, 0xC0, 0x00, 0x00, 0xF9, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x16, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00
|
|
.byte 0xFD, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFD, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00
|
|
.byte 0xFC, 0xC0, 0x00, 0x00, 0xFD, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xC0, 0x00, 0x00
|
|
.byte 0xFD, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00, 0xFD, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x64, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
.byte 0xFF, 0xC0, 0x00, 0x00, 0xFE, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00, 0xFD, 0xC0, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x16, 0x00, 0x8B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00
|
|
.byte 0xFD, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x8B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC1, 0x00, 0x00, 0x00, 0xC1, 0x00, 0x00
|
|
.byte 0xFC, 0xC0, 0x00, 0x00, 0xFD, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0xC1, 0x00, 0x00
|
|
.byte 0x02, 0xC1, 0x00, 0x00, 0xFE, 0xC0, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x70, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x04, 0xC1, 0x00, 0x00, 0x02, 0xC1, 0x00, 0x00, 0xFE, 0xC0, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00
|
|
.byte 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00
|
|
.byte 0xFB, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00
|
|
.byte 0xFA, 0xC0, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x10, 0x00
|
|
.byte 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
.byte 0xFB, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x90, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00
|
|
.byte 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00
|
|
.byte 0xFB, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x00, 0x10, 0x00, 0x00, 0x00, 0x06, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00
|
|
.byte 0xFA, 0xC0, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x10, 0x00
|
|
.byte 0x00, 0x00, 0x07, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
.byte 0xFB, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x18, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00
|
|
.byte 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00
|
|
.byte 0xFB, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x10, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00
|
|
.byte 0xFA, 0xC0, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00
|
|
.byte 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
.byte 0xFB, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x10, 0x00, 0x30, 0x00, 0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00
|
|
.byte 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x30, 0x00, 0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00
|
|
.byte 0xFB, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x58, 0x00, 0x00, 0x00, 0x13, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00
|
|
.byte 0xFA, 0xC0, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x58, 0x00
|
|
.byte 0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
.byte 0xFB, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x10, 0x00, 0x80, 0x00, 0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00
|
|
.byte 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x80, 0x00, 0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00
|
|
.byte 0xFB, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x30, 0x00, 0x00, 0x00, 0x14, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00
|
|
.byte 0xFA, 0xC0, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x90, 0x00
|
|
.byte 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
.byte 0xFB, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x90, 0x00, 0x90, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00
|
|
.byte 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00
|
|
.byte 0xFB, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x16, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00
|
|
.byte 0xFA, 0xC0, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x68, 0x00
|
|
.byte 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
.byte 0xFB, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0xA8, 0x00, 0x68, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00
|
|
.byte 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0xC8, 0x00, 0x68, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00
|
|
.byte 0xFB, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x98, 0x00, 0x00, 0x00, 0x1B, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00
|
|
.byte 0xFA, 0xC0, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA8, 0x00, 0x98, 0x00
|
|
.byte 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
.byte 0xFB, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0xC8, 0x00, 0x98, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00
|
|
.byte 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0xFA, 0xC0, 0x00, 0x00
|
|
.byte 0xFB, 0xC0, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
.data
|
|
|
|
_02201300:
|
|
.byte 0x01, 0x00, 0x00, 0x00
|
|
|
|
ov15_02201304: ; 0x02201304
|
|
.byte 0x4A, 0x29, 0x2F, 0x11, 0x94, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov15_02201314: ; 0x02201314
|
|
.word ov15_02200684
|
|
.word ov15_02200550
|
|
.word ov15_022005F0
|
|
.word ov15_022005A8
|
|
.word ov15_02200568
|
|
|
|
ov15_02201328: ; 0x02201328
|
|
; x y w h
|
|
.byte 0x00, 0x04, 0x10, 0x06
|
|
.byte 0x10, 0x04, 0x10, 0x06
|
|
.byte 0x00, 0x09, 0x10, 0x06
|
|
.byte 0x10, 0x09, 0x10, 0x06
|
|
.byte 0x00, 0x0E, 0x10, 0x06
|
|
.byte 0x10, 0x0E, 0x10, 0x06
|
|
|
|
ov15_02201340: ; 0x02201340
|
|
; x y w h
|
|
.byte 0x00, 0x0B, 0x10, 0x09
|
|
.byte 0x10, 0x06, 0x10, 0x10
|
|
|
|
.byte 0x00, 0x0B, 0x20, 0x09
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
.byte 0x00, 0x10, 0x10, 0x04
|
|
.byte 0x10, 0x0B, 0x10, 0x09
|
|
|
|
.byte 0x00, 0x10, 0x20, 0x04
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x10, 0x10, 0x10, 0x04
|
|
|
|
ov15_02201368: ; 0x02201368
|
|
.word ov15_021FB680
|
|
.word ov15_021FB680
|
|
.word ov15_021FB680
|
|
.word ov15_021FB680
|
|
.word ov15_021FB680
|
|
.word ov15_021FBCAC
|
|
.word ov15_021FC224
|
|
.word ov15_021FC37C
|
|
.word ov15_021FC3EC
|
|
.word ov15_021FBC6C
|
|
.word ov15_021FBC8C
|
|
.word 0x00000000
|
|
.word ov15_021FC3E0
|
|
.word 0x00000000
|
|
.word ov15_021FD3C0
|
|
.word ov15_021FB680
|
|
|
|
ov15_022013A8: ; 0x022013A8
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x20, 0x10, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x04, 0x10, 0x10, 0x00
|
|
|
|
.byte 0x01, 0x00, 0x13, 0x00, 0x09, 0x10, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0A, 0x10, 0x0A, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x10, 0x04, 0x10, 0x10, 0x00
|
|
|
|
.byte 0x01, 0x00, 0x13, 0x00, 0x09, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x10, 0x13, 0x10, 0x09, 0x10, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0A, 0x20, 0x0A, 0x00
|
|
|
|
.byte 0x01, 0x00, 0x13, 0x00, 0x0E, 0x10, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0F, 0x10, 0x05, 0x00
|
|
.byte 0x01, 0x10, 0x13, 0x10, 0x09, 0x10, 0x01, 0x00, 0x02, 0x00, 0x00, 0x10, 0x0A, 0x10, 0x0A, 0x00
|
|
|
|
.byte 0x01, 0x00, 0x13, 0x00, 0x0E, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x10, 0x13, 0x10, 0x0E, 0x10, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0F, 0x20, 0x05, 0x00
|
|
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x10, 0x13, 0x10, 0x0E, 0x10, 0x01, 0x00, 0x02, 0x00, 0x00, 0x10, 0x0F, 0x10, 0x05, 0x00
|
|
|
|
ov15_02201468: ; 0x02201468
|
|
.byte 0x11, 0x12, 0x13, 0x14, 0x10, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
.bss
|
|
|
|
_02201480:
|
|
.space 0x20
|