Merged some Vibra16 code from Peter_S.

Implemented Opcodes 0bh, 1bh, and 2bh for the DSP1
This commit is contained in:
theoddone33
2001-04-25 19:12:26 +00:00
parent cd99fa7f21
commit 9ca8fe7cbb
3 changed files with 43 additions and 11 deletions

View File

@@ -958,31 +958,48 @@ short Op0BX;
short Op0BY;
short Op0BZ;
short Op0BS;
void DSPOp0B()
{
Op0BS=(short)Op0BX*matrixA[0][0]+Op0BY*matrixA[0][1]+Op0BZ*matrixA[0][2];
#ifdef DebugDSP1
Log_Message("OP0B X: %d Y: %d Z: %d S: %d", Op0BX,Op0BY,Op0BZ,Op0BS);
#endif
}
short Op1BX;
short Op1BY;
short Op1BZ;
short Op1BS;
void DSPOp1B()
{
Op1BS=(short)Op1BX*matrixA2[0][0]+Op1BY*matrixA2[0][1]+Op1BZ*matrixA2[0][2];
#ifdef DebugDSP1
Log_Message("OP1B X: %d Y: %d Z: %d S: %d", Op1BX,Op1BY,Op1BZ,Op1BS);
#endif
}
short Op2BX;
short Op2BY;
short Op2BZ;
short Op2BS;
void DSPOp0B()
{
}
void DSPOp1B()
{
}
void DSPOp2B()
{
Op2BS=(short)Op2BX*matrixA3[0][0]+Op2BY*matrixA3[0][1]+Op2BZ*matrixA3[0][2];
#ifdef DebugDSP1
Log_Message("OP2B X: %d Y: %d Z: %d S: %d", Op2BX,Op2BY,Op2BZ,Op2BS);
#endif
}
short Op08X,Op08Y,Op08Z,Op08Ll,Op08Lh;
void DSPOp08()
{
#ifdef DebugDSP1
Log_Message("OP08");
#endif
}
short Op18X,Op18Y,Op18Z,Op18R,Op18D;

View File

@@ -1599,6 +1599,12 @@ NEWSYM SBHDMA, db 0
NEWSYM SBHDMAPage, db 0
NEWSYM vibracard, db 0
; ViBRA16X fixes!
EXTSYM MsgCount ; points to counter
EXTSYM MessageOn ; points to "message" delay counter
EXTSYM Msgptr ; points to the message to be displayed
NEWSYM vibmsg, db 'VIBRA16X MODE ENABLED', 0
NEWSYM ResetSBDSP
mov dx,[SBPort]
add dl,06h
@@ -5063,7 +5069,10 @@ NEWSYM SBHandler16
push es
inc dword[sbhandexec]
cmp byte [vibracard], 1
je .donotcallcmdapos
call GetCDMAPos
.donotcallcmdapos
cmp byte[csounddisable],1
je near stopsbsound16
@@ -5583,6 +5592,13 @@ NEWSYM initSB
; and modified it.
.vibrafix2
; notify user that we're in ViBRA16x mode..
push eax
mov dword [Msgptr], vibmsg
mov eax, [MsgCount]
mov [MessageOn], eax
pop eax
; Set Time-Constant Data ( = 256 - (1000000/sampling rate) )
; 8000=131, 22050=210, 44100=233, 11025=165

View File

@@ -133,8 +133,7 @@ NEWSYM outofmem, db 'You don',39,'t have enough memory to run this program!',13,
NEWSYM vibradetect
db 'Creative ViBRA16X PnP card detected (support coded by Peter Santing)', 13, 10
db 'High-DMA is below dma #4', 13, 10
db 13,10, 'you have now full 16-bit stereo sound with the surround option!', 13, 10
db 13,10, 'Press any key to continue', 13, 10,0
db 13,10, 'you have now full 16-bit stereo sound with the surround option!', 13, 10, 0
NEWSYM welcome
@@ -676,7 +675,7 @@ NEWSYM getblaster
push edx
mov edx, vibradetect
call PrintStr
call WaitForKey
;call WaitForKey
pop edx
; ********** END OF ViBRA16X implementation code **********