Files
pokediamond/arm9/asm/WM_etc.s
2020-05-22 16:51:57 -04:00

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