summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/sound/dspv.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/sound/dspv.h')
-rw-r--r--src/devices/sound/dspv.h46
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