diff options
Diffstat (limited to 'src/mame/audio/wswan.h')
-rw-r--r-- | src/mame/audio/wswan.h | 70 |
1 files changed, 31 insertions, 39 deletions
diff --git a/src/mame/audio/wswan.h b/src/mame/audio/wswan.h index f21ad6adbc5..4029d0f23a1 100644 --- a/src/mame/audio/wswan.h +++ b/src/mame/audio/wswan.h @@ -1,11 +1,5 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -/***************************************************************************** - * - * includes/wswan.h - * - ****************************************************************************/ - #ifndef MAME_AUDIO_WSWAN_H #define MAME_AUDIO_WSWAN_H @@ -21,12 +15,13 @@ class wswan_sound_device : public device_t, public device_sound_interface, - public device_rom_interface<14> + public device_rom_interface<14,1> { public: - wswan_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + wswan_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - void port_w(offs_t offset, uint8_t data); + void port_w(offs_t offset, u16 data, u16 mem_mask); + u16 port_r(offs_t offset, u16 mem_mask); protected: struct CHAN @@ -41,14 +36,14 @@ protected: offset(0), signal(0) { } - uint16_t freq; /* frequency */ - uint16_t period; /* period */ - uint32_t pos; /* position */ - uint8_t vol_left; /* volume left */ - uint8_t vol_right; /* volume right */ - uint8_t on; /* on/off */ - uint8_t offset; /* sample offset */ - uint8_t signal; /* signal */ + u16 freq; + u16 period; + u32 pos; + u8 vol_left; + u8 vol_right; + u8 on; + u8 offset; + u8 signal; }; // device-level overrides @@ -62,31 +57,28 @@ protected: virtual void sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) override; private: - void wswan_ch_set_freq( CHAN *ch, uint16_t freq ); int fetch_sample(int channel, int offset); sound_stream *m_channel; - CHAN m_audio1; /* Audio channel 1 */ - CHAN m_audio2; /* Audio channel 2 */ - CHAN m_audio3; /* Audio channel 3 */ - CHAN m_audio4; /* Audio channel 4 */ - int8_t m_sweep_step; /* Sweep step */ - uint32_t m_sweep_time; /* Sweep time */ - uint32_t m_sweep_count; /* Sweep counter */ - uint8_t m_noise_type; /* Noise generator type */ - uint8_t m_noise_reset; /* Noise reset */ - uint8_t m_noise_enable; /* Noise enable */ - uint8_t m_noise_output; /* Noise output */ - uint16_t m_sample_address; /* Sample address */ - uint8_t m_audio2_voice; /* Audio 2 voice */ - uint8_t m_audio3_sweep; /* Audio 3 sweep */ - uint8_t m_audio4_noise; /* Audio 4 noise */ - uint8_t m_mono; /* mono */ - uint8_t m_output_volume; /* output volume */ - uint8_t m_external_stereo; /* external stereo */ - uint8_t m_external_speaker; /* external speaker */ - uint16_t m_noise_shift; /* Noise counter shift register */ - uint8_t m_master_volume; /* Master volume */ + CHAN m_audio[4]; + s8 m_sweep_step; + u32 m_sweep_time; + u32 m_sweep_count; + u8 m_noise_type; + u8 m_noise_reset; + u8 m_noise_enable; + u8 m_noise_output; + u16 m_sample_address; + u8 m_audio2_voice; + u8 m_audio3_sweep; + u8 m_audio4_noise; + u8 m_mono; + u8 m_output_volume; + u8 m_external_stereo; + u8 m_external_speaker; + u16 m_noise_shift; + u8 m_master_volume; + u8 m_system_volume; }; DECLARE_DEVICE_TYPE(WSWAN_SND, wswan_sound_device) |