1 // license:BSD-3-Clause
2 // copyright-holders:Vas Crabb
3
4 #include "emu.h"
5 #include "audio/cheekyms.h"
6 #include "audio/nl_cheekyms.h"
7
8 #include "speaker.h"
9
10
11 DEFINE_DEVICE_TYPE(CHEEKY_MOUSE_AUDIO, cheekyms_audio_device, "cheekyms_audio", "Cheeky Mouse Sound Board")
12
13
cheekyms_audio_device(const machine_config & mconfig,const char * tag,device_t * owner,uint32_t clock)14 cheekyms_audio_device::cheekyms_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
15 : device_t(mconfig, CHEEKY_MOUSE_AUDIO, tag, owner, clock)
16 , m_mute(*this, "sound_nl:mute")
17 , m_cheese(*this, "sound_nl:cheese")
18 , m_music(*this, "sound_nl:music")
19 , m_mouse(*this, "sound_nl:mouse")
20 , m_hammer(*this, "sound_nl:hammer")
21 , m_pest(*this, "sound_nl:pest")
22 , m_mouse_dies(*this, "sound_nl:mouse_dies")
23 , m_pest_dies(*this, "sound_nl:pest_dies")
24 , m_coin_extra(*this, "sound_nl:coin_extra")
25 {
26 }
27
28
WRITE_LINE_MEMBER(cheekyms_audio_device::mute_w)29 WRITE_LINE_MEMBER(cheekyms_audio_device::mute_w) { m_mute->write_line(state); }
WRITE_LINE_MEMBER(cheekyms_audio_device::cheese_w)30 WRITE_LINE_MEMBER(cheekyms_audio_device::cheese_w) { m_cheese->write_line(state); }
WRITE_LINE_MEMBER(cheekyms_audio_device::music_w)31 WRITE_LINE_MEMBER(cheekyms_audio_device::music_w) { m_music->write_line(state); }
WRITE_LINE_MEMBER(cheekyms_audio_device::mouse_w)32 WRITE_LINE_MEMBER(cheekyms_audio_device::mouse_w) { m_mouse->write_line(state); }
WRITE_LINE_MEMBER(cheekyms_audio_device::hammer_w)33 WRITE_LINE_MEMBER(cheekyms_audio_device::hammer_w) { m_hammer->write_line(state); }
WRITE_LINE_MEMBER(cheekyms_audio_device::pest_w)34 WRITE_LINE_MEMBER(cheekyms_audio_device::pest_w) { m_pest->write_line(state); }
WRITE_LINE_MEMBER(cheekyms_audio_device::mouse_dies_w)35 WRITE_LINE_MEMBER(cheekyms_audio_device::mouse_dies_w) { m_mouse_dies->write_line(state); }
WRITE_LINE_MEMBER(cheekyms_audio_device::pest_dies_w)36 WRITE_LINE_MEMBER(cheekyms_audio_device::pest_dies_w) { m_pest_dies->write_line(state); }
WRITE_LINE_MEMBER(cheekyms_audio_device::coin_extra_w)37 WRITE_LINE_MEMBER(cheekyms_audio_device::coin_extra_w) { m_coin_extra->write_line(state); }
38
39
device_add_mconfig(machine_config & config)40 void cheekyms_audio_device::device_add_mconfig(machine_config &config)
41 {
42 SPEAKER(config, "mono").front_center();
43
44 NETLIST_SOUND(config, "sound_nl", 48000)
45 .set_source(NETLIST_NAME(cheekyms))
46 .add_route(ALL_OUTPUTS, "mono", 1.0);
47
48 NETLIST_LOGIC_INPUT(config, "sound_nl:mute", "I_MUTE.IN", 0);
49 NETLIST_LOGIC_INPUT(config, "sound_nl:cheese", "I_CHEESE.IN", 0);
50 NETLIST_LOGIC_INPUT(config, "sound_nl:music", "I_MUSIC.IN", 0);
51 NETLIST_LOGIC_INPUT(config, "sound_nl:mouse", "I_MOUSE.IN", 0);
52 NETLIST_LOGIC_INPUT(config, "sound_nl:hammer", "I_HAMMER.IN", 0);
53 NETLIST_LOGIC_INPUT(config, "sound_nl:pest", "I_PEST.IN", 0);
54 NETLIST_LOGIC_INPUT(config, "sound_nl:mouse_dies", "I_MOUSE_DIES.IN", 0);
55 NETLIST_LOGIC_INPUT(config, "sound_nl:pest_dies", "I_PEST_DIES.IN", 0);
56 NETLIST_LOGIC_INPUT(config, "sound_nl:coin_extra", "I_COIN_EXTRA.IN", 0);
57
58 NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "VR1.2").set_mult_offset(30000.0 * 10.0 / 32768.0, 0.0);
59 }
60
61
device_start()62 void cheekyms_audio_device::device_start()
63 {
64 }
65