summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/isa/sblaster.cpp
diff options
context:
space:
mode:
author Angelo Salese <angelosa@users.noreply.github.com>2023-07-25 00:53:21 +0200
committer GitHub <noreply@github.com>2023-07-24 18:53:21 -0400
commitd7551fdb6938afaf3ebe79e2576b3646937cd7d8 (patch)
tree56f85b0363bfdd3477a7e334b1234e659c0c1fe9 /src/devices/bus/isa/sblaster.cpp
parent0b243c358bd12ab2469ee09cde3cf641c8cea763 (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.cpp7
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