diff options
author | 2023-07-25 00:53:21 +0200 | |
---|---|---|
committer | 2023-07-24 18:53:21 -0400 | |
commit | d7551fdb6938afaf3ebe79e2576b3646937cd7d8 (patch) | |
tree | 56f85b0363bfdd3477a7e334b1234e659c0c1fe9 /src/devices/bus/isa/sblaster.cpp | |
parent | 0b243c358bd12ab2469ee09cde3cf641c8cea763 (diff) |
isa/sblaster.cpp: add 8-bit DMA continue command (#11441)
* fix missing sounds in sideline and jagdead at least, fix teardown hang in sideline
Diffstat (limited to 'src/devices/bus/isa/sblaster.cpp')
-rw-r--r-- | src/devices/bus/isa/sblaster.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/devices/bus/isa/sblaster.cpp b/src/devices/bus/isa/sblaster.cpp index 33905e05da3..a8f06fab809 100644 --- a/src/devices/bus/isa/sblaster.cpp +++ b/src/devices/bus/isa/sblaster.cpp @@ -69,7 +69,7 @@ static const int m_cmd_fifo_length[256] = -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /* Ax */ 4, -1, 4, -1, 4, -1, 4, -1, 4, -1, -1, -1, -1, -1, 4, -1, /* Bx */ 4, -1, 4, -1, 4, -1, 4, -1, 4, -1, -1, -1, -1, -1, 4, -1, /* Cx */ - 1, 1, -1, 1, -1, 1, 1, -1, 1, 1, 1, -1, -1, -1, -1, -1, /* Dx */ + 1, 1, -1, 1, 1, 1, 1, -1, 1, 1, 1, -1, -1, -1, -1, -1, /* Dx */ 2, 1, 2, 1, 2, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, /* Ex */ -1, -1, 1, -1, -1, -1, -1, -1, 1, -1, -1, -1, 1, -1, -1, -1 /* Fx */ }; @@ -569,13 +569,16 @@ void sb_device::process_fifo(uint8_t cmd) case 0x42: // set input sample rate m_dsp.adc_freq = m_dsp.fifo[2] + (m_dsp.fifo[1] << 8); break; + case 0xd4: // continue 8-bit dma + drq_w(1); + break; case 0xd5: // pause 16-bit dma m_timer->adjust(attotime::never, 0); drq16_w(0); // drop DRQ m_dsp.dma_throttled = false; m_dsp.dma_timer_started = false; break; - case 0xd6: // resume 16-bit dma + case 0xd6: // continue 16-bit dma logerror("SB: 16-bit dma resume\n"); break; case 0xd9: // stop 16-bit autoinit |