Fixed dos sound
This commit is contained in:
@@ -670,13 +670,13 @@ NEWSYM AdjustFrequency
|
|||||||
mov [SBToSPC],eax
|
mov [SBToSPC],eax
|
||||||
mov [SBRateb],eax
|
mov [SBRateb],eax
|
||||||
|
|
||||||
XOr EDX, EDX
|
xor edx,edx
|
||||||
Mov EBX, EAX
|
mov ebx,eax
|
||||||
Mov EAX, 32000
|
mov eax,32000
|
||||||
ShLD EDX, EAX, 20
|
shld edx,eax,20
|
||||||
ShL EAX, 20
|
shl eax,20
|
||||||
Div EBX
|
div ebx
|
||||||
Mov [dspPAdj], EAX
|
mov [dspPAdj],eax
|
||||||
|
|
||||||
; Init all rates
|
; Init all rates
|
||||||
mov esi,EchoRate
|
mov esi,EchoRate
|
||||||
@@ -1307,7 +1307,11 @@ NEWSYM InitSPC
|
|||||||
mov eax,Invalidopcode
|
mov eax,Invalidopcode
|
||||||
mov ebp,0
|
mov ebp,0
|
||||||
.loop
|
.loop
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov [ds:opcjmptab+ebp],eax
|
||||||
|
%else
|
||||||
mov [opcjmptab+ebp],eax
|
mov [opcjmptab+ebp],eax
|
||||||
|
%endif
|
||||||
add ebp,4
|
add ebp,4
|
||||||
dec ecx
|
dec ecx
|
||||||
jnz .loop
|
jnz .loop
|
||||||
@@ -3290,9 +3294,15 @@ section .text
|
|||||||
ALIGN16
|
ALIGN16
|
||||||
NEWSYM NonEchoMonoPM
|
NEWSYM NonEchoMonoPM
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov al,[ds:Voice0Volume+ebp]
|
||||||
|
mov ah,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
mov edx,[ds:BRRPlace0+ebp*8+3]
|
||||||
|
%else
|
||||||
mov al,[Voice0Volume+ebp]
|
mov al,[Voice0Volume+ebp]
|
||||||
mov ah,[Voice0EnvInc+ebp*4+2]
|
mov ah,[Voice0EnvInc+ebp*4+2]
|
||||||
mov edx,[BRRPlace0+ebp*8+3]
|
mov edx,[BRRPlace0+ebp*8+3]
|
||||||
|
%endif
|
||||||
mov cx,[VolumeConvTable+eax*2]
|
mov cx,[VolumeConvTable+eax*2]
|
||||||
cmp byte[UniqueSoundv],0
|
cmp byte[UniqueSoundv],0
|
||||||
je .NotNoise1
|
je .NotNoise1
|
||||||
@@ -3319,15 +3329,25 @@ NEWSYM NonEchoMonoPM
|
|||||||
add [DSPBuffer+esi*2],eax
|
add [DSPBuffer+esi*2],eax
|
||||||
add esi,2
|
add esi,2
|
||||||
CalculatePMod ebp
|
CalculatePMod ebp
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
add [ds:BRRPlace0+ebp*8],ebx
|
||||||
|
%else
|
||||||
add [BRRPlace0+ebp*8],ebx
|
add [BRRPlace0+ebp*8],ebx
|
||||||
|
%endif
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN16
|
ALIGN16
|
||||||
NEWSYM NonEchoStereoPM
|
NEWSYM NonEchoStereoPM
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov al,[ds:Voice0VolumeR+ebp]
|
||||||
|
mov ah,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
mov edx,[ds:BRRPlace0+ebp*8+3]
|
||||||
|
%else
|
||||||
mov al,[Voice0VolumeR+ebp]
|
mov al,[Voice0VolumeR+ebp]
|
||||||
mov ah,[Voice0EnvInc+ebp*4+2]
|
mov ah,[Voice0EnvInc+ebp*4+2]
|
||||||
mov edx,[BRRPlace0+ebp*8+3]
|
mov edx,[BRRPlace0+ebp*8+3]
|
||||||
|
%endif
|
||||||
mov cx,[VolumeConvTable+eax*2]
|
mov cx,[VolumeConvTable+eax*2]
|
||||||
cmp byte[UniqueSoundv],0
|
cmp byte[UniqueSoundv],0
|
||||||
je .NotNoise1b
|
je .NotNoise1b
|
||||||
@@ -3356,7 +3376,11 @@ NEWSYM NonEchoStereoPM
|
|||||||
add dword [DSPBuffer+esi*4],eax
|
add dword [DSPBuffer+esi*4],eax
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov al,[Voice0VolumeL+ebp]
|
mov al,[Voice0VolumeL+ebp]
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov ah,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
%else
|
||||||
mov ah,[Voice0EnvInc+ebp*4+2]
|
mov ah,[Voice0EnvInc+ebp*4+2]
|
||||||
|
%endif
|
||||||
add esi,2
|
add esi,2
|
||||||
mov cx,[VolumeConvTable+eax*2]
|
mov cx,[VolumeConvTable+eax*2]
|
||||||
pop eax
|
pop eax
|
||||||
@@ -3367,15 +3391,25 @@ NEWSYM NonEchoStereoPM
|
|||||||
movsx eax,ax
|
movsx eax,ax
|
||||||
add dword [DSPBuffer+esi*4-4],eax
|
add dword [DSPBuffer+esi*4-4],eax
|
||||||
CalculatePMod ebp
|
CalculatePMod ebp
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
add [ds:BRRPlace0+ebp*8],ebx
|
||||||
|
%else
|
||||||
add [BRRPlace0+ebp*8],ebx
|
add [BRRPlace0+ebp*8],ebx
|
||||||
|
%endif
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN16
|
ALIGN16
|
||||||
NEWSYM EchoMonoPM
|
NEWSYM EchoMonoPM
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov al,[ds:Voice0Volume+ebp]
|
||||||
|
mov ah,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
mov edx,[ds:BRRPlace0+ebp*8+3]
|
||||||
|
%else
|
||||||
mov al,[Voice0Volume+ebp]
|
mov al,[Voice0Volume+ebp]
|
||||||
mov ah,[Voice0EnvInc+ebp*4+2]
|
mov ah,[Voice0EnvInc+ebp*4+2]
|
||||||
mov edx,[BRRPlace0+ebp*8+3]
|
mov edx,[BRRPlace0+ebp*8+3]
|
||||||
|
%endif
|
||||||
mov cx,[VolumeConvTable+eax*2]
|
mov cx,[VolumeConvTable+eax*2]
|
||||||
cmp byte[UniqueSoundv],0
|
cmp byte[UniqueSoundv],0
|
||||||
je .NotNoise1
|
je .NotNoise1
|
||||||
@@ -3404,8 +3438,13 @@ NEWSYM EchoMonoPM
|
|||||||
add [DSPBuffer+esi*2],eax
|
add [DSPBuffer+esi*2],eax
|
||||||
|
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov al,[ds:Voice0Volumee+ebp]
|
||||||
|
mov ah,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
%else
|
||||||
mov al,[Voice0Volumee+ebp]
|
mov al,[Voice0Volumee+ebp]
|
||||||
mov ah,[Voice0EnvInc+ebp*4+2]
|
mov ah,[Voice0EnvInc+ebp*4+2]
|
||||||
|
%endif
|
||||||
mov cx,[VolumeConvTable+eax*2]
|
mov cx,[VolumeConvTable+eax*2]
|
||||||
pop eax
|
pop eax
|
||||||
|
|
||||||
@@ -3418,15 +3457,25 @@ NEWSYM EchoMonoPM
|
|||||||
|
|
||||||
add esi,2
|
add esi,2
|
||||||
CalculatePMod ebp
|
CalculatePMod ebp
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
add [ds:BRRPlace0+ebp*8],ebx
|
||||||
|
%else
|
||||||
add [BRRPlace0+ebp*8],ebx
|
add [BRRPlace0+ebp*8],ebx
|
||||||
|
%endif
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN16
|
ALIGN16
|
||||||
NEWSYM EchoStereoPM
|
NEWSYM EchoStereoPM
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov al,[ds:Voice0VolumeR+ebp]
|
||||||
|
mov ah,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
mov edx,[ds:BRRPlace0+ebp*8+3]
|
||||||
|
%else
|
||||||
mov al,[Voice0VolumeR+ebp]
|
mov al,[Voice0VolumeR+ebp]
|
||||||
mov ah,[Voice0EnvInc+ebp*4+2]
|
mov ah,[Voice0EnvInc+ebp*4+2]
|
||||||
mov edx,[BRRPlace0+ebp*8+3]
|
mov edx,[BRRPlace0+ebp*8+3]
|
||||||
|
%endif
|
||||||
mov cx,[VolumeConvTable+eax*2]
|
mov cx,[VolumeConvTable+eax*2]
|
||||||
cmp byte[UniqueSoundv],0
|
cmp byte[UniqueSoundv],0
|
||||||
je .NotNoise1b
|
je .NotNoise1b
|
||||||
@@ -3454,9 +3503,15 @@ NEWSYM EchoStereoPM
|
|||||||
movsx eax,ax
|
movsx eax,ax
|
||||||
add dword [DSPBuffer+esi*4],eax
|
add dword [DSPBuffer+esi*4],eax
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov al,[ds:Voice0VolumeRe+ebp]
|
||||||
|
mov ah,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
mov cx,[ds:VolumeConvTable+eax*2]
|
||||||
|
%else
|
||||||
mov al,[Voice0VolumeRe+ebp]
|
mov al,[Voice0VolumeRe+ebp]
|
||||||
mov ah,[Voice0EnvInc+ebp*4+2]
|
mov ah,[Voice0EnvInc+ebp*4+2]
|
||||||
mov cx,[VolumeConvTable+eax*2]
|
mov cx,[VolumeConvTable+eax*2]
|
||||||
|
%endif
|
||||||
mov eax,ebx
|
mov eax,ebx
|
||||||
imul cx
|
imul cx
|
||||||
shr ax,7
|
shr ax,7
|
||||||
@@ -3466,8 +3521,13 @@ NEWSYM EchoStereoPM
|
|||||||
add [EchoBuffer+esi*4],eax
|
add [EchoBuffer+esi*4],eax
|
||||||
|
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov al,[ds:Voice0VolumeL+ebp]
|
||||||
|
mov ah,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
%else
|
||||||
mov al,[Voice0VolumeL+ebp]
|
mov al,[Voice0VolumeL+ebp]
|
||||||
mov ah,[Voice0EnvInc+ebp*4+2]
|
mov ah,[Voice0EnvInc+ebp*4+2]
|
||||||
|
%endif
|
||||||
mov cx,[VolumeConvTable+eax*2]
|
mov cx,[VolumeConvTable+eax*2]
|
||||||
|
|
||||||
mov eax,ebx
|
mov eax,ebx
|
||||||
@@ -3478,8 +3538,13 @@ NEWSYM EchoStereoPM
|
|||||||
movsx eax,ax
|
movsx eax,ax
|
||||||
add dword [DSPBuffer+esi*4+4],eax
|
add dword [DSPBuffer+esi*4+4],eax
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov al,[ds:Voice0VolumeLe+ebp]
|
||||||
|
mov ah,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
%else
|
||||||
mov al,[Voice0VolumeLe+ebp]
|
mov al,[Voice0VolumeLe+ebp]
|
||||||
mov ah,[Voice0EnvInc+ebp*4+2]
|
mov ah,[Voice0EnvInc+ebp*4+2]
|
||||||
|
%endif
|
||||||
mov cx,[VolumeConvTable+eax*2]
|
mov cx,[VolumeConvTable+eax*2]
|
||||||
mov eax,ebx
|
mov eax,ebx
|
||||||
|
|
||||||
@@ -3488,12 +3553,20 @@ NEWSYM EchoStereoPM
|
|||||||
add dl,dl
|
add dl,dl
|
||||||
or ah,dl
|
or ah,dl
|
||||||
movsx eax,ax
|
movsx eax,ax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov ebx,[ds:Voice0Freq+ebp*4]
|
||||||
|
%else
|
||||||
mov ebx,[Voice0Freq+ebp*4]
|
mov ebx,[Voice0Freq+ebp*4]
|
||||||
|
%endif
|
||||||
add [EchoBuffer+esi*4+4],eax
|
add [EchoBuffer+esi*4+4],eax
|
||||||
|
|
||||||
add esi,2
|
add esi,2
|
||||||
CalculatePMod ebp
|
CalculatePMod ebp
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
add [ds:BRRPlace0+ebp*8],ebx
|
||||||
|
%else
|
||||||
add [BRRPlace0+ebp*8],ebx
|
add [BRRPlace0+ebp*8],ebx
|
||||||
|
%endif
|
||||||
ret
|
ret
|
||||||
|
|
||||||
; interpolation is only done when the rate < mixRate, so ebx always contains
|
; interpolation is only done when the rate < mixRate, so ebx always contains
|
||||||
@@ -3510,19 +3583,31 @@ SECTION .text
|
|||||||
ALIGN16
|
ALIGN16
|
||||||
DSPInterpolate_4
|
DSPInterpolate_4
|
||||||
push edi
|
push edi
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
lea edi,[ds:ebp*2+ebp]
|
||||||
|
%else
|
||||||
lea edi,[ebp*2+ebp]
|
lea edi,[ebp*2+ebp]
|
||||||
|
%endif
|
||||||
shl edi,5
|
shl edi,5
|
||||||
|
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
|
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov bl,[ds:BRRPlace0+ebp*8+2]
|
||||||
|
%else
|
||||||
mov bl,[BRRPlace0+ebp*8+2]
|
mov bl,[BRRPlace0+ebp*8+2]
|
||||||
|
%endif
|
||||||
|
|
||||||
mov ax,[PSampleBuf+edx*4+8+edi]
|
mov ax,[PSampleBuf+edx*4+8+edi]
|
||||||
mov dx,[DSPInterP+ebx*2+256*6]
|
mov dx,[DSPInterP+ebx*2+256*6]
|
||||||
imul dx
|
imul dx
|
||||||
shl edx,16
|
shl edx,16
|
||||||
mov dx,ax
|
mov dx,ax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov eax,[ds:BRRPlace0+ebp*8+3]
|
||||||
|
%else
|
||||||
mov eax,[BRRPlace0+ebp*8+3]
|
mov eax,[BRRPlace0+ebp*8+3]
|
||||||
|
%endif
|
||||||
mov ecx,edx
|
mov ecx,edx
|
||||||
|
|
||||||
mov ax,[PSampleBuf+eax*4+12+edi]
|
mov ax,[PSampleBuf+eax*4+12+edi]
|
||||||
@@ -3530,7 +3615,11 @@ DSPInterpolate_4
|
|||||||
imul dx
|
imul dx
|
||||||
shl edx,16
|
shl edx,16
|
||||||
mov dx,ax
|
mov dx,ax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov eax,[ds:BRRPlace0+ebp*8+3]
|
||||||
|
%else
|
||||||
mov eax,[BRRPlace0+ebp*8+3]
|
mov eax,[BRRPlace0+ebp*8+3]
|
||||||
|
%endif
|
||||||
add ecx,edx
|
add ecx,edx
|
||||||
|
|
||||||
mov ax,[PSampleBuf+eax*4+16+edi]
|
mov ax,[PSampleBuf+eax*4+16+edi]
|
||||||
@@ -3538,7 +3627,11 @@ DSPInterpolate_4
|
|||||||
imul dx
|
imul dx
|
||||||
shl edx,16
|
shl edx,16
|
||||||
mov dx,ax
|
mov dx,ax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov eax,[ds:BRRPlace0+ebp*8+3]
|
||||||
|
%else
|
||||||
mov eax,[BRRPlace0+ebp*8+3]
|
mov eax,[BRRPlace0+ebp*8+3]
|
||||||
|
%endif
|
||||||
add ecx,edx
|
add ecx,edx
|
||||||
|
|
||||||
mov ax,[PSampleBuf+eax*4+20+edi]
|
mov ax,[PSampleBuf+eax*4+20+edi]
|
||||||
@@ -3567,13 +3660,22 @@ ALIGN16
|
|||||||
DSPInterpolate_8:
|
DSPInterpolate_8:
|
||||||
|
|
||||||
push edi
|
push edi
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
lea edi,[ds:ebp*2+ebp]
|
||||||
|
%else
|
||||||
lea edi,[ebp*2+ebp]
|
lea edi,[ebp*2+ebp]
|
||||||
|
%endif
|
||||||
shl edi,5
|
shl edi,5
|
||||||
|
|
||||||
%if 1
|
%if 1
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov ebx,[ds:BRRPlace0+ebp*8]
|
||||||
|
mov al,[ds:BRRPlace0+ebp*8+3]
|
||||||
|
%else
|
||||||
mov ebx,[BRRPlace0+ebp*8]
|
mov ebx,[BRRPlace0+ebp*8]
|
||||||
mov al,[BRRPlace0+ebp*8+3]
|
mov al,[BRRPlace0+ebp*8+3]
|
||||||
|
%endif
|
||||||
shl eax,2
|
shl eax,2
|
||||||
and ebx,0FFFFFFh
|
and ebx,0FFFFFFh
|
||||||
add ebx,1000h
|
add ebx,1000h
|
||||||
@@ -3611,11 +3713,19 @@ ALIGN16
|
|||||||
DSPInterpolate_4_mmx:
|
DSPInterpolate_4_mmx:
|
||||||
|
|
||||||
push edi
|
push edi
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
lea edi,[ds:ebp*2+ebp]
|
||||||
|
%else
|
||||||
lea edi,[ebp*2+ebp]
|
lea edi,[ebp*2+ebp]
|
||||||
|
%endif
|
||||||
shl edi,5
|
shl edi,5
|
||||||
|
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov al,[ds:BRRPlace0+ebp*8+2]
|
||||||
|
%else
|
||||||
mov al,[BRRPlace0+ebp*8+2]
|
mov al,[BRRPlace0+ebp*8+2]
|
||||||
|
%endif
|
||||||
movq mm0,[edx*4+PSampleBuf+edi+8]
|
movq mm0,[edx*4+PSampleBuf+edi+8]
|
||||||
packssdw mm0,[edx*4+PSampleBuf+edi+16]
|
packssdw mm0,[edx*4+PSampleBuf+edi+16]
|
||||||
movq mm1,[DSPInterP+eax*8]
|
movq mm1,[DSPInterP+eax*8]
|
||||||
@@ -3632,7 +3742,11 @@ DSPInterpolate_4_mmx:
|
|||||||
|
|
||||||
ALIGN16
|
ALIGN16
|
||||||
NEWSYM NonEchoMonoInterpolated
|
NEWSYM NonEchoMonoInterpolated
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov edx,[ds:BRRPlace0+ebp*8+3]
|
||||||
|
%else
|
||||||
mov edx,[BRRPlace0+ebp*8+3]
|
mov edx,[BRRPlace0+ebp*8+3]
|
||||||
|
%endif
|
||||||
cmp byte[UniqueSoundv],0
|
cmp byte[UniqueSoundv],0
|
||||||
je .NotNoise1
|
je .NotNoise1
|
||||||
powshithack
|
powshithack
|
||||||
@@ -3654,9 +3768,15 @@ NEWSYM NonEchoMonoInterpolated
|
|||||||
; DSPInterP (Samp*i+Samp2*i2+Samp3*i3+Samp4*i3)>>11
|
; DSPInterP (Samp*i+Samp2*i2+Samp3*i3+Samp4*i3)>>11
|
||||||
.AfterNoise1
|
.AfterNoise1
|
||||||
xor edx,edx
|
xor edx,edx
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov dl,[ds:Voice0Volume+ebp]
|
||||||
|
mov dh,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
mov ebx,[ds:Voice0Freq+ebp*4]
|
||||||
|
%else
|
||||||
mov dl,[Voice0Volume+ebp]
|
mov dl,[Voice0Volume+ebp]
|
||||||
mov dh,[Voice0EnvInc+ebp*4+2]
|
mov dh,[Voice0EnvInc+ebp*4+2]
|
||||||
mov ebx,[Voice0Freq+ebp*4]
|
mov ebx,[Voice0Freq+ebp*4]
|
||||||
|
%endif
|
||||||
mov cx,[VolumeConvTable+edx*2]
|
mov cx,[VolumeConvTable+edx*2]
|
||||||
imul cx
|
imul cx
|
||||||
shr ax,7
|
shr ax,7
|
||||||
@@ -3665,12 +3785,20 @@ NEWSYM NonEchoMonoInterpolated
|
|||||||
movsx eax,ax
|
movsx eax,ax
|
||||||
add [DSPBuffer+esi*2],eax
|
add [DSPBuffer+esi*2],eax
|
||||||
add esi,2
|
add esi,2
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
add [ds:BRRPlace0+ebp*8],ebx
|
||||||
|
%else
|
||||||
add [BRRPlace0+ebp*8],ebx
|
add [BRRPlace0+ebp*8],ebx
|
||||||
|
%endif
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN16
|
ALIGN16
|
||||||
NEWSYM EchoMonoInterpolated
|
NEWSYM EchoMonoInterpolated
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov edx,[ds:BRRPlace0+ebp*8+3]
|
||||||
|
%else
|
||||||
mov edx,[BRRPlace0+ebp*8+3]
|
mov edx,[BRRPlace0+ebp*8+3]
|
||||||
|
%endif
|
||||||
cmp byte[UniqueSoundv],0
|
cmp byte[UniqueSoundv],0
|
||||||
je .NotNoise1
|
je .NotNoise1
|
||||||
powshithack
|
powshithack
|
||||||
@@ -3691,9 +3819,15 @@ NEWSYM EchoMonoInterpolated
|
|||||||
; mov ax,[edi+edx*2]
|
; mov ax,[edi+edx*2]
|
||||||
.AfterNoise1
|
.AfterNoise1
|
||||||
xor edx,edx
|
xor edx,edx
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov dl,[ds:Voice0Volume+ebp]
|
||||||
|
mov dh,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
mov ebx,[ds:Voice0Freq+ebp*4]
|
||||||
|
%else
|
||||||
mov dl,[Voice0Volume+ebp]
|
mov dl,[Voice0Volume+ebp]
|
||||||
mov dh,[Voice0EnvInc+ebp*4+2]
|
mov dh,[Voice0EnvInc+ebp*4+2]
|
||||||
mov ebx,[Voice0Freq+ebp*4]
|
mov ebx,[Voice0Freq+ebp*4]
|
||||||
|
%endif
|
||||||
mov cx,[VolumeConvTable+edx*2]
|
mov cx,[VolumeConvTable+edx*2]
|
||||||
|
|
||||||
add [BRRPlace0+ebp*8],ebx ; ***
|
add [BRRPlace0+ebp*8],ebx ; ***
|
||||||
@@ -3708,8 +3842,13 @@ NEWSYM EchoMonoInterpolated
|
|||||||
add [DSPBuffer+esi*2-4],eax
|
add [DSPBuffer+esi*2-4],eax
|
||||||
|
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov al,[ds:Voice0Volumee+ebp]
|
||||||
|
mov ah,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
%else
|
||||||
mov al,[Voice0Volumee+ebp]
|
mov al,[Voice0Volumee+ebp]
|
||||||
mov ah,[Voice0EnvInc+ebp*4+2]
|
mov ah,[Voice0EnvInc+ebp*4+2]
|
||||||
|
%endif
|
||||||
mov cx,[VolumeConvTable+eax*2]
|
mov cx,[VolumeConvTable+eax*2]
|
||||||
|
|
||||||
mov eax,ebx
|
mov eax,ebx
|
||||||
@@ -3724,7 +3863,11 @@ NEWSYM EchoMonoInterpolated
|
|||||||
|
|
||||||
ALIGN16
|
ALIGN16
|
||||||
NEWSYM NonEchoStereoInterpolated
|
NEWSYM NonEchoStereoInterpolated
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov edx,[ds:BRRPlace0+ebp*8+3]
|
||||||
|
%else
|
||||||
mov edx,[BRRPlace0+ebp*8+3]
|
mov edx,[BRRPlace0+ebp*8+3]
|
||||||
|
%endif
|
||||||
cmp byte[UniqueSoundv],0
|
cmp byte[UniqueSoundv],0
|
||||||
je .NotNoise1b
|
je .NotNoise1b
|
||||||
powshithack
|
powshithack
|
||||||
@@ -3743,9 +3886,15 @@ NEWSYM NonEchoStereoInterpolated
|
|||||||
call [DSPInterpolate]; %1
|
call [DSPInterpolate]; %1
|
||||||
.AfterNoise1b
|
.AfterNoise1b
|
||||||
xor edx,edx
|
xor edx,edx
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov dl,[ds:Voice0VolumeR+ebp]
|
||||||
|
mov dh,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
mov ebx,[ds:Voice0Freq+ebp*4]
|
||||||
|
%else
|
||||||
mov dl,[Voice0VolumeR+ebp]
|
mov dl,[Voice0VolumeR+ebp]
|
||||||
mov dh,[Voice0EnvInc+ebp*4+2]
|
mov dh,[Voice0EnvInc+ebp*4+2]
|
||||||
mov ebx,[Voice0Freq+ebp*4]
|
mov ebx,[Voice0Freq+ebp*4]
|
||||||
|
%endif
|
||||||
mov cx,[VolumeConvTable+edx*2]
|
mov cx,[VolumeConvTable+edx*2]
|
||||||
|
|
||||||
movsx eax,ax
|
movsx eax,ax
|
||||||
@@ -3757,8 +3906,13 @@ NEWSYM NonEchoStereoInterpolated
|
|||||||
movsx eax,ax
|
movsx eax,ax
|
||||||
add dword [DSPBuffer+esi*4],eax
|
add dword [DSPBuffer+esi*4],eax
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov al,[ds:Voice0VolumeL+ebp]
|
||||||
|
mov ah,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
%else
|
||||||
mov al,[Voice0VolumeL+ebp]
|
mov al,[Voice0VolumeL+ebp]
|
||||||
mov ah,[Voice0EnvInc+ebp*4+2]
|
mov ah,[Voice0EnvInc+ebp*4+2]
|
||||||
|
%endif
|
||||||
add esi,2
|
add esi,2
|
||||||
mov cx,[VolumeConvTable+eax*2]
|
mov cx,[VolumeConvTable+eax*2]
|
||||||
pop eax
|
pop eax
|
||||||
@@ -3768,12 +3922,20 @@ NEWSYM NonEchoStereoInterpolated
|
|||||||
or ah,dl
|
or ah,dl
|
||||||
movsx eax,ax
|
movsx eax,ax
|
||||||
add dword [DSPBuffer+esi*4-4],eax
|
add dword [DSPBuffer+esi*4-4],eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
add [BRRPlace0+ebp*8],ebx
|
add [BRRPlace0+ebp*8],ebx
|
||||||
|
%else
|
||||||
|
add [BRRPlace0+ebp*8],ebx
|
||||||
|
%endif
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN16
|
ALIGN16
|
||||||
NEWSYM EchoStereoInterpolated
|
NEWSYM EchoStereoInterpolated
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov edx,[ds:BRRPlace0+ebp*8+3]
|
||||||
|
%else
|
||||||
mov edx,[BRRPlace0+ebp*8+3]
|
mov edx,[BRRPlace0+ebp*8+3]
|
||||||
|
%endif
|
||||||
cmp byte[UniqueSoundv],0
|
cmp byte[UniqueSoundv],0
|
||||||
je .NotNoise1b
|
je .NotNoise1b
|
||||||
powshithack
|
powshithack
|
||||||
@@ -3793,8 +3955,13 @@ NEWSYM EchoStereoInterpolated
|
|||||||
call [DSPInterpolate] ;%1
|
call [DSPInterpolate] ;%1
|
||||||
.AfterNoise1b
|
.AfterNoise1b
|
||||||
xor edx,edx
|
xor edx,edx
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov dl,[ds:Voice0VolumeR+ebp]
|
||||||
|
mov dh,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
%else
|
||||||
mov dl,[Voice0VolumeR+ebp]
|
mov dl,[Voice0VolumeR+ebp]
|
||||||
mov dh,[Voice0EnvInc+ebp*4+2]
|
mov dh,[Voice0EnvInc+ebp*4+2]
|
||||||
|
%endif
|
||||||
mov cx,[VolumeConvTable+edx*2]
|
mov cx,[VolumeConvTable+edx*2]
|
||||||
|
|
||||||
movsx eax,ax
|
movsx eax,ax
|
||||||
@@ -3806,8 +3973,13 @@ NEWSYM EchoStereoInterpolated
|
|||||||
movsx eax,ax
|
movsx eax,ax
|
||||||
add dword [DSPBuffer+esi*4],eax
|
add dword [DSPBuffer+esi*4],eax
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov al,[ds:Voice0VolumeRe+ebp]
|
||||||
|
mov ah,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
%else
|
||||||
mov al,[Voice0VolumeRe+ebp]
|
mov al,[Voice0VolumeRe+ebp]
|
||||||
mov ah,[Voice0EnvInc+ebp*4+2]
|
mov ah,[Voice0EnvInc+ebp*4+2]
|
||||||
|
%endif
|
||||||
mov cx,[VolumeConvTable+eax*2]
|
mov cx,[VolumeConvTable+eax*2]
|
||||||
mov eax,ebx
|
mov eax,ebx
|
||||||
imul cx
|
imul cx
|
||||||
@@ -3818,8 +3990,13 @@ NEWSYM EchoStereoInterpolated
|
|||||||
add [EchoBuffer+esi*4],eax
|
add [EchoBuffer+esi*4],eax
|
||||||
|
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov al,[ds:Voice0VolumeL+ebp]
|
||||||
|
mov ah,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
%else
|
||||||
mov al,[Voice0VolumeL+ebp]
|
mov al,[Voice0VolumeL+ebp]
|
||||||
mov ah,[Voice0EnvInc+ebp*4+2]
|
mov ah,[Voice0EnvInc+ebp*4+2]
|
||||||
|
%endif
|
||||||
mov cx,[VolumeConvTable+eax*2]
|
mov cx,[VolumeConvTable+eax*2]
|
||||||
|
|
||||||
mov eax,ebx
|
mov eax,ebx
|
||||||
@@ -3830,8 +4007,13 @@ NEWSYM EchoStereoInterpolated
|
|||||||
movsx eax,ax
|
movsx eax,ax
|
||||||
add dword [DSPBuffer+esi*4+4],eax
|
add dword [DSPBuffer+esi*4+4],eax
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov al,[ds:Voice0VolumeLe+ebp]
|
||||||
|
mov ah,[dS:Voice0EnvInc+ebp*4+2]
|
||||||
|
%else
|
||||||
mov al,[Voice0VolumeLe+ebp]
|
mov al,[Voice0VolumeLe+ebp]
|
||||||
mov ah,[Voice0EnvInc+ebp*4+2]
|
mov ah,[Voice0EnvInc+ebp*4+2]
|
||||||
|
%endif
|
||||||
mov cx,[VolumeConvTable+eax*2]
|
mov cx,[VolumeConvTable+eax*2]
|
||||||
mov eax,ebx
|
mov eax,ebx
|
||||||
|
|
||||||
@@ -3840,19 +4022,33 @@ NEWSYM EchoStereoInterpolated
|
|||||||
add dl,dl
|
add dl,dl
|
||||||
or ah,dl
|
or ah,dl
|
||||||
movsx eax,ax
|
movsx eax,ax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov ebx,[ds:Voice0Freq+ebp*4]
|
||||||
|
%else
|
||||||
mov ebx,[Voice0Freq+ebp*4]
|
mov ebx,[Voice0Freq+ebp*4]
|
||||||
|
%endif
|
||||||
add [EchoBuffer+esi*4+4],eax
|
add [EchoBuffer+esi*4+4],eax
|
||||||
|
|
||||||
add esi,2
|
add esi,2
|
||||||
|
%ifdef __MSDOS__
|
||||||
add [BRRPlace0+ebp*8],ebx
|
add [BRRPlace0+ebp*8],ebx
|
||||||
|
%else
|
||||||
|
add [BRRPlace0+ebp*8],ebx
|
||||||
|
%endif
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN16
|
ALIGN16
|
||||||
NEWSYM NonEchoMono
|
NEWSYM NonEchoMono
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov al,[ds:Voice0Volume+ebp]
|
||||||
|
mov ah,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
mov edx,[ds:BRRPlace0+ebp*8+3]
|
||||||
|
%else
|
||||||
mov al,[Voice0Volume+ebp]
|
mov al,[Voice0Volume+ebp]
|
||||||
mov ah,[Voice0EnvInc+ebp*4+2]
|
mov ah,[Voice0EnvInc+ebp*4+2]
|
||||||
mov edx,[BRRPlace0+ebp*8+3]
|
mov edx,[BRRPlace0+ebp*8+3]
|
||||||
|
%endif
|
||||||
mov cx,[VolumeConvTable+eax*2]
|
mov cx,[VolumeConvTable+eax*2]
|
||||||
cmp byte[UniqueSoundv],0
|
cmp byte[UniqueSoundv],0
|
||||||
je .NotNoise1
|
je .NotNoise1
|
||||||
@@ -3878,15 +4074,25 @@ NEWSYM NonEchoMono
|
|||||||
movsx eax,ax
|
movsx eax,ax
|
||||||
add [DSPBuffer+esi*2],eax
|
add [DSPBuffer+esi*2],eax
|
||||||
add esi,2
|
add esi,2
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
add [ds:BRRPlace0+ebp*8],ebx
|
||||||
|
%else
|
||||||
add [BRRPlace0+ebp*8],ebx
|
add [BRRPlace0+ebp*8],ebx
|
||||||
|
%endif
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN16
|
ALIGN16
|
||||||
NEWSYM NonEchoStereo
|
NEWSYM NonEchoStereo
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov al,[ds:Voice0VolumeR+ebp]
|
||||||
|
mov ah,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
mov edx,[ds:BRRPlace0+ebp*8+3]
|
||||||
|
%else
|
||||||
mov al,[Voice0VolumeR+ebp]
|
mov al,[Voice0VolumeR+ebp]
|
||||||
mov ah,[Voice0EnvInc+ebp*4+2]
|
mov ah,[Voice0EnvInc+ebp*4+2]
|
||||||
mov edx,[BRRPlace0+ebp*8+3]
|
mov edx,[BRRPlace0+ebp*8+3]
|
||||||
|
%endif
|
||||||
mov cx,[VolumeConvTable+eax*2]
|
mov cx,[VolumeConvTable+eax*2]
|
||||||
cmp byte[UniqueSoundv],0
|
cmp byte[UniqueSoundv],0
|
||||||
je .NotNoise1b
|
je .NotNoise1b
|
||||||
@@ -3914,8 +4120,13 @@ NEWSYM NonEchoStereo
|
|||||||
movsx eax,ax
|
movsx eax,ax
|
||||||
add dword [DSPBuffer+esi*4],eax
|
add dword [DSPBuffer+esi*4],eax
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov al,[ds:Voice0VolumeL+ebp]
|
||||||
|
mov ah,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
%else
|
||||||
mov al,[Voice0VolumeL+ebp]
|
mov al,[Voice0VolumeL+ebp]
|
||||||
mov ah,[Voice0EnvInc+ebp*4+2]
|
mov ah,[Voice0EnvInc+ebp*4+2]
|
||||||
|
%endif
|
||||||
add esi,2
|
add esi,2
|
||||||
mov cx,[VolumeConvTable+eax*2]
|
mov cx,[VolumeConvTable+eax*2]
|
||||||
pop eax
|
pop eax
|
||||||
@@ -3925,15 +4136,25 @@ NEWSYM NonEchoStereo
|
|||||||
or ah,dl
|
or ah,dl
|
||||||
movsx eax,ax
|
movsx eax,ax
|
||||||
add dword [DSPBuffer+esi*4-4],eax
|
add dword [DSPBuffer+esi*4-4],eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
add [ds:BRRPlace0+ebp*8],ebx
|
||||||
|
%else
|
||||||
add [BRRPlace0+ebp*8],ebx
|
add [BRRPlace0+ebp*8],ebx
|
||||||
|
%endif
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN16
|
ALIGN16
|
||||||
NEWSYM EchoMono
|
NEWSYM EchoMono
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov al,[ds:Voice0Volume+ebp]
|
||||||
|
mov ah,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
mov edx,[ds:BRRPlace0+ebp*8+3]
|
||||||
|
%else
|
||||||
mov al,[Voice0Volume+ebp]
|
mov al,[Voice0Volume+ebp]
|
||||||
mov ah,[Voice0EnvInc+ebp*4+2]
|
mov ah,[Voice0EnvInc+ebp*4+2]
|
||||||
mov edx,[BRRPlace0+ebp*8+3]
|
mov edx,[BRRPlace0+ebp*8+3]
|
||||||
|
%endif
|
||||||
mov cx,[VolumeConvTable+eax*2]
|
mov cx,[VolumeConvTable+eax*2]
|
||||||
cmp byte[UniqueSoundv],0
|
cmp byte[UniqueSoundv],0
|
||||||
je .NotNoise1
|
je .NotNoise1
|
||||||
@@ -3962,8 +4183,14 @@ NEWSYM EchoMono
|
|||||||
add [DSPBuffer+esi*2],eax
|
add [DSPBuffer+esi*2],eax
|
||||||
|
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov al,[ds:Voice0Volumee+ebp]
|
||||||
|
mov ah,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
%else
|
||||||
mov al,[Voice0Volumee+ebp]
|
mov al,[Voice0Volumee+ebp]
|
||||||
mov ah,[Voice0EnvInc+ebp*4+2]
|
mov ah,[Voice0EnvInc+ebp*4+2]
|
||||||
|
%endif
|
||||||
mov cx,[VolumeConvTable+eax*2]
|
mov cx,[VolumeConvTable+eax*2]
|
||||||
pop eax
|
pop eax
|
||||||
|
|
||||||
@@ -3975,15 +4202,25 @@ NEWSYM EchoMono
|
|||||||
add [EchoBuffer+esi*2],eax
|
add [EchoBuffer+esi*2],eax
|
||||||
|
|
||||||
add esi,2
|
add esi,2
|
||||||
|
%ifdef __MSDOS__
|
||||||
add [BRRPlace0+ebp*8],ebx
|
add [BRRPlace0+ebp*8],ebx
|
||||||
|
%else
|
||||||
|
add [BRRPlace0+ebp*8],ebx
|
||||||
|
%endif
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN16
|
ALIGN16
|
||||||
NEWSYM EchoStereo
|
NEWSYM EchoStereo
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov al,[ds:Voice0VolumeR+ebp]
|
||||||
|
mov ah,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
mov edx,[ds:BRRPlace0+ebp*8+3]
|
||||||
|
%else
|
||||||
mov al,[Voice0VolumeR+ebp]
|
mov al,[Voice0VolumeR+ebp]
|
||||||
mov ah,[Voice0EnvInc+ebp*4+2]
|
mov ah,[Voice0EnvInc+ebp*4+2]
|
||||||
mov edx,[BRRPlace0+ebp*8+3]
|
mov edx,[BRRPlace0+ebp*8+3]
|
||||||
|
%endif
|
||||||
mov cx,[VolumeConvTable+eax*2]
|
mov cx,[VolumeConvTable+eax*2]
|
||||||
cmp byte[UniqueSoundv],0
|
cmp byte[UniqueSoundv],0
|
||||||
je .NotNoise1b
|
je .NotNoise1b
|
||||||
@@ -4011,8 +4248,13 @@ NEWSYM EchoStereo
|
|||||||
movsx eax,ax
|
movsx eax,ax
|
||||||
add dword [DSPBuffer+esi*4],eax
|
add dword [DSPBuffer+esi*4],eax
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov al,[ds:Voice0VolumeRe+ebp]
|
||||||
|
mov ah,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
%else
|
||||||
mov al,[Voice0VolumeRe+ebp]
|
mov al,[Voice0VolumeRe+ebp]
|
||||||
mov ah,[Voice0EnvInc+ebp*4+2]
|
mov ah,[Voice0EnvInc+ebp*4+2]
|
||||||
|
%endif
|
||||||
mov cx,[VolumeConvTable+eax*2]
|
mov cx,[VolumeConvTable+eax*2]
|
||||||
mov eax,ebx
|
mov eax,ebx
|
||||||
imul cx
|
imul cx
|
||||||
@@ -4023,8 +4265,14 @@ NEWSYM EchoStereo
|
|||||||
add [EchoBuffer+esi*4],eax
|
add [EchoBuffer+esi*4],eax
|
||||||
|
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov al,[ds:Voice0VolumeL+ebp]
|
||||||
|
mov ah,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
%else
|
||||||
mov al,[Voice0VolumeL+ebp]
|
mov al,[Voice0VolumeL+ebp]
|
||||||
mov ah,[Voice0EnvInc+ebp*4+2]
|
mov ah,[Voice0EnvInc+ebp*4+2]
|
||||||
|
%endif
|
||||||
mov cx,[VolumeConvTable+eax*2]
|
mov cx,[VolumeConvTable+eax*2]
|
||||||
|
|
||||||
mov eax,ebx
|
mov eax,ebx
|
||||||
@@ -4035,8 +4283,13 @@ NEWSYM EchoStereo
|
|||||||
movsx eax,ax
|
movsx eax,ax
|
||||||
add dword [DSPBuffer+esi*4+4],eax
|
add dword [DSPBuffer+esi*4+4],eax
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov al,[ds:Voice0VolumeLe+ebp]
|
||||||
|
mov ah,[ds:Voice0EnvInc+ebp*4+2]
|
||||||
|
%else
|
||||||
mov al,[Voice0VolumeLe+ebp]
|
mov al,[Voice0VolumeLe+ebp]
|
||||||
mov ah,[Voice0EnvInc+ebp*4+2]
|
mov ah,[Voice0EnvInc+ebp*4+2]
|
||||||
|
%endif
|
||||||
mov cx,[VolumeConvTable+eax*2]
|
mov cx,[VolumeConvTable+eax*2]
|
||||||
mov eax,ebx
|
mov eax,ebx
|
||||||
|
|
||||||
@@ -4045,11 +4298,19 @@ NEWSYM EchoStereo
|
|||||||
add dl,dl
|
add dl,dl
|
||||||
or ah,dl
|
or ah,dl
|
||||||
movsx eax,ax
|
movsx eax,ax
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
mov ebx,[ds:Voice0Freq+ebp*4]
|
||||||
|
%else
|
||||||
mov ebx,[Voice0Freq+ebp*4]
|
mov ebx,[Voice0Freq+ebp*4]
|
||||||
|
%endif
|
||||||
add [EchoBuffer+esi*4+4],eax
|
add [EchoBuffer+esi*4+4],eax
|
||||||
|
|
||||||
add esi,2
|
add esi,2
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
add [ds:BRRPlace0+ebp*8],ebx
|
||||||
|
%else
|
||||||
add [BRRPlace0+ebp*8],ebx
|
add [BRRPlace0+ebp*8],ebx
|
||||||
|
%endif
|
||||||
ret
|
ret
|
||||||
|
|
||||||
%macro ProcessVoiceStuff 4
|
%macro ProcessVoiceStuff 4
|
||||||
|
|||||||
@@ -563,8 +563,9 @@ NEWSYM SBHandler16
|
|||||||
|
|
||||||
|
|
||||||
Startprocsbdata:
|
Startprocsbdata:
|
||||||
|
push ebp
|
||||||
call ProcessSoundBuffer
|
call ProcessSoundBuffer
|
||||||
|
pop ebp
|
||||||
pop es
|
pop es
|
||||||
pop esi
|
pop esi
|
||||||
pop edi
|
pop edi
|
||||||
|
|||||||
Reference in New Issue
Block a user