mirror of
https://github.com/pret/pokediamond.git
synced 2026-10-04 08:21:17 -04:00
285 lines
4.8 KiB
ArmAsm
285 lines
4.8 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
|
|
.section .bss
|
|
|
|
.global UNK_021D68C0
|
|
UNK_021D68C0: ; 0x021D68C0
|
|
.space 0x80
|
|
|
|
.text
|
|
|
|
arm_func_start WM_SetEntry
|
|
WM_SetEntry: ; 0x020DAD74
|
|
stmdb sp!, {r4-r5,lr}
|
|
sub sp, sp, #0x4
|
|
mov r5, r0
|
|
mov r4, r1
|
|
mov r0, #0x2
|
|
mov r1, #0x7
|
|
mov r2, #0x9
|
|
bl WMi_CheckStateEx
|
|
_020DAD94: ; 0x020DAD94
|
|
cmp r0, #0x0
|
|
addne sp, sp, #0x4
|
|
ldmneia sp!, {r4-r5,lr}
|
|
bxne lr
|
|
mov r1, r5
|
|
mov r0, #0x21
|
|
bl WMi_SetCallbackTable
|
|
mov r2, r4
|
|
mov r0, #0x21
|
|
mov r1, #0x1
|
|
bl WMi_SendCommand
|
|
_020DADC0: ; 0x020DADC0
|
|
cmp r0, #0x0
|
|
moveq r0, #0x2
|
|
add sp, sp, #0x4
|
|
ldmia sp!, {r4-r5,lr}
|
|
bx lr
|
|
|
|
arm_func_start WM_MeasureChannel
|
|
WM_MeasureChannel: ; 0x020DADD4
|
|
stmdb sp!, {r4-r7,lr}
|
|
sub sp, sp, #0xc
|
|
mov r7, r0
|
|
mov r6, r1
|
|
mov r5, r2
|
|
mov r4, r3
|
|
bl WMi_GetSystemWork
|
|
mov r0, #0x1
|
|
mov r1, #0x2
|
|
bl WMi_CheckStateEx
|
|
_020DADFC: ; 0x020DADFC
|
|
cmp r0, #0x0
|
|
addne sp, sp, #0xc
|
|
ldmneia sp!, {r4-r7,lr}
|
|
bxne lr
|
|
mov r1, r7
|
|
mov r0, #0x1e
|
|
bl WMi_SetCallbackTable
|
|
ldrh r2, [sp, #0x20]
|
|
mov r3, #0x1e
|
|
add r0, sp, #0x0
|
|
mov r1, #0xa
|
|
strh r3, [sp, #0x0]
|
|
strh r6, [sp, #0x2]
|
|
strh r5, [sp, #0x4]
|
|
strh r4, [sp, #0x6]
|
|
strh r2, [sp, #0x8]
|
|
bl WMi_SendCommandDirect
|
|
_020DAE40: ; 0x020DAE40
|
|
cmp r0, #0x0
|
|
moveq r0, #0x2
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r4-r7,lr}
|
|
bx lr
|
|
|
|
arm_func_start WM_SetLifeTime
|
|
WM_SetLifeTime: ; 0x020DAE54
|
|
stmdb sp!, {r4-r7,lr}
|
|
sub sp, sp, #0xc
|
|
mov r7, r0
|
|
mov r6, r1
|
|
mov r5, r2
|
|
mov r4, r3
|
|
bl WMi_CheckIdle
|
|
_020DAE70: ; 0x020DAE70
|
|
cmp r0, #0x0
|
|
addne sp, sp, #0xc
|
|
ldmneia sp!, {r4-r7,lr}
|
|
bxne lr
|
|
mov r1, r7
|
|
mov r0, #0x1d
|
|
bl WMi_SetCallbackTable
|
|
ldrh r12, [sp, #0x20]
|
|
str r4, [sp, #0x0]
|
|
mov r2, r6
|
|
mov r3, r5
|
|
mov r0, #0x1d
|
|
mov r1, #0x4
|
|
str r12, [sp, #0x4]
|
|
bl WMi_SendCommand
|
|
_020DAEAC: ; 0x020DAEAC
|
|
cmp r0, #0x0
|
|
moveq r0, #0x2
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r4-r7,lr}
|
|
bx lr
|
|
|
|
arm_func_start WM_SetBeaconIndication
|
|
WM_SetBeaconIndication: ; 0x020DAEC0
|
|
stmdb sp!, {r4-r5,lr}
|
|
sub sp, sp, #0x4
|
|
mov r5, r0
|
|
_020DAECC: ; 0x020DAECC
|
|
mov r4, r1
|
|
bl WMi_CheckIdle
|
|
_020DAED4: ; 0x020DAED4
|
|
cmp r0, #0x0
|
|
addne sp, sp, #0x4
|
|
ldmneia sp!, {r4-r5,lr}
|
|
bxne lr
|
|
cmp r4, #0x0
|
|
beq _020DAF00
|
|
cmp r4, #0x1
|
|
addne sp, sp, #0x4
|
|
movne r0, #0x6
|
|
ldmneia sp!, {r4-r5,lr}
|
|
bxne lr
|
|
_020DAF00:
|
|
mov r1, r5
|
|
mov r0, #0x19
|
|
bl WMi_SetCallbackTable
|
|
mov r2, r4
|
|
mov r0, #0x19
|
|
mov r1, #0x1
|
|
bl WMi_SendCommand
|
|
_020DAF1C: ; 0x020DAF1C
|
|
cmp r0, #0x0
|
|
moveq r0, #0x2
|
|
add sp, sp, #0x4
|
|
ldmia sp!, {r4-r5,lr}
|
|
bx lr
|
|
|
|
arm_func_start WM_SetGameInfo
|
|
WM_SetGameInfo: ; 0x020DAF30
|
|
stmdb sp!, {r4-r7,lr}
|
|
sub sp, sp, #0xc
|
|
mov r7, r0
|
|
mov r6, r1
|
|
mov r5, r2
|
|
mov r0, #0x2
|
|
mov r1, #0x7
|
|
mov r2, #0x9
|
|
mov r4, r3
|
|
bl WMi_CheckStateEx
|
|
_020DAF58: ; 0x020DAF58
|
|
cmp r0, #0x0
|
|
addne sp, sp, #0xc
|
|
ldmneia sp!, {r4-r7,lr}
|
|
bxne lr
|
|
cmp r6, #0x0
|
|
addeq sp, sp, #0xc
|
|
moveq r0, #0x6
|
|
ldmeqia sp!, {r4-r7,lr}
|
|
bxeq lr
|
|
cmp r5, #0x70
|
|
addhi sp, sp, #0xc
|
|
movhi r0, #0x6
|
|
ldmhiia sp!, {r4-r7,lr}
|
|
bxhi lr
|
|
ldr r1, _020DAFF4 ; =UNK_021D68C0
|
|
mov r0, r6
|
|
mov r2, r5
|
|
bl MIi_CpuCopy16
|
|
ldr r0, _020DAFF4 ; =UNK_021D68C0
|
|
mov r1, r5
|
|
bl DC_StoreRange
|
|
mov r1, r7
|
|
mov r0, #0x18
|
|
bl WMi_SetCallbackTable
|
|
ldrh r0, [sp, #0x20]
|
|
str r4, [sp, #0x0]
|
|
ldrb r1, [sp, #0x24]
|
|
str r0, [sp, #0x4]
|
|
ldr r2, _020DAFF4 ; =UNK_021D68C0
|
|
str r1, [sp, #0x8]
|
|
mov r3, r5
|
|
mov r0, #0x18
|
|
mov r1, #0x5
|
|
bl WMi_SendCommand
|
|
_020DAFE0: ; 0x020DAFE0
|
|
cmp r0, #0x0
|
|
moveq r0, #0x2
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r4-r7,lr}
|
|
bx lr
|
|
.balign 4
|
|
_020DAFF4: .word UNK_021D68C0
|
|
|
|
arm_func_start WM_SetWEPKeyEx
|
|
WM_SetWEPKeyEx: ; 0x020DAFF8
|
|
stmdb sp!, {r4-r7,lr}
|
|
sub sp, sp, #0x4
|
|
mov r7, r0
|
|
mov r6, r1
|
|
mov r5, r2
|
|
mov r4, r3
|
|
bl WMi_CheckIdle
|
|
_020DB014: ; 0x020DB014
|
|
cmp r0, #0x0
|
|
addne sp, sp, #0x4
|
|
ldmneia sp!, {r4-r7,lr}
|
|
bxne lr
|
|
cmp r6, #0x3
|
|
addhi sp, sp, #0x4
|
|
movhi r0, #0x6
|
|
ldmhiia sp!, {r4-r7,lr}
|
|
bxhi lr
|
|
cmp r6, #0x0
|
|
beq _020DB060
|
|
cmp r4, #0x0
|
|
addeq sp, sp, #0x4
|
|
moveq r0, #0x6
|
|
ldmeqia sp!, {r4-r7,lr}
|
|
bxeq lr
|
|
mov r0, r4
|
|
mov r1, #0x50
|
|
bl DC_StoreRange
|
|
_020DB060:
|
|
mov r1, r7
|
|
mov r0, #0x27
|
|
bl WMi_SetCallbackTable
|
|
mov r2, r6
|
|
mov r3, r4
|
|
mov r0, #0x27
|
|
mov r1, #0x3
|
|
str r5, [sp, #0x0]
|
|
bl WMi_SendCommand
|
|
_020DB084: ; 0x020DB084
|
|
cmp r0, #0x0
|
|
moveq r0, #0x2
|
|
add sp, sp, #0x4
|
|
ldmia sp!, {r4-r7,lr}
|
|
bx lr
|
|
|
|
arm_func_start WM_SetWEPKey
|
|
WM_SetWEPKey: ; 0x020DB098
|
|
stmdb sp!, {r4-r6,lr}
|
|
mov r6, r0
|
|
mov r5, r1
|
|
mov r4, r2
|
|
bl WMi_CheckIdle
|
|
_020DB0AC: ; 0x020DB0AC
|
|
cmp r0, #0x0
|
|
ldmneia sp!, {r4-r6,lr}
|
|
bxne lr
|
|
cmp r5, #0x3
|
|
movhi r0, #0x6
|
|
ldmhiia sp!, {r4-r6,lr}
|
|
bxhi lr
|
|
cmp r5, #0x0
|
|
beq _020DB0EC
|
|
cmp r4, #0x0
|
|
moveq r0, #0x6
|
|
ldmeqia sp!, {r4-r6,lr}
|
|
bxeq lr
|
|
mov r0, r4
|
|
mov r1, #0x50
|
|
bl DC_StoreRange
|
|
_020DB0EC:
|
|
mov r1, r6
|
|
mov r0, #0x14
|
|
bl WMi_SetCallbackTable
|
|
mov r2, r5
|
|
mov r3, r4
|
|
mov r0, #0x14
|
|
mov r1, #0x2
|
|
bl WMi_SendCommand
|
|
_020DB10C: ; 0x020DB10C
|
|
cmp r0, #0x0
|
|
moveq r0, #0x2
|
|
ldmia sp!, {r4-r6,lr}
|
|
bx lr
|