summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/sound
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2016-01-18 12:49:58 +0100
committer hap <happppp@users.noreply.github.com>2016-01-18 12:49:58 +0100
commit5f851c7a81e87b5a40849418cf24d6a1e515f349 (patch)
treeef58b6c7b681738524b9fcfad7a91d944fef810c /src/devices/sound
parent9d9e116dd6f32d5cb572b6ab2db1ac14978c36a2 (diff)
fidelz80: added VCC language latch/bank
Diffstat (limited to 'src/devices/sound')
-rw-r--r--src/devices/sound/s14001a.cpp11
-rw-r--r--src/devices/sound/s14001a.h1
2 files changed, 9 insertions, 3 deletions
diff --git a/src/devices/sound/s14001a.cpp b/src/devices/sound/s14001a.cpp
index 9684ccdccb3..4100a9c3dcc 100644
--- a/src/devices/sound/s14001a.cpp
+++ b/src/devices/sound/s14001a.cpp
@@ -521,7 +521,7 @@ void s14001a_device::s14001a_clock() /* called once per clock */
UINT8 s14001a_device::readmem(UINT16 offset)
{
offset &= 0xfff; // 11-bit internal
- return ((m_ext_read_handler.isnull()) ? m_ext_read_handler(offset) : m_SpeechRom[offset]);
+ return ((m_ext_read_handler.isnull()) ? m_SpeechRom[offset & (m_SpeechRom.bytes() - 1)] : m_ext_read_handler(offset));
}
@@ -529,6 +529,11 @@ UINT8 s14001a_device::readmem(UINT16 offset)
MAME glue code
**************************************************************************/
+void s14001a_device::force_update()
+{
+ m_stream->update();
+}
+
int s14001a_device::bsy_r()
{
m_stream->update();
@@ -594,8 +599,8 @@ void s14001a_device::device_start()
m_stream = machine().sound().stream_alloc(*this, 0, 1, clock() ? clock() : machine().sample_rate());
// resolve callbacks
- m_ext_read_handler.resolve_safe(0);
- m_bsy_handler.resolve_safe();
+ m_ext_read_handler.resolve();
+ m_bsy_handler.resolve();
save_item(NAME(m_WordInput));
save_item(NAME(m_LatchedWord));
diff --git a/src/devices/sound/s14001a.h b/src/devices/sound/s14001a.h
index c9ce1680318..3ade4bb0d1e 100644
--- a/src/devices/sound/s14001a.h
+++ b/src/devices/sound/s14001a.h
@@ -31,6 +31,7 @@ public:
void rst_w(int data); /* write to RESET pin */
void set_clock(int clock); /* set VSU-1000 clock */
void set_volume(int volume); /* set VSU-1000 volume control */
+ void force_update();
protected:
// device-level overrides