mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 07:17:45 -04:00
sound, fix mcd cdda (mono, resampling), type cleanup, remove minimp3
This commit is contained in:
parent
9f1d5acdb4
commit
f7741cac91
14 changed files with 193 additions and 89 deletions
|
@ -153,6 +153,92 @@ m16_32_s2_no_unal2:
|
|||
|
||||
|
||||
|
||||
.global mix_16h_to_32_resample_stereo @ int *dest, short *src, int count, int fac16
|
||||
|
||||
mix_16h_to_32_resample_stereo:
|
||||
stmfd sp!, {r4-r9,lr}
|
||||
|
||||
subs r2, r2, #2
|
||||
mov r4, #0
|
||||
bmi m16_32_rss_end
|
||||
|
||||
m16_32_rss_loop:
|
||||
ldmia r0, {r5-r8}
|
||||
lsr r9, r4, #16
|
||||
ldr r12,[r1, r9, lsl #2]
|
||||
add r4, r4, r3
|
||||
lsr r9, r4, #16
|
||||
ldr lr ,[r1, r9, lsl #2]
|
||||
add r4, r4, r3
|
||||
subs r2, r2, #2
|
||||
add r6, r6, r12,asr #17
|
||||
mov r12,r12,lsl #16
|
||||
add r5, r5, r12,asr #17 @ we use half volume
|
||||
add r8, r8, lr, asr #17
|
||||
mov lr, lr, lsl #16
|
||||
add r7, r7, lr, asr #17
|
||||
stmia r0!,{r5-r8}
|
||||
bpl m16_32_rss_loop
|
||||
|
||||
m16_32_rss_end:
|
||||
tst r2, #1
|
||||
ldmeqfd sp!, {r4-r9,pc}
|
||||
lsr r9, r4, #16
|
||||
ldr lr ,[r1, r9, lsl #2]
|
||||
ldmia r0, {r5,r6}
|
||||
mov r12,lr, lsl #16
|
||||
add r5, r5, r12,asr #17
|
||||
add r6, r6, lr, asr #17
|
||||
stmia r0!,{r5,r6}
|
||||
|
||||
ldmfd sp!, {r4-r9,lr}
|
||||
bx lr
|
||||
|
||||
|
||||
|
||||
.global mix_16h_to_32_resample_mono @ int *dest, short *src, int count, int fac16
|
||||
|
||||
mix_16h_to_32_resample_mono:
|
||||
stmfd sp!, {r4-r6,r9,lr}
|
||||
|
||||
subs r2, r2, #2
|
||||
mov r4, #0
|
||||
bmi m16_32_rsm_end
|
||||
|
||||
m16_32_rsm_loop:
|
||||
ldmia r0, {r5-r6}
|
||||
lsr r9, r4, #16
|
||||
ldr r12,[r1, r9, lsl #2]
|
||||
add r4, r4, r3
|
||||
lsr r9, r4, #16
|
||||
ldr lr ,[r1, r9, lsl #2]
|
||||
add r4, r4, r3
|
||||
subs r2, r2, #2
|
||||
add r5, r5, r12,asr #18
|
||||
mov r12,r12,lsl #16
|
||||
add r5, r5, r12,asr #18 @ we use half volume (= quarter vol per channel)
|
||||
add r6, r6, lr, asr #18
|
||||
mov lr, lr, lsl #16
|
||||
add r6, r6, lr, asr #18
|
||||
stmia r0!,{r5-r6}
|
||||
bpl m16_32_rsm_loop
|
||||
|
||||
m16_32_rsm_end:
|
||||
tst r2, #1
|
||||
ldmeqfd sp!, {r4-r6,r9,pc}
|
||||
lsr r9, r4, #16
|
||||
ldr lr ,[r1, r9, lsl #2]
|
||||
ldr r5, [r0]
|
||||
mov r12,lr, lsl #16
|
||||
add r5, r5, r12,asr #18
|
||||
add r5, r5, lr, asr #18
|
||||
str r5, [r0]
|
||||
|
||||
ldmfd sp!, {r4-r6,r9,lr}
|
||||
bx lr
|
||||
|
||||
|
||||
|
||||
@ limit
|
||||
@ reg=int_sample, r12=1, r8=tmp, kills flags
|
||||
.macro Limit reg
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue