From 561311477307cd5807566e5cf966d2be276a6b19 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Wed, 24 May 2017 16:41:34 +0200 Subject: [PATCH] finished updating mame/audio devices to use device_add_mconfig insted of device_mconfig_additions (nw) --- src/mame/audio/gottlieb.cpp | 165 ++++++++++++------------------ src/mame/audio/gottlieb.h | 16 +-- src/mame/audio/harddriv.cpp | 16 +-- src/mame/audio/irem.cpp | 59 +++-------- src/mame/audio/irem.h | 37 +++---- src/mame/audio/leland.cpp | 27 +---- src/mame/audio/leland.h | 19 ++-- src/mame/audio/midway.cpp | 92 ++++------------- src/mame/audio/midway.h | 50 ++++----- src/mame/audio/namco52.cpp | 17 +-- src/mame/audio/namco52.h | 2 +- src/mame/audio/namco54.cpp | 17 +-- src/mame/audio/namco54.h | 2 +- src/mame/audio/rax.cpp | 55 ++++------ src/mame/audio/rax.h | 13 +-- src/mame/audio/s11c_bg.cpp | 7 +- src/mame/audio/s11c_bg.h | 12 ++- src/mame/audio/segam1audio.cpp | 28 ++--- src/mame/audio/segam1audio.h | 7 +- src/mame/audio/segasnd.cpp | 21 +--- src/mame/audio/segasnd.h | 14 +-- src/mame/audio/t5182.cpp | 14 +-- src/mame/audio/t5182.h | 2 +- src/mame/audio/taito_en.cpp | 21 +--- src/mame/audio/taito_en.h | 10 +- src/mame/audio/vicdual-97271p.cpp | 30 ++---- src/mame/audio/vicdual-97271p.h | 4 +- src/mame/audio/williams.cpp | 46 ++------- src/mame/audio/williams.h | 22 ++-- src/mame/audio/wpcsnd.cpp | 6 +- src/mame/audio/wpcsnd.h | 5 +- src/mame/drivers/cedar_magnet.cpp | 21 ++-- src/mame/includes/harddriv.h | 5 +- 33 files changed, 316 insertions(+), 546 deletions(-) diff --git a/src/mame/audio/gottlieb.cpp b/src/mame/audio/gottlieb.cpp index c55cccd02cd..75bea4376c3 100644 --- a/src/mame/audio/gottlieb.cpp +++ b/src/mame/audio/gottlieb.cpp @@ -85,27 +85,6 @@ static ADDRESS_MAP_START( gottlieb_sound_r0_map, AS_PROGRAM, 8, gottlieb_sound_r ADDRESS_MAP_END -//------------------------------------------------- -// machine configuration -//------------------------------------------------- - -MACHINE_CONFIG_START( gottlieb_sound_r0 ) - // audio CPU - MCFG_CPU_ADD("audiocpu", M6502, SOUND1_CLOCK/4) // M6503 - clock is a gate, a resistor and a capacitor. Freq unknown. - MCFG_CPU_PROGRAM_MAP(gottlieb_sound_r0_map) - - // I/O configuration - MCFG_DEVICE_ADD("r6530", MOS6530, SOUND1_CLOCK/4) // unknown - same as cpu - MCFG_MOS6530_OUT_PA_CB(DEVWRITE8("dac", dac_byte_interface, write)) - MCFG_MOS6530_IN_PB_CB(READ8(gottlieb_sound_r0_device, r6530b_r)) - - // sound devices - MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.25) // unknown DAC - MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) - MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT) -MACHINE_CONFIG_END - - //------------------------------------------------- // input ports //------------------------------------------------- @@ -126,14 +105,24 @@ INPUT_CHANGED_MEMBER( gottlieb_sound_r0_device::audio_nmi ) //------------------------------------------------- -// device_mconfig_additions - return a pointer to -// the device's machine fragment +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor gottlieb_sound_r0_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( gottlieb_sound_r0 ); -} +MACHINE_CONFIG_MEMBER( gottlieb_sound_r0_device::device_add_mconfig ) + // audio CPU + MCFG_CPU_ADD("audiocpu", M6502, SOUND1_CLOCK/4) // M6503 - clock is a gate, a resistor and a capacitor. Freq unknown. + MCFG_CPU_PROGRAM_MAP(gottlieb_sound_r0_map) + + // I/O configuration + MCFG_DEVICE_ADD("r6530", MOS6530, SOUND1_CLOCK/4) // unknown - same as cpu + MCFG_MOS6530_OUT_PA_CB(DEVWRITE8("dac", dac_byte_interface, write)) + MCFG_MOS6530_IN_PB_CB(READ8(gottlieb_sound_r0_device, r6530b_r)) + + // sound devices + MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.25) // unknown DAC + MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) + MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT) +MACHINE_CONFIG_END //------------------------------------------------- @@ -288,37 +277,6 @@ static ADDRESS_MAP_START( gottlieb_sound_r1_map, AS_PROGRAM, 8, gottlieb_sound_r ADDRESS_MAP_END -//------------------------------------------------- -// machine configuration -//------------------------------------------------- - -MACHINE_CONFIG_START( gottlieb_sound_r1 ) - // audio CPU - MCFG_CPU_ADD("audiocpu", M6502, SOUND1_CLOCK/4) // the board can be set to /2 as well - MCFG_CPU_PROGRAM_MAP(gottlieb_sound_r1_map) - - // I/O configuration - MCFG_DEVICE_ADD("riot", RIOT6532, SOUND1_CLOCK/4) - MCFG_RIOT6532_IN_PB_CB(IOPORT("SB1")) - MCFG_RIOT6532_OUT_PB_CB(WRITE8(gottlieb_sound_r1_device, r6532_portb_w)) - MCFG_RIOT6532_IRQ_CB(WRITELINE(gottlieb_sound_r1_device, snd_interrupt)) - - // sound devices - MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.25) // unknown DAC - MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) - MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( gottlieb_sound_r1_with_votrax ) - MCFG_FRAGMENT_ADD(gottlieb_sound_r1) - - // add the VOTRAX - MCFG_DEVICE_ADD("votrax", VOTRAX_SC01, 720000) - MCFG_VOTRAX_SC01_REQUEST_CB(DEVWRITELINE(DEVICE_SELF, gottlieb_sound_r1_device, votrax_request)) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.5) -MACHINE_CONFIG_END - - //------------------------------------------------- // input ports //------------------------------------------------- @@ -345,14 +303,25 @@ INPUT_PORTS_END //------------------------------------------------- -// device_mconfig_additions - return a pointer to -// the device's machine fragment +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor gottlieb_sound_r1_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( gottlieb_sound_r1 ); -} +MACHINE_CONFIG_MEMBER( gottlieb_sound_r1_device::device_add_mconfig ) + // audio CPU + MCFG_CPU_ADD("audiocpu", M6502, SOUND1_CLOCK/4) // the board can be set to /2 as well + MCFG_CPU_PROGRAM_MAP(gottlieb_sound_r1_map) + + // I/O configuration + MCFG_DEVICE_ADD("riot", RIOT6532, SOUND1_CLOCK/4) + MCFG_RIOT6532_IN_PB_CB(IOPORT("SB1")) + MCFG_RIOT6532_OUT_PB_CB(WRITE8(gottlieb_sound_r1_device, r6532_portb_w)) + MCFG_RIOT6532_IRQ_CB(WRITELINE(gottlieb_sound_r1_device, snd_interrupt)) + + // sound devices + MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.25) // unknown DAC + MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) + MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT) +MACHINE_CONFIG_END //------------------------------------------------- @@ -392,14 +361,17 @@ gottlieb_sound_r1_with_votrax_device::gottlieb_sound_r1_with_votrax_device(const //------------------------------------------------- -// device_mconfig_additions - return a pointer to -// the device's machine fragment +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor gottlieb_sound_r1_with_votrax_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( gottlieb_sound_r1_with_votrax ); -} +MACHINE_CONFIG_MEMBER( gottlieb_sound_r1_with_votrax_device::device_add_mconfig ) + gottlieb_sound_r1_device::device_add_mconfig(config); + + // add the VOTRAX + MCFG_DEVICE_ADD("votrax", VOTRAX_SC01, 720000) + MCFG_VOTRAX_SC01_REQUEST_CB(DEVWRITELINE(DEVICE_SELF, gottlieb_sound_r1_device, votrax_request)) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.5) +MACHINE_CONFIG_END //------------------------------------------------- @@ -670,10 +642,29 @@ ADDRESS_MAP_END //------------------------------------------------- -// machine configuration +// input ports //------------------------------------------------- -MACHINE_CONFIG_START( gottlieb_sound_r2 ) +INPUT_PORTS_START( gottlieb_sound_r2 ) + PORT_START("SB2") + PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SB2:1") + PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SB2:2") + PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SB2:3") + PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SB2:4") + PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SB2:5") + PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SB2:6") + PORT_DIPNAME( 0x40, 0x40, "Sound Test" ) PORT_DIPLOCATION("SB2:7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, gottlieb_sound_r2_device, speech_drq_custom_r, nullptr) +INPUT_PORTS_END + + +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( gottlieb_sound_r2_device::device_add_mconfig ) // audio CPUs MCFG_CPU_ADD("audiocpu", M6502, SOUND2_CLOCK/4) MCFG_CPU_PROGRAM_MAP(gottlieb_sound_r2_map) @@ -699,36 +690,6 @@ MACHINE_CONFIG_START( gottlieb_sound_r2 ) MACHINE_CONFIG_END -//------------------------------------------------- -// input ports -//------------------------------------------------- - -INPUT_PORTS_START( gottlieb_sound_r2 ) - PORT_START("SB2") - PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SB2:1") - PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SB2:2") - PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SB2:3") - PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SB2:4") - PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SB2:5") - PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SB2:6") - PORT_DIPNAME( 0x40, 0x40, "Sound Test" ) PORT_DIPLOCATION("SB2:7") - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, gottlieb_sound_r2_device, speech_drq_custom_r, nullptr) -INPUT_PORTS_END - - -//------------------------------------------------- -// device_mconfig_additions - return a pointer to -// the device's machine fragment -//------------------------------------------------- - -machine_config_constructor gottlieb_sound_r2_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( gottlieb_sound_r2 ); -} - - //------------------------------------------------- // device_input_ports - return a pointer to // the device's I/O ports diff --git a/src/mame/audio/gottlieb.h b/src/mame/audio/gottlieb.h index f8b49933c18..53442656997 100644 --- a/src/mame/audio/gottlieb.h +++ b/src/mame/audio/gottlieb.h @@ -50,12 +50,11 @@ public: DECLARE_WRITE8_MEMBER( write ); // internal communications - DECLARE_READ8_MEMBER( r6530b_r ); DECLARE_INPUT_CHANGED_MEMBER(audio_nmi); protected: // device-level overrides - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; virtual ioport_constructor device_input_ports() const override; virtual void device_start() override; @@ -65,6 +64,8 @@ private: required_device m_r6530; uint8_t m_sndcmd; + + DECLARE_READ8_MEMBER( r6530b_r ); }; // ======================> gottlieb_sound_r1_device @@ -80,8 +81,6 @@ public: DECLARE_WRITE8_MEMBER( write ); // internal communications - DECLARE_WRITE_LINE_MEMBER( snd_interrupt ); - DECLARE_WRITE8_MEMBER( r6532_portb_w ); DECLARE_WRITE8_MEMBER( votrax_data_w ); DECLARE_WRITE8_MEMBER( speech_clock_dac_w ); DECLARE_WRITE_LINE_MEMBER( votrax_request ); @@ -95,7 +94,7 @@ protected: uint32_t clock); // device-level overrides - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; virtual ioport_constructor device_input_ports() const override; virtual void device_start() override; @@ -108,6 +107,9 @@ private: // internal state //bool m_populate_votrax; uint8_t m_last_speech_clock; + + DECLARE_WRITE_LINE_MEMBER( snd_interrupt ); + DECLARE_WRITE8_MEMBER( r6532_portb_w ); }; // fully populated rev 1 sound board @@ -119,7 +121,7 @@ public: protected: // device-level overrides - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; virtual ioport_constructor device_input_ports() const override; }; @@ -151,7 +153,7 @@ public: protected: // device-level overrides - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; virtual ioport_constructor device_input_ports() const override; virtual void device_start() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; diff --git a/src/mame/audio/harddriv.cpp b/src/mame/audio/harddriv.cpp index 59fa633ac97..a08faa0fce8 100644 --- a/src/mame/audio/harddriv.cpp +++ b/src/mame/audio/harddriv.cpp @@ -423,7 +423,11 @@ static ADDRESS_MAP_START( driversnd_dsp_io_map, AS_IO, 16, harddriv_sound_board_ ADDRESS_MAP_END -static MACHINE_CONFIG_START( harddriv_snd ) +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( harddriv_sound_board_device::device_add_mconfig ) /* basic machine hardware */ MCFG_CPU_ADD("soundcpu", M68000, XTAL_16MHz/2) @@ -442,13 +446,3 @@ static MACHINE_CONFIG_START( harddriv_snd ) MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT) MACHINE_CONFIG_END - -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor harddriv_sound_board_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( harddriv_snd ); -} diff --git a/src/mame/audio/irem.cpp b/src/mame/audio/irem.cpp index 32e86ccf5a6..df53d80cdc6 100644 --- a/src/mame/audio/irem.cpp +++ b/src/mame/audio/irem.cpp @@ -23,8 +23,11 @@ irem_audio_device::irem_audio_device(const machine_config &mconfig, device_type , m_port1(0) , m_port2(0) , m_soundlatch(0) - //, m_ay_45L(*this, "ay_45l") - //, m_ay_45M(*this, "ay_45m") + , m_cpu(*this, "iremsound") + , m_ay_45L(*this, "ay_45l") + , m_ay_45M(*this, "ay_45m") + , m_adpcm1(*this, "msm1") + , m_adpcm2(*this, "msm2") , m_audio_BD(*this, "snd_nl:ibd") , m_audio_SD(*this, "snd_nl:isd") , m_audio_OH(*this, "snd_nl:ioh") @@ -53,11 +56,6 @@ m52_large_audio_device::m52_large_audio_device(const machine_config &mconfig, co void irem_audio_device::device_start() { - m_adpcm1 = subdevice("msm1"); - m_adpcm2 = subdevice("msm2"); - m_ay_45L = subdevice("ay_45l"); - m_ay_45M = subdevice("ay_45m"); - m_audio_SINH = subdevice("snd_nl:sinh"); save_item(NAME(m_port1)); @@ -74,12 +72,12 @@ void irem_audio_device::device_reset() if (m_adpcm2) m_adpcm2->reset(); m_ay_45L->reset(); m_ay_45M->reset(); - subdevice("iremsound")->reset(); + m_cpu->reset(); m_port1 = 0; // ? m_port2 = 0; // ? m_soundlatch = 0; - subdevice("iremsound")->execute().set_input_line(0, ASSERT_LINE); + m_cpu->set_input_line(0, ASSERT_LINE); } /************************************* @@ -93,7 +91,7 @@ WRITE8_MEMBER( irem_audio_device::cmd_w ) { m_soundlatch = data; if ((data & 0x80) == 0) - subdevice("iremsound")->execute().set_input_line(0, ASSERT_LINE); + m_cpu->set_input_line(0, ASSERT_LINE); } @@ -226,7 +224,7 @@ WRITE8_MEMBER( irem_audio_device::ay8910_45L_porta_w ) WRITE8_MEMBER( irem_audio_device::sound_irq_ack_w ) { if ((m_soundlatch & 0x80) != 0) - subdevice("iremsound")->execute().set_input_line(0, CLEAR_LINE); + m_cpu->set_input_line(0, CLEAR_LINE); } @@ -261,7 +259,7 @@ WRITE8_MEMBER( irem_audio_device::m62_adpcm_w ) void irem_audio_device::adpcm_int(int st) { - subdevice("iremsound")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); + m_cpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); /* the first MSM5205 clocks the second */ if (m_adpcm2 != nullptr) @@ -423,16 +421,15 @@ ADDRESS_MAP_END * */ -/************************************* - * - * Machine drivers - * - *************************************/ +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- -static MACHINE_CONFIG_START( irem_audio_base ) +MACHINE_CONFIG_MEMBER( m62_audio_device::device_add_mconfig ) /* basic machine hardware */ MCFG_CPU_ADD("iremsound", M6803, XTAL_3_579545MHz) /* verified on pcb */ + MCFG_CPU_PROGRAM_MAP(m62_sound_map) MCFG_CPU_IO_MAP(irem_sound_portmap) /* sound hardware */ @@ -497,7 +494,7 @@ static MACHINE_CONFIG_START( irem_audio_base ) MACHINE_CONFIG_END -MACHINE_CONFIG_START( m52_sound_c_audio ) +MACHINE_CONFIG_MEMBER( m52_soundc_audio_device::device_add_mconfig ) /* basic machine hardware */ MCFG_CPU_ADD("iremsound", M6803, XTAL_3_579545MHz) /* verified on pcb */ @@ -531,7 +528,7 @@ MACHINE_CONFIG_START( m52_sound_c_audio ) MACHINE_CONFIG_END -MACHINE_CONFIG_START( m52_large_audio) /* 10 yard fight */ +MACHINE_CONFIG_MEMBER( m52_large_audio_device::device_add_mconfig ) /* 10 yard fight */ /* basic machine hardware */ MCFG_CPU_ADD("iremsound", M6803, XTAL_3_579545MHz) /* verified on pcb */ @@ -565,25 +562,3 @@ MACHINE_CONFIG_START( m52_large_audio) /* 10 yard fight */ MACHINE_CONFIG_END - -MACHINE_CONFIG_DERIVED( m62_audio, irem_audio_base ) - - /* basic machine hardware */ - MCFG_CPU_MODIFY("iremsound") - MCFG_CPU_PROGRAM_MAP(m62_sound_map) -MACHINE_CONFIG_END - -machine_config_constructor m62_audio_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( m62_audio ); -} - -machine_config_constructor m52_soundc_audio_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( m52_sound_c_audio ); -} - -machine_config_constructor m52_large_audio_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( m52_large_audio ); -} diff --git a/src/mame/audio/irem.h b/src/mame/audio/irem.h index 756f3355d22..657176ab1ea 100644 --- a/src/mame/audio/irem.h +++ b/src/mame/audio/irem.h @@ -14,21 +14,21 @@ class irem_audio_device : public device_t { public: DECLARE_WRITE8_MEMBER( cmd_w ); - DECLARE_READ8_MEMBER( soundlatch_r ); DECLARE_WRITE8_MEMBER( m6803_port1_w ); DECLARE_WRITE8_MEMBER( m6803_port2_w ); DECLARE_READ8_MEMBER( m6803_port1_r ); DECLARE_READ8_MEMBER( m6803_port2_r ); - DECLARE_WRITE8_MEMBER( ay8910_45M_portb_w ); - DECLARE_WRITE8_MEMBER( ay8910_45L_porta_w ); DECLARE_WRITE8_MEMBER( sound_irq_ack_w ); DECLARE_WRITE8_MEMBER( m52_adpcm_w ); DECLARE_WRITE8_MEMBER( m62_adpcm_w ); - void adpcm_int(int st); - netlist_mame_logic_input_device * m_audio_SINH; + DECLARE_READ8_MEMBER( soundlatch_r ); + DECLARE_WRITE8_MEMBER( ay8910_45M_portb_w ); + DECLARE_WRITE8_MEMBER( ay8910_45L_porta_w ); + void adpcm_int(int st); + protected: irem_audio_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); @@ -42,14 +42,12 @@ private: uint8_t m_port2; uint8_t m_soundlatch; - /* FIXME: using required / optional device would be better */ - // required_device m_ay_45L; - // required_device m_ay_45M; - ay8910_device *m_ay_45L; - ay8910_device *m_ay_45M; - msm5205_device *m_adpcm1; - msm5205_device *m_adpcm2; + required_device m_cpu; + required_device m_ay_45L; + required_device m_ay_45M; + required_device m_adpcm1; + optional_device m_adpcm2; optional_device m_audio_BD; optional_device m_audio_SD; optional_device m_audio_OH; @@ -60,26 +58,29 @@ class m62_audio_device : public irem_audio_device { public: m62_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual machine_config_constructor device_mconfig_additions() const override; + +protected: + virtual void device_add_mconfig(machine_config &config) override; }; class m52_soundc_audio_device : public irem_audio_device { public: m52_soundc_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual machine_config_constructor device_mconfig_additions() const override; + +protected: + virtual void device_add_mconfig(machine_config &config) override; }; class m52_large_audio_device : public irem_audio_device { public: m52_large_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual machine_config_constructor device_mconfig_additions() const override; + +protected: + virtual void device_add_mconfig(machine_config &config) override; }; -//MACHINE_CONFIG_EXTERN( m52_sound_c_audio ); -//MACHINE_CONFIG_EXTERN( m52_large_audio ); -//MACHINE_CONFIG_EXTERN( m62_audio ); DECLARE_DEVICE_TYPE(IREM_M62_AUDIO, m62_audio_device) DECLARE_DEVICE_TYPE(IREM_M52_SOUNDC_AUDIO, m52_soundc_audio_device) diff --git a/src/mame/audio/leland.cpp b/src/mame/audio/leland.cpp index 93e4c95512d..43719f7161a 100644 --- a/src/mame/audio/leland.cpp +++ b/src/mame/audio/leland.cpp @@ -133,7 +133,7 @@ WRITE_LINE_MEMBER(leland_80186_sound_device::i80186_tmr1_w) set_clock_line(7, state); } -static MACHINE_CONFIG_START( leland_80186_sound ) +MACHINE_CONFIG_MEMBER( leland_80186_sound_device::device_add_mconfig ) MCFG_SPEAKER_STANDARD_MONO("speaker") MCFG_SOUND_ADD("dac1", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // 74hc374.u31 + ad7524.u46 MCFG_SOUND_ADD("dac2", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // 74hc374.u32 + ad7524.u47 @@ -174,7 +174,7 @@ static MACHINE_CONFIG_START( leland_80186_sound ) MCFG_PIT8253_OUT2_HANDLER(WRITELINE(leland_80186_sound_device, pit1_2_w)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( redline_80186_sound ) +MACHINE_CONFIG_MEMBER( redline_80186_sound_device::device_add_mconfig ) MCFG_SPEAKER_STANDARD_MONO("speaker") MCFG_SOUND_ADD("dac1", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // unknown DAC MCFG_SOUND_ADD("dac2", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // unknown DAC @@ -224,7 +224,7 @@ static MACHINE_CONFIG_START( redline_80186_sound ) MCFG_PIT8253_CLK2(7000000) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ataxx_80186_sound ) +MACHINE_CONFIG_MEMBER( ataxx_80186_sound_device::device_add_mconfig ) MCFG_SPEAKER_STANDARD_MONO("speaker") MCFG_SOUND_ADD("dac1", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // unknown DAC MCFG_SOUND_ADD("dac2", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // unknown DAC @@ -251,7 +251,7 @@ static MACHINE_CONFIG_START( ataxx_80186_sound ) MCFG_PIT8253_OUT2_HANDLER(WRITELINE(leland_80186_sound_device, pit0_2_w)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( wsf_80186_sound ) +MACHINE_CONFIG_MEMBER( wsf_80186_sound_device::device_add_mconfig ) MCFG_SPEAKER_STANDARD_MONO("speaker") MCFG_SOUND_ADD("dac1", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // unknown DAC MCFG_SOUND_ADD("dac2", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // unknown DAC @@ -283,25 +283,6 @@ static MACHINE_CONFIG_START( wsf_80186_sound ) MCFG_PIT8253_OUT2_HANDLER(WRITELINE(leland_80186_sound_device, pit0_2_w)) MACHINE_CONFIG_END -machine_config_constructor leland_80186_sound_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( leland_80186_sound ); -} - -machine_config_constructor redline_80186_sound_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( redline_80186_sound ); -} - -machine_config_constructor ataxx_80186_sound_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( ataxx_80186_sound ); -} - -machine_config_constructor wsf_80186_sound_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( wsf_80186_sound ); -} /************************************* * diff --git a/src/mame/audio/leland.h b/src/mame/audio/leland.h index 1ffea93257c..f53122d13bb 100644 --- a/src/mame/audio/leland.h +++ b/src/mame/audio/leland.h @@ -20,7 +20,6 @@ class leland_80186_sound_device : public device_t { public: leland_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual machine_config_constructor device_mconfig_additions() const override; DECLARE_WRITE16_MEMBER(peripheral_ctrl); DECLARE_WRITE8_MEMBER(leland_80186_control_w); @@ -32,12 +31,13 @@ public: DECLARE_READ8_MEMBER(leland_80186_response_r); DECLARE_WRITE16_MEMBER(dac_w); DECLARE_WRITE16_MEMBER(ataxx_dac_control); + DECLARE_WRITE_LINE_MEMBER(i80186_tmr0_w); + DECLARE_WRITE_LINE_MEMBER(i80186_tmr1_w); + DECLARE_WRITE_LINE_MEMBER(pit0_2_w); DECLARE_WRITE_LINE_MEMBER(pit1_0_w); DECLARE_WRITE_LINE_MEMBER(pit1_1_w); DECLARE_WRITE_LINE_MEMBER(pit1_2_w); - DECLARE_WRITE_LINE_MEMBER(i80186_tmr0_w); - DECLARE_WRITE_LINE_MEMBER(i80186_tmr1_w); protected: leland_80186_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); @@ -45,6 +45,7 @@ protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_add_mconfig(machine_config &config) override; int m_type; enum { @@ -102,7 +103,9 @@ class redline_80186_sound_device : public leland_80186_sound_device public: redline_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_WRITE16_MEMBER(redline_dac_w); - virtual machine_config_constructor device_mconfig_additions() const override; + +protected: + virtual void device_add_mconfig(machine_config &config) override; }; @@ -110,7 +113,9 @@ class ataxx_80186_sound_device : public leland_80186_sound_device { public: ataxx_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual machine_config_constructor device_mconfig_additions() const override; + +protected: + virtual void device_add_mconfig(machine_config &config) override; }; @@ -118,7 +123,9 @@ class wsf_80186_sound_device : public leland_80186_sound_device { public: wsf_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual machine_config_constructor device_mconfig_additions() const override; + +protected: + virtual void device_add_mconfig(machine_config &config) override; }; diff --git a/src/mame/audio/midway.cpp b/src/mame/audio/midway.cpp index 8fda34e8d0d..4752e177c72 100644 --- a/src/mame/audio/midway.cpp +++ b/src/mame/audio/midway.cpp @@ -372,31 +372,6 @@ static ADDRESS_MAP_START( ssio_map, AS_PROGRAM, 8, midway_ssio_device ) ADDRESS_MAP_END -//------------------------------------------------- -// machine configuration -//------------------------------------------------- - -static MACHINE_CONFIG_START( midway_ssio ) - MCFG_CPU_ADD("cpu", Z80, SSIO_CLOCK/2/4) - MCFG_CPU_PROGRAM_MAP(ssio_map) - MCFG_DEVICE_PERIODIC_INT_DEVICE(DEVICE_SELF, midway_ssio_device, clock_14024, SSIO_CLOCK/2/16/10) - - MCFG_SOUND_ADD("ay0", AY8910, SSIO_CLOCK/2/4) - - - MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(midway_ssio_device, porta0_w)) - MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(midway_ssio_device, portb0_w)) - MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.33, 0) - - MCFG_SOUND_ADD("ay1", AY8910, SSIO_CLOCK/2/4) - - - MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(midway_ssio_device, porta1_w)) - MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(midway_ssio_device, portb1_w)) - MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.33, 1) -MACHINE_CONFIG_END - - //------------------------------------------------- // ROM definitions //------------------------------------------------- @@ -419,14 +394,24 @@ const tiny_rom_entry *midway_ssio_device::device_rom_region() const //------------------------------------------------- -// device_mconfig_additions - return a pointer to -// the device's machine fragment +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor midway_ssio_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( midway_ssio ); -} +MACHINE_CONFIG_MEMBER( midway_ssio_device::device_add_mconfig ) + MCFG_CPU_ADD("cpu", Z80, SSIO_CLOCK/2/4) + MCFG_CPU_PROGRAM_MAP(ssio_map) + MCFG_DEVICE_PERIODIC_INT_DEVICE(DEVICE_SELF, midway_ssio_device, clock_14024, SSIO_CLOCK/2/16/10) + + MCFG_SOUND_ADD("ay0", AY8910, SSIO_CLOCK/2/4) + MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(midway_ssio_device, porta0_w)) + MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(midway_ssio_device, portb0_w)) + MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.33, 0) + + MCFG_SOUND_ADD("ay1", AY8910, SSIO_CLOCK/2/4) + MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(midway_ssio_device, porta1_w)) + MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(midway_ssio_device, portb1_w)) + MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.33, 1) +MACHINE_CONFIG_END //------------------------------------------------- @@ -586,10 +571,10 @@ ADDRESS_MAP_END //------------------------------------------------- -// machine configuration +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START(midway_sounds_good) +MACHINE_CONFIG_MEMBER(midway_sounds_good_device::device_add_mconfig) MCFG_CPU_ADD("cpu", M68000, SOUNDSGOOD_CLOCK/2) MCFG_CPU_PROGRAM_MAP(soundsgood_map) @@ -605,17 +590,6 @@ static MACHINE_CONFIG_START(midway_sounds_good) MACHINE_CONFIG_END -//------------------------------------------------- -// device_mconfig_additions - return a pointer to -// the device's machine fragment -//------------------------------------------------- - -machine_config_constructor midway_sounds_good_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( midway_sounds_good ); -} - - //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- @@ -751,10 +725,10 @@ ADDRESS_MAP_END //------------------------------------------------- -// machine configuration +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START(midway_turbo_cheap_squeak) +MACHINE_CONFIG_MEMBER(midway_turbo_cheap_squeak_device::device_add_mconfig) MCFG_CPU_ADD("cpu", M6809E, TURBOCS_CLOCK) MCFG_CPU_PROGRAM_MAP(turbocs_map) @@ -770,17 +744,6 @@ static MACHINE_CONFIG_START(midway_turbo_cheap_squeak) MACHINE_CONFIG_END -//------------------------------------------------- -// device_mconfig_additions - return a pointer to -// the device's machine fragment -//------------------------------------------------- - -machine_config_constructor midway_turbo_cheap_squeak_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( midway_turbo_cheap_squeak ); -} - - //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- @@ -964,10 +927,10 @@ ADDRESS_MAP_END //------------------------------------------------- -// machine configuration +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START(midway_squawk_n_talk) +MACHINE_CONFIG_MEMBER(midway_squawk_n_talk_device::device_add_mconfig) MCFG_CPU_ADD("cpu", M6802, SQUAWKTALK_CLOCK) MCFG_CPU_PROGRAM_MAP(squawkntalk_map) @@ -991,17 +954,6 @@ static MACHINE_CONFIG_START(midway_squawk_n_talk) MACHINE_CONFIG_END -//------------------------------------------------- -// device_mconfig_additions - return a pointer to -// the device's machine fragment -//------------------------------------------------- - -machine_config_constructor midway_squawk_n_talk_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( midway_squawk_n_talk ); -} - - //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- diff --git a/src/mame/audio/midway.h b/src/mame/audio/midway.h index 891bb75e2eb..a7a867d6a25 100644 --- a/src/mame/audio/midway.h +++ b/src/mame/audio/midway.h @@ -59,19 +59,14 @@ public: void set_custom_output(int which, uint8_t mask, write8_delegate handler); // internal communications - INTERRUPT_GEN_MEMBER(clock_14024); DECLARE_READ8_MEMBER(irq_clear); DECLARE_WRITE8_MEMBER(status_w); DECLARE_READ8_MEMBER(data_r); - DECLARE_WRITE8_MEMBER(porta0_w); - DECLARE_WRITE8_MEMBER(portb0_w); - DECLARE_WRITE8_MEMBER(porta1_w); - DECLARE_WRITE8_MEMBER(portb1_w); protected: // device-level overrides virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; virtual ioport_constructor device_input_ports() const override; virtual void device_start() override; virtual void device_reset() override; @@ -104,6 +99,13 @@ private: read8_delegate m_custom_input[5]; uint8_t m_custom_output_mask[2]; write8_delegate m_custom_output[2]; + + INTERRUPT_GEN_MEMBER(clock_14024); + DECLARE_WRITE8_MEMBER(porta0_w); + DECLARE_WRITE8_MEMBER(portb0_w); + DECLARE_WRITE8_MEMBER(porta1_w); + DECLARE_WRITE8_MEMBER(portb1_w); + }; @@ -121,14 +123,9 @@ public: DECLARE_WRITE8_MEMBER(write); DECLARE_WRITE_LINE_MEMBER(reset_write); - // internal communications - DECLARE_WRITE8_MEMBER(porta_w); - DECLARE_WRITE8_MEMBER(portb_w); - DECLARE_WRITE_LINE_MEMBER(irq_w); - protected: // device-level overrides - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; @@ -142,6 +139,11 @@ private: // internal state uint8_t m_status; uint16_t m_dacval; + + // internal communications + DECLARE_WRITE8_MEMBER(porta_w); + DECLARE_WRITE8_MEMBER(portb_w); + DECLARE_WRITE_LINE_MEMBER(irq_w); }; @@ -159,14 +161,9 @@ public: DECLARE_WRITE8_MEMBER(write); DECLARE_WRITE_LINE_MEMBER(reset_write); - // internal communications - DECLARE_WRITE8_MEMBER(porta_w); - DECLARE_WRITE8_MEMBER(portb_w); - DECLARE_WRITE_LINE_MEMBER(irq_w); - protected: // device-level overrides - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; @@ -180,6 +177,11 @@ private: // internal state uint8_t m_status; uint16_t m_dacval; + + // internal communications + DECLARE_WRITE8_MEMBER(porta_w); + DECLARE_WRITE8_MEMBER(portb_w); + DECLARE_WRITE_LINE_MEMBER(irq_w); }; @@ -197,15 +199,11 @@ public: DECLARE_WRITE_LINE_MEMBER(reset_write); // internal communications - DECLARE_WRITE8_MEMBER(porta1_w); DECLARE_WRITE8_MEMBER(dac_w); - DECLARE_WRITE8_MEMBER(porta2_w); - DECLARE_WRITE8_MEMBER(portb2_w); - DECLARE_WRITE_LINE_MEMBER(irq_w); protected: // device-level overrides - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; @@ -220,6 +218,12 @@ private: // internal state uint8_t m_tms_command; uint8_t m_tms_strobes; + + // internal communications + DECLARE_WRITE8_MEMBER(porta1_w); + DECLARE_WRITE8_MEMBER(porta2_w); + DECLARE_WRITE8_MEMBER(portb2_w); + DECLARE_WRITE_LINE_MEMBER(irq_w); }; diff --git a/src/mame/audio/namco52.cpp b/src/mame/audio/namco52.cpp index a79bcc7f51e..60b6707efa0 100644 --- a/src/mame/audio/namco52.cpp +++ b/src/mame/audio/namco52.cpp @@ -145,12 +145,6 @@ static ADDRESS_MAP_START( namco_52xx_map_io, AS_IO, 8, namco_52xx_device ) ADDRESS_MAP_END -static MACHINE_CONFIG_START( namco_52xx ) - MCFG_CPU_ADD("mcu", MB8843, DERIVED_CLOCK(1,1)) /* parent clock, internally divided by 6 */ - MCFG_CPU_IO_MAP(namco_52xx_map_io) -MACHINE_CONFIG_END - - ROM_START( namco_52xx ) ROM_REGION( 0x400, "mcu", 0 ) ROM_LOAD( "52xx.bin", 0x0000, 0x0400, CRC(3257d11e) SHA1(4883b2fdbc99eb7b9906357fcc53915842c2c186) ) @@ -191,14 +185,13 @@ void namco_52xx_device::device_start() } //------------------------------------------------- -// device_mconfig_additions - return a pointer to -// the device's machine fragment +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor namco_52xx_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( namco_52xx ); -} +MACHINE_CONFIG_MEMBER( namco_52xx_device::device_add_mconfig ) + MCFG_CPU_ADD("mcu", MB8843, DERIVED_CLOCK(1,1)) /* parent clock, internally divided by 6 */ + MCFG_CPU_IO_MAP(namco_52xx_map_io) +MACHINE_CONFIG_END //------------------------------------------------- // device_rom_region - return a pointer to the diff --git a/src/mame/audio/namco52.h b/src/mame/audio/namco52.h index 6fb1c0b59a6..d29bfa9e70f 100644 --- a/src/mame/audio/namco52.h +++ b/src/mame/audio/namco52.h @@ -51,7 +51,7 @@ protected: // device-level overrides virtual void device_start() override; virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; TIMER_CALLBACK_MEMBER( latch_callback ); TIMER_CALLBACK_MEMBER( irq_clear ); diff --git a/src/mame/audio/namco54.cpp b/src/mame/audio/namco54.cpp index 1f485fc0f45..d406d24db3e 100644 --- a/src/mame/audio/namco54.cpp +++ b/src/mame/audio/namco54.cpp @@ -117,12 +117,6 @@ static ADDRESS_MAP_START( namco_54xx_map_io, AS_IO, 8, namco_54xx_device ) ADDRESS_MAP_END -static MACHINE_CONFIG_START( namco_54xx ) - MCFG_CPU_ADD("mcu", MB8844, DERIVED_CLOCK(1,1)) /* parent clock, internally divided by 6 */ - MCFG_CPU_IO_MAP(namco_54xx_map_io) -MACHINE_CONFIG_END - - ROM_START( namco_54xx ) ROM_REGION( 0x400, "mcu", 0 ) ROM_LOAD( "54xx.bin", 0x0000, 0x0400, CRC(ee7357e0) SHA1(01bdf984a49e8d0cc8761b2cc162fd6434d5afbe) ) @@ -147,14 +141,13 @@ void namco_54xx_device::device_start() } //------------------------------------------------- -// device_mconfig_additions - return a pointer to -// the device's machine fragment +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor namco_54xx_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( namco_54xx ); -} +MACHINE_CONFIG_MEMBER( namco_54xx_device::device_add_mconfig ) + MCFG_CPU_ADD("mcu", MB8844, DERIVED_CLOCK(1,1)) /* parent clock, internally divided by 6 */ + MCFG_CPU_IO_MAP(namco_54xx_map_io) +MACHINE_CONFIG_END //------------------------------------------------- // device_rom_region - return a pointer to the diff --git a/src/mame/audio/namco54.h b/src/mame/audio/namco54.h index 383e5983920..8fb5fe58362 100644 --- a/src/mame/audio/namco54.h +++ b/src/mame/audio/namco54.h @@ -35,7 +35,7 @@ protected: // device-level overrides virtual void device_start() override; virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; TIMER_CALLBACK_MEMBER( latch_callback ); TIMER_CALLBACK_MEMBER( irq_clear ); diff --git a/src/mame/audio/rax.cpp b/src/mame/audio/rax.cpp index 1837bac6346..8964b0c62d6 100644 --- a/src/mame/audio/rax.cpp +++ b/src/mame/audio/rax.cpp @@ -464,13 +464,28 @@ WRITE32_MEMBER(acclaim_rax_device::dmovlay_callback) } -/************************************* - * - * Machine Driver - * - *************************************/ +DEFINE_DEVICE_TYPE(ACCLAIM_RAX, acclaim_rax_device, "rax_audio", "Acclaim RAX") -MACHINE_CONFIG_START( rax ) +//------------------------------------------------- +// acclaim_rax_device - constructor +//------------------------------------------------- + +acclaim_rax_device::acclaim_rax_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, ACCLAIM_RAX, tag, owner, clock) + , m_cpu(*this, "adsp") + , m_adsp_pram(*this, "adsp_pram") + , m_adsp_data_bank(*this, "databank") + , m_data_in(*this, "data_in") + , m_data_out(*this, "data_out") +{ + +} + +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( acclaim_rax_device::device_add_mconfig ) MCFG_CPU_ADD("adsp", ADSP2181, XTAL_16_67MHz) MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(acclaim_rax_device, adsp_sound_tx_callback)) /* callback for serial transmit */ MCFG_ADSP21XX_DMOVLAY_CB(WRITE32(acclaim_rax_device, dmovlay_callback)) // callback for adsp 2181 dmovlay instruction @@ -493,31 +508,3 @@ MACHINE_CONFIG_START( rax ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_CONFIG_END - -DEFINE_DEVICE_TYPE(ACCLAIM_RAX, acclaim_rax_device, "rax_audio", "Acclaim RAX") - -//------------------------------------------------- -// acclaim_rax_device - constructor -//------------------------------------------------- - -acclaim_rax_device::acclaim_rax_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ACCLAIM_RAX, tag, owner, clock) - , m_cpu(*this, "adsp") - , m_adsp_pram(*this, "adsp_pram") - , m_adsp_data_bank(*this, "databank") - , m_data_in(*this, "data_in") - , m_data_out(*this, "data_out") -{ - -} - -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor acclaim_rax_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( rax ); -} - diff --git a/src/mame/audio/rax.h b/src/mame/audio/rax.h index 16af77fd944..34a7bc906fb 100644 --- a/src/mame/audio/rax.h +++ b/src/mame/audio/rax.h @@ -36,18 +36,13 @@ public: void adsp_irq(int which); void recompute_sample_rate(int which); - WRITE32_MEMBER(adsp_sound_tx_callback); - - TIMER_DEVICE_CALLBACK_MEMBER(adsp_irq0); - TIMER_DEVICE_CALLBACK_MEMBER(sport0_irq); - WRITE32_MEMBER(dmovlay_callback); TIMER_DEVICE_CALLBACK_MEMBER( dma_timer_callback ); protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; private: required_device m_cpu; @@ -88,6 +83,12 @@ private: required_device m_data_out; timer_device *m_dma_timer; + + WRITE32_MEMBER(adsp_sound_tx_callback); + + TIMER_DEVICE_CALLBACK_MEMBER(adsp_irq0); + TIMER_DEVICE_CALLBACK_MEMBER(sport0_irq); + WRITE32_MEMBER(dmovlay_callback); }; // device type definition diff --git a/src/mame/audio/s11c_bg.cpp b/src/mame/audio/s11c_bg.cpp index 66a82fb0b9d..c75a1b25dea 100644 --- a/src/mame/audio/s11c_bg.cpp +++ b/src/mame/audio/s11c_bg.cpp @@ -62,7 +62,7 @@ void s11c_bg_device::data_w(uint8_t data) m_pia40->portb_w(data); } -MACHINE_CONFIG_START( s11c_bg ) +MACHINE_CONFIG_MEMBER( s11c_bg_device::device_add_mconfig ) MCFG_CPU_ADD("bgcpu", M6809E, XTAL_8MHz) // MC68B09E (note: schematics show this as 8mhz/2, but games crash very quickly with that speed?) MCFG_CPU_PROGRAM_MAP(s11c_bg_map) MCFG_QUANTUM_TIME(attotime::from_hz(50)) @@ -87,11 +87,6 @@ MACHINE_CONFIG_START( s11c_bg ) MCFG_PIA_IRQB_HANDLER(INPUTLINE("bgcpu", INPUT_LINE_NMI)) MACHINE_CONFIG_END -machine_config_constructor s11c_bg_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( s11c_bg ); -} - void s11c_bg_device::device_start() { } diff --git a/src/mame/audio/s11c_bg.h b/src/mame/audio/s11c_bg.h index 723837c2fe7..c607eb04b5f 100644 --- a/src/mame/audio/s11c_bg.h +++ b/src/mame/audio/s11c_bg.h @@ -35,13 +35,10 @@ public: required_memory_bank m_cpubank; memory_region* m_rom; - DECLARE_WRITE8_MEMBER(pia40_pb_w); - DECLARE_WRITE_LINE_MEMBER(pia40_ca2_w); - DECLARE_WRITE_LINE_MEMBER(pia40_cb2_w); + DECLARE_WRITE8_MEMBER(bg_speech_clock_w); DECLARE_WRITE8_MEMBER(bg_speech_digit_w); DECLARE_WRITE8_MEMBER(bgbank_w); - DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w); void ctrl_w(uint8_t data); void data_w(uint8_t data); @@ -51,10 +48,15 @@ protected: // overrides virtual void device_start() override; virtual void device_reset() override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; private: const char* m_regiontag; + + DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w); + DECLARE_WRITE8_MEMBER(pia40_pb_w); + DECLARE_WRITE_LINE_MEMBER(pia40_ca2_w); + DECLARE_WRITE_LINE_MEMBER(pia40_cb2_w); }; DECLARE_DEVICE_TYPE(S11C_BG, s11c_bg_device) diff --git a/src/mame/audio/segam1audio.cpp b/src/mame/audio/segam1audio.cpp index ac92d1c7d8b..0926b080195 100644 --- a/src/mame/audio/segam1audio.cpp +++ b/src/mame/audio/segam1audio.cpp @@ -42,7 +42,17 @@ static ADDRESS_MAP_START( mpcm2_map, AS_0, 8, segam1audio_device ) AM_RANGE(0x000000, 0x3fffff) AM_ROM AM_REGION(":m1pcm2", 0) ADDRESS_MAP_END -MACHINE_CONFIG_START( segam1audio ) +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +DEFINE_DEVICE_TYPE(SEGAM1AUDIO, segam1audio_device, "segam1audio", "Sega Model 1 Sound Board") + +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( segam1audio_device::device_add_mconfig ) MCFG_CPU_ADD(M68000_TAG, M68000, 10000000) // verified on real h/w MCFG_CPU_PROGRAM_MAP(segam1audio_map) @@ -71,22 +81,6 @@ MACHINE_CONFIG_START( segam1audio ) MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE(UART_TAG, i8251_device, write_rxc)) MACHINE_CONFIG_END -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - -DEFINE_DEVICE_TYPE(SEGAM1AUDIO, segam1audio_device, "segam1audio", "Sega Model 1 Sound Board") - -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor segam1audio_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( segam1audio ); -} - //************************************************************************** // LIVE DEVICE //************************************************************************** diff --git a/src/mame/audio/segam1audio.h b/src/mame/audio/segam1audio.h index d6f2ea3620a..2776fd09ee5 100644 --- a/src/mame/audio/segam1audio.h +++ b/src/mame/audio/segam1audio.h @@ -31,9 +31,6 @@ public: // construction/destruction segam1audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - // static configuration template static devcb_base &set_rxd_handler(device_t &device, Object &&cb) { return downcast(device).m_rxd_handler.set_callback(std::forward(cb)); } @@ -41,12 +38,12 @@ public: DECLARE_WRITE16_MEMBER(m1_snd_mpcm_bnk2_w); DECLARE_WRITE_LINE_MEMBER(write_txd); - DECLARE_WRITE_LINE_MEMBER(output_txd); protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_add_mconfig(machine_config &config) override; private: required_device m_audiocpu; @@ -56,6 +53,8 @@ private: required_device m_uart; devcb_write_line m_rxd_handler; + + DECLARE_WRITE_LINE_MEMBER(output_txd); }; diff --git a/src/mame/audio/segasnd.cpp b/src/mame/audio/segasnd.cpp index 4ffc88c0ac4..9b7e2abc372 100644 --- a/src/mame/audio/segasnd.cpp +++ b/src/mame/audio/segasnd.cpp @@ -853,13 +853,11 @@ static ADDRESS_MAP_START( usb_portmap, AS_IO, 8, usb_sound_device ) ADDRESS_MAP_END -/************************************* - * - * USB machine drivers - * - *************************************/ +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- -MACHINE_CONFIG_START( segausb ) +MACHINE_CONFIG_MEMBER( usb_sound_device::device_add_mconfig ) /* CPU for the usb board */ MCFG_CPU_ADD("ourcpu", I8035, USB_MASTER_CLOCK) /* divide by 15 in CPU */ @@ -873,10 +871,6 @@ MACHINE_CONFIG_START( segausb ) MCFG_TIMER_DRIVER_ADD_PERIODIC("usb_timer", usb_sound_device, increment_t1_clock_timer_cb, attotime::from_hz(USB_2MHZ_CLOCK / 256)) MACHINE_CONFIG_END -machine_config_constructor usb_sound_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( segausb ); -} DEFINE_DEVICE_TYPE(SEGAUSBROM, usb_rom_sound_device, "segausbrom", "Sega Universal Sound Board with ROM") @@ -889,7 +883,7 @@ static ADDRESS_MAP_START( usb_map_rom, AS_PROGRAM, 8, usb_sound_device ) AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION(":usbcpu", 0) ADDRESS_MAP_END -MACHINE_CONFIG_START( segausb_rom ) +MACHINE_CONFIG_MEMBER( usb_rom_sound_device::device_add_mconfig ) /* CPU for the usb board */ MCFG_CPU_ADD("ourcpu", I8035, USB_MASTER_CLOCK) /* divide by 15 in CPU */ @@ -898,8 +892,3 @@ MACHINE_CONFIG_START( segausb_rom ) MCFG_TIMER_DRIVER_ADD_PERIODIC("usb_timer", usb_sound_device, increment_t1_clock_timer_cb, attotime::from_hz(USB_2MHZ_CLOCK / 256)) MACHINE_CONFIG_END - -machine_config_constructor usb_rom_sound_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( segausb_rom ); -} diff --git a/src/mame/audio/segasnd.h b/src/mame/audio/segasnd.h index 70781658466..595a9a9293a 100644 --- a/src/mame/audio/segasnd.h +++ b/src/mame/audio/segasnd.h @@ -64,11 +64,6 @@ public: DECLARE_READ8_MEMBER( ram_r ); DECLARE_WRITE8_MEMBER( ram_w ); - DECLARE_READ8_MEMBER( p1_r ); - DECLARE_WRITE8_MEMBER( p1_w ); - DECLARE_WRITE8_MEMBER( p2_w ); - DECLARE_READ_LINE_MEMBER( t1_r ); - DECLARE_READ8_MEMBER( workram_r ); DECLARE_WRITE8_MEMBER( workram_w ); @@ -78,7 +73,7 @@ protected: usb_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); // device-level overrides - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; virtual void device_start() override; virtual void device_reset() override; @@ -155,6 +150,11 @@ private: TIMER_CALLBACK_MEMBER( delayed_usb_data_w ); void timer_w(int which, u8 offset, u8 data); void env_w(int which, u8 offset, u8 data); + + DECLARE_READ8_MEMBER( p1_r ); + DECLARE_WRITE8_MEMBER( p1_w ); + DECLARE_WRITE8_MEMBER( p2_w ); + DECLARE_READ_LINE_MEMBER( t1_r ); }; DECLARE_DEVICE_TYPE(SEGAUSB, usb_sound_device) @@ -167,7 +167,7 @@ public: protected: // device-level overrides - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; }; DECLARE_DEVICE_TYPE(SEGAUSBROM, usb_rom_sound_device) diff --git a/src/mame/audio/t5182.cpp b/src/mame/audio/t5182.cpp index ab1e5f4ee77..e4bfd20ec10 100644 --- a/src/mame/audio/t5182.cpp +++ b/src/mame/audio/t5182.cpp @@ -366,22 +366,12 @@ ADDRESS_MAP_END //------------------------------------------------- -// MACHINE_CONFIG_START( t5182 ) +// device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START( t5182 ) +MACHINE_CONFIG_MEMBER( t5182_device::device_add_mconfig ) MCFG_CPU_ADD("t5182_z80", Z80, T5182_CLOCK) MCFG_CPU_PROGRAM_MAP(t5182_map) MCFG_CPU_IO_MAP(t5182_io) MACHINE_CONFIG_END - -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor t5182_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( t5182 ); -} diff --git a/src/mame/audio/t5182.h b/src/mame/audio/t5182.h index e4f8ab4533e..d4d8f341f59 100644 --- a/src/mame/audio/t5182.h +++ b/src/mame/audio/t5182.h @@ -48,7 +48,7 @@ protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual const tiny_rom_entry *device_rom_region() const override; virtual ioport_constructor device_input_ports() const override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; private: // internal state diff --git a/src/mame/audio/taito_en.cpp b/src/mame/audio/taito_en.cpp index 5a32174a117..0988cb60b8a 100644 --- a/src/mame/audio/taito_en.cpp +++ b/src/mame/audio/taito_en.cpp @@ -287,13 +287,12 @@ WRITE_LINE_MEMBER(taito_en_device::duart_irq_handler) IP5: 1MHz */ -/************************************* - * - * Machine driver - * - *************************************/ -MACHINE_CONFIG_START( taito_en_sound ) +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( taito_en_device::device_add_mconfig ) /* basic machine hardware */ MCFG_CPU_ADD("audiocpu", M68000, XTAL_30_4761MHz / 2) @@ -315,13 +314,3 @@ MACHINE_CONFIG_START( taito_en_sound ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.08) MCFG_SOUND_ROUTE(1, "rspeaker", 0.08) MACHINE_CONFIG_END - -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor taito_en_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( taito_en_sound ); -} diff --git a/src/mame/audio/taito_en.h b/src/mame/audio/taito_en.h index 5504dc248a5..0fe2d50dee6 100644 --- a/src/mame/audio/taito_en.h +++ b/src/mame/audio/taito_en.h @@ -30,15 +30,11 @@ public: DECLARE_READ16_MEMBER( es5510_dsp_r ); DECLARE_WRITE16_MEMBER( es5510_dsp_w ); - DECLARE_WRITE_LINE_MEMBER(duart_irq_handler); - - DECLARE_WRITE8_MEMBER(mb87078_gain_changed); - protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; private: // inherited devices/pointers @@ -57,6 +53,10 @@ private: uint32_t m_es5510_dadr_latch; uint32_t m_es5510_gpr_latch; uint8_t m_es5510_ram_sel; + + DECLARE_WRITE_LINE_MEMBER(duart_irq_handler); + + DECLARE_WRITE8_MEMBER(mb87078_gain_changed); }; DECLARE_DEVICE_TYPE(TAITO_EN, taito_en_device) diff --git a/src/mame/audio/vicdual-97271p.cpp b/src/mame/audio/vicdual-97271p.cpp index 356c8685a03..30be9ebe9e8 100644 --- a/src/mame/audio/vicdual-97271p.cpp +++ b/src/mame/audio/vicdual-97271p.cpp @@ -68,20 +68,6 @@ enum }; -//************************************************************************** -// MACHINE FRAGMENTS -//************************************************************************** - -static MACHINE_CONFIG_START( nsub_audio ) - MCFG_SPEAKER_STANDARD_MONO("mono") - - /* samples */ - MCFG_SOUND_ADD("samples", SAMPLES, 0) - MCFG_SAMPLES_CHANNELS(13) - MCFG_SAMPLES_NAMES(nsub_sample_names) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) -MACHINE_CONFIG_END - //************************************************************************** // LIVE DEVICE //************************************************************************** @@ -97,14 +83,18 @@ s97271p_device::s97271p_device(const machine_config &mconfig, const char *tag, d } //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor s97271p_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( nsub_audio ); -} +MACHINE_CONFIG_MEMBER( s97271p_device::device_add_mconfig ) + MCFG_SPEAKER_STANDARD_MONO("mono") + + /* samples */ + MCFG_SOUND_ADD("samples", SAMPLES, 0) + MCFG_SAMPLES_CHANNELS(13) + MCFG_SAMPLES_NAMES(nsub_sample_names) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) +MACHINE_CONFIG_END //------------------------------------------------- // device_start - device-specific startup diff --git a/src/mame/audio/vicdual-97271p.h b/src/mame/audio/vicdual-97271p.h index 78bce842084..7f849c26866 100644 --- a/src/mame/audio/vicdual-97271p.h +++ b/src/mame/audio/vicdual-97271p.h @@ -20,9 +20,6 @@ public: // construction/destruction s97271p_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - // daughterboard logic void port_w(uint8_t data); @@ -30,6 +27,7 @@ protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_add_mconfig(machine_config &config) override; private: required_device m_samples; diff --git a/src/mame/audio/williams.cpp b/src/mame/audio/williams.cpp index c8c39525efe..9fc29d6ef63 100644 --- a/src/mame/audio/williams.cpp +++ b/src/mame/audio/williams.cpp @@ -204,10 +204,10 @@ ADDRESS_MAP_END //------------------------------------------------- -// machine configuration +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( williams_cvsd_sound ) +MACHINE_CONFIG_MEMBER( williams_cvsd_sound_device::device_add_mconfig ) MCFG_CPU_ADD("cpu", M6809E, CVSD_MASTER_CLOCK) MCFG_CPU_PROGRAM_MAP(williams_cvsd_map) @@ -230,17 +230,6 @@ static MACHINE_CONFIG_START( williams_cvsd_sound ) MACHINE_CONFIG_END -//------------------------------------------------- -// device_mconfig_additions - return a pointer to -// the device's machine fragment -//------------------------------------------------- - -machine_config_constructor williams_cvsd_sound_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( williams_cvsd_sound ); -} - - //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- @@ -543,10 +532,11 @@ ADDRESS_MAP_END //------------------------------------------------- -// machine configuration +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( williams_narc_sound ) + +MACHINE_CONFIG_MEMBER( williams_narc_sound_device::device_add_mconfig ) MCFG_CPU_ADD("cpu0", M6809E, NARC_MASTER_CLOCK) MCFG_CPU_PROGRAM_MAP(williams_narc_master_map) @@ -568,17 +558,6 @@ static MACHINE_CONFIG_START( williams_narc_sound ) MACHINE_CONFIG_END -//------------------------------------------------- -// device_mconfig_additions - return a pointer to -// the device's machine fragment -//------------------------------------------------- - -machine_config_constructor williams_narc_sound_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( williams_narc_sound ); -} - - //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- @@ -817,10 +796,10 @@ ADDRESS_MAP_END //------------------------------------------------- -// machine configuration +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( williams_adpcm_sound ) +MACHINE_CONFIG_MEMBER( williams_adpcm_sound_device::device_add_mconfig ) MCFG_CPU_ADD("cpu", M6809E, ADPCM_MASTER_CLOCK) MCFG_CPU_PROGRAM_MAP(williams_adpcm_map) @@ -838,17 +817,6 @@ static MACHINE_CONFIG_START( williams_adpcm_sound ) MACHINE_CONFIG_END -//------------------------------------------------- -// device_mconfig_additions - return a pointer to -// the device's machine fragment -//------------------------------------------------- - -machine_config_constructor williams_adpcm_sound_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( williams_adpcm_sound ); -} - - //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- diff --git a/src/mame/audio/williams.h b/src/mame/audio/williams.h index 3171ef57361..44e308a9e2e 100644 --- a/src/mame/audio/williams.h +++ b/src/mame/audio/williams.h @@ -45,16 +45,12 @@ public: // internal communications DECLARE_WRITE8_MEMBER(bank_select_w); - DECLARE_WRITE8_MEMBER(talkback_w); DECLARE_WRITE8_MEMBER(cvsd_digit_clock_clear_w); DECLARE_WRITE8_MEMBER(cvsd_clock_set_w); - DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w); - DECLARE_WRITE_LINE_MEMBER(pia_irqa); - DECLARE_WRITE_LINE_MEMBER(pia_irqb); protected: // device-level overrides - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; @@ -67,6 +63,12 @@ private: // internal state uint8_t m_talkback; + + DECLARE_WRITE8_MEMBER(talkback_w); + DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w); + DECLARE_WRITE_LINE_MEMBER(pia_irqa); + DECLARE_WRITE_LINE_MEMBER(pia_irqb); + }; @@ -96,11 +98,10 @@ public: DECLARE_WRITE8_MEMBER(slave_sync_w); DECLARE_WRITE8_MEMBER(cvsd_digit_clock_clear_w); DECLARE_WRITE8_MEMBER(cvsd_clock_set_w); - DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w); protected: // device-level overrides - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; @@ -125,6 +126,8 @@ private: uint8_t m_talkback; uint8_t m_audio_sync; uint8_t m_sound_int_state; + + DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w); }; @@ -147,7 +150,6 @@ public: DECLARE_WRITE8_MEMBER(oki6295_bank_select_w); DECLARE_READ8_MEMBER(command_r); DECLARE_WRITE8_MEMBER(talkback_w); - DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w); protected: // timer IDs @@ -158,7 +160,7 @@ protected: }; // device-level overrides - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; @@ -171,4 +173,6 @@ private: uint8_t m_latch; uint8_t m_talkback; uint8_t m_sound_int_state; + + DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w); }; diff --git a/src/mame/audio/wpcsnd.cpp b/src/mame/audio/wpcsnd.cpp index 718a6e66d7b..a9cbf40611e 100644 --- a/src/mame/audio/wpcsnd.cpp +++ b/src/mame/audio/wpcsnd.cpp @@ -66,7 +66,7 @@ uint8_t wpcsnd_device::data_r() return m_reply; } -MACHINE_CONFIG_START( wpcsnd ) +MACHINE_CONFIG_MEMBER( wpcsnd_device::device_add_mconfig ) MCFG_CPU_ADD("bgcpu", M6809E, XTAL_8MHz) // MC68B09E MCFG_CPU_PROGRAM_MAP(wpcsnd_map) MCFG_QUANTUM_TIME(attotime::from_hz(50)) @@ -83,10 +83,6 @@ MACHINE_CONFIG_START( wpcsnd ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.5) MACHINE_CONFIG_END -machine_config_constructor wpcsnd_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( wpcsnd ); -} void wpcsnd_device::device_start() { diff --git a/src/mame/audio/wpcsnd.h b/src/mame/audio/wpcsnd.h index 74dfd752ea0..7d52155678d 100644 --- a/src/mame/audio/wpcsnd.h +++ b/src/mame/audio/wpcsnd.h @@ -40,7 +40,6 @@ public: DECLARE_WRITE8_MEMBER(bg_speech_clock_w); DECLARE_WRITE8_MEMBER(bg_speech_digit_w); DECLARE_WRITE8_MEMBER(rombank_w); - DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w); DECLARE_READ8_MEMBER(latch_r); DECLARE_WRITE8_MEMBER(latch_w); DECLARE_WRITE8_MEMBER(volume_w); @@ -59,7 +58,7 @@ protected: // overrides virtual void device_start() override; virtual void device_reset() override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; private: uint8_t m_latch; @@ -68,6 +67,8 @@ private: // callback devcb_write_line m_reply_cb; + + DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w); }; DECLARE_DEVICE_TYPE(WPCSND, wpcsnd_device) diff --git a/src/mame/drivers/cedar_magnet.cpp b/src/mame/drivers/cedar_magnet.cpp index e19e894177f..dfd48913334 100644 --- a/src/mame/drivers/cedar_magnet.cpp +++ b/src/mame/drivers/cedar_magnet.cpp @@ -206,7 +206,11 @@ public: void handle_sub_board_cpu_lines(cedar_magnet_board_interface &dev, int old_data, int data); INTERRUPT_GEN_MEMBER(irq); - void(*m_prothack)(cedar_magnet_state*); + typedef void (cedar_magnet_state::*prot_func)(); + prot_func m_prothack; + void mag_time_protection_hack(); + void mag_xain_protection_hack(); + void mag_exzi_protection_hack(); virtual void machine_start() override; virtual void machine_reset() override; @@ -742,7 +746,7 @@ INPUT_PORTS_END INTERRUPT_GEN_MEMBER(cedar_magnet_state::irq) { if (m_prothack) - m_prothack(this); + (this->*m_prothack)(); m_maincpu->set_input_line(0, HOLD_LINE); m_cedplane0->irq_hold(); @@ -870,23 +874,22 @@ void protection_hack(uint8_t* ram, int address1, int address2) if ((ram[address2] == 0x3e) && (ram[address2+1] == 0xff)) ram[address2] = 0xc9; } -void mag_time_protection_hack(cedar_magnet_state* state) +void cedar_magnet_state::mag_time_protection_hack() { - protection_hack(state->m_ram0, 0x8bc, 0x905); + protection_hack(m_ram0, 0x8bc, 0x905); } -void mag_xain_protection_hack(cedar_magnet_state* state) +void cedar_magnet_state::mag_xain_protection_hack() { - protection_hack(state->m_ram0, 0x796, 0x7df); + protection_hack(m_ram0, 0x796, 0x7df); } -void mag_exzi_protection_hack(cedar_magnet_state* state) +void cedar_magnet_state::mag_exzi_protection_hack() { - protection_hack(state->m_ram0, 0x8b6, 0x8ff); + protection_hack(m_ram0, 0x8b6, 0x8ff); } - DRIVER_INIT_MEMBER(cedar_magnet_state, mag_time) { m_prothack = mag_time_protection_hack; diff --git a/src/mame/includes/harddriv.h b/src/mame/includes/harddriv.h index f408df654c0..909749d99ca 100644 --- a/src/mame/includes/harddriv.h +++ b/src/mame/includes/harddriv.h @@ -494,7 +494,6 @@ public: DECLARE_WRITE16_MEMBER(hdsnd68k_320ports_w); DECLARE_READ16_MEMBER(hdsnd68k_320com_r); DECLARE_WRITE16_MEMBER(hdsnd68k_320com_w); - DECLARE_READ_LINE_MEMBER(hdsnddsp_get_bio); DECLARE_WRITE16_MEMBER(hdsnddsp_dac_w); DECLARE_WRITE16_MEMBER(hdsnddsp_comport_w); @@ -508,7 +507,7 @@ public: protected: virtual void device_start() override; virtual void device_reset() override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; private: required_device m_soundcpu; @@ -532,6 +531,8 @@ private: void update_68k_interrupts(); TIMER_CALLBACK_MEMBER( delayed_68k_w ); + + DECLARE_READ_LINE_MEMBER(hdsnddsp_get_bio); }; /* Hard Drivin' */