diff options
Diffstat (limited to 'src/devices/sound/dspv.h')
-rw-r--r-- | src/devices/sound/dspv.h | 46 |
1 files changed, 25 insertions, 21 deletions
diff --git a/src/devices/sound/dspv.h b/src/devices/sound/dspv.h index 8081ccda691..ec6dab50c46 100644 --- a/src/devices/sound/dspv.h +++ b/src/devices/sound/dspv.h @@ -3,8 +3,8 @@ // Yamaha DSPV, dsp used for acoustic simulation -#ifndef DEVICES_SOUND_DSPV_H -#define DEVICES_SOUND_DSPV_H +#ifndef MAME_SOUND_DSPV_H +#define MAME_SOUND_DSPV_H #pragma once @@ -15,42 +15,45 @@ class dspv_device : public cpu_device, public device_sound_interface public: dspv_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 22579200); - void map(address_map &map); + void map(address_map &map) ATTR_COLD; protected: - virtual void device_start() override; - virtual void device_reset() override; - virtual uint32_t execute_min_cycles() const override; - virtual uint32_t execute_max_cycles() const override; - virtual uint32_t execute_input_lines() const override; + virtual void device_start() override ATTR_COLD; + virtual void device_reset() override ATTR_COLD; + virtual uint32_t execute_min_cycles() const noexcept override; + virtual uint32_t execute_max_cycles() const noexcept override; virtual void execute_run() override; virtual space_config_vector memory_space_config() const override; virtual void state_import(const device_state_entry &entry) override; virtual void state_export(const device_state_entry &entry) override; virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; virtual std::unique_ptr<util::disasm_interface> create_disassembler() override; - 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; private: - address_space_config m_program_config, m_data_config; - address_space *m_program, *m_data; + address_space_config m_prg1_config, m_prg2_config, m_data_config; + address_space *m_data; + + required_shared_ptr<u64> m_prg1, m_prg2; + + std::array<u16, 0x20> m_buffer; u32 m_pc; int m_icount; - u32 m_table_adr; - u16 m_prg_adr; + u32 m_data_adr; u16 m_status; - // Table ram access - void table_adrh_w(u16 data); - void table_adrl_w(u16 data); - void table_data_w(u16 data); - void table_zero_w(u16 data); + // Data ram access + void data_adrh_w(u16 data); + void data_adrl_w(u16 data); + void data_data_w(u16 data); + void data_zero_w(u16 data); // Program ram access void prg_adr_w(u16 data); void prg_data_w(offs_t offset, u16 data); + u16 prg_data_r(offs_t offset); // Registers u16 status_r(); @@ -59,10 +62,11 @@ private: u16 snd_r(offs_t offset); void snd_w(offs_t offset, u16 data); - void prg_map(address_map &map); - void data_map(address_map &map); + void prg1_map(address_map &map) ATTR_COLD; + void prg2_map(address_map &map) ATTR_COLD; + void data_map(address_map &map) ATTR_COLD; }; DECLARE_DEVICE_TYPE(DSPV, dspv_device) -#endif +#endif // MAME_SOUND_DSPV_H |