mirror of
https://github.com/pret/pokediamond.git
synced 2026-03-21 17:54:29 -05:00
287 lines
5.4 KiB
ArmAsm
287 lines
5.4 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
|
|
.section .rodata
|
|
|
|
.global UNK_020F943C
|
|
UNK_020F943C: ; 0x020F943C
|
|
.word ov56_02212084, ov56_02212164, ov56_02212240, SDK_OVERLAY_OVERLAY_56_ID
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_0206F1F0
|
|
sub_0206F1F0: ; 0x0206F1F0
|
|
push {r4-r6, lr}
|
|
add r6, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r5, r0, #0x0
|
|
add r0, r6, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
ldr r0, [r4, #0x4]
|
|
cmp r0, #0xb
|
|
bls _0206F20A
|
|
b _0206F37C
|
|
_0206F20A:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #0x6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0206F216: ; jump table (using 16-bit offset)
|
|
.short _0206F22E - _0206F216 - 2; case 0
|
|
.short _0206F234 - _0206F216 - 2; case 1
|
|
.short _0206F25A - _0206F216 - 2; case 2
|
|
.short _0206F26C - _0206F216 - 2; case 3
|
|
.short _0206F31A - _0206F216 - 2; case 4
|
|
.short _0206F330 - _0206F216 - 2; case 5
|
|
.short _0206F336 - _0206F216 - 2; case 6
|
|
.short _0206F344 - _0206F216 - 2; case 7
|
|
.short _0206F34A - _0206F216 - 2; case 8
|
|
.short _0206F366 - _0206F216 - 2; case 9
|
|
.short _0206F366 - _0206F216 - 2; case 10
|
|
.short _0206F366 - _0206F216 - 2; case 11
|
|
_0206F22E:
|
|
ldr r1, [r5, #0xc]
|
|
ldr r0, [r4, #0x0]
|
|
str r1, [r0, #0x0]
|
|
_0206F234:
|
|
ldr r0, [r4, #0x4]
|
|
add r0, r0, #0x1
|
|
str r0, [r4, #0x4]
|
|
ldr r0, [r4, #0x0]
|
|
ldr r0, [r0, #0x4]
|
|
cmp r0, #0x1
|
|
bne _0206F24C
|
|
ldr r0, [r5, #0xc]
|
|
bl sub_0203384C
|
|
cmp r0, #0x0
|
|
bne _0206F24E
|
|
_0206F24C:
|
|
b _0206F380
|
|
_0206F24E:
|
|
mov r0, #0xa
|
|
str r0, [r4, #0x4]
|
|
ldr r0, [r4, #0x8]
|
|
mov r1, #0x0
|
|
strh r1, [r0, #0x0]
|
|
b _0206F380
|
|
_0206F25A:
|
|
ldr r1, _0206F384 ; =UNK_020F943C
|
|
ldr r2, [r4, #0x0]
|
|
add r0, r6, #0x0
|
|
bl sub_02046500
|
|
ldr r0, [r4, #0x4]
|
|
add r0, r0, #0x1
|
|
str r0, [r4, #0x4]
|
|
b _0206F380
|
|
_0206F26C:
|
|
ldr r0, [r5, #0xc]
|
|
bl sub_0203384C
|
|
cmp r0, #0x0
|
|
beq _0206F280
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
bl sub_0205F304
|
|
_0206F280:
|
|
ldr r0, [r4, #0x0]
|
|
ldr r0, [r0, #0x4]
|
|
cmp r0, #0xa
|
|
bhi _0206F380
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #0x6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0206F294: ; jump table (using 16-bit offset)
|
|
.short _0206F380 - _0206F294 - 2; case 0
|
|
.short _0206F2B8 - _0206F294 - 2; case 1
|
|
.short _0206F2C6 - _0206F294 - 2; case 2
|
|
.short _0206F2AA - _0206F294 - 2; case 3
|
|
.short _0206F2E0 - _0206F294 - 2; case 4
|
|
.short _0206F2EE - _0206F294 - 2; case 5
|
|
.short _0206F2D4 - _0206F294 - 2; case 6
|
|
.short _0206F2FC - _0206F294 - 2; case 7
|
|
.short _0206F30E - _0206F294 - 2; case 8
|
|
.short _0206F314 - _0206F294 - 2; case 9
|
|
.short _0206F302 - _0206F294 - 2; case 10
|
|
_0206F2AA:
|
|
mov r0, #0x0
|
|
strb r0, [r4, #0xc]
|
|
mov r0, #0x1
|
|
strb r0, [r4, #0xd]
|
|
mov r0, #0x4
|
|
str r0, [r4, #0x4]
|
|
b _0206F380
|
|
_0206F2B8:
|
|
mov r0, #0x32
|
|
strb r0, [r4, #0xc]
|
|
mov r0, #0x1
|
|
strb r0, [r4, #0xd]
|
|
mov r0, #0x4
|
|
str r0, [r4, #0x4]
|
|
b _0206F380
|
|
_0206F2C6:
|
|
mov r0, #0x64
|
|
strb r0, [r4, #0xc]
|
|
mov r0, #0x1
|
|
strb r0, [r4, #0xd]
|
|
mov r0, #0x4
|
|
str r0, [r4, #0x4]
|
|
b _0206F380
|
|
_0206F2D4:
|
|
mov r0, #0x0
|
|
strb r0, [r4, #0xc]
|
|
strb r0, [r4, #0xd]
|
|
mov r0, #0x4
|
|
str r0, [r4, #0x4]
|
|
b _0206F380
|
|
_0206F2E0:
|
|
mov r0, #0x32
|
|
strb r0, [r4, #0xc]
|
|
mov r0, #0x0
|
|
strb r0, [r4, #0xd]
|
|
mov r0, #0x4
|
|
str r0, [r4, #0x4]
|
|
b _0206F380
|
|
_0206F2EE:
|
|
mov r0, #0x64
|
|
strb r0, [r4, #0xc]
|
|
mov r0, #0x0
|
|
strb r0, [r4, #0xd]
|
|
mov r0, #0x4
|
|
str r0, [r4, #0x4]
|
|
b _0206F380
|
|
_0206F2FC:
|
|
mov r0, #0x6
|
|
str r0, [r4, #0x4]
|
|
b _0206F380
|
|
_0206F302:
|
|
ldr r0, [r4, #0x8]
|
|
mov r1, #0x1
|
|
strh r1, [r0, #0x0]
|
|
mov r0, #0xb
|
|
str r0, [r4, #0x4]
|
|
b _0206F380
|
|
_0206F30E:
|
|
mov r0, #0x9
|
|
str r0, [r4, #0x4]
|
|
b _0206F380
|
|
_0206F314:
|
|
mov r0, #0x8
|
|
str r0, [r4, #0x4]
|
|
b _0206F380
|
|
_0206F31A:
|
|
ldr r1, [r4, #0x0]
|
|
ldrb r2, [r4, #0xc]
|
|
ldrb r3, [r4, #0xd]
|
|
ldr r1, [r1, #0x8]
|
|
add r0, r6, #0x0
|
|
bl sub_020471C0
|
|
ldr r0, [r4, #0x4]
|
|
add r0, r0, #0x1
|
|
str r0, [r4, #0x4]
|
|
b _0206F380
|
|
_0206F330:
|
|
mov r0, #0x2
|
|
str r0, [r4, #0x4]
|
|
b _0206F380
|
|
_0206F336:
|
|
add r0, r6, #0x0
|
|
bl sub_020383D8
|
|
ldr r0, [r4, #0x4]
|
|
add r0, r0, #0x1
|
|
str r0, [r4, #0x4]
|
|
b _0206F380
|
|
_0206F344:
|
|
mov r0, #0x2
|
|
str r0, [r4, #0x4]
|
|
b _0206F380
|
|
_0206F34A:
|
|
ldr r2, _0206F388 ; =0x00040100
|
|
mov r0, #0x3
|
|
mov r1, #0x36
|
|
bl Heap_Create
|
|
bl sub_02088878 ; Loads overlay 13
|
|
mov r0, #0x36
|
|
bl ov13_02211E60
|
|
mov r0, #0x0
|
|
bl OS_ResetSystem
|
|
b _0206F380
|
|
_0206F366:
|
|
ldr r0, [r4, #0x0]
|
|
bl Heap_Free
|
|
add r0, r4, #0x0
|
|
bl Heap_Free
|
|
ldr r0, [r4, #0x4]
|
|
add r0, r0, #0x1
|
|
str r0, [r4, #0x4]
|
|
mov r0, #0x1
|
|
pop {r4-r6, pc}
|
|
_0206F37C:
|
|
mov r0, #0x1
|
|
pop {r4-r6, pc}
|
|
_0206F380:
|
|
mov r0, #0x0
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
_0206F384: .word UNK_020F943C
|
|
_0206F388: .word 0x00040100
|
|
|
|
thumb_func_start sub_0206F38C
|
|
sub_0206F38C: ; 0x0206F38C
|
|
push {r4, lr}
|
|
mov r0, #0xb
|
|
mov r1, #0x10
|
|
bl Heap_AllocAtEnd
|
|
mov r1, #0x0
|
|
mov r2, #0x10
|
|
add r4, r0, #0x0
|
|
bl MI_CpuFill8
|
|
mov r0, #0xb
|
|
mov r1, #0xc
|
|
bl Heap_AllocAtEnd
|
|
mov r1, #0x0
|
|
mov r2, #0xc
|
|
str r0, [r4, #0x0]
|
|
bl MI_CpuFill8
|
|
add r0, r4, #0x0
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0206F3B8
|
|
sub_0206F3B8: ; 0x0206F3B8
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bl sub_0206F38C
|
|
add r2, r0, #0x0
|
|
ldr r0, [r2, #0x0]
|
|
mov r1, #0x2
|
|
str r1, [r0, #0x4]
|
|
ldr r1, _0206F3D4 ; =sub_0206F1F0
|
|
add r0, r4, #0x0
|
|
bl TaskManager_Call
|
|
pop {r4, pc}
|
|
nop
|
|
_0206F3D4: .word sub_0206F1F0
|
|
|
|
thumb_func_start sub_0206F3D8
|
|
sub_0206F3D8: ; 0x0206F3D8
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
add r4, r1, #0x0
|
|
bl sub_0206F38C
|
|
add r2, r0, #0x0
|
|
ldr r0, [r2, #0x0]
|
|
mov r1, #0x1
|
|
str r1, [r0, #0x4]
|
|
ldr r1, _0206F3F8 ; =sub_0206F1F0
|
|
add r0, r5, #0x0
|
|
str r4, [r2, #0x8]
|
|
bl TaskManager_Call
|
|
pop {r3-r5, pc}
|
|
nop
|
|
_0206F3F8: .word sub_0206F1F0
|