summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/audio/wswan.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/audio/wswan.h')
-rw-r--r--src/mame/audio/wswan.h70
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)