diff options
Diffstat (limited to 'arm7/asm/SND_exChannel.s')
-rw-r--r-- | arm7/asm/SND_exChannel.s | 645 |
1 files changed, 0 insertions, 645 deletions
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 |