From 886ff87b56e6ca4be11065acd98373ba04d774cf Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Mon, 14 Feb 2022 03:22:21 +1100 Subject: sound/st0016.cpp: Don't try copying memory access caches. --- src/devices/sound/st0016.cpp | 5 +---- src/devices/sound/st0016.h | 4 +++- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/devices/sound/st0016.cpp b/src/devices/sound/st0016.cpp index d3bae6b0ad7..39d85aed58b 100644 --- a/src/devices/sound/st0016.cpp +++ b/src/devices/sound/st0016.cpp @@ -33,6 +33,7 @@ st0016_device::st0016_device(const machine_config &mconfig, const char *tag, dev , device_memory_interface(mconfig, *this) , m_data_config("data", ENDIANNESS_LITTLE, 8, 21) // shares character RAM area? , m_stream(nullptr) + , m_voice{ m_cache, m_cache, m_cache, m_cache, m_cache, m_cache, m_cache, m_cache } { } @@ -49,10 +50,6 @@ void st0016_device::device_start() // allocate stream m_stream = stream_alloc(0, 2, clock() / 128); - // set host device to each voices - for (auto & elem : m_voice) - elem.m_host = m_cache; - save_item(STRUCT_MEMBER(m_voice, m_regs)); save_item(STRUCT_MEMBER(m_voice, m_start)); save_item(STRUCT_MEMBER(m_voice, m_end)); diff --git a/src/devices/sound/st0016.h b/src/devices/sound/st0016.h index b98c5a0b72a..c965687732e 100644 --- a/src/devices/sound/st0016.h +++ b/src/devices/sound/st0016.h @@ -35,12 +35,14 @@ protected: private: struct voice_t { + voice_t(memory_access<21, 0, 0, ENDIANNESS_LITTLE>::cache &host) : m_host(host) { } + bool update(); u8 reg_r(offs_t offset); void reg_w(offs_t offset, u8 data, int voice); - memory_access<21, 0, 0, ENDIANNESS_LITTLE>::cache m_host; // host device + memory_access<21, 0, 0, ENDIANNESS_LITTLE>::cache &m_host; // host device u8 m_regs[0x20] = {0}; // 32 registers per voices u32 m_start = 0; // Start position u32 m_end = 0; // End position -- cgit v1.2.3