summaryrefslogtreecommitdiff
path: root/arm9/asm/libsnd.s
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/asm/libsnd.s')
-rw-r--r--arm9/asm/libsnd.s1655
1 files changed, 0 insertions, 1655 deletions
diff --git a/arm9/asm/libsnd.s b/arm9/asm/libsnd.s
deleted file mode 100644
index 99351712..00000000
--- a/arm9/asm/libsnd.s
+++ /dev/null
@@ -1,1655 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
- .section .text
-
- arm_func_start PushCommand_impl
-PushCommand_impl: ; 0x020CE66C
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r7, r0
- mov r0, #0x1
- mov r6, r1
- mov r5, r2
- mov r4, r3
- bl SND_AllocCommand
-_020CE68C:
- cmp r0, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r7, lr}
- bxeq lr
- str r7, [r0, #0x4]
- str r6, [r0, #0x8]
- str r5, [r0, #0xc]
- ldr r1, [sp, #0x18]
- str r4, [r0, #0x10]
- str r1, [r0, #0x14]
- bl SND_PushCommand
- add sp, sp, #0x4
- ldmia sp!, {r4-r7, lr}
- bx lr
-
- arm_func_start SNDi_SetTrackParam
-SNDi_SetTrackParam: ; 0x020CE6C4
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r12, [sp, #0x8]
- mov lr, r2
- str r3, [sp, #0x0]
- mov r2, r1
- orr r1, r0, r12, lsl #0x18
- mov r3, lr
- mov r0, #0x7
- bl PushCommand_impl
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start FUN_020CE6F8
-FUN_020CE6F8: ; 0x020CE6F8
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov lr, r1
- mov r12, r2
- str r3, [sp, #0x0]
- mov r1, r0
- mov r2, lr
- mov r3, r12
- mov r0, #0x6
- bl PushCommand_impl
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start SND_ResetMasterPan
-SND_ResetMasterPan: ; 0x020CE72C
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r2, #0x0
- mov r3, r2
- mov r0, #0x18
- mvn r1, #0x0
- str r2, [sp, #0x0]
- bl PushCommand_impl
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start SND_SetMasterPan
-SND_SetMasterPan: ; 0x020CE758
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r2, #0x0
- mov r1, r0
- mov r3, r2
- mov r0, #0x18
- str r2, [sp, #0x0]
- bl PushCommand_impl
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start SND_SetOutputSelector
-SND_SetOutputSelector: ; 0x020CE784
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov lr, r1
- mov r12, r2
- str r3, [sp, #0x0]
- mov r1, r0
- mov r2, lr
- mov r3, r12
- mov r0, #0x19
- bl PushCommand_impl
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start SND_InvalidateWaveData
-SND_InvalidateWaveData: ; 0x020CE7B8
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r2, r1
- mov r3, #0x0
- mov r1, r0
- mov r0, #0x20
- str r3, [sp, #0x0]
- bl PushCommand_impl
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start SND_InvalidateBankData
-SND_InvalidateBankData: ; 0x020CE7E4
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r2, r1
- mov r3, #0x0
- mov r1, r0
- mov r0, #0x1f
- str r3, [sp, #0x0]
- bl PushCommand_impl
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start SND_InvalidateSeqData
-SND_InvalidateSeqData: ; 0x020CE810
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r2, r1
- mov r3, #0x0
- mov r1, r0
- mov r0, #0x1e
- str r3, [sp, #0x0]
- bl PushCommand_impl
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start SND_SetupChannelPcm
-SND_SetupChannelPcm: ; 0x020CE83C
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- ldr r12, [sp, #0x18]
- mov r3, r3, lsl #0x1a
- orr r4, r3, r1, lsl #0x18
- ldr r5, [sp, #0x24]
- mov r3, r12, lsl #0x18
- ldr r1, [sp, #0x1c]
- ldr r12, [sp, #0x10]
- orr r4, r4, r5, lsl #0x10
- orr r4, r12, r4
- ldr lr, [sp, #0x20]
- orr r3, r3, r1, lsl #0x16
- ldr r12, [sp, #0x14]
- orr r1, r0, lr, lsl #0x10
- orr r3, r12, r3
- mov r0, #0xe
- str r4, [sp, #0x0]
- bl PushCommand_impl
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,lr}
- bx lr
-
- arm_func_start SND_SetChannelPan
-SND_SetChannelPan: ; 0x020CE894
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r2, r1
- mov r3, #0x0
- mov r1, r0
- mov r0, #0x15
- str r3, [sp, #0x0]
- bl PushCommand_impl
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start SND_SetChannelVolume
-SND_SetChannelVolume: ; 0x020CE8C0
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov lr, r1
- mov r3, r2
- mov r12, #0x0
- mov r1, r0
- mov r2, lr
- mov r0, #0x14
- str r12, [sp, #0x0]
- bl PushCommand_impl
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start SND_SetChannelTimer
-SND_SetChannelTimer: ; 0x020CE8F4
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r2, r1
- mov r3, #0x0
- mov r1, r0
- mov r0, #0x13
- str r3, [sp, #0x0]
- bl PushCommand_impl
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start SND_UnlockChannel
-SND_UnlockChannel: ; 0x020CE920
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r2, r1
- mov r3, #0x0
- mov r1, r0
- mov r0, #0x1b
- str r3, [sp, #0x0]
- bl PushCommand_impl
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start SND_LockChannel
-SND_LockChannel: ; 0x020CE94C
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r2, r1
- mov r3, #0x0
- mov r1, r0
- mov r0, #0x1a
- str r3, [sp, #0x0]
- bl PushCommand_impl
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start SND_SetupAlarm
-SND_SetupAlarm: ; 0x020CE978
- stmdb sp!, {r4-r6,lr}
- sub sp, sp, #0x8
- mov r4, r2
- mov r5, r1
- ldr r2, [sp, #0x18]
- mov r6, r0
- mov r1, r3
- bl SNDi_SetAlarmHandler
-_020CE998:
- str r0, [sp]
- mov r1, r6
- mov r2, r5
- mov r3, r4
- mov r0, #0x12
- bl PushCommand_impl
- add sp, sp, #0x8
- ldmia sp!, {r4-r6, lr}
- bx lr
-
- arm_func_start SND_SetupCapture
-SND_SetupCapture: ; 0x020CE9BC
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r0, r0, lsl #0x1f
- orr r0, r0, r1, lsl #0x1e
- ldr r12, [sp, #0x8]
- mov r1, r2
- orr r0, r0, r12, lsl #0x1d
- ldr r2, [sp, #0xc]
- mov lr, #0x0
- orr r0, r0, r2, lsl #0x1c
- ldr r12, [sp, #0x10]
- mov r2, r3
- orr r3, r0, r12, lsl #0x1b
- mov r0, #0x11
- str lr, [sp, #0x0]
- bl PushCommand_impl
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start SND_StopTimer
-SND_StopTimer: ; 0x020CEA08
- stmdb sp!, {r4-r9,lr}
- sub sp, sp, #0x4
- mov r7, r2
- mov r9, r0
- mov r8, r1
- mov r6, r3
- mov r4, r7
- mov r5, #0x0
- b _020CEA44
-_020CEA2C:
- ands r0, r4, #0x1
- beq _020CEA3C
- mov r0, r5
- bl SNDi_IncAlarmId
-_020CEA3C:
- add r5, r5, #0x1
- mov r4, r4, lsr #0x1
-_020CEA44:
- cmp r5, #0x8
- bge _020CEA54
- cmp r4, #0x0
- bne _020CEA2C
-_020CEA54:
- mov r1, r9
- mov r2, r8
- mov r3, r7
- mov r0, #0xd
- str r6, [sp, #0x0]
- bl PushCommand_impl
- add sp, sp, #0x4
- ldmia sp!, {r4-r9,lr}
- bx lr
-
- arm_func_start SND_StartTimer
-SND_StartTimer: ; 0x020CEA78
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov lr, r1
- mov r12, r2
- str r3, [sp, #0x0]
- mov r1, r0
- mov r2, lr
- mov r3, r12
- mov r0, #0xc
- bl PushCommand_impl
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start SND_SetTrackAllocatableChannel
-SND_SetTrackAllocatableChannel: ; 0x020CEAAC
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov lr, r1
- mov r3, r2
- mov r12, #0x0
- mov r1, r0
- mov r2, lr
- mov r0, #0x9
- str r12, [sp, #0x0]
- bl PushCommand_impl
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start SND_SetTrackPan
-SND_SetTrackPan: ; 0x020CEAE0
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r3, r2
- mov r12, #0x1
- mov r2, #0x9
- str r12, [sp, #0x0]
- bl SNDi_SetTrackParam
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start SND_SetTrackPitch
-SND_SetTrackPitch: ; 0x020CEB08
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r3, r2
- mov r12, #0x2
- mov r2, #0xc
- str r12, [sp, #0x0]
- bl SNDi_SetTrackParam
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start SND_SetPlayerChannelPriority
-SND_SetPlayerChannelPriority: ; 0x020CEB30
- ldr ip, _020CEB44 ; =FUN_020CE6F8
- mov r2, r1
- mov r1, #0x4
- mov r3, #0x1
- bx r12
- .balign 4
-_020CEB44: .word FUN_020CE6F8
-
- arm_func_start SND_SetPlayerVolume
-SND_SetPlayerVolume: ; 0x020CEB48
- ldr ip, _020CEB5C ; =FUN_020CE6F8
- mov r2, r1
- mov r1, #0x6
- mov r3, #0x2
- bx r12
- .balign 4
-_020CEB5C: .word FUN_020CE6F8
-
- arm_func_start SND_PauseSeq
-SND_PauseSeq: ; 0x020CEB60
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r2, r1
- mov r3, #0x0
- mov r1, r0
- mov r0, #0x4
- str r3, [sp, #0x0]
- bl PushCommand_impl
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start SND_StartPreparedSeq
-SND_StartPreparedSeq: ; 0x020CEB8C
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r2, #0x0
- mov r1, r0
- mov r3, r2
- mov r0, #0x3
- str r2, [sp, #0x0]
- bl PushCommand_impl
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start SND_PrepareSeq
-SND_PrepareSeq: ; 0x020CEBB8
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov lr, r1
- mov r12, r2
- str r3, [sp, #0x0]
- mov r1, r0
- mov r2, lr
- mov r3, r12
- mov r0, #0x2
- bl PushCommand_impl
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start SND_StopSeq
-SND_StopSeq: ; 0x020CEBEC
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r2, #0x0
- mov r1, r0
- mov r3, r2
- mov r0, #0x1
- str r2, [sp, #0x0]
- bl PushCommand_impl
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start SNDi_UnlockMutex
-SNDi_UnlockMutex: ; 0x020CEC18
- ldr ip, _020CEC24 ; =OS_UnlockMutex
- ldr r0, _020CEC28 ; =0x021D3820
- bx r12
- .balign 4
-_020CEC24: .word OS_UnlockMutex
-_020CEC28: .word 0x021D3820
-
- arm_func_start SNDi_LockMutex
-SNDi_LockMutex: ; 0x020CEC2C
- ldr ip, _020CEC38 ; =OS_LockMutex
- ldr r0, _020CEC3C ; =0x021D3820
- bx r12
- .balign 4
-_020CEC38: .word OS_LockMutex
-_020CEC3C: .word 0x021D3820
-
- arm_func_start SND_Init
-SND_Init: ; 0x020CEC40
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r1, _020CEC84 ; =0x021D381C
- ldr r0, [r1, #0x0]
- cmp r0, #0x0
- addne sp, sp, #0x4
- ldmneia sp!, {lr}
- bxne lr
- ldr r0, _020CEC88 ; =0x021D3820
- mov r2, #0x1
- str r2, [r1, #0x0]
- bl OS_InitMutex
- bl SND_CommandInit
- bl SND_AlarmInit
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
- .balign 4
-_020CEC84: .word 0x021D381C
-_020CEC88: .word 0x021D3820
-
- arm_func_start IsCommandAvailable
-IsCommandAvailable:
- stmdb sp!, {r4,lr}
- bl OS_IsRunOnEmulator
-_020CEC94:
- cmp r0, #0x0
- moveq r0, #0x1
- ldmeqia sp!, {r4, lr}
- bxeq lr
- bl OS_DisableInterrupts
- ldr r1, _020CECD0
- mov r2, #0x10
- str r2, [r1]
- ldr r4, [r1]
- bl OS_RestoreInterrupts
- cmp r4, #0x0
- movne r0, #0x1
- moveq r0, #0x0
- ldmia sp!, {r4, lr}
- bx lr
-_020CECD0: .word 0x04FFF200
-
- arm_func_start AllocCommand
-AllocCommand: ; 0x020CECD4
- stmdb sp!, {r4,lr}
- bl OS_DisableInterrupts
- ldr r1, _020CED24 ; =0x021D3838
- ldr r4, [r1, #0x0]
- cmp r4, #0x0
- bne _020CECFC
- bl OS_RestoreInterrupts
-_020CECF0:
- mov r0, #0x0
- ldmia sp!, {r4, lr}
- bx lr
-_020CECFC:
- ldr r2, [r4, #0x0]
- str r2, [r1, #0x0]
- cmp r2, #0x0
- ldreq r1, _020CED28 ; =0x021D3848
- moveq r2, #0x0
- streq r2, [r1, #0x0]
- bl OS_RestoreInterrupts
- mov r0, r4
- ldmia sp!, {r4,lr}
- bx lr
- .balign 4
-_020CED24: .word 0x021D3838
-_020CED28: .word 0x021D3848
-
- arm_func_start RequestCommandProc
-RequestCommandProc: ; 0x020CED2C
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, #0x7
- mov r4, #0x0
-_020CED3C:
- mov r0, r5
- mov r1, r4
- mov r2, r4
- bl PXI_SendWordByFifo
-_020CED4C:
- cmp r0, #0
- blt _020CED3C
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,lr}
- bx lr
-
- arm_func_start InitPXI
-InitPXI: ; 0x020CED60
- stmdb sp!, {r4-r6,lr}
- ldr r1, _020CEDC8 ; =PxiFifoCallback
- mov r0, #0x7
- bl PXI_SetFifoRecvCallback
- bl IsCommandAvailable
-_020CED74:
- cmp r0, #0x0
- ldmeqia sp!, {r4-r6, lr}
- bxeq lr
- mov r0, #0x7
- mov r1, #0x1
- bl PXI_IsCallbackReady
- cmp r0, #0x0
- ldmneia sp!, {r4-r6, lr}
- bxne lr
- mov r6, #0x64
- mov r5, #0x7
- mov r4, #0x1
-_020CEDA4:
- mov r0, r6
- bl OS_SpinWait
- mov r0, r5
- mov r1, r4
- bl PXI_IsCallbackReady
- cmp r0, #0x0
- beq _020CEDA4
- ldmia sp!, {r4-r6, lr}
- bx lr
-_020CEDC8: .word PxiFifoCallback
-
- arm_func_start PxiFifoCallback
-PxiFifoCallback: ; 0x020CEDCC
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r1
- bl OS_DisableInterrupts
- mov r4, r0
- mov r0, r5
- bl SNDi_CallAlarmHandler
- mov r0, r4
- bl OS_RestoreInterrupts
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,lr}
- bx lr
-
- arm_func_start SND_CountWaitingCommand
-SND_CountWaitingCommand: ; 0x020CEDFC
- stmdb sp!, {r4,lr}
- bl SND_CountFreeCommand
- mov r4, r0
- bl SND_CountReservedCommand
- rsb r1, r4, #0x100
- sub r0, r1, r0
- ldmia sp!, {r4,lr}
- bx lr
-
- arm_func_start SND_CountReservedCommand
-SND_CountReservedCommand: ; 0x020CEE1C
- stmdb sp!, {r4,lr}
- bl OS_DisableInterrupts
- ldr r1, _020CEE58 ; =0x021D3840
- mov r4, #0x0
- ldr r1, [r1, #0x0]
- cmp r1, #0x0
- beq _020CEE48
-_020CEE38:
- ldr r1, [r1, #0x0]
- add r4, r4, #0x1
- cmp r1, #0x0
- bne _020CEE38
-_020CEE48:
- bl OS_RestoreInterrupts
- mov r0, r4
- ldmia sp!, {r4,lr}
- bx lr
- .balign 4
-_020CEE58: .word 0x021D3840
-
- arm_func_start SND_CountFreeCommand
-SND_CountFreeCommand: ; 0x020CEE5C
- stmdb sp!, {r4,lr}
- bl OS_DisableInterrupts
- ldr r1, _020CEE98 ; =0x021D3838
- mov r4, #0x0
- ldr r1, [r1, #0x0]
- cmp r1, #0x0
- beq _020CEE88
-_020CEE78:
- ldr r1, [r1, #0x0]
- add r4, r4, #0x1
- cmp r1, #0x0
- bne _020CEE78
-_020CEE88:
- bl OS_RestoreInterrupts
- mov r0, r4
- ldmia sp!, {r4,lr}
- bx lr
- .balign 4
-_020CEE98: .word 0x021D3838
-
- arm_func_start SND_IsFinishedCommandTag
-SND_IsFinishedCommandTag:
- stmdb sp!, {r4,lr}
- mov r4, r0
- bl OS_DisableInterrupts
- ldr r1, _020CEEEC ; =0x021D383C
- ldr r1, [r1, #0x0]
- cmp r4, r1
- bls _020CEECC
- sub r1, r4, r1
- cmp r1, #0x80000000
- movcc r4, #0x0
- movcs r4, #0x1
- b _020CEEDC
-_020CEECC:
- sub r1, r1, r4
- cmp r1, #0x80000000
- movcc r4, #0x1
- movcs r4, #0x0
-_020CEEDC:
- bl OS_RestoreInterrupts
- mov r0, r4
- ldmia sp!, {r4,lr}
- bx lr
- .balign 4
-_020CEEEC: .word 0x021D383C
-
- arm_func_start SND_GetCurrentCommandTag
-SND_GetCurrentCommandTag: ; 0x020CEEF0
- stmdb sp!, {r4,lr}
- bl OS_DisableInterrupts
- ldr r1, _020CEF24 ; =0x021D3840
- ldr r1, [r1, #0x0]
- cmp r1, #0x0
- ldreq r1, _020CEF28 ; =0x021D383C
- ldreq r4, [r1, #0x0]
- ldrne r1, _020CEF2C ; =0x021D3858
- ldrne r4, [r1, #0x0]
- bl OS_RestoreInterrupts
- mov r0, r4
- ldmia sp!, {r4,lr}
- bx lr
- .balign 4
-_020CEF24: .word 0x021D3840
-_020CEF28: .word 0x021D383C
-_020CEF2C: .word 0x021D3858
-
- arm_func_start SND_WaitForCommandProc
-SND_WaitForCommandProc: ; 0x020CEF30
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r0
- bl SND_IsFinishedCommandTag
-_020CEF40:
- cmp r0, #0x0
- addne sp, sp, #0x4
- ldmneia sp!, {r4-r5, lr}
- bxne lr
- mov r4, #0x0
-_020CEF54:
- mov r0, r4
- bl SND_RecvCommandReply
- cmp r0, #0x0
- bne _020CEF54
- mov r0, r5
- bl SND_IsFinishedCommandTag
- cmp r0, #0x0
- addne sp, sp, #0x4
- ldmneia sp!, {r4-r5, lr}
- bxne lr
- bl RequestCommandProc
- mov r0, r5
- bl SND_IsFinishedCommandTag
- cmp r0, #0x0
- addne sp, sp, #0x4
- ldmneia sp!, {r4-r5, lr}
- bxne lr
- mov r4, #0x1
-_020CEF9C:
- mov r0, r4
- bl SND_RecvCommandReply
- mov r0, r5
- bl SND_IsFinishedCommandTag
- cmp r0, #0x0
- beq _020CEF9C
- add sp, sp, #0x4
- ldmia sp!, {r4-r5, lr}
- bx lr
-
- arm_func_start SND_FlushCommand
-SND_FlushCommand: ; 0x020CEFC0
- stmdb sp!, {r4-r9,lr}
- sub sp, sp, #0x4
- mov r5, r0
- bl OS_DisableInterrupts
- ldr r1, _020CF164 ; =0x021D3840
- mov r4, r0
- ldr r1, [r1, #0x0]
- cmp r1, #0x0
- bne _020CEFF8
- bl OS_RestoreInterrupts
- add sp, sp, #0x4
- mov r0, #0x1
- ldmia sp!, {r4-r9,lr}
- bx lr
-_020CEFF8:
- ldr r1, _020CF168 ; =0x021D3854
- ldr r1, [r1, #0x0]
- cmp r1, #0x8
- blt _020CF03C
- ands r1, r5, #0x1
- bne _020CF024
- bl OS_RestoreInterrupts
- add sp, sp, #0x4
- mov r0, #0x0
- ldmia sp!, {r4-r9,lr}
- bx lr
-_020CF024:
- mov r0, #0x1
- bl SND_RecvCommandReply
- ldr r0, _020CF168 ; =0x021D3854
- ldr r0, [r0, #0x0]
- cmp r0, #0x8
- bge _020CF024
-_020CF03C:
- ldr r0, _020CF16C ; =0x021D3B00
- mov r1, #0x1800
- bl DC_FlushRange
- ldr r1, _020CF164 ; =0x021D3840
- mov r0, #0x7
- ldr r1, [r1, #0x0]
- mov r2, #0x0
- bl PXI_SendWordByFifo
-_020CF05C:
- cmp r0, #0x0
- bge _020CF0E0
- ands r0, r5, #0x1
- bne _020CF084
- mov r0, r4
- bl OS_RestoreInterrupts
- add sp, sp, #0x4
- mov r0, #0x0
- ldmia sp!, {r4-r9, lr}
- bx lr
-_020CF084:
- ldr r1, _020CF164
- mov r0, #0x7
- ldr r1, [r1]
- mov r2, #0x0
- bl PXI_SendWordByFifo
- cmp r0, #0x0
- bge _020CF0E0
- ldr r6, _020CF164
- mov r9, #0x64
- mov r8, #0x7
- mov r7, #0x0
-_020CF0B0:
- mov r0, r4
- bl OS_RestoreInterrupts
- mov r0, r9
- bl OS_SpinWait
- bl OS_DisableInterrupts
- mov r4, r0
- mov r0, r8
- ldr r1, [r6]
- mov r2, r7
- bl PXI_SendWordByFifo
- cmp r0, #0x0
- blt _020CF0B0
-_020CF0E0:
- ands r0, r5, #0x2
- beq _020CF0EC
- bl RequestCommandProc
-_020CF0EC:
- ldr r0, _020CF170
- ldr r1, _020CF164
- ldr r3, [r0]
- ldr r5, [r1]
- add r1, r3, #0x1
- ldr r2, _020CF174
- str r1, [r0]
- str r5, [r2, r3, lsl #2]
- cmp r1, #0x8
- movgt r1, #0x0
- ldr r2, _020CF168
- strgt r1, [r0]
- ldr r1, _020CF178
- ldr r3, [r2]
- ldr r0, [r1]
- add ip, r3, #0x1
- add r6, r0, #0x1
- ldr r5, _020CF164
- mov lr, #0x0
- ldr r3, _020CF17C
- mov r0, r4
- str lr, [r5]
- str lr, [r3]
- str ip, [r2]
- str r6, [r1]
- bl OS_RestoreInterrupts
- mov r0, #0x1
- add sp, sp, #0x4
- ldmia sp!, {r4-r9, lr}
- bx lr
-_020CF164: .word 0x021D3840
-_020CF168: .word 0x021D3854
-_020CF16C: .word 0x021D3B00
-_020CF170: .word 0x021D3850
-_020CF174: .word 0x021D385C
-_020CF178: .word 0x021D3858
-_020CF17C: .word 0x021D3844
-
- arm_func_start SND_PushCommand
-SND_PushCommand: ; 0x020CF180
- stmdb sp!, {r4,lr}
- mov r4, r0
- bl OS_DisableInterrupts
- ldr r2, _020CF1C0 ; =0x021D3844
- ldr r1, [r2, #0x0]
- cmp r1, #0x0
- ldreq r1, _020CF1C4 ; =0x021D3840
- streq r4, [r2, #0x0]
- streq r4, [r1, #0x0]
- strne r4, [r1, #0x0]
- strne r4, [r2, #0x0]
- mov r1, #0x0
- str r1, [r4, #0x0]
- bl OS_RestoreInterrupts
- ldmia sp!, {r4,lr}
- bx lr
- .balign 4
-_020CF1C0: .word 0x021D3844
-_020CF1C4: .word 0x021D3840
-
- arm_func_start SND_AllocCommand
-SND_AllocCommand:
- stmdb sp!, {r4,lr}
- mov r4, r0
- bl IsCommandAvailable
-_020CF1D4:
- cmp r0, #0x0
- moveq r0, #0x0
- ldmeqia sp!, {r4,lr}
- bxeq lr
- bl AllocCommand
- cmp r0, #0x0
- ldmneia sp!, {r4,lr}
- bxne lr
- ands r0, r4, #0x1
- moveq r0, #0x0
- ldmeqia sp!, {r4,lr}
- bxeq lr
- bl SND_CountWaitingCommand
- cmp r0, #0x0
- ble _020CF238
- mov r4, #0x0
-_020CF214:
- mov r0, r4
- bl SND_RecvCommandReply
- cmp r0, #0x0
- bne _020CF214
- bl AllocCommand
- cmp r0, #0x0
- beq _020CF240
- ldmia sp!, {r4,lr}
- bx lr
-_020CF238:
- mov r0, #0x1
- bl SND_FlushCommand
-_020CF240:
- bl RequestCommandProc
- mov r4, #0x1
-_020CF248:
- mov r0, r4
- bl SND_RecvCommandReply
- bl AllocCommand
- cmp r0, #0x0
- beq _020CF248
- ldmia sp!, {r4,lr}
- bx lr
-
- arm_func_start SND_RecvCommandReply
-SND_RecvCommandReply: ; 0x020CF264
- stmdb sp!, {r4-r6,lr}
- mov r4, r0
- bl OS_DisableInterrupts
- mov r5, r0
- ands r0, r4, #0x1
- beq _020CF2C0
- bl SNDi_GetFinishedCommandTag
- ldr r4, _020CF380 ; =0x021D383C
- ldr r1, [r4, #0x0]
- cmp r1, r0
- bne _020CF2E8
- mov r6, #0x64
-_020CF294:
- mov r0, r5
- bl OS_RestoreInterrupts
- mov r0, r6
- bl OS_SpinWait
- bl OS_DisableInterrupts
- mov r5, r0
- bl SNDi_GetFinishedCommandTag
- ldr r1, [r4, #0x0]
- cmp r1, r0
- beq _020CF294
- b _020CF2E8
-_020CF2C0:
- bl SNDi_GetFinishedCommandTag
- ldr r1, _020CF380 ; =0x021D383C
- ldr r1, [r1, #0x0]
- cmp r1, r0
- bne _020CF2E8
- mov r0, r5
- bl OS_RestoreInterrupts
-_020CF2DC:
- mov r0, #0x0
- ldmia sp!, {r4-r6, lr}
- bx lr
-_020CF2E8:
- ldr r0, _020CF384 ; =0x021D384C
- ldr r2, _020CF388 ; =0x021D385C
- ldr r3, [r0, #0x0]
- add r1, r3, #0x1
- ldr r4, [r2, r3, lsl #0x2]
- str r1, [r0, #0x0]
- cmp r1, #0x8
- movgt r1, #0x0
- strgt r1, [r0, #0x0]
- ldr r0, [r4, #0x0]
- mov r1, r4
- cmp r0, #0x0
- beq _020CF32C
-_020CF31C:
- ldr r1, [r1, #0x0]
- ldr r0, [r1, #0x0]
- cmp r0, #0x0
- bne _020CF31C
-_020CF32C:
- ldr r0, _020CF38C ; =0x021D3848
- ldr r3, _020CF390 ; =0x021D3854
- ldr r0, [r0, #0x0]
- ldr r2, _020CF380 ; =0x021D383C
- cmp r0, #0x0
- strne r4, [r0, #0x0]
- ldreq r0, _020CF394 ; =0x021D3838
- ldr lr, [r3, #0x0]
- streq r4, [r0, #0x0]
- ldr ip, _020CF38C ; =0x021D3848
- sub r6, lr, #0x1
- ldr r0, [r2, #0x0]
- str r1, [r12, #0x0]
- add lr, r0, #0x1
- mov r0, r5
- str r6, [r3, #0x0]
- str lr, [r2, #0x0]
- bl OS_RestoreInterrupts
- mov r0, r4
- ldmia sp!, {r4-r6,lr}
- bx lr
- .balign 4
-_020CF380: .word 0x021D383C
-_020CF384: .word 0x021D384C
-_020CF388: .word 0x021D385C
-_020CF38C: .word 0x021D3848
-_020CF390: .word 0x021D3854
-_020CF394: .word 0x021D3838
-
- arm_func_start SND_CommandInit
-SND_CommandInit: ; 0x020CF398
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x4
- bl InitPXI
- ldr r3, _020CF478 ; =0x021D3B00
- ldr r0, _020CF47C ; =0x021D3838
- mov r4, #0x0
- str r3, [r0, #0x0]
- mov r1, r3
- mov r0, #0x18
-_020CF3BC:
- add r4, r4, #0x1
- mla r2, r4, r0, r1
- cmp r4, #0xff
- str r2, [r3], #0x18
- blt _020CF3BC
- ldr r7, _020CF480 ; =0x021D4B00
- mov r10, #0x0
- ldr r5, _020CF484 ; =0x021D3840
- ldr r4, _020CF488 ; =0x021D3844
- ldr lr, _020CF48C ; =0x021D3854
- ldr ip, _020CF490 ; =0x021D384C
- ldr r3, _020CF494 ; =0x021D3850
- ldr r1, _020CF498 ; =0x021D383C
- ldr sb, _020CF49C ; =0x021D52E8
- ldr r6, _020CF4A0 ; =0x021D3848
- ldr r2, _020CF4A4 ; =0x021D3858
- mov r8, #0x1
- ldr r0, _020CF4A8 ; =0x021D3880
- ldr fp, _020CF4AC ; =0x021D5360
- str r9, [r6, #0x0]
- str r10, [r7, #0x7e8]
- str r10, [r5, #0x0]
- str r10, [r4, #0x0]
- str r10, [lr, #0x0]
- str r10, [r12, #0x0]
- str r10, [r3, #0x0]
- str r8, [r2, #0x0]
- str r10, [r1, #0x0]
- str r0, [r11, #0x0]
- bl SNDi_InitSharedWork
- mov r0, r8
- bl SND_AllocCommand
-_020CF43C:
- cmp r0, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r11, lr}
- bxeq lr
- mov r2, #0x1D
- mov r1, fp
- str r2, [r0, #0x4]
- ldr r1, [r1]
- str r1, [r0, #0x8]
- bl SND_PushCommand
- mov r0, r8
- bl SND_FlushCommand
- add sp, sp, #0x4
- ldmia sp!, {r4-r11, lr}
- bx lr
-_020CF478: .word 0x021D3B00
-_020CF47C: .word 0x021D3838
-_020CF480: .word 0x021D4B00
-_020CF484: .word 0x021D3840
-_020CF488: .word 0x021D3844
-_020CF48C: .word 0x021D3854
-_020CF490: .word 0x021D384C
-_020CF494: .word 0x021D3850
-_020CF498: .word 0x021D383C
-_020CF49C: .word 0x021D52E8
-_020CF4A0: .word 0x021D3848
-_020CF4A4: .word 0x021D3858
-_020CF4A8: .word 0x021D3880
-_020CF4AC: .word 0x021D5360
-
- arm_func_start SNDi_CallAlarmHandler
-SNDi_CallAlarmHandler: ; 0x020CF4B0
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r3, _020CF50C ; =0x021D5300
- and r2, r0, #0xff
- mov r1, #0xc
- mla r3, r2, r1, r3
- mov r1, r0, asr #0x8
- ldrb r0, [r3, #0x8]
- and r1, r1, #0xff
- cmp r1, r0
- addne sp, sp, #0x4
- ldmneia sp!, {lr}
- bxne lr
- ldr r1, [r3, #0x0]
- cmp r1, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {lr}
- bxeq lr
- ldr r0, [r3, #0x4]
- blx r1
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
- .balign 4
-_020CF50C: .word 0x021D5300
-
- arm_func_start SNDi_SetAlarmHandler
-SNDi_SetAlarmHandler:
- mov r3, #0xc
- mul r3, r0, r3
- ldr r0, _020CF53C ; =0x021D5300
- str r1, [r0, r3]
- add r1, r0, r3
- str r2, [r1, #0x4]
- ldrb r0, [r1, #0x8]
- add r0, r0, #0x1
- strb r0, [r1, #0x8]
- ldrb r0, [r1, #0x8]
- bx lr
- .balign 4
-_020CF53C: .word 0x021D5300
-
- arm_func_start SNDi_IncAlarmId
-SNDi_IncAlarmId: ; 0x020CF540
- ldr r2, _020CF55C ; =0x021D5300
- mov r1, #0xc
- mla r1, r0, r1, r2
- ldrb r0, [r1, #0x8]
- add r0, r0, #0x1
- strb r0, [r1, #0x8]
- bx lr
- .balign 4
-_020CF55C: .word 0x021D5300
-
- arm_func_start SND_AlarmInit
-SND_AlarmInit: ; 0x020CF560
- ldr r1, _020CF58C ; =0x021D5300
- mov r2, #0x0
- mov r0, r2
-_020CF56C:
- str r0, [r1, #0x0]
- str r0, [r1, #0x4]
- add r2, r2, #0x1
- strb r0, [r1, #0x8]
- cmp r2, #0x8
- add r1, r1, #0xc
- blt _020CF56C
- bx lr
- .balign 4
-_020CF58C: .word 0x021D5300
-
- arm_func_start SNDi_InitSharedWork
-SNDi_InitSharedWork: ; 0x020CF590
- stmdb sp!, {r4,lr}
- mov r4, #0x0
- str r4, [r0, #0x4]
- strh r4, [r0, #0x8]
- strh r4, [r0, #0xa]
- mov r12, r0
- str r4, [r0, #0x0]
- mov r3, r4
- mvn r2, #0x0
-_020CF5B4:
- mov lr, r3
- str r3, [r12, #0x40]
-_020CF5BC:
- add r1, r12, lr, lsl #0x1
- add lr, lr, #0x1
- strh r2, [r1, #0x20]
- cmp lr, #0x10
- blt _020CF5BC
- add r4, r4, #0x1
- cmp r4, #0x10
- add r12, r12, #0x24
- blt _020CF5B4
- mov r3, #0x0
- mvn r2, #0x0
-_020CF5E8:
- add r1, r0, r3, lsl #0x1
- add r1, r1, #0x200
- add r3, r3, #0x1
- strh r2, [r1, #0x60]
- cmp r3, #0x10
- blt _020CF5E8
- mov r1, #0x280
- bl DC_FlushRange
- ldmia sp!, {r4,lr}
- bx lr
-
- arm_func_start SNDi_GetFinishedCommandTag
-SNDi_GetFinishedCommandTag: ; 0x020CF610
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r0, _020CF640 ; =0x021D5360
- mov r1, #0x4
- ldr r0, [r0, #0x0]
- bl DC_InvalidateRange
- ldr r0, _020CF640 ; =0x021D5360
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x0]
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
- .balign 4
-_020CF640: .word 0x021D5360
-
- arm_func_start SND_GetPlayerTickCounter
-SND_GetPlayerTickCounter: ; 0x020CF644
- stmdb sp!, {r4,lr}
- mov r1, #0x24
- mul r4, r0, r1
- ldr r0, _020CF680 ; =0x021D5360
- mov r1, #0x4
- ldr r0, [r0, #0x0]
- add r0, r0, #0x40
- add r0, r0, r4
- bl DC_InvalidateRange
- ldr r0, _020CF680 ; =0x021D5360
- ldr r0, [r0, #0x0]
- add r0, r0, r4
- ldr r0, [r0, #0x40]
- ldmia sp!, {r4,lr}
- bx lr
- .balign 4
-_020CF680: .word 0x021D5360
-
- arm_func_start SND_GetChannelStatus
-SND_GetChannelStatus: ; 0x020CF684
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r0, _020CF6B8 ; =0x021D5360
- mov r1, #0x2
- ldr r0, [r0, #0x0]
- add r0, r0, #0x8
- bl DC_InvalidateRange
- ldr r0, _020CF6B8 ; =0x021D5360
- ldr r0, [r0, #0x0]
- ldrh r0, [r0, #0x8]
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
- .balign 4
-_020CF6B8: .word 0x021D5360
-
- arm_func_start SND_GetPlayerStatus
-SND_GetPlayerStatus: ; 0x020CF6BC
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r0, _020CF6F0 ; =0x021D5360
- mov r1, #0x4
- ldr r0, [r0, #0x0]
- add r0, r0, #0x4
- bl DC_InvalidateRange
- ldr r0, _020CF6F0 ; =0x021D5360
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x4]
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
- .balign 4
-_020CF6F0: .word 0x021D5360
-
- arm_func_start SND_CalcChannelVolume
-SND_CalcChannelVolume: ; 0x020CF6F4
- ldr r1, _020CF75C ; =0xFFFFFD2D
- cmp r0, r1
- movlt r0, r1
- blt _020CF70C
- cmp r0, #0x0
- movgt r0, #0x0
-_020CF70C:
- ldr r1, _020CF760 ; =0x000002D3
- ldr r2, _020CF764 ; =0x02103CAC
- add r3, r0, r1
- mvn r1, #0xef
- cmp r0, r1
- ldrb r2, [r2, r3]
- movlt r0, #0x3
- blt _020CF74C
- mvn r1, #0x77
- cmp r0, r1
- movlt r0, #0x2
- blt _020CF74C
- mvn r1, #0x3b
- cmp r0, r1
- movlt r0, #0x1
- movge r0, #0x0
-_020CF74C:
- orr r0, r2, r0, lsl #0x8
- mov r0, r0, lsl #0x10
- mov r0, r0, lsr #0x10
- bx lr
- .balign 4
-_020CF75C: .word 0xFFFFFD2D
-_020CF760: .word 0x000002D3
-_020CF764: .word 0x02103CAC
-
- arm_func_start SND_GetWaveDataAddress
-SND_GetWaveDataAddress: ; 0x020CF768
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r0
- mov r4, r1
- bl SNDi_LockMutex
- add r0, r5, r4, lsl #0x2
- ldr r4, [r0, #0x3c]
- cmp r4, #0x0
- beq _020CF798
- cmp r4, #0x2000000
- addcc r4, r5, r4
- b _020CF79C
-_020CF798:
- mov r4, #0x0
-_020CF79C:
- bl SNDi_UnlockMutex
- mov r0, r4
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,lr}
- bx lr
-
- arm_func_start SND_SetWaveDataAddress
-SND_SetWaveDataAddress: ; 0x020CF7B0
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- mov r5, r1
- mov r4, r2
- bl SNDi_LockMutex
- add r0, r6, #0x3c
- add r2, r6, r5, lsl #0x2
- add r0, r0, r5, lsl #0x2
- mov r1, #0x4
- str r4, [r2, #0x3c]
- bl DC_StoreRange
- bl SNDi_UnlockMutex
- ldmia sp!, {r4-r6,lr}
- bx lr
-
- arm_func_start SND_GetWaveDataCount
-SND_GetWaveDataCount: ; 0x020CF7E8
- ldr r0, [r0, #0x38]
- bx lr
-
- arm_func_start SND_GetNextInstData
-SND_GetNextInstData: ; 0x020CF7F0
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- ldr r4, [r2, #0x0]
- ldr r3, [r0, #0x38]
- cmp r4, r3
- bhs _020CF9B8
- mov r12, #0x0
-_020CF80C:
- add r3, r0, r4, lsl #0x2
- ldr r4, [r3, #0x3c]
- strb r4, [r1, #0x0]
- ldrb r3, [r1, #0x0]
- cmp r3, #0x10
- bgt _020CF850
- cmp r3, #0x10
- bge _020CF8A8
- cmp r3, #0x5
- addls pc, pc, r3, lsl #0x2
- b _020CF998
-_020CF838:
- b _020CF998
- b _020CF85C
- b _020CF85C
- b _020CF85C
- b _020CF85C
- b _020CF85C
-_020CF850:
- cmp r3, #0x11
- beq _020CF924
- b _020CF998
-_020CF85C:
- mov r3, r4, lsr #0x8
- add r5, r0, r4, lsr #0x8
- ldrh r4, [r0, r3]
- ldrh r3, [r5, #0x2]
- add sp, sp, #0x4
- mov r0, #0x1
- strh r4, [r1, #0x2]
- strh r3, [r1, #0x4]
- ldrh r4, [r5, #0x4]
- ldrh r3, [r5, #0x6]
- strh r4, [r1, #0x6]
- strh r3, [r1, #0x8]
- ldrh r3, [r5, #0x8]
- strh r3, [r1, #0xA]
- ldr r1, [r2]
- add r1, r1, #0x1
- str r1, [r2]
- ldmia sp!, {r4-r5,lr}
- bx lr
-_020CF8A8:
- add r5, r0, r4, lsr #0x8
- b _020CF904
-_020CF8B0:
- mov r0, #0xc
- mla r12, lr, r0, r5
- ldrh r4, [r12, #0x2]
- ldrh r3, [r12, #0x4]
- add sp, sp, #0x4
- mov r0, #0x1
- strh r4, [r1, #0x0]
- strh r3, [r1, #0x2]
- ldrh r4, [r12, #0x6]
- ldrh r3, [r12, #0x8]
- strh r4, [r1, #0x4]
- strh r3, [r1, #0x6]
- ldrh r4, [r12, #0xa]
- ldrh r3, [r12, #0xc]
- strh r4, [r1, #0x8]
- strh r3, [r1, #0xa]
- ldr r1, [r2, #0x4]
- add r1, r1, #0x1
- str r1, [r2, #0x4]
- ldmia sp!, {r4-r5,lr}
- bx lr
-_020CF904:
- ldrb r4, [r5, #0x1]
- ldrb r3, [r5, #0x0]
- ldr lr, [r2, #0x4]
- sub r3, r4, r3
- add r3, r3, #0x1
- cmp lr, r3
- blo _020CF8B0
- b _020CF998
-_020CF924:
- add r4, r0, r4, lsr #0x8
- b _020CF98C
-_020CF92C:
- ldrb lr, [r4, r3]
- cmp lr, #0x0
- beq _020CF998
- mov r0, #0xc
- mla lr, r3, r0, r4
- ldrh r12, [lr, #0x8]
- ldrh r3, [lr, #0xa]
- add sp, sp, #0x4
- mov r0, #0x1
- strh r12, [r1, #0x0]
- strh r3, [r1, #0x2]
- ldrh r12, [lr, #0xc]
- ldrh r3, [lr, #0xe]
- strh r12, [r1, #0x4]
- strh r3, [r1, #0x6]
- ldrh r12, [lr, #0x10]
- ldrh r3, [lr, #0x12]
- strh r12, [r1, #0x8]
- strh r3, [r1, #0xa]
- ldr r1, [r2, #0x4]
- add r1, r1, #0x1
- str r1, [r2, #0x4]
- ldmia sp!, {r4-r5,lr}
- bx lr
-_020CF98C:
- ldr r3, [r2, #0x4]
- cmp r3, #0x8
- blo _020CF92C
-_020CF998:
- ldr r3, [r2, #0x0]
- add r3, r3, #0x1
- str r3, [r2, #0x0]
- str r12, [r2, #0x4]
- ldr r4, [r2, #0x0]
- ldr r3, [r0, #0x38]
- cmp r4, r3
- blo _020CF80C
-_020CF9B8:
- mov r0, #0x0
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,lr}
- bx lr
-
- arm_func_start SND_GetFirstInstDataPos
-SND_GetFirstInstDataPos: ; 0x020CF9C8
- sub sp, sp, #0x8
- mov r1, #0x0
- str r1, [sp, #0x0]
- str r1, [sp, #0x4]
- str r1, [r0, #0x0]
- str r1, [r0, #0x4]
- add sp, sp, #0x8
- bx lr
-
- arm_func_start SND_DestroyWaveArc
-SND_DestroyWaveArc: ; 0x020CF9E8
- stmdb sp!, {r4-r6,lr}
- mov r4, r0
- bl SNDi_LockMutex
- ldr r0, [r4, #0x18]
- cmp r0, #0x0
- beq _020CFA28
- mov r5, #0x0
- mov r4, #0x8
-_020CFA08:
- ldr r6, [r0, #0x4]
- mov r1, r4
- str r5, [r0, #0x0]
- str r5, [r0, #0x4]
- bl DC_StoreRange
- mov r0, r6
- cmp r6, #0x0
- bne _020CFA08
-_020CFA28:
- bl SNDi_UnlockMutex
- ldmia sp!, {r4-r6,lr}
- bx lr
-
- arm_func_start SND_DestroyBank
-SND_DestroyBank: ; 0x020CFA34
- stmdb sp!, {r4-r8,lr}
- mov r7, r0
- bl SNDi_LockMutex
- add r5, r7, #0x18
- mov r6, #0x0
- mov r8, #0x8
- mov r4, #0x3c
-_020CFA50:
- add r1, r7, r6, lsl #0x3
- ldr r0, [r1, #0x18]
- cmp r0, #0x0
- beq _020CFAB8
- ldr r3, [r0, #0x18]
- cmp r5, r3
- bne _020CFA80
- ldr r2, [r1, #0x1c]
- mov r1, r4
- str r2, [r0, #0x18]
- bl DC_StoreRange
- b _020CFAB8
-_020CFA80:
- cmp r3, #0x0
- beq _020CFAA0
-_020CFA88:
- ldr r0, [r3, #0x4]
- cmp r5, r0
- beq _020CFAA0
- mov r3, r0
- cmp r0, #0x0
- bne _020CFA88
-_020CFAA0:
- add r0, r7, r6, lsl #0x3
- ldr r2, [r0, #0x1c]
- mov r0, r3
- mov r1, r8
- str r2, [r3, #0x4]
- bl DC_StoreRange
-_020CFAB8:
- add r6, r6, #0x1
- cmp r6, #0x4
- add r5, r5, #0x8
- blt _020CFA50
- bl SNDi_UnlockMutex
- ldmia sp!, {r4-r8,lr}
- bx lr
-
- arm_func_start SND_AssignWaveArc
-SND_AssignWaveArc: ; 0x020CFAD4
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- mov r5, r1
- mov r4, r2
- bl SNDi_LockMutex
- add r3, r6, r5, lsl #0x3
- ldr r2, [r3, #0x18]
- mov r12, r5, lsl #0x3
- cmp r2, #0x0
- beq _020CFB70
- cmp r4, r2
- bne _020CFB10
- bl SNDi_UnlockMutex
- ldmia sp!, {r4-r6,lr}
- bx lr
-_020CFB10:
- add r1, r6, #0x18
- ldr r0, [r2, #0x18]
- add r12, r1, r12
- cmp r12, r0
- bne _020CFB3C
- ldr r0, [r3, #0x1c]
- mov r1, #0x3c
- str r0, [r2, #0x18]
- ldr r0, [r3, #0x18]
- bl DC_StoreRange
- b _020CFB70
-_020CFB3C:
- cmp r0, #0x0
- beq _020CFB5C
-_020CFB44:
- ldr r1, [r0, #0x4]
- cmp r12, r1
- beq _020CFB5C
- mov r0, r1
- cmp r1, #0x0
- bne _020CFB44
-_020CFB5C:
- add r1, r6, r5, lsl #0x3
- ldr r2, [r1, #0x1c]
- mov r1, #0x8
- str r2, [r0, #0x4]
- bl DC_StoreRange
-_020CFB70:
- add r0, r6, #0x18
- ldr r1, [r4, #0x18]
- add r0, r0, r5, lsl #0x3
- str r0, [r4, #0x18]
- add r0, r6, r5, lsl #0x3
- str r1, [r0, #0x1c]
- str r4, [r0, #0x18]
- bl SNDi_UnlockMutex
- mov r0, r6
- mov r1, #0x3c
- bl DC_StoreRange
- mov r0, r4
- mov r1, #0x3c
- bl DC_StoreRange
- ldmia sp!, {r4-r6,lr}
- bx lr