diff options
Diffstat (limited to 'src/devices/sound/rf5c400.h')
-rw-r--r-- | src/devices/sound/rf5c400.h | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/devices/sound/rf5c400.h b/src/devices/sound/rf5c400.h index 7b5d420049b..bc380571086 100644 --- a/src/devices/sound/rf5c400.h +++ b/src/devices/sound/rf5c400.h @@ -7,6 +7,8 @@ #pragma once +#include "dirom.h" + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -15,24 +17,27 @@ // ======================> rf5c400_device class rf5c400_device : public device_t, - public device_sound_interface, - public device_rom_interface + public device_sound_interface, + public device_rom_interface<25, 1, 0, ENDIANNESS_LITTLE> { public: + static constexpr feature_type imperfect_features() { return feature::SOUND; } // unemulated and/or unverified effects and envelopes + rf5c400_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ16_MEMBER( rf5c400_r ); - DECLARE_WRITE16_MEMBER( rf5c400_w ); + uint16_t rf5c400_r(offs_t offset, uint16_t mem_mask = ~0); + void rf5c400_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); protected: // device-level overrides - virtual void device_start() override; + virtual void device_start() override ATTR_COLD; + virtual void device_clock_changed() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update(sound_stream &stream) override; // device_rom_interface overrides - virtual void rom_bank_updated() override; + virtual void rom_bank_pre_change() override; private: struct rf5c400_channel @@ -91,6 +96,7 @@ private: uint16_t m_rf5c400_status; uint32_t m_ext_mem_address; uint16_t m_ext_mem_data; + uint16_t m_req_channel; }; DECLARE_DEVICE_TYPE(RF5C400, rf5c400_device) |