summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2017-05-23 18:58:14 +0200
committer Ivan Vangelista <mesgnet@yahoo.it>2017-05-23 18:58:14 +0200
commit3f44d746de4e98a3f4b8d47d5676342a630e9477 (patch)
treec1788987f9705863523388c3c526cf64bd045df7
parent099dd26e890e8706302d71a8a90d4c7400b399c0 (diff)
a start at moving mame/audio devices to use device_add_mconfig insted of device_mconfig_additions (nw)
-rw-r--r--src/mame/audio/alesis.cpp20
-rw-r--r--src/mame/audio/atarijsa.cpp182
-rw-r--r--src/mame/audio/atarijsa.h8
-rw-r--r--src/mame/audio/cage.cpp43
-rw-r--r--src/mame/audio/cage.h12
-rw-r--r--src/mame/audio/cclimber.cpp33
-rw-r--r--src/mame/audio/cclimber.h9
-rw-r--r--src/mame/audio/csd.cpp7
-rw-r--r--src/mame/audio/csd.h12
-rw-r--r--src/mame/audio/dcs.cpp353
-rw-r--r--src/mame/audio/dcs.h32
-rw-r--r--src/mame/audio/decobsmt.cpp30
-rw-r--r--src/mame/audio/decobsmt.h10
-rw-r--r--src/mame/audio/dsbz80.cpp30
-rw-r--r--src/mame/audio/dsbz80.h8
-rw-r--r--src/mame/audio/efo_zsu.cpp17
-rw-r--r--src/mame/audio/efo_zsu.h21
-rw-r--r--src/mame/includes/alesis.h4
-rw-r--r--src/mame/includes/hng64.h1
-rw-r--r--src/mame/video/hng64_3d.hxx2
20 files changed, 356 insertions, 478 deletions
diff --git a/src/mame/audio/alesis.cpp b/src/mame/audio/alesis.cpp
index 28f93391e6b..83eb55712fd 100644
--- a/src/mame/audio/alesis.cpp
+++ b/src/mame/audio/alesis.cpp
@@ -25,13 +25,6 @@ DEFINE_DEVICE_TYPE(ALESIS_DM3AG, alesis_dm3ag_device, "alesis_dm3ag", "Alesis DM
IMPLEMENTATION
***************************************************************************/
-static MACHINE_CONFIG_START( alesis_dm3ag )
- MCFG_SPEAKER_STANDARD_STEREO("lspeaker1", "rspeaker1")
- MCFG_SPEAKER_STANDARD_STEREO("lspeaker2", "rspeaker2")
- MCFG_SOUND_ADD("dac", PCM54HP, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker1", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker1", 1.0) // PCM54HP DAC + R63/R73-75 + Sample and hold
- 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
//-------------------------------------------------
// alesis_dm3ag_device - constructor
@@ -45,13 +38,16 @@ alesis_dm3ag_device::alesis_dm3ag_device(const machine_config &mconfig, const ch
}
//-------------------------------------------------
-// device_mconfig_additions
+// device_add_mconfig
//-------------------------------------------------
-machine_config_constructor alesis_dm3ag_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( alesis_dm3ag );
-}
+MACHINE_CONFIG_MEMBER( alesis_dm3ag_device::device_add_mconfig )
+ MCFG_SPEAKER_STANDARD_STEREO("lspeaker1", "rspeaker1")
+ MCFG_SPEAKER_STANDARD_STEREO("lspeaker2", "rspeaker2")
+ MCFG_SOUND_ADD("dac", PCM54HP, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker1", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker1", 1.0) // PCM54HP DAC + R63/R73-75 + Sample and hold
+ 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
//-------------------------------------------------
// device_start - device-specific startup
diff --git a/src/mame/audio/atarijsa.cpp b/src/mame/audio/atarijsa.cpp
index 86a3d08cd05..d9884fb67d5 100644
--- a/src/mame/audio/atarijsa.cpp
+++ b/src/mame/audio/atarijsa.cpp
@@ -157,84 +157,6 @@ static ADDRESS_MAP_START( jsa3_oki2_map, AS_0, 8, atari_jsa_iiis_device )
ADDRESS_MAP_END
-
-//**************************************************************************
-// MACHINE FRAGMENTS
-//**************************************************************************
-
-// Fully populated JSA-I, not used by anyone
-MACHINE_CONFIG_START( jsa_i_config )
-
- // basic machine hardware
- MCFG_CPU_ADD("cpu", M6502, JSA_MASTER_CLOCK/2)
- MCFG_CPU_PROGRAM_MAP(atarijsa1_map)
- MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, (double)JSA_MASTER_CLOCK/4/16/16/14)
-
- // sound hardware
- MCFG_ATARI_SOUND_COMM_ADD("soundcomm", "cpu", WRITELINE(atari_jsa_base_device, main_int_write_line))
-
- MCFG_YM2151_ADD("ym2151", JSA_MASTER_CLOCK)
- MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("soundcomm", atari_sound_comm_device, ym2151_irq_gen))
- MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(atari_jsa_base_device, ym2151_port_w))
- MCFG_MIXER_ROUTE(0, DEVICE_SELF_OWNER, 0.60, 0)
- MCFG_MIXER_ROUTE(1, DEVICE_SELF_OWNER, 0.60, 1)
-
- MCFG_SOUND_ADD("pokey", POKEY, JSA_MASTER_CLOCK/2)
- MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.40, 0)
- MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.40, 1)
-
- MCFG_SOUND_ADD("tms", TMS5220C, JSA_MASTER_CLOCK*2/11) // potentially JSA_MASTER_CLOCK/9 as well
- MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 1.0, 0)
- MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 1.0, 1)
-MACHINE_CONFIG_END
-
-
-// Fully populated JSA-II
-MACHINE_CONFIG_START( jsa_ii_config )
-
- // basic machine hardware
- MCFG_CPU_ADD("cpu", M6502, JSA_MASTER_CLOCK/2)
- MCFG_CPU_PROGRAM_MAP(atarijsa2_map)
- MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, (double)JSA_MASTER_CLOCK/4/16/16/14)
-
- // sound hardware
- MCFG_ATARI_SOUND_COMM_ADD("soundcomm", "cpu", WRITELINE(atari_jsa_base_device, main_int_write_line))
-
- MCFG_YM2151_ADD("ym2151", JSA_MASTER_CLOCK)
- MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("soundcomm", atari_sound_comm_device, ym2151_irq_gen))
- MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(atari_jsa_base_device, ym2151_port_w))
- MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.60, 0)
-
- MCFG_OKIM6295_ADD("oki1", JSA_MASTER_CLOCK/3, PIN7_HIGH)
- MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.75, 0)
-MACHINE_CONFIG_END
-
-
-// Fully populated JSA-III
-MACHINE_CONFIG_DERIVED( jsa_iii_config, jsa_ii_config )
-
- // basic machine hardware
- MCFG_CPU_MODIFY("cpu")
- MCFG_CPU_PROGRAM_MAP(atarijsa3_map)
-
- MCFG_DEVICE_MODIFY("oki1")
- MCFG_DEVICE_ADDRESS_MAP(AS_0, jsa3_oki1_map)
-MACHINE_CONFIG_END
-
-
-// Fully populated JSA_IIIs
-MACHINE_CONFIG_DERIVED( jsa_iiis_config, jsa_iii_config )
-
- MCFG_DEVICE_MODIFY("ym2151")
- MCFG_MIXER_ROUTE(1, DEVICE_SELF_OWNER, 0.60, 1)
-
- MCFG_OKIM6295_ADD("oki2", JSA_MASTER_CLOCK/3, PIN7_HIGH)
- MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.75, 1)
- MCFG_DEVICE_ADDRESS_MAP(AS_0, jsa3_oki2_map)
-MACHINE_CONFIG_END
-
-
-
//**************************************************************************
// I/O PORT DEFINITIONS
//**************************************************************************
@@ -767,14 +689,34 @@ WRITE8_MEMBER( atari_jsa_i_device::pokey_w )
//-------------------------------------------------
-// device_mconfig_additions - return a pointer to
-// the device's machine fragment
+// device_add_mconfig - add device configuration
//-------------------------------------------------
-machine_config_constructor atari_jsa_i_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( jsa_i_config );
-}
+// Fully populated JSA-I, not used by anyone
+MACHINE_CONFIG_MEMBER( atari_jsa_i_device::device_add_mconfig )
+
+ // basic machine hardware
+ MCFG_CPU_ADD("cpu", M6502, JSA_MASTER_CLOCK/2)
+ MCFG_CPU_PROGRAM_MAP(atarijsa1_map)
+ MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, (double)JSA_MASTER_CLOCK/4/16/16/14)
+
+ // sound hardware
+ MCFG_ATARI_SOUND_COMM_ADD("soundcomm", "cpu", WRITELINE(atari_jsa_base_device, main_int_write_line))
+
+ MCFG_YM2151_ADD("ym2151", JSA_MASTER_CLOCK)
+ MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("soundcomm", atari_sound_comm_device, ym2151_irq_gen))
+ MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(atari_jsa_base_device, ym2151_port_w))
+ MCFG_MIXER_ROUTE(0, DEVICE_SELF_OWNER, 0.60, 0)
+ MCFG_MIXER_ROUTE(1, DEVICE_SELF_OWNER, 0.60, 1)
+
+ MCFG_SOUND_ADD("pokey", POKEY, JSA_MASTER_CLOCK/2)
+ MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.40, 0)
+ MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.40, 1)
+
+ MCFG_SOUND_ADD("tms", TMS5220C, JSA_MASTER_CLOCK*2/11) // potentially JSA_MASTER_CLOCK/9 as well
+ MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 1.0, 0)
+ MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 1.0, 1)
+MACHINE_CONFIG_END
//-------------------------------------------------
@@ -877,14 +819,28 @@ READ8_MEMBER( atari_jsa_ii_device::rdio_r )
//-------------------------------------------------
-// device_mconfig_additions - return a pointer to
-// the device's machine fragment
+// device_add_mconfig - add device configuration
//-------------------------------------------------
-machine_config_constructor atari_jsa_ii_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( jsa_ii_config );
-}
+// Fully populated JSA-II
+MACHINE_CONFIG_MEMBER( atari_jsa_ii_device::device_add_mconfig )
+
+ // basic machine hardware
+ MCFG_CPU_ADD("cpu", M6502, JSA_MASTER_CLOCK/2)
+ MCFG_CPU_PROGRAM_MAP(atarijsa2_map)
+ MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, (double)JSA_MASTER_CLOCK/4/16/16/14)
+
+ // sound hardware
+ MCFG_ATARI_SOUND_COMM_ADD("soundcomm", "cpu", WRITELINE(atari_jsa_base_device, main_int_write_line))
+
+ MCFG_YM2151_ADD("ym2151", JSA_MASTER_CLOCK)
+ MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("soundcomm", atari_sound_comm_device, ym2151_irq_gen))
+ MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(atari_jsa_base_device, ym2151_port_w))
+ MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.60, 0)
+
+ MCFG_OKIM6295_ADD("oki1", JSA_MASTER_CLOCK/3, PIN7_HIGH)
+ MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.75, 0)
+MACHINE_CONFIG_END
//-------------------------------------------------
@@ -945,14 +901,29 @@ READ8_MEMBER( atari_jsa_iii_device::rdio_r )
//-------------------------------------------------
-// device_mconfig_additions - return a pointer to
-// the device's machine fragment
+// device_add_mconfig - add device configuration
//-------------------------------------------------
-machine_config_constructor atari_jsa_iii_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( jsa_iii_config );
-}
+ // Fully populated JSA-III
+MACHINE_CONFIG_MEMBER( atari_jsa_iii_device::device_add_mconfig )
+
+ // basic machine hardware
+ MCFG_CPU_ADD("cpu", M6502, JSA_MASTER_CLOCK/2)
+ MCFG_CPU_PROGRAM_MAP(atarijsa3_map)
+ MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, (double)JSA_MASTER_CLOCK/4/16/16/14)
+
+ // sound hardware
+ MCFG_ATARI_SOUND_COMM_ADD("soundcomm", "cpu", WRITELINE(atari_jsa_base_device, main_int_write_line))
+
+ MCFG_YM2151_ADD("ym2151", JSA_MASTER_CLOCK)
+ MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("soundcomm", atari_sound_comm_device, ym2151_irq_gen))
+ MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(atari_jsa_base_device, ym2151_port_w))
+ MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.60, 0)
+
+ MCFG_OKIM6295_ADD("oki1", JSA_MASTER_CLOCK/3, PIN7_HIGH)
+ MCFG_DEVICE_ADDRESS_MAP(AS_0, jsa3_oki1_map)
+ MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.75, 0)
+MACHINE_CONFIG_END
//-------------------------------------------------
@@ -982,11 +953,18 @@ atari_jsa_iiis_device::atari_jsa_iiis_device(const machine_config &mconfig, cons
//-------------------------------------------------
-// device_mconfig_additions - return a pointer to
-// the device's machine fragment
+// device_add_mconfig - add device configuration
//-------------------------------------------------
-machine_config_constructor atari_jsa_iiis_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( jsa_iiis_config );
-}
+// Fully populated JSA_IIIs
+MACHINE_CONFIG_MEMBER( atari_jsa_iiis_device::device_add_mconfig )
+
+ atari_jsa_iii_device::device_add_mconfig(config);
+
+ MCFG_DEVICE_MODIFY("ym2151")
+ MCFG_MIXER_ROUTE(1, DEVICE_SELF_OWNER, 0.60, 1)
+
+ MCFG_OKIM6295_ADD("oki2", JSA_MASTER_CLOCK/3, PIN7_HIGH)
+ MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.75, 1)
+ MCFG_DEVICE_ADDRESS_MAP(AS_0, jsa3_oki2_map)
+MACHINE_CONFIG_END
diff --git a/src/mame/audio/atarijsa.h b/src/mame/audio/atarijsa.h
index a6664452765..83dc2ec0cb2 100644
--- a/src/mame/audio/atarijsa.h
+++ b/src/mame/audio/atarijsa.h
@@ -196,7 +196,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_reset() override;
@@ -228,7 +228,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;
required_ioport m_jsaii;
@@ -253,7 +253,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;
required_ioport m_jsaiii;
@@ -270,7 +270,7 @@ public:
protected:
// device level overrides
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
};
diff --git a/src/mame/audio/cage.cpp b/src/mame/audio/cage.cpp
index 36cbf0c3655..55bcbde77bb 100644
--- a/src/mame/audio/cage.cpp
+++ b/src/mame/audio/cage.cpp
@@ -619,14 +619,11 @@ static ADDRESS_MAP_START( cage_map_seattle, AS_PROGRAM, 32, atari_cage_seattle_d
ADDRESS_MAP_END
+//-------------------------------------------------
+// machine_add_config - add device configuration
+//-------------------------------------------------
-/*************************************
- *
- * CAGE machine driver
- *
- *************************************/
-
-MACHINE_CONFIG_START( cage )
+MACHINE_CONFIG_MEMBER( atari_cage_device::device_add_mconfig )
/* basic machine hardware */
MCFG_CPU_ADD("cage", TMS32031, 33868800)
@@ -664,36 +661,28 @@ MACHINE_CONFIG_START( cage )
MACHINE_CONFIG_END
-MACHINE_CONFIG_DERIVED( cage_seattle, cage )
+DEFINE_DEVICE_TYPE(ATARI_CAGE_SEATTLE, atari_cage_seattle_device, "atari_cage_seattle", "Atari CAGE Seattle")
- MCFG_CPU_MODIFY("cage")
- MCFG_CPU_PROGRAM_MAP(cage_map_seattle)
-MACHINE_CONFIG_END
//-------------------------------------------------
-// machine_config_additions - device-specific
-// machine configurations
+// atari_cage_seattle_device - constructor
//-------------------------------------------------
-machine_config_constructor atari_cage_device::device_mconfig_additions() const
+atari_cage_seattle_device::atari_cage_seattle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ atari_cage_device(mconfig, ATARI_CAGE_SEATTLE, tag, owner, clock)
{
- return MACHINE_CONFIG_NAME( cage );
}
-DEFINE_DEVICE_TYPE(ATARI_CAGE_SEATTLE, atari_cage_seattle_device, "atari_cage_seattle", "Atari CAGE Seattle")
-
-
//-------------------------------------------------
-// atari_cage_seattle_device - constructor
+// machine_add_config - add device configuration
//-------------------------------------------------
-atari_cage_seattle_device::atari_cage_seattle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
- atari_cage_device(mconfig, ATARI_CAGE_SEATTLE, tag, owner, clock)
-{
-}
-machine_config_constructor atari_cage_seattle_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( cage_seattle );
-}
+MACHINE_CONFIG_MEMBER( atari_cage_seattle_device::device_add_mconfig )
+
+ atari_cage_device::device_add_mconfig(config);
+
+ MCFG_CPU_MODIFY("cage")
+ MCFG_CPU_PROGRAM_MAP(cage_map_seattle)
+MACHINE_CONFIG_END
diff --git a/src/mame/audio/cage.h b/src/mame/audio/cage.h
index 65a136f114b..11ace8d97fc 100644
--- a/src/mame/audio/cage.h
+++ b/src/mame/audio/cage.h
@@ -32,9 +32,6 @@ public:
static void static_set_speedup(device_t &device, offs_t speedup) { downcast<atari_cage_device &>(device).m_speedup = speedup; }
template <class Object> static devcb_base &set_irqhandler_callback(device_t &device, Object &&cb) { return downcast<atari_cage_device &>(device).m_irqhandler.set_callback(std::forward<Object>(cb)); }
- // optional information overrides
- virtual machine_config_constructor device_mconfig_additions() const override;
-
void reset_w(int state);
uint16_t main_r();
@@ -43,9 +40,7 @@ public:
uint16_t control_r();
void control_w(uint16_t data);
- TIMER_DEVICE_CALLBACK_MEMBER( dma_timer_callback );
void update_dma_state(address_space &space);
- TIMER_DEVICE_CALLBACK_MEMBER( cage_timer_callback );
void update_timer(int which);
void update_serial();
READ32_MEMBER( tms32031_io_r );
@@ -63,6 +58,10 @@ protected:
// device-level overrides
virtual void device_start() override;
+ virtual void device_add_mconfig(machine_config &config) override;
+
+ TIMER_DEVICE_CALLBACK_MEMBER( dma_timer_callback );
+ TIMER_DEVICE_CALLBACK_MEMBER( cage_timer_callback );
private:
required_shared_ptr<uint32_t> m_cageram;
@@ -105,8 +104,9 @@ public:
// construction/destruction
atari_cage_seattle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+protected:
// optional information overrides
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
};
diff --git a/src/mame/audio/cclimber.cpp b/src/mame/audio/cclimber.cpp
index a7a2be05318..9da3460cf17 100644
--- a/src/mame/audio/cclimber.cpp
+++ b/src/mame/audio/cclimber.cpp
@@ -20,17 +20,6 @@ SAMPLES_START_CB_MEMBER( cclimber_audio_device::sh_start )
}
}
-MACHINE_CONFIG_START( cclimber_audio )
- MCFG_SOUND_ADD("aysnd", AY8910, SND_CLOCK/2)
- MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(cclimber_audio_device, sample_select_w))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, ":speaker", 0.5)
-
- MCFG_SOUND_ADD("samples", SAMPLES, 0)
- MCFG_SAMPLES_CHANNELS(1)
- MCFG_SAMPLES_START_CB(cclimber_audio_device, sh_start)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, ":speaker", 0.5)
-MACHINE_CONFIG_END
-
//**************************************************************************
// DEVICE DEFINITIONS
//**************************************************************************
@@ -38,10 +27,6 @@ MACHINE_CONFIG_END
DEFINE_DEVICE_TYPE(CCLIMBER_AUDIO, cclimber_audio_device, "cclimber_audio", "Crazy Climber Sound Board")
-//**************************************************************************
-// JSA IIIS-SPECIFIC IMPLEMENTATION
-//**************************************************************************
-
//-------------------------------------------------
// cclimber_audio_device: Constructor
//-------------------------------------------------
@@ -69,14 +54,20 @@ void cclimber_audio_device::device_start()
}
//-------------------------------------------------
-// device_mconfig_additions - return a pointer to
-// the device's machine fragment
+// device_add_mconfig - add device configuration
//-------------------------------------------------
-machine_config_constructor cclimber_audio_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( cclimber_audio );
-}
+MACHINE_CONFIG_MEMBER( cclimber_audio_device::device_add_mconfig )
+ MCFG_SOUND_ADD("aysnd", AY8910, SND_CLOCK/2)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(cclimber_audio_device, sample_select_w))
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, ":speaker", 0.5)
+
+ MCFG_SOUND_ADD("samples", SAMPLES, 0)
+ MCFG_SAMPLES_CHANNELS(1)
+ MCFG_SAMPLES_START_CB(cclimber_audio_device, sh_start)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, ":speaker", 0.5)
+MACHINE_CONFIG_END
+
WRITE8_MEMBER( cclimber_audio_device::sample_select_w )
{
diff --git a/src/mame/audio/cclimber.h b/src/mame/audio/cclimber.h
index c5cc6faefaf..e11b471ffe7 100644
--- a/src/mame/audio/cclimber.h
+++ b/src/mame/audio/cclimber.h
@@ -39,14 +39,11 @@ public:
DECLARE_WRITE8_MEMBER( sample_trigger_w );
DECLARE_WRITE8_MEMBER( sample_rate_w );
DECLARE_WRITE8_MEMBER( sample_volume_w );
- DECLARE_WRITE8_MEMBER( sample_select_w );
-
- SAMPLES_START_CB_MEMBER( sh_start );
protected:
// device level overrides
virtual void device_start() override;
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
void play_sample(int start,int freq,int volume);
@@ -57,6 +54,10 @@ private:
int m_sample_volume;
optional_device<samples_device> m_samples;
optional_region_ptr<uint8_t> m_samples_region;
+
+ DECLARE_WRITE8_MEMBER( sample_select_w );
+
+ SAMPLES_START_CB_MEMBER( sh_start );
};
diff --git a/src/mame/audio/csd.cpp b/src/mame/audio/csd.cpp
index eb2e20efb98..3158de444db 100644
--- a/src/mame/audio/csd.cpp
+++ b/src/mame/audio/csd.cpp
@@ -35,7 +35,7 @@ ADDRESS_MAP_END
// machine configuration
//-------------------------------------------------
-static MACHINE_CONFIG_START(midway_cheap_squeak_deluxe)
+MACHINE_CONFIG_MEMBER(midway_cheap_squeak_deluxe_device::device_add_mconfig)
MCFG_CPU_ADD("cpu", M68000, XTAL_16MHz/2)
MCFG_CPU_PROGRAM_MAP(csdeluxe_map)
@@ -50,11 +50,6 @@ static MACHINE_CONFIG_START(midway_cheap_squeak_deluxe)
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_constructor midway_cheap_squeak_deluxe_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( midway_cheap_squeak_deluxe );
-}
-
//-------------------------------------------------
// rom_region - device-specific ROM region
//-------------------------------------------------
diff --git a/src/mame/audio/csd.h b/src/mame/audio/csd.h
index 2c9062dd73b..4af49a552bc 100644
--- a/src/mame/audio/csd.h
+++ b/src/mame/audio/csd.h
@@ -34,14 +34,9 @@ public:
DECLARE_WRITE_LINE_MEMBER(sirq_w);
DECLARE_WRITE_LINE_MEMBER(reset_w);
- // 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 const tiny_rom_entry *device_rom_region() const override;
virtual void device_start() override;
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
@@ -55,6 +50,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);
};
// device type definition
diff --git a/src/mame/audio/dcs.cpp b/src/mame/audio/dcs.cpp
index 6c679713b4f..02959b70cdb 100644
--- a/src/mame/audio/dcs.cpp
+++ b/src/mame/audio/dcs.cpp
@@ -447,177 +447,6 @@ ADDRESS_MAP_END
/*************************************
*
- * Original DCS Machine Drivers
- *
- *************************************/
-
-/* Basic DCS system with ADSP-2105 and 2k of SRAM (T-unit, V-unit, Killer Instinct) */
-MACHINE_CONFIG_START( dcs_audio_2k )
- MCFG_CPU_ADD("dcs", ADSP2105, XTAL_10MHz)
- MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
- MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(dcs_audio_device,timer_enable_callback)) /* callback for timer fired */
- MCFG_CPU_PROGRAM_MAP(dcs_2k_program_map)
- MCFG_CPU_DATA_MAP(dcs_2k_data_map)
-
- MCFG_TIMER_DEVICE_ADD("dcs_reg_timer", DEVICE_SELF, dcs_audio_device, dcs_irq)
- MCFG_TIMER_DEVICE_ADD("dcs_int_timer", DEVICE_SELF, dcs_audio_device, internal_timer_callback)
-
- MCFG_SPEAKER_STANDARD_MONO("mono")
-
- MCFG_SOUND_ADD("dac", DMADAC, 0) // AD-1851 16bit mono
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
-
-
-/* Basic DCS system with ADSP-2105 and 2k of SRAM, using a UART for communications (X-unit) */
-MACHINE_CONFIG_DERIVED( dcs_audio_2k_uart, dcs_audio_2k )
-
- MCFG_CPU_MODIFY("dcs")
- MCFG_CPU_DATA_MAP(dcs_2k_uart_data_map)
-MACHINE_CONFIG_END
-
-
-/* Basic DCS system with ADSP-2105 and 8k of SRAM (Wolf-unit) */
-MACHINE_CONFIG_DERIVED( dcs_audio_8k, dcs_audio_2k )
-
- MCFG_CPU_MODIFY("dcs")
- MCFG_CPU_PROGRAM_MAP(dcs_8k_program_map)
- MCFG_CPU_DATA_MAP(dcs_8k_data_map)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_DERIVED( dcs_audio_wpc, dcs_audio_2k )
- MCFG_CPU_MODIFY("dcs")
- MCFG_CPU_PROGRAM_MAP(dcs_wpc_program_map)
- MCFG_CPU_DATA_MAP(dcs_wpc_data_map)
-MACHINE_CONFIG_END
-
-
-/*************************************
- *
- * DCS2 Machine Drivers
- *
- *************************************/
-
-MACHINE_CONFIG_START( dcs2_audio_2115 )
- MCFG_CPU_ADD("dcs2", ADSP2115, XTAL_16MHz)
- MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
- MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(dcs_audio_device,timer_enable_callback)) /* callback for timer fired */
- MCFG_CPU_PROGRAM_MAP(dcs2_2115_program_map)
- MCFG_CPU_DATA_MAP(dcs2_2115_data_map)
-
- MCFG_TIMER_DEVICE_ADD("dcs_reg_timer", DEVICE_SELF, dcs_audio_device, dcs_irq)
- MCFG_TIMER_DEVICE_ADD("dcs_sport_timer", DEVICE_SELF, dcs_audio_device, sport0_irq)
- MCFG_TIMER_DEVICE_ADD("dcs_int_timer", DEVICE_SELF, dcs_audio_device, internal_timer_callback)
- MCFG_TIMER_DEVICE_ADD("dcs_hle_timer", DEVICE_SELF, dcs_audio_device, transfer_watchdog_callback)
-
- MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
-
- MCFG_SOUND_ADD("dac1", DMADAC, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
-
- MCFG_SOUND_ADD("dac2", DMADAC, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
-MACHINE_CONFIG_END
-
-
-MACHINE_CONFIG_DERIVED( dcs2_audio_2104, dcs2_audio_2115 )
- MCFG_CPU_REPLACE("dcs2", ADSP2104, XTAL_16MHz)
- MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
- MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(dcs_audio_device,timer_enable_callback)) /* callback for timer fired */
- MCFG_CPU_PROGRAM_MAP(dcs2_2104_program_map)
- MCFG_CPU_DATA_MAP(dcs2_2104_data_map)
-MACHINE_CONFIG_END
-
-
-
-/*************************************
- *
- * DSIO Machine Drivers
- *
- *************************************/
-
-MACHINE_CONFIG_START( dcs2_audio_dsio )
- MCFG_CPU_ADD("dsio", ADSP2181, XTAL_32MHz)
- MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
- MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(dcs_audio_device,timer_enable_callback)) /* callback for timer fired */
- MCFG_ADSP21XX_DMOVLAY_CB(WRITE32(dcs_audio_device, dmovlay_callback)) // callback for adsp 2181 dmovlay instruction
- MCFG_CPU_PROGRAM_MAP(dsio_program_map)
- MCFG_CPU_DATA_MAP(dsio_data_map)
- MCFG_CPU_IO_MAP(dsio_io_map)
-
- MCFG_DEVICE_ADD("data_map_bank", ADDRESS_MAP_BANK, 0)
- MCFG_DEVICE_PROGRAM_MAP(dsio_rambank_map)
- MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_LITTLE)
- MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(16)
- MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(14)
- MCFG_ADDRESS_MAP_BANK_STRIDE(0x2000)
-
- MCFG_TIMER_DEVICE_ADD("dcs_reg_timer", DEVICE_SELF, dcs_audio_device, dcs_irq)
- MCFG_TIMER_DEVICE_ADD("dcs_int_timer", DEVICE_SELF, dcs_audio_device, internal_timer_callback)
- MCFG_TIMER_DEVICE_ADD("dcs_sport_timer", DEVICE_SELF, dcs_audio_device, sport0_irq) // roadburn needs this to pass harware test
-
- MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
-
- MCFG_SOUND_ADD("dac1", DMADAC, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
-
- MCFG_SOUND_ADD("dac2", DMADAC, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
-MACHINE_CONFIG_END
-
-
-
-/*************************************
- *
- * Denver Machine Drivers
- *
- *************************************/
-
-MACHINE_CONFIG_START( dcs2_audio_denver )
- MCFG_CPU_ADD("denver", ADSP2181, XTAL_33_333MHz)
- MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
- MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(dcs_audio_device,timer_enable_callback)) /* callback for timer fired */
- MCFG_ADSP21XX_DMOVLAY_CB(WRITE32(dcs_audio_device, dmovlay_callback)) // callback for adsp 2181 dmovlay instruction
- MCFG_CPU_PROGRAM_MAP(denver_program_map)
- MCFG_CPU_DATA_MAP(denver_data_map)
- MCFG_CPU_IO_MAP(denver_io_map)
-
- MCFG_DEVICE_ADD("data_map_bank", ADDRESS_MAP_BANK, 0)
- MCFG_DEVICE_PROGRAM_MAP(denver_rambank_map)
- MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_LITTLE)
- MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(16)
- MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(14)
- MCFG_ADDRESS_MAP_BANK_STRIDE(0x2000)
-
- MCFG_TIMER_DEVICE_ADD("dcs_reg_timer", DEVICE_SELF, dcs_audio_device, dcs_irq)
- MCFG_TIMER_DEVICE_ADD("dcs_int_timer", DEVICE_SELF, dcs_audio_device, internal_timer_callback)
- MCFG_TIMER_DEVICE_ADD("dcs_sport_timer", DEVICE_SELF, dcs_audio_device, sport0_irq) // Atlantis driver waits for sport0 rx interrupts
-
- MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
-
- MCFG_SOUND_ADD("dac1", DMADAC, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
-
- MCFG_SOUND_ADD("dac2", DMADAC, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
-
- MCFG_SOUND_ADD("dac3", DMADAC, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
-
- MCFG_SOUND_ADD("dac4", DMADAC, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
-
- MCFG_SOUND_ADD("dac5", DMADAC, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
-
- MCFG_SOUND_ADD("dac6", DMADAC, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
-MACHINE_CONFIG_END
-
-
-
-/*************************************
- *
* ADSP booting
*
*************************************/
@@ -2488,6 +2317,24 @@ int dcs_audio_device::preprocess_write(uint16_t data)
return result;
}
+/* Basic DCS system with ADSP-2105 and 2k of SRAM (T-unit, V-unit, Killer Instinct) */
+
+MACHINE_CONFIG_MEMBER( dcs_audio_device::add_mconfig_dcs )
+ MCFG_CPU_ADD("dcs", ADSP2105, XTAL_10MHz)
+ MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
+ MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(dcs_audio_device, timer_enable_callback)) /* callback for timer fired */
+ MCFG_CPU_PROGRAM_MAP(dcs_2k_program_map)
+ MCFG_CPU_DATA_MAP(dcs_2k_data_map)
+
+ MCFG_TIMER_DEVICE_ADD("dcs_reg_timer", DEVICE_SELF, dcs_audio_device, dcs_irq)
+ MCFG_TIMER_DEVICE_ADD("dcs_int_timer", DEVICE_SELF, dcs_audio_device, internal_timer_callback)
+
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_SOUND_ADD("dac", DMADAC, 0) // AD-1851 16bit mono
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_CONFIG_END
+
DEFINE_DEVICE_TYPE(DCS_AUDIO_2K, dcs_audio_2k_device, "dcs_audio_2k", "DCS Audio 2K")
//-------------------------------------------------
@@ -2499,10 +2346,10 @@ dcs_audio_2k_device::dcs_audio_2k_device(const machine_config &mconfig, const ch
{
}
-machine_config_constructor dcs_audio_2k_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( dcs_audio_2k );
-}
+MACHINE_CONFIG_MEMBER( dcs_audio_2k_device::device_add_mconfig )
+
+ dcs_audio_device::add_mconfig_dcs(config);
+MACHINE_CONFIG_END
DEFINE_DEVICE_TYPE(DCS_AUDIO_2K_UART, dcs_audio_2k_uart_device, "dcs_audio_2k_uart", "DCS Audio 2K UART")
@@ -2515,10 +2362,14 @@ dcs_audio_2k_uart_device::dcs_audio_2k_uart_device(const machine_config &mconfig
{
}
-machine_config_constructor dcs_audio_2k_uart_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( dcs_audio_2k_uart );
-}
+/* Basic DCS system with ADSP-2105 and 2k of SRAM, using a UART for communications (X-unit) */
+MACHINE_CONFIG_MEMBER( dcs_audio_2k_uart_device::device_add_mconfig )
+
+ dcs_audio_device::add_mconfig_dcs(config);
+
+ MCFG_CPU_MODIFY("dcs")
+ MCFG_CPU_DATA_MAP(dcs_2k_uart_data_map)
+MACHINE_CONFIG_END
DEFINE_DEVICE_TYPE(DCS_AUDIO_8K, dcs_audio_8k_device, "dcs_audio_8k", "DCS Audio 8K")
@@ -2531,10 +2382,15 @@ dcs_audio_8k_device::dcs_audio_8k_device(const machine_config &mconfig, const ch
{
}
-machine_config_constructor dcs_audio_8k_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( dcs_audio_8k );
-}
+/* Basic DCS system with ADSP-2105 and 8k of SRAM (Wolf-unit) */
+MACHINE_CONFIG_MEMBER( dcs_audio_8k_device::device_add_mconfig )
+
+ dcs_audio_device::add_mconfig_dcs(config);
+
+ MCFG_CPU_MODIFY("dcs")
+ MCFG_CPU_PROGRAM_MAP(dcs_8k_program_map)
+ MCFG_CPU_DATA_MAP(dcs_8k_data_map)
+MACHINE_CONFIG_END
DEFINE_DEVICE_TYPE(DCS_AUDIO_WPC, dcs_audio_wpc_device, "dcs_audio_wpc", "DCS Audio WPC")
@@ -2547,11 +2403,14 @@ dcs_audio_wpc_device::dcs_audio_wpc_device(const machine_config &mconfig, const
{
}
-machine_config_constructor dcs_audio_wpc_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( dcs_audio_wpc );
-}
+MACHINE_CONFIG_MEMBER( dcs_audio_wpc_device::device_add_mconfig )
+ dcs_audio_device::add_mconfig_dcs(config);
+
+ MCFG_CPU_MODIFY("dcs")
+ MCFG_CPU_PROGRAM_MAP(dcs_wpc_program_map)
+ MCFG_CPU_DATA_MAP(dcs_wpc_data_map)
+MACHINE_CONFIG_END
//-------------------------------------------------
@@ -2563,6 +2422,26 @@ dcs2_audio_device::dcs2_audio_device(const machine_config &mconfig, device_type
{
}
+MACHINE_CONFIG_MEMBER( dcs2_audio_device::add_mconfig_dcs2 )
+ MCFG_CPU_ADD("dcs2", ADSP2115, XTAL_16MHz)
+ MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
+ MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(dcs_audio_device, timer_enable_callback)) /* callback for timer fired */
+ MCFG_CPU_PROGRAM_MAP(dcs2_2115_program_map)
+ MCFG_CPU_DATA_MAP(dcs2_2115_data_map)
+
+ MCFG_TIMER_DEVICE_ADD("dcs_reg_timer", DEVICE_SELF, dcs_audio_device, dcs_irq)
+ MCFG_TIMER_DEVICE_ADD("dcs_sport_timer", DEVICE_SELF, dcs_audio_device, sport0_irq)
+ MCFG_TIMER_DEVICE_ADD("dcs_int_timer", DEVICE_SELF, dcs_audio_device, internal_timer_callback)
+ MCFG_TIMER_DEVICE_ADD("dcs_hle_timer", DEVICE_SELF, dcs_audio_device, transfer_watchdog_callback)
+
+ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
+
+ MCFG_SOUND_ADD("dac1", DMADAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
+
+ MCFG_SOUND_ADD("dac2", DMADAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
+MACHINE_CONFIG_END
DEFINE_DEVICE_TYPE(DCS2_AUDIO_2115, dcs2_audio_2115_device, "dcs2_audio_2115", "DCS2 Audio 2115")
@@ -2575,10 +2454,11 @@ dcs2_audio_2115_device::dcs2_audio_2115_device(const machine_config &mconfig, co
{
}
-machine_config_constructor dcs2_audio_2115_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( dcs2_audio_2115 );
-}
+MACHINE_CONFIG_MEMBER( dcs2_audio_2115_device::device_add_mconfig )
+
+ dcs2_audio_device::add_mconfig_dcs2(config);
+
+MACHINE_CONFIG_END
DEFINE_DEVICE_TYPE(DCS2_AUDIO_2104, dcs2_audio_2104_device, "dcs2_audio_2104", "DCS2 Audio 2104")
@@ -2586,16 +2466,22 @@ DEFINE_DEVICE_TYPE(DCS2_AUDIO_2104, dcs2_audio_2104_device, "dcs2_audio_2104", "
// dcs2_audio_2104_device - constructor
//-------------------------------------------------
+
dcs2_audio_2104_device::dcs2_audio_2104_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
dcs2_audio_device(mconfig, DCS2_AUDIO_2104, tag, owner, clock)
{
}
-machine_config_constructor dcs2_audio_2104_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( dcs2_audio_2104 );
-}
+MACHINE_CONFIG_MEMBER( dcs2_audio_2104_device::device_add_mconfig )
+ dcs2_audio_device::add_mconfig_dcs2(config);
+
+ MCFG_CPU_REPLACE("dcs2", ADSP2104, XTAL_16MHz)
+ MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
+ MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(dcs_audio_device,timer_enable_callback)) /* callback for timer fired */
+ MCFG_CPU_PROGRAM_MAP(dcs2_2104_program_map)
+ MCFG_CPU_DATA_MAP(dcs2_2104_data_map)
+MACHINE_CONFIG_END
DEFINE_DEVICE_TYPE(DCS2_AUDIO_DSIO, dcs2_audio_dsio_device, "dcs2_audio_dsio", "DCS2 Audio DSIO")
@@ -2608,10 +2494,35 @@ dcs2_audio_dsio_device::dcs2_audio_dsio_device(const machine_config &mconfig, co
{
}
-machine_config_constructor dcs2_audio_dsio_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( dcs2_audio_dsio );
-}
+MACHINE_CONFIG_MEMBER( dcs2_audio_dsio_device::device_add_mconfig )
+ MCFG_CPU_ADD("dsio", ADSP2181, XTAL_32MHz)
+ MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
+ MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(dcs_audio_device, timer_enable_callback)) /* callback for timer fired */
+ MCFG_ADSP21XX_DMOVLAY_CB(WRITE32(dcs_audio_device, dmovlay_callback)) // callback for adsp 2181 dmovlay instruction
+ MCFG_CPU_PROGRAM_MAP(dsio_program_map)
+ MCFG_CPU_DATA_MAP(dsio_data_map)
+ MCFG_CPU_IO_MAP(dsio_io_map)
+
+ MCFG_DEVICE_ADD("data_map_bank", ADDRESS_MAP_BANK, 0)
+ MCFG_DEVICE_PROGRAM_MAP(dsio_rambank_map)
+ MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_LITTLE)
+ MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(16)
+ MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(14)
+ MCFG_ADDRESS_MAP_BANK_STRIDE(0x2000)
+
+ MCFG_TIMER_DEVICE_ADD("dcs_reg_timer", DEVICE_SELF, dcs_audio_device, dcs_irq)
+ MCFG_TIMER_DEVICE_ADD("dcs_int_timer", DEVICE_SELF, dcs_audio_device, internal_timer_callback)
+ MCFG_TIMER_DEVICE_ADD("dcs_sport_timer", DEVICE_SELF, dcs_audio_device, sport0_irq) // roadburn needs this to pass harware test
+
+ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
+
+ MCFG_SOUND_ADD("dac1", DMADAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
+
+ MCFG_SOUND_ADD("dac2", DMADAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
+MACHINE_CONFIG_END
+
DEFINE_DEVICE_TYPE(DCS2_AUDIO_DENVER, dcs2_audio_denver_device, "dcs2_audio_denver", "DCS2 Audio Denver")
@@ -2624,7 +2535,43 @@ dcs2_audio_denver_device::dcs2_audio_denver_device(const machine_config &mconfig
{
}
-machine_config_constructor dcs2_audio_denver_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( dcs2_audio_denver );
-}
+MACHINE_CONFIG_MEMBER( dcs2_audio_denver_device::device_add_mconfig )
+ MCFG_CPU_ADD("denver", ADSP2181, XTAL_33_333MHz)
+ MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
+ MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(dcs_audio_device, timer_enable_callback)) /* callback for timer fired */
+ MCFG_ADSP21XX_DMOVLAY_CB(WRITE32(dcs_audio_device, dmovlay_callback)) // callback for adsp 2181 dmovlay instruction
+ MCFG_CPU_PROGRAM_MAP(denver_program_map)
+ MCFG_CPU_DATA_MAP(denver_data_map)
+ MCFG_CPU_IO_MAP(denver_io_map)
+
+ MCFG_DEVICE_ADD("data_map_bank", ADDRESS_MAP_BANK, 0)
+ MCFG_DEVICE_PROGRAM_MAP(denver_rambank_map)
+ MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_LITTLE)
+ MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(16)
+ MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(14)
+ MCFG_ADDRESS_MAP_BANK_STRIDE(0x2000)
+
+ MCFG_TIMER_DEVICE_ADD("dcs_reg_timer", DEVICE_SELF, dcs_audio_device, dcs_irq)
+ MCFG_TIMER_DEVICE_ADD("dcs_int_timer", DEVICE_SELF, dcs_audio_device, internal_timer_callback)
+ MCFG_TIMER_DEVICE_ADD("dcs_sport_timer", DEVICE_SELF, dcs_audio_device, sport0_irq) // Atlantis driver waits for sport0 rx interrupts
+
+ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
+
+ MCFG_SOUND_ADD("dac1", DMADAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
+
+ MCFG_SOUND_ADD("dac2", DMADAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
+
+ MCFG_SOUND_ADD("dac3", DMADAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
+
+ MCFG_SOUND_ADD("dac4", DMADAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
+
+ MCFG_SOUND_ADD("dac5", DMADAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
+
+ MCFG_SOUND_ADD("dac6", DMADAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
+MACHINE_CONFIG_END
diff --git a/src/mame/audio/dcs.h b/src/mame/audio/dcs.h
index bd3f7e0643c..7c068779dba 100644
--- a/src/mame/audio/dcs.h
+++ b/src/mame/audio/dcs.h
@@ -111,6 +111,7 @@ protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
+ void add_mconfig_dcs(machine_config &config);
struct sdrc_state
{
@@ -228,8 +229,9 @@ public:
// construction/destruction
dcs_audio_2k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+protected:
// optional information overrides
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
};
@@ -244,9 +246,9 @@ public:
// construction/destruction
dcs_audio_2k_uart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+protected:
// optional information overrides
- virtual machine_config_constructor device_mconfig_additions() const override;
-
+ virtual void device_add_mconfig(machine_config &config) override;
};
// device type definition
@@ -260,9 +262,9 @@ public:
// construction/destruction
dcs_audio_8k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+protected:
// optional information overrides
- virtual machine_config_constructor device_mconfig_additions() const override;
-
+ virtual void device_add_mconfig(machine_config &config) override;
};
// device type definition
@@ -276,8 +278,9 @@ public:
// construction/destruction
dcs_audio_wpc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+protected:
// optional information overrides
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
};
// device type definition
@@ -294,6 +297,7 @@ protected:
// device-level overrides
virtual void device_start() override;
+ void add_mconfig_dcs2(machine_config &config);
};
// dcs2_audio_2115_device
@@ -304,9 +308,9 @@ public:
// construction/destruction
dcs2_audio_2115_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+protected:
// optional information overrides
- virtual machine_config_constructor device_mconfig_additions() const override;
-
+ virtual void device_add_mconfig(machine_config &config) override;
};
// device type definition
@@ -320,9 +324,9 @@ public:
// construction/destruction
dcs2_audio_2104_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+protected:
// optional information overrides
- virtual machine_config_constructor device_mconfig_additions() const override;
-
+ virtual void device_add_mconfig(machine_config &config) override;
};
// device type definition
@@ -336,9 +340,9 @@ public:
// construction/destruction
dcs2_audio_dsio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+protected:
// optional information overrides
- virtual machine_config_constructor device_mconfig_additions() const override;
-
+ virtual void device_add_mconfig(machine_config &config) override;
};
// device type definition
@@ -352,9 +356,9 @@ public:
// construction/destruction
dcs2_audio_denver_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+protected:
// optional information overrides
- virtual machine_config_constructor device_mconfig_additions() const override;
-
+ virtual void device_add_mconfig(machine_config &config) override;
};
// device type definition
diff --git a/src/mame/audio/decobsmt.cpp b/src/mame/audio/decobsmt.cpp
index bd0062dbf59..56a290bf440 100644
--- a/src/mame/audio/decobsmt.cpp
+++ b/src/mame/audio/decobsmt.cpp
@@ -35,7 +35,18 @@ void decobsmt_device::bsmt_ready_callback()
m_ourcpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE); /* BSMT is ready */
}
-MACHINE_CONFIG_START( decobsmt )
+//**************************************************************************
+// GLOBAL VARIABLES
+//**************************************************************************
+
+DEFINE_DEVICE_TYPE(DECOBSMT, decobsmt_device, "decobsmt", "Data East/Sega/Stern BSMT2000 Sound Board")
+
+
+//-------------------------------------------------
+// device_add_mconfig - add device configuration
+//-------------------------------------------------
+
+MACHINE_CONFIG_MEMBER( decobsmt_device::device_add_mconfig )
MCFG_CPU_ADD(M6809_TAG, M6809, (3579580/2))
MCFG_CPU_PROGRAM_MAP(decobsmt_map)
MCFG_CPU_PERIODIC_INT_DRIVER(decobsmt_device, decobsmt_firq_interrupt, 489) /* Fixed FIRQ of 489Hz as measured on real (pinball) machine */
@@ -49,23 +60,6 @@ MACHINE_CONFIG_START( decobsmt )
MACHINE_CONFIG_END
//**************************************************************************
-// GLOBAL VARIABLES
-//**************************************************************************
-
-DEFINE_DEVICE_TYPE(DECOBSMT, decobsmt_device, "decobsmt", "Data East/Sega/Stern BSMT2000 Sound Board")
-
-
-//-------------------------------------------------
-// machine_config_additions - device-specific
-// machine configurations
-//-------------------------------------------------
-
-machine_config_constructor decobsmt_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( decobsmt );
-}
-
-//**************************************************************************
// LIVE DEVICE
//**************************************************************************
diff --git a/src/mame/audio/decobsmt.h b/src/mame/audio/decobsmt.h
index 9615a7649bd..41cce0e3282 100644
--- a/src/mame/audio/decobsmt.h
+++ b/src/mame/audio/decobsmt.h
@@ -32,15 +32,11 @@ public:
DECLARE_WRITE_LINE_MEMBER(bsmt_reset_line);
- INTERRUPT_GEN_MEMBER(decobsmt_firq_interrupt);
-
- void bsmt_ready_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<cpu_device> m_ourcpu;
@@ -49,6 +45,10 @@ private:
uint8_t m_bsmt_latch;
uint8_t m_bsmt_reset;
uint8_t m_bsmt_comms;
+
+ INTERRUPT_GEN_MEMBER(decobsmt_firq_interrupt);
+
+ void bsmt_ready_callback();
};
diff --git a/src/mame/audio/dsbz80.cpp b/src/mame/audio/dsbz80.cpp
index 3330cc865b7..34d3cc33938 100644
--- a/src/mame/audio/dsbz80.cpp
+++ b/src/mame/audio/dsbz80.cpp
@@ -32,7 +32,18 @@ static ADDRESS_MAP_START( dsbz80io_map, AS_IO, 8, dsbz80_device )
ADDRESS_MAP_END
-MACHINE_CONFIG_START( dsbz80 )
+//**************************************************************************
+// GLOBAL VARIABLES
+//**************************************************************************
+
+DEFINE_DEVICE_TYPE(DSBZ80, dsbz80_device, "dsbz80_device", "Sega Z80-based Digital Sound Board")
+
+
+//-------------------------------------------------
+// device_add_mconfig - add device configuration
+//-------------------------------------------------
+
+MACHINE_CONFIG_MEMBER( dsbz80_device::device_add_mconfig )
MCFG_CPU_ADD(Z80_TAG, Z80, 4000000) /* unknown clock, but probably pretty slow considering the z80 does like nothing */
MCFG_CPU_PROGRAM_MAP(dsbz80_map)
MCFG_CPU_IO_MAP(dsbz80io_map)
@@ -46,23 +57,6 @@ MACHINE_CONFIG_START( dsbz80 )
MACHINE_CONFIG_END
//**************************************************************************
-// GLOBAL VARIABLES
-//**************************************************************************
-
-DEFINE_DEVICE_TYPE(DSBZ80, dsbz80_device, "dsbz80_device", "Sega Z80-based Digital Sound Board")
-
-
-//-------------------------------------------------
-// machine_config_additions - device-specific
-// machine configurations
-//-------------------------------------------------
-
-machine_config_constructor dsbz80_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( dsbz80 );
-}
-
-//**************************************************************************
// LIVE DEVICE
//**************************************************************************
diff --git a/src/mame/audio/dsbz80.h b/src/mame/audio/dsbz80.h
index e8c18c96781..018232c4b9c 100644
--- a/src/mame/audio/dsbz80.h
+++ b/src/mame/audio/dsbz80.h
@@ -27,9 +27,6 @@ public:
// construction/destruction
dsbz80_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<class _Object> static devcb_base &set_rxd_handler(device_t &device, _Object &&object) { return downcast<dsbz80_device &>(device).m_rxd_handler.set_callback(std::forward<_Object>(object)); }
@@ -37,7 +34,6 @@ public:
required_device<i8251_device> m_uart;
DECLARE_WRITE_LINE_MEMBER(write_txd);
- DECLARE_WRITE_LINE_MEMBER(output_txd);
DECLARE_WRITE8_MEMBER(mpeg_trigger_w);
DECLARE_WRITE8_MEMBER(mpeg_start_w);
@@ -50,7 +46,7 @@ protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
-
+ virtual void device_add_mconfig(machine_config &config) override;
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
private:
@@ -60,6 +56,8 @@ private:
int mp_pos, audio_pos, audio_avail;
devcb_write_line m_rxd_handler;
+
+ DECLARE_WRITE_LINE_MEMBER(output_txd);
};
diff --git a/src/mame/audio/efo_zsu.cpp b/src/mame/audio/efo_zsu.cpp
index 66b31213dcd..4a590b85695 100644
--- a/src/mame/audio/efo_zsu.cpp
+++ b/src/mame/audio/efo_zsu.cpp
@@ -187,8 +187,7 @@ TIMER_CALLBACK_MEMBER(cedar_magnet_sound_device::reset_assert_callback)
}
-
-static MACHINE_CONFIG_START( efo_zsu )
+MACHINE_CONFIG_MEMBER( efo_zsu_device::device_add_mconfig )
MCFG_CPU_ADD("soundcpu", Z80, 4000000)
MCFG_CPU_PROGRAM_MAP(zsu_map)
MCFG_CPU_IO_MAP(zsu_io)
@@ -237,8 +236,8 @@ static MACHINE_CONFIG_START( efo_zsu )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_START( cedar_magnet_sound )
- MCFG_FRAGMENT_ADD(efo_zsu)
+MACHINE_CONFIG_MEMBER( cedar_magnet_sound_device::device_add_mconfig )
+ efo_zsu_device::device_add_mconfig(config);
MCFG_CPU_MODIFY("soundcpu")
MCFG_CPU_PROGRAM_MAP(cedar_magnet_sound_map)
@@ -247,16 +246,6 @@ static MACHINE_CONFIG_START( cedar_magnet_sound )
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(cedar_magnet_sound_device, ay0_porta_w))
MACHINE_CONFIG_END
-machine_config_constructor efo_zsu_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( efo_zsu );
-}
-
-machine_config_constructor cedar_magnet_sound_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( cedar_magnet_sound );
-}
-
void efo_zsu_device::device_start()
{
memory_bank *rombank = membank("rombank");
diff --git a/src/mame/audio/efo_zsu.h b/src/mame/audio/efo_zsu.h
index c0e6bf00542..1b32dde43e8 100644
--- a/src/mame/audio/efo_zsu.h
+++ b/src/mame/audio/efo_zsu.h
@@ -37,6 +37,14 @@ public:
DECLARE_WRITE8_MEMBER(sound_command_w);
DECLARE_WRITE8_MEMBER(adpcm_fifo_w);
+
+protected:
+ efo_zsu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
+
+ virtual void device_add_mconfig(machine_config &config) override;
+ virtual void device_start() override;
+
+private:
DECLARE_WRITE8_MEMBER(ay1_porta_w);
DECLARE_WRITE_LINE_MEMBER(ctc1_z0_w);
@@ -46,12 +54,6 @@ public:
DECLARE_WRITE_LINE_MEMBER(ctc0_z1_w);
DECLARE_WRITE_LINE_MEMBER(ctc0_z2_w);
DECLARE_WRITE_LINE_MEMBER(fifo_dor_w);
-
-protected:
- efo_zsu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
-
- virtual machine_config_constructor device_mconfig_additions() const override;
- virtual void device_start() override;
};
@@ -72,13 +74,14 @@ public:
// construction/destruction
cedar_magnet_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
- DECLARE_WRITE8_MEMBER(ay0_porta_w);
-
TIMER_CALLBACK_MEMBER(reset_assert_callback) override;
protected:
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
virtual void device_start() override;
+
+private:
+ DECLARE_WRITE8_MEMBER(ay0_porta_w);
};
#endif // MAME_AUDIO_EFO_ZSU_H
diff --git a/src/mame/includes/alesis.h b/src/mame/includes/alesis.h
index cdcf4723b56..8cbadadd0ca 100644
--- a/src/mame/includes/alesis.h
+++ b/src/mame/includes/alesis.h
@@ -30,9 +30,6 @@ public:
// construction/destruction
alesis_dm3ag_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;
-
// device interface
DECLARE_WRITE8_MEMBER(write);
@@ -41,6 +38,7 @@ protected:
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;
+ virtual void device_add_mconfig(machine_config &config) override;
private:
static const device_timer_id TIMER_DAC_UPDATE = 1;
diff --git a/src/mame/includes/hng64.h b/src/mame/includes/hng64.h
index 631742d4563..d9e873e4a24 100644
--- a/src/mame/includes/hng64.h
+++ b/src/mame/includes/hng64.h
@@ -340,6 +340,7 @@ public:
std::unique_ptr<hng64_poly_renderer> m_poly_renderer;
TIMER_CALLBACK_MEMBER(hng64_3dfifo_processed);
+ emu_timer *m_3dfifo_timer;
uint8_t *m_texturerom;
uint16_t* m_vertsrom;
diff --git a/src/mame/video/hng64_3d.hxx b/src/mame/video/hng64_3d.hxx
index 7f96c7412ad..b0d711a3216 100644
--- a/src/mame/video/hng64_3d.hxx
+++ b/src/mame/video/hng64_3d.hxx
@@ -71,7 +71,7 @@ g_profiler.start(PROFILER_USER1);
}
// Schedule a small amount of time to let the 3d hardware rasterize the display buffer
- machine().scheduler().timer_set(m_maincpu->cycles_to_attotime(0x200*8), timer_expired_delegate(FUNC(hng64_state::hng64_3dfifo_processed), this));
+ m_3dfifo_timer->adjust(m_maincpu->cycles_to_attotime(0x200*8));
g_profiler.stop();
}