diff options
Diffstat (limited to 'src/devices/sound/k051649.h')
-rw-r--r-- | src/devices/sound/k051649.h | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/src/devices/sound/k051649.h b/src/devices/sound/k051649.h index 368ef6c58a9..10be0f28bb5 100644 --- a/src/devices/sound/k051649.h +++ b/src/devices/sound/k051649.h @@ -19,17 +19,18 @@ public: k051649_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); void k051649_waveform_w(offs_t offset, u8 data); - u8 k051649_waveform_r(offs_t offset); + u8 k051649_waveform_r(offs_t offset); void k051649_volume_w(offs_t offset, u8 data); void k051649_frequency_w(offs_t offset, u8 data); void k051649_keyonoff_w(u8 data); void k051649_test_w(u8 data); - u8 k051649_test_r(); + u8 k051649_test_r(address_space &space); void k052539_waveform_w(offs_t offset, u8 data); - u8 k052539_waveform_r(offs_t offset); + u8 k052539_waveform_r(offs_t offset); void scc_map(address_map &map); + protected: // device-level overrides virtual void device_start() override; @@ -41,7 +42,7 @@ protected: virtual void sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) override; private: - // Parameters for a channel + // parameters for a channel struct sound_channel { sound_channel() : @@ -49,34 +50,25 @@ private: clock(0), frequency(0), volume(0), + sample(0), key(false) { std::fill(std::begin(waveram), std::end(waveram), 0); } u8 counter; // address counter for wavetable - u32 clock; // internal clock + u16 clock; // internal clock u16 frequency; // frequency; result: (input clock / (32 * (frequency + 1))) - int volume; // volume + u8 volume; // volume + s16 sample; // latched sample data bool key; // keyon/off s8 waveram[32]; // 32 byte wavetable }; - void make_mixer_table(int voices); - sound_channel m_channel_list[5]; - /* global sound parameters */ sound_stream *m_stream; - int m_rate; - - /* mixer tables and internal buffers */ - std::vector<stream_buffer::sample_t> m_mixer_table; - stream_buffer::sample_t *m_mixer_lookup; - std::vector<s16> m_mixer_buffer; - - /* chip registers */ - u8 m_test; + u8 m_test; // test register }; DECLARE_DEVICE_TYPE(K051649, k051649_device) |