1
0
Fork 0

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:
ripsaw8080 2015-08-05 14:40:51 +00:00
parent acd7b73c8a
commit b9cb003a62

View file

@ -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?