mirror of
https://github.com/pret/pokeheartgold.git
synced 2024-11-24 13:49:45 +00:00
835 lines
17 KiB
ArmAsm
835 lines
17 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "overlay_104.inc"
|
|
.include "global.inc"
|
|
|
|
.text
|
|
|
|
thumb_func_start ov104_021E5900
|
|
ov104_021E5900: ; 0x021E5900
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
mov r2, #0x31
|
|
add r5, r0, #0
|
|
mov r0, #3
|
|
mov r1, #0x95
|
|
lsl r2, r2, #0xc
|
|
bl CreateHeap
|
|
mov r1, #0x17
|
|
add r0, r5, #0
|
|
lsl r1, r1, #4
|
|
mov r2, #0x95
|
|
bl OverlayManager_CreateAndGetData
|
|
mov r2, #0x17
|
|
mov r1, #0
|
|
lsl r2, r2, #4
|
|
add r4, r0, #0
|
|
bl memset
|
|
add r0, r5, #0
|
|
bl OverlayManager_GetArgs
|
|
add r5, r0, #0
|
|
mov r0, #0x59
|
|
ldrb r1, [r5]
|
|
lsl r0, r0, #2
|
|
strb r1, [r4, r0]
|
|
ldrb r2, [r5, #1]
|
|
add r1, r0, #1
|
|
strb r2, [r4, r1]
|
|
add r1, r0, #2
|
|
ldrb r2, [r5, #2]
|
|
add r0, r0, #3
|
|
strb r2, [r4, r1]
|
|
mov r1, #0
|
|
strb r1, [r4, r0]
|
|
mov r0, #0x95
|
|
bl Camera_Create
|
|
str r0, [r4]
|
|
bl ov104_021E5B88
|
|
add r0, r4, #0
|
|
bl ov104_021E5CC8
|
|
add r0, r4, #0
|
|
bl ov104_021E5BEC
|
|
mov r4, #0
|
|
mov r7, #2
|
|
mov r6, #4
|
|
_021E596A:
|
|
ldr r2, [r5, #4]
|
|
mov r0, #6
|
|
add r1, r4, #0
|
|
mul r1, r0
|
|
add r3, r2, r1
|
|
ldrsh r1, [r2, r1]
|
|
ldrsh r2, [r3, r7]
|
|
ldrsh r3, [r3, r6]
|
|
add r0, r4, #0
|
|
bl NNS_G3dGlbLightVector
|
|
ldr r2, [r5, #4]
|
|
lsl r1, r4, #1
|
|
add r1, r2, r1
|
|
ldrh r1, [r1, #0x18]
|
|
add r0, r4, #0
|
|
bl NNS_G3dGlbLightColor
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, #4
|
|
blo _021E596A
|
|
ldr r2, [r5, #4]
|
|
ldrh r0, [r2, #0x20]
|
|
ldrh r1, [r2, #0x22]
|
|
ldr r2, [r2, #0x28]
|
|
bl NNS_G3dGlbMaterialColorDiffAmb
|
|
ldr r2, [r5, #4]
|
|
ldrh r0, [r2, #0x24]
|
|
ldrh r1, [r2, #0x26]
|
|
ldr r2, [r2, #0x2c]
|
|
bl NNS_G3dGlbMaterialColorSpecEmi
|
|
ldr r3, [r5, #4]
|
|
ldr r0, [r3, #0x40]
|
|
str r0, [sp]
|
|
ldr r0, [r3, #0x44]
|
|
str r0, [sp, #4]
|
|
ldr r0, [r3, #0x30]
|
|
ldr r1, [r3, #0x34]
|
|
ldr r2, [r3, #0x38]
|
|
ldr r3, [r3, #0x3c]
|
|
bl NNS_G3dGlbPolygonAttr
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
mov r0, #0x95
|
|
str r0, [sp, #8]
|
|
mov r0, #3
|
|
add r2, r1, #0
|
|
mov r3, #0
|
|
bl BeginNormalPaletteFade
|
|
mov r0, #1
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov104_021E5900
|
|
|
|
thumb_func_start ov104_021E59E4
|
|
ov104_021E59E4: ; 0x021E59E4
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x3c
|
|
add r6, r1, #0
|
|
bl OverlayManager_GetData
|
|
add r5, r0, #0
|
|
mov r0, #0x5a
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r5, r0]
|
|
mov r0, #0x6c
|
|
add r2, r5, #4
|
|
mul r0, r1
|
|
add r4, r2, r0
|
|
ldr r0, [r6]
|
|
mov r7, #0
|
|
cmp r0, #0
|
|
beq _021E5A0C
|
|
cmp r0, #1
|
|
beq _021E5A2A
|
|
b _021E5A64
|
|
_021E5A0C:
|
|
add r0, r4, #0
|
|
bl ov104_021E5E78
|
|
cmp r0, #0
|
|
beq _021E5A64
|
|
mov r0, #0x5a
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r5, r0]
|
|
mov r1, #0x95
|
|
bl ov104_021E5EB0
|
|
ldr r0, [r6]
|
|
add r0, r0, #1
|
|
str r0, [r6]
|
|
b _021E5A64
|
|
_021E5A2A:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _021E5A64
|
|
mov r0, #0x5a
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r5, r0]
|
|
add r1, r1, #1
|
|
strb r1, [r5, r0]
|
|
add r1, r0, #1
|
|
ldrb r1, [r5, r1]
|
|
add r2, r1, #1
|
|
add r1, r0, #1
|
|
strb r2, [r5, r1]
|
|
add r0, r0, #1
|
|
ldrb r0, [r5, r0]
|
|
cmp r0, #3
|
|
blo _021E5A52
|
|
mov r7, #1
|
|
b _021E5A64
|
|
_021E5A52:
|
|
add r0, r5, #0
|
|
bl ov104_021E5BEC
|
|
add r0, r7, #0
|
|
mov r1, #0x95
|
|
bl sub_020880CC
|
|
add r0, r7, #0
|
|
str r0, [r6]
|
|
_021E5A64:
|
|
ldr r0, [r4, #0x64]
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _021E5A96
|
|
mov r1, #0x5b
|
|
lsl r1, r1, #2
|
|
ldr r0, [r5, r1]
|
|
sub r1, r1, #4
|
|
ldrb r1, [r5, r1]
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
bl PlaySE
|
|
mov r0, #0x5a
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r5, r0]
|
|
cmp r0, #2
|
|
bne _021E5A96
|
|
ldr r1, _021E5B08 ; =0x00000447
|
|
mov r0, #0x44
|
|
mov r2, #1
|
|
bl sub_02004EC4
|
|
_021E5A96:
|
|
mov r3, #1
|
|
mov r2, #0
|
|
lsl r3, r3, #0xc
|
|
_021E5A9C:
|
|
lsl r0, r2, #2
|
|
add r0, r4, r0
|
|
ldr r1, [r0, #0x64]
|
|
ldr r5, [r1, #8]
|
|
ldr r0, [r1]
|
|
ldrh r5, [r5, #4]
|
|
add r0, r0, r3
|
|
lsl r5, r5, #0xc
|
|
cmp r0, r5
|
|
bge _021E5AB2
|
|
str r0, [r1]
|
|
_021E5AB2:
|
|
add r0, r2, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r2, r0, #0x18
|
|
cmp r2, #2
|
|
blo _021E5A9C
|
|
ldr r5, _021E5B0C ; =ov104_021E5F3C
|
|
add r3, sp, #0x18
|
|
mov r2, #4
|
|
_021E5AC2:
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _021E5AC2
|
|
ldr r0, [r5]
|
|
add r2, sp, #0xc
|
|
str r0, [r3]
|
|
ldr r3, _021E5B10 ; =ov104_021E5EFC
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
add r1, sp, #0
|
|
str r0, [r2]
|
|
mov r0, #0
|
|
str r0, [r1]
|
|
str r0, [r1, #4]
|
|
str r0, [r1, #8]
|
|
bl Thunk_G3X_Reset
|
|
bl sub_02023154
|
|
add r0, r4, #0
|
|
add r1, sp, #0
|
|
add r2, sp, #0x18
|
|
add r3, sp, #0xc
|
|
bl Draw3dModel
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
bl sub_02026E50
|
|
add r0, r7, #0
|
|
add sp, #0x3c
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E5B08: .word 0x00000447
|
|
_021E5B0C: .word ov104_021E5F3C
|
|
_021E5B10: .word ov104_021E5EFC
|
|
thumb_func_end ov104_021E59E4
|
|
|
|
thumb_func_start ov104_021E5B14
|
|
ov104_021E5B14: ; 0x021E5B14
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
str r0, [sp]
|
|
bl OverlayManager_GetData
|
|
add r7, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
add r0, r7, #4
|
|
str r0, [sp, #8]
|
|
_021E5B28:
|
|
ldr r1, [sp, #4]
|
|
mov r0, #0x6c
|
|
add r2, r1, #0
|
|
mul r2, r0
|
|
ldr r0, [sp, #8]
|
|
mov r4, #0
|
|
add r6, r0, r2
|
|
_021E5B36:
|
|
lsl r0, r4, #2
|
|
add r5, r6, r0
|
|
mov r0, #0x52
|
|
lsl r0, r0, #2
|
|
ldr r1, [r5, #0x64]
|
|
add r0, r7, r0
|
|
bl NNS_G3dFreeAnmObj
|
|
ldr r0, [r5, #0x5c]
|
|
bl FreeToHeap
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, #2
|
|
blo _021E5B36
|
|
ldr r0, [r6, #0x58]
|
|
bl FreeToHeap
|
|
ldr r0, [sp, #4]
|
|
add r0, r0, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #4]
|
|
cmp r0, #3
|
|
blo _021E5B28
|
|
ldr r0, [r7]
|
|
bl sub_02023120
|
|
ldr r0, [sp]
|
|
bl OverlayManager_FreeData
|
|
bl sub_0201F63C
|
|
mov r0, #0x95
|
|
bl DestroyHeap
|
|
mov r0, #1
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov104_021E5B14
|
|
|
|
thumb_func_start ov104_021E5B88
|
|
ov104_021E5B88: ; 0x021E5B88
|
|
push {r3, lr}
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl Main_SetVBlankIntrCB
|
|
bl HBlankInterruptDisable
|
|
bl GX_DisableEngineALayers
|
|
bl GX_DisableEngineBLayers
|
|
mov r2, #1
|
|
lsl r2, r2, #0x1a
|
|
ldr r1, [r2]
|
|
ldr r0, _021E5BD8 ; =0xFFFFE0FF
|
|
and r1, r0
|
|
str r1, [r2]
|
|
ldr r2, _021E5BDC ; =0x04001000
|
|
ldr r1, [r2]
|
|
and r0, r1
|
|
str r0, [r2]
|
|
bl ov104_021E5CA8
|
|
mov r0, #0x95
|
|
bl sub_0201F590
|
|
ldr r2, _021E5BE0 ; =0x04000060
|
|
ldr r0, _021E5BE4 ; =0xFFFFCFFF
|
|
ldrh r1, [r2]
|
|
and r1, r0
|
|
mov r0, #0x20
|
|
orr r0, r1
|
|
strh r0, [r2]
|
|
ldr r0, _021E5BE8 ; =ov104_021E5F14
|
|
bl G3X_SetEdgeColorTable
|
|
bl GX_SwapDisplay
|
|
pop {r3, pc}
|
|
nop
|
|
_021E5BD8: .word 0xFFFFE0FF
|
|
_021E5BDC: .word 0x04001000
|
|
_021E5BE0: .word 0x04000060
|
|
_021E5BE4: .word 0xFFFFCFFF
|
|
_021E5BE8: .word ov104_021E5F14
|
|
thumb_func_end ov104_021E5B88
|
|
|
|
thumb_func_start ov104_021E5BEC
|
|
ov104_021E5BEC: ; 0x021E5BEC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r4, r0, #0
|
|
add r6, sp, #0xc
|
|
mov r0, #0
|
|
str r0, [r6]
|
|
str r0, [r6, #4]
|
|
mov r2, #0x56
|
|
str r0, [r6, #8]
|
|
lsl r2, r2, #2
|
|
add r5, r4, r2
|
|
ldmia r6!, {r0, r1}
|
|
add r3, r5, #0
|
|
stmia r5!, {r0, r1}
|
|
ldr r0, [r6]
|
|
str r0, [r5]
|
|
add r0, r2, #0
|
|
add r0, #0x10
|
|
ldrb r7, [r4, r0]
|
|
add r2, #0xc
|
|
ldrb r1, [r4, r2]
|
|
mov r0, #0x14
|
|
add r6, r7, #0
|
|
mul r6, r0
|
|
mov r0, #0x3c
|
|
add r5, r1, #0
|
|
mul r5, r0
|
|
ldr r0, _021E5C90 ; =ov104_021E5FD0
|
|
add r1, r0, r5
|
|
ldr r0, _021E5C94 ; =ov104_021E5FDC
|
|
add r2, r1, r6
|
|
add r0, r0, r5
|
|
ldrb r0, [r6, r0]
|
|
add r2, r2, #4
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
str r0, [sp, #8]
|
|
add r0, r3, #0
|
|
ldr r3, _021E5C98 ; =ov104_021E5FDE
|
|
ldr r1, [r1, r6]
|
|
add r3, r3, r5
|
|
ldrh r3, [r6, r3]
|
|
bl Camera_InitFromTargetDistanceAndAngle
|
|
mov r0, #0x59
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r4, r0]
|
|
mov r0, #0x24
|
|
ldr r2, _021E5C9C ; =ov104_021E5F88
|
|
mul r0, r1
|
|
add r1, r2, r0
|
|
mov r0, #0xc
|
|
mul r0, r7
|
|
add r0, r1, r0
|
|
ldr r1, [r4]
|
|
bl Camera_ShiftBy
|
|
mov r0, #0x59
|
|
lsl r0, r0, #2
|
|
ldrb r3, [r4, r0]
|
|
mov r0, #0xc
|
|
lsl r2, r7, #2
|
|
add r1, r3, #0
|
|
mul r1, r0
|
|
ldr r0, _021E5CA0 ; =ov104_021E5F24
|
|
ldr r3, _021E5CA4 ; =ov104_021E5F26
|
|
add r0, r0, r1
|
|
add r1, r3, r1
|
|
ldrh r0, [r2, r0]
|
|
ldrh r1, [r2, r1]
|
|
ldr r2, [r4]
|
|
lsl r0, r0, #0xc
|
|
lsl r1, r1, #0xc
|
|
bl Camera_SetClipBounds
|
|
ldr r0, [r4]
|
|
bl Camera_RegisterToStaticPtr
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E5C90: .word ov104_021E5FD0
|
|
_021E5C94: .word ov104_021E5FDC
|
|
_021E5C98: .word ov104_021E5FDE
|
|
_021E5C9C: .word ov104_021E5F88
|
|
_021E5CA0: .word ov104_021E5F24
|
|
_021E5CA4: .word ov104_021E5F26
|
|
thumb_func_end ov104_021E5BEC
|
|
|
|
thumb_func_start ov104_021E5CA8
|
|
ov104_021E5CA8: ; 0x021E5CA8
|
|
push {r4, lr}
|
|
sub sp, #0x28
|
|
ldr r4, _021E5CC4 ; =ov104_021E5F60
|
|
add r3, sp, #0
|
|
mov r2, #5
|
|
_021E5CB2:
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _021E5CB2
|
|
add r0, sp, #0
|
|
bl GX_SetBanks
|
|
add sp, #0x28
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E5CC4: .word ov104_021E5F60
|
|
thumb_func_end ov104_021E5CA8
|
|
|
|
thumb_func_start ov104_021E5CC8
|
|
ov104_021E5CC8: ; 0x021E5CC8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
str r0, [sp]
|
|
mov r0, #0xeb
|
|
mov r1, #0x95
|
|
bl NARC_ctor
|
|
str r0, [sp, #8]
|
|
mov r1, #0x52
|
|
ldr r0, [sp]
|
|
lsl r1, r1, #2
|
|
add r0, r0, r1
|
|
mov r1, #0x95
|
|
mov r2, #4
|
|
bl GF_ExpHeap_FndInitAllocator
|
|
mov r2, #0x59
|
|
ldr r0, [sp]
|
|
lsl r2, r2, #2
|
|
ldrb r0, [r0, r2]
|
|
cmp r0, #0
|
|
bne _021E5D34
|
|
ldr r0, [sp]
|
|
add r1, r2, #2
|
|
ldrb r0, [r0, r1]
|
|
cmp r0, #0
|
|
bne _021E5D14
|
|
ldr r0, [sp]
|
|
add r1, r2, #1
|
|
ldrb r0, [r0, r1]
|
|
cmp r0, #0
|
|
bne _021E5D0E
|
|
ldr r0, _021E5E50 ; =ov104_021E60C0
|
|
str r0, [sp, #0x10]
|
|
b _021E5D28
|
|
_021E5D0E:
|
|
ldr r0, _021E5E54 ; =ov104_021E60D8
|
|
str r0, [sp, #0x10]
|
|
b _021E5D28
|
|
_021E5D14:
|
|
ldr r0, [sp]
|
|
add r1, r2, #1
|
|
ldrb r0, [r0, r1]
|
|
cmp r0, #0
|
|
bne _021E5D24
|
|
ldr r0, _021E5E58 ; =ov104_021E6090
|
|
str r0, [sp, #0x10]
|
|
b _021E5D28
|
|
_021E5D24:
|
|
ldr r0, _021E5E5C ; =ov104_021E60F0
|
|
str r0, [sp, #0x10]
|
|
_021E5D28:
|
|
mov r1, #0x5b
|
|
ldr r2, _021E5E60 ; =_021E5EF0
|
|
ldr r0, [sp]
|
|
lsl r1, r1, #2
|
|
str r2, [r0, r1]
|
|
b _021E5D72
|
|
_021E5D34:
|
|
ldr r0, [sp]
|
|
add r1, r2, #2
|
|
ldrb r0, [r0, r1]
|
|
cmp r0, #0
|
|
bne _021E5D54
|
|
ldr r0, [sp]
|
|
add r1, r2, #1
|
|
ldrb r0, [r0, r1]
|
|
cmp r0, #0
|
|
bne _021E5D4E
|
|
ldr r0, _021E5E64 ; =_021E6060
|
|
str r0, [sp, #0x10]
|
|
b _021E5D68
|
|
_021E5D4E:
|
|
ldr r0, _021E5E68 ; =ov104_021E60A8
|
|
str r0, [sp, #0x10]
|
|
b _021E5D68
|
|
_021E5D54:
|
|
ldr r0, [sp]
|
|
add r1, r2, #1
|
|
ldrb r0, [r0, r1]
|
|
cmp r0, #0
|
|
bne _021E5D64
|
|
ldr r0, _021E5E6C ; =ov104_021E6078
|
|
str r0, [sp, #0x10]
|
|
b _021E5D68
|
|
_021E5D64:
|
|
ldr r0, _021E5E70 ; =ov104_021E6108
|
|
str r0, [sp, #0x10]
|
|
_021E5D68:
|
|
mov r1, #0x5b
|
|
ldr r2, _021E5E74 ; =ov104_021E5F08
|
|
ldr r0, [sp]
|
|
lsl r1, r1, #2
|
|
str r2, [r0, r1]
|
|
_021E5D72:
|
|
mov r0, #0
|
|
str r0, [sp, #0x14]
|
|
_021E5D76:
|
|
ldr r0, [sp, #0x14]
|
|
mov r1, #0x6c
|
|
add r4, r0, #0
|
|
ldr r0, [sp]
|
|
mul r4, r1
|
|
add r0, r0, #4
|
|
add r5, r0, r4
|
|
ldr r0, [sp, #0x14]
|
|
ldr r1, [sp, #0x10]
|
|
lsl r2, r0, #3
|
|
ldr r0, [sp, #0x10]
|
|
ldr r1, [r1, r2]
|
|
add r0, r0, r2
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0x95
|
|
bl NARC_AllocAndReadWholeMember
|
|
add r1, r5, #0
|
|
add r2, r5, #0
|
|
str r0, [r5, #0x58]
|
|
add r0, r5, #0
|
|
add r1, #0x54
|
|
add r2, #0x58
|
|
bl sub_0201F51C
|
|
ldr r0, [sp]
|
|
add r0, r0, r4
|
|
ldr r0, [r0, #0x5c]
|
|
bl NNS_G3dGetTex
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #0x14]
|
|
cmp r0, #2
|
|
bne _021E5DE8
|
|
ldr r0, [r5, #0x54]
|
|
mov r1, #0
|
|
mov r2, #0x40
|
|
bl NNSi_G3dModifyMatFlag
|
|
ldr r0, [r5, #0x54]
|
|
mov r1, #0
|
|
mov r2, #0x80
|
|
bl NNSi_G3dModifyMatFlag
|
|
mov r2, #2
|
|
ldr r0, [r5, #0x54]
|
|
mov r1, #0
|
|
lsl r2, r2, #8
|
|
bl NNSi_G3dModifyMatFlag
|
|
mov r2, #1
|
|
ldr r0, [r5, #0x54]
|
|
mov r1, #0
|
|
lsl r2, r2, #0xa
|
|
bl NNSi_G3dModifyMatFlag
|
|
_021E5DE8:
|
|
mov r4, #0
|
|
_021E5DEA:
|
|
ldr r1, [sp, #4]
|
|
lsl r2, r4, #1
|
|
add r1, r1, r2
|
|
lsl r0, r4, #2
|
|
add r6, r5, r0
|
|
ldrh r1, [r1, #4]
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0x95
|
|
bl NARC_AllocAndReadWholeMember
|
|
mov r1, #0
|
|
str r0, [r6, #0x5c]
|
|
bl NNS_G3dGetAnmByIdx
|
|
add r7, r0, #0
|
|
mov r0, #0x52
|
|
ldr r1, [sp]
|
|
lsl r0, r0, #2
|
|
add r0, r1, r0
|
|
ldr r2, [r5, #0x54]
|
|
add r1, r7, #0
|
|
bl NNS_G3dAllocAnmObj
|
|
str r0, [r6, #0x64]
|
|
ldr r2, [r5, #0x54]
|
|
ldr r3, [sp, #0xc]
|
|
add r1, r7, #0
|
|
bl NNS_G3dAnmObjInit
|
|
ldr r1, [r6, #0x64]
|
|
add r0, r5, #0
|
|
bl NNS_G3dRenderObjAddAnmObj
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, #2
|
|
blo _021E5DEA
|
|
ldr r0, [sp, #0x14]
|
|
add r0, r0, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x14]
|
|
cmp r0, #3
|
|
blo _021E5D76
|
|
ldr r0, [sp, #8]
|
|
bl NARC_dtor
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E5E50: .word ov104_021E60C0
|
|
_021E5E54: .word ov104_021E60D8
|
|
_021E5E58: .word ov104_021E6090
|
|
_021E5E5C: .word ov104_021E60F0
|
|
_021E5E60: .word _021E5EF0
|
|
_021E5E64: .word _021E6060
|
|
_021E5E68: .word ov104_021E60A8
|
|
_021E5E6C: .word ov104_021E6078
|
|
_021E5E70: .word ov104_021E6108
|
|
_021E5E74: .word ov104_021E5F08
|
|
thumb_func_end ov104_021E5CC8
|
|
|
|
thumb_func_start ov104_021E5E78
|
|
ov104_021E5E78: ; 0x021E5E78
|
|
add r1, r1, #1
|
|
cmp r1, #3
|
|
blt _021E5E94
|
|
ldr r0, [r0, #0x64]
|
|
ldr r1, [r0]
|
|
mov r0, #1
|
|
lsl r0, r0, #0xc
|
|
add r1, r1, r0
|
|
mov r0, #0xcd
|
|
lsl r0, r0, #0xc
|
|
cmp r1, r0
|
|
bne _021E5EAC
|
|
mov r0, #1
|
|
bx lr
|
|
_021E5E94:
|
|
ldr r2, [r0, #0x64]
|
|
mov r0, #1
|
|
ldr r1, [r2]
|
|
lsl r0, r0, #0xc
|
|
add r1, r1, r0
|
|
ldr r0, [r2, #8]
|
|
ldrh r0, [r0, #4]
|
|
lsl r0, r0, #0xc
|
|
cmp r1, r0
|
|
bne _021E5EAC
|
|
mov r0, #1
|
|
bx lr
|
|
_021E5EAC:
|
|
mov r0, #0
|
|
bx lr
|
|
thumb_func_end ov104_021E5E78
|
|
|
|
thumb_func_start ov104_021E5EB0
|
|
ov104_021E5EB0: ; 0x021E5EB0
|
|
push {lr}
|
|
sub sp, #0xc
|
|
add r0, r0, #1
|
|
cmp r0, #3
|
|
blt _021E5ED4
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
str r1, [sp, #8]
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
add r3, r0, #0
|
|
bl BeginNormalPaletteFade
|
|
add sp, #0xc
|
|
pop {pc}
|
|
_021E5ED4:
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
str r1, [sp, #8]
|
|
mov r1, #8
|
|
add r2, r0, #0
|
|
add r3, r0, #0
|
|
bl BeginNormalPaletteFade
|
|
add sp, #0xc
|
|
pop {pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov104_021E5EB0
|
|
|
|
.rodata
|
|
|
|
_021E5EF0:
|
|
.byte 0xD5, 0x06, 0x00, 0x00, 0xF3, 0x06, 0x00, 0x00, 0xF1, 0x06, 0x00, 0x00
|
|
|
|
ov104_021E5EFC: ; 0x021E5EFC
|
|
.byte 0x00, 0x10, 0x00, 0x00
|
|
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
|
|
|
|
ov104_021E5F08: ; 0x021E5F08
|
|
.byte 0xD6, 0x06, 0x00, 0x00, 0xF2, 0x06, 0x00, 0x00
|
|
.byte 0xF0, 0x06, 0x00, 0x00
|
|
|
|
ov104_021E5F14: ; 0x021E5F14
|
|
.byte 0x00, 0x00, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10
|
|
.byte 0x84, 0x10, 0x84, 0x10
|
|
|
|
ov104_021E5F24: ; 0x021E5F24
|
|
.byte 0x96, 0x00
|
|
|
|
ov104_021E5F26: ; 0x021E5F26
|
|
.byte 0xA4, 0x06, 0x96, 0x00, 0x84, 0x03, 0x96, 0x00, 0x84, 0x03
|
|
.byte 0x96, 0x00, 0xA4, 0x06, 0x96, 0x00, 0x84, 0x03, 0x96, 0x00, 0x84, 0x03
|
|
|
|
ov104_021E5F3C: ; 0x021E5F3C
|
|
.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
|
|
|
|
ov104_021E5F60: ; 0x021E5F60
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x03, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
|
|
|
ov104_021E5F88: ; 0x021E5F88
|
|
.byte 0xA8, 0x5C, 0x06, 0x00, 0xAA, 0xC3, 0x03, 0x00
|
|
.byte 0x5E, 0xF5, 0xF7, 0xFF, 0x00, 0x80, 0x01, 0x00, 0x71, 0x9F, 0x03, 0x00, 0x35, 0xE4, 0xFA, 0xFF
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x85, 0x38, 0x01, 0x00, 0x33, 0x38, 0xFE, 0xFF, 0x77, 0x55, 0xFA, 0xFF
|
|
.byte 0xAA, 0xC3, 0x03, 0x00, 0x0D, 0x70, 0xF8, 0xFF, 0x00, 0x80, 0x01, 0x00, 0x71, 0x9F, 0x03, 0x00
|
|
.byte 0x35, 0xE4, 0xFA, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x85, 0x38, 0x01, 0x00, 0x33, 0x38, 0xFE, 0xFF
|
|
|
|
ov104_021E5FD0: ; 0x021E5FD0
|
|
.byte 0x52, 0x81, 0x1B, 0x00, 0xA2, 0xFA, 0xE0, 0xCA, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov104_021E5FDC: ; 0x021E5FDC
|
|
.byte 0x00, 0x00
|
|
|
|
ov104_021E5FDE: ; 0x021E5FDE
|
|
.byte 0xC1, 0x08
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x22, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0xC1, 0x05, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x9E, 0x29, 0x00, 0x02, 0xE0, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x06, 0x00, 0x00, 0x00, 0x00, 0x52, 0x81, 0x1B, 0x00
|
|
.byte 0xA2, 0xFA, 0xE0, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x08, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0xC1, 0xAE, 0x29, 0x00, 0x22, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x05
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0xC1, 0x9E, 0x29, 0x00, 0x02, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0xC1, 0x06, 0x00, 0x00, 0x00, 0x00
|
|
|
|
.data
|
|
|
|
_021E6060:
|
|
.byte 0x1E, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x20, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x2C, 0x00
|
|
.byte 0x36, 0x00, 0x00, 0x00, 0x37, 0x00, 0x38, 0x00
|
|
|
|
ov104_021E6078: ; 0x021E6078
|
|
.byte 0x24, 0x00, 0x00, 0x00, 0x25, 0x00, 0x26, 0x00
|
|
.byte 0x30, 0x00, 0x00, 0x00, 0x31, 0x00, 0x32, 0x00, 0x39, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x3B, 0x00
|
|
|
|
ov104_021E6090: ; 0x021E6090
|
|
.byte 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x08, 0x00, 0x12, 0x00, 0x00, 0x00, 0x13, 0x00, 0x14, 0x00
|
|
.byte 0x1B, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x1D, 0x00
|
|
|
|
ov104_021E60A8: ; 0x021E60A8
|
|
.byte 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x23, 0x00
|
|
.byte 0x2D, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x2F, 0x00, 0x36, 0x00, 0x00, 0x00, 0x37, 0x00, 0x38, 0x00
|
|
|
|
ov104_021E60C0: ; 0x021E60C0
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x0E, 0x00
|
|
.byte 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x1A, 0x00
|
|
|
|
ov104_021E60D8: ; 0x021E60D8
|
|
.byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x05, 0x00
|
|
.byte 0x0F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x11, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x1A, 0x00
|
|
|
|
ov104_021E60F0: ; 0x021E60F0
|
|
.byte 0x09, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x0B, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x17, 0x00
|
|
.byte 0x1B, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x1D, 0x00
|
|
|
|
ov104_021E6108: ; 0x021E6108
|
|
.byte 0x27, 0x00, 0x00, 0x00, 0x28, 0x00, 0x29, 0x00
|
|
.byte 0x33, 0x00, 0x00, 0x00, 0x34, 0x00, 0x35, 0x00, 0x39, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x3B, 0x00
|
|
; 0x021E6120
|