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
		Add a link
		
	
		Reference in a new issue