Setting SB input rate sets output rate, fixes Fasttracker II. Clear incomplete DSP command at reset, fixes Romancing Prince.
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@3926
This commit is contained in:
parent
acd7b73c8a
commit
b9cb003a62
1 changed files with 3 additions and 3 deletions
|
@ -699,6 +699,7 @@ static void DSP_Reset(void) {
|
|||
|
||||
DSP_ChangeMode(MODE_NONE);
|
||||
DSP_FlushData();
|
||||
sb.dsp.cmd=DSP_NO_COMMAND;
|
||||
sb.dsp.cmd_len=0;
|
||||
sb.dsp.in.pos=0;
|
||||
sb.dsp.write_busy=0;
|
||||
|
@ -858,12 +859,11 @@ static void DSP_DoCommand(void) {
|
|||
DSP_ChangeRate(1000000 / (256 - sb.dsp.in.data[0]));
|
||||
break;
|
||||
case 0x41: /* Set Output Samplerate */
|
||||
case 0x42: /* Set Input Samplerate */
|
||||
/* Note: 0x42 is handled like 0x41, needed by Fasttracker II */
|
||||
DSP_SB16_ONLY;
|
||||
DSP_ChangeRate((sb.dsp.in.data[0] << 8) | sb.dsp.in.data[1]);
|
||||
break;
|
||||
case 0x42: /* Set Input Samplerate */
|
||||
LOG(LOG_SB,LOG_ERROR)("DSP:Unimplemented input sample rate command");
|
||||
break;
|
||||
case 0x48: /* Set DMA Block Size */
|
||||
DSP_SB2_ABOVE;
|
||||
//TODO Maybe check limit for new irq?
|
||||
|
|
Loading…
Add table
Reference in a new issue