Tweaked SB DSP write data ready timing. Fixes SB16 detection on Windows 98.

This commit is contained in:
SarahW 2018-04-05 20:54:50 +01:00
commit 8ce9832c16

View file

@ -734,11 +734,11 @@ uint8_t sb_read(uint16_t a, void *priv)
// pclog("SB read %02X\n",sbreaddat); // pclog("SB read %02X\n",sbreaddat);
return dsp->sbreaddat; return dsp->sbreaddat;
case 0xC: /*Write data ready*/ case 0xC: /*Write data ready*/
if (dsp->sb_8_enable || dsp->sb_type >= SB16 ) if (dsp->sb_8_enable || dsp->sb_type >= SB16)
dsp->busy_count = (dsp->busy_count + 1) & 15; dsp->busy_count = (dsp->busy_count + 1) & 3;
else else
dsp->busy_count = 0; dsp->busy_count = 0;
if (dsp->wb_full || (dsp->busy_count & 8)) if (dsp->wb_full || (dsp->busy_count & 2))
{ {
dsp->wb_full = dsp->wb_time; dsp->wb_full = dsp->wb_time;
return 0xff; return 0xff;