diff options
Diffstat (limited to 'src/devices/sound/segapcm.cpp')
-rw-r--r-- | src/devices/sound/segapcm.cpp | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/src/devices/sound/segapcm.cpp b/src/devices/sound/segapcm.cpp index 86fdedfb206..919726a26c4 100644 --- a/src/devices/sound/segapcm.cpp +++ b/src/devices/sound/segapcm.cpp @@ -7,6 +7,7 @@ #include "emu.h" #include "segapcm.h" +#include <algorithm> // device type definition DEFINE_DEVICE_TYPE(SEGAPCM, segapcm_device, "segapcm", "Sega PCM") @@ -17,14 +18,13 @@ DEFINE_DEVICE_TYPE(SEGAPCM, segapcm_device, "segapcm", "Sega PCM") //------------------------------------------------- segapcm_device::segapcm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEGAPCM, tag, owner, clock), - device_sound_interface(mconfig, *this), - device_rom_interface(mconfig, *this, 21), - m_ram(nullptr), - m_bank(0), - m_bankshift(0), - m_bankmask(0), - m_stream(nullptr) + : device_t(mconfig, SEGAPCM, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , device_rom_interface(mconfig, *this, 21) + , m_ram(nullptr) + , m_bankshift(12) + , m_bankmask(0x70) + , m_stream(nullptr) { } @@ -35,18 +35,9 @@ segapcm_device::segapcm_device(const machine_config &mconfig, const char *tag, d void segapcm_device::device_start() { - int mask; - m_ram = std::make_unique<uint8_t[]>(0x800); - memset(m_ram.get(), 0xff, 0x800); - - m_bankshift = (uint8_t) m_bank; - mask = m_bank >> 16; - if (!mask) - mask = BANK_MASK7 >> 16; - - m_bankmask = mask & (0x1fffff >> m_bankshift); + std::fill(&m_ram[0], &m_ram[0x800], 0xff); m_stream = stream_alloc(0, 2, clock() / 128); @@ -55,6 +46,16 @@ void segapcm_device::device_start() } +//------------------------------------------------- +// device_clock_changed - called if the clock +// changes +//------------------------------------------------- + +void segapcm_device::device_clock_changed() +{ + m_stream->set_sample_rate(clock() / 128); +} + //------------------------------------------------- // rom_bank_updated - the rom bank has changed |