summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/sound/swp20.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/sound/swp20.h')
-rw-r--r--src/devices/sound/swp20.h45
1 files changed, 40 insertions, 5 deletions
diff --git a/src/devices/sound/swp20.h b/src/devices/sound/swp20.h
index 7323dd64f17..9c2eeafefd6 100644
--- a/src/devices/sound/swp20.h
+++ b/src/devices/sound/swp20.h
@@ -21,14 +21,49 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
virtual void sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) override;
- virtual void rom_bank_updated() override;
private:
- u8 m_p3c_port;
- bool m_p3c_address;
+ sound_stream *m_stream;
- // Generic upload port
- void p3c_w(u8 data);
+ std::array<u8, 0x20> m_pan_l;
+ std::array<u8, 0x20> m_pan_r;
+ std::array<u16, 0x20> m_pitch;
+ std::array<u32, 0x20> m_sample_start;
+ std::array<u16, 0x20> m_sample_end;
+ std::array<u8, 0x20> m_sample_format;
+ std::array<u32, 0x20> m_sample_address;
+
+ u16 m_waverom_val;
+ u8 m_waverom_access;
+
+ u8 m_eq_port;
+ bool m_eq_address;
+ u8 m_voice;
+ u32 m_keyon;
+ u32 m_keyoff;
+
+ void voice_w(u8 data);
+
+ void pan_l_w(u8 data);
+ u8 pan_l_r();
+ void pan_r_w(u8 data);
+ u8 pan_r_r();
+ template<int sel> void pitch_w(u8 data);
+ template<int sel> u8 pitch_r();
+ template<int sel> void sample_start_w(u8 data);
+ template<int sel> u8 sample_start_r();
+ template<int sel> void sample_end_w(u8 data);
+ template<int sel> u8 sample_end_r();
+ void sample_format_w(u8 data);
+ u8 sample_format_r();
+ template<int sel> void sample_address_w(u8 data);
+ template<int sel> u8 sample_address_r();
+
+ void waverom_access_w(u8 data);
+ template<int sel> u8 waverom_val_r();
+
+ // Generic upload port, connected to the EQ on the first swp20
+ void eq_w(u8 data);
// Generic catch-all
u8 snd_r(offs_t offset);