summaryrefslogtreecommitdiff
path: root/arm7/asm
diff options
context:
space:
mode:
Diffstat (limited to 'arm7/asm')
-rw-r--r--arm7/asm/SND.s504
-rw-r--r--arm7/asm/SND_alarm.s144
-rw-r--r--arm7/asm/SND_bank.s245
-rw-r--r--arm7/asm/SND_capture.s38
-rw-r--r--arm7/asm/SND_channel.s208
-rw-r--r--arm7/asm/SND_command.s639
-rw-r--r--arm7/asm/SND_exChannel.s645
-rw-r--r--arm7/asm/SND_lfo.s77
-rw-r--r--arm7/asm/SND_lockChannel.s167
-rw-r--r--arm7/asm/SND_main.s197
-rw-r--r--arm7/asm/SND_seq.s549
-rw-r--r--arm7/asm/SND_unk_037FD440.s1621
-rw-r--r--arm7/asm/SND_util.s190
-rw-r--r--arm7/asm/SND_wave.s43
-rw-r--r--arm7/asm/SND_work.s84
-rw-r--r--arm7/asm/wram2.s16
16 files changed, 8 insertions, 5359 deletions
diff --git a/arm7/asm/SND.s b/arm7/asm/SND.s
deleted file mode 100644
index 8bab9030..00000000
--- a/arm7/asm/SND.s
+++ /dev/null
@@ -1,504 +0,0 @@
-#todo split further
-
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .data
-
- .global sMasterPan
-sMasterPan:
- .word 0xFFFFFFFF
-
- .section .bss
-
- .global sSurroundDecay
-sSurroundDecay: ;0x03807A0C
- .space 0x03807A10 - 0x03807A0C
-
- .global sOrgPan
-sOrgPan: ;0x03807A10
- .space 0x03807A20 - 0x03807A10
-
- .global sOrgVolume
-sOrgVolume: ;0x03807A20
- .space 0x03807A30 - 0x03807A20
-
- .section .text
-
- arm_func_start SND_SetOutputSelector
-SND_SetOutputSelector: ; 0x037FBA0C
- ldr ip, _037FBA40 ; =0x04000501
- ldrb ip, [ip]
- ands ip, ip, #128 ; 0x80
- movne ip, #1
- moveq ip, #0
- mov ip, ip, lsl #7
- orr r3, ip, r3, lsl #5
- orr r2, r3, r2, lsl #4
- orr r1, r2, r1, lsl #2
- orr r1, r0, r1
- ldr r0, _037FBA40 ; =0x04000501
- strb r1, [r0]
- bx lr
-_037FBA40: .word 0x04000501
-
- arm_func_start SND_SetMasterVolume
-SND_SetMasterVolume: ; 0x037FBA44
- ldr r1, _037FBA50 ; =0x04000500
- strb r0, [r1]
- bx lr
-_037FBA50: .word 0x04000500
-
- arm_func_start SND_EndSleep
-SND_EndSleep: ; 0x037FBA54
- stmfd sp!, {lr}
- sub sp, sp, #4
- ldr r1, _037FBA94 ; =0x04000304
- ldrh r0, [r1]
- orr r0, r0, #1
- strh r0, [r1]
- mov r0, #1
- bl PMi_SetControl
- mov r0, #256 ; 0x100
- bl FUN_037FBA9C
- ldr r0, _037FBA98 ; =0x0007AB80
- bl OS_SpinWait
- bl SND_Enable
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_037FBA94: .word 0x04000304
-_037FBA98: .word 0x0007AB80
-
- arm_func_start FUN_037FBA9C
-FUN_037FBA9C: ; 0x037FBA9C
- ldr ip, _037FBAA4 ; =SVC_SoundBiasSet
- bx ip
-_037FBAA4: .word SVC_SoundBiasSet
-
- arm_func_start SND_BeginSleep
-SND_BeginSleep: ; 0x037FBAA8
- stmfd sp!, {lr}
- sub sp, sp, #4
- bl SND_Disable
- mov r0, #128 ; 0x80
- bl FUN_037FBAEC
- mov r0, #262144 ; 0x40000
- bl OS_SpinWait
- mov r0, #1
- bl PMi_ResetControl
- ldr r1, _037FBAE8 ; =0x04000304
- ldrh r0, [r1]
- bic r0, r0, #1
- strh r0, [r1]
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_037FBAE8: .word 0x04000304
-
- arm_func_start FUN_037FBAEC
-FUN_037FBAEC: ; 0x037FBAEC
- ldr ip, _037FBAF4 ; =SVC_SoundBiasReset
- bx ip
-_037FBAF4: .word SVC_SoundBiasReset
-
- arm_func_start SND_Shutdown
-SND_Shutdown: ; 0x037FBAF8
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- bl SND_Disable
- mov r5, #0
- mov r4, #1
-_037FBB0C:
- mov r0, r5
- mov r1, r4
- bl SND_StopChannel
- add r5, r5, #1
- cmp r5, #16
- blt _037FBB0C
- mov r1, #0
- ldr r0, _037FBB44 ; =0x04000508
- strb r1, [r0]
- ldr r0, _037FBB48 ; =0x04000509
- strb r1, [r0]
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-_037FBB44: .word 0x04000508
-_037FBB48: .word 0x04000509
-
- arm_func_start SND_Disable
-SND_Disable: ; 0x037FBB4C
- ldr r1, _037FBB60 ; =0x04000501
- ldrb r0, [r1]
- bic r0, r0, #128 ; 0x80
- strb r0, [r1]
- bx lr
-_037FBB60: .word 0x04000501
-
- arm_func_start SND_Enable
-SND_Enable: ; 0x037FBB64
- ldr r1, _037FBB78 ; =0x04000501
- ldrb r0, [r1]
- orr r0, r0, #128 ; 0x80
- strb r0, [r1]
- bx lr
-_037FBB78: .word 0x04000501
-
- arm_func_start CalcSurroundDecay
-CalcSurroundDecay: ; 0x037FBB7C
- cmp r1, #24
- bge _037FBBAC
- ldr r2, _037FBBE0 ; =sSurroundDecay
- ldr r3, [r2]
- ldr r2, _037FBBE4 ; =0x00007FFF
- sub r2, r2, r3
- add r1, r1, #40 ; 0x28
- mul r1, r3, r1
- add r1, r1, r2, lsl #6
- mul r1, r0, r1
- mov r0, r1, asr #21
- bx lr
-_037FBBAC:
- cmp r1, #104 ; 0x68
- bxle lr
- ldr r2, _037FBBE0 ; =sSurroundDecay
- ldr ip, [r2]
- ldr r2, _037FBBE4 ; =0x00007FFF
- add r3, ip, r2
- rsb r2, ip, #0
- sub r1, r1, #40 ; 0x28
- mul r1, r2, r1
- add r1, r1, r3, lsl #6
- mul r1, r0, r1
- mov r0, r1, asr #21
- bx lr
-_037FBBE0: .word sSurroundDecay
-_037FBBE4: .word 0x00007FFF
-
- arm_func_start SNDi_SetSurroundDecay
-SNDi_SetSurroundDecay: ; 0x037FBBE8
- stmdb sp!, {r4, r5, r6, r7, r8, lr}
- ldr r1, _037FBC40 ; =sSurroundDecay
- str r0, [r1]
- mov r4, #0
- ldr r6, _037FBC44 ; =sOrgVolume
- mov r7, #1
- ldr r5, _037FBC48 ; =0x0000FFF5
-_037FBC04:
- mov r0, r7, lsl r4
- ands r0, r0, r5
- beq _037FBC2C
- mov r8, r4, lsl #4
- add r0, r8, #67108864 ; 0x4000000
- ldrb r1, [r0, #1026] ; 0x402
- ldrb r0, [r6, r4]
- bl CalcSurroundDecay
- add r1, r8, #67108864 ; 0x4000000
- strb r0, [r1, #1024] ; 0x400
-_037FBC2C:
- add r4, r4, #1
- cmp r4, #16
- blt _037FBC04
- ldmia sp!, {r4, r5, r6, r7, r8, lr}
- bx lr
-_037FBC40: .word sSurroundDecay
-_037FBC44: .word sOrgVolume
-_037FBC48: .word 0x0000FFF5
-
- arm_func_start SND_GetChannelControl
-SND_GetChannelControl: ; 0x037FBC4C
- mov r0, r0, lsl #4
- add r0, r0, #67108864 ; 0x4000000
- ldr r0, [r0, #1024] ; 0x400
- bx lr
-
- arm_func_start SND_SetMasterPan
-SND_SetMasterPan: ; 0x037FBC5C
- ldr r1, _037FBCB8 ; =sMasterPan
- str r0, [r1]
- cmp r0, #0
- blt _037FBC90
- mov r2, #0
- and r1, r0, #255 ; 0xff
-_037FBC74:
- mov r0, r2, lsl #4
- add r0, r0, #67108864 ; 0x4000000
- strb r1, [r0, #1026] ; 0x402
- add r2, r2, #1
- cmp r2, #16
- blt _037FBC74
- bx lr
-_037FBC90:
- mov r3, #0
- ldr r2, _037FBCBC ; =sOrgPan
-_037FBC98:
- ldrb r1, [r2, r3]
- mov r0, r3, lsl #4
- add r0, r0, #67108864 ; 0x4000000
- strb r1, [r0, #1026] ; 0x402
- add r3, r3, #1
- cmp r3, #16
- blt _037FBC98
- bx lr
-_037FBCB8: .word sMasterPan
-_037FBCBC: .word sOrgPan
-
- arm_func_start SND_IsChannelActive
-SND_IsChannelActive: ; 0x037FBCC0
- mov r0, r0, lsl #4
- add r0, r0, #67108864 ; 0x4000000
- ldrb r0, [r0, #1027] ; 0x403
- ands r0, r0, #128 ; 0x80
- movne r0, #1
- moveq r0, #0
- bx lr
-
- arm_func_start SND_SetChannelPan
-SND_SetChannelPan: ; 0x037FBCDC
- stmdb sp!, {r4, lr}
- ldr r2, _037FBD44 ; =sOrgPan
- strb r1, [r2, r0]
- ldr r2, _037FBD48 ; =sMasterPan
- ldr r2, [r2]
- cmp r2, #0
- movge r1, r2
- mov r4, r0, lsl #4
- add r2, r4, #67108864 ; 0x4000000
- strb r1, [r2, #1026] ; 0x402
- ldr r2, _037FBD4C ; =sSurroundDecay
- ldr r2, [r2]
- cmp r2, #0
- ble _037FBD3C
- mov r2, #1
- mov r3, r2, lsl r0
- ldr r2, _037FBD50 ; =0x0000FFF5
- ands r2, r3, r2
- beq _037FBD3C
- ldr r2, _037FBD54 ; =sOrgVolume
- ldrb r0, [r2, r0]
- bl CalcSurroundDecay
- add r1, r4, #67108864 ; 0x4000000
- strb r0, [r1, #1024] ; 0x400
-_037FBD3C:
- ldmia sp!, {r4, lr}
- bx lr
-_037FBD44: .word sOrgPan
-_037FBD48: .word sMasterPan
-_037FBD4C: .word sSurroundDecay
-_037FBD50: .word 0x0000FFF5
-_037FBD54: .word sOrgVolume
-
- arm_func_start SND_SetChannelTimer
-SND_SetChannelTimer: ; 0x037FBD58
- rsb r1, r1, #65536 ; 0x10000
- mov r0, r0, lsl #4
- add r0, r0, #67108864 ; 0x4000000
- add r0, r0, #1024 ; 0x400
- strh r1, [r0, #8]
- bx lr
-
- arm_func_start SND_SetChannelVolume
-SND_SetChannelVolume: ; 0x037FBD70
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- mov r5, r0
- mov r4, r2
- ldr r0, _037FBDE8 ; =sOrgVolume
- strb r1, [r0, r5]
- ldr r0, _037FBDEC ; =sSurroundDecay
- ldr r0, [r0]
- cmp r0, #0
- ble _037FBDC8
- mov r0, #1
- mov r2, r0, lsl r5
- ldr r0, _037FBDF0 ; =0x0000FFF5
- ands r0, r2, r0
- beq _037FBDC8
- mov r0, r5, lsl #4
- add r0, r0, #67108864 ; 0x4000000
- ldrb r2, [r0, #1026] ; 0x402
- mov r0, r1
- mov r1, r2
- bl CalcSurroundDecay
- mov r1, r0
-_037FBDC8:
- orr r1, r1, r4, lsl #8
- mov r0, r5, lsl #4
- add r0, r0, #67108864 ; 0x4000000
- add r0, r0, #1024 ; 0x400
- strh r1, [r0]
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-_037FBDE8: .word sOrgVolume
-_037FBDEC: .word sSurroundDecay
-_037FBDF0: .word 0x0000FFF5
-
- arm_func_start SND_StopChannel
-SND_StopChannel: ; 0x037FBDF4
- mov r3, r0, lsl #4
- ldr r2, _037FBE1C ; =0x04000400
- add ip, r2, r0, lsl #4
- add r0, r3, #67108864 ; 0x4000000
- ldr r0, [r0, #1024] ; 0x400
- bic r2, r0, #-2147483648 ; 0x80000000
- ands r0, r1, #1
- orrne r2, r2, #32768 ; 0x8000
- str r2, [ip]
- bx lr
-_037FBE1C: .word 0x04000400
-
- arm_func_start SND_SetupChannelNoise
-SND_SetupChannelNoise: ; 0x037FBE20
- stmdb sp!, {r4, r5, r6, r7, lr}
- sub sp, sp, #4
- mov r7, r2
- mov r6, r3
- ldr r5, [sp, #24]
- mov r4, r0, lsl #4
- ldr r2, _037FBEBC ; =sOrgPan
- strb r5, [r2, r0]
- ldr r2, _037FBEC0 ; =sMasterPan
- ldr r2, [r2]
- cmp r2, #0
- movge r5, r2
- ldr r2, _037FBEC4 ; =sOrgVolume
- strb r1, [r2, r0]
- ldr r2, _037FBEC8 ; =sSurroundDecay
- ldr r2, [r2]
- cmp r2, #0
- ble _037FBE8C
- mov r2, #1
- mov r2, r2, lsl r0
- ldr r0, _037FBECC ; =0x0000FFF5
- ands r0, r2, r0
- beq _037FBE8C
- mov r0, r1
- mov r1, r5
- bl CalcSurroundDecay
- mov r1, r0
-_037FBE8C:
- mov r0, r5, lsl #16
- orr r0, r0, #1610612736 ; 0x60000000
- orr r0, r0, r7, lsl #8
- orr r1, r1, r0
- add r0, r4, #67108864 ; 0x4000000
- str r1, [r0, #1024] ; 0x400
- rsb r1, r6, #65536 ; 0x10000
- add r0, r0, #1024 ; 0x400
- strh r1, [r0, #8]
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
-_037FBEBC: .word sOrgPan
-_037FBEC0: .word sMasterPan
-_037FBEC4: .word sOrgVolume
-_037FBEC8: .word sSurroundDecay
-_037FBECC: .word 0x0000FFF5
-
- arm_func_start SND_SetupChannelPsg
-SND_SetupChannelPsg: ; 0x037FBED0
- stmdb sp!, {r4, r5, r6, r7, lr}
- sub sp, sp, #4
- mov r7, r1
- mov r6, r3
- ldr r5, [sp, #28]
- mov r4, r0, lsl #4
- ldr r1, _037FBF74 ; =sOrgPan
- strb r5, [r1, r0]
- ldr r1, _037FBF78 ; =sMasterPan
- ldr r1, [r1]
- cmp r1, #0
- movge r5, r1
- ldr r1, _037FBF7C ; =sOrgVolume
- strb r2, [r1, r0]
- ldr r1, _037FBF80 ; =sSurroundDecay
- ldr r1, [r1]
- cmp r1, #0
- ble _037FBF3C
- mov r1, #1
- mov r1, r1, lsl r0
- ldr r0, _037FBF84 ; =0x0000FFF5
- ands r0, r1, r0
- beq _037FBF3C
- mov r0, r2
- mov r1, r5
- bl CalcSurroundDecay
- mov r2, r0
-_037FBF3C:
- mov r0, r7, lsl #24
- orr r0, r0, #1610612736 ; 0x60000000
- orr r0, r0, r5, lsl #16
- orr r0, r0, r6, lsl #8
- orr r1, r2, r0
- add r0, r4, #67108864 ; 0x4000000
- str r1, [r0, #1024] ; 0x400
- ldr r1, [sp, #24]
- rsb r1, r1, #65536 ; 0x10000
- add r0, r0, #1024 ; 0x400
- strh r1, [r0, #8]
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
-_037FBF74: .word sOrgPan
-_037FBF78: .word sMasterPan
-_037FBF7C: .word sOrgVolume
-_037FBF80: .word sSurroundDecay
-_037FBF84: .word 0x0000FFF5
-
- arm_func_start SND_SetupChannelPcm
-SND_SetupChannelPcm: ; 0x037FBF88
- stmdb sp!, {r4, r5, r6, r7, r8, lr}
- mov r8, r1
- mov r7, r2
- mov r6, r3
- ldr r1, [sp, #32]
- ldr r5, [sp, #44] ; 0x2c
- mov r4, r0, lsl #4
- ldr r2, _037FC044 ; =sOrgPan
- strb r5, [r2, r0]
- ldr r2, _037FC048 ; =sMasterPan
- ldr r2, [r2]
- cmp r2, #0
- movge r5, r2
- ldr r2, _037FC04C ; =sOrgVolume
- strb r1, [r2, r0]
- ldr r2, _037FC050 ; =sSurroundDecay
- ldr r2, [r2]
- cmp r2, #0
- ble _037FBFF8
- mov r2, #1
- mov r2, r2, lsl r0
- ldr r0, _037FC054 ; =0x0000FFF5
- ands r0, r2, r0
- beq _037FBFF8
- mov r0, r1
- mov r1, r5
- bl CalcSurroundDecay
- mov r1, r0
-_037FBFF8:
- ldr r2, [sp, #36] ; 0x24
- mov r0, r7, lsl #29
- orr r0, r0, r6, lsl #27
- orr r0, r0, r5, lsl #16
- orr r0, r0, r2, lsl #8
- orr r0, r1, r0
- add r1, r4, #67108864 ; 0x4000000
- str r0, [r1, #1024] ; 0x400
- ldr r0, [sp, #40] ; 0x28
- rsb r2, r0, #65536 ; 0x10000
- add r0, r1, #1024 ; 0x400
- strh r2, [r0, #8]
- ldr r2, [sp, #24]
- strh r2, [r0, #10]
- ldr r0, [sp, #28]
- str r0, [r1, #1036] ; 0x40c
- str r8, [r1, #1028] ; 0x404
- ldmia sp!, {r4, r5, r6, r7, r8, lr}
- bx lr
-_037FC044: .word sOrgPan
-_037FC048: .word sMasterPan
-_037FC04C: .word sOrgVolume
-_037FC050: .word sSurroundDecay
-_037FC054: .word 0x0000FFF5
diff --git a/arm7/asm/SND_alarm.s b/arm7/asm/SND_alarm.s
deleted file mode 100644
index 68740d65..00000000
--- a/arm7/asm/SND_alarm.s
+++ /dev/null
@@ -1,144 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .bss
-
- .global _03808EEC
-_03808EEC: ;0x03808EEC
- .space 0x038090EC - 0x03808EEC
-
- .section .text
-
- arm_func_start AlarmHandler
-AlarmHandler: ; 0x037FF524
- stmdb sp!, {r4, r5, r6, lr}
- mov r6, r0
- mov r5, #7
- mov r4, #0
-_037FF534:
- mov r0, r5
- mov r1, r6
- mov r2, r4
- bl PXI_SendWordByFifo
- cmp r0, #0
- blt _037FF534
- ldmia sp!, {r4, r5, r6, lr}
- bx lr
-
- arm_func_start SND_StopAlarm
-SND_StopAlarm: ; 0x037FF554
- stmdb sp!, {r4, lr}
- ldr r1, _037FF590 ; =_03808EEC
- add r4, r1, r0, lsl #6
- ldrb r0, [r1, r0, lsl #6]
- cmp r0, #0
- beq _037FF588
- add r0, r4, #20
- bl OS_CancelAlarm
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- mov r0, #0
- strb r0, [r4]
-_037FF588:
- ldmia sp!, {r4, lr}
- bx lr
-_037FF590: .word _03808EEC
-
- arm_func_start SND_StartAlarm
-SND_StartAlarm: ; 0x037FF594
- stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
- sub sp, sp, #12
- mov r4, r0
- ldr r0, _037FF654 ; =_03808EEC
- add r5, r0, r4, lsl #6
- ldrb r0, [r0, r4, lsl #6]
- cmp r0, #0
- beq _037FF5C4
- add r0, r5, #20
- bl OS_CancelAlarm
- mov r0, #0
- strb r0, [r5]
-_037FF5C4:
- ldr r9, [r5, #4]
- ldr r8, [r5, #8]
- ldr r7, [r5, #12]
- ldr r6, [r5, #16]
- ldrb r0, [r5, #1]
- orr r4, r4, r0, lsl #8
- add r0, r5, #20
- bl OS_CreateAlarm
- mov r0, #0
- cmp r6, r0
- cmpeq r7, r0
- bne _037FF610
- str r4, [sp]
- add r0, r5, #20
- mov r1, r9
- mov r2, r8
- ldr r3, _037FF658 ; =AlarmHandler
- bl OS_SetAlarm
- b _037FF640
-_037FF610:
- bl OS_GetTick
- mov r2, r0
- ldr r0, _037FF658 ; =AlarmHandler
- str r0, [sp, #4]
- str r4, [sp, #8]
- mov r3, r7
- str r6, [sp]
- add r0, r5, #20
- adds r4, r9, r2
- adc r2, r8, r1
- mov r1, r4
- bl OS_SetPeriodicAlarm
-_037FF640:
- mov r0, #1
- strb r0, [r5]
- add sp, sp, #12
- ldmia sp!, {r4, r5, r6, r7, r8, r9, lr}
- bx lr
-_037FF654: .word _03808EEC
-_037FF658: .word AlarmHandler
-
- arm_func_start SND_SetupAlarm
-SND_SetupAlarm: ; 0x037FF65C
- stmdb sp!, {r4, r5, r6, r7, r8, lr}
- mov r8, r1
- mov r7, r2
- mov r6, r3
- ldr r5, [sp, #24]
- ldr r1, _037FF6B4 ; =_03808EEC
- add r4, r1, r0, lsl #6
- ldrb r0, [r1, r0, lsl #6]
- cmp r0, #0
- beq _037FF694
- add r0, r4, #20
- bl OS_CancelAlarm
- mov r0, #0
- strb r0, [r4]
-_037FF694:
- str r8, [r4, #4]
- str r7, [r4, #8]
- str r6, [r4, #12]
- str r5, [r4, #16]
- ldr r0, [sp, #28]
- strb r0, [r4, #1]
- ldmia sp!, {r4, r5, r6, r7, r8, lr}
- bx lr
-_037FF6B4: .word _03808EEC
-
- arm_func_start SND_AlarmInit
-SND_AlarmInit: ; 0x037FF6B8
- mov r3, #0
- mov r2, r3
- ldr r1, _037FF6E0 ; =SNDi_Work
-_037FF6C4:
- add r0, r1, r3, lsl #6
- strb r2, [r0, #3968] ; 0xf80
- strb r2, [r0, #3969] ; 0xf81
- add r3, r3, #1
- cmp r3, #8
- blt _037FF6C4
- bx lr
-_037FF6E0: .word SNDi_Work
diff --git a/arm7/asm/SND_bank.s b/arm7/asm/SND_bank.s
deleted file mode 100644
index acf1ac44..00000000
--- a/arm7/asm/SND_bank.s
+++ /dev/null
@@ -1,245 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- arm_func_start GetWaveData
-GetWaveData: ; 0x037FF114
- stmfd sp!, {lr}
- sub sp, sp, #4
- add r0, r0, r1, lsl #3
- ldr r0, [r0, #24]
- cmp r0, #0
- moveq r0, #0
- beq _037FF148
- ldr r1, [r0, #56] ; 0x38
- cmp r2, r1
- movcs r0, #0
- bcs _037FF148
- mov r1, r2
- bl SND_GetWaveDataAddress
-_037FF148:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start SND_NoteOn
-SND_NoteOn: ; 0x037FF154
- stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
- sub sp, sp, #4
- mov r9, r0
- mov r8, r1
- mov r7, r2
- mov r6, r3
- ldr r5, [sp, #36] ; 0x24
- ldrb r4, [r5, #10]
- cmp r4, #255 ; 0xff
- mvneq r6, #0
- moveq r4, #0
- ldrb r0, [r5]
- cmp r0, #4
- addls pc, pc, r0, lsl #2
- b _037FF210
- b _037FF210
- b _037FF1A4
- b _037FF1EC
- b _037FF200
- b _037FF1A4
-_037FF1A4:
- cmp r0, #1
- ldrneh r1, [r5, #4]
- ldrneh r0, [r5, #2]
- orrne r1, r0, r1, lsl #16
- bne _037FF1CC
- ldr r0, [sp, #32]
- ldrh r1, [r5, #4]
- ldrh r2, [r5, #2]
- bl GetWaveData
- mov r1, r0
-_037FF1CC:
- cmp r1, #0
- moveq r0, #0
- beq _037FF214
- mov r0, r9
- add r2, r1, #12
- mov r3, r6
- bl SND_StartExChannelPcm
- b _037FF214
-_037FF1EC:
- mov r0, r9
- ldrh r1, [r5, #2]
- mov r2, r6
- bl SND_StartExChannelPsg
- b _037FF214
-_037FF200:
- mov r0, r9
- mov r1, r6
- bl SND_StartExChannelNoise
- b _037FF214
-_037FF210:
- mov r0, #0
-_037FF214:
- cmp r0, #0
- moveq r0, #0
- beq _037FF270
- strb r8, [r9, #8]
- ldrb r0, [r5, #6]
- strb r0, [r9, #5]
- strb r7, [r9, #9]
- mov r0, r9
- ldrb r1, [r5, #7]
- bl SND_SetExChannelAttack
- mov r0, r9
- ldrb r1, [r5, #8]
- bl SND_SetExChannelDecay
- mov r0, r9
- ldrb r1, [r5, #9]
- bl SND_SetExChannelSustain
- mov r0, r9
- mov r1, r4
- bl SND_SetExChannelRelease
- ldrb r0, [r5, #11]
- sub r0, r0, #64 ; 0x40
- strb r0, [r9, #10]
- mov r0, #1
-_037FF270:
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, r8, r9, lr}
- bx lr
-
- arm_func_start SND_GetWaveDataAddress
-SND_GetWaveDataAddress: ; 0x037FF27C
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- mov r5, r0
- mov r4, r1
- bl SNDi_LockMutex
- add r0, r5, r4, lsl #2
- ldr r4, [r0, #60] ; 0x3c
- cmp r4, #0
- beq _037FF2AC
- cmp r4, #33554432 ; 0x2000000
- addcc r4, r5, r4
- b _037FF2B0
-_037FF2AC:
- mov r4, #0
-_037FF2B0:
- bl SNDi_UnlockMutex
- mov r0, r4
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-
- arm_func_start SND_ReadInstData
-SND_ReadInstData: ; 0x037FF2C4
- stmdb sp!, {r4, r5, r6, r7, lr}
- sub sp, sp, #4
- mov r6, r0
- movs r7, r1
- mov r5, r2
- mov r4, r3
- movmi r0, #0
- bmi _037FF43C
- bl SNDi_LockMutex
- ldr r0, [r6, #56] ; 0x38
- cmp r7, r0
- bcc _037FF300
- bl SNDi_UnlockMutex
- mov r0, #0
- b _037FF43C
-_037FF300:
- add r0, r6, r7, lsl #2
- ldr r3, [r0, #60] ; 0x3c
- strb r3, [r4]
- ldrb r0, [r4]
- cmp r0, #17
- addls pc, pc, r0, lsl #2
- b _037FF428
- b _037FF428
- b _037FF364
- b _037FF364
- b _037FF364
- b _037FF364
- b _037FF364
- b _037FF428
- b _037FF428
- b _037FF428
- b _037FF428
- b _037FF428
- b _037FF428
- b _037FF428
- b _037FF428
- b _037FF428
- b _037FF428
- b _037FF384
- b _037FF3D4
-_037FF364:
- add r3, r6, r3, lsr #8
- add r2, r4, #2
- mov r1, #5
-_037FF370:
- ldrh r0, [r3], #2
- strh r0, [r2], #2
- subs r1, r1, #1
- bne _037FF370
- b _037FF434
-_037FF384:
- add r2, r6, r3, lsr #8
- ldrb r1, [r2, #1]
- ldrb r0, [r6, r3, lsr #8]
- cmp r5, r0
- blt _037FF3A0
- cmp r5, r1
- ble _037FF3AC
-_037FF3A0:
- bl SNDi_UnlockMutex
- mov r0, #0
- b _037FF43C
-_037FF3AC:
- sub r1, r5, r0
- mov r0, #12
- mla r0, r1, r0, r2
- add r2, r0, #2
- mov r1, #6
-_037FF3C0:
- ldrh r0, [r2], #2
- strh r0, [r4], #2
- subs r1, r1, #1
- bne _037FF3C0
- b _037FF434
-_037FF3D4:
- mov r2, #0
- add r1, r6, r3, lsr #8
- b _037FF3F8
-_037FF3E0:
- add r2, r2, #1
- cmp r2, #8
- blt _037FF3F8
- bl SNDi_UnlockMutex
- mov r0, #0
- b _037FF43C
-_037FF3F8:
- ldrb r0, [r1, r2]
- cmp r5, r0
- bgt _037FF3E0
- mov r0, #12
- mla r0, r2, r0, r1
- add r2, r0, #8
- mov r1, #6
-_037FF414:
- ldrh r0, [r2], #2
- strh r0, [r4], #2
- subs r1, r1, #1
- bne _037FF414
- b _037FF434
-_037FF428:
- bl SNDi_UnlockMutex
- mov r0, #0
- b _037FF43C
-_037FF434:
- bl SNDi_UnlockMutex
- mov r0, #1
-_037FF43C:
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
diff --git a/arm7/asm/SND_capture.s b/arm7/asm/SND_capture.s
deleted file mode 100644
index d40e792e..00000000
--- a/arm7/asm/SND_capture.s
+++ /dev/null
@@ -1,38 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- arm_func_start SND_IsCaptureActive
-SND_IsCaptureActive: ; 0x037FC4C0
- add r0, r0, #67108864 ; 0x4000000
- ldrb r0, [r0, #1288] ; 0x508
- ands r0, r0, #128 ; 0x80
- movne r0, #1
- moveq r0, #0
- bx lr
-
- arm_func_start SND_SetupCapture
-SND_SetupCapture: ; 0x037FC4D8
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- mov r4, r0, lsl #3
- ldr ip, [sp, #16]
- cmp ip, #0
- movne r5, #0
- moveq r5, #1
- ldr lr, [sp, #24]
- ldr ip, [sp, #20]
- mov r1, r1, lsl #3
- orr r1, r1, r5, lsl #2
- orr r1, r1, ip, lsl #1
- orr r1, lr, r1
- add r0, r0, #67108864 ; 0x4000000
- strb r1, [r0, #1288] ; 0x508
- add r0, r4, #67108864 ; 0x4000000
- str r2, [r0, #1296] ; 0x510
- add r0, r0, #1280 ; 0x500
- strh r3, [r0, #20]
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
diff --git a/arm7/asm/SND_channel.s b/arm7/asm/SND_channel.s
deleted file mode 100644
index 850c06f3..00000000
--- a/arm7/asm/SND_channel.s
+++ /dev/null
@@ -1,208 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- arm_func_start FUN_037FC530
-FUN_037FC530: ; 0x037FC530
- stmdb sp!, {r4, r5, r6, lr}
- mov r6, r0
- mov r5, r1
- add r0, r6, #40 ; 0x28
- bl SND_GetLfoValue
- mov r4, r0
- mov ip, r0, asr #31
- mov r3, #0
- cmp ip, r3
- cmpeq r0, r3
- beq _037FC5B0
- ldrb r1, [r6, #40] ; 0x28
- cmp r1, #0
- beq _037FC59C
- cmp r1, #1
- beq _037FC584
- cmp r1, #2
- moveq ip, ip, lsl #6
- orreq ip, ip, r0, lsr #26
- moveq r4, r0, lsl #6
- b _037FC5A8
-_037FC584:
- mov r2, #60 ; 0x3c
- umull r4, r1, r0, r2
- mla r1, r0, r3, r1
- mla r1, ip, r2, r1
- mov ip, r1
- b _037FC5A8
-_037FC59C:
- mov ip, ip, lsl #6
- orr ip, ip, r0, lsr #26
- mov r4, r0, lsl #6
-_037FC5A8:
- mov r4, r4, lsr #14
- orr r4, r4, ip, lsl #18
-_037FC5B0:
- cmp r5, #0
- beq _037FC5C0
- add r0, r6, #40 ; 0x28
- bl SND_UpdateLfo
-_037FC5C0:
- mov r0, r4
- ldmia sp!, {r4, r5, r6, lr}
- bx lr
-
- arm_func_start FUN_037FC5CC
-FUN_037FC5CC: ; 0x037FC5CC
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- mov r4, r0
- mov r5, r1
- ldrsh r3, [r4, #50] ; 0x32
- cmp r3, #0
- moveq r0, #0
- beq _037FC630
- ldr r0, [r4, #20]
- ldr r2, [r4, #24]
- cmp r0, r2
- movge r0, #0
- bge _037FC630
- sub r0, r2, r0
- smull r0, r1, r3, r0
- mov r3, r2, asr #31
- bl _ll_sdiv
- cmp r5, #0
- beq _037FC630
- ldrb r1, [r4, #3]
- mov r1, r1, lsl #29
- movs r1, r1, lsr #31
- ldrne r1, [r4, #20]
- addne r1, r1, #1
- strne r1, [r4, #20]
-_037FC630:
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-
- arm_func_start FUN_037FC63C
-FUN_037FC63C: ; 0x037FC63C
- stmfd sp!, {lr}
- sub sp, sp, #4
- ldrh lr, [r0, #36] ; 0x24
- and r2, lr, #255 ; 0xff
- ldrh ip, [r1, #36] ; 0x24
- and r0, ip, #255 ; 0xff
- mov r2, r2, lsl #4
- mov r3, r0, lsl #4
- ldr r1, _037FC698 ; =_03807294
- ldrb r0, [r1, lr, asr #8]
- mov r2, r2, asr r0
- ldrb r0, [r1, ip, asr #8]
- mov r0, r3, asr r0
- cmp r2, r0
- beq _037FC688
- cmp r2, r0
- movlt r0, #1
- mvnge r0, #0
- b _037FC68C
-_037FC688:
- mov r0, #0
-_037FC68C:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_037FC698: .word _03807294
-
- arm_func_start FUN_037FC69C
-FUN_037FC69C: ; 0x037FC69C
- stmdb sp!, {r4, lr}
- mov r4, r0
- ldr r0, _037FC6E4 ; =0xFFFE9680
- str r0, [r4, #16]
- mov r0, #0
- strb r0, [r4, #2]
- str r1, [r4, #52] ; 0x34
- add r0, r4, #40 ; 0x28
- bl SND_StartLfo
- ldrb r0, [r4, #3]
- orr r0, r0, #2
- strb r0, [r4, #3]
- ldrb r0, [r4, #3]
- bic r0, r0, #1
- orr r0, r0, #1
- strb r0, [r4, #3]
- ldmia sp!, {r4, lr}
- bx lr
-_037FC6E4: .word 0xFFFE9680
-
- arm_func_start FUN_037FC6E8
-FUN_037FC6E8: ; 0x037FC6E8
- stmdb sp!, {r4, lr}
- mov r4, r0
- mov ip, #0
- str ip, [r4, #80] ; 0x50
- str r1, [r4, #72] ; 0x48
- str r2, [r4, #76] ; 0x4c
- str ip, [r4, #52] ; 0x34
- strb r3, [r4, #34] ; 0x22
- mov r1, #127 ; 0x7f
- strh r1, [r4, #36] ; 0x24
- ldrb r2, [r4, #3]
- bic r2, r2, #2
- strb r2, [r4, #3]
- ldrb r2, [r4, #3]
- orr r2, r2, #4
- strb r2, [r4, #3]
- mov r2, #60 ; 0x3c
- strb r2, [r4, #8]
- strb r2, [r4, #5]
- strb r1, [r4, #9]
- strb ip, [r4, #10]
- strh ip, [r4, #12]
- strh ip, [r4, #6]
- strh ip, [r4, #14]
- strb ip, [r4, #11]
- strb r1, [r4, #4]
- strh ip, [r4, #50] ; 0x32
- str ip, [r4, #24]
- str ip, [r4, #20]
- bl SND_SetExChannelAttack
- mov r0, r4
- mov r1, #127 ; 0x7f
- bl SND_SetExChannelDecay
- mov r0, r4
- mov r1, #127 ; 0x7f
- bl SND_SetExChannelSustain
- mov r0, r4
- mov r1, #127 ; 0x7f
- bl SND_SetExChannelRelease
- add r0, r4, #40 ; 0x28
- bl SND_InitLfoParam
- ldmia sp!, {r4, lr}
- bx lr
-
- arm_func_start FUN_037FC794
-FUN_037FC794: ; 0x037FC794
- stmfd sp!, {lr}
- sub sp, sp, #4
- mov r1, r0
- cmp r1, #127 ; 0x7f
- ldreq r0, _037FC7F0 ; =0x0000FFFF
- beq _037FC7E4
- cmp r1, #126 ; 0x7e
- moveq r0, #15360 ; 0x3c00
- beq _037FC7E4
- cmp r1, #50 ; 0x32
- movlt r0, r1, lsl #1
- addlt r0, r0, #1
- movlt r0, r0, lsl #16
- movlt r0, r0, lsr #16
- blt _037FC7E4
- mov r0, #7680 ; 0x1e00
- rsb r1, r1, #126 ; 0x7e
- bl _s32_div_f
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
-_037FC7E4:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_037FC7F0: .word 0x0000FFFF
diff --git a/arm7/asm/SND_command.s b/arm7/asm/SND_command.s
deleted file mode 100644
index ec1a5014..00000000
--- a/arm7/asm/SND_command.s
+++ /dev/null
@@ -1,639 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .bss
-
- .global _038090EC
-_038090EC: ;0x038090EC
- .space 0x0380910C - 0x038090EC
-
- .global _0380910C
-_0380910C: ;0x0380910C
- .space 0x0380912C - 0x0380910C
-
- .section .text
-
- arm_func_start ReadDriverInfo
-ReadDriverInfo: ; 0x037FF6E4
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- mov r5, r0
- ldr r0, _037FF74C ; =SNDi_Work
- mov r1, r5
- mov r2, #4480 ; 0x1180
- bl MIi_CpuCopy32
- ldr r1, _037FF74C ; =SNDi_Work
- add r0, r5, #4096 ; 0x1000
- str r1, [r0, #448] ; 0x1c0
- mov r4, #0
-_037FF710:
- mov r0, r4
- bl SND_GetChannelControl
- add r1, r5, r4, lsl #2
- add r1, r1, #4096 ; 0x1000
- str r0, [r1, #384] ; 0x180
- add r4, r4, #1
- cmp r4, #16
- blt _037FF710
- mov r0, #0
- bl SND_GetLockedChannel
- add r1, r5, #4096 ; 0x1000
- str r0, [r1, #452] ; 0x1c4
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-_037FF74C: .word SNDi_Work
-
- arm_func_start StopTimer
-StopTimer: ; 0x037FF750
- stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
- sub sp, sp, #4
- mov r7, r0
- mov r6, r1
- mov r9, r2
- mov r5, r3
- bl OS_DisableInterrupts
- mov r4, r0
- mov r8, #0
- b _037FF790
-_037FF778:
- ands r0, r9, #1
- beq _037FF788
- mov r0, r8
- bl SND_StopAlarm
-_037FF788:
- add r8, r8, #1
- mov r9, r9, lsr #1
-_037FF790:
- cmp r8, #8
- bge _037FF7A0
- cmp r9, #0
- bne _037FF778
-_037FF7A0:
- mov r8, #0
- b _037FF7C4
-_037FF7A8:
- ands r0, r7, #1
- beq _037FF7BC
- mov r0, r8
- mov r1, r5
- bl SND_StopChannel
-_037FF7BC:
- add r8, r8, #1
- mov r7, r7, lsr #1
-_037FF7C4:
- cmp r8, #16
- bge _037FF7D4
- cmp r7, #0
- bne _037FF7A8
-_037FF7D4:
- ands r0, r6, #1
- movne r1, #0
- ldrne r0, _037FF80C ; =0x04000508
- strneb r1, [r0]
- ands r0, r6, #2
- movne r1, #0
- ldrne r0, _037FF810 ; =0x04000509
- strneb r1, [r0]
- mov r0, r4
- bl OS_RestoreInterrupts
- bl SND_UpdateSharedWork
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, r8, r9, lr}
- bx lr
-_037FF80C: .word 0x04000508
-_037FF810: .word 0x04000509
-
- arm_func_start StartTimer
-StartTimer: ; 0x037FF814
- stmdb sp!, {r4, r5, r6, r7, lr}
- sub sp, sp, #4
- mov r7, r0
- mov r6, r1
- mov r5, r2
- bl OS_DisableInterrupts
- mov r4, r0
- mov r2, #0
- b _037FF858
-_037FF838:
- ands r0, r7, #1
- movne r0, r2, lsl #4
- addne r0, r0, #67108864 ; 0x4000000
- ldrneb r1, [r0, #1027] ; 0x403
- orrne r1, r1, #128 ; 0x80
- strneb r1, [r0, #1027] ; 0x403
- add r2, r2, #1
- mov r7, r7, lsr #1
-_037FF858:
- cmp r2, #16
- bge _037FF868
- cmp r7, #0
- bne _037FF838
-_037FF868:
- ands r0, r6, #1
- beq _037FF8A0
- ands r0, r6, #2
- ldreq r1, _037FF8FC ; =0x04000508
- ldreqb r0, [r1]
- orreq r0, r0, #128 ; 0x80
- streqb r0, [r1]
- beq _037FF8B4
- ldr r2, _037FF8FC ; =0x04000508
- ldrh r1, [r2]
- ldr r0, _037FF900 ; =0x00008080
- orr r0, r1, r0
- strh r0, [r2]
- b _037FF8B4
-_037FF8A0:
- ands r0, r6, #2
- ldrne r1, _037FF904 ; =0x04000509
- ldrneb r0, [r1]
- orrne r0, r0, #128 ; 0x80
- strneb r0, [r1]
-_037FF8B4:
- mov r6, #0
- b _037FF8D4
-_037FF8BC:
- ands r0, r5, #1
- beq _037FF8CC
- mov r0, r6
- bl SND_StartAlarm
-_037FF8CC:
- add r6, r6, #1
- mov r5, r5, lsr #1
-_037FF8D4:
- cmp r6, #8
- bge _037FF8E4
- cmp r5, #0
- bne _037FF8BC
-_037FF8E4:
- mov r0, r4
- bl OS_RestoreInterrupts
- bl SND_UpdateSharedWork
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
-_037FF8FC: .word 0x04000508
-_037FF900: .word 0x00008080
-_037FF904: .word 0x04000509
-
- arm_func_start SetChannelPan
-SetChannelPan: ; 0x037FF908
- stmdb sp!, {r4, r5, r6, lr}
- mov r6, r0
- mov r5, r1
- mov r4, #0
- b _037FF938
-_037FF91C:
- ands r0, r6, #1
- beq _037FF930
- mov r0, r4
- mov r1, r5
- bl SND_SetChannelPan
-_037FF930:
- add r4, r4, #1
- mov r6, r6, lsr #1
-_037FF938:
- cmp r4, #16
- bge _037FF948
- cmp r6, #0
- bne _037FF91C
-_037FF948:
- ldmia sp!, {r4, r5, r6, lr}
- bx lr
-
- arm_func_start SetChannelVolume
-SetChannelVolume: ; 0x037FF950
- stmdb sp!, {r4, r5, r6, r7, lr}
- sub sp, sp, #4
- mov r7, r0
- mov r6, r1
- mov r5, r2
- mov r4, #0
- b _037FF98C
-_037FF96C:
- ands r0, r7, #1
- beq _037FF984
- mov r0, r4
- mov r1, r6
- mov r2, r5
- bl SND_SetChannelVolume
-_037FF984:
- add r4, r4, #1
- mov r7, r7, lsr #1
-_037FF98C:
- cmp r4, #16
- bge _037FF99C
- cmp r7, #0
- bne _037FF96C
-_037FF99C:
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
-
- arm_func_start SetChannelTimer
-SetChannelTimer: ; 0x037FF9A8
- stmdb sp!, {r4, r5, r6, lr}
- mov r6, r0
- mov r5, r1
- mov r4, #0
- b _037FF9D8
-_037FF9BC:
- ands r0, r6, #1
- beq _037FF9D0
- mov r0, r4
- mov r1, r5
- bl SND_SetChannelTimer
-_037FF9D0:
- add r4, r4, #1
- mov r6, r6, lsr #1
-_037FF9D8:
- cmp r4, #16
- bge _037FF9E8
- cmp r6, #0
- bne _037FF9BC
-_037FF9E8:
- ldmia sp!, {r4, r5, r6, lr}
- bx lr
-
- arm_func_start InitPXI
-InitPXI: ; 0x037FF9F0
- mov r0, #7
- ldr r1, _037FFA00 ; =PxiFifoCallback
- ldr ip, _037FFA04 ; =PXI_SetFifoRecvCallback
- bx ip
-_037FFA00: .word PxiFifoCallback
-_037FFA04: .word PXI_SetFifoRecvCallback
-
- arm_func_start PxiFifoCallback
-PxiFifoCallback: ; 0x037FFA08
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- mov r5, r1
- bl OS_DisableInterrupts
- mov r4, r0
- cmp r5, #33554432 ; 0x2000000
- bcc _037FFA38
- ldr r0, _037FFA58 ; =_038090EC
- mov r1, r5
- mov r2, #0
- bl OS_SendMessage
- b _037FFA44
-_037FFA38:
- cmp r5, #0
- bne _037FFA44
- bl SND_SendWakeupMessage
-_037FFA44:
- mov r0, r4
- bl OS_RestoreInterrupts
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-_037FFA58: .word _038090EC
-
- arm_func_start SND_CommandProc
-SND_CommandProc: ; 0x037FFA5C
- stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
- sub sp, sp, #52 ; 0x34
- ldr r7, _037FFEC4 ; =SNDi_SharedWork
- ldr r9, _037FFEC8 ; =_038090EC
- add r8, sp, #24
- mov r4, #0
- ldr r6, _037FFECC ; =0x0000FFFF
- ldr r5, _037FFED0 ; =0x003FFFFF
- b _037FFEA0
-_037FFA80:
- ldr lr, [sp, #24]
- b _037FFE88
-_037FFA88:
- add ip, sp, #28
- ldmia lr!, {r0, r1, r2, r3}
- stmia ip!, {r0, r1, r2, r3}
- ldmia lr, {r0, r1}
- stmia ip, {r0, r1}
- ldr r0, [sp, #32]
- cmp r0, #33 ; 0x21
- addls pc, pc, r0, lsl #2
- b _037FFE84
- b _037FFB34
- b _037FFB4C
- b _037FFB58
- b _037FFB70
- b _037FFB7C
- b _037FFB8C
- b _037FFB9C
- b _037FFBB4
- b _037FFBDC
- b _037FFBF0
- b _037FFC04
- b _037FFC20
- b _037FFC38
- b _037FFC50
- b _037FFD08
- b _037FFD74
- b _037FFDA8
- b _037FFC68
- b _037FFCB0
- b _037FFCD4
- b _037FFCE4
- b _037FFCF8
- b _037FFDD4
- b _037FFDE0
- b _037FFDEC
- b _037FFDF8
- b _037FFE10
- b _037FFE20
- b _037FFE30
- b _037FFE70
- b _037FFE40
- b _037FFE50
- b _037FFE60
- b _037FFE7C
-_037FFB34:
- ldr r0, [sp, #36] ; 0x24
- ldr r1, [sp, #40] ; 0x28
- ldr r2, [sp, #44] ; 0x2c
- ldr r3, [sp, #48] ; 0x30
- bl SND_StartSeq
- b _037FFE84
-_037FFB4C:
- ldr r0, [sp, #36] ; 0x24
- bl SND_StopSeq
- b _037FFE84
-_037FFB58:
- ldr r0, [sp, #36] ; 0x24
- ldr r1, [sp, #40] ; 0x28
- ldr r2, [sp, #44] ; 0x2c
- ldr r3, [sp, #48] ; 0x30
- bl SND_PrepareSeq
- b _037FFE84
-_037FFB70:
- ldr r0, [sp, #36] ; 0x24
- bl SND_StartPreparedSeq
- b _037FFE84
-_037FFB7C:
- ldr r0, [sp, #36] ; 0x24
- ldr r1, [sp, #40] ; 0x28
- bl SND_PauseSeq
- b _037FFE84
-_037FFB8C:
- ldr r0, [sp, #36] ; 0x24
- ldr r1, [sp, #40] ; 0x28
- bl SND_SkipSeq
- b _037FFE84
-_037FFB9C:
- ldr r0, [sp, #36] ; 0x24
- ldr r1, [sp, #40] ; 0x28
- ldr r2, [sp, #44] ; 0x2c
- ldr r3, [sp, #48] ; 0x30
- bl SNDi_SetPlayerParam
- b _037FFE84
-_037FFBB4:
- ldr r1, [sp, #36] ; 0x24
- mov r0, r1, lsr #24
- and r0, r0, #255 ; 0xff
- str r0, [sp]
- bic r0, r1, #-16777216 ; 0xff000000
- ldr r1, [sp, #40] ; 0x28
- ldr r2, [sp, #44] ; 0x2c
- ldr r3, [sp, #48] ; 0x30
- bl SNDi_SetTrackParam
- b _037FFE84
-_037FFBDC:
- ldr r0, [sp, #36] ; 0x24
- ldr r1, [sp, #40] ; 0x28
- ldr r2, [sp, #44] ; 0x2c
- bl SND_SetTrackMute
- b _037FFE84
-_037FFBF0:
- ldr r0, [sp, #36] ; 0x24
- ldr r1, [sp, #40] ; 0x28
- ldr r2, [sp, #44] ; 0x2c
- bl SND_SetTrackAllocatableChannel
- b _037FFE84
-_037FFC04:
- ldr r0, [sp, #36] ; 0x24
- ldr r1, [sp, #40] ; 0x28
- ldr r2, [sp, #44] ; 0x2c
- mov r2, r2, lsl #16
- mov r2, r2, asr #16
- bl SND_SetPlayerLocalVariable
- b _037FFE84
-_037FFC20:
- ldr r0, [sp, #36] ; 0x24
- ldr r1, [sp, #40] ; 0x28
- mov r1, r1, lsl #16
- mov r1, r1, asr #16
- bl SND_SetPlayerGlobalVariable
- b _037FFE84
-_037FFC38:
- ldr r0, [sp, #36] ; 0x24
- ldr r1, [sp, #40] ; 0x28
- ldr r2, [sp, #44] ; 0x2c
- ldr r3, [sp, #48] ; 0x30
- bl StartTimer
- b _037FFE84
-_037FFC50:
- ldr r0, [sp, #36] ; 0x24
- ldr r1, [sp, #40] ; 0x28
- ldr r2, [sp, #44] ; 0x2c
- ldr r3, [sp, #48] ; 0x30
- bl StopTimer
- b _037FFE84
-_037FFC68:
- ldr r1, [sp, #44] ; 0x2c
- mov r0, r1, lsr #29
- and r0, r0, #1
- str r0, [sp]
- mov r0, r1, lsr #28
- and r0, r0, #1
- str r0, [sp, #4]
- mov r0, r1, lsr #27
- and r0, r0, #1
- str r0, [sp, #8]
- mov r0, r1, lsr #31
- and r0, r0, #1
- mov r1, r1, lsr #30
- and r1, r1, #1
- ldr r2, [sp, #36] ; 0x24
- ldr r3, [sp, #40] ; 0x28
- bl SND_SetupCapture
- b _037FFE84
-_037FFCB0:
- ldr r0, [sp, #48] ; 0x30
- str r0, [sp, #4]
- ldr r3, [sp, #44] ; 0x2c
- str r4, [sp]
- ldr r0, [sp, #36] ; 0x24
- ldr r1, [sp, #40] ; 0x28
- mov r2, #0
- bl SND_SetupAlarm
- b _037FFE84
-_037FFCD4:
- ldr r0, [sp, #36] ; 0x24
- ldr r1, [sp, #40] ; 0x28
- bl SetChannelTimer
- b _037FFE84
-_037FFCE4:
- ldr r0, [sp, #36] ; 0x24
- ldr r1, [sp, #40] ; 0x28
- ldr r2, [sp, #44] ; 0x2c
- bl SetChannelVolume
- b _037FFE84
-_037FFCF8:
- ldr r0, [sp, #36] ; 0x24
- ldr r1, [sp, #40] ; 0x28
- bl SetChannelPan
- b _037FFE84
-_037FFD08:
- ldr r3, [sp, #48] ; 0x30
- ldr r1, [sp, #36] ; 0x24
- ldr r0, [sp, #44] ; 0x2c
- and r2, r3, r6
- str r2, [sp]
- and r2, r0, r5
- str r2, [sp, #4]
- mov r2, r0, lsr #24
- and r2, r2, #127 ; 0x7f
- str r2, [sp, #8]
- mov r0, r0, lsr #22
- and r0, r0, #3
- str r0, [sp, #12]
- and r0, r6, r1, lsr #16
- str r0, [sp, #16]
- mov r0, r3, lsr #16
- and r0, r0, #127 ; 0x7f
- str r0, [sp, #20]
- and r0, r1, r6
- ldr r1, [sp, #40] ; 0x28
- bic r1, r1, #-134217728 ; 0xf8000000
- mov r2, r3, lsr #24
- and r2, r2, #3
- mov r3, r3, lsr #26
- and r3, r3, #3
- bl SND_SetupChannelPcm
- b _037FFE84
-_037FFD74:
- ldr r1, [sp, #44] ; 0x2c
- ldr r3, [sp, #40] ; 0x28
- and r0, r6, r1, lsr #8
- str r0, [sp]
- and r0, r1, #127 ; 0x7f
- str r0, [sp, #4]
- ldr r0, [sp, #36] ; 0x24
- ldr r1, [sp, #48] ; 0x30
- and r2, r3, #127 ; 0x7f
- mov r3, r3, lsr #8
- and r3, r3, #3
- bl SND_SetupChannelPsg
- b _037FFE84
-_037FFDA8:
- ldr r3, [sp, #44] ; 0x2c
- ldr r2, [sp, #40] ; 0x28
- and r0, r3, #127 ; 0x7f
- str r0, [sp]
- ldr r0, [sp, #36] ; 0x24
- and r1, r2, #127 ; 0x7f
- mov r2, r2, lsr #8
- and r2, r2, #3
- and r3, r6, r3, lsr #8
- bl SND_SetupChannelNoise
- b _037FFE84
-_037FFDD4:
- ldr r0, [sp, #36] ; 0x24
- bl SNDi_SetSurroundDecay
- b _037FFE84
-_037FFDE0:
- ldr r0, [sp, #36] ; 0x24
- bl SND_SetMasterVolume
- b _037FFE84
-_037FFDEC:
- ldr r0, [sp, #36] ; 0x24
- bl SND_SetMasterPan
- b _037FFE84
-_037FFDF8:
- ldr r0, [sp, #36] ; 0x24
- ldr r1, [sp, #40] ; 0x28
- ldr r2, [sp, #44] ; 0x2c
- ldr r3, [sp, #48] ; 0x30
- bl SND_SetOutputSelector
- b _037FFE84
-_037FFE10:
- ldr r0, [sp, #36] ; 0x24
- ldr r1, [sp, #40] ; 0x28
- bl SND_LockChannel
- b _037FFE84
-_037FFE20:
- ldr r0, [sp, #36] ; 0x24
- ldr r1, [sp, #40] ; 0x28
- bl SND_UnlockChannel
- b _037FFE84
-_037FFE30:
- ldr r0, [sp, #36] ; 0x24
- ldr r1, [sp, #40] ; 0x28
- bl SND_StopUnlockedChannel
- b _037FFE84
-_037FFE40:
- ldr r0, [sp, #36] ; 0x24
- ldr r1, [sp, #40] ; 0x28
- bl SND_InvalidateSeq
- b _037FFE84
-_037FFE50:
- ldr r0, [sp, #36] ; 0x24
- ldr r1, [sp, #40] ; 0x28
- bl SND_InvalidateBank
- b _037FFE84
-_037FFE60:
- ldr r0, [sp, #36] ; 0x24
- ldr r1, [sp, #40] ; 0x28
- bl SND_InvalidateWave
- b _037FFE84
-_037FFE70:
- ldr r0, [sp, #36] ; 0x24
- str r0, [r7]
- b _037FFE84
-_037FFE7C:
- ldr r0, [sp, #36] ; 0x24
- bl ReadDriverInfo
-_037FFE84:
- ldr lr, [sp, #28]
-_037FFE88:
- cmp lr, #0
- bne _037FFA88
- ldr r1, [r7]
- ldr r0, [r1]
- add r0, r0, #1
- str r0, [r1]
-_037FFEA0:
- mov r0, r9
- mov r1, r8
- mov r2, r4
- bl OS_ReceiveMessage
- cmp r0, #0
- bne _037FFA80
- add sp, sp, #52 ; 0x34
- ldmia sp!, {r4, r5, r6, r7, r8, r9, lr}
- bx lr
-_037FFEC4: .word SNDi_SharedWork
-_037FFEC8: .word _038090EC
-_037FFECC: .word 0x0000FFFF
-_037FFED0: .word 0x003FFFFF
-
- arm_func_start SND_CommandInit
-SND_CommandInit: ; 0x037FFED4
- stmfd sp!, {lr}
- sub sp, sp, #4
- ldr r0, _037FFF08 ; =_038090EC
- ldr r1, _037FFF0C ; =_0380910C
- mov r2, #8
- bl OS_InitMessageQueue
- bl InitPXI
- mov r1, #0
- ldr r0, _037FFF10 ; =SNDi_SharedWork
- str r1, [r0]
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_037FFF08: .word _038090EC
-_037FFF0C: .word _0380910C
-_037FFF10: .word SNDi_SharedWork
diff --git a/arm7/asm/SND_exChannel.s b/arm7/asm/SND_exChannel.s
deleted file mode 100644
index b1ac819b..00000000
--- a/arm7/asm/SND_exChannel.s
+++ /dev/null
@@ -1,645 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- arm_func_start SND_FreeExChannel
-SND_FreeExChannel: ; 0x037FCB80
- cmp r0, #0
- movne r1, #0
- strne r1, [r0, #72] ; 0x48
- strne r1, [r0, #76] ; 0x4c
- bx lr
-
- arm_func_start SND_AllocExChannel
-SND_AllocExChannel: ; 0x037FCB94
- stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- sub sp, sp, #4
- mov sl, r0
- mov r9, r1
- mov fp, r3
- ldr r0, _037FCCBC ; =_03807F48
- ldr r0, [r0]
- mvn r0, r0
- and sl, sl, r0
- cmp r2, #0
- ldreq r0, _037FCCC0 ; =_03807F44
- ldreq r0, [r0]
- mvneq r0, r0
- andeq sl, sl, r0
- mov r8, #0
- mov r7, r8
- mov r5, #1
- mov r4, #84 ; 0x54
-_037FCBDC:
- ldr r0, _037FCCC4 ; =_03807298
- ldrb r1, [r0, r7]
- mov r0, r5, lsl r1
- ands r0, sl, r0
- beq _037FCC34
- ldr r0, _037FCCC8 ; =SNDi_Work
- mla r6, r1, r4, r0
- cmp r8, #0
- moveq r8, r6
- beq _037FCC34
- ldrb r1, [r8, #34] ; 0x22
- ldrb r0, [r6, #34] ; 0x22
- cmp r0, r1
- bhi _037FCC34
- cmp r0, r1
- bne _037FCC30
- mov r0, r8
- mov r1, r6
- bl FUN_037FC63C
- cmp r0, #0
- bge _037FCC34
-_037FCC30:
- mov r8, r6
-_037FCC34:
- add r7, r7, #1
- cmp r7, #16
- blt _037FCBDC
- cmp r8, #0
- moveq r0, #0
- beq _037FCCB0
- ldrb r0, [r8, #34] ; 0x22
- cmp r9, r0
- movlt r0, #0
- blt _037FCCB0
- ldr r3, [r8, #72] ; 0x48
- cmp r3, #0
- beq _037FCC7C
- mov r0, r8
- mov r1, #0
- ldr r2, [r8, #76] ; 0x4c
- mov lr, pc
- bx r3
-_037FCC7C:
- ldrb r0, [r8, #3]
- bic r0, r0, #248 ; 0xf8
- orr r0, r0, #16
- strb r0, [r8, #3]
- ldrb r0, [r8, #3]
- bic r0, r0, #1
- strb r0, [r8, #3]
- mov r0, r8
- mov r1, fp
- ldr r2, [sp, #40] ; 0x28
- mov r3, r9
- bl FUN_037FC6E8
- mov r0, r8
-_037FCCB0:
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- bx lr
-_037FCCBC: .word _03807F48
-_037FCCC0: .word _03807F44
-_037FCCC4: .word _03807298
-_037FCCC8: .word SNDi_Work
-
- arm_func_start SND_IsExChannelActive
-SND_IsExChannelActive: ; 0x037FCCCC
- ldrb r0, [r0, #3]
- mov r0, r0, lsl #31
- mov r0, r0, lsr #31
- bx lr
-
- arm_func_start SND_ReleaseExChannel
-SND_ReleaseExChannel: ; 0x037FCCDC
- mov r1, #3
- strb r1, [r0, #2]
- bx lr
-
- arm_func_start SND_SetExChannelRelease
-SND_SetExChannelRelease: ; 0x037FCCE8
- stmdb sp!, {r4, lr}
- mov r4, r0
- mov r0, r1
- bl FUN_037FC794
- strh r0, [r4, #32]
- ldmia sp!, {r4, lr}
- bx lr
-
- arm_func_start SND_SetExChannelSustain
-SND_SetExChannelSustain: ; 0x037FCD04
- strb r1, [r0, #29]
- bx lr
-
- arm_func_start SND_SetExChannelDecay
-SND_SetExChannelDecay: ; 0x037FCD0C
- stmdb sp!, {r4, lr}
- mov r4, r0
- mov r0, r1
- bl FUN_037FC794
- strh r0, [r4, #30]
- ldmia sp!, {r4, lr}
- bx lr
-
- arm_func_start SND_SetExChannelAttack
-SND_SetExChannelAttack: ; 0x037FCD28
- cmp r1, #109 ; 0x6d
- rsblt r1, r1, #255 ; 0xff
- strltb r1, [r0, #28]
- rsbge r2, r1, #127 ; 0x7f
- ldrge r1, _037FCD48 ; =_038072A8
- ldrgeb r1, [r1, r2]
- strgeb r1, [r0, #28]
- bx lr
-_037FCD48: .word _038072A8
-
- arm_func_start SND_UpdateExChannelEnvelope
-SND_UpdateExChannelEnvelope: ; 0x037FCD4C
- cmp r1, #0
- beq _037FCDF0
- ldrb r1, [r0, #2]
- cmp r1, #3
- addls pc, pc, r1, lsl #2
- b _037FCDF0
- b _037FCD74
- b _037FCDA4
- b _037FCDF0
- b _037FCDE0
-_037FCD74:
- ldr r1, [r0, #16]
- rsb r2, r1, #0
- ldrb r1, [r0, #28]
- mul r1, r2, r1
- mov r1, r1, asr #8
- rsb r1, r1, #0
- str r1, [r0, #16]
- ldr r1, [r0, #16]
- cmp r1, #0
- moveq r1, #1
- streqb r1, [r0, #2]
- b _037FCDF0
-_037FCDA4:
- ldrb r1, [r0, #29]
- mov r2, r1, lsl #1
- ldr r1, _037FCDFC ; =SNDi_DecibelSquareTable
- ldrsh r1, [r1, r2]
- mov r3, r1, lsl #7
- ldr r2, [r0, #16]
- ldrh r1, [r0, #30]
- sub r1, r2, r1
- str r1, [r0, #16]
- ldr r1, [r0, #16]
- cmp r1, r3
- strle r3, [r0, #16]
- movle r1, #2
- strleb r1, [r0, #2]
- b _037FCDF0
-_037FCDE0:
- ldr r2, [r0, #16]
- ldrh r1, [r0, #32]
- sub r1, r2, r1
- str r1, [r0, #16]
-_037FCDF0:
- ldr r0, [r0, #16]
- mov r0, r0, asr #7
- bx lr
-_037FCDFC: .word SNDi_DecibelSquareTable
-
- arm_func_start SND_StartExChannelNoise
-SND_StartExChannelNoise: ; 0x037FCE00
- stmfd sp!, {lr}
- sub sp, sp, #4
- ldrb r2, [r0]
- cmp r2, #14
- movcc r0, #0
- bcc _037FCE3C
- cmp r2, #15
- movhi r0, #0
- bhi _037FCE3C
- mov r2, #2
- strb r2, [r0, #1]
- ldr r2, _037FCE48 ; =0x00001F46
- strh r2, [r0, #60] ; 0x3c
- bl FUN_037FC69C
- mov r0, #1
-_037FCE3C:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_037FCE48: .word 0x00001F46
-
- arm_func_start SND_StartExChannelPsg
-SND_StartExChannelPsg: ; 0x037FCE4C
- stmfd sp!, {lr}
- sub sp, sp, #4
- ldrb r3, [r0]
- cmp r3, #8
- movcc r0, #0
- bcc _037FCE90
- cmp r3, #13
- movhi r0, #0
- bhi _037FCE90
- mov r3, #1
- strb r3, [r0, #1]
- str r1, [r0, #68] ; 0x44
- ldr r1, _037FCE9C ; =0x00001F46
- strh r1, [r0, #60] ; 0x3c
- mov r1, r2
- bl FUN_037FC69C
- mov r0, #1
-_037FCE90:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_037FCE9C: .word 0x00001F46
-
- arm_func_start SND_StartExChannelPcm
-SND_StartExChannelPcm: ; 0x037FCEA0
- stmdb sp!, {r4, lr}
- mov r4, r0
- mov lr, r2
- mov r0, #0
- strb r0, [r4, #1]
- add ip, r4, #56 ; 0x38
- ldmia r1, {r0, r1, r2}
- stmia ip, {r0, r1, r2}
- str lr, [r4, #68] ; 0x44
- mov r0, r4
- mov r1, r3
- bl FUN_037FC69C
- mov r0, #1
- ldmia sp!, {r4, lr}
- bx lr
-
- arm_func_start SND_ExChannelMain
-SND_ExChannelMain: ; 0x037FCEDC
- stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- sub sp, sp, #28
- mov r6, r0
- mov r4, #0
- mov fp, r4
- mov r7, #1
- str r4, [sp, #8]
- mov r0, #127 ; 0x7f
- str r0, [sp, #20]
- str r4, [sp, #16]
- str r4, [sp, #12]
- str r4, [sp, #4]
- str r4, [sp]
-_037FCF10:
- ldr r8, [sp]
- mov sl, r8
- mov r9, r8
- mov r1, #84 ; 0x54
- ldr r0, _037FD1E4 ; =SNDi_Work
- mla r5, r4, r1, r0
- ldrb r1, [r5, #3]
- mov r0, r1, lsl #31
- movs r0, r0, lsr #31
- beq _037FD1CC
- mov r0, r1, lsl #30
- movs r0, r0, lsr #31
- beq _037FCF74
- bic r0, r1, #248 ; 0xf8
- mov r1, r1, lsl #24
- mov r1, r1, lsr #27
- orr r1, r1, #1
- and r1, r1, #255 ; 0xff
- and r1, r1, #31
- orr r0, r0, r1, lsl #3
- strb r0, [r5, #3]
- ldrb r0, [r5, #3]
- bic r0, r0, #2
- strb r0, [r5, #3]
- b _037FCFC0
-_037FCF74:
- mov r0, r4
- bl SND_IsChannelActive
- cmp r0, #0
- bne _037FCFC0
- ldr r3, [r5, #72] ; 0x48
- cmp r3, #0
- streqb fp, [r5, #34] ; 0x22
- beq _037FCFA8
- mov r0, r5
- mov r1, r7
- ldr r2, [r5, #76] ; 0x4c
- mov lr, pc
- bx r3
-_037FCFA8:
- ldr r0, [sp, #4]
- strh r0, [r5, #36] ; 0x24
- ldrb r0, [r5, #3]
- bic r0, r0, #1
- strb r0, [r5, #3]
- b _037FD1CC
-_037FCFC0:
- ldrb r0, [r5, #9]
- mov r1, r0, lsl #1
- ldr r0, _037FD1E8 ; =SNDi_DecibelSquareTable
- ldrsh r0, [r0, r1]
- add r8, r8, r0
- ldrb r1, [r5, #8]
- ldrb r0, [r5, #5]
- sub r0, r1, r0
- add sl, sl, r0, lsl #6
- mov r0, r5
- mov r1, r6
- bl SND_UpdateExChannelEnvelope
- add r8, r8, r0
- mov r0, r5
- mov r1, r6
- bl FUN_037FC5CC
- add r2, sl, r0
- ldrsh r0, [r5, #12]
- add r1, r8, r0
- ldrsh r0, [r5, #6]
- add r8, r1, r0
- ldrsh r0, [r5, #14]
- add sl, r2, r0
- mov r0, r5
- mov r1, r6
- bl FUN_037FC530
- ldrb r1, [r5, #40] ; 0x28
- cmp r1, #0
- beq _037FD05C
- cmp r1, #1
- beq _037FD048
- cmp r1, #2
- addeq r9, r9, r0
- b _037FD060
-_037FD048:
- mov r1, #32768 ; 0x8000
- rsb r1, r1, #0
- cmp r8, r1
- addgt r8, r8, r0
- b _037FD060
-_037FD05C:
- add sl, sl, r0
-_037FD060:
- ldrsb r0, [r5, #10]
- add r9, r9, r0
- ldrb r0, [r5, #4]
- cmp r0, #127 ; 0x7f
- mulne r0, r9, r0
- addne r0, r0, #64 ; 0x40
- movne r9, r0, asr #7
- ldrsb r0, [r5, #11]
- add r9, r9, r0
- ldrb r0, [r5, #2]
- cmp r0, #3
- bne _037FD0EC
- ldr r0, _037FD1EC ; =0xFFFFFD2D
- cmp r8, r0
- bgt _037FD0EC
- ldrb r0, [r5, #3]
- bic r0, r0, #248 ; 0xf8
- orr r0, r0, #16
- strb r0, [r5, #3]
- ldr r3, [r5, #72] ; 0x48
- cmp r3, #0
- ldreq r0, [sp, #8]
- streqb r0, [r5, #34] ; 0x22
- beq _037FD0D4
- mov r0, r5
- mov r1, r7
- ldr r2, [r5, #76] ; 0x4c
- mov lr, pc
- bx r3
-_037FD0D4:
- ldr r0, [sp, #12]
- strh r0, [r5, #36] ; 0x24
- ldrb r0, [r5, #3]
- bic r0, r0, #1
- strb r0, [r5, #3]
- b _037FD1CC
-_037FD0EC:
- mov r0, r8
- bl SND_CalcChannelVolume
- mov r8, r0
- ldrh r0, [r5, #60] ; 0x3c
- mov r1, sl
- bl SND_CalcTimer
- ldrb r1, [r5, #1]
- cmp r1, #1
- ldreq r1, _037FD1F0 ; =0x0000FFFC
- andeq r0, r0, r1
- moveq r0, r0, lsl #16
- moveq r0, r0, lsr #16
- adds r9, r9, #64 ; 0x40
- ldrmi r9, [sp, #16]
- bmi _037FD130
- cmp r9, #127 ; 0x7f
- ldrgt r9, [sp, #20]
-_037FD130:
- ldrh r1, [r5, #36] ; 0x24
- cmp r8, r1
- beq _037FD164
- strh r8, [r5, #36] ; 0x24
- ldrb r2, [r5, #3]
- bic r1, r2, #248 ; 0xf8
- mov r2, r2, lsl #24
- mov r2, r2, lsr #27
- orr r2, r2, #8
- and r2, r2, #255 ; 0xff
- and r2, r2, #31
- orr r1, r1, r2, lsl #3
- strb r1, [r5, #3]
-_037FD164:
- ldrh r1, [r5, #38] ; 0x26
- cmp r0, r1
- beq _037FD198
- strh r0, [r5, #38] ; 0x26
- ldrb r0, [r5, #3]
- bic r1, r0, #248 ; 0xf8
- mov r0, r0, lsl #24
- mov r0, r0, lsr #27
- orr r0, r0, #4
- and r0, r0, #255 ; 0xff
- and r0, r0, #31
- orr r0, r1, r0, lsl #3
- strb r0, [r5, #3]
-_037FD198:
- ldrb r0, [r5, #35] ; 0x23
- cmp r9, r0
- beq _037FD1CC
- strb r9, [r5, #35] ; 0x23
- ldrb r0, [r5, #3]
- bic r1, r0, #248 ; 0xf8
- mov r0, r0, lsl #24
- mov r0, r0, lsr #27
- orr r0, r0, #16
- and r0, r0, #255 ; 0xff
- and r0, r0, #31
- orr r0, r1, r0, lsl #3
- strb r0, [r5, #3]
-_037FD1CC:
- add r4, r4, #1
- cmp r4, #16
- blt _037FCF10
- add sp, sp, #28
- ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- bx lr
-_037FD1E4: .word SNDi_Work
-_037FD1E8: .word SNDi_DecibelSquareTable
-_037FD1EC: .word 0xFFFFFD2D
-_037FD1F0: .word 0x0000FFFC
-
- arm_func_start SND_UpdateExChannel
-SND_UpdateExChannel: ; 0x037FD1F4
- stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
- sub sp, sp, #24
- mov r8, #0
- mov r4, #2
- mov r5, #1
- mov r6, r8
- ldr r7, _037FD3DC ; =SNDi_Work
- mov sl, #84 ; 0x54
-_037FD214:
- mla r9, r8, sl, r7
- ldrb r0, [r9, #3]
- mov r0, r0, lsl #24
- movs r0, r0, lsr #27
- beq _037FD374
- ands r0, r0, #2
- beq _037FD23C
- mov r0, r8
- mov r1, r6
- bl SND_StopChannel
-_037FD23C:
- ldrb r0, [r9, #3]
- mov r0, r0, lsl #24
- mov r1, r0, lsr #27
- ands r0, r1, #1
- beq _037FD318
- ldrb r0, [r9, #1]
- cmp r0, #0
- beq _037FD270
- cmp r0, #1
- beq _037FD2C8
- cmp r0, #2
- beq _037FD2F4
- b _037FD374
-_037FD270:
- ldrb r0, [r9, #57] ; 0x39
- cmp r0, #0
- movne r3, r5
- moveq r3, r4
- ldrh r1, [r9, #36] ; 0x24
- ldrh r0, [r9, #62] ; 0x3e
- str r0, [sp]
- ldr r0, [r9, #64] ; 0x40
- str r0, [sp, #4]
- and r0, r1, #255 ; 0xff
- str r0, [sp, #8]
- mov r0, r1, asr #8
- str r0, [sp, #12]
- ldrh r0, [r9, #38] ; 0x26
- str r0, [sp, #16]
- ldrb r0, [r9, #35] ; 0x23
- str r0, [sp, #20]
- mov r0, r8
- ldr r1, [r9, #68] ; 0x44
- ldrb r2, [r9, #56] ; 0x38
- bl SND_SetupChannelPcm
- b _037FD374
-_037FD2C8:
- ldrh r3, [r9, #36] ; 0x24
- ldrh r0, [r9, #38] ; 0x26
- str r0, [sp]
- ldrb r0, [r9, #35] ; 0x23
- str r0, [sp, #4]
- mov r0, r8
- ldr r1, [r9, #68] ; 0x44
- and r2, r3, #255 ; 0xff
- mov r3, r3, asr #8
- bl SND_SetupChannelPsg
- b _037FD374
-_037FD2F4:
- ldrh r2, [r9, #36] ; 0x24
- ldrb r0, [r9, #35] ; 0x23
- str r0, [sp]
- mov r0, r8
- and r1, r2, #255 ; 0xff
- mov r2, r2, asr #8
- ldrh r3, [r9, #38] ; 0x26
- bl SND_SetupChannelNoise
- b _037FD374
-_037FD318:
- ands r0, r1, #4
- beq _037FD32C
- mov r0, r8
- ldrh r1, [r9, #38] ; 0x26
- bl SND_SetChannelTimer
-_037FD32C:
- ldrb r0, [r9, #3]
- mov r0, r0, lsl #24
- mov r0, r0, lsr #27
- ands r0, r0, #8
- beq _037FD354
- ldrh r2, [r9, #36] ; 0x24
- mov r0, r8
- and r1, r2, #255 ; 0xff
- mov r2, r2, asr #8
- bl SND_SetChannelVolume
-_037FD354:
- ldrb r0, [r9, #3]
- mov r0, r0, lsl #24
- mov r0, r0, lsr #27
- ands r0, r0, #16
- beq _037FD374
- mov r0, r8
- ldrb r1, [r9, #35] ; 0x23
- bl SND_SetChannelPan
-_037FD374:
- add r8, r8, #1
- cmp r8, #16
- blt _037FD214
- mov r5, #0
- ldr r3, _037FD3DC ; =SNDi_Work
- mov r1, #84 ; 0x54
-_037FD38C:
- mla r4, r5, r1, r3
- ldrb r0, [r4, #3]
- mov r0, r0, lsl #24
- movs r0, r0, lsr #27
- beq _037FD3C4
- ands r0, r0, #1
- movne r0, r5, lsl #4
- addne r0, r0, #67108864 ; 0x4000000
- ldrneb r2, [r0, #1027] ; 0x403
- orrne r2, r2, #128 ; 0x80
- strneb r2, [r0, #1027] ; 0x403
- ldrb r0, [r4, #3]
- bic r0, r0, #248 ; 0xf8
- strb r0, [r4, #3]
-_037FD3C4:
- add r5, r5, #1
- cmp r5, #16
- blt _037FD38C
- add sp, sp, #24
- ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
- bx lr
-_037FD3DC: .word SNDi_Work
-
- arm_func_start SND_ExChannelInit
-SND_ExChannelInit: ; 0x037FD3E0
- mov ip, #0
- ldr r2, _037FD434 ; =SNDi_Work
- mov r0, #84 ; 0x54
-_037FD3EC:
- mul r1, ip, r0
- add r3, r2, r1
- strb ip, [r2, r1]
- ldrb r1, [r3, #3]
- bic r1, r1, #248 ; 0xf8
- strb r1, [r3, #3]
- ldrb r1, [r3, #3]
- bic r1, r1, #1
- strb r1, [r3, #3]
- add ip, ip, #1
- cmp ip, #16
- blt _037FD3EC
- mov r1, #0
- ldr r0, _037FD438 ; =_03807F48
- str r1, [r0]
- ldr r0, _037FD43C ; =_03807F44
- str r1, [r0]
- bx lr
-_037FD434: .word SNDi_Work
-_037FD438: .word _03807F48
-_037FD43C: .word _03807F44
diff --git a/arm7/asm/SND_lfo.s b/arm7/asm/SND_lfo.s
deleted file mode 100644
index cca10305..00000000
--- a/arm7/asm/SND_lfo.s
+++ /dev/null
@@ -1,77 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- arm_func_start SND_GetLfoValue
-SND_GetLfoValue: ; 0x037FC7F4
- stmdb sp!, {r4, lr}
- mov r4, r0
- ldrb r0, [r4, #2]
- cmp r0, #0
- moveq r0, #0
- beq _037FC83C
- ldrh r1, [r4, #6]
- ldrh r0, [r4, #4]
- cmp r1, r0
- movcc r0, #0
- bcc _037FC83C
- ldrh r0, [r4, #8]
- mov r0, r0, lsr #8
- bl SND_SinIdx
- ldrb r2, [r4, #3]
- ldrb r1, [r4, #2]
- mul r0, r1, r0
- mul r0, r2, r0
-_037FC83C:
- ldmia sp!, {r4, lr}
- bx lr
-
- arm_func_start SND_UpdateLfo
-SND_UpdateLfo: ; 0x037FC844
- ldrh r2, [r0, #6]
- ldrh r1, [r0, #4]
- cmp r2, r1
- addcc r1, r2, #1
- strcch r1, [r0, #6]
- bxcc lr
- ldrh r2, [r0, #8]
- ldrb r1, [r0, #1]
- mov r3, r1, lsl #6
- add r1, r2, r1, lsl #6
- mov r2, r1, lsr #8
- b _037FC878
-_037FC874:
- sub r2, r2, #128 ; 0x80
-_037FC878:
- cmp r2, #128 ; 0x80
- bcs _037FC874
- ldrh r1, [r0, #8]
- add r1, r1, r3
- strh r1, [r0, #8]
- ldrh r1, [r0, #8]
- and r1, r1, #255 ; 0xff
- strh r1, [r0, #8]
- ldrh r1, [r0, #8]
- orr r1, r1, r2, lsl #8
- strh r1, [r0, #8]
- bx lr
-
- arm_func_start SND_StartLfo
-SND_StartLfo: ; 0x037FC8A8
- mov r1, #0
- strh r1, [r0, #8]
- strh r1, [r0, #6]
- bx lr
-
- arm_func_start SND_InitLfoParam
-SND_InitLfoParam: ; 0x037FC8B8
- mov r2, #0
- strb r2, [r0]
- strb r2, [r0, #2]
- mov r1, #1
- strb r1, [r0, #3]
- mov r1, #16
- strb r1, [r0, #1]
- strh r2, [r0, #4]
- bx lr
diff --git a/arm7/asm/SND_lockChannel.s b/arm7/asm/SND_lockChannel.s
deleted file mode 100644
index b525e0d1..00000000
--- a/arm7/asm/SND_lockChannel.s
+++ /dev/null
@@ -1,167 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .bss
-
- .global _03807F48
-_03807F48: ;0x03807F48
- .space 0x03807F4C - 0x03807F48
-
- .section .text
-
- arm_func_start SND_GetLockedChannel
-SND_GetLockedChannel: ; 0x037FC964
- ands r0, r0, #1
- ldrne r0, _037FC97C ; =_03807F44
- ldrne r0, [r0]
- ldreq r0, _037FC980 ; =_03807F48
- ldreq r0, [r0]
- bx lr
-_037FC97C: .word _03807F44
-_037FC980: .word _03807F48
-
- arm_func_start SND_UnlockChannel
-SND_UnlockChannel: ; 0x037FC984
- ands r1, r1, #1
- ldreq r1, _037FC9B8 ; =_03807F48
- ldreq r2, [r1]
- mvneq r0, r0
- andeq r0, r2, r0
- streq r0, [r1]
- bxeq lr
- ldr r1, _037FC9BC ; =_03807F44
- ldr r2, [r1]
- mvn r0, r0
- and r0, r2, r0
- str r0, [r1]
- bx lr
-_037FC9B8: .word _03807F48
-_037FC9BC: .word _03807F44
-
- arm_func_start SND_LockChannel
-SND_LockChannel: ; 0x037FC9C0
- stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- sub sp, sp, #4
- mov sl, r0
- mov r9, r1
- mov r7, sl
- mov r6, #0
- mov fp, r6
- str r6, [sp]
- mov r4, r6
- mov r5, #1
- b _037FCA6C
-_037FC9EC:
- ands r0, r7, #1
- beq _037FCA64
- mov r1, #84 ; 0x54
- ldr r0, _037FCAAC ; =SNDi_Work
- mla r8, r6, r1, r0
- ldr r0, _037FCAB0 ; =_03807F48
- ldr r1, [r0]
- mov r0, r5, lsl r6
- ands r0, r1, r0
- bne _037FCA64
- ldr r3, [r8, #72] ; 0x48
- cmp r3, #0
- beq _037FCA34
- mov r0, r8
- mov r1, fp
- ldr r2, [r8, #76] ; 0x4c
- mov lr, pc
- bx r3
-_037FCA34:
- mov r0, r6
- ldr r1, [sp]
- bl SND_StopChannel
- strb r4, [r8, #34] ; 0x22
- mov r0, r8
- bl SND_FreeExChannel
- ldrb r0, [r8, #3]
- bic r0, r0, #248 ; 0xf8
- strb r0, [r8, #3]
- ldrb r0, [r8, #3]
- bic r0, r0, #1
- strb r0, [r8, #3]
-_037FCA64:
- add r6, r6, #1
- mov r7, r7, lsr #1
-_037FCA6C:
- cmp r6, #16
- bge _037FCA7C
- cmp r7, #0
- bne _037FC9EC
-_037FCA7C:
- ands r0, r9, #1
- ldrne r0, _037FCAB4 ; =_03807F44
- ldrne r1, [r0]
- orrne r1, r1, sl
- strne r1, [r0]
- ldreq r0, _037FCAB0 ; =_03807F48
- ldreq r1, [r0]
- orreq r1, r1, sl
- streq r1, [r0]
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- bx lr
-_037FCAAC: .word SNDi_Work
-_037FCAB0: .word _03807F48
-_037FCAB4: .word _03807F44
-
- arm_func_start SND_StopUnlockedChannel
-SND_StopUnlockedChannel: ; 0x037FCAB8
- stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- sub sp, sp, #4
- mov sl, r0
- mov r8, #0
- mov r6, r8
- mov r5, r8
- mov r4, r8
- ldr fp, _037FCB78 ; =SNDi_Work
- mov r7, #1
- b _037FCB5C
-_037FCAE0:
- ands r0, sl, #1
- beq _037FCB54
- mov r0, #84 ; 0x54
- mla r9, r8, r0, fp
- ldr r0, _037FCB7C ; =_03807F48
- ldr r1, [r0]
- mov r0, r7, lsl r8
- ands r0, r1, r0
- bne _037FCB54
- ldr r3, [r9, #72] ; 0x48
- cmp r3, #0
- beq _037FCB24
- mov r0, r9
- mov r1, r6
- ldr r2, [r9, #76] ; 0x4c
- mov lr, pc
- bx r3
-_037FCB24:
- mov r0, r8
- mov r1, r5
- bl SND_StopChannel
- strb r4, [r9, #34] ; 0x22
- mov r0, r9
- bl SND_FreeExChannel
- ldrb r0, [r9, #3]
- bic r0, r0, #248 ; 0xf8
- strb r0, [r9, #3]
- ldrb r0, [r9, #3]
- bic r0, r0, #1
- strb r0, [r9, #3]
-_037FCB54:
- add r8, r8, #1
- mov sl, sl, lsr #1
-_037FCB5C:
- cmp r8, #16
- bge _037FCB6C
- cmp sl, #0
- bne _037FCAE0
-_037FCB6C:
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- bx lr
-_037FCB78: .word SNDi_Work
-_037FCB7C: .word _03807F48
diff --git a/arm7/asm/SND_main.s b/arm7/asm/SND_main.s
deleted file mode 100644
index 2353d2c2..00000000
--- a/arm7/asm/SND_main.s
+++ /dev/null
@@ -1,197 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .bss
-
- .global _03807A30
-_03807A30: ;0x03807A30
- .space 0x03807A34 - 0x03807A30
-
- .global _03807A34
-_03807A34: ;0x03807A34
- .space 0x03807A54 - 0x03807A34
-
- .global _03807A54
-_03807A54: ;0x03807A54
- .space 0x03807A74 - 0x03807A54
-
- .global _03807A74
-_03807A74: ;0x03807A74
- .space 0x03807AA0 - 0x03807A74
-
- .global _03807AA0
-_03807AA0: ;0x03807AA0
- .space 0x03807F44 - 0x03807AA0
-
- .global _03807F44
-_03807F44: ;0x03807F44
- .space 0x03807F48 - 0x03807F44
-
- .section .text
-
- arm_func_start SndThread
-SndThread: ; 0x037FC2B0
- stmdb sp!, {r4, r5, r6, lr}
- bl SND_InitIntervalTimer
- bl SND_ExChannelInit
- bl SND_SeqInit
- bl SND_AlarmInit
- bl SND_Enable
- mov r0, #0
- mov r1, r0
- mov r2, r0
- mov r3, r0
- bl SND_SetOutputSelector
- mov r0, #127 ; 0x7f
- bl SND_SetMasterVolume
- bl SND_StartIntervalTimer
- mov r4, #1
- mov r5, #0
-_037FC2F0:
- mov r6, r5
- bl SND_WaitForIntervalTimer
- cmp r0, #1
- beq _037FC308
- cmp r0, #2
- b _037FC30C
-_037FC308:
- mov r6, r4
-_037FC30C:
- bl SND_UpdateExChannel
- bl SND_CommandProc
- mov r0, r6
- bl SND_SeqMain
- mov r0, r6
- bl SND_ExChannelMain
- bl SND_UpdateSharedWork
- bl SND_CalcRandom
- b _037FC2F0
-_037FC330:
- ldr r0, _037FC344 ; =_03807A54
- mov r1, #1
- mov r2, #0
- ldr ip, _037FC348 ; =OS_SendMessage
- bx ip
-_037FC344: .word _03807A54
-_037FC348: .word OS_SendMessage
-
- arm_func_start SNDi_UnlockMutex
-SNDi_UnlockMutex: ; 0x037FC34C
- bx lr
-
- arm_func_start SNDi_LockMutex
-SNDi_LockMutex: ; 0x037FC350
- bx lr
-
- arm_func_start SND_SendWakeupMessage
-SND_SendWakeupMessage: ; 0x037FC354
- ldr r0, _037FC368 ; =_03807A54
- mov r1, #2
- mov r2, #0
- ldr ip, _037FC36C ; =OS_SendMessage
- bx ip
-_037FC368: .word _03807A54
-_037FC36C: .word OS_SendMessage
-
- arm_func_start SND_WaitForIntervalTimer
-SND_WaitForIntervalTimer: ; 0x037FC370
- stmfd sp!, {lr}
- sub sp, sp, #4
- ldr r0, _037FC398 ; =_03807A54
- add r1, sp, #0
- mov r2, #1
- bl OS_ReceiveMessage
- ldr r0, [sp]
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_037FC398: .word _03807A54
-
- arm_func_start SND_StopIntervalTimer
-SND_StopIntervalTimer: ; 0x037FC39C
- ldr r0, _037FC3A8 ; =_03807A74
- ldr ip, _037FC3AC ; =OS_CancelAlarm
- bx ip
-_037FC3A8: .word _03807A74
-_037FC3AC: .word OS_CancelAlarm
-
- arm_func_start SND_StartIntervalTimer
-SND_StartIntervalTimer: ; 0x037FC3B0
- stmfd sp!, {lr}
- sub sp, sp, #12
- bl OS_GetTick
- mov ip, r0
- ldr r0, _037FC3FC ; =_037FC330
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- ldr r3, _037FC400 ; =0x00000AA8
- str r0, [sp]
- ldr r0, _037FC404 ; =_03807A74
- mov r2, #65536 ; 0x10000
- adds ip, ip, r2
- adc r2, r1, #0
- mov r1, ip
- bl OS_SetPeriodicAlarm
- add sp, sp, #12
- ldmia sp!, {lr}
- bx lr
-_037FC3FC: .word _037FC330
-_037FC400: .word 0x00000AA8
-_037FC404: .word _03807A74
-
- arm_func_start SND_InitIntervalTimer
-SND_InitIntervalTimer: ; 0x037FC408
- stmfd sp!, {lr}
- sub sp, sp, #4
- ldr r0, _037FC434 ; =_03807A54
- ldr r1, _037FC438 ; =_03807A34
- mov r2, #8
- bl OS_InitMessageQueue
- ldr r0, _037FC43C ; =_03807A74
- bl OS_CreateAlarm
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_037FC434: .word _03807A54
-_037FC438: .word _03807A34
-_037FC43C: .word _03807A74
-
- arm_func_start SND_CreateThread
-SND_CreateThread: ; 0x037FC440
- stmfd sp!, {lr}
- sub sp, sp, #12
- mov r1, #1024 ; 0x400
- str r1, [sp]
- str r0, [sp, #4]
- ldr r0, _037FC47C ; =_03807AA0
- ldr r1, _037FC480 ; =SndThread
- mov r2, #0
- ldr r3, _037FC484 ; =_03807F44
- bl OS_CreateThread
- ldr r0, _037FC47C ; =_03807AA0
- bl OS_WakeupThreadDirect
- add sp, sp, #12
- ldmia sp!, {lr}
- bx lr
-_037FC47C: .word _03807AA0
-_037FC480: .word SndThread
-_037FC484: .word _03807F44
-
- arm_func_start SND_Init
-SND_Init: ; 0x037FC488
- stmdb sp!, {r4, lr}
- mov r4, r0
- ldr r0, _037FC4BC ; =_03807A30
- ldr r1, [r0]
- cmp r1, #0
- bne _037FC4B4
- mov r1, #1
- str r1, [r0]
- bl SND_CommandInit
- mov r0, r4
- bl SND_CreateThread
-_037FC4B4:
- ldmia sp!, {r4, lr}
- bx lr
-_037FC4BC: .word _03807A30
diff --git a/arm7/asm/SND_seq.s b/arm7/asm/SND_seq.s
deleted file mode 100644
index cbf98551..00000000
--- a/arm7/asm/SND_seq.s
+++ /dev/null
@@ -1,549 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- arm_func_start SNDi_SetTrackParam
-SNDi_SetTrackParam: ; 0x037FE9F4
- stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- sub sp, sp, #4
- mov sl, r1
- mov r9, r2
- mov r8, r3
- ldr r7, [sp, #40] ; 0x28
- ldr r2, _037FEA94 ; =_038084AC
- mov r1, #36 ; 0x24
- mla fp, r0, r1, r2
- mov r6, #0
- mov r0, r8, lsl #16
- mov r4, r0, lsr #16
- and r5, r8, #255 ; 0xff
- b _037FEA78
-_037FEA2C:
- ands r0, sl, #1
- beq _037FEA70
- mov r0, fp
- mov r1, r6
- bl FUN_037FE460
- cmp r0, #0
- beq _037FEA70
- cmp r7, #1
- beq _037FEA64
- cmp r7, #2
- beq _037FEA6C
- cmp r7, #4
- streq r8, [r0, r9]
- b _037FEA70
-_037FEA64:
- strb r5, [r0, r9]
- b _037FEA70
-_037FEA6C:
- strh r4, [r0, r9]
-_037FEA70:
- add r6, r6, #1
- mov sl, sl, lsr #1
-_037FEA78:
- cmp r6, #16
- bge _037FEA88
- cmp sl, #0
- bne _037FEA2C
-_037FEA88:
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- bx lr
-_037FEA94: .word _038084AC
-
- arm_func_start SNDi_SetPlayerParam
-SNDi_SetPlayerParam: ; 0x037FEA98
- stmfd sp!, {lr}
- sub sp, sp, #4
- ldr lr, _037FEAE0 ; =_038084AC
- mov ip, #36 ; 0x24
- mla ip, r0, ip, lr
- cmp r3, #1
- beq _037FEAC8
- cmp r3, #2
- beq _037FEAD0
- cmp r3, #4
- streq r2, [ip, r1]
- b _037FEAD4
-_037FEAC8:
- strb r2, [ip, r1]
- b _037FEAD4
-_037FEAD0:
- strh r2, [ip, r1]
-_037FEAD4:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_037FEAE0: .word _038084AC
-
- arm_func_start SND_InvalidateBank
-SND_InvalidateBank: ; 0x037FEAE4
- stmdb sp!, {r4, r5, r6, r7, r8, lr}
- mov r7, r0
- mov r6, r1
- mov r5, #0
- ldr r4, _037FEB40 ; =_038084AC
- mov r8, #36 ; 0x24
-_037FEAFC:
- mul r1, r5, r8
- add r0, r4, r1
- ldrb r1, [r4, r1]
- mov r1, r1, lsl #31
- movs r1, r1, lsr #31
- beq _037FEB2C
- ldr r1, [r0, #32]
- cmp r7, r1
- bhi _037FEB2C
- cmp r1, r6
- bhi _037FEB2C
- bl FUN_037FE3AC
-_037FEB2C:
- add r5, r5, #1
- cmp r5, #16
- blt _037FEAFC
- ldmia sp!, {r4, r5, r6, r7, r8, lr}
- bx lr
-_037FEB40: .word _038084AC
-
- arm_func_start SND_InvalidateSeq
-SND_InvalidateSeq: ; 0x037FEB44
- stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- sub sp, sp, #4
- mov sl, r0
- mov r9, r1
- mov r7, #0
- mov r5, r7
- ldr fp, _037FEBDC ; =_038084AC
- mov r4, #36 ; 0x24
-_037FEB64:
- mul r0, r7, r4
- add r8, fp, r0
- ldrb r0, [fp, r0]
- mov r0, r0, lsl #31
- movs r0, r0, lsr #31
- beq _037FEBC4
- mov r6, r5
- b _037FEBBC
-_037FEB84:
- mov r0, r8
- mov r1, r6
- bl FUN_037FE460
- cmp r0, #0
- beq _037FEBB8
- ldr r0, [r0, #40] ; 0x28
- cmp sl, r0
- bhi _037FEBB8
- cmp r0, r9
- bhi _037FEBB8
- mov r0, r8
- bl FUN_037FE3AC
- b _037FEBC4
-_037FEBB8:
- add r6, r6, #1
-_037FEBBC:
- cmp r6, #16
- blt _037FEB84
-_037FEBC4:
- add r7, r7, #1
- cmp r7, #16
- blt _037FEB64
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- bx lr
-_037FEBDC: .word _038084AC
-
- arm_func_start SND_SetTrackAllocatableChannel
-SND_SetTrackAllocatableChannel: ; 0x037FEBE0
- stmdb sp!, {r4, r5, r6, r7, lr}
- sub sp, sp, #4
- mov r6, r1
- ldr r3, _037FEC54 ; =_038084AC
- mov r1, #36 ; 0x24
- mla r5, r0, r1, r3
- mov r4, #0
- mov r0, r2, lsl #16
- mov r7, r0, lsr #16
- b _037FEC38
-_037FEC08:
- ands r0, r6, #1
- beq _037FEC30
- mov r0, r5
- mov r1, r4
- bl FUN_037FE460
- cmp r0, #0
- strneh r7, [r0, #30]
- ldrneb r1, [r0]
- orrne r1, r1, #128 ; 0x80
- strneb r1, [r0]
-_037FEC30:
- add r4, r4, #1
- mov r6, r6, lsr #1
-_037FEC38:
- cmp r4, #16
- bge _037FEC48
- cmp r6, #0
- bne _037FEC08
-_037FEC48:
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
-_037FEC54: .word _038084AC
-
- arm_func_start SND_SetTrackMute
-SND_SetTrackMute: ; 0x037FEC58
- stmdb sp!, {r4, r5, r6, r7, lr}
- sub sp, sp, #4
- mov r7, r1
- mov r6, r2
- ldr r2, _037FECC8 ; =_038084AC
- mov r1, #36 ; 0x24
- mla r5, r0, r1, r2
- mov r4, #0
- b _037FECAC
-_037FEC7C:
- ands r0, r7, #1
- beq _037FECA4
- mov r0, r5
- mov r1, r4
- bl FUN_037FE460
- cmp r0, #0
- beq _037FECA4
- mov r1, r5
- mov r2, r6
- bl FUN_037FD440
-_037FECA4:
- add r4, r4, #1
- mov r7, r7, lsr #1
-_037FECAC:
- cmp r4, #16
- bge _037FECBC
- cmp r7, #0
- bne _037FEC7C
-_037FECBC:
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
-_037FECC8: .word _038084AC
-
- arm_func_start SND_SkipSeq
-SND_SkipSeq: ; 0x037FECCC
- stmdb sp!, {r4, r5, r6, r7, r8, lr}
- mov r6, r1
- ldr r2, _037FED90 ; =_038084AC
- mov r1, #36 ; 0x24
- mla r5, r0, r1, r2
- mov r8, #0
- mov r4, #127 ; 0x7f
-_037FECE8:
- mov r0, r5
- mov r1, r8
- bl FUN_037FE460
- movs r7, r0
- beq _037FED10
- mov r1, r5
- mov r2, r4
- bl FUN_037FE588
- mov r0, r7
- bl FUN_037FE54C
-_037FED10:
- add r8, r8, #1
- cmp r8, #16
- blt _037FECE8
- bl SND_StopIntervalTimer
- mov r4, #0
- mov r7, r4
- b _037FED50
-_037FED2C:
- mov r0, r5
- mov r1, r7
- bl FUN_037FD548
- cmp r0, #0
- beq _037FED4C
- mov r0, r5
- bl FUN_037FE3AC
- b _037FED58
-_037FED4C:
- add r4, r4, #1
-_037FED50:
- cmp r4, r6
- bcc _037FED2C
-_037FED58:
- bl SND_StartIntervalTimer
- ldr r0, _037FED94 ; =SNDi_SharedWork
- ldr r0, [r0]
- cmp r0, #0
- beq _037FED88
- add r3, r0, #64 ; 0x40
- ldrb r1, [r5, #1]
- mov r0, #36 ; 0x24
- mul r2, r1, r0
- ldr r0, [r3, r2]
- add r0, r0, r4
- str r0, [r3, r2]
-_037FED88:
- ldmia sp!, {r4, r5, r6, r7, r8, lr}
- bx lr
-_037FED90: .word _038084AC
-_037FED94: .word SNDi_SharedWork
-
- arm_func_start SND_PauseSeq
-SND_PauseSeq: ; 0x037FED98
- stmdb sp!, {r4, r5, r6, r7, lr}
- sub sp, sp, #4
- ldr r5, _037FEE18 ; =_038084AC
- mov r2, #36 ; 0x24
- mul r3, r0, r2
- add r4, r5, r3
- ldrb r0, [r5, r3]
- bic r2, r0, #4
- and r0, r1, #255 ; 0xff
- and r0, r0, #1
- orr r0, r2, r0, lsl #2
- strb r0, [r5, r3]
- cmp r1, #0
- beq _037FEE0C
- mov r7, #0
- mov r5, #127 ; 0x7f
-_037FEDD8:
- mov r0, r4
- mov r1, r7
- bl FUN_037FE460
- movs r6, r0
- beq _037FEE00
- mov r1, r4
- mov r2, r5
- bl FUN_037FE588
- mov r0, r6
- bl FUN_037FE54C
-_037FEE00:
- add r7, r7, #1
- cmp r7, #16
- blt _037FEDD8
-_037FEE0C:
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
-_037FEE18: .word _038084AC
-
- arm_func_start SND_StopSeq
-SND_StopSeq: ; 0x037FEE1C
- stmdb sp!, {r4, lr}
- mov r4, r0
- ldr r2, _037FEE70 ; =_038084AC
- mov r0, #36 ; 0x24
- mul r1, r4, r0
- add r0, r2, r1
- ldrb r1, [r2, r1]
- mov r1, r1, lsl #31
- movs r1, r1, lsr #31
- beq _037FEE68
- bl FUN_037FE3AC
- ldr r0, _037FEE74 ; =SNDi_SharedWork
- ldr r2, [r0]
- cmp r2, #0
- ldrne r1, [r2, #4]
- movne r0, #1
- mvnne r0, r0, lsl r4
- andne r0, r1, r0
- strne r0, [r2, #4]
-_037FEE68:
- ldmia sp!, {r4, lr}
- bx lr
-_037FEE70: .word _038084AC
-_037FEE74: .word SNDi_SharedWork
-
- arm_func_start SND_StartSeq
-SND_StartSeq: ; 0x037FEE78
- stmdb sp!, {r4, lr}
- mov r4, r0
- bl SND_PrepareSeq
- mov r0, r4
- bl SND_StartPreparedSeq
- ldmia sp!, {r4, lr}
- bx lr
-
- arm_func_start SND_StartPreparedSeq
-SND_StartPreparedSeq: ; 0x037FEE94
- ldr r2, _037FEEB0 ; =_038084AC
- mov r1, #36 ; 0x24
- mul r1, r0, r1
- ldrb r0, [r2, r1]
- orr r0, r0, #2
- strb r0, [r2, r1]
- bx lr
-_037FEEB0: .word _038084AC
-
- arm_func_start SND_PrepareSeq
-SND_PrepareSeq: ; 0x037FEEB4
- stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
- sub sp, sp, #4
- mov r4, r0
- mov r8, r1
- mov r6, r2
- mov r5, r3
- ldr r1, _037FEFFC ; =_038084AC
- mov r0, #36 ; 0x24
- mul r0, r4, r0
- add r7, r1, r0
- ldrb r0, [r1, r0]
- mov r0, r0, lsl #31
- movs r0, r0, lsr #31
- beq _037FEEF4
- mov r0, r7
- bl FUN_037FE3AC
-_037FEEF4:
- mov r0, r7
- mov r1, r5
- bl FUN_037FE5F8
- bl FUN_037FD4C0
- movs r9, r0
- bmi _037FEFF0
- ldr r0, _037FF000 ; =_038086EC
- add r5, r0, r9, lsl #6
- mov r0, r5
- bl FUN_037FE6BC
- mov r0, r5
- mov r1, r8
- mov r2, r6
- bl FUN_037FE6A8
- strb r9, [r7, #8]
- ldr r0, [r5, #40] ; 0x28
- bl FUN_037FE9B8
- ldr r0, [r5, #40] ; 0x28
- bl FUN_037FE968
- add r2, r5, #40 ; 0x28
- ldr r1, [r5, #40] ; 0x28
- add r1, r1, #1
- str r1, [r5, #40] ; 0x28
- cmp r0, #254 ; 0xfe
- ldrne r0, [r2]
- subne r0, r0, #1
- strne r0, [r2]
- bne _037FEFB8
- mov r0, r5
- bl FUN_037FE918
- mov r0, r0, lsl #15
- mov r5, r0, lsr #16
- mov r6, #1
- ldr r8, _037FF000 ; =_038086EC
- b _037FEFB0
-_037FEF80:
- ands r0, r5, #1
- beq _037FEFA4
- bl FUN_037FD4C0
- movs r9, r0
- bmi _037FEFB8
- add r0, r8, r9, lsl #6
- bl FUN_037FE6BC
- add r0, r7, r6
- strb r9, [r0, #8]
-_037FEFA4:
- add r6, r6, #1
- mov r0, r5, lsl #15
- mov r5, r0, lsr #16
-_037FEFB0:
- cmp r5, #0
- bne _037FEF80
-_037FEFB8:
- ldrb r0, [r7]
- bic r0, r0, #1
- orr r0, r0, #1
- strb r0, [r7]
- ldrb r0, [r7]
- bic r0, r0, #2
- strb r0, [r7]
- ldr r0, _037FF004 ; =SNDi_SharedWork
- ldr r2, [r0]
- cmp r2, #0
- ldrne r1, [r2, #4]
- movne r0, #1
- orrne r0, r1, r0, lsl r4
- strne r0, [r2, #4]
-_037FEFF0:
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, r8, r9, lr}
- bx lr
-_037FEFFC: .word _038084AC
-_037FF000: .word _038086EC
-_037FF004: .word SNDi_SharedWork
-
- arm_func_start SND_SeqMain
-SND_SeqMain: ; 0x037FF008
- stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
- mov r8, r0
- mov r5, #0
- mov r6, r5
- mov sl, #1
- ldr r4, _037FF0A0 ; =_038084AC
- mov r9, #36 ; 0x24
-_037FF024:
- mul r0, r6, r9
- add r7, r4, r0
- ldrb r1, [r4, r0]
- mov r0, r1, lsl #31
- movs r0, r0, lsr #31
- beq _037FF07C
- mov r0, r1, lsl #30
- movs r0, r0, lsr #31
- beq _037FF06C
- cmp r8, #0
- beq _037FF064
- mov r0, r1, lsl #29
- movs r0, r0, lsr #31
- bne _037FF064
- mov r0, r7
- bl FUN_037FE48C
-_037FF064:
- mov r0, r7
- bl FUN_037FE1A0
-_037FF06C:
- ldrb r0, [r7]
- mov r0, r0, lsl #31
- movs r0, r0, lsr #31
- orrne r5, r5, sl, lsl r6
-_037FF07C:
- add r6, r6, #1
- cmp r6, #16
- blt _037FF024
- ldr r0, _037FF0A4 ; =SNDi_SharedWork
- ldr r0, [r0]
- cmp r0, #0
- strne r5, [r0, #4]
- ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
- bx lr
-_037FF0A0: .word _038084AC
-_037FF0A4: .word SNDi_SharedWork
-
- arm_func_start SND_SeqInit
-SND_SeqInit: ; 0x037FF0A8
- stmfd sp!, {lr}
- sub sp, sp, #4
- mov lr, #0
- ldr r3, _037FF10C ; =_038084AC
- mov r0, #36 ; 0x24
-_037FF0BC:
- mul r2, lr, r0
- add ip, r3, r2
- ldrb r1, [r3, r2]
- bic r1, r1, #1
- strb r1, [r3, r2]
- strb lr, [ip, #1]
- add lr, lr, #1
- cmp lr, #16
- blt _037FF0BC
- mov r2, #0
- ldr r1, _037FF110 ; =_038086EC
-_037FF0E8:
- ldrb r0, [r1, r2, lsl #6]
- bic r0, r0, #1
- strb r0, [r1, r2, lsl #6]
- add r2, r2, #1
- cmp r2, #32
- blt _037FF0E8
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_037FF10C: .word _038084AC
-_037FF110: .word _038086EC
diff --git a/arm7/asm/SND_unk_037FD440.s b/arm7/asm/SND_unk_037FD440.s
deleted file mode 100644
index 14e4bda9..00000000
--- a/arm7/asm/SND_unk_037FD440.s
+++ /dev/null
@@ -1,1621 +0,0 @@
-#todo identify and split
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .bss
-
- .global _03807F4C
-_03807F4C: ;0x03807F4C
- .space 0x03807F50 - 0x03807F4C
-
- .global _03807F50
-_03807F50: ;0x03807F50
- .space 0x03807F58 - 0x03807F50
-
- .global _03807F58
-_03807F58: ;0x03807F58
- .space 0x03807F68 - 0x03807F58
-
- .global SNDi_SharedWork
-SNDi_SharedWork: ;0x03807F68
- .space 0x03807F6C - 0x03807F68
-
- .section .text
-
- arm_func_start FUN_037FD440
-FUN_037FD440: ; 0x037FD440
- stmdb sp!, {r4, lr}
- mov r4, r0
- cmp r2, #3
- addls pc, pc, r2, lsl #2
- b _037FD4B8
- b _037FD464
- b _037FD474
- b _037FD484
- b _037FD49C
-_037FD464:
- ldrb r0, [r4]
- bic r0, r0, #4
- strb r0, [r4]
- b _037FD4B8
-_037FD474:
- ldrb r0, [r4]
- orr r0, r0, #4
- strb r0, [r4]
- b _037FD4B8
-_037FD484:
- ldrb r2, [r4]
- orr r2, r2, #4
- strb r2, [r4]
- mvn r2, #0
- bl FUN_037FE588
- b _037FD4B8
-_037FD49C:
- ldrb r2, [r4]
- orr r2, r2, #4
- strb r2, [r4]
- mov r2, #127 ; 0x7f
- bl FUN_037FE588
- mov r0, r4
- bl FUN_037FE54C
-_037FD4B8:
- ldmia sp!, {r4, lr}
- bx lr
-
- arm_func_start FUN_037FD4C0
-FUN_037FD4C0: ; 0x037FD4C0
- mov r0, #0
- ldr r3, _037FD500 ; =_038086EC
- b _037FD4F0
-_037FD4CC:
- add ip, r3, r0, lsl #6
- ldrb r1, [r3, r0, lsl #6]
- mov r2, r1, lsl #31
- movs r2, r2, lsr #31
- biceq r1, r1, #1
- orreq r1, r1, #1
- streqb r1, [ip]
- bxeq lr
- add r0, r0, #1
-_037FD4F0:
- cmp r0, #32
- blt _037FD4CC
- mvn r0, #0
- bx lr
-_037FD500: .word _038086EC
-
- arm_func_start FUN_037FD504
-FUN_037FD504: ; 0x037FD504
- ldr r2, _037FD544 ; =SNDi_SharedWork
- ldr r2, [r2]
- cmp r2, #0
- moveq r0, #0
- bxeq lr
- cmp r1, #16
- addge r2, r2, #608 ; 0x260
- subge r0, r1, #16
- addge r0, r2, r0, lsl #1
- bxge lr
- add r3, r2, #32
- ldrb r2, [r0, #1]
- mov r0, #36 ; 0x24
- mla r0, r2, r0, r3
- add r0, r0, r1, lsl #1
- bx lr
-_037FD544: .word SNDi_SharedWork
-
- arm_func_start FUN_037FD548
-FUN_037FD548: ; 0x037FD548
- stmdb sp!, {r4, r5, r6, r7, r8, lr}
- mov r8, r0
- mov r7, r1
- mov r6, #0
- mov r5, r6
- mov r4, #1
-_037FD560:
- mov r0, r8
- mov r1, r5
- bl FUN_037FE460
- cmp r0, #0
- beq _037FD5A8
- ldr r1, [r0, #40] ; 0x28
- cmp r1, #0
- beq _037FD5A8
- mov r1, r8
- mov r2, r5
- mov r3, r7
- bl FUN_037FD5C8
- cmp r0, #0
- moveq r6, r4
- beq _037FD5A8
- mov r0, r8
- mov r1, r5
- bl FUN_037FE3EC
-_037FD5A8:
- add r5, r5, #1
- cmp r5, #16
- blt _037FD560
- cmp r6, #0
- moveq r0, #1
- movne r0, #0
- ldmia sp!, {r4, r5, r6, r7, r8, lr}
- bx lr
-
- arm_func_start FUN_037FD5C8
-FUN_037FD5C8: ; 0x037FD5C8
- stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- sub sp, sp, #52 ; 0x34
- mov r9, r0
- mov r8, r1
- str r3, [sp, #4]
- ldr r2, [r9, #60] ; 0x3c
- b _037FD61C
-_037FD5E4:
- ldr r0, [r2, #52] ; 0x34
- cmp r0, #0
- subgt r0, r0, #1
- strgt r0, [r2, #52] ; 0x34
- ldrb r0, [r2, #3]
- mov r0, r0, lsl #29
- movs r0, r0, lsr #31
- bne _037FD618
- ldr r1, [r2, #20]
- ldr r0, [r2, #24]
- cmp r1, r0
- addlt r0, r1, #1
- strlt r0, [r2, #20]
-_037FD618:
- ldr r2, [r2, #80] ; 0x50
-_037FD61C:
- cmp r2, #0
- bne _037FD5E4
- ldrb r1, [r9]
- mov r0, r1, lsl #27
- movs r0, r0, lsr #31
- beq _037FD64C
- ldr r0, [r9, #60] ; 0x3c
- cmp r0, #0
- movne r0, #0
- bne _037FDF84
- bic r0, r1, #16
- strb r0, [r9]
-_037FD64C:
- ldr r0, [r9, #32]
- cmp r0, #0
- ble _037FD670
- sub r0, r0, #1
- str r0, [r9, #32]
- ldr r0, [r9, #32]
- cmp r0, #0
- movgt r0, #0
- bgt _037FDF84
-_037FD670:
- ldr r0, [r9, #40] ; 0x28
- bl FUN_037FE9B8
- add r0, r9, #40 ; 0x28
- str r0, [sp, #28]
- mov r0, #2
- str r0, [sp, #32]
- mov r0, #127 ; 0x7f
- str r0, [sp, #36] ; 0x24
- mov fp, #0
- mvn r0, #0
- str r0, [sp, #40] ; 0x28
- mov sl, #1
- mov r0, #3
- str r0, [sp, #20]
- mov r0, #4
- str r0, [sp, #24]
- b _037FDF64
-_037FD6B4:
- mov r4, fp
- mov r6, sl
- ldr r0, [r9, #40] ; 0x28
- bl FUN_037FE968
- mov r7, r0
- ldr r0, [r9, #40] ; 0x28
- add r0, r0, #1
- str r0, [r9, #40] ; 0x28
- cmp r7, #162 ; 0xa2
- bne _037FD700
- ldr r0, [r9, #40] ; 0x28
- bl FUN_037FE968
- mov r7, r0
- ldr r0, [r9, #40] ; 0x28
- add r0, r0, #1
- str r0, [r9, #40] ; 0x28
- ldrb r0, [r9]
- mov r0, r0, lsl #25
- mov r6, r0, lsr #31
-_037FD700:
- cmp r7, #160 ; 0xa0
- bne _037FD72C
- ldr r0, [r9, #40] ; 0x28
- bl FUN_037FE968
- mov r7, r0
- ldr r0, [r9, #40] ; 0x28
- add r0, r0, #1
- str r0, [r9, #40] ; 0x28
- ldr r0, [sp, #20]
- str r0, [sp, #8]
- mov r4, sl
-_037FD72C:
- cmp r7, #161 ; 0xa1
- bne _037FD758
- ldr r0, [r9, #40] ; 0x28
- bl FUN_037FE968
- mov r7, r0
- ldr r0, [r9, #40] ; 0x28
- add r0, r0, #1
- str r0, [r9, #40] ; 0x28
- ldr r0, [sp, #24]
- str r0, [sp, #8]
- mov r4, sl
-_037FD758:
- ands r0, r7, #128 ; 0x80
- bne _037FD82C
- ldr r0, [r9, #40] ; 0x28
- bl FUN_037FE968
- str r0, [sp, #12]
- ldr r0, [sp, #28]
- ldr r0, [r0]
- add r1, r0, #1
- ldr r0, [sp, #28]
- str r1, [r0]
- cmp r4, #0
- ldrne r2, [sp, #8]
- ldreq r2, [sp, #32]
- mov r0, r9
- mov r1, r8
- bl FUN_037FE7B0
- mov r5, r0
- ldrsb r0, [r9, #19]
- add r4, r7, r0
- cmp r6, #0
- beq _037FDF64
- cmp r4, #0
- movlt r4, fp
- blt _037FD7C0
- cmp r4, #127 ; 0x7f
- ldrgt r4, [sp, #36] ; 0x24
-_037FD7C0:
- ldrb r0, [r9]
- mov r0, r0, lsl #29
- movs r0, r0, lsr #31
- bne _037FD800
- ldr r0, [sp, #4]
- cmp r0, #0
- beq _037FD800
- cmp r5, #0
- movgt r0, r5
- ldrle r0, [sp, #40] ; 0x28
- str r0, [sp]
- mov r0, r9
- mov r1, r8
- mov r2, r4
- ldr r3, [sp, #12]
- bl FUN_037FDF94
-_037FD800:
- strb r4, [r9, #20]
- ldrb r0, [r9]
- mov r0, r0, lsl #30
- movs r0, r0, lsr #31
- beq _037FDF64
- str r5, [r9, #32]
- cmp r5, #0
- ldreqb r0, [r9]
- orreq r0, r0, #16
- streqb r0, [r9]
- b _037FDF64
-_037FD82C:
- and r0, r7, #240 ; 0xf0
- cmp r0, #192 ; 0xc0
- bgt _037FD868
- cmp r0, #192 ; 0xc0
- bge _037FD9B8
- cmp r0, #144 ; 0x90
- bgt _037FD85C
- cmp r0, #144 ; 0x90
- bge _037FD8D8
- cmp r0, #128 ; 0x80
- beq _037FD890
- b _037FDF64
-_037FD85C:
- cmp r0, #176 ; 0xb0
- beq _037FDC68
- b _037FDF64
-_037FD868:
- cmp r0, #224 ; 0xe0
- bgt _037FD884
- cmp r0, #224 ; 0xe0
- bge _037FDC14
- cmp r0, #208 ; 0xd0
- beq _037FD9B8
- b _037FDF64
-_037FD884:
- cmp r0, #240 ; 0xf0
- beq _037FDEC0
- b _037FDF64
-_037FD890:
- cmp r4, #0
- ldrne r2, [sp, #8]
- ldreq r2, [sp, #32]
- mov r0, r9
- mov r1, r8
- bl FUN_037FE7B0
- cmp r6, #0
- beq _037FDF64
- cmp r7, #128 ; 0x80
- beq _037FD8C4
- cmp r7, #129 ; 0x81
- beq _037FD8CC
- b _037FDF64
-_037FD8C4:
- str r0, [r9, #32]
- b _037FDF64
-_037FD8CC:
- cmp r0, #65536 ; 0x10000
- strlth r0, [r9, #2]
- b _037FDF64
-_037FD8D8:
- cmp r7, #147 ; 0x93
- beq _037FD8F4
- cmp r7, #148 ; 0x94
- beq _037FD958
- cmp r7, #149 ; 0x95
- beq _037FD974
- b _037FDF64
-_037FD8F4:
- ldr r0, [r9, #40] ; 0x28
- bl FUN_037FE968
- mov r4, r0
- ldr r0, [r9, #40] ; 0x28
- add r0, r0, #1
- str r0, [r9, #40] ; 0x28
- mov r0, r9
- bl FUN_037FE8B8
- mov r5, r0
- cmp r6, #0
- beq _037FDF64
- mov r0, r8
- mov r1, r4
- bl FUN_037FE460
- movs r4, r0
- beq _037FDF64
- cmp r4, r9
- beq _037FDF64
- mov r1, r8
- bl FUN_037FE440
- mov r0, r4
- ldr r1, [r9, #36] ; 0x24
- mov r2, r5
- bl FUN_037FE6A8
- b _037FDF64
-_037FD958:
- mov r0, r9
- bl FUN_037FE8B8
- cmp r6, #0
- ldrne r1, [r9, #36] ; 0x24
- addne r0, r1, r0
- strne r0, [r9, #40] ; 0x28
- b _037FDF64
-_037FD974:
- mov r0, r9
- bl FUN_037FE8B8
- cmp r6, #0
- beq _037FDF64
- ldrb r1, [r9, #59] ; 0x3b
- cmp r1, #3
- bcs _037FDF64
- ldr r2, [r9, #40] ; 0x28
- add r1, r9, r1, lsl #2
- str r2, [r1, #44] ; 0x2c
- ldrb r1, [r9, #59] ; 0x3b
- add r1, r1, #1
- strb r1, [r9, #59] ; 0x3b
- ldr r1, [r9, #36] ; 0x24
- add r0, r1, r0
- str r0, [r9, #40] ; 0x28
- b _037FDF64
-_037FD9B8:
- cmp r4, #0
- ldrne r2, [sp, #8]
- moveq r2, fp
- mov r0, r9
- mov r1, r8
- bl FUN_037FE7B0
- strb r0, [sp, #44] ; 0x2c
- cmp r6, #0
- beq _037FDF64
- sub r0, r7, #192 ; 0xc0
- cmp r0, #23
- addls pc, pc, r0, lsl #2
- b _037FDF64
- b _037FDBE4
- b _037FDA4C
- b _037FDA64
- b _037FDBCC
- b _037FDBD8
- b _037FDA70
- b _037FDA7C
- b _037FDA88
- b _037FDB48
- b _037FDB90
- b _037FDAB0
- b _037FDABC
- b _037FDAC8
- b _037FDAD4
- b _037FDBB0
- b _037FDAA4
- b _037FDAE0
- b _037FDAEC
- b _037FDAF8
- b _037FDB04
- b _037FDB10
- b _037FDA58
- b _037FDBF4
- b _037FDB7C
-_037FDA4C:
- ldrb r0, [sp, #44] ; 0x2c
- strb r0, [r9, #4]
- b _037FDF64
-_037FDA58:
- ldrb r0, [sp, #44] ; 0x2c
- strb r0, [r9, #5]
- b _037FDF64
-_037FDA64:
- ldrb r0, [sp, #44] ; 0x2c
- strb r0, [r8, #5]
- b _037FDF64
-_037FDA70:
- ldrb r0, [sp, #44] ; 0x2c
- strb r0, [r9, #7]
- b _037FDF64
-_037FDA7C:
- ldrb r0, [sp, #44] ; 0x2c
- strb r0, [r9, #18]
- b _037FDF64
-_037FDA88:
- ldrb r0, [r9]
- bic r1, r0, #2
- ldrb r0, [sp, #44] ; 0x2c
- and r0, r0, #1
- orr r0, r1, r0, lsl #1
- strb r0, [r9]
- b _037FDF64
-_037FDAA4:
- ldrb r0, [sp, #44] ; 0x2c
- strb r0, [r9, #21]
- b _037FDF64
-_037FDAB0:
- ldrb r0, [sp, #44] ; 0x2c
- strb r0, [r9, #26]
- b _037FDF64
-_037FDABC:
- ldrb r0, [sp, #44] ; 0x2c
- strb r0, [r9, #25]
- b _037FDF64
-_037FDAC8:
- ldrb r0, [sp, #44] ; 0x2c
- strb r0, [r9, #24]
- b _037FDF64
-_037FDAD4:
- ldrb r0, [sp, #44] ; 0x2c
- strb r0, [r9, #27]
- b _037FDF64
-_037FDAE0:
- ldrb r0, [sp, #44] ; 0x2c
- strb r0, [r9, #14]
- b _037FDF64
-_037FDAEC:
- ldrb r0, [sp, #44] ; 0x2c
- strb r0, [r9, #15]
- b _037FDF64
-_037FDAF8:
- ldrb r0, [sp, #44] ; 0x2c
- strb r0, [r9, #16]
- b _037FDF64
-_037FDB04:
- ldrb r0, [sp, #44] ; 0x2c
- strb r0, [r9, #17]
- b _037FDF64
-_037FDB10:
- ldrb r0, [r9, #59] ; 0x3b
- cmp r0, #3
- bcs _037FDF64
- ldr r1, [r9, #40] ; 0x28
- add r0, r9, r0, lsl #2
- str r1, [r0, #44] ; 0x2c
- ldrb r1, [sp, #44] ; 0x2c
- ldrb r0, [r9, #59] ; 0x3b
- add r0, r9, r0
- strb r1, [r0, #56] ; 0x38
- ldrb r0, [r9, #59] ; 0x3b
- add r0, r0, #1
- strb r0, [r9, #59] ; 0x3b
- b _037FDF64
-_037FDB48:
- ldrb r0, [r9]
- bic r1, r0, #8
- ldrb r0, [sp, #44] ; 0x2c
- and r0, r0, #1
- orr r0, r1, r0, lsl #3
- strb r0, [r9]
- mov r0, r9
- mov r1, r8
- ldr r2, [sp, #40] ; 0x28
- bl FUN_037FE588
- mov r0, r9
- bl FUN_037FE54C
- b _037FDF64
-_037FDB7C:
- mov r0, r9
- mov r1, r8
- ldrb r2, [sp, #44] ; 0x2c
- bl FUN_037FD440
- b _037FDF64
-_037FDB90:
- ldrb r1, [sp, #44] ; 0x2c
- ldrsb r0, [r9, #19]
- add r0, r1, r0
- strb r0, [r9, #20]
- ldrb r0, [r9]
- orr r0, r0, #32
- strb r0, [r9]
- b _037FDF64
-_037FDBB0:
- ldrb r0, [r9]
- bic r1, r0, #32
- ldrb r0, [sp, #44] ; 0x2c
- and r0, r0, #1
- orr r0, r1, r0, lsl #5
- strb r0, [r9]
- b _037FDF64
-_037FDBCC:
- ldrsb r0, [sp, #44] ; 0x2c
- strb r0, [r9, #19]
- b _037FDF64
-_037FDBD8:
- ldrsb r0, [sp, #44] ; 0x2c
- strb r0, [r9, #6]
- b _037FDF64
-_037FDBE4:
- ldrb r0, [sp, #44] ; 0x2c
- sub r0, r0, #64 ; 0x40
- strb r0, [r9, #8]
- b _037FDF64
-_037FDBF4:
- ldr r0, _037FDF90 ; =_03807F4C
- ldr r0, [r0]
- cmp r0, #0
- beq _037FDF64
- mov r0, r8
- ldrb r1, [sp, #44] ; 0x2c
- bl FUN_037FD504
- b _037FDF64
-_037FDC14:
- cmp r4, #0
- ldrne r2, [sp, #8]
- moveq r2, sl
- mov r0, r9
- mov r1, r8
- bl FUN_037FE7B0
- mov r0, r0, lsl #16
- mov r0, r0, asr #16
- cmp r6, #0
- beq _037FDF64
- cmp r7, #224 ; 0xe0
- beq _037FDC60
- cmp r7, #225 ; 0xe1
- beq _037FDC58
- cmp r7, #227 ; 0xe3
- streqh r0, [r9, #22]
- b _037FDF64
-_037FDC58:
- strh r0, [r8, #24]
- b _037FDF64
-_037FDC60:
- strh r0, [r9, #28]
- b _037FDF64
-_037FDC68:
- ldr r0, [r9, #40] ; 0x28
- bl FUN_037FE968
- str r0, [sp, #16]
- ldr r0, [r9, #40] ; 0x28
- add r0, r0, #1
- str r0, [r9, #40] ; 0x28
- cmp r4, #0
- ldrne r2, [sp, #8]
- moveq r2, sl
- mov r0, r9
- mov r1, r8
- bl FUN_037FE7B0
- mov r0, r0, lsl #16
- mov r5, r0, asr #16
- mov r0, r8
- ldr r1, [sp, #16]
- bl FUN_037FD504
- mov r4, r0
- cmp r6, #0
- beq _037FDF64
- cmp r4, #0
- beq _037FDF64
- sub r0, r7, #176 ; 0xb0
- cmp r0, #13
- addls pc, pc, r0, lsl #2
- b _037FDF64
- b _037FDD08
- b _037FDD10
- b _037FDD20
- b _037FDD30
- b _037FDD40
- b _037FDD5C
- b _037FDD80
- b _037FDF64
- b _037FDDB8
- b _037FDDE4
- b _037FDE10
- b _037FDE3C
- b _037FDE68
- b _037FDE94
-_037FDD08:
- strh r5, [r4]
- b _037FDF64
-_037FDD10:
- ldrsh r0, [r4]
- add r0, r0, r5
- strh r0, [r4]
- b _037FDF64
-_037FDD20:
- ldrsh r0, [r4]
- sub r0, r0, r5
- strh r0, [r4]
- b _037FDF64
-_037FDD30:
- ldrsh r0, [r4]
- mul r1, r0, r5
- strh r1, [r4]
- b _037FDF64
-_037FDD40:
- cmp r5, #0
- beq _037FDF64
- ldrsh r0, [r4]
- mov r1, r5
- bl _s32_div_f
- strh r0, [r4]
- b _037FDF64
-_037FDD5C:
- cmp r5, #0
- ldrgesh r0, [r4]
- movge r0, r0, lsl r5
- strgeh r0, [r4]
- ldrltsh r1, [r4]
- rsblt r0, r5, #0
- movlt r0, r1, asr r0
- strlth r0, [r4]
- b _037FDF64
-_037FDD80:
- mov r6, fp
- cmp r5, #0
- movlt r6, sl
- rsblt r0, r5, #0
- movlt r0, r0, lsl #16
- movlt r5, r0, asr #16
- bl SND_CalcRandom
- add r1, r5, #1
- mul r1, r0, r1
- mov r0, r1, asr #16
- cmp r6, #0
- rsbne r0, r0, #0
- strh r0, [r4]
- b _037FDF64
-_037FDDB8:
- ldrsh r0, [r4]
- cmp r0, r5
- moveq r2, sl
- movne r2, fp
- ldrb r0, [r9]
- bic r1, r0, #64 ; 0x40
- and r0, r2, #255 ; 0xff
- and r0, r0, #1
- orr r0, r1, r0, lsl #6
- strb r0, [r9]
- b _037FDF64
-_037FDDE4:
- ldrsh r0, [r4]
- cmp r0, r5
- movge r2, sl
- movlt r2, fp
- ldrb r0, [r9]
- bic r1, r0, #64 ; 0x40
- and r0, r2, #255 ; 0xff
- and r0, r0, #1
- orr r0, r1, r0, lsl #6
- strb r0, [r9]
- b _037FDF64
-_037FDE10:
- ldrsh r0, [r4]
- cmp r0, r5
- movgt r2, sl
- movle r2, fp
- ldrb r0, [r9]
- bic r1, r0, #64 ; 0x40
- and r0, r2, #255 ; 0xff
- and r0, r0, #1
- orr r0, r1, r0, lsl #6
- strb r0, [r9]
- b _037FDF64
-_037FDE3C:
- ldrsh r0, [r4]
- cmp r0, r5
- movle r2, sl
- movgt r2, fp
- ldrb r0, [r9]
- bic r1, r0, #64 ; 0x40
- and r0, r2, #255 ; 0xff
- and r0, r0, #1
- orr r0, r1, r0, lsl #6
- strb r0, [r9]
- b _037FDF64
-_037FDE68:
- ldrsh r0, [r4]
- cmp r0, r5
- movlt r2, sl
- movge r2, fp
- ldrb r0, [r9]
- bic r1, r0, #64 ; 0x40
- and r0, r2, #255 ; 0xff
- and r0, r0, #1
- orr r0, r1, r0, lsl #6
- strb r0, [r9]
- b _037FDF64
-_037FDE94:
- ldrsh r0, [r4]
- cmp r0, r5
- movne r2, sl
- moveq r2, fp
- ldrb r0, [r9]
- bic r1, r0, #64 ; 0x40
- and r0, r2, #255 ; 0xff
- and r0, r0, #1
- orr r0, r1, r0, lsl #6
- strb r0, [r9]
- b _037FDF64
-_037FDEC0:
- cmp r6, #0
- beq _037FDF64
- sub r0, r7, #252 ; 0xfc
- cmp r0, #3
- addls pc, pc, r0, lsl #2
- b _037FDF64
- b _037FDF10
- b _037FDEE8
- b _037FDF64
- b _037FDF5C
-_037FDEE8:
- ldrb r0, [r9, #59] ; 0x3b
- cmp r0, #0
- beq _037FDF64
- sub r0, r0, #1
- strb r0, [r9, #59] ; 0x3b
- ldrb r0, [r9, #59] ; 0x3b
- add r0, r9, r0, lsl #2
- ldr r0, [r0, #44] ; 0x2c
- str r0, [r9, #40] ; 0x28
- b _037FDF64
-_037FDF10:
- ldrb r0, [r9, #59] ; 0x3b
- cmp r0, #0
- beq _037FDF64
- sub r1, r0, #1
- add r2, r9, r1
- ldrb r0, [r2, #56] ; 0x38
- cmp r0, #0
- beq _037FDF40
- sub r0, r0, #1
- ands r0, r0, #255 ; 0xff
- streqb r1, [r9, #59] ; 0x3b
- beq _037FDF64
-_037FDF40:
- strb r0, [r2, #56] ; 0x38
- ldrb r0, [r9, #59] ; 0x3b
- sub r0, r0, #1
- add r0, r9, r0, lsl #2
- ldr r0, [r0, #44] ; 0x2c
- str r0, [r9, #40] ; 0x28
- b _037FDF64
-_037FDF5C:
- mvn r0, #0
- b _037FDF84
-_037FDF64:
- ldr r0, [r9, #32]
- cmp r0, #0
- bne _037FDF80
- ldrb r0, [r9]
- mov r0, r0, lsl #27
- movs r0, r0, lsr #31
- beq _037FD6B4
-_037FDF80:
- mov r0, #0
-_037FDF84:
- add sp, sp, #52 ; 0x34
- ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- bx lr
-_037FDF90: .word _03807F4C
-
- arm_func_start FUN_037FDF94
-FUN_037FDF94: ; 0x037FDF94
- stmdb sp!, {r4, r5, r6, r7, r8, lr}
- sub sp, sp, #24
- mov r8, r0
- mov r7, r1
- mov r6, r2
- mov r5, r3
- mov r4, #0
- ldrb r0, [r8]
- mov r0, r0, lsl #28
- movs r0, r0, lsr #31
- beq _037FDFD0
- ldr r4, [r8, #60] ; 0x3c
- cmp r4, #0
- strneb r6, [r4, #8]
- strneb r5, [r4, #9]
-_037FDFD0:
- cmp r4, #0
- bne _037FE0C4
- ldr r0, [r7, #32]
- ldrh r1, [r8, #2]
- mov r2, r6
- add r3, sp, #8
- bl SND_ReadInstData
- cmp r0, #0
- beq _037FE18C
- ldrb r0, [sp, #8]
- cmp r0, #4
- addls pc, pc, r0, lsl #2
- b _037FE030
- b _037FE030
- b _037FE018
- b _037FE020
- b _037FE028
- b _037FE018
-_037FE018:
- ldr r1, _037FE198 ; =0x0000FFFF
- b _037FE034
-_037FE020:
- mov r1, #16128 ; 0x3f00
- b _037FE034
-_037FE028:
- mov r1, #49152 ; 0xc000
- b _037FE034
-_037FE030:
- b _037FE18C
-_037FE034:
- ldrh r0, [r8, #30]
- and r0, r1, r0
- str r8, [sp]
- ldrb r2, [r7, #4]
- ldrb r1, [r8, #18]
- add r1, r2, r1
- ldrb r2, [r8]
- mov r2, r2, lsl #24
- mov r2, r2, lsr #31
- ldr r3, _037FE19C ; =FUN_037FE344
- bl SND_AllocExChannel
- movs r4, r0
- beq _037FE18C
- ldrb r0, [r8]
- mov r0, r0, lsl #28
- movs r0, r0, lsr #31
- mvnne r3, #0
- ldreq r3, [sp, #48] ; 0x30
- ldr r0, [r7, #32]
- str r0, [sp]
- add r0, sp, #8
- str r0, [sp, #4]
- mov r0, r4
- mov r1, r6
- mov r2, r5
- bl SND_NoteOn
- cmp r0, #0
- bne _037FE0B8
- mov r0, #0
- strb r0, [r4, #34] ; 0x22
- mov r0, r4
- bl SND_FreeExChannel
- b _037FE18C
-_037FE0B8:
- ldr r0, [r8, #60] ; 0x3c
- str r0, [r4, #80] ; 0x50
- str r4, [r8, #60] ; 0x3c
-_037FE0C4:
- ldrb r1, [r8, #14]
- cmp r1, #255 ; 0xff
- beq _037FE0D8
- mov r0, r4
- bl SND_SetExChannelAttack
-_037FE0D8:
- ldrb r1, [r8, #15]
- cmp r1, #255 ; 0xff
- beq _037FE0EC
- mov r0, r4
- bl SND_SetExChannelDecay
-_037FE0EC:
- ldrb r1, [r8, #16]
- cmp r1, #255 ; 0xff
- beq _037FE100
- mov r0, r4
- bl SND_SetExChannelSustain
-_037FE100:
- ldrb r1, [r8, #17]
- cmp r1, #255 ; 0xff
- beq _037FE114
- mov r0, r4
- bl SND_SetExChannelRelease
-_037FE114:
- ldrsh r0, [r8, #22]
- strh r0, [r4, #50] ; 0x32
- ldrb r0, [r8]
- mov r0, r0, lsl #26
- movs r0, r0, lsr #31
- beq _037FE144
- ldrsh r1, [r4, #50] ; 0x32
- ldrb r0, [r8, #20]
- sub r0, r0, r6
- mov r0, r0, lsl #22
- add r0, r1, r0, asr #16
- strh r0, [r4, #50] ; 0x32
-_037FE144:
- ldrb r0, [r8, #21]
- cmp r0, #0
- bne _037FE168
- ldr r0, [sp, #48] ; 0x30
- str r0, [r4, #24]
- ldrb r0, [r4, #3]
- bic r0, r0, #4
- strb r0, [r4, #3]
- b _037FE184
-_037FE168:
- mul r1, r0, r0
- ldrsh r0, [r4, #50] ; 0x32
- cmp r0, #0
- rsblt r0, r0, #0
- mul r0, r1, r0
- mov r0, r0, asr #11
- str r0, [r4, #24]
-_037FE184:
- mov r0, #0
- str r0, [r4, #20]
-_037FE18C:
- add sp, sp, #24
- ldmia sp!, {r4, r5, r6, r7, r8, lr}
- bx lr
-_037FE198: .word 0x0000FFFF
-_037FE19C: .word FUN_037FE344
-
- arm_func_start FUN_037FE1A0
-FUN_037FE1A0: ; 0x037FE1A0
- stmdb sp!, {r4, r5, r6, lr}
- mov r6, r0
- mov r5, #0
- mov r4, #1
-_037FE1B0:
- mov r0, r6
- mov r1, r5
- bl FUN_037FE460
- cmp r0, #0
- beq _037FE1D0
- mov r1, r6
- mov r2, r4
- bl FUN_037FE1E4
-_037FE1D0:
- add r5, r5, #1
- cmp r5, #16
- blt _037FE1B0
- ldmia sp!, {r4, r5, r6, lr}
- bx lr
-
- arm_func_start FUN_037FE1E4
-FUN_037FE1E4: ; 0x037FE1E4
- stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- sub sp, sp, #4
- mov sl, r0
- mov fp, r2
- ldrb r0, [r1, #5]
- mov r0, r0, lsl #1
- ldr r4, _037FE340 ; =SNDi_DecibelSquareTable
- ldrsh r3, [r4, r0]
- ldrb r0, [sl, #4]
- mov r0, r0, lsl #1
- ldrsh r2, [r4, r0]
- ldrb r0, [sl, #5]
- mov r0, r0, lsl #1
- ldrsh r0, [r4, r0]
- add r0, r2, r0
- add r3, r3, r0
- ldrsh r2, [sl, #10]
- ldrsh r0, [r1, #6]
- add r2, r2, r0
- ldrsb r4, [sl, #6]
- ldrb r0, [sl, #7]
- mov r0, r0, lsl #6
- mul r1, r4, r0
- ldrsh r0, [sl, #12]
- add r0, r0, r1, asr #7
- ldrsb r1, [sl, #8]
- ldrb r4, [sl, #1]
- cmp r4, #127 ; 0x7f
- mulne r4, r1, r4
- addne r1, r4, #64 ; 0x40
- movne r1, r1, asr #7
- ldrsb r4, [sl, #9]
- add r1, r1, r4
- mov r4, #32768 ; 0x8000
- rsb r4, r4, #0
- cmp r3, r4
- movlt r3, r4
- mov r4, #32768 ; 0x8000
- rsb r4, r4, #0
- cmp r2, r4
- movlt r2, r4
- mvn r4, #127 ; 0x7f
- cmp r1, r4
- movlt r1, r4
- blt _037FE2A0
- cmp r1, #127 ; 0x7f
- movgt r1, #127 ; 0x7f
-_037FE2A0:
- ldr r9, [sl, #60] ; 0x3c
- mov r4, #1
- mov r3, r3, lsl #16
- mov r7, r3, asr #16
- mov r0, r0, lsl #16
- mov r6, r0, asr #16
- mov r0, r1, lsl #24
- mov r5, r0, asr #24
- mov r0, r2, lsl #16
- mov r8, r0, asr #16
- b _037FE32C
-_037FE2CC:
- strh r8, [r9, #6]
- ldrb r0, [r9, #2]
- cmp r0, #3
- beq _037FE328
- strh r7, [r9, #12]
- strh r6, [r9, #14]
- strb r5, [r9, #11]
- ldrb r0, [sl, #1]
- strb r0, [r9, #4]
- ldrh r0, [sl, #24]
- strh r0, [r9, #40] ; 0x28
- ldrh r0, [sl, #26]
- strh r0, [r9, #42] ; 0x2a
- ldrh r0, [sl, #28]
- strh r0, [r9, #44] ; 0x2c
- ldr r0, [r9, #52] ; 0x34
- cmp r0, #0
- bne _037FE328
- cmp fp, #0
- beq _037FE328
- strb r4, [r9, #34] ; 0x22
- mov r0, r9
- bl SND_ReleaseExChannel
-_037FE328:
- ldr r9, [r9, #80] ; 0x50
-_037FE32C:
- cmp r9, #0
- bne _037FE2CC
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- bx lr
-_037FE340: .word SNDi_DecibelSquareTable
-
- arm_func_start FUN_037FE344
-FUN_037FE344: ; 0x037FE344
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- mov r5, r0
- mov r4, r2
- cmp r1, #1
- bne _037FE368
- mov r1, #0
- strb r1, [r5, #34] ; 0x22
- bl SND_FreeExChannel
-_037FE368:
- ldr r1, [r4, #60] ; 0x3c
- cmp r1, r5
- ldreq r0, [r5, #80] ; 0x50
- streq r0, [r4, #60] ; 0x3c
- beq _037FE3A0
- b _037FE394
-_037FE380:
- cmp r0, r5
- ldreq r0, [r5, #80] ; 0x50
- streq r0, [r1, #80] ; 0x50
- beq _037FE3A0
- mov r1, r0
-_037FE394:
- ldr r0, [r1, #80] ; 0x50
- cmp r0, #0
- bne _037FE380
-_037FE3A0:
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-
- arm_func_start FUN_037FE3AC
-FUN_037FE3AC: ; 0x037FE3AC
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- mov r5, r0
- mov r4, #0
-_037FE3BC:
- mov r0, r5
- mov r1, r4
- bl FUN_037FE3EC
- add r4, r4, #1
- cmp r4, #16
- blt _037FE3BC
- ldrb r0, [r5]
- bic r0, r0, #1
- strb r0, [r5]
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-
- arm_func_start FUN_037FE3EC
-FUN_037FE3EC: ; 0x037FE3EC
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- mov r5, r0
- mov r4, r1
- bl FUN_037FE460
- cmp r0, #0
- beq _037FE430
- mov r1, r5
- bl FUN_037FE440
- add r3, r5, #8
- ldr r2, _037FE43C ; =_038086EC
- ldrb r1, [r3, r4]
- ldrb r0, [r2, r1, lsl #6]
- bic r0, r0, #1
- strb r0, [r2, r1, lsl #6]
- mov r0, #255 ; 0xff
- strb r0, [r3, r4]
-_037FE430:
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-_037FE43C: .word _038086EC
-
- arm_func_start FUN_037FE440
-FUN_037FE440: ; 0x037FE440
- stmdb sp!, {r4, lr}
- mov r4, r0
- mvn r2, #0
- bl FUN_037FE588
- mov r0, r4
- bl FUN_037FE54C
- ldmia sp!, {r4, lr}
- bx lr
-
- arm_func_start FUN_037FE460
-FUN_037FE460: ; 0x037FE460
- cmp r1, #15
- movgt r0, #0
- bxgt lr
- add r0, r0, r1
- ldrb r1, [r0, #8]
- cmp r1, #255 ; 0xff
- moveq r0, #0
- ldrne r0, _037FE488 ; =_038086EC
- addne r0, r0, r1, lsl #6
- bx lr
-_037FE488: .word _038086EC
-
- arm_func_start FUN_037FE48C
-FUN_037FE48C: ; 0x037FE48C
- stmdb sp!, {r4, r5, r6, r7, lr}
- sub sp, sp, #4
- mov r6, r0
- mov r5, #0
- add r1, r6, #28
- b _037FE4B4
-_037FE4A4:
- ldrh r0, [r1]
- sub r0, r0, #240 ; 0xf0
- strh r0, [r1]
- add r5, r5, #1
-_037FE4B4:
- ldrh r0, [r6, #28]
- cmp r0, #240 ; 0xf0
- bcs _037FE4A4
- mov r4, #0
- mov r7, #1
- b _037FE4F0
-_037FE4CC:
- mov r0, r6
- mov r1, r7
- bl FUN_037FD548
- cmp r0, #0
- beq _037FE4EC
- mov r0, r6
- bl FUN_037FE3AC
- b _037FE4F8
-_037FE4EC:
- add r4, r4, #1
-_037FE4F0:
- cmp r4, r5
- blt _037FE4CC
-_037FE4F8:
- ldr r0, _037FE548 ; =SNDi_SharedWork
- ldr r0, [r0]
- cmp r0, #0
- beq _037FE524
- add r3, r0, #64 ; 0x40
- ldrb r1, [r6, #1]
- mov r0, #36 ; 0x24
- mul r2, r1, r0
- ldr r0, [r3, r2]
- add r0, r0, r4
- str r0, [r3, r2]
-_037FE524:
- ldrh r2, [r6, #24]
- ldrh r0, [r6, #26]
- mul r1, r2, r0
- ldrh r0, [r6, #28]
- add r0, r0, r1, asr #8
- strh r0, [r6, #28]
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
-_037FE548: .word SNDi_SharedWork
-
- arm_func_start FUN_037FE54C
-FUN_037FE54C: ; 0x037FE54C
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- mov r5, r0
- ldr r4, [r5, #60] ; 0x3c
- b _037FE56C
-_037FE560:
- mov r0, r4
- bl SND_FreeExChannel
- ldr r4, [r4, #80] ; 0x50
-_037FE56C:
- cmp r4, #0
- bne _037FE560
- mov r0, #0
- str r0, [r5, #60] ; 0x3c
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-
- arm_func_start FUN_037FE588
-FUN_037FE588: ; 0x037FE588
- stmdb sp!, {r4, r5, r6, r7, lr}
- sub sp, sp, #4
- mov r4, r0
- mov r7, r2
- mov r2, #0
- bl FUN_037FE1E4
- ldr r6, [r4, #60] ; 0x3c
- and r5, r7, #255 ; 0xff
- mov r4, #1
- b _037FE5E4
-_037FE5B0:
- mov r0, r6
- bl SND_IsExChannelActive
- cmp r0, #0
- beq _037FE5E0
- cmp r7, #0
- blt _037FE5D4
- mov r0, r6
- mov r1, r5
- bl SND_SetExChannelRelease
-_037FE5D4:
- strb r4, [r6, #34] ; 0x22
- mov r0, r6
- bl SND_ReleaseExChannel
-_037FE5E0:
- ldr r6, [r6, #80] ; 0x50
-_037FE5E4:
- cmp r6, #0
- bne _037FE5B0
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
-
- arm_func_start FUN_037FE5F8
-FUN_037FE5F8: ; 0x037FE5F8
- stmdb sp!, {r4, lr}
- ldrb r2, [r0]
- bic r2, r2, #4
- strb r2, [r0]
- str r1, [r0, #32]
- mov r1, #120 ; 0x78
- strh r1, [r0, #24]
- mov r1, #256 ; 0x100
- strh r1, [r0, #26]
- mov r1, #240 ; 0xf0
- strh r1, [r0, #28]
- mov r1, #127 ; 0x7f
- strb r1, [r0, #5]
- mov r3, #0
- strh r3, [r0, #6]
- mov r1, #64 ; 0x40
- strb r1, [r0, #4]
- mov r2, #255 ; 0xff
-_037FE640:
- add r1, r0, r3
- strb r2, [r1, #8]
- add r3, r3, #1
- cmp r3, #16
- blt _037FE640
- ldr r2, _037FE6A4 ; =SNDi_SharedWork
- ldr r3, [r2]
- cmp r3, #0
- beq _037FE69C
- mov r4, #0
- ldrb ip, [r0, #1]
- mov r1, #36 ; 0x24
- mla r3, ip, r1, r3
- str r4, [r3, #64] ; 0x40
- mvn lr, #0
-_037FE67C:
- ldr r3, [r2]
- ldrb ip, [r0, #1]
- mla r3, ip, r1, r3
- add r3, r3, r4, lsl #1
- strh lr, [r3, #32]
- add r4, r4, #1
- cmp r4, #16
- blt _037FE67C
-_037FE69C:
- ldmia sp!, {r4, lr}
- bx lr
-_037FE6A4: .word SNDi_SharedWork
-
- arm_func_start FUN_037FE6A8
-FUN_037FE6A8: ; 0x037FE6A8
- str r1, [r0, #36] ; 0x24
- ldr r1, [r0, #36] ; 0x24
- add r1, r1, r2
- str r1, [r0, #40] ; 0x28
- bx lr
-
- arm_func_start FUN_037FE6BC
-FUN_037FE6BC: ; 0x037FE6BC
- stmdb sp!, {r4, lr}
- mov r4, r0
- mov r0, #0
- str r0, [r4, #36] ; 0x24
- str r0, [r4, #40] ; 0x28
- ldrb r1, [r4]
- orr r1, r1, #2
- strb r1, [r4]
- ldrb r1, [r4]
- bic r1, r1, #4
- strb r1, [r4]
- ldrb r1, [r4]
- bic r1, r1, #8
- strb r1, [r4]
- ldrb r1, [r4]
- bic r1, r1, #16
- strb r1, [r4]
- ldrb r1, [r4]
- bic r1, r1, #32
- strb r1, [r4]
- ldrb r1, [r4]
- orr r1, r1, #64 ; 0x40
- strb r1, [r4]
- ldrb r1, [r4]
- bic r1, r1, #128 ; 0x80
- strb r1, [r4]
- strb r0, [r4, #59] ; 0x3b
- strh r0, [r4, #2]
- mov r1, #64 ; 0x40
- strb r1, [r4, #18]
- mov r2, #127 ; 0x7f
- strb r2, [r4, #4]
- strb r2, [r4, #5]
- strh r0, [r4, #10]
- strb r0, [r4, #8]
- strb r0, [r4, #9]
- strb r0, [r4, #6]
- strh r0, [r4, #12]
- mov r1, #255 ; 0xff
- strb r1, [r4, #14]
- strb r1, [r4, #15]
- strb r1, [r4, #16]
- strb r1, [r4, #17]
- strb r2, [r4, #1]
- mov r1, #2
- strb r1, [r4, #7]
- mov r1, #60 ; 0x3c
- strb r1, [r4, #20]
- strb r0, [r4, #21]
- strh r0, [r4, #22]
- strb r0, [r4, #19]
- ldr r0, _037FE7AC ; =0x0000FFFF
- strh r0, [r4, #30]
- add r0, r4, #24
- bl SND_InitLfoParam
- mov r0, #0
- str r0, [r4, #32]
- str r0, [r4, #60] ; 0x3c
- ldmia sp!, {r4, lr}
- bx lr
-_037FE7AC: .word 0x0000FFFF
-
- arm_func_start FUN_037FE7B0
-FUN_037FE7B0: ; 0x037FE7B0
- stmdb sp!, {r4, r5, r6, lr}
- mov r4, r0
- mov r6, r1
- cmp r2, #4
- addls pc, pc, r2, lsl #2
- b _037FE86C
- b _037FE7DC
- b _037FE7F8
- b _037FE804
- b _037FE83C
- b _037FE810
-_037FE7DC:
- ldr r0, [r4, #40] ; 0x28
- bl FUN_037FE968
- mov r5, r0
- ldr r0, [r4, #40] ; 0x28
- add r0, r0, #1
- str r0, [r4, #40] ; 0x28
- b _037FE86C
-_037FE7F8:
- bl FUN_037FE918
- mov r5, r0
- b _037FE86C
-_037FE804:
- bl FUN_037FE878
- mov r5, r0
- b _037FE86C
-_037FE810:
- ldr r0, [r4, #40] ; 0x28
- bl FUN_037FE968
- mov r1, r0
- ldr r0, [r4, #40] ; 0x28
- add r0, r0, #1
- str r0, [r4, #40] ; 0x28
- mov r0, r6
- bl FUN_037FD504
- cmp r0, #0
- ldrnesh r5, [r0]
- b _037FE86C
-_037FE83C:
- bl FUN_037FE918
- mov r5, r0, lsl #16
- mov r0, r4
- bl FUN_037FE918
- mov r0, r0, lsl #16
- mov r4, r0, asr #16
- bl SND_CalcRandom
- sub r1, r4, r5, asr #16
- add r1, r1, #1
- mul r1, r0, r1
- mov r0, r1, asr #16
- add r5, r0, r5, asr #16
-_037FE86C:
- mov r0, r5
- ldmia sp!, {r4, r5, r6, lr}
- bx lr
-
- arm_func_start FUN_037FE878
-FUN_037FE878: ; 0x037FE878
- stmdb sp!, {r4, r5, r6, lr}
- mov r6, r0
- mov r5, #0
- add r4, r6, #40 ; 0x28
-_037FE888:
- ldr r0, [r6, #40] ; 0x28
- bl FUN_037FE968
- ldr r1, [r4]
- add r1, r1, #1
- str r1, [r4]
- and r1, r0, #127 ; 0x7f
- orr r5, r1, r5, lsl #7
- ands r0, r0, #128 ; 0x80
- bne _037FE888
- mov r0, r5
- ldmia sp!, {r4, r5, r6, lr}
- bx lr
-
- arm_func_start FUN_037FE8B8
-FUN_037FE8B8: ; 0x037FE8B8
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- mov r4, r0
- ldr r0, [r4, #40] ; 0x28
- bl FUN_037FE968
- mov r5, r0
- ldr r0, [r4, #40] ; 0x28
- add r0, r0, #1
- str r0, [r4, #40] ; 0x28
- ldr r0, [r4, #40] ; 0x28
- bl FUN_037FE968
- ldr r1, [r4, #40] ; 0x28
- add r1, r1, #1
- str r1, [r4, #40] ; 0x28
- orr r5, r5, r0, lsl #8
- ldr r0, [r4, #40] ; 0x28
- bl FUN_037FE968
- ldr r1, [r4, #40] ; 0x28
- add r1, r1, #1
- str r1, [r4, #40] ; 0x28
- orr r0, r5, r0, lsl #16
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-
- arm_func_start FUN_037FE918
-FUN_037FE918: ; 0x037FE918
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- mov r5, r0
- ldr r0, [r5, #40] ; 0x28
- bl FUN_037FE968
- mov r4, r0
- ldr r0, [r5, #40] ; 0x28
- add r0, r0, #1
- str r0, [r5, #40] ; 0x28
- ldr r0, [r5, #40] ; 0x28
- bl FUN_037FE968
- ldr r1, [r5, #40] ; 0x28
- add r1, r1, #1
- str r1, [r5, #40] ; 0x28
- orr r0, r4, r0, lsl #8
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-
- arm_func_start FUN_037FE968
-FUN_037FE968: ; 0x037FE968
- stmdb sp!, {r4, lr}
- mov r4, r0
- ldr r0, _037FE9B0 ; =_03807F50
- ldr r1, [r0]
- cmp r4, r1
- bcc _037FE98C
- ldr r0, [r0, #4]
- cmp r4, r0
- bcc _037FE994
-_037FE98C:
- mov r0, r4
- bl FUN_037FE9B8
-_037FE994:
- ldr r0, _037FE9B0 ; =_03807F50
- ldr r0, [r0]
- sub r1, r4, r0
- ldr r0, _037FE9B4 ; =_03807F58
- ldrb r0, [r0, r1]
- ldmia sp!, {r4, lr}
- bx lr
-_037FE9B0: .word _03807F50
-_037FE9B4: .word _03807F58
-
- arm_func_start FUN_037FE9B8
-FUN_037FE9B8: ; 0x037FE9B8
- bic r2, r0, #3
- ldr r0, _037FE9F0 ; =_03807F50
- str r2, [r0]
- add r1, r2, #16
- str r1, [r0, #4]
- ldr r1, [r2]
- str r1, [r0, #8]
- ldr r1, [r2, #4]
- str r1, [r0, #12]
- ldr r1, [r2, #8]
- str r1, [r0, #16]
- ldr r1, [r2, #12]
- str r1, [r0, #20]
- bx lr
-_037FE9F0: .word _03807F50
diff --git a/arm7/asm/SND_util.s b/arm7/asm/SND_util.s
deleted file mode 100644
index 4d136781..00000000
--- a/arm7/asm/SND_util.s
+++ /dev/null
@@ -1,190 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .data
-
- .global _03807660
-_03807660:
- .word 0x12345678
-
- .section .text
-
- arm_func_start SND_CalcRandom
-SND_CalcRandom: ; 0x037FC058
- ldr r2, _037FC080 ; =_03807660
- ldr r3, [r2]
- ldr r0, _037FC084 ; =0x0019660D
- ldr r1, _037FC088 ; =0x3C6EF35F
- mla r0, r3, r0, r1
- str r0, [r2]
- mov r0, r0, lsr #16
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- bx lr
-_037FC080: .word _03807660
-_037FC084: .word 0x0019660D
-_037FC088: .word 0x3C6EF35F
-
- arm_func_start SND_SinIdx
-SND_SinIdx: ; 0x037FC08C
- cmp r0, #32
- ldrlt r1, _037FC0F4 ; =_03807170
- ldrltsb r0, [r1, r0]
- bxlt lr
- cmp r0, #64 ; 0x40
- rsblt r1, r0, #64 ; 0x40
- ldrlt r0, _037FC0F4 ; =_03807170
- ldrltsb r0, [r0, r1]
- bxlt lr
- cmp r0, #96 ; 0x60
- bge _037FC0D4
- sub r1, r0, #64 ; 0x40
- ldr r0, _037FC0F4 ; =_03807170
- ldrsb r0, [r0, r1]
- rsb r0, r0, #0
- mov r0, r0, lsl #24
- mov r0, r0, asr #24
- bx lr
-_037FC0D4:
- sub r0, r0, #96 ; 0x60
- rsb r1, r0, #32
- ldr r0, _037FC0F4 ; =_03807170
- ldrsb r0, [r0, r1]
- rsb r0, r0, #0
- mov r0, r0, lsl #24
- mov r0, r0, asr #24
- bx lr
-_037FC0F4: .word _03807170
-
- arm_func_start SND_CalcChannelVolume
-SND_CalcChannelVolume: ; 0x037FC0F8
- stmdb sp!, {r4, lr}
- mov r4, r0
- ldr r0, _037FC168 ; =0xFFFFFD2D
- cmp r4, r0
- movlt r4, r0
- blt _037FC118
- cmp r4, #0
- movgt r4, #0
-_037FC118:
- ldr r0, _037FC16C ; =0x000002D3
- add r0, r4, r0
- bl FUN_037FC170
- mvn r1, #239 ; 0xef
- cmp r4, r1
- movlt r1, #3
- blt _037FC154
- mvn r1, #119 ; 0x77
- cmp r4, r1
- movlt r1, #2
- blt _037FC154
- mvn r1, #59 ; 0x3b
- cmp r4, r1
- movlt r1, #1
- movge r1, #0
-_037FC154:
- orr r0, r0, r1, lsl #8
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- ldmia sp!, {r4, lr}
- bx lr
-_037FC168: .word 0xFFFFFD2D
-_037FC16C: .word 0x000002D3
-
- arm_func_start FUN_037FC170
-FUN_037FC170: ; 0x037FC170
- ldr ip, _037FC178 ; =SVC_GetVolumeTable
- bx ip
-_037FC178: .word SVC_GetVolumeTable
-
- arm_func_start SND_CalcTimer
-SND_CalcTimer: ; 0x037FC17C
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- mov r5, r0
- mov r4, #0
- rsb r0, r1, #0
- b _037FC19C
-_037FC194:
- sub r4, r4, #1
- add r0, r0, #768 ; 0x300
-_037FC19C:
- cmp r0, #0
- blt _037FC194
- b _037FC1B0
-_037FC1A8:
- add r4, r4, #1
- sub r0, r0, #768 ; 0x300
-_037FC1B0:
- cmp r0, #768 ; 0x300
- bge _037FC1A8
- bl FUN_037FC2A4
- mov r2, #0
- mov r1, #65536 ; 0x10000
- adds lr, r0, r1
- adc ip, r2, #0
- mov r3, r5, asr #31
- umull r1, r0, lr, r5
- mla r0, lr, r3, r0
- mla r0, ip, r5, r0
- sub lr, r4, #16
- cmp lr, #0
- bgt _037FC208
- rsb r2, lr, #0
- mov r3, r0, lsr r2
- mov r5, r1, lsr r2
- rsb r1, r2, #32
- orr r5, r5, r0, lsl r1
- sub r1, r2, #32
- orr r5, r5, r0, lsr r1
- b _037FC264
-_037FC208:
- cmp lr, #32
- bge _037FC25C
- mvn r5, #0
- rsb r4, lr, #32
- mov ip, r5, lsl r4
- rsb r3, r4, #32
- orr ip, ip, r5, lsr r3
- sub r3, r4, #32
- orr ip, ip, r5, lsl r3
- and r3, r0, ip
- and r5, r1, r5, lsl r4
- cmp r3, r2
- cmpeq r5, r2
- ldrne r0, _037FC2A0 ; =0x0000FFFF
- bne _037FC294
- mov r5, r1, lsl lr
- mov r3, r0, lsl lr
- orr r3, r3, r1, lsr r4
- sub r0, lr, #32
- orr r3, r3, r1, lsl r0
- b _037FC264
-_037FC25C:
- ldr r0, _037FC2A0 ; =0x0000FFFF
- b _037FC294
-_037FC264:
- mov r1, #0
- mov r0, #16
- cmp r3, r1
- cmpeq r5, r0
- movcc r5, r0
- bcc _037FC28C
- ldr r0, _037FC2A0 ; =0x0000FFFF
- cmp r3, r1
- cmpeq r5, r0
- movhi r5, r0
-_037FC28C:
- mov r0, r5, lsl #16
- mov r0, r0, lsr #16
-_037FC294:
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-_037FC2A0: .word 0x0000FFFF
-
- arm_func_start FUN_037FC2A4
-FUN_037FC2A4: ; 0x037FC2A4
- ldr ip, _037FC2AC ; =SVC_GetPitchTable
- bx ip
-_037FC2AC: .word SVC_GetPitchTable
diff --git a/arm7/asm/SND_wave.s b/arm7/asm/SND_wave.s
deleted file mode 100644
index e18acc43..00000000
--- a/arm7/asm/SND_wave.s
+++ /dev/null
@@ -1,43 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- arm_func_start SND_InvalidateWave
-SND_InvalidateWave: ; 0x037FC8DC
- stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
- sub sp, sp, #4
- mov r7, r0
- mov r6, r1
- mov r5, #0
- mov r9, r5
- ldr r4, _037FC960 ; =SNDi_Work
- mov r8, #84 ; 0x54
-_037FC8FC:
- mla r2, r5, r8, r4
- ldrb r1, [r2, #3]
- mov r0, r1, lsl #31
- movs r0, r0, lsr #31
- beq _037FC944
- ldrb r0, [r2, #1]
- cmp r0, #0
- bne _037FC944
- ldr r0, [r2, #68] ; 0x44
- cmp r7, r0
- bhi _037FC944
- cmp r0, r6
- bhi _037FC944
- bic r0, r1, #2
- strb r0, [r2, #3]
- mov r0, r5
- mov r1, r9
- bl SND_StopChannel
-_037FC944:
- add r0, r5, #1
- and r5, r0, #255 ; 0xff
- cmp r5, #16
- bcc _037FC8FC
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, r8, r9, lr}
- bx lr
-_037FC960: .word SNDi_Work
diff --git a/arm7/asm/SND_work.s b/arm7/asm/SND_work.s
deleted file mode 100644
index fb7f51e9..00000000
--- a/arm7/asm/SND_work.s
+++ /dev/null
@@ -1,84 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .bss
-
- .global SNDi_Work
-SNDi_Work: ;0x03807F6C
- .space 0x038084AC - 0x03807F6C
-#todo unsure if these two belong here
- .global _038084AC
-_038084AC: ;0x038084AC
- .space 0x038086EC - 0x038084AC
-
- .global _038086EC
-_038086EC: ;0x038086EC
- .space 0x03808EEC - 0x038086EC
-
- .section .text
-
- arm_func_start SND_UpdateSharedWork
-SND_UpdateSharedWork: ; 0x037FF448
- stmdb sp!, {r4, r5, r6, r7, lr}
- sub sp, sp, #4
- mov r5, #0
- mov r4, r5
- ldr r0, _037FF4E4 ; =SNDi_SharedWork
- ldr r0, [r0]
- cmp r0, #0
- beq _037FF4D8
- mov r7, r5
- mov r6, #1
-_037FF470:
- mov r0, r7
- bl SND_IsChannelActive
- cmp r0, #0
- orrne r0, r5, r6, lsl r7
- movne r0, r0, lsl #16
- movne r5, r0, lsr #16
- add r7, r7, #1
- cmp r7, #16
- blt _037FF470
- mov r0, #0
- bl SND_IsCaptureActive
- cmp r0, #0
- orrne r0, r4, #1
- movne r0, r0, lsl #16
- movne r4, r0, lsr #16
- mov r0, #1
- bl SND_IsCaptureActive
- cmp r0, #0
- orrne r0, r4, #2
- movne r0, r0, lsl #16
- movne r4, r0, lsr #16
- ldr r0, _037FF4E4 ; =SNDi_SharedWork
- ldr r1, [r0]
- strh r5, [r1, #8]
- ldr r0, [r0]
- strh r4, [r0, #10]
-_037FF4D8:
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
-_037FF4E4: .word SNDi_SharedWork
-
- arm_func_start SND_SetPlayerGlobalVariable
-SND_SetPlayerGlobalVariable: ; 0x037FF4E8
- ldr r2, _037FF500 ; =SNDi_SharedWork
- ldr r2, [r2]
- add r0, r2, r0, lsl #1
- add r0, r0, #512 ; 0x200
- strh r1, [r0, #96] ; 0x60
- bx lr
-_037FF500: .word SNDi_SharedWork
-
- arm_func_start SND_SetPlayerLocalVariable
-SND_SetPlayerLocalVariable: ; 0x037FF504
- ldr r3, _037FF520 ; =SNDi_SharedWork
- ldr ip, [r3]
- mov r3, #36 ; 0x24
- mla r3, r0, r3, ip
- add r0, r3, r1, lsl #1
- strh r2, [r0, #32]
- bx lr
-_037FF520: .word SNDi_SharedWork
diff --git a/arm7/asm/wram2.s b/arm7/asm/wram2.s
index 7191db9d..6dfeea6f 100644
--- a/arm7/asm/wram2.s
+++ b/arm7/asm/wram2.s
@@ -962,8 +962,8 @@ _u32_div_not_0_f: ;@ 0x03806F94
mov r1, r3
bx lr
- .global _03807170
-_03807170:
+ .global sLfoSinTable
+sLfoSinTable:
.byte 0
.byte 6
.byte 12
@@ -1132,15 +1132,15 @@ SNDi_DecibelSquareTable:
.short -1
.short 0
- .global _03807294
-_03807294:
+ .global sSampleDataShiftTable
+sSampleDataShiftTable:
.byte 0
.byte 1
.byte 2
.byte 4
- .global _03807298
-_03807298:
+ .global sChannelAllocationOrder
+sChannelAllocationOrder:
.byte 4
.byte 5
.byte 6
@@ -1158,8 +1158,8 @@ _03807298:
.byte 15
.byte 13
- .global _038072A8
-_038072A8:
+ .global sAttackCoeffTable
+sAttackCoeffTable:
.byte 0
.byte 1
.byte 5