summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author mooglyguy <therealmogminer@gmail.com>2018-12-19 07:53:28 +0100
committer mooglyguy <therealmogminer@gmail.com>2018-12-19 07:53:52 +0100
commitcf5a34ce49c521ea979bc63e31b19fca11fdcef1 (patch)
tree2cf20723e8f6b02adebfd1db814e8db80d6d99be
parentd07330bb293e93c6ac63cb10c1bdaa48ce29267d (diff)
-sound/dave, digitalk, k051649, lc7535, n63701x, namco, nile, s14001a: Removed MCFG macros. [Ryan Holtz]
-drivers/20pacgal, baraduke, deco32, fidel6502, fidelz80, galaga, gaplus, hcastle, hexion, jrpacman, konmedal, mappy, namcos86, pacland, pengo, polepos, quickpick5, rallyx, skykid, srmp6, tceptor, toypop: Removed MACHINE_CONFIG macros. [Ryan Holtz]
-rw-r--r--src/devices/sound/dave.h31
-rw-r--r--src/devices/sound/digitalk.h11
-rw-r--r--src/devices/sound/k051649.h11
-rw-r--r--src/devices/sound/lc7535.h26
-rw-r--r--src/devices/sound/n63701x.h10
-rw-r--r--src/devices/sound/namco.cpp2
-rw-r--r--src/devices/sound/namco.h11
-rw-r--r--src/devices/sound/nile.h10
-rw-r--r--src/devices/sound/s14001a.h7
-rw-r--r--src/mame/drivers/20pacgal.cpp39
-rw-r--r--src/mame/drivers/baraduke.cpp47
-rw-r--r--src/mame/drivers/deco32.cpp278
-rw-r--r--src/mame/drivers/fidel6502.cpp391
-rw-r--r--src/mame/drivers/fidelz80.cpp155
-rw-r--r--src/mame/drivers/galaga.cpp227
-rw-r--r--src/mame/drivers/gaplus.cpp41
-rw-r--r--src/mame/drivers/hcastle.cpp66
-rw-r--r--src/mame/drivers/hexion.cpp58
-rw-r--r--src/mame/drivers/jrpacman.cpp45
-rw-r--r--src/mame/drivers/konmedal.cpp123
-rw-r--r--src/mame/drivers/mappy.cpp155
-rw-r--r--src/mame/drivers/namcos86.cpp123
-rw-r--r--src/mame/drivers/pacland.cpp36
-rw-r--r--src/mame/drivers/pengo.cpp56
-rw-r--r--src/mame/drivers/polepos.cpp142
-rw-r--r--src/mame/drivers/quickpick5.cpp45
-rw-r--r--src/mame/drivers/rallyx.cpp139
-rw-r--r--src/mame/drivers/skykid.cpp44
-rw-r--r--src/mame/drivers/srmp6.cpp36
-rw-r--r--src/mame/drivers/tceptor.cpp78
-rw-r--r--src/mame/drivers/toypop.cpp55
-rw-r--r--src/mame/includes/baraduke.h3
-rw-r--r--src/mame/includes/deco32.h3
-rw-r--r--src/mame/includes/hexion.h5
-rw-r--r--src/mame/includes/namcos86.h5
-rw-r--r--src/mame/includes/rallyx.h5
-rw-r--r--src/mame/includes/tceptor.h3
37 files changed, 1219 insertions, 1303 deletions
diff --git a/src/devices/sound/dave.h b/src/devices/sound/dave.h
index c18df5f4eca..f7bc83373b8 100644
--- a/src/devices/sound/dave.h
+++ b/src/devices/sound/dave.h
@@ -13,37 +13,6 @@
///*************************************************************************
-// MACROS / CONSTANTS
-///*************************************************************************
-
-
-
-///*************************************************************************
-// INTERFACE CONFIGURATION MACROS
-///*************************************************************************
-
-#define MCFG_DAVE_ADD(_tag, _clock, _program_map, _io_map) \
- SPEAKER(config, "lspeaker").front_left(); \
- SPEAKER(config, "rspeaker").front_right(); \
- MCFG_DEVICE_ADD(_tag, DAVE, _clock) \
- MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) \
- MCFG_SOUND_ROUTE(1, "rspeaker", 0.25) \
- MCFG_DEVICE_ADDRESS_MAP(AS_PROGRAM, _program_map) \
- MCFG_DEVICE_ADDRESS_MAP(AS_IO, _io_map)
-
-
-#define MCFG_DAVE_IRQ_CALLBACK(_write) \
- downcast<dave_device &>(*device).set_irq_wr_callback(DEVCB_##_write);
-
-#define MCFG_DAVE_LH_CALLBACK(_write) \
- downcast<dave_device &>(*device).set_lh_wr_callback(DEVCB_##_write);
-
-#define MCFG_DAVE_RH_CALLBACK(_write) \
- downcast<dave_device &>(*device).set_rh_wr_callback(DEVCB_##_write);
-
-
-
-///*************************************************************************
// TYPE DEFINITIONS
///*************************************************************************
diff --git a/src/devices/sound/digitalk.h b/src/devices/sound/digitalk.h
index b93ee4a42f3..b4e2cb5cb97 100644
--- a/src/devices/sound/digitalk.h
+++ b/src/devices/sound/digitalk.h
@@ -7,17 +7,6 @@
//**************************************************************************
-// INTERFACE CONFIGURATION MACROS
-//**************************************************************************
-
-#define MCFG_DIGITALKER_ADD(tag, clock) \
- MCFG_DEVICE_ADD((tag), DIGITALKER, (clock))
-
-#define MCFG_DIGITALKER_REPLACE(tag, clock) \
- MCFG_DEVICE_REPLACE((tag), DIGITALKER, (clock))
-
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
diff --git a/src/devices/sound/k051649.h b/src/devices/sound/k051649.h
index 923cf7cd881..6ede7a295ee 100644
--- a/src/devices/sound/k051649.h
+++ b/src/devices/sound/k051649.h
@@ -7,20 +7,9 @@
//**************************************************************************
-// INTERFACE CONFIGURATION MACROS
-//**************************************************************************
-
-#define MCFG_K051649_ADD(_tag, _clock) \
- MCFG_DEVICE_ADD(_tag, K051649, _clock)
-#define MCFG_K051649_REPLACE(_tag, _clock) \
- MCFG_DEVICE_REPLACE(_tag, K051649, _clock)
-
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
-
// ======================> k051649_device
class k051649_device : public device_t,
diff --git a/src/devices/sound/lc7535.h b/src/devices/sound/lc7535.h
index 7b58f48ba37..f2137fd82c7 100644
--- a/src/devices/sound/lc7535.h
+++ b/src/devices/sound/lc7535.h
@@ -28,22 +28,11 @@
//**************************************************************************
-// INTERFACE CONFIGURATION MACROS
+// TYPE DEFINITIONS
//**************************************************************************
-#define MCFG_LC7535_SELECT_CB(_read) \
- downcast<lc7535_device &>(*device).set_select_callback(DEVCB_##_read);
-
-#define MCFG_LC7535_VOLUME_CB(_class, _method) \
- downcast<lc7535_device &>(*device).set_volume_callback(lc7535_device::volume_delegate(&_class::_method, #_class "::" #_method, this));
-
#define LC7535_VOLUME_CHANGED(name) void name(int attenuation_right, int attenuation_left, bool loudness)
-
-//**************************************************************************
-// TYPE DEFINITIONS
-//**************************************************************************
-
class lc7535_device : public device_t
{
public:
@@ -52,9 +41,16 @@ public:
typedef device_delegate<void (int attenuation_right, int attenuation_left, bool loudness)> volume_delegate;
- template <typename Object> void set_volume_callback(Object &&cb) { m_volume_cb = std::forward<Object>(cb); }
-
- template <class Object> devcb_base &set_select_callback(Object &&cb) { return m_select_cb.set_callback(std::forward<Object>(cb)); }
+ auto select() { return m_select_cb.bind(); }
+ void set_volume_callback(volume_delegate callback) { m_volume_cb = callback; }
+ template <class FunctionClass> void set_volume_callback(const char *devname, void (FunctionClass::*callback)(int, int, bool), const char *name)
+ {
+ set_volume_callback(volume_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr)));
+ }
+ template <class FunctionClass> void set_volume_callback(void (FunctionClass::*callback)(int, int, bool), const char *name)
+ {
+ set_volume_callback(volume_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
+ }
// serial interface
DECLARE_WRITE_LINE_MEMBER( ce_w );
diff --git a/src/devices/sound/n63701x.h b/src/devices/sound/n63701x.h
index 50046252a53..062a5047d4f 100644
--- a/src/devices/sound/n63701x.h
+++ b/src/devices/sound/n63701x.h
@@ -6,16 +6,6 @@
#pragma once
//**************************************************************************
-// INTERFACE CONFIGURATION MACROS
-//**************************************************************************
-
-#define MCFG_NAMCO_63701X_ADD(_tag, _clock) \
- MCFG_DEVICE_ADD(_tag, NAMCO_63701X, _clock)
-#define MCFG_NAMCO_63701X_REPLACE(_tag, _clock) \
- MCFG_DEVICE_REPLACE(_tag, NAMCO_63701X, _clock)
-
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
diff --git a/src/devices/sound/namco.cpp b/src/devices/sound/namco.cpp
index 99c016996ed..a8a0d3b9259 100644
--- a/src/devices/sound/namco.cpp
+++ b/src/devices/sound/namco.cpp
@@ -61,7 +61,7 @@ namco_audio_device::namco_audio_device(const machine_config &mconfig, device_typ
, m_sample_rate(0)
, m_f_fracbits(0)
, m_voices(0)
- , m_stereo(0)
+ , m_stereo(false)
{
}
diff --git a/src/devices/sound/namco.h b/src/devices/sound/namco.h
index 560090cb71d..730cd581e1d 100644
--- a/src/devices/sound/namco.h
+++ b/src/devices/sound/namco.h
@@ -6,20 +6,13 @@
#pragma once
-#define MCFG_NAMCO_AUDIO_VOICES(_voices) \
- downcast<namco_audio_device &>(*device).set_voices(_voices);
-
-#define MCFG_NAMCO_AUDIO_STEREO(_stereo) \
- downcast<namco_audio_device &>(*device).set_stereo(_stereo);
-
-
class namco_audio_device : public device_t,
public device_sound_interface
{
public:
// configuration
void set_voices(int voices) { m_voices = voices; }
- void set_stereo(int stereo) { m_stereo = stereo; }
+ void set_stereo(bool stereo) { m_stereo = stereo; }
DECLARE_WRITE_LINE_MEMBER(sound_enable_w);
@@ -71,7 +64,7 @@ protected:
int m_f_fracbits;
int m_voices; /* number of voices */
- int m_stereo; /* set to 1 to indicate stereo (e.g., System 1) */
+ bool m_stereo; /* set to indicate stereo (e.g., System 1) */
/* decoded waveform table */
int16_t *m_waveform[MAX_VOLUME];
diff --git a/src/devices/sound/nile.h b/src/devices/sound/nile.h
index fdfead14ead..20a7a0a0c99 100644
--- a/src/devices/sound/nile.h
+++ b/src/devices/sound/nile.h
@@ -7,16 +7,6 @@
//**************************************************************************
-// INTERFACE CONFIGURATION MACROS
-//**************************************************************************
-
-#define MCFG_NILE_ADD(_tag, _clock) \
- MCFG_DEVICE_ADD(_tag, NILE, _clock)
-#define MCFG_NILE_REPLACE(_tag, _clock) \
- MCFG_DEVICE_REPLACE(_tag, NILE, _clock)
-
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
diff --git a/src/devices/sound/s14001a.h b/src/devices/sound/s14001a.h
index 5c80f99be5d..692ae0866f7 100644
--- a/src/devices/sound/s14001a.h
+++ b/src/devices/sound/s14001a.h
@@ -8,13 +8,6 @@
#ifndef MAME_SOUND_S14001A_H
#define MAME_SOUND_S14001A_H
-#define MCFG_S14001A_BSY_HANDLER(_devcb) \
- downcast<s14001a_device &>(*device).set_bsy_handler(DEVCB_##_devcb);
-
-#define MCFG_S14001A_EXT_READ_HANDLER(_devcb) \
- downcast<s14001a_device &>(*device).set_ext_read_handler(DEVCB_##_devcb);
-
-
class s14001a_device : public device_t, public device_sound_interface
{
public:
diff --git a/src/mame/drivers/20pacgal.cpp b/src/mame/drivers/20pacgal.cpp
index ef5f729c28c..77e1873ac23 100644
--- a/src/mame/drivers/20pacgal.cpp
+++ b/src/mame/drivers/20pacgal.cpp
@@ -397,14 +397,14 @@ WRITE_LINE_MEMBER(_20pacgal_state::vblank_irq)
m_maincpu->set_input_line(0, HOLD_LINE); // TODO: assert breaks the inputs in 25pacman test mode
}
-MACHINE_CONFIG_START(_20pacgal_state::_20pacgal)
-
+void _20pacgal_state::_20pacgal(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z180, MAIN_CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(_20pacgal_map)
- MCFG_DEVICE_IO_MAP(_20pacgal_io_map)
+ Z180(config, m_maincpu, MAIN_CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &_20pacgal_state::_20pacgal_map);
+ m_maincpu->set_addrmap(AS_IO, &_20pacgal_state::_20pacgal_io_map);
- EEPROM_93C46_8BIT(config, "eeprom");
+ EEPROM_93C46_8BIT(config, m_eeprom);
WATCHDOG_TIMER(config, "watchdog");
@@ -414,26 +414,27 @@ MACHINE_CONFIG_START(_20pacgal_state::_20pacgal)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("namco", NAMCO_CUS30, NAMCO_AUDIO_CLOCK)
- MCFG_NAMCO_AUDIO_VOICES(3)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
-
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // unknown DAC
- MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
-MACHINE_CONFIG_END
+ namco_cus30_device &namco(NAMCO_CUS30(config, "namco", NAMCO_AUDIO_CLOCK));
+ namco.set_voices(3);
+ namco.add_route(ALL_OUTPUTS, "speaker", 1.0);
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 1.0); // unknown DAC
+ voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
+ vref.set_output(5.0);
+ vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
+ vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
+}
-MACHINE_CONFIG_START(_25pacman_state::_25pacman)
+void _25pacman_state::_25pacman(machine_config &config)
+{
_20pacgal(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(_25pacman_map)
- MCFG_DEVICE_IO_MAP(_25pacman_io_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &_25pacman_state::_25pacman_map);
+ m_maincpu->set_addrmap(AS_IO, &_25pacman_state::_25pacman_io_map);
AMD_29LV200T(config, "flash");
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/baraduke.cpp b/src/mame/drivers/baraduke.cpp
index 71def525896..08f5262567d 100644
--- a/src/mame/drivers/baraduke.cpp
+++ b/src/mame/drivers/baraduke.cpp
@@ -111,7 +111,6 @@ DIP locations verified for:
#include "includes/baraduke.h"
#include "cpu/m6809/m6809.h"
-#include "cpu/m6800/m6801.h"
#include "machine/watchdog.h"
#include "screen.h"
#include "speaker.h"
@@ -364,41 +363,41 @@ void baraduke_state::machine_start()
}
-MACHINE_CONFIG_START(baraduke_state::baraduke)
-
+void baraduke_state::baraduke(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", MC6809E, XTAL(49'152'000)/32) // 68A09E
- MCFG_DEVICE_PROGRAM_MAP(baraduke_map)
+ MC6809E(config, m_maincpu, XTAL(49'152'000)/32); // 68A09E
+ m_maincpu->set_addrmap(AS_PROGRAM, &baraduke_state::baraduke_map);
- hd63701_cpu_device &mcu(HD63701(config, m_mcu, XTAL(49'152'000)/8));
- mcu.set_addrmap(AS_PROGRAM, &baraduke_state::mcu_map);
- mcu.in_p1_cb().set(FUNC(baraduke_state::inputport_r)); /* input ports read */
- mcu.out_p1_cb().set(FUNC(baraduke_state::inputport_select_w)); /* input port select */
- mcu.in_p2_cb().set_constant(0xff); /* leds won't work otherwise */
- mcu.out_p2_cb().set(FUNC(baraduke_state::baraduke_lamps_w)); /* lamps */
+ HD63701(config, m_mcu, XTAL(49'152'000)/8);
+ m_mcu->set_addrmap(AS_PROGRAM, &baraduke_state::mcu_map);
+ m_mcu->in_p1_cb().set(FUNC(baraduke_state::inputport_r)); /* input ports read */
+ m_mcu->out_p1_cb().set(FUNC(baraduke_state::inputport_select_w)); /* input port select */
+ m_mcu->in_p2_cb().set_constant(0xff); /* leds won't work otherwise */
+ m_mcu->out_p2_cb().set(FUNC(baraduke_state::baraduke_lamps_w)); /* lamps */
- MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* we need heavy synch */
+ config.m_minimum_quantum = attotime::from_hz(6000); /* we need heavy synch */
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(49'152'000)/8, 384, 0, 36*8, 264, 2*8, 30*8)
- MCFG_SCREEN_UPDATE_DRIVER(baraduke_state, screen_update_baraduke)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, baraduke_state, screen_vblank_baraduke))
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(XTAL(49'152'000)/8, 384, 0, 36*8, 264, 2*8, 30*8);
+ screen.set_screen_update(FUNC(baraduke_state::screen_update_baraduke));
+ screen.screen_vblank().set(FUNC(baraduke_state::screen_vblank_baraduke));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_baraduke)
- MCFG_PALETTE_ADD("palette", 2048)
- MCFG_PALETTE_INIT_OWNER(baraduke_state, baraduke)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_baraduke);
+ PALETTE(config, m_palette, 2048);
+ m_palette->set_init(FUNC(baraduke_state::palette_init_baraduke));
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("namco", NAMCO_CUS30, XTAL(49'152'000)/2048)
- MCFG_NAMCO_AUDIO_VOICES(8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ NAMCO_CUS30(config, m_cus30, XTAL(49'152'000)/2048);
+ m_cus30->set_voices(8);
+ m_cus30->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
diff --git a/src/mame/drivers/deco32.cpp b/src/mame/drivers/deco32.cpp
index 75889944f04..ebe29ad6eb9 100644
--- a/src/mame/drivers/deco32.cpp
+++ b/src/mame/drivers/deco32.cpp
@@ -1854,33 +1854,32 @@ GFXDECODE_END
// MACHINE DEFINITIONS
//**************************************************************************
-MACHINE_CONFIG_START(captaven_state::captaven)
-
+void captaven_state::captaven(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", ARM, XTAL(28'000'000)/4) /* verified on pcb (Data East 101 custom)*/
- MCFG_DEVICE_PROGRAM_MAP(captaven_map)
+ ARM(config, m_maincpu, XTAL(28'000'000)/4); /* verified on pcb (Data East 101 custom)*/
+ m_maincpu->set_addrmap(AS_PROGRAM, &captaven_state::captaven_map);
h6280_device &audiocpu(H6280(config, m_audiocpu, XTAL(32'220'000)/4/3)); /* pin 10 is 32mhz/4, pin 14 is High so internal divisor is 3 (verified on pcb) */
audiocpu.set_addrmap(AS_PROGRAM, &captaven_state::h6280_sound_map);
audiocpu.add_route(ALL_OUTPUTS, "lspeaker", 0); // internal sound unused
audiocpu.add_route(ALL_OUTPUTS, "rspeaker", 0);
- MCFG_INPUT_MERGER_ANY_HIGH("irq_merger")
- MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("maincpu", ARM_IRQ_LINE))
+ INPUT_MERGER_ANY_HIGH(config, "irq_merger").output_handler().set_inputline("maincpu", ARM_IRQ_LINE);
DECO_IRQ(config, m_deco_irq, 0);
m_deco_irq->set_screen_tag(m_screen);
m_deco_irq->raster2_irq_callback().set("irq_merger", FUNC(input_merger_any_high_device::in_w<0>));
m_deco_irq->vblank_irq_callback().set("irq_merger", FUNC(input_merger_any_high_device::in_w<1>));
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248)
- MCFG_SCREEN_UPDATE_DRIVER(captaven_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248);
+ m_screen->set_screen_update(FUNC(captaven_state::screen_update));
+ m_screen->set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_captaven)
- MCFG_PALETTE_ADD("palette", 2048)
- MCFG_PALETTE_FORMAT(XBGR)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_captaven);
+ PALETTE(config, m_palette, 2048);
+ m_palette->set_format(PALETTE_FORMAT_XBGR);
DECO16IC(config, m_deco_tilegen[0], 0);
m_deco_tilegen[0]->set_split(0);
@@ -1933,34 +1932,35 @@ MACHINE_CONFIG_START(captaven_state::captaven)
m_ym2151->add_route(0, "lspeaker", 0.42);
m_ym2151->add_route(1, "rspeaker", 0.42);
- MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(32'220'000)/32, okim6295_device::PIN7_HIGH) /* verified on pcb; pin 7 is floating to 2.5V (left unconnected), so I presume High */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
+ OKIM6295(config, m_oki[0], XTAL(32'220'000)/32, okim6295_device::PIN7_HIGH); /* verified on pcb; pin 7 is floating to 2.5V (left unconnected), so I presume High */
+ m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
- MCFG_DEVICE_ADD("oki2", OKIM6295, XTAL(32'220'000)/16, okim6295_device::PIN7_HIGH) /* verified on pcb; pin 7 is floating to 2.5V (left unconnected), so I presume High */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.35)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.35)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki[1], XTAL(32'220'000)/16, okim6295_device::PIN7_HIGH); /* verified on pcb; pin 7 is floating to 2.5V (left unconnected), so I presume High */
+ m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.35);
+ m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.35);
+}
// DE-0380-2
-MACHINE_CONFIG_START(fghthist_state::fghthist)
- MCFG_DEVICE_ADD("maincpu", ARM, XTAL(28'000'000) / 4)
- MCFG_DEVICE_PROGRAM_MAP(fghthist_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", deco32_state, irq0_line_assert)
+void fghthist_state::fghthist(machine_config &config)
+{
+ ARM(config, m_maincpu, XTAL(28'000'000) / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &fghthist_state::fghthist_map);
+ m_maincpu->set_vblank_int("screen", FUNC(deco32_state::irq0_line_assert));
h6280_device &audiocpu(H6280(config, m_audiocpu, XTAL(32'220'000) / 8));
audiocpu.set_addrmap(AS_PROGRAM, &fghthist_state::h6280_sound_custom_latch_map);
audiocpu.add_route(ALL_OUTPUTS, "lspeaker", 0); // internal sound unused
audiocpu.add_route(ALL_OUTPUTS, "rspeaker", 0);
- EEPROM_93C46_16BIT(config, "eeprom");
+ EEPROM_93C46_16BIT(config, m_eeprom);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248)
- MCFG_SCREEN_UPDATE_DRIVER(fghthist_state, screen_update)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248);
+ m_screen->set_screen_update(FUNC(fghthist_state::screen_update));
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_fghthist)
- MCFG_PALETTE_ADD("palette", 2048)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_fghthist);
+ PALETTE(config, m_palette, 2048);
DECO16IC(config, m_deco_tilegen[0], 0);
m_deco_tilegen[0]->set_split(0);
@@ -2018,28 +2018,26 @@ MACHINE_CONFIG_START(fghthist_state::fghthist)
m_ym2151->add_route(0, "lspeaker", 0.42);
m_ym2151->add_route(1, "rspeaker", 0.42);
- MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
+ OKIM6295(config, m_oki[0], 32220000/32, okim6295_device::PIN7_HIGH);
+ m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
- MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.35)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.35)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH);
+ m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.35);
+ m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.35);
+}
// DE-0395-1
-MACHINE_CONFIG_START(fghthist_state::fghthsta)
+void fghthist_state::fghthsta(machine_config &config)
+{
fghthist(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(fghthsta_memmap)
-
- MCFG_DEVICE_MODIFY("audiocpu")
- MCFG_DEVICE_PROGRAM_MAP(h6280_sound_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &fghthist_state::fghthsta_memmap);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &fghthist_state::h6280_sound_map);
config.device_remove("soundlatch");
m_ioprot->soundlatch_irq_cb().set_inputline(m_audiocpu, 0);
-MACHINE_CONFIG_END
+}
// DE-0396-0
void fghthist_state::fghthistu(machine_config &config)
@@ -2061,34 +2059,33 @@ void fghthist_state::fghthistu(machine_config &config)
}
// DE-0359-2 + Bottom board DE-0360-4
-MACHINE_CONFIG_START(dragngun_state::dragngun)
-
+void dragngun_state::dragngun(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", ARM, XTAL(28'000'000) / 4)
- MCFG_DEVICE_PROGRAM_MAP(dragngun_map)
+ ARM(config, m_maincpu, XTAL(28'000'000) / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &dragngun_state::dragngun_map);
h6280_device &audiocpu(H6280(config, m_audiocpu, 32220000/8));
audiocpu.set_addrmap(AS_PROGRAM, &dragngun_state::h6280_sound_map);
audiocpu.add_route(ALL_OUTPUTS, "lspeaker", 0); // internal sound unused
audiocpu.add_route(ALL_OUTPUTS, "rspeaker", 0);
- MCFG_INPUT_MERGER_ANY_HIGH("irq_merger")
- MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("maincpu", ARM_IRQ_LINE))
+ INPUT_MERGER_ANY_HIGH(config, "irq_merger").output_handler().set_inputline("maincpu", ARM_IRQ_LINE);
DECO_IRQ(config, m_deco_irq, 0);
m_deco_irq->set_screen_tag(m_screen);
m_deco_irq->raster2_irq_callback().set("irq_merger", FUNC(input_merger_any_high_device::in_w<0>));
m_deco_irq->vblank_irq_callback().set("irq_merger", FUNC(input_merger_any_high_device::in_w<1>));
- EEPROM_93C46_16BIT(config, "eeprom");
+ EEPROM_93C46_16BIT(config, m_eeprom);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248)
- MCFG_SCREEN_UPDATE_DRIVER(dragngun_state, screen_update)
- //MCFG_SCREEN_PALETTE("palette")
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248);
+ m_screen->set_screen_update(FUNC(dragngun_state::screen_update));
+ //m_screen->set_palette(m_palette);
- MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM32)
+ BUFFERED_SPRITERAM32(config, m_spriteram);
DECO16IC(config, m_deco_tilegen[0], 0);
m_deco_tilegen[0]->set_split(0);
@@ -2125,8 +2122,8 @@ MACHINE_CONFIG_START(dragngun_state::dragngun)
DECO_ZOOMSPR(config, m_sprgenzoom, 0);
m_sprgenzoom->set_gfxdecode(m_gfxdecode);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_dragngun)
- MCFG_PALETTE_ADD("palette", 2048)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_dragngun);
+ PALETTE(config, m_palette, 2048);
DECO146PROT(config, m_ioprot, 0);
m_ioprot->port_a_cb().set_ioport("INPUTS");
@@ -2145,35 +2142,33 @@ MACHINE_CONFIG_START(dragngun_state::dragngun)
m_ym2151->add_route(0, "lspeaker", 0.42);
m_ym2151->add_route(1, "rspeaker", 0.42);
- MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
+ OKIM6295(config, m_oki[0], 32220000/32, okim6295_device::PIN7_HIGH);
+ m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
- MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.35)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.35)
+ OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH);
+ m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.35);
+ m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.35);
SPEAKER(config, "gun_speaker").front_center();
- MCFG_DEVICE_ADD("oki3", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "gun_speaker", 1.0)
+ OKIM6295(config, m_oki[2], 32220000/32, okim6295_device::PIN7_HIGH);
+ m_oki[2]->add_route(ALL_OUTPUTS, "gun_speaker", 1.0);
- MCFG_DEVICE_ADD("vol_main", LC7535)
- MCFG_LC7535_SELECT_CB(CONSTANT(1))
- MCFG_LC7535_VOLUME_CB(dragngun_state, volume_main_changed)
+ LC7535(config, m_vol_main);
+ m_vol_main->select().set_constant(1);
+ m_vol_main->set_volume_callback(FUNC(dragngun_state::volume_main_changed));
- MCFG_DEVICE_ADD("vol_gun", LC7535)
- MCFG_LC7535_SELECT_CB(CONSTANT(0))
- MCFG_LC7535_VOLUME_CB(dragngun_state, volume_gun_changed)
-MACHINE_CONFIG_END
+ LC7535(config, m_vol_gun);
+ m_vol_gun->select().set_constant(0);
+ m_vol_gun->set_volume_callback(FUNC(dragngun_state::volume_gun_changed));
+}
-MACHINE_CONFIG_START(dragngun_state::lockloadu)
+void dragngun_state::lockloadu(machine_config &config)
+{
dragngun(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(lockloadu_map)
-
- MCFG_DEVICE_MODIFY("audiocpu")
- MCFG_DEVICE_PROGRAM_MAP(lockloadu_sound_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &dragngun_state::lockloadu_map);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &dragngun_state::lockloadu_sound_map);
m_deco_irq->lightgun_irq_callback().set("irq_merger", FUNC(input_merger_any_high_device::in_w<2>));
@@ -2181,24 +2176,22 @@ MACHINE_CONFIG_START(dragngun_state::lockloadu)
m_deco_tilegen[1]->set_pf2_size(DECO_32x32); // lockload definitely wants pf34 half width..
m_ym2151->port_write_handler().set(FUNC(dragngun_state::lockload_okibank_lo_w));
-MACHINE_CONFIG_END
+}
// DE-0420-1 + Bottom board DE-0421-0
-MACHINE_CONFIG_START(dragngun_state::lockload)
-
+void dragngun_state::lockload(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", ARM, XTAL(28'000'000) / 4)
- MCFG_DEVICE_PROGRAM_MAP(lockload_map)
+ ARM(config, m_maincpu, XTAL(28'000'000) / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &dragngun_state::lockload_map);
- MCFG_INPUT_MERGER_ANY_HIGH("irq_merger")
- MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("maincpu", ARM_IRQ_LINE))
+ INPUT_MERGER_ANY_HIGH(config, "irq_merger").output_handler().set_inputline("maincpu", ARM_IRQ_LINE);
- MCFG_DEVICE_ADD("audiocpu", Z80, 32220000/8)
- MCFG_DEVICE_PROGRAM_MAP(lockload_sound_map)
- MCFG_DEVICE_IO_MAP(z80_sound_io)
+ Z80(config, m_audiocpu, 32220000/8);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &dragngun_state::lockload_sound_map);
+ m_audiocpu->set_addrmap(AS_IO, &dragngun_state::z80_sound_io);
- MCFG_INPUT_MERGER_ANY_HIGH("sound_irq_merger")
- MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_IRQ0))
+ INPUT_MERGER_ANY_HIGH(config, "sound_irq_merger").output_handler().set_inputline("audiocpu", INPUT_LINE_IRQ0);
DECO_IRQ(config, m_deco_irq, 0);
m_deco_irq->set_screen_tag(m_screen);
@@ -2208,19 +2201,19 @@ MACHINE_CONFIG_START(dragngun_state::lockload)
m_deco_irq->vblank_irq_callback().set("irq_merger", FUNC(input_merger_any_high_device::in_w<1>));
m_deco_irq->lightgun_irq_callback().set("irq_merger", FUNC(input_merger_any_high_device::in_w<2>));
- MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* to improve main<->audio comms */
+ config.m_minimum_quantum = attotime::from_hz(6000); /* to improve main<->audio comms */
- EEPROM_93C46_16BIT(config, "eeprom");
+ EEPROM_93C46_16BIT(config, m_eeprom);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248)
- MCFG_SCREEN_UPDATE_DRIVER(dragngun_state, screen_update)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248);
+ m_screen->set_screen_update(FUNC(dragngun_state::screen_update));
- MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM32)
+ BUFFERED_SPRITERAM32(config, m_spriteram);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_dragngun)
- MCFG_PALETTE_ADD("palette", 2048)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_dragngun);
+ PALETTE(config, m_palette, 2048);
DECO16IC(config, m_deco_tilegen[0], 0);
m_deco_tilegen[0]->set_split(0);
@@ -2274,31 +2267,31 @@ MACHINE_CONFIG_START(dragngun_state::lockload)
m_ym2151->add_route(0, "lspeaker", 0.42);
m_ym2151->add_route(1, "rspeaker", 0.42);
- MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
-
- MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.35)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.35)
+ OKIM6295(config, m_oki[0], 32220000/32, okim6295_device::PIN7_HIGH);
+ m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
- MCFG_DEVICE_ADD("vol_main", LC7535)
- MCFG_LC7535_SELECT_CB(CONSTANT(1))
- MCFG_LC7535_VOLUME_CB(dragngun_state, volume_main_changed)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH);
+ m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.35);
+ m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.35);
-MACHINE_CONFIG_START(nslasher_state::tattass)
+ LC7535(config, m_vol_main);
+ m_vol_main->select().set_constant(1);
+ m_vol_main->set_volume_callback(FUNC(dragngun_state::volume_main_changed));
+}
+void nslasher_state::tattass(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", ARM, 28000000/4) // unconfirmed
- MCFG_DEVICE_PROGRAM_MAP(tattass_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", deco32_state, irq0_line_assert)
+ ARM(config, m_maincpu, 28000000/4); // unconfirmed
+ m_maincpu->set_addrmap(AS_PROGRAM, &nslasher_state::tattass_map);
+ m_maincpu->set_vblank_int("screen", FUNC(deco32_state::irq0_line_assert));
- EEPROM_93C76_8BIT(config, "eeprom");
+ EEPROM_93C76_8BIT(config, m_eeprom);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248)
- MCFG_SCREEN_UPDATE_DRIVER(nslasher_state, screen_update)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248);
+ m_screen->set_screen_update(FUNC(nslasher_state::screen_update));
DECO_ACE(config, m_deco_ace, 0);
@@ -2342,7 +2335,7 @@ MACHINE_CONFIG_START(nslasher_state::tattass)
m_sprgen[1]->set_gfx_region(4);
m_sprgen[1]->set_gfxdecode_tag(m_gfxdecode);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_deco_ace, gfx_tattass)
+ GFXDECODE(config, m_gfxdecode, m_deco_ace, gfx_tattass);
DECO104PROT(config, m_ioprot, 0);
m_ioprot->port_a_cb().set_ioport("IN0");
@@ -2353,29 +2346,28 @@ MACHINE_CONFIG_START(nslasher_state::tattass)
/* sound hardware */
DECOBSMT(config, m_decobsmt, 0);
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(nslasher_state::nslasher)
+}
+void nslasher_state::nslasher(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", ARM, XTAL(28'322'000) / 4)
- MCFG_DEVICE_PROGRAM_MAP(nslasher_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", deco32_state, irq0_line_assert)
+ ARM(config, m_maincpu, XTAL(28'322'000) / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &nslasher_state::nslasher_map);
+ m_maincpu->set_vblank_int("screen", FUNC(deco32_state::irq0_line_assert));
- MCFG_DEVICE_ADD("audiocpu", Z80, 32220000/9)
- MCFG_DEVICE_PROGRAM_MAP(z80_sound_map)
- MCFG_DEVICE_IO_MAP(z80_sound_io)
+ Z80(config, m_audiocpu, 32220000/9);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &nslasher_state::z80_sound_map);
+ m_audiocpu->set_addrmap(AS_IO, &nslasher_state::z80_sound_io);
- MCFG_INPUT_MERGER_ANY_HIGH("sound_irq_merger")
- MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_IRQ0))
+ INPUT_MERGER_ANY_HIGH(config, "sound_irq_merger").output_handler().set_inputline("audiocpu", INPUT_LINE_IRQ0);
- MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* to improve main<->audio comms */
+ config.m_minimum_quantum = attotime::from_hz(6000); /* to improve main<->audio comms */
- EEPROM_93C46_16BIT(config, "eeprom");
+ EEPROM_93C46_16BIT(config, m_eeprom);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(28'322'000) / 4, 442, 0, 320, 274, 8, 248)
- MCFG_SCREEN_UPDATE_DRIVER(nslasher_state, screen_update)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(XTAL(28'322'000) / 4, 442, 0, 320, 274, 8, 248);
+ m_screen->set_screen_update(FUNC(nslasher_state::screen_update));
DECO_ACE(config, m_deco_ace, 0);
@@ -2419,7 +2411,7 @@ MACHINE_CONFIG_START(nslasher_state::nslasher)
m_sprgen[1]->set_gfx_region(4);
m_sprgen[1]->set_gfxdecode_tag(m_gfxdecode);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_deco_ace, gfx_nslasher)
+ GFXDECODE(config, m_gfxdecode, m_deco_ace, gfx_nslasher);
DECO104PROT(config, m_ioprot, 0);
m_ioprot->port_a_cb().set_ioport("IN0");
@@ -2438,14 +2430,14 @@ MACHINE_CONFIG_START(nslasher_state::nslasher)
m_ym2151->add_route(0, "lspeaker", 0.40);
m_ym2151->add_route(1, "rspeaker", 0.40);
- MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.80)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80)
+ OKIM6295(config, m_oki[0], 32220000/32, okim6295_device::PIN7_HIGH);
+ m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 0.80);
+ m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 0.80);
- MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.10)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.10)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH);
+ m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.10);
+ m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.10);
+}
// the US release uses a H6280 instead of a Z80, much like Lock 'n' Loaded
void nslasher_state::nslasheru(machine_config &config)
diff --git a/src/mame/drivers/fidel6502.cpp b/src/mame/drivers/fidel6502.cpp
index 54c43da611b..6209284c169 100644
--- a/src/mame/drivers/fidel6502.cpp
+++ b/src/mame/drivers/fidel6502.cpp
@@ -474,7 +474,8 @@ public:
m_ppi8255(*this, "ppi8255"),
m_rombank(*this, "rombank"),
m_mainmap(*this, "mainmap"),
- m_div_config(*this, "div_config")
+ m_div_config(*this, "div_config"),
+ m_irq_on(*this, "irq_on")
{ }
void csc(machine_config &config);
@@ -528,6 +529,7 @@ private:
optional_memory_bank m_rombank;
optional_device<address_map_bank_device> m_mainmap;
optional_ioport m_div_config;
+ optional_device<timer_device> m_irq_on;
// common
TIMER_DEVICE_CALLBACK_MEMBER(irq_on) { m_maincpu->set_input_line(M6502_IRQ_LINE, ASSERT_LINE); }
@@ -1831,16 +1833,16 @@ INPUT_PORTS_END
Machine Drivers
******************************************************************************/
-MACHINE_CONFIG_START(fidel6502_state::rsc)
-
+void fidel6502_state::rsc(machine_config &config)
+{
/* basic machine hardware */
M6502(config, m_maincpu, 1800000); // measured approx 1.81MHz
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::rsc_map);
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(546)) // from 555 timer, measured
- MCFG_TIMER_START_DELAY(attotime::from_hz(546) - attotime::from_usec(38)) // active for 38us
+ TIMER(config, m_irq_on).configure_periodic(FUNC(fidel6502_state::irq_on), attotime::from_hz(546)); // from 555 timer, measured
+ m_irq_on->set_start_delay(attotime::from_hz(546) - attotime::from_usec(38)); // active for 38us
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(546))
+ TIMER(config, "irq_off").configure_periodic(FUNC(fidel6502_state::irq_off), attotime::from_hz(546));
pia6821_device &pia(PIA6821(config, "pia", 0)); // MOS 6520
pia.readpa_handler().set(FUNC(fidel6502_state::csc_pia1_pa_r));
@@ -1851,26 +1853,26 @@ MACHINE_CONFIG_START(fidel6502_state::rsc)
pia.ca2_handler().set(FUNC(fidel6502_state::csc_pia1_ca2_w));
pia.cb2_handler().set(FUNC(fidel6502_state::csc_pia1_cb2_w));
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
+ TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
config.set_default_layout(layout_fidel_rsc_v2);
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- DAC_1BIT(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(fidel6502_state::csc)
+}
+void fidel6502_state::csc(machine_config &config)
+{
/* basic machine hardware */
M6502(config, m_maincpu, 3.9_MHz_XTAL/2); // from 3.9MHz resonator
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::csc_map);
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(38.4_kHz_XTAL/64)) // through 4060 IC, 600Hz
- MCFG_TIMER_START_DELAY(attotime::from_hz(38.4_kHz_XTAL/64) - attotime::from_hz(38.4_kHz_XTAL*2)) // edge!
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(38.4_kHz_XTAL/64))
+ TIMER(config, m_irq_on).configure_periodic(FUNC(fidel6502_state::irq_on), attotime::from_hz(38.4_kHz_XTAL/64)); // through 4060 IC, 600Hz
+ m_irq_on->set_start_delay(attotime::from_hz(38.4_kHz_XTAL/64) - attotime::from_hz(38.4_kHz_XTAL*2)); // edge!
+ TIMER(config, "irq_off").configure_periodic(FUNC(fidel6502_state::irq_off), attotime::from_hz(38.4_kHz_XTAL/64));
pia6821_device &pia0(PIA6821(config, "pia0", 0));
pia0.readpb_handler().set(FUNC(fidel6502_state::csc_pia0_pb_r));
@@ -1887,7 +1889,7 @@ MACHINE_CONFIG_START(fidel6502_state::csc)
pia1.ca2_handler().set(FUNC(fidel6502_state::csc_pia1_ca2_w));
pia1.cb2_handler().set(FUNC(fidel6502_state::csc_pia1_cb2_w));
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
+ TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
config.set_default_layout(layout_fidel_csc);
/* sound hardware */
@@ -1896,11 +1898,11 @@ MACHINE_CONFIG_START(fidel6502_state::csc)
speech.ext_read().set(FUNC(fidel6502_state::csc_speech_r));
speech.add_route(ALL_OUTPUTS, "speaker", 0.75);
- DAC_1BIT(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
-MACHINE_CONFIG_END
+}
void fidel6502_state::su9(machine_config &config)
{
@@ -1913,20 +1915,21 @@ void fidel6502_state::su9(machine_config &config)
config.set_default_layout(layout_fidel_su9);
}
-MACHINE_CONFIG_START(fidel6502_state::eas_base)
+void fidel6502_state::eas_base(machine_config &config)
+{
/* basic machine hardware */
R65C02(config, m_maincpu, 3_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::div_trampoline);
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(38.4_kHz_XTAL/64)) // through 4060 IC, 600Hz
- MCFG_TIMER_START_DELAY(attotime::from_hz(38.4_kHz_XTAL/64) - attotime::from_hz(38.4_kHz_XTAL*2)) // edge!
+ TIMER(config, m_irq_on).configure_periodic(FUNC(fidel6502_state::irq_on), attotime::from_hz(38.4_kHz_XTAL/64)); // through 4060 IC, 600Hz
+ m_irq_on->set_start_delay(attotime::from_hz(38.4_kHz_XTAL/64) - attotime::from_hz(38.4_kHz_XTAL*2)); // edge!
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(38.4_kHz_XTAL/64))
- MCFG_TIMER_DRIVER_ADD_PERIODIC("dummy_timer", fidel6502_state, dummy, attotime::from_hz(3_MHz_XTAL))
+ TIMER(config, "irq_off").configure_periodic(FUNC(fidel6502_state::irq_off), attotime::from_hz(38.4_kHz_XTAL/64));
+ TIMER(config, "dummy_timer").configure_periodic(FUNC(fidel6502_state::dummy), attotime::from_hz(3_MHz_XTAL));
ADDRESS_MAP_BANK(config, m_mainmap).set_map(&fidel6502_state::eas_map).set_options(ENDIANNESS_LITTLE, 8, 16);
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
+ TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
config.set_default_layout(layout_fidel_eas);
/* sound hardware */
@@ -1935,7 +1938,7 @@ MACHINE_CONFIG_START(fidel6502_state::eas_base)
speech.ext_read().set(FUNC(fidel6502_state::csc_speech_r));
speech.add_route(ALL_OUTPUTS, "speaker", 0.75);
- DAC_1BIT(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
@@ -1945,7 +1948,7 @@ MACHINE_CONFIG_START(fidel6502_state::eas_base)
cartslot.set_device_load(device_image_load_delegate(&fidelbase_state::device_image_load_scc_cartridge, this));
SOFTWARE_LIST(config, "cart_list").set_original("fidel_scc");
-MACHINE_CONFIG_END
+}
void fidel6502_state::eas(machine_config &config)
{
@@ -1960,314 +1963,324 @@ void fidel6502_state::eas(machine_config &config)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
}
-MACHINE_CONFIG_START(fidel6502_state::pc)
+void fidel6502_state::pc(machine_config &config)
+{
eas_base(config);
/* basic machine hardware */
m_maincpu->set_clock(4_MHz_XTAL); // R65C02P4
- MCFG_DEVICE_REMOVE("dummy_timer")
- MCFG_TIMER_DRIVER_ADD_PERIODIC("dummy_timer", fidel6502_state, dummy, attotime::from_hz(4_MHz_XTAL))
+ TIMER(config.replace(), "dummy_timer").configure_periodic(FUNC(fidel6502_state::dummy), attotime::from_hz(4_MHz_XTAL));
m_mainmap->set_addrmap(AS_PROGRAM, &fidel6502_state::pc_map);
config.set_default_layout(layout_fidel_pc);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(fidel6502_state::eag)
+void fidel6502_state::eag(machine_config &config)
+{
eas(config);
/* basic machine hardware */
m_maincpu->set_clock(5_MHz_XTAL); // R65C02P4
- MCFG_DEVICE_REMOVE("dummy_timer")
- MCFG_TIMER_DRIVER_ADD_PERIODIC("dummy_timer", fidel6502_state, dummy, attotime::from_hz(5_MHz_XTAL))
+ TIMER(config.replace(), "dummy_timer").configure_periodic(FUNC(fidel6502_state::dummy), attotime::from_hz(5_MHz_XTAL));
m_mainmap->set_addrmap(AS_PROGRAM, &fidel6502_state::eag_map);
config.set_default_layout(layout_fidel_eag);
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(fidel6502_state::sc9d)
+}
+void fidel6502_state::sc9d(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6502, 3.9_MHz_XTAL/2) // R6502AP, 3.9MHz resonator
- MCFG_DEVICE_PROGRAM_MAP(sc9d_map)
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(610)) // from 555 timer (22nF, 102K, 2.7K)
- MCFG_TIMER_START_DELAY(attotime::from_hz(610) - attotime::from_usec(41)) // active for 41us
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(610))
+ M6502(config, m_maincpu, 3.9_MHz_XTAL/2); // R6502AP, 3.9MHz resonator
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::sc9d_map);
+ TIMER(config, m_irq_on).configure_periodic(FUNC(fidel6502_state::irq_on), attotime::from_hz(610)); // from 555 timer (22nF, 102K, 2.7K)
+ m_irq_on->set_start_delay(attotime::from_hz(610) - attotime::from_usec(41)); // active for 41us
+ TIMER(config, "irq_off").configure_periodic(FUNC(fidel6502_state::irq_off), attotime::from_hz(610));
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
+ TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
config.set_default_layout(layout_fidel_sc9);
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
- MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
+ voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
+ vref.set_output(5.0);
+ vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
/* cartridge */
- MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "fidel_scc")
- MCFG_GENERIC_EXTENSIONS("bin,dat")
- MCFG_GENERIC_LOAD(fidelbase_state, scc_cartridge)
- MCFG_SOFTWARE_LIST_ADD("cart_list", "fidel_scc")
-MACHINE_CONFIG_END
+ generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "fidel_scc", "bin,dat"));
+ cartslot.set_device_load(device_image_load_delegate(&fidelbase_state::device_image_load_scc_cartridge, this));
+
+ SOFTWARE_LIST(config, "cart_list").set_original("fidel_scc");
+}
-MACHINE_CONFIG_START(fidel6502_state::sc9b)
+void fidel6502_state::sc9b(machine_config &config)
+{
sc9d(config);
/* basic machine hardware */
- MCFG_DEVICE_REPLACE("maincpu", M6502, 1500000) // from ceramic resonator "681 JSA", measured
- MCFG_DEVICE_PROGRAM_MAP(sc9_map)
-MACHINE_CONFIG_END
+ M6502(config.replace(), m_maincpu, 1500000); // from ceramic resonator "681 JSA", measured
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::sc9_map);
+}
-MACHINE_CONFIG_START(fidel6502_state::sc9c)
+void fidel6502_state::sc9c(machine_config &config)
+{
sc9b(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(fidel6502_state, sc9c)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(fidel6502_state::playmatic)
+void fidel6502_state::playmatic(machine_config &config)
+{
sc9b(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(3100000) // approximation
+ m_maincpu->set_clock(3100000); // approximation
config.set_default_layout(layout_fidel_playmatic);
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(fidel6502_state::sc12)
+}
+void fidel6502_state::sc12(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", R65C02, 3_MHz_XTAL) // R65C02P3
- MCFG_DEVICE_PROGRAM_MAP(div_trampoline)
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(630)) // from 556 timer (22nF, 102K, 1K)
- MCFG_TIMER_START_DELAY(attotime::from_hz(630) - attotime::from_nsec(15250)) // active for 15.25us
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(630))
+ R65C02(config, m_maincpu, 3_MHz_XTAL); // R65C02P3
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::div_trampoline);
+ TIMER(config, m_irq_on).configure_periodic(FUNC(fidel6502_state::irq_on), attotime::from_hz(630)); // from 556 timer (22nF, 102K, 1K)
+ m_irq_on->set_start_delay(attotime::from_hz(630) - attotime::from_nsec(15250)); // active for 15.25us
+ TIMER(config, "irq_off").configure_periodic(FUNC(fidel6502_state::irq_off), attotime::from_hz(630));
- MCFG_TIMER_DRIVER_ADD_PERIODIC("dummy_timer", fidel6502_state, dummy, attotime::from_hz(3_MHz_XTAL))
+ TIMER(config, "dummy_timer").configure_periodic(FUNC(fidel6502_state::dummy), attotime::from_hz(3_MHz_XTAL));
- ADDRESS_MAP_BANK(config, "mainmap").set_map(&fidel6502_state::sc12_map).set_options(ENDIANNESS_LITTLE, 8, 16);
+ ADDRESS_MAP_BANK(config, m_mainmap).set_map(&fidel6502_state::sc12_map).set_options(ENDIANNESS_LITTLE, 8, 16);
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
+ TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
config.set_default_layout(layout_fidel_sc12);
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
- MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
+ voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
+ vref.set_output(5.0);
+ vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
/* cartridge */
- MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "fidel_scc")
- MCFG_GENERIC_EXTENSIONS("bin,dat")
- MCFG_GENERIC_LOAD(fidelbase_state, scc_cartridge)
- MCFG_SOFTWARE_LIST_ADD("cart_list", "fidel_scc")
-MACHINE_CONFIG_END
+ generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "fidel_scc", "bin,dat"));
+ cartslot.set_device_load(device_image_load_delegate(&fidelbase_state::device_image_load_scc_cartridge, this));
-MACHINE_CONFIG_START(fidel6502_state::sc12b)
+ SOFTWARE_LIST(config, "cart_list").set_original("fidel_scc");
+}
+
+void fidel6502_state::sc12b(machine_config &config)
+{
sc12(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(4_MHz_XTAL) // R65C02P4
+ m_maincpu->set_clock(4_MHz_XTAL); // R65C02P4
// change irq timer frequency
- MCFG_DEVICE_REMOVE("irq_on")
- MCFG_DEVICE_REMOVE("irq_off")
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(596)) // from 556 timer (22nF, 82K+26K, 1K)
- MCFG_TIMER_START_DELAY(attotime::from_hz(596) - attotime::from_nsec(15250)) // active for 15.25us
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(596))
+ TIMER(config.replace(), m_irq_on).configure_periodic(FUNC(fidel6502_state::irq_on), attotime::from_hz(596)); // from 556 timer (22nF, 82K+26K, 1K)
+ m_irq_on->set_start_delay(attotime::from_hz(596) - attotime::from_nsec(15250)); // active for 15.25us
+ TIMER(config.replace(), "irq_off").configure_periodic(FUNC(fidel6502_state::irq_off), attotime::from_hz(596));
- MCFG_DEVICE_REMOVE("dummy_timer")
- MCFG_TIMER_DRIVER_ADD_PERIODIC("dummy_timer", fidel6502_state, dummy, attotime::from_hz(4_MHz_XTAL))
-MACHINE_CONFIG_END
+ TIMER(config.replace(), "dummy_timer").configure_periodic(FUNC(fidel6502_state::dummy), attotime::from_hz(4_MHz_XTAL));
+}
-MACHINE_CONFIG_START(fidel6502_state::as12)
+void fidel6502_state::as12(machine_config &config)
+{
sc12b(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("mainmap")
- MCFG_DEVICE_PROGRAM_MAP(as12_map)
+ m_mainmap->set_addrmap(AS_PROGRAM, &fidel6502_state::as12_map);
// change irq timer frequency
- MCFG_DEVICE_REMOVE("irq_on")
- MCFG_DEVICE_REMOVE("irq_off")
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(585)) // from 556 timer (22nF, 110K, 1K)
- MCFG_TIMER_START_DELAY(attotime::from_hz(585) - attotime::from_nsec(15250)) // active for 15.25us
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(585))
+ TIMER(config.replace(), m_irq_on).configure_periodic(FUNC(fidel6502_state::irq_on), attotime::from_hz(585)); // from 556 timer (22nF, 110K, 1K)
+ m_irq_on->set_start_delay(attotime::from_hz(585) - attotime::from_nsec(15250)); // active for 15.25us
+ TIMER(config.replace(), "irq_off").configure_periodic(FUNC(fidel6502_state::irq_off), attotime::from_hz(585));
config.set_default_layout(layout_fidel_as12);
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(fidel6502_state::fexcel)
+}
+void fidel6502_state::fexcel(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M65SC02, 12_MHz_XTAL/4) // G65SC102P-3, 12.0M ceramic resonator
- MCFG_DEVICE_PROGRAM_MAP(fexcel_map)
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(630)) // from 556 timer (22nF, 102K, 1K)
- MCFG_TIMER_START_DELAY(attotime::from_hz(630) - attotime::from_nsec(15250)) // active for 15.25us
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(630))
+ M65SC02(config, m_maincpu, 12_MHz_XTAL/4); // G65SC102P-3, 12.0M ceramic resonator
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::fexcel_map);
+ TIMER(config, m_irq_on).configure_periodic(FUNC(fidel6502_state::irq_on), attotime::from_hz(630)); // from 556 timer (22nF, 102K, 1K)
+ m_irq_on->set_start_delay(attotime::from_hz(630) - attotime::from_nsec(15250)); // active for 15.25us
+ TIMER(config, "irq_off").configure_periodic(FUNC(fidel6502_state::irq_off), attotime::from_hz(630));
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
+ TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
config.set_default_layout(layout_fidel_ex);
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
- MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
-MACHINE_CONFIG_END
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
+ voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
+ vref.set_output(5.0);
+ vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
+}
-MACHINE_CONFIG_START(fidel6502_state::fexcel4)
+void fidel6502_state::fexcel4(machine_config &config)
+{
fexcel(config);
/* basic machine hardware */
- MCFG_DEVICE_REPLACE("maincpu", R65C02, 4_MHz_XTAL) // R65C02P4
- MCFG_DEVICE_PROGRAM_MAP(fexcel_map)
-MACHINE_CONFIG_END
+ R65C02(config.replace(), m_maincpu, 4_MHz_XTAL); // R65C02P4
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::fexcel_map);
+}
-MACHINE_CONFIG_START(fidel6502_state::fexcelb)
+void fidel6502_state::fexcelb(machine_config &config)
+{
fexcel(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(fexcelb_map)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::fexcelb_map);
+}
-MACHINE_CONFIG_START(fidel6502_state::fexcelp)
+void fidel6502_state::fexcelp(machine_config &config)
+{
fexcel(config);
/* basic machine hardware */
- MCFG_DEVICE_REPLACE("maincpu", R65C02, 5_MHz_XTAL) // R65C02P4
- MCFG_DEVICE_PROGRAM_MAP(fexcelp_map)
-MACHINE_CONFIG_END
+ R65C02(config.replace(), m_maincpu, 5_MHz_XTAL); // R65C02P4
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::fexcelp_map);
+}
-MACHINE_CONFIG_START(fidel6502_state::granits)
+void fidel6502_state::granits(machine_config &config)
+{
fexcelp(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(8_MHz_XTAL) // overclocked
-MACHINE_CONFIG_END
+ m_maincpu->set_clock(8_MHz_XTAL); // overclocked
+}
-MACHINE_CONFIG_START(fidel6502_state::fdes2100)
+void fidel6502_state::fdes2100(machine_config &config)
+{
fexcel(config);
/* basic machine hardware */
- MCFG_DEVICE_REPLACE("maincpu", M65C02, 5_MHz_XTAL) // WDC 65C02
- MCFG_DEVICE_PROGRAM_MAP(fexcelp_map)
+ M65C02(config.replace(), m_maincpu, 5_MHz_XTAL); // WDC 65C02
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::fexcelp_map);
// change irq timer frequency
- MCFG_DEVICE_REMOVE("irq_on")
- MCFG_DEVICE_REMOVE("irq_off")
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(585)) // from 556 timer (22nF, 110K, 1K)
- MCFG_TIMER_START_DELAY(attotime::from_hz(585) - attotime::from_nsec(15250)) // active for 15.25us
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(585))
+ TIMER(config.replace(), m_irq_on).configure_periodic(FUNC(fidel6502_state::irq_on), attotime::from_hz(585)); // from 556 timer (22nF, 110K, 1K)
+ m_irq_on->set_start_delay(attotime::from_hz(585) - attotime::from_nsec(15250)); // active for 15.25us
+ TIMER(config.replace(), "irq_off").configure_periodic(FUNC(fidel6502_state::irq_off), attotime::from_hz(585));
config.set_default_layout(layout_fidel_des);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(fidel6502_state::fdes2000)
+void fidel6502_state::fdes2000(machine_config &config)
+{
fdes2100(config);
/* basic machine hardware */
- MCFG_DEVICE_REPLACE("maincpu", R65C02, 3_MHz_XTAL) // RP65C02G
- MCFG_DEVICE_PROGRAM_MAP(fexcelp_map)
-MACHINE_CONFIG_END
+ R65C02(config.replace(), m_maincpu, 3_MHz_XTAL); // RP65C02G
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::fexcelp_map);
+}
-MACHINE_CONFIG_START(fidel6502_state::fexcelv)
+void fidel6502_state::fexcelv(machine_config &config)
+{
fexcelb(config);
/* sound hardware */
- MCFG_DEVICE_ADD("speech", S14001A, 25000) // R/C circuit, around 25khz
- MCFG_S14001A_EXT_READ_HANDLER(READ8(*this, fidel6502_state, fexcelv_speech_r))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.75)
-MACHINE_CONFIG_END
+ S14001A(config, m_speech, 25000); // R/C circuit, around 25khz
+ m_speech->ext_read().set(FUNC(fidel6502_state::fexcelv_speech_r));
+ m_speech->add_route(ALL_OUTPUTS, "speaker", 0.75);
+}
-MACHINE_CONFIG_START(fidel6502_state::fexceld)
+void fidel6502_state::fexceld(machine_config &config)
+{
fexcelb(config);
/* basic machine hardware */
config.set_default_layout(layout_fidel_exd);
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(fidel6502_state::fdes2100d)
+}
+void fidel6502_state::fdes2100d(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M65C02, 6_MHz_XTAL) // W65C02P-6
- MCFG_DEVICE_PROGRAM_MAP(fdesdis_map)
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(630)) // from 556 timer (22nF, 102K, 1K)
- MCFG_TIMER_START_DELAY(attotime::from_hz(630) - attotime::from_nsec(15250)) // active for 15.25us
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(630))
+ M65C02(config, m_maincpu, 6_MHz_XTAL); // W65C02P-6
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::fdesdis_map);
+ TIMER(config, m_irq_on).configure_periodic(FUNC(fidel6502_state::irq_on), attotime::from_hz(630)); // from 556 timer (22nF, 102K, 1K)
+ m_irq_on->set_start_delay(attotime::from_hz(630) - attotime::from_nsec(15250)); // active for 15.25us
+ TIMER(config, "irq_off").configure_periodic(FUNC(fidel6502_state::irq_off), attotime::from_hz(630));
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
+ TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
config.set_default_layout(layout_fidel_desdis);
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
- MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
-MACHINE_CONFIG_END
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
+ voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
+ vref.set_output(5.0);
+ vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
+}
-MACHINE_CONFIG_START(fidel6502_state::fdes2000d)
+void fidel6502_state::fdes2000d(machine_config &config)
+{
fdes2100d(config);
/* basic machine hardware */
- MCFG_DEVICE_REPLACE("maincpu", R65C02, 3_MHz_XTAL) // R65C02P3
- MCFG_DEVICE_PROGRAM_MAP(fdesdis_map)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(fidel6502_state::fphantom)
+ R65C02(config.replace(), m_maincpu, 3_MHz_XTAL); // R65C02P3
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::fdesdis_map);
+}
+void fidel6502_state::fphantom(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", R65C02, 4.9152_MHz_XTAL) // R65C02P4
- MCFG_DEVICE_PERIODIC_INT_DRIVER(fidel6502_state, irq0_line_hold, 600) // guessed
- MCFG_DEVICE_PROGRAM_MAP(fphantom_map)
+ R65C02(config, m_maincpu, 4.9152_MHz_XTAL); // R65C02P4
+ m_maincpu->set_periodic_int(FUNC(fidel6502_state::irq0_line_hold), attotime::from_hz(600)); // guessed
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::fphantom_map);
MCFG_MACHINE_RESET_OVERRIDE(fidel6502_state, fphantom)
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
+ TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
//config.set_default_layout(layout_fidel_phantom);
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
- MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(fidel6502_state::chesster)
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
+ voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
+ vref.set_output(5.0);
+ vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
+}
+void fidel6502_state::chesster(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", R65C02, 5_MHz_XTAL) // RP65C02G
- MCFG_DEVICE_PROGRAM_MAP(chesster_map)
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(9615)) // R/C circuit, measured
- MCFG_TIMER_START_DELAY(attotime::from_hz(9615) - attotime::from_nsec(2600)) // active for 2.6us
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(9615))
+ R65C02(config, m_maincpu, 5_MHz_XTAL); // RP65C02G
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::chesster_map);
+ TIMER(config, m_irq_on).configure_periodic(FUNC(fidel6502_state::irq_on), attotime::from_hz(9615)); // R/C circuit, measured
+ m_irq_on->set_start_delay(attotime::from_hz(9615) - attotime::from_nsec(2600)); // active for 2.6us
+ TIMER(config, "irq_off").configure_periodic(FUNC(fidel6502_state::irq_off), attotime::from_hz(9615));
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
+ TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
config.set_default_layout(layout_fidel_chesster);
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac8", DAC_8BIT_R2R, 0) // m74hc374b1.ic1 + 8l513_02.z2
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
- MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE(0, "dac8", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac8", -1.0, DAC_VREF_NEG_INPUT)
-MACHINE_CONFIG_END
+ DAC_8BIT_R2R(config, "dac8", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // m74hc374b1.ic1 + 8l513_02.z2
+ voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
+ vref.set_output(5.0);
+ vref.add_route(0, "dac8", 1.0, DAC_VREF_POS_INPUT);
+ vref.add_route(0, "dac8", -1.0, DAC_VREF_NEG_INPUT);
+}
-MACHINE_CONFIG_START(fidel6502_state::kishon)
+void fidel6502_state::kishon(machine_config &config)
+{
chesster(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(3.579545_MHz_XTAL)
- MCFG_DEVICE_PROGRAM_MAP(kishon_map)
-MACHINE_CONFIG_END
+ m_maincpu->set_clock(3.579545_MHz_XTAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::kishon_map);
+}
diff --git a/src/mame/drivers/fidelz80.cpp b/src/mame/drivers/fidelz80.cpp
index 2fe3a55b9b7..f5038d8b269 100644
--- a/src/mame/drivers/fidelz80.cpp
+++ b/src/mame/drivers/fidelz80.cpp
@@ -520,7 +520,8 @@ public:
m_ppi8255(*this, "ppi8255"),
m_i8243(*this, "i8243"),
m_beeper_off(*this, "beeper_off"),
- m_beeper(*this, "beeper")
+ m_beeper(*this, "beeper"),
+ m_irq_on(*this, "irq_on")
{ }
void cc10(machine_config &config);
@@ -546,6 +547,7 @@ private:
optional_device<i8243_device> m_i8243;
optional_device<timer_device> m_beeper_off;
optional_device<beep_device> m_beeper;
+ optional_device<timer_device> m_irq_on;
TIMER_DEVICE_CALLBACK_MEMBER(irq_on) { m_maincpu->set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE); }
TIMER_DEVICE_CALLBACK_MEMBER(irq_off) { m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE); }
@@ -1660,46 +1662,48 @@ INPUT_PORTS_END
Machine Drivers
******************************************************************************/
-MACHINE_CONFIG_START(fidelz80_state::bcc)
-
+void fidelz80_state::bcc(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 3.579545_MHz_XTAL)
- MCFG_DEVICE_PROGRAM_MAP(bcc_map)
- MCFG_DEVICE_IO_MAP(bcc_io)
+ Z80(config, m_maincpu, 3.579545_MHz_XTAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidelz80_state::bcc_map);
+ m_maincpu->set_addrmap(AS_IO, &fidelz80_state::bcc_io);
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
+ TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
config.set_default_layout(layout_fidel_bcc);
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
- MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(fidelz80_state::scc)
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
+ voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
+ vref.set_output(5.0);
+ vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
+}
+void fidelz80_state::scc(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 3.9_MHz_XTAL)
- MCFG_DEVICE_PROGRAM_MAP(scc_map)
- MCFG_DEVICE_IO_MAP(scc_io)
+ Z80(config, m_maincpu, 3.9_MHz_XTAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidelz80_state::scc_map);
+ m_maincpu->set_addrmap(AS_IO, &fidelz80_state::scc_io);
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
+ TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
config.set_default_layout(layout_fidel_sc8);
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
- MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(fidelz80_state::cc10)
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
+ voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
+ vref.set_output(5.0);
+ vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
+}
+void fidelz80_state::cc10(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 4_MHz_XTAL)
- MCFG_DEVICE_PROGRAM_MAP(cc10_map)
- MCFG_DEVICE_IO_MAP(vcc_io)
+ Z80(config, m_maincpu, 4_MHz_XTAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidelz80_state::cc10_map);
+ m_maincpu->set_addrmap(AS_IO, &fidelz80_state::vcc_io);
I8255(config, m_ppi8255);
m_ppi8255->out_pa_callback().set(FUNC(fidelz80_state::cc10_ppi_porta_w));
@@ -1710,22 +1714,22 @@ MACHINE_CONFIG_START(fidelz80_state::cc10)
m_ppi8255->tri_pb_callback().set_constant(0);
m_ppi8255->out_pc_callback().set(FUNC(fidelz80_state::vcc_ppi_portc_w));
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
+ TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
config.set_default_layout(layout_fidel_cc);
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("beeper", BEEP, 1360) // approximation, from 556 timer ic
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
- MCFG_TIMER_DRIVER_ADD("beeper_off", fidelz80_state, beeper_off_callback)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(fidelz80_state::vcc)
+ BEEP(config, m_beeper, 1360); // approximation, from 556 timer ic
+ m_beeper->add_route(ALL_OUTPUTS, "speaker", 0.25);
+ TIMER(config, "beeper_off").configure_generic(FUNC(fidelz80_state::beeper_off_callback));
+}
+void fidelz80_state::vcc(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 4_MHz_XTAL)
- MCFG_DEVICE_PROGRAM_MAP(vcc_map)
- MCFG_DEVICE_IO_MAP(vcc_io)
+ Z80(config, m_maincpu, 4_MHz_XTAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidelz80_state::vcc_map);
+ m_maincpu->set_addrmap(AS_IO, &fidelz80_state::vcc_io);
I8255(config, m_ppi8255);
m_ppi8255->out_pa_callback().set(FUNC(fidelz80_state::vcc_ppi_porta_w));
@@ -1736,25 +1740,25 @@ MACHINE_CONFIG_START(fidelz80_state::vcc)
m_ppi8255->in_pc_callback().set(FUNC(fidelz80_state::vcc_ppi_portc_r));
m_ppi8255->out_pc_callback().set(FUNC(fidelz80_state::vcc_ppi_portc_w));
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
+ TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
config.set_default_layout(layout_fidel_vcc);
MCFG_MACHINE_START_OVERRIDE(fidelz80_state,vcc)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("speech", S14001A, 25000) // R/C circuit, around 25khz
- MCFG_S14001A_EXT_READ_HANDLER(READ8(*this, fidelz80_state, vcc_speech_r))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.75)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(fidelz80_state::vsc)
+ S14001A(config, m_speech, 25000); // R/C circuit, around 25khz
+ m_speech->ext_read().set(FUNC(fidelz80_state::vcc_speech_r));
+ m_speech->add_route(ALL_OUTPUTS, "speaker", 0.75);
+}
+void fidelz80_state::vsc(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 3.9_MHz_XTAL) // 3.9MHz resonator
- MCFG_DEVICE_PROGRAM_MAP(vsc_map)
- MCFG_DEVICE_IO_MAP(vsc_io)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(fidelz80_state, nmi_line_pulse, 587) // 555 timer, measured
+ Z80(config, m_maincpu, 3.9_MHz_XTAL); // 3.9MHz resonator
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidelz80_state::vsc_map);
+ m_maincpu->set_addrmap(AS_IO, &fidelz80_state::vsc_io);
+ m_maincpu->set_periodic_int(FUNC(fidelz80_state::nmi_line_pulse), attotime::from_hz(587)); // 555 timer, measured
I8255(config, m_ppi8255);
m_ppi8255->out_pa_callback().set(FUNC(fidelz80_state::vsc_ppi_porta_w));
@@ -1766,23 +1770,23 @@ MACHINE_CONFIG_START(fidelz80_state::vsc)
m_z80pio->in_pb_callback().set(FUNC(fidelz80_state::vsc_pio_portb_r));
m_z80pio->out_pb_callback().set(FUNC(fidelz80_state::vsc_pio_portb_w));
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
+ TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
config.set_default_layout(layout_fidel_vsc);
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("speech", S14001A, 25000) // R/C circuit, around 25khz
- MCFG_S14001A_EXT_READ_HANDLER(READ8(*this, fidelz80_state, vcc_speech_r))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.75)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(fidelz80_state::vbrc)
+ S14001A(config, m_speech, 25000); // R/C circuit, around 25khz
+ m_speech->ext_read().set(FUNC(fidelz80_state::vcc_speech_r));
+ m_speech->add_route(ALL_OUTPUTS, "speaker", 0.75);
+}
+void fidelz80_state::vbrc(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 5_MHz_XTAL/2)
- MCFG_DEVICE_PROGRAM_MAP(vbrc_main_map)
- MCFG_DEVICE_IO_MAP(vbrc_main_io)
- MCFG_QUANTUM_PERFECT_CPU("maincpu")
+ Z80(config, m_maincpu, 5_MHz_XTAL/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidelz80_state::vbrc_main_map);
+ m_maincpu->set_addrmap(AS_IO, &fidelz80_state::vbrc_main_io);
+ config.m_perfect_cpu_quantum = subtag("maincpu");
I8041(config, m_mcu, 5_MHz_XTAL);
m_mcu->p1_out_cb().set(FUNC(fidelz80_state::vbrc_mcu_p1_w));
@@ -1798,34 +1802,35 @@ MACHINE_CONFIG_START(fidelz80_state::vbrc)
m_i8243->p6_out_cb().set(FUNC(fidelz80_state::vbrc_ioexp_port_w<2>));
m_i8243->p7_out_cb().set(FUNC(fidelz80_state::vbrc_ioexp_port_w<3>));
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
+ TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
config.set_default_layout(layout_fidel_vbrc);
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("speech", S14001A, 25000) // R/C circuit, around 25khz
- MCFG_S14001A_BSY_HANDLER(INPUTLINE("maincpu", Z80_INPUT_LINE_WAIT))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.75)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(fidelz80_state::dsc)
+ S14001A(config, m_speech, 25000); // R/C circuit, around 25khz
+ m_speech->bsy().set_inputline("maincpu", Z80_INPUT_LINE_WAIT);
+ m_speech->add_route(ALL_OUTPUTS, "speaker", 0.75);
+}
+void fidelz80_state::dsc(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 3.9_MHz_XTAL) // 3.9MHz resonator
- MCFG_DEVICE_PROGRAM_MAP(dsc_map)
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidelz80_state, irq_on, attotime::from_hz(523)) // from 555 timer (22nF, 120K, 2.7K)
- MCFG_TIMER_START_DELAY(attotime::from_hz(523) - attotime::from_usec(41)) // active for 41us
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidelz80_state, irq_off, attotime::from_hz(523))
+ Z80(config, m_maincpu, 3.9_MHz_XTAL); // 3.9MHz resonator
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidelz80_state::dsc_map);
+ TIMER(config, m_irq_on).configure_periodic(FUNC(fidelz80_state::irq_on), attotime::from_hz(523)); // from 555 timer (22nF, 120K, 2.7K)
+ m_irq_on->set_start_delay(attotime::from_hz(523) - attotime::from_usec(41)); // active for 41us
+ TIMER(config, "irq_off").configure_periodic(FUNC(fidelz80_state::irq_off), attotime::from_hz(523));
- MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
+ TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
config.set_default_layout(layout_fidel_dsc);
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
- MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
-MACHINE_CONFIG_END
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
+ voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
+ vref.set_output(5.0);
+ vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
+}
diff --git a/src/mame/drivers/galaga.cpp b/src/mame/drivers/galaga.cpp
index 22ca1a5cb55..5461f784450 100644
--- a/src/mame/drivers/galaga.cpp
+++ b/src/mame/drivers/galaga.cpp
@@ -1585,17 +1585,17 @@ WRITE_LINE_MEMBER(galaga_state::vblank_irq)
m_subcpu->set_input_line(0, ASSERT_LINE);
}
-MACHINE_CONFIG_START(bosco_state::bosco)
-
+void bosco_state::bosco(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(bosco_map)
+ Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &bosco_state::bosco_map);
- MCFG_DEVICE_ADD("sub", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(bosco_map)
+ Z80(config, m_subcpu, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_subcpu->set_addrmap(AS_PROGRAM, &bosco_state::bosco_map);
- MCFG_DEVICE_ADD("sub2", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(bosco_map)
+ Z80(config, m_subcpu2, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_subcpu2->set_addrmap(AS_PROGRAM, &bosco_state::bosco_map);
ls259_device &misclatch(LS259(config, "misclatch")); // 3C on CPU board
misclatch.q_out_cb<0>().set(FUNC(galaga_state::irq1_clear_w));
@@ -1650,8 +1650,8 @@ MACHINE_CONFIG_START(bosco_state::bosco)
//m_videolatch->q_out_cb<7>().append("52xx", FUNC(namco_52xx_device, reset_w));
WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 8);
- MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
- /* synchronization of the CPUs */
+
+ config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs */
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -1661,35 +1661,35 @@ MACHINE_CONFIG_START(bosco_state::bosco)
m_screen->screen_vblank().append(FUNC(galaga_state::vblank_irq));
m_screen->set_palette("palette");
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_bosco)
- MCFG_PALETTE_ADD("palette", 64*4+64*4+4+64)
- MCFG_PALETTE_INDIRECT_ENTRIES(32+64)
- MCFG_PALETTE_INIT_OWNER(bosco_state,bosco)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_bosco);
+ PALETTE(config, m_palette, 64*4+64*4+4+64);
+ m_palette->set_indirect_entries(32+64);
+ m_palette->set_init(FUNC(bosco_state::palette_init_bosco));
+
MCFG_VIDEO_START_OVERRIDE(bosco_state,bosco)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("namco", NAMCO, MASTER_CLOCK/6/32)
- MCFG_NAMCO_AUDIO_VOICES(3)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0)
+ NAMCO(config, m_namco_sound, MASTER_CLOCK/6/32);
+ m_namco_sound->set_voices(3);
+ m_namco_sound->add_route(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0);
/* discrete circuit on the 54XX outputs */
- MCFG_DEVICE_ADD("discrete", DISCRETE, bosco_discrete)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(galaga_state::galaga)
+ DISCRETE(config, "discrete", bosco_discrete).add_route(ALL_OUTPUTS, "mono", 0.90);
+}
+void galaga_state::galaga(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(galaga_map)
+ Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &galaga_state::galaga_map);
- MCFG_DEVICE_ADD("sub", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(galaga_map)
+ Z80(config, m_subcpu, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_subcpu->set_addrmap(AS_PROGRAM, &galaga_state::galaga_map);
- MCFG_DEVICE_ADD("sub2", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(galaga_map)
+ Z80(config, m_subcpu2, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_subcpu2->set_addrmap(AS_PROGRAM, &galaga_state::galaga_map);
ls259_device &misclatch(LS259(config, "misclatch")); // 3C on CPU board
misclatch.q_out_cb<0>().set(FUNC(galaga_state::irq1_clear_w));
@@ -1722,8 +1722,8 @@ MACHINE_CONFIG_START(galaga_state::galaga)
m_videolatch->q_out_cb<7>().set(FUNC(galaga_state::flip_screen_w));
WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 8);
- MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
- /* synchronization of the CPUs */
+
+ config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs */
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -1733,25 +1733,26 @@ MACHINE_CONFIG_START(galaga_state::galaga)
m_screen->screen_vblank().append(FUNC(galaga_state::vblank_irq));
m_screen->set_palette("palette");
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_galaga)
- MCFG_PALETTE_ADD("palette", 64*4+64*4+64)
- MCFG_PALETTE_INDIRECT_ENTRIES(32+64)
- MCFG_PALETTE_INIT_OWNER(galaga_state,galaga)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_galaga);
+ PALETTE(config, m_palette, 64*4+64*4+64);
+ m_palette->set_indirect_entries(32+64);
+ m_palette->set_init(FUNC(galaga_state::palette_init_galaga));
+
MCFG_VIDEO_START_OVERRIDE(galaga_state,galaga)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("namco", NAMCO, MASTER_CLOCK/6/32)
- MCFG_NAMCO_AUDIO_VOICES(3)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0)
+ NAMCO(config, m_namco_sound, MASTER_CLOCK/6/32);
+ m_namco_sound->set_voices(3);
+ m_namco_sound->add_route(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0);
/* discrete circuit on the 54XX outputs */
- MCFG_DEVICE_ADD("discrete", DISCRETE, galaga_discrete)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
-MACHINE_CONFIG_END
+ DISCRETE(config, "discrete", galaga_discrete).add_route(ALL_OUTPUTS, "mono", 0.90);
+}
-MACHINE_CONFIG_START(galaga_state::galagab)
+void galaga_state::galagab(machine_config &config)
+{
galaga(config);
/* basic machine hardware */
@@ -1765,33 +1766,33 @@ MACHINE_CONFIG_START(galaga_state::galagab)
n06xx.read_callback<0>().set("51xx", FUNC(namco_51xx_device::read));
n06xx.write_callback<0>().set("51xx", FUNC(namco_51xx_device::write));
- MCFG_DEVICE_ADD("sub3", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(galaga_mem4)
+ z80_device &sub3(Z80(config, "sub3", MASTER_CLOCK/6)); /* 3.072 MHz */
+ sub3.set_addrmap(AS_PROGRAM, &galaga_state::galaga_mem4);
/* sound hardware */
config.device_remove("discrete");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(galaga_state::gatsbee)
+void galaga_state::gatsbee(machine_config &config)
+{
galaga(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(gatsbee_main_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &galaga_state::gatsbee_main_map);
ls259_device &extralatch(LS259(config, "extralatch"));
extralatch.q_out_cb<0>().set(FUNC(galaga_state::gatsbee_bank_w));
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(xevious_state::xevious)
+}
+void xevious_state::xevious(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(xevious_map)
+ Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &xevious_state::xevious_map);
- MCFG_DEVICE_ADD("sub", Z80,MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(xevious_map)
+ Z80(config, m_subcpu, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_subcpu->set_addrmap(AS_PROGRAM, &xevious_state::xevious_map);
- MCFG_DEVICE_ADD("sub2", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(xevious_map)
+ Z80(config, m_subcpu2, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_subcpu2->set_addrmap(AS_PROGRAM, &xevious_state::xevious_map);
ls259_device &misclatch(LS259(config, "misclatch")); // 5K
misclatch.q_out_cb<0>().set(FUNC(galaga_state::irq1_clear_w));
@@ -1825,35 +1826,36 @@ MACHINE_CONFIG_START(xevious_state::xevious)
n06xx.write_callback<3>().set("54xx", FUNC(namco_54xx_device::write));
WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 8);
- MCFG_QUANTUM_TIME(attotime::from_hz(60000)) /* 1000 CPU slices per frame - an high value to ensure proper */
- /* synchronization of the CPUs */
+
+ config.m_minimum_quantum = attotime::from_hz(60000); /* 1000 CPU slices per frame - an high value to ensure proper synchronization of the CPUs */
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224)
- MCFG_SCREEN_UPDATE_DRIVER(xevious_state, screen_update_xevious)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, galaga_state, vblank_irq))
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_xevious)
- MCFG_PALETTE_ADD("palette", 128*4+64*8+64*2)
- MCFG_PALETTE_INDIRECT_ENTRIES(128+1)
- MCFG_PALETTE_INIT_OWNER(xevious_state,xevious)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224);
+ m_screen->set_screen_update(FUNC(xevious_state::screen_update_xevious));
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set(FUNC(galaga_state::vblank_irq));
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_xevious);
+ PALETTE(config, m_palette, 128*4+64*8+64*2);
+ m_palette->set_indirect_entries(128+1);
+ m_palette->set_init(FUNC(xevious_state::palette_init_xevious));
+
MCFG_VIDEO_START_OVERRIDE(xevious_state,xevious)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("namco", NAMCO, MASTER_CLOCK/6/32)
- MCFG_NAMCO_AUDIO_VOICES(3)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0)
+ NAMCO(config, m_namco_sound, MASTER_CLOCK/6/32);
+ m_namco_sound->set_voices(3);
+ m_namco_sound->add_route(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0);
/* discrete circuit on the 54XX outputs */
- MCFG_DEVICE_ADD("discrete", DISCRETE, galaga_discrete)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
-MACHINE_CONFIG_END
+ DISCRETE(config, "discrete", galaga_discrete).add_route(ALL_OUTPUTS, "mono", 0.90);
+}
-MACHINE_CONFIG_START(battles_state::battles)
+void battles_state::battles(machine_config &config)
+{
xevious(config);
/* basic machine hardware */
@@ -1867,33 +1869,33 @@ MACHINE_CONFIG_START(battles_state::battles)
n06xx.read_callback<0>().set("51xx", FUNC(namco_51xx_device::read));
n06xx.write_callback<0>().set("51xx", FUNC(namco_51xx_device::write));
- MCFG_DEVICE_ADD("sub3", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(battles_mem4)
+ Z80(config, m_subcpu3, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_subcpu3->set_addrmap(AS_PROGRAM, &battles_state::battles_mem4);
m_screen->screen_vblank().append(FUNC(battles_state::interrupt_4));
- MCFG_TIMER_DRIVER_ADD("nmi", battles_state, nmi_generate)
+ TIMER(config, "nmi").configure_generic(FUNC(battles_state::nmi_generate));
/* sound hardware */
config.device_remove("discrete");
- MCFG_DEVICE_ADD("samples", SAMPLES)
- MCFG_SAMPLES_CHANNELS(1)
- MCFG_SAMPLES_NAMES(battles_sample_names)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(digdug_state::digdug)
+ SAMPLES(config, m_samples);
+ m_samples->set_channels(1);
+ m_samples->set_samples_names(battles_sample_names);
+ m_samples->add_route(ALL_OUTPUTS, "mono", 0.80);
+}
+void digdug_state::digdug(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(digdug_map)
+ Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &digdug_state::digdug_map);
- MCFG_DEVICE_ADD("sub", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(digdug_map)
+ Z80(config, m_subcpu, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_subcpu->set_addrmap(AS_PROGRAM, &digdug_state::digdug_map);
- MCFG_DEVICE_ADD("sub2", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(digdug_map)
+ Z80(config, m_subcpu2, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_subcpu2->set_addrmap(AS_PROGRAM, &digdug_state::digdug_map);
ls259_device &misclatch(LS259(config, "misclatch")); // 8R
misclatch.q_out_cb<0>().set(FUNC(galaga_state::irq1_clear_w));
@@ -1935,42 +1937,43 @@ MACHINE_CONFIG_START(digdug_state::digdug)
m_videolatch->q_out_cb<3>().set(FUNC(digdug_state::bg_disable_w));
m_videolatch->q_out_cb<7>().set(FUNC(digdug_state::flip_screen_w));
- MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
- /* synchronization of the CPUs */
+ config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs */
- MCFG_DEVICE_ADD("earom", ER2055)
+ ER2055(config, m_earom);
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224)
- MCFG_SCREEN_UPDATE_DRIVER(digdug_state, screen_update_digdug)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, galaga_state, vblank_irq))
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_digdug)
- MCFG_PALETTE_ADD("palette", 16*2+64*4+64*4)
- MCFG_PALETTE_INDIRECT_ENTRIES(32)
- MCFG_PALETTE_INIT_OWNER(digdug_state,digdug)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224);
+ m_screen->set_screen_update(FUNC(digdug_state::screen_update_digdug));
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set(FUNC(galaga_state::vblank_irq));
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_digdug);
+ PALETTE(config, m_palette, 16*2+64*4+64*4);
+ m_palette->set_indirect_entries(32);
+ m_palette->set_init(FUNC(digdug_state::palette_init_digdug));
+
MCFG_VIDEO_START_OVERRIDE(digdug_state,digdug)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("namco", NAMCO, MASTER_CLOCK/6/32)
- MCFG_NAMCO_AUDIO_VOICES(3)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0)
-MACHINE_CONFIG_END
+ NAMCO(config, m_namco_sound, MASTER_CLOCK/6/32);
+ m_namco_sound->set_voices(3);
+ m_namco_sound->add_route(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0);
+}
-MACHINE_CONFIG_START(digdug_state::dzigzag)
+void digdug_state::dzigzag(machine_config &config)
+{
digdug(config);
/* basic machine hardware */
- MCFG_DEVICE_ADD("sub3", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(dzigzag_mem4)
-MACHINE_CONFIG_END
+ z80_device &sub3(Z80(config, "sub3", MASTER_CLOCK/6)); /* 3.072 MHz */
+ sub3.set_addrmap(AS_PROGRAM, &digdug_state::dzigzag_mem4);
+}
diff --git a/src/mame/drivers/gaplus.cpp b/src/mame/drivers/gaplus.cpp
index 1d16b83d33e..041f76c3f2d 100644
--- a/src/mame/drivers/gaplus.cpp
+++ b/src/mame/drivers/gaplus.cpp
@@ -514,18 +514,19 @@ void gaplus_state::machine_start()
m_lamps.resolve();
}
-MACHINE_CONFIG_START(gaplus_base_state::gaplus_base)
+void gaplus_base_state::gaplus_base(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(m_maincpu, MC6809E, XTAL(24'576'000) / 16) /* 1.536 MHz */
- MCFG_DEVICE_PROGRAM_MAP(cpu1_map)
+ MC6809E(config, m_maincpu, XTAL(24'576'000) / 16); /* 1.536 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &gaplus_base_state::cpu1_map);
- MCFG_DEVICE_ADD("sub", MC6809E, XTAL(24'576'000) / 16) /* 1.536 MHz */
- MCFG_DEVICE_PROGRAM_MAP(cpu2_map)
+ MC6809E(config, m_subcpu, XTAL(24'576'000) / 16); /* 1.536 MHz */
+ m_subcpu->set_addrmap(AS_PROGRAM, &gaplus_base_state::cpu2_map);
- MCFG_DEVICE_ADD("sub2", MC6809E, XTAL(24'576'000) / 16) /* 1.536 MHz */
- MCFG_DEVICE_PROGRAM_MAP(cpu3_map)
+ MC6809E(config, m_subcpu2, XTAL(24'576'000) / 16); /* 1.536 MHz */
+ m_subcpu2->set_addrmap(AS_PROGRAM, &gaplus_base_state::cpu3_map);
- MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* a high value to ensure proper synchronization of the CPUs */
+ config.m_minimum_quantum = attotime::from_hz(6000); /* a high value to ensure proper synchronization of the CPUs */
WATCHDOG_TIMER(config, "watchdog");
@@ -548,23 +549,23 @@ MACHINE_CONFIG_START(gaplus_base_state::gaplus_base)
m_screen->screen_vblank().append(FUNC(gaplus_base_state::vblank_irq));
m_screen->set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_gaplus)
- MCFG_PALETTE_ADD("palette", 64 * 4 + 64 * 8)
- MCFG_PALETTE_INDIRECT_ENTRIES(256)
- MCFG_PALETTE_INIT_OWNER(gaplus_base_state, gaplus)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_gaplus);
+ PALETTE(config, m_palette, 64 * 4 + 64 * 8);
+ m_palette->set_indirect_entries(256);
+ m_palette->set_init(FUNC(gaplus_base_state::palette_init_gaplus));
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("namco", NAMCO_15XX, XTAL(24'576'000) / 1024)
- MCFG_NAMCO_AUDIO_VOICES(8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ NAMCO_15XX(config, m_namco_15xx, XTAL(24'576'000) / 1024);
+ m_namco_15xx->set_voices(8);
+ m_namco_15xx->add_route(ALL_OUTPUTS, "mono", 1.0);
- MCFG_DEVICE_ADD("samples", SAMPLES)
- MCFG_SAMPLES_CHANNELS(1)
- MCFG_SAMPLES_NAMES(gaplus_sample_names)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
-MACHINE_CONFIG_END
+ SAMPLES(config, m_samples);
+ m_samples->set_channels(1);
+ m_samples->set_samples_names(gaplus_sample_names);
+ m_samples->add_route(ALL_OUTPUTS, "mono", 0.80);
+}
void gaplus_state::gaplus(machine_config &config)
{
diff --git a/src/mame/drivers/hcastle.cpp b/src/mame/drivers/hcastle.cpp
index 5f540098fb0..7598f7753a1 100644
--- a/src/mame/drivers/hcastle.cpp
+++ b/src/mame/drivers/hcastle.cpp
@@ -186,36 +186,35 @@ void hcastle_state::machine_reset()
m_old_pf2 = -1;
}
-MACHINE_CONFIG_START(hcastle_state::hcastle)
-
+void hcastle_state::hcastle(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", KONAMI, 3000000) /* Derived from 24 MHz clock */
- MCFG_DEVICE_PROGRAM_MAP(hcastle_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", hcastle_state, irq0_line_hold)
+ KONAMI(config, m_maincpu, 3000000); /* Derived from 24 MHz clock */
+ m_maincpu->set_addrmap(AS_PROGRAM, &hcastle_state::hcastle_map);
+ m_maincpu->set_vblank_int("screen", FUNC(hcastle_state::irq0_line_hold));
- MCFG_DEVICE_ADD("audiocpu", Z80, 3579545)
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
+ Z80(config, m_audiocpu, 3579545);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &hcastle_state::sound_map);
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM8)
- MCFG_DEVICE_ADD("spriteram2", BUFFERED_SPRITERAM8)
-
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(59)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second verified by comparison with real board */)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(hcastle_state, screen_update_hcastle)
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_hcastle)
- MCFG_PALETTE_ADD("palette", 2*8*16*16)
- MCFG_PALETTE_INDIRECT_ENTRIES(128)
- MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
- MCFG_PALETTE_INIT_OWNER(hcastle_state, hcastle)
-
+ BUFFERED_SPRITERAM8(config, m_spriteram);
+ BUFFERED_SPRITERAM8(config, m_spriteram2);
+
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(59);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); /* frames per second verified by comparison with real board */
+ screen.set_size(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(hcastle_state::screen_update_hcastle));
+ screen.set_palette(m_palette);
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_hcastle);
+ PALETTE(config, m_palette, 2*8*16*16);
+ m_palette->set_indirect_entries(128);
+ m_palette->set_format(PALETTE_FORMAT_xBBBBBGGGGGRRRRR);
+ m_palette->set_init(FUNC(hcastle_state::palette_init_hcastle));
K007121(config, m_k007121_1, 0);
m_k007121_1->set_palette_tag(m_palette);
@@ -227,18 +226,17 @@ MACHINE_CONFIG_START(hcastle_state::hcastle)
GENERIC_LATCH_8(config, "soundlatch");
- MCFG_DEVICE_ADD("k007232", K007232, 3579545)
- MCFG_K007232_PORT_WRITE_HANDLER(WRITE8(*this, hcastle_state, volume_callback))
- MCFG_SOUND_ROUTE(0, "mono", 0.44)
- MCFG_SOUND_ROUTE(1, "mono", 0.50)
+ K007232(config, m_k007232, 3579545);
+ m_k007232->port_write().set(FUNC(hcastle_state::volume_callback));
+ m_k007232->add_route(0, "mono", 0.44);
+ m_k007232->add_route(1, "mono", 0.50);
- MCFG_DEVICE_ADD("ymsnd", YM3812, 3579545)
- MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_NMI)) /* from schematic; NMI handler is just a retn */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70)
+ ym3812_device &ymsnd(YM3812(config, "ymsnd", 3579545));
+ ymsnd.irq_handler().set_inputline("audiocpu", INPUT_LINE_NMI); /* from schematic; NMI handler is just a retn */
+ ymsnd.add_route(ALL_OUTPUTS, "mono", 0.70);
- MCFG_K051649_ADD("k051649", 3579545/2)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.45)
-MACHINE_CONFIG_END
+ K051649(config, "k051649", 3579545/2).add_route(ALL_OUTPUTS, "mono", 0.45);
+}
/***************************************************************************/
diff --git a/src/mame/drivers/hexion.cpp b/src/mame/drivers/hexion.cpp
index 872262039bf..41fac719417 100644
--- a/src/mame/drivers/hexion.cpp
+++ b/src/mame/drivers/hexion.cpp
@@ -87,7 +87,6 @@ Notes:
#include "sound/okim6295.h"
#include "sound/k051649.h"
-#include "emupal.h"
#include "speaker.h"
@@ -252,13 +251,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(hexion_state::scanline)
}
}
-
-MACHINE_CONFIG_START(hexion_state::hexion)
-
+void hexion_state::hexion(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(24'000'000)/4) /* Z80B 6 MHz @ 17F, xtal verified, divider not verified */
- MCFG_DEVICE_PROGRAM_MAP(hexion_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", hexion_state, scanline, "screen", 0, 1)
+ Z80(config, m_maincpu, XTAL(24'000'000)/4); /* Z80B 6 MHz @ 17F, xtal verified, divider not verified */
+ m_maincpu->set_addrmap(AS_PROGRAM, &hexion_state::hexion_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(hexion_state::scanline), "screen", 0, 1);
WATCHDOG_TIMER(config, "watchdog");
K053252(config, m_k053252, XTAL(24'000'000)/2); /* K053252, X0-010(?) @8D, xtal verified, divider not verified */
@@ -267,37 +265,39 @@ MACHINE_CONFIG_START(hexion_state::hexion)
m_k053252->int_time().set(FUNC(hexion_state::ccu_int_time_w));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 36*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(hexion_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_hexion)
- MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", "proms", 256)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 36*8);
+ screen.set_visarea(0*8, 64*8-1, 0*8, 32*8-1);
+ screen.set_screen_update(FUNC(hexion_state::screen_update));
+ screen.set_palette(m_palette);
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_hexion);
+ PALETTE(config, m_palette, 256);
+ m_palette->set_prom_region("proms");
+ m_palette->set_init("palette", FUNC(palette_device::palette_init_RRRRGGGGBBBB_proms));
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 1056000, okim6295_device::PIN7_HIGH) /* MSM6295GS @ 5E, clock frequency & pin 7 not verified */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
+ /* MSM6295GS @ 5E, clock frequency & pin 7 not verified */
+ OKIM6295(config, "oki", 1056000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.5);
- MCFG_K051649_ADD("k051649", XTAL(24'000'000)/16) /* KONAMI 051649 // 2212P003 // JAPAN 8910EAJ @ 1D, xtal verified, divider not verified */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
-MACHINE_CONFIG_END
+ /* KONAMI 051649 // 2212P003 // JAPAN 8910EAJ @ 1D, xtal verified, divider not verified */
+ K051649(config, "k051649", XTAL(24'000'000)/16).add_route(ALL_OUTPUTS, "mono", 0.5);
+}
-MACHINE_CONFIG_START(hexion_state::hexionb)
+void hexion_state::hexionb(machine_config &config)
+{
hexion(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(hexionb_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &hexion_state::hexionb_map);
- MCFG_DEVICE_REMOVE("k051649")
+ config.device_remove("k051649");
- MCFG_DEVICE_ADD("oki2", OKIM6295, 1056000, okim6295_device::PIN7_LOW) // clock frequency & pin 7 not verified; this clock and pin 7 being low makes the pitch match the non-bootleg version, so is probably correct
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
-MACHINE_CONFIG_END
+ // clock frequency & pin 7 not verified; this clock and pin 7 being low makes the pitch match the non-bootleg version, so is probably correct
+ OKIM6295(config, "oki2", 1056000, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 0.5);
+}
/***************************************************************************
diff --git a/src/mame/drivers/jrpacman.cpp b/src/mame/drivers/jrpacman.cpp
index fcd54cef2ef..edda1c297a9 100644
--- a/src/mame/drivers/jrpacman.cpp
+++ b/src/mame/drivers/jrpacman.cpp
@@ -279,12 +279,12 @@ WRITE_LINE_MEMBER(jrpacman_state::vblank_irq)
m_maincpu->set_input_line(0, HOLD_LINE);
}
-MACHINE_CONFIG_START(jrpacman_state::jrpacman)
-
+void jrpacman_state::jrpacman(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_DEVICE_IO_MAP(port_map)
+ Z80(config, m_maincpu, 18432000/6); /* 3.072 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &jrpacman_state::main_map);
+ m_maincpu->set_addrmap(AS_IO, &jrpacman_state::port_map);
ls259_device &latch1(LS259(config, "latch1")); // 5P
latch1.q_out_cb<0>().set(FUNC(jrpacman_state::irq_mask_w));
@@ -302,28 +302,29 @@ MACHINE_CONFIG_START(jrpacman_state::jrpacman)
WATCHDOG_TIMER(config, m_watchdog);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60.606060)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(36*8, 28*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(jrpacman_state, screen_update_pacman)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, jrpacman_state, vblank_irq))
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_jrpacman)
- MCFG_PALETTE_ADD("palette", 128*4)
- MCFG_PALETTE_INDIRECT_ENTRIES(32)
- MCFG_PALETTE_INIT_OWNER(jrpacman_state,pacman)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60.606060);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(36*8, 28*8);
+ screen.set_visarea(0*8, 36*8-1, 0*8, 28*8-1);
+ screen.set_screen_update(FUNC(jrpacman_state::screen_update_pacman));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(jrpacman_state::vblank_irq));
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_jrpacman);
+ PALETTE(config, m_palette, 128*4);
+ m_palette->set_indirect_entries(32);
+ m_palette->set_init(FUNC(jrpacman_state::palette_init_pacman));
+
MCFG_VIDEO_START_OVERRIDE(jrpacman_state,jrpacman)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("namco", NAMCO, 3072000/32)
- MCFG_NAMCO_AUDIO_VOICES(3)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ NAMCO(config, m_namco_sound, 3072000/32);
+ m_namco_sound->set_voices(3);
+ m_namco_sound->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
diff --git a/src/mame/drivers/konmedal.cpp b/src/mame/drivers/konmedal.cpp
index 937116dc82f..0fa5969f100 100644
--- a/src/mame/drivers/konmedal.cpp
+++ b/src/mame/drivers/konmedal.cpp
@@ -381,25 +381,26 @@ void konmedal_state::machine_reset()
m_control = m_control2 = m_shuri_irq = 0;
}
-MACHINE_CONFIG_START(konmedal_state::tsukande)
+void konmedal_state::tsukande(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(14'318'181)/2) // z84c0008pec 8mhz part, 14.31818Mhz xtal verified on PCB, divisor unknown
- MCFG_DEVICE_PROGRAM_MAP(medal_main)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", konmedal_state, konmedal_interrupt)
+ Z80(config, m_maincpu, XTAL(14'318'181)/2); // z84c0008pec 8mhz part, 14.31818Mhz xtal verified on PCB, divisor unknown
+ m_maincpu->set_addrmap(AS_PROGRAM, &konmedal_state::medal_main);
+ m_maincpu->set_vblank_int("screen", FUNC(konmedal_state::konmedal_interrupt));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(59.62) /* verified on pcb */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(80, 400-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_DRIVER(konmedal_state, screen_update_konmedal)
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_PALETTE_ADD("palette", 8192)
- MCFG_PALETTE_ENABLE_SHADOWS()
- MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
- MCFG_PALETTE_INIT_OWNER(konmedal_state, konmedal)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(59.62); /* verified on pcb */
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(80, 400-1, 16, 240-1);
+ screen.set_screen_update(FUNC(konmedal_state::screen_update_konmedal));
+ screen.set_palette(m_palette);
+
+ PALETTE(config, m_palette, 8192);
+ m_palette->enable_shadows();
+ m_palette->set_format(PALETTE_FORMAT_xBBBBBGGGGGRRRRR);
+ m_palette->set_init(FUNC(konmedal_state::palette_init_konmedal));
K056832(config, m_k056832, 0);
m_k056832->set_tile_callback(FUNC(konmedal_state::tile_callback), this);
@@ -410,30 +411,31 @@ MACHINE_CONFIG_START(konmedal_state::tsukande)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ymz", YMZ280B, XTAL(16'934'400)) // 16.9344MHz xtal verified on PCB
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+ YMZ280B(config, m_ymz, XTAL(16'934'400)); // 16.9344MHz xtal verified on PCB
+ m_ymz->add_route(0, "lspeaker", 1.0);
+ m_ymz->add_route(1, "rspeaker", 1.0);
+}
-MACHINE_CONFIG_START(konmedal_state::ddboy)
+void konmedal_state::ddboy(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(14'318'181)/2) // z84c0008pec 8mhz part, 14.31818Mhz xtal verified on PCB, divisor unknown
- MCFG_DEVICE_PROGRAM_MAP(ddboy_main)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", konmedal_state, konmedal_interrupt)
+ Z80(config, m_maincpu, XTAL(14'318'181)/2); // z84c0008pec 8mhz part, 14.31818Mhz xtal verified on PCB, divisor unknown
+ m_maincpu->set_addrmap(AS_PROGRAM, &konmedal_state::ddboy_main);
+ m_maincpu->set_vblank_int("screen", FUNC(konmedal_state::konmedal_interrupt));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(59.62) /* verified on pcb */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(80, 400-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_DRIVER(konmedal_state, screen_update_konmedal)
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_PALETTE_ADD("palette", 8192)
- MCFG_PALETTE_ENABLE_SHADOWS()
- MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
- MCFG_PALETTE_INIT_OWNER(konmedal_state, konmedal)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(59.62); /* verified on pcb */
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(80, 400-1, 16, 240-1);
+ screen.set_screen_update(FUNC(konmedal_state::screen_update_konmedal));
+ screen.set_palette(m_palette);
+
+ PALETTE(config, m_palette, 8192);
+ m_palette->enable_shadows();
+ m_palette->set_format(PALETTE_FORMAT_xBBBBBGGGGGRRRRR);
+ m_palette->set_init(FUNC(konmedal_state::palette_init_konmedal));
K056832(config, m_k056832, 0);
m_k056832->set_tile_callback(FUNC(konmedal_state::tile_callback), this);
@@ -442,13 +444,12 @@ MACHINE_CONFIG_START(konmedal_state::ddboy)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(14'318'181)/14, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(0, "mono", 1.0)
- MCFG_SOUND_ROUTE(1, "mono", 1.0)
+ OKIM6295(config, m_oki, XTAL(14'318'181)/14, okim6295_device::PIN7_HIGH);
+ m_oki->add_route(0, "mono", 1.0);
+ m_oki->add_route(1, "mono", 1.0);
- MCFG_K051649_ADD("k051649", XTAL(14'318'181)/8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.45)
-MACHINE_CONFIG_END
+ K051649(config, "k051649", XTAL(14'318'181)/8).add_route(ALL_OUTPUTS, "mono", 0.45);
+}
/*
Shuriken Boy
@@ -542,25 +543,26 @@ WRITE8_MEMBER(konmedal_state::shuri_vrom_bank_w)
m_vrom_base |= (data << 10);
}
-MACHINE_CONFIG_START(konmedal_state::shuriboy)
+void konmedal_state::shuriboy(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(24'000'000) / 3) // divisor unknown
- MCFG_DEVICE_PROGRAM_MAP(shuriboy_main)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", konmedal_state, scanline, "screen", 0, 1)
+ Z80(config, m_maincpu, XTAL(24'000'000) / 3); // divisor unknown
+ m_maincpu->set_addrmap(AS_PROGRAM, &konmedal_state::shuriboy_main);
+ TIMER(config, "scantimer").configure_scanline(FUNC(konmedal_state::scanline), "screen", 0, 1);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER) // everything not verified, just a placeholder
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(30))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(80, 400-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_DRIVER(konmedal_state, screen_update_shuriboy)
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_PALETTE_ADD("palette", 8192) // not verified
- MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
- MCFG_PALETTE_ENABLE_SHADOWS()
- MCFG_PALETTE_ENABLE_HILIGHTS()
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); // everything not verified, just a placeholder
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(30));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(80, 400-1, 16, 240-1);
+ screen.set_screen_update(FUNC(konmedal_state::screen_update_shuriboy));
+ screen.set_palette(m_palette);
+
+ PALETTE(config, m_palette, 8192); // not verified
+ m_palette->set_format(PALETTE_FORMAT_xBBBBBGGGGGRRRRR);
+ m_palette->enable_shadows();
+ m_palette->enable_hilights();
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
@@ -571,11 +573,10 @@ MACHINE_CONFIG_START(konmedal_state::shuriboy)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_K051649_ADD("k051649", XTAL(24'000'000) / 12) // divisor unknown
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.45)
+ K051649(config, "k051649", XTAL(24'000'000) / 12).add_route(ALL_OUTPUTS, "mono", 0.45); // divisor unknown
// upd7759c
-MACHINE_CONFIG_END
+}
ROM_START( tsukande )
ROM_REGION( 0x20000, "maincpu", 0 ) /* main program */
diff --git a/src/mame/drivers/mappy.cpp b/src/mame/drivers/mappy.cpp
index 0c08524c23e..59fdc9b1d2b 100644
--- a/src/mame/drivers/mappy.cpp
+++ b/src/mame/drivers/mappy.cpp
@@ -1315,14 +1315,14 @@ void mappy_state::machine_start()
}
-MACHINE_CONFIG_START(mappy_state::superpac_common)
-
+void mappy_state::superpac_common(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", MC6809E, PIXEL_CLOCK/4) /* 1.536 MHz */
- MCFG_DEVICE_PROGRAM_MAP(superpac_cpu1_map)
+ MC6809E(config, m_maincpu, PIXEL_CLOCK/4); /* 1.536 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &mappy_state::superpac_cpu1_map);
- MCFG_DEVICE_ADD("sub", MC6809E, PIXEL_CLOCK/4) /* 1.536 MHz */
- MCFG_DEVICE_PROGRAM_MAP(superpac_cpu2_map)
+ MC6809E(config, m_subcpu, PIXEL_CLOCK/4); /* 1.536 MHz */
+ m_subcpu->set_addrmap(AS_PROGRAM, &mappy_state::superpac_cpu2_map);
ls259_device &mainlatch(LS259(config, "mainlatch")); // 2M on CPU board
mainlatch.q_out_cb<0>().set(FUNC(mappy_state::int_on_2_w));
@@ -1333,34 +1333,34 @@ MACHINE_CONFIG_START(mappy_state::superpac_common)
mainlatch.q_out_cb<5>().set_inputline(m_subcpu, INPUT_LINE_RESET).invert();
WATCHDOG_TIMER(config, "watchdog").set_vblank_count("screen", 8);
- MCFG_QUANTUM_TIME(attotime::from_hz(6000)) // 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs
+
+ config.m_minimum_quantum = attotime::from_hz(6000); // 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs
ls157_device &dipmux(LS157(config, "dipmux"));
dipmux.a_in_callback().set_ioport("DSW2");
dipmux.b_in_callback().set_ioport("DSW2").rshift(4);
/* video hardware */
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_superpac)
- MCFG_PALETTE_ADD("palette", 64*4+64*4)
- MCFG_PALETTE_INDIRECT_ENTRIES(32)
- MCFG_PALETTE_INIT_OWNER(mappy_state,superpac)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_superpac);
+ PALETTE(config, m_palette, 64*4+64*4);
+ m_palette->set_indirect_entries(32);
+ m_palette->set_init(FUNC(mappy_state::palette_init_superpac));
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_superpac)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, mappy_state, vblank_irq)) // cause IRQs on both CPUs; also update the custom I/O chips
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART);
+ m_screen->set_screen_update(FUNC(mappy_state::screen_update_superpac));
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set(FUNC(mappy_state::vblank_irq)); // cause IRQs on both CPUs; also update the custom I/O chips
MCFG_VIDEO_START_OVERRIDE(mappy_state,superpac)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("namco", NAMCO_15XX, 18432000/768)
- MCFG_NAMCO_AUDIO_VOICES(8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
-MACHINE_CONFIG_END
-
+ NAMCO_15XX(config, m_namco_15xx, 18432000/768);
+ m_namco_15xx->set_voices(8);
+ m_namco_15xx->add_route(ALL_OUTPUTS, "speaker", 1.0);
+}
void mappy_state::superpac(machine_config &config)
{
@@ -1399,9 +1399,8 @@ void mappy_state::pacnpal(machine_config &config)
m_namcoio[1]->out_callback<0>().set("dipmux", FUNC(ls157_device::select_w)).bit(0);
}
-
-MACHINE_CONFIG_START(mappy_state::grobda)
-
+void mappy_state::grobda(machine_config &config)
+{
superpac_common(config);
NAMCO_58XX(config, m_namcoio[0], 0);
@@ -1418,23 +1417,24 @@ MACHINE_CONFIG_START(mappy_state::grobda)
m_namcoio[1]->out_callback<0>().set("dipmux", FUNC(ls157_device::select_w)).bit(0);
/* sound hardware */
- MCFG_DEVICE_ADD("dac", DAC_4BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.275) // alternate route to 15XX-related DAC?
- MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
-MACHINE_CONFIG_END
-
-
-MACHINE_CONFIG_START(mappy_state::phozon)
+ DAC_4BIT_BINARY_WEIGHTED(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.275); // alternate route to 15XX-related DAC?
+ voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
+ vref.set_output(5.0);
+ vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
+ vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
+}
+void mappy_state::phozon(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", MC6809E, PIXEL_CLOCK/4) /* MAIN CPU */
- MCFG_DEVICE_PROGRAM_MAP(phozon_cpu1_map)
+ MC6809E(config, m_maincpu, PIXEL_CLOCK/4); /* MAIN CPU */
+ m_maincpu->set_addrmap(AS_PROGRAM, &mappy_state::phozon_cpu1_map);
- MCFG_DEVICE_ADD("sub", MC6809E, PIXEL_CLOCK/4) /* SOUND CPU */
- MCFG_DEVICE_PROGRAM_MAP(phozon_cpu2_map)
+ MC6809E(config, m_subcpu, PIXEL_CLOCK/4); /* SOUND CPU */
+ m_subcpu->set_addrmap(AS_PROGRAM, &mappy_state::phozon_cpu2_map);
- MCFG_DEVICE_ADD("sub2", MC6809E, PIXEL_CLOCK/4) /* SUB CPU */
- MCFG_DEVICE_PROGRAM_MAP(phozon_cpu3_map)
+ MC6809E(config, m_subcpu2, PIXEL_CLOCK/4); /* SUB CPU */
+ m_subcpu2->set_addrmap(AS_PROGRAM, &mappy_state::phozon_cpu3_map);
ls259_device &mainlatch(LS259(config, "mainlatch")); // 5C
mainlatch.q_out_cb<0>().set(FUNC(mappy_state::int_on_2_w));
@@ -1447,7 +1447,8 @@ MACHINE_CONFIG_START(mappy_state::phozon)
mainlatch.q_out_cb<6>().set_inputline(m_subcpu2, INPUT_LINE_RESET).invert();
WATCHDOG_TIMER(config, "watchdog").set_vblank_count("screen", 8);
- MCFG_QUANTUM_TIME(attotime::from_hz(6000)) // 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs
+
+ config.m_minimum_quantum = attotime::from_hz(6000); // 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs
NAMCO_58XX(config, m_namcoio[0], 0);
m_namcoio[0]->in_callback<0>().set_ioport("COINS");
@@ -1467,36 +1468,35 @@ MACHINE_CONFIG_START(mappy_state::phozon)
dipmux.b_in_callback().set_ioport("DSW2").rshift(4);
/* video hardware */
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_phozon)
- MCFG_PALETTE_ADD("palette", 64*4+64*4)
- MCFG_PALETTE_INDIRECT_ENTRIES(32)
- MCFG_PALETTE_INIT_OWNER(mappy_state,phozon)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_phozon);
+ PALETTE(config, m_palette, 64*4+64*4);
+ m_palette->set_indirect_entries(32);
+ m_palette->set_init(FUNC(mappy_state::palette_init_phozon));
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_phozon)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, mappy_state, vblank_irq)) // cause IRQs on all three CPUs; also update the custom I/O chips
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART);
+ m_screen->set_screen_update(FUNC(mappy_state::screen_update_phozon));
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set(FUNC(mappy_state::vblank_irq)); // cause IRQs on all three CPUs; also update the custom I/O chips
MCFG_VIDEO_START_OVERRIDE(mappy_state,phozon)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("namco", NAMCO_15XX, 18432000/768)
- MCFG_NAMCO_AUDIO_VOICES(8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
-MACHINE_CONFIG_END
-
-
-MACHINE_CONFIG_START(mappy_state::mappy_common)
+ NAMCO_15XX(config, m_namco_15xx, 18432000/768);
+ m_namco_15xx->set_voices(8);
+ m_namco_15xx->add_route(ALL_OUTPUTS, "speaker", 1.0);
+}
+void mappy_state::mappy_common(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", MC6809E, PIXEL_CLOCK/4) /* 1.536 MHz */
- MCFG_DEVICE_PROGRAM_MAP(mappy_cpu1_map)
+ MC6809E(config, m_maincpu, PIXEL_CLOCK/4); /* 1.536 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &mappy_state::mappy_cpu1_map);
- MCFG_DEVICE_ADD("sub", MC6809E, PIXEL_CLOCK/4) /* 1.536 MHz */
- MCFG_DEVICE_PROGRAM_MAP(mappy_cpu2_map)
+ MC6809E(config, m_subcpu, PIXEL_CLOCK/4); /* 1.536 MHz */
+ m_subcpu->set_addrmap(AS_PROGRAM, &mappy_state::mappy_cpu2_map);
ls259_device &mainlatch(LS259(config, "mainlatch")); // 2M on CPU board
mainlatch.q_out_cb<0>().set(FUNC(mappy_state::int_on_2_w));
@@ -1508,33 +1508,34 @@ MACHINE_CONFIG_START(mappy_state::mappy_common)
mainlatch.q_out_cb<5>().set_inputline(m_subcpu, INPUT_LINE_RESET).invert();
WATCHDOG_TIMER(config, "watchdog").set_vblank_count("screen", 8);
- MCFG_QUANTUM_TIME(attotime::from_hz(6000)) // 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs
+
+ config.m_minimum_quantum = attotime::from_hz(6000); // 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs
ls157_device &dipmux(LS157(config, "dipmux"));
dipmux.a_in_callback().set_ioport("DSW2");
dipmux.b_in_callback().set_ioport("DSW2").rshift(4);
/* video hardware */
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_mappy)
- MCFG_PALETTE_ADD("palette", 64*4+16*16)
- MCFG_PALETTE_INDIRECT_ENTRIES(32)
- MCFG_PALETTE_INIT_OWNER(mappy_state,mappy)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_mappy);
+ PALETTE(config, m_palette, 64*4+16*16);
+ m_palette->set_indirect_entries(32);
+ m_palette->set_init(FUNC(mappy_state::palette_init_mappy));
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_mappy)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, mappy_state, vblank_irq)) // cause IRQs on both CPUs; also update the custom I/O chips
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART);
+ m_screen->set_screen_update(FUNC(mappy_state::screen_update_mappy));
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set(FUNC(mappy_state::vblank_irq)); // cause IRQs on both CPUs; also update the custom I/O chips
MCFG_VIDEO_START_OVERRIDE(mappy_state,mappy)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("namco", NAMCO_15XX, 18432000/768)
- MCFG_NAMCO_AUDIO_VOICES(8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
-MACHINE_CONFIG_END
+ NAMCO_15XX(config, m_namco_15xx, 18432000/768);
+ m_namco_15xx->set_voices(8);
+ m_namco_15xx->add_route(ALL_OUTPUTS, "speaker", 1.0);
+}
void mappy_state::mappy(machine_config &config)
{
@@ -1574,14 +1575,14 @@ void mappy_state::digdug2(machine_config &config)
m_namcoio[1]->out_callback<0>().set("dipmux", FUNC(ls157_device::select_w)).bit(0);
}
-MACHINE_CONFIG_START(mappy_state::todruaga)
+void mappy_state::todruaga(machine_config &config)
+{
digdug2(config);
/* video hardware */
- MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_todruaga)
- MCFG_PALETTE_MODIFY("palette")
- MCFG_PALETTE_ENTRIES(64*4+64*16)
-MACHINE_CONFIG_END
+ m_gfxdecode->set_info(gfx_todruaga);
+ m_palette->set_entries(64*4+64*16);
+}
void mappy_state::motos(machine_config &config)
{
diff --git a/src/mame/drivers/namcos86.cpp b/src/mame/drivers/namcos86.cpp
index 07866feec04..5f2d4c155c4 100644
--- a/src/mame/drivers/namcos86.cpp
+++ b/src/mame/drivers/namcos86.cpp
@@ -178,7 +178,6 @@ TODO:
#include "includes/namcos86.h"
#include "cpu/m6809/m6809.h"
-#include "cpu/m6800/m6801.h"
#include "sound/ym2151.h"
#include "screen.h"
#include "speaker.h"
@@ -1047,111 +1046,97 @@ GFXDECODE_END
/*******************************************************************/
-MACHINE_CONFIG_START(namcos86_state::hopmappy)
-
+void namcos86_state::hopmappy(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("cpu1", MC6809E, XTAL(49'152'000)/32)
- MCFG_DEVICE_PROGRAM_MAP(cpu1_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", namcos86_state, irq0_line_assert)
+ MC6809E(config, m_cpu1, XTAL(49'152'000)/32);
+ m_cpu1->set_addrmap(AS_PROGRAM, &namcos86_state::cpu1_map);
+ m_cpu1->set_vblank_int("screen", FUNC(namcos86_state::irq0_line_assert));
- MCFG_DEVICE_ADD("cpu2", MC6809E, XTAL(49'152'000)/32)
- MCFG_DEVICE_PROGRAM_MAP(hopmappy_cpu2_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", namcos86_state, irq0_line_assert)
+ MC6809E(config, m_cpu2, XTAL(49'152'000)/32);
+ m_cpu2->set_addrmap(AS_PROGRAM, &namcos86_state::hopmappy_cpu2_map);
+ m_cpu2->set_vblank_int("screen", FUNC(namcos86_state::irq0_line_assert));
- hd63701_cpu_device &mcu(HD63701(config, "mcu", XTAL(49'152'000)/8)); /* or compatible 6808 with extra instructions */
- mcu.set_addrmap(AS_PROGRAM, &namcos86_state::hopmappy_mcu_map);
- mcu.in_p1_cb().set_ioport("IN2");
- mcu.in_p2_cb().set_constant(0xff); /* leds won't work otherwise */
- mcu.out_p1_cb().set(FUNC(namcos86_state::coin_w));
- mcu.out_p2_cb().set(FUNC(namcos86_state::led_w));
- mcu.set_vblank_int("screen", FUNC(namcos86_state::irq0_line_hold)); /* ??? */
+ HD63701(config, m_mcu, XTAL(49'152'000)/8); /* or compatible 6808 with extra instructions */
+ m_mcu->set_addrmap(AS_PROGRAM, &namcos86_state::hopmappy_mcu_map);
+ m_mcu->in_p1_cb().set_ioport("IN2");
+ m_mcu->in_p2_cb().set_constant(0xff); /* leds won't work otherwise */
+ m_mcu->out_p1_cb().set(FUNC(namcos86_state::coin_w));
+ m_mcu->out_p2_cb().set(FUNC(namcos86_state::led_w));
+ m_mcu->set_vblank_int("screen", FUNC(namcos86_state::irq0_line_hold)); /* ??? */
- MCFG_QUANTUM_TIME(attotime::from_hz(48000)) /* heavy interleaving needed to avoid hangs in rthunder */
+ config.m_minimum_quantum = attotime::from_hz(48000); /* heavy interleaving needed to avoid hangs in rthunder */
WATCHDOG_TIMER(config, m_watchdog);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(49'152'000)/8, 384, 3+8*8, 3+44*8, 264, 2*8, 30*8)
- MCFG_SCREEN_UPDATE_DRIVER(namcos86_state, screen_update)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, namcos86_state, screen_vblank))
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(XTAL(49'152'000)/8, 384, 3+8*8, 3+44*8, 264, 2*8, 30*8);
+ screen.set_screen_update(FUNC(namcos86_state::screen_update));
+ screen.screen_vblank().set(FUNC(namcos86_state::screen_vblank));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_namcos86)
- MCFG_PALETTE_ADD("palette", 4096)
- MCFG_PALETTE_INIT_OWNER(namcos86_state, namcos86)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_namcos86);
+ PALETTE(config, m_palette, 4096);
+ m_palette->set_init(FUNC(namcos86_state::palette_init_namcos86));
/* sound hardware */
SPEAKER(config, "mono").front_center();
YM2151(config, "ymsnd", 3579580).add_route(0, "mono", 0.0).add_route(1, "mono", 0.60); /* only right channel is connected */
- MCFG_DEVICE_ADD("namco", NAMCO_CUS30, XTAL(49'152'000)/2048)
- MCFG_NAMCO_AUDIO_VOICES(8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
-MACHINE_CONFIG_END
-
+ NAMCO_CUS30(config, m_cus30, XTAL(49'152'000)/2048);
+ m_cus30->set_voices(8);
+ m_cus30->add_route(ALL_OUTPUTS, "mono", 0.50);
+}
-MACHINE_CONFIG_START(namcos86_state::roishtar)
+void namcos86_state::roishtar(machine_config &config)
+{
hopmappy(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("cpu2")
- MCFG_DEVICE_PROGRAM_MAP(roishtar_cpu2_map)
-
- MCFG_DEVICE_MODIFY("mcu")
- MCFG_DEVICE_PROGRAM_MAP(roishtar_mcu_map)
-MACHINE_CONFIG_END
-
+ m_cpu2->set_addrmap(AS_PROGRAM, &namcos86_state::roishtar_cpu2_map);
+ m_mcu->set_addrmap(AS_PROGRAM, &namcos86_state::roishtar_mcu_map);
+}
-MACHINE_CONFIG_START(namcos86_state::genpeitd)
+void namcos86_state::genpeitd(machine_config &config)
+{
hopmappy(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("cpu2")
- MCFG_DEVICE_PROGRAM_MAP(genpeitd_cpu2_map)
-
- MCFG_DEVICE_MODIFY("mcu")
- MCFG_DEVICE_PROGRAM_MAP(genpeitd_mcu_map)
+ m_cpu2->set_addrmap(AS_PROGRAM, &namcos86_state::genpeitd_cpu2_map);
+ m_mcu->set_addrmap(AS_PROGRAM, &namcos86_state::genpeitd_mcu_map);
/* sound hardware */
- MCFG_NAMCO_63701X_ADD("namco2", 6000000)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
-
+ NAMCO_63701X(config, m_63701x, 6000000);
+ m_63701x->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
-MACHINE_CONFIG_START(namcos86_state::rthunder)
+void namcos86_state::rthunder(machine_config &config)
+{
hopmappy(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("cpu2")
- MCFG_DEVICE_PROGRAM_MAP(rthunder_cpu2_map)
-
- MCFG_DEVICE_MODIFY("mcu")
- MCFG_DEVICE_PROGRAM_MAP(rthunder_mcu_map)
+ m_cpu2->set_addrmap(AS_PROGRAM, &namcos86_state::rthunder_cpu2_map);
+ m_mcu->set_addrmap(AS_PROGRAM, &namcos86_state::rthunder_mcu_map);
/* sound hardware */
- MCFG_NAMCO_63701X_ADD("namco2", 6000000)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
-
+ NAMCO_63701X(config, m_63701x, 6000000);
+ m_63701x->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
-MACHINE_CONFIG_START(namcos86_state::wndrmomo)
+void namcos86_state::wndrmomo(machine_config &config)
+{
hopmappy(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("cpu2")
- MCFG_DEVICE_PROGRAM_MAP(wndrmomo_cpu2_map)
-
- MCFG_DEVICE_MODIFY("mcu")
- MCFG_DEVICE_PROGRAM_MAP(wndrmomo_mcu_map)
+ m_cpu2->set_addrmap(AS_PROGRAM, &namcos86_state::wndrmomo_cpu2_map);
+ m_mcu->set_addrmap(AS_PROGRAM, &namcos86_state::wndrmomo_mcu_map);
/* sound hardware */
- MCFG_NAMCO_63701X_ADD("namco2", 6000000)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
-
-
+ NAMCO_63701X(config, m_63701x, 6000000);
+ m_63701x->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
/***************************************************************************
diff --git a/src/mame/drivers/pacland.cpp b/src/mame/drivers/pacland.cpp
index ecdef9f0652..c0291f71d81 100644
--- a/src/mame/drivers/pacland.cpp
+++ b/src/mame/drivers/pacland.cpp
@@ -413,11 +413,11 @@ WRITE_LINE_MEMBER(pacland_state::vblank_irq)
m_mcu->set_input_line(0, ASSERT_LINE);
}
-MACHINE_CONFIG_START(pacland_state::pacland)
-
+void pacland_state::pacland(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", MC6809E, XTAL(49'152'000)/32) /* 1.536 MHz */
- MCFG_DEVICE_PROGRAM_MAP(main_map)
+ MC6809E(config, m_maincpu, XTAL(49'152'000)/32); /* 1.536 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &pacland_state::main_map);
HD63701(config, m_mcu, XTAL(49'152'000)/8); /* 6.144 MHz? */
m_mcu->set_addrmap(AS_PROGRAM, &pacland_state::mcu_map);
@@ -426,29 +426,29 @@ MACHINE_CONFIG_START(pacland_state::pacland)
m_mcu->in_p2_cb().set_constant(0xff); /* leds won't work otherwise */
m_mcu->out_p2_cb().set(FUNC(pacland_state::led_w));
- MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* we need heavy synching between the MCU and the CPU */
+ config.m_minimum_quantum = attotime::from_hz(6000); /* we need heavy synching between the MCU and the CPU */
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(49'152'000)/8, 384, 3*8, 39*8, 264, 2*8, 30*8)
- MCFG_SCREEN_UPDATE_DRIVER(pacland_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pacland_state, vblank_irq))
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(XTAL(49'152'000)/8, 384, 3*8, 39*8, 264, 2*8, 30*8);
+ m_screen->set_screen_update(FUNC(pacland_state::screen_update));
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set(FUNC(pacland_state::vblank_irq));
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_pacland)
- MCFG_PALETTE_ADD("palette", 256*4+256*4+64*16)
- MCFG_PALETTE_INDIRECT_ENTRIES(256)
- MCFG_PALETTE_INIT_OWNER(pacland_state, pacland)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_pacland);
+ PALETTE(config, m_palette, 256*4+256*4+64*16);
+ m_palette->set_indirect_entries(256);
+ m_palette->set_init(FUNC(pacland_state::palette_init_pacland));
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("namco", NAMCO_CUS30, XTAL(49'152'000)/2/1024)
- MCFG_NAMCO_AUDIO_VOICES(8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ NAMCO_CUS30(config, m_cus30, XTAL(49'152'000)/2/1024);
+ m_cus30->set_voices(8);
+ m_cus30->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
/***************************************************************************
diff --git a/src/mame/drivers/pengo.cpp b/src/mame/drivers/pengo.cpp
index cac15403ed8..160511dcae4 100644
--- a/src/mame/drivers/pengo.cpp
+++ b/src/mame/drivers/pengo.cpp
@@ -383,13 +383,12 @@ WRITE_LINE_MEMBER(pengo_state::vblank_irq)
m_maincpu->set_input_line(0, HOLD_LINE);
}
-
-MACHINE_CONFIG_START(pengo_state::pengo)
-
+void pengo_state::pengo(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/6)
- MCFG_DEVICE_PROGRAM_MAP(pengo_map)
- MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map)
+ Z80(config, m_maincpu, MASTER_CLOCK/6);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pengo_state::pengo_map);
+ m_maincpu->set_addrmap(AS_OPCODES, &pengo_state::decrypted_opcodes_map);
LS259(config, m_latch); // U27
m_latch->q_out_cb<0>().set(FUNC(pengo_state::irq_mask_w));
@@ -404,33 +403,32 @@ MACHINE_CONFIG_START(pengo_state::pengo)
WATCHDOG_TIMER(config, m_watchdog);
/* video hardware */
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_pengo)
- MCFG_PALETTE_ADD("palette", 128*4)
- MCFG_PALETTE_INDIRECT_ENTRIES(32)
- MCFG_PALETTE_INIT_OWNER(pengo_state,pacman)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_pengo);
+ PALETTE(config, m_palette, 128*4);
+ m_palette->set_indirect_entries(32);
+ m_palette->set_init(FUNC(pengo_state::palette_init_pacman));
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_DRIVER(pengo_state, screen_update_pacman)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pengo_state, vblank_irq))
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART);
+ screen.set_screen_update(FUNC(pengo_state::screen_update_pacman));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(pengo_state::vblank_irq));
MCFG_VIDEO_START_OVERRIDE(pengo_state,pengo)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("namco", NAMCO, MASTER_CLOCK/6/32)
- MCFG_NAMCO_AUDIO_VOICES(3)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ NAMCO(config, m_namco_sound, MASTER_CLOCK/6/32);
+ m_namco_sound->set_voices(3);
+ m_namco_sound->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
-MACHINE_CONFIG_START(pengo_state::pengou)
+void pengo_state::pengou(machine_config &config)
+{
pengo(config);
-
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_REMOVE_ADDRESS_MAP(AS_OPCODES)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_OPCODES, address_map_constructor());
+}
void pengo_state::pengoe(machine_config &config)
{
@@ -441,20 +439,20 @@ void pengo_state::pengoe(machine_config &config)
maincpu.set_decrypted_tag(":decrypted_opcodes");
}
-MACHINE_CONFIG_START(pengo_state::jrpacmbl)
+void pengo_state::jrpacmbl(machine_config &config)
+{
pengo(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(jrpacmbl_map)
- MCFG_DEVICE_REMOVE_ADDRESS_MAP(AS_OPCODES)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pengo_state::jrpacmbl_map);
+ m_maincpu->set_addrmap(AS_OPCODES, address_map_constructor());
m_latch->q_out_cb<4>().set(FUNC(pengo_state::jrpacman_bgpriority_w));
m_latch->q_out_cb<5>().set(FUNC(pengo_state::jrpacman_spritebank_w));
m_latch->q_out_cb<7>().set(FUNC(pengo_state::jrpacman_charbank_w));
MCFG_VIDEO_START_OVERRIDE(pengo_state,jrpacman)
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/polepos.cpp b/src/mame/drivers/polepos.cpp
index c966a3479d3..5aff7acec08 100644
--- a/src/mame/drivers/polepos.cpp
+++ b/src/mame/drivers/polepos.cpp
@@ -849,18 +849,18 @@ GFXDECODE_END
* Machine driver
*********************************************************************/
-MACHINE_CONFIG_START(polepos_state::polepos)
-
+void polepos_state::polepos(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(m_maincpu, Z80, MASTER_CLOCK/8) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(z80_map)
- MCFG_DEVICE_IO_MAP(z80_io)
+ Z80(config, m_maincpu, MASTER_CLOCK/8); /* 3.072 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &polepos_state::z80_map);
+ m_maincpu->set_addrmap(AS_IO, &polepos_state::z80_io);
- MCFG_DEVICE_ADD(m_subcpu, Z8002, MASTER_CLOCK/8) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(z8002_map_1)
+ Z8002(config, m_subcpu, MASTER_CLOCK/8); /* 3.072 MHz */
+ m_subcpu->set_addrmap(AS_PROGRAM, &polepos_state::z8002_map_1);
- MCFG_DEVICE_ADD(m_subcpu2, Z8002, MASTER_CLOCK/8) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(z8002_map_2)
+ Z8002(config, m_subcpu2, MASTER_CLOCK/8); /* 3.072 MHz */
+ m_subcpu2->set_addrmap(AS_PROGRAM, &polepos_state::z8002_map_2);
namco_51xx_device &n51xx(NAMCO_51XX(config, "51xx", MASTER_CLOCK/8/2)); /* 1.536 MHz */
n51xx.set_screen_tag(m_screen);
@@ -899,11 +899,11 @@ MACHINE_CONFIG_START(polepos_state::polepos)
WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 16); // 128V clocks the same as VBLANK
- MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* some interleaving */
+ config.m_minimum_quantum = attotime::from_hz(6000); /* some interleaving */
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", polepos_state, scanline, "screen", 0, 1)
+ TIMER(config, "scantimer").configure_scanline(FUNC(polepos_state::scanline), "screen", 0, 1);
LS259(config, m_latch); // at 8E on polepos
m_latch->q_out_cb<0>().set_inputline(m_maincpu, 0, CLEAR_LINE).invert();
@@ -917,39 +917,38 @@ MACHINE_CONFIG_START(polepos_state::polepos)
m_latch->q_out_cb<7>().set(FUNC(polepos_state::chacl_w));
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 384, 0, 256, 264, 16, 224+16)
- MCFG_SCREEN_UPDATE_DRIVER(polepos_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
-
- MCFG_DEVICE_ADD(m_gfxdecode, GFXDECODE, m_palette, gfx_polepos)
- MCFG_PALETTE_ADD(m_palette, 0x0f00)
- MCFG_PALETTE_INDIRECT_ENTRIES(128)
- config.set_default_layout(layout_polepos);
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(MASTER_CLOCK/4, 384, 0, 256, 264, 16, 224+16);
+ m_screen->set_screen_update(FUNC(polepos_state::screen_update));
+ m_screen->set_palette(m_palette);
- MCFG_PALETTE_INIT_OWNER(polepos_state,polepos)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_polepos);
+ PALETTE(config, m_palette, 0x0f00);
+ m_palette->set_indirect_entries(128);
+ m_palette->set_init(FUNC(polepos_state::palette_init_polepos));
+
+ config.set_default_layout(layout_polepos);
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD(m_namco_sound, NAMCO, MASTER_CLOCK/512)
- MCFG_NAMCO_AUDIO_VOICES(8)
- MCFG_NAMCO_AUDIO_STEREO(1)
- MCFG_SOUND_ROUTE(0, "lspeaker", 0.80)
- MCFG_SOUND_ROUTE(1, "rspeaker", 0.80)
+ NAMCO(config, m_namco_sound, MASTER_CLOCK/512);
+ m_namco_sound->set_voices(8);
+ m_namco_sound->set_stereo(true);
+ m_namco_sound->add_route(0, "lspeaker", 0.80);
+ m_namco_sound->add_route(1, "rspeaker", 0.80);
/* discrete circuit on the 54XX outputs */
- MCFG_DEVICE_ADD("discrete", DISCRETE, polepos_discrete)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.90)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.90)
+ discrete_sound_device &discrete(DISCRETE(config, "discrete", polepos_discrete));
+ discrete.add_route(ALL_OUTPUTS, "lspeaker", 0.90);
+ discrete.add_route(ALL_OUTPUTS, "rspeaker", 0.90);
/* engine sound */
- MCFG_DEVICE_ADD("polepos", POLEPOS_SOUND, MASTER_CLOCK/8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.90 * 0.77)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.90 * 0.77)
-MACHINE_CONFIG_END
-
+ polepos_sound_device &polepos(POLEPOS_SOUND(config, "polepos", MASTER_CLOCK/8));
+ polepos.add_route(ALL_OUTPUTS, "lspeaker", 0.90 * 0.77);
+ polepos.add_route(ALL_OUTPUTS, "rspeaker", 0.90 * 0.77);
+}
WRITE8_MEMBER(polepos_state::bootleg_soundlatch_w)
{
@@ -982,18 +981,18 @@ void polepos_state::sound_z80_bootleg_iomap(address_map &map)
map(0x00, 0x00).rw("tms", FUNC(tms5220_device::status_r), FUNC(tms5220_device::data_w));
}
-MACHINE_CONFIG_START(polepos_state::topracern)
-
+void polepos_state::topracern(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(m_maincpu, Z80, MASTER_CLOCK/8) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(z80_map)
- MCFG_DEVICE_IO_MAP(topracern_io)
+ Z80(config, m_maincpu, MASTER_CLOCK/8); /* 3.072 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &polepos_state::z80_map);
+ m_maincpu->set_addrmap(AS_IO, &polepos_state::topracern_io);
- MCFG_DEVICE_ADD(m_subcpu, Z8002, MASTER_CLOCK/8) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(z8002_map_1)
+ Z8002(config, m_subcpu, MASTER_CLOCK/8); /* 3.072 MHz */
+ m_subcpu->set_addrmap(AS_PROGRAM, &polepos_state::z8002_map_1);
- MCFG_DEVICE_ADD(m_subcpu2, Z8002, MASTER_CLOCK/8) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(z8002_map_2)
+ Z8002(config, m_subcpu2, MASTER_CLOCK/8); /* 3.072 MHz */
+ m_subcpu2->set_addrmap(AS_PROGRAM, &polepos_state::z8002_map_2);
// TODO, remove these devices too, this bootleg doesn't have them, but the emulation doesn't boot without them.
// doesn't exist on the bootleg, but required for now or the game only boots in test mode! they probably simulate some of the logic
@@ -1008,11 +1007,11 @@ MACHINE_CONFIG_START(polepos_state::topracern)
WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 16); // 128V clocks the same as VBLANK
- MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* some interleaving */
+ config.m_minimum_quantum = attotime::from_hz(6000); /* some interleaving */
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", polepos_state, scanline, "screen", 0, 1)
+ TIMER(config, "scantimer").configure_scanline(FUNC(polepos_state::scanline), "screen", 0, 1);
LS259(config, m_latch);
m_latch->q_out_cb<0>().set_inputline(m_maincpu, 0, CLEAR_LINE).invert();
@@ -1026,39 +1025,42 @@ MACHINE_CONFIG_START(polepos_state::topracern)
m_latch->q_out_cb<7>().set(FUNC(polepos_state::chacl_w));
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 384, 0, 256, 264, 16, 224+16)
- MCFG_SCREEN_UPDATE_DRIVER(polepos_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
-
- MCFG_DEVICE_ADD(m_gfxdecode, GFXDECODE, m_palette, gfx_polepos)
- MCFG_PALETTE_ADD(m_palette, 0x0f00)
- MCFG_PALETTE_INDIRECT_ENTRIES(128)
- config.set_default_layout(layout_topracer);
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(MASTER_CLOCK/4, 384, 0, 256, 264, 16, 224+16);
+ m_screen->set_screen_update(FUNC(polepos_state::screen_update));
+ m_screen->set_palette(m_palette);
- MCFG_PALETTE_INIT_OWNER(polepos_state,polepos)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_polepos);
+ PALETTE(config, m_palette, 0x0f00);
+ m_palette->set_indirect_entries(128);
+ m_palette->set_init(FUNC(polepos_state::palette_init_polepos));
+
+ config.set_default_layout(layout_topracer);
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD(m_namco_sound, NAMCO, MASTER_CLOCK/512)
- MCFG_NAMCO_AUDIO_VOICES(8)
- MCFG_NAMCO_AUDIO_STEREO(1)
- MCFG_SOUND_ROUTE(0, "lspeaker", 0.80)
- MCFG_SOUND_ROUTE(1, "rspeaker", 0.80)
+ NAMCO(config, m_namco_sound, MASTER_CLOCK/512);
+ m_namco_sound->set_voices(8);
+ m_namco_sound->set_stereo(true);
+ m_namco_sound->add_route(0, "lspeaker", 0.80);
+ m_namco_sound->add_route(1, "rspeaker", 0.80);
/* engine sound */
- MCFG_DEVICE_ADD("polepos", POLEPOS_SOUND, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.90 * 0.77)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.90 * 0.77)
-
- MCFG_DEVICE_ADD("dac", DAC_4BIT_R2R, 0) // unknown resistor configuration
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.12)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.12)
- MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
-MACHINE_CONFIG_END
+ polepos_sound_device &polepos(POLEPOS_SOUND(config, "polepos", 0));
+ polepos.add_route(ALL_OUTPUTS, "lspeaker", 0.90 * 0.77);
+ polepos.add_route(ALL_OUTPUTS, "rspeaker", 0.90 * 0.77);
+
+ dac_4bit_r2r_device &dac(DAC_4BIT_R2R(config, "dac", 0)); // unknown resistor configuration
+ dac.add_route(ALL_OUTPUTS, "lspeaker", 0.12);
+ dac.add_route(ALL_OUTPUTS, "rspeaker", 0.12);
+
+ voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
+ vref.set_output(5.0);
+ vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
+ vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
+}
void polepos_state::polepos2bi(machine_config &config)
{
diff --git a/src/mame/drivers/quickpick5.cpp b/src/mame/drivers/quickpick5.cpp
index 10eda7e033a..83b84b9126a 100644
--- a/src/mame/drivers/quickpick5.cpp
+++ b/src/mame/drivers/quickpick5.cpp
@@ -400,11 +400,12 @@ void quickpick5_state::machine_reset()
{
}
-MACHINE_CONFIG_START(quickpick5_state::quickpick5)
+void quickpick5_state::quickpick5(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(32'000'000)/4) // z84c0008pec 8mhz part, 32Mhz xtal verified on PCB, divisor unknown
- MCFG_DEVICE_PROGRAM_MAP(quickpick5_main)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", quickpick5_state, scanline, "screen", 0, 1)
+ Z80(config, m_maincpu, XTAL(32'000'000)/4); // z84c0008pec 8mhz part, 32Mhz xtal verified on PCB, divisor unknown
+ m_maincpu->set_addrmap(AS_PROGRAM, &quickpick5_state::quickpick5_main);
+ TIMER(config, "scantimer").configure_scanline(FUNC(quickpick5_state::scanline), "screen", 0, 1);
K053252(config, m_k053252, XTAL(32'000'000)/4); /* K053252, xtal verified, divider not verified */
m_k053252->int1_ack().set(FUNC(quickpick5_state::vbl_ack_w));
@@ -412,36 +413,36 @@ MACHINE_CONFIG_START(quickpick5_state::quickpick5)
m_k053252->int_time().set(FUNC(quickpick5_state::ccu_int_time_w));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(59.62)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(20))
- MCFG_SCREEN_SIZE(64*8, 33*8)
- MCFG_SCREEN_VISIBLE_AREA(88, 456-1, 28, 256-1)
- MCFG_SCREEN_UPDATE_DRIVER(quickpick5_state, screen_update_quickpick5)
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_PALETTE_ADD("palette", 1024)
- MCFG_PALETTE_ENABLE_SHADOWS()
- MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(59.62);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(20));
+ screen.set_size(64*8, 33*8);
+ screen.set_visarea(88, 456-1, 28, 256-1);
+ screen.set_screen_update(FUNC(quickpick5_state::screen_update_quickpick5));
+ screen.set_palette(m_palette);
+
+ PALETTE(config, m_palette, 1024);
+ m_palette->enable_shadows();
+ m_palette->set_format(PALETTE_FORMAT_xBBBBBGGGGGRRRRR);
K053245(config, m_k053245, 0);
m_k053245->set_palette(m_palette);
m_k053245->set_offsets(-(44+80), 20);
m_k053245->set_sprite_callback(FUNC(quickpick5_state::sprite_callback), this);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfxdecode_device::empty)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfxdecode_device::empty);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_K051649_ADD("k051649", XTAL(32'000'000)/18) // xtal is verified, divider is not
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.45)
+ K051649(config, m_k051649, XTAL(32'000'000)/18); // xtal is verified, divider is not
+ m_k051649->add_route(ALL_OUTPUTS, "mono", 0.45);
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(32'000'000)/18, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(0, "mono", 1.0)
- MCFG_SOUND_ROUTE(1, "mono", 1.0)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki, XTAL(32'000'000)/18, okim6295_device::PIN7_HIGH);
+ m_oki->add_route(0, "mono", 1.0);
+ m_oki->add_route(1, "mono", 1.0);
+}
ROM_START( quickp5 )
ROM_REGION( 0x10000, "maincpu", 0 ) /* main program */
diff --git a/src/mame/drivers/rallyx.cpp b/src/mame/drivers/rallyx.cpp
index 69bf07efec6..1c643373c40 100644
--- a/src/mame/drivers/rallyx.cpp
+++ b/src/mame/drivers/rallyx.cpp
@@ -198,7 +198,6 @@ TODO:
#include "machine/gen_latch.h"
#include "machine/watchdog.h"
#include "sound/samples.h"
-#include "screen.h"
#include "speaker.h"
#define MASTER_CLOCK XTAL(18'432'000)
@@ -814,12 +813,12 @@ WRITE_LINE_MEMBER(rallyx_state::jungler_vblank_irq)
m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
}
-MACHINE_CONFIG_START(rallyx_state::rallyx)
-
+void rallyx_state::rallyx(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(rallyx_map)
- MCFG_DEVICE_IO_MAP(io_map)
+ Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &rallyx_state::rallyx_map);
+ m_maincpu->set_addrmap(AS_IO, &rallyx_state::io_map);
ls259_device &mainlatch(LS259(config, "mainlatch")); // 259 at 12M or 4099 at 11M on Logic Board I
mainlatch.q_out_cb<0>().set(FUNC(rallyx_state::bang_w)); // BANG
@@ -836,42 +835,42 @@ MACHINE_CONFIG_START(rallyx_state::rallyx)
MCFG_MACHINE_START_OVERRIDE(rallyx_state,rallyx)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60.606060)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(36*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_rallyx)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, rallyx_state, rallyx_vblank_irq))
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_rallyx)
-
- MCFG_PALETTE_ADD("palette", 64*4+4)
- MCFG_PALETTE_INDIRECT_ENTRIES(32)
- MCFG_PALETTE_ENABLE_SHADOWS()
- MCFG_PALETTE_INIT_OWNER(rallyx_state,rallyx)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60.606060);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_screen->set_size(36*8, 32*8);
+ m_screen->set_visarea(0*8, 36*8-1, 2*8, 30*8-1);
+ m_screen->set_screen_update(FUNC(rallyx_state::screen_update_rallyx));
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set(FUNC(rallyx_state::rallyx_vblank_irq));
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_rallyx);
+
+ PALETTE(config, m_palette, 64*4+4);
+ m_palette->set_indirect_entries(32);
+ m_palette->enable_shadows();
+ m_palette->set_init(FUNC(rallyx_state::palette_init_rallyx));
+
MCFG_VIDEO_START_OVERRIDE(rallyx_state,rallyx)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("namco", NAMCO, MASTER_CLOCK/6/32) /* 96 KHz */
- MCFG_NAMCO_AUDIO_VOICES(3)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ NAMCO(config, m_namco_sound, MASTER_CLOCK/6/32); /* 96 KHz */
+ m_namco_sound->set_voices(3);
+ m_namco_sound->add_route(ALL_OUTPUTS, "mono", 1.0);
- MCFG_DEVICE_ADD("samples", SAMPLES)
- MCFG_SAMPLES_CHANNELS(1)
- MCFG_SAMPLES_NAMES(rallyx_sample_names)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
-MACHINE_CONFIG_END
-
-
-MACHINE_CONFIG_START(rallyx_state::jungler)
+ SAMPLES(config, m_samples);
+ m_samples->set_channels(1);
+ m_samples->set_samples_names(rallyx_sample_names);
+ m_samples->add_route(ALL_OUTPUTS, "mono", 0.80);
+}
+void rallyx_state::jungler(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(jungler_map)
+ Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &rallyx_state::jungler_map);
ls259_device &mainlatch(LS259(config, "mainlatch")); // 1C on Loco-Motion
mainlatch.q_out_cb<0>().set("timeplt_audio", FUNC(timeplt_audio_device::sh_irqtrigger_w)); // SOUNDON
@@ -888,64 +887,56 @@ MACHINE_CONFIG_START(rallyx_state::jungler)
MCFG_MACHINE_START_OVERRIDE(rallyx_state,rallyx)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */)
- MCFG_SCREEN_SIZE(36*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_jungler)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, rallyx_state, jungler_vblank_irq))
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_jungler)
-
- MCFG_PALETTE_ADD("palette", 64*4+4+64)
- MCFG_PALETTE_INDIRECT_ENTRIES(32+64)
- MCFG_PALETTE_ENABLE_SHADOWS()
- MCFG_PALETTE_INIT_OWNER(rallyx_state,jungler)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); /* frames per second, vblank duration */
+ m_screen->set_size(36*8, 32*8);
+ m_screen->set_visarea(0*8, 36*8-1, 2*8, 30*8-1);
+ m_screen->set_screen_update(FUNC(rallyx_state::screen_update_jungler));
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set(FUNC(rallyx_state::jungler_vblank_irq));
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_jungler);
+
+ PALETTE(config, m_palette, 64*4+4+64);
+ m_palette->set_indirect_entries(32+64);
+ m_palette->enable_shadows();
+ m_palette->set_init(FUNC(rallyx_state::palette_init_jungler));
+
MCFG_VIDEO_START_OVERRIDE(rallyx_state,jungler)
/* sound hardware */
- MCFG_DEVICE_ADD("timeplt_audio", LOCOMOTN_AUDIO)
-MACHINE_CONFIG_END
-
+ LOCOMOTN_AUDIO(config, "timeplt_audio");
+}
-MACHINE_CONFIG_START(rallyx_state::tactcian)
+void rallyx_state::tactcian(machine_config &config)
+{
jungler(config);
- /* basic machine hardware */
+ m_screen->set_screen_update(FUNC(rallyx_state::screen_update_locomotn));
- /* video hardware */
MCFG_VIDEO_START_OVERRIDE(rallyx_state,locomotn)
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_locomotn)
-MACHINE_CONFIG_END
-
+}
-MACHINE_CONFIG_START(rallyx_state::locomotn)
+void rallyx_state::locomotn(machine_config &config)
+{
jungler(config);
- /* basic machine hardware */
+ m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ m_screen->set_screen_update(FUNC(rallyx_state::screen_update_locomotn));
- /* video hardware */
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_locomotn)
MCFG_VIDEO_START_OVERRIDE(rallyx_state,locomotn)
-MACHINE_CONFIG_END
-
+}
-MACHINE_CONFIG_START(rallyx_state::commsega)
+void rallyx_state::commsega(machine_config &config)
+{
jungler(config);
- /* basic machine hardware */
+ m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ m_screen->set_screen_update(FUNC(rallyx_state::screen_update_locomotn));
- /* video hardware */
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_locomotn)
MCFG_VIDEO_START_OVERRIDE(rallyx_state,commsega)
-MACHINE_CONFIG_END
+}
/*************************************
diff --git a/src/mame/drivers/skykid.cpp b/src/mame/drivers/skykid.cpp
index 5062527fd67..8bac913537d 100644
--- a/src/mame/drivers/skykid.cpp
+++ b/src/mame/drivers/skykid.cpp
@@ -421,11 +421,11 @@ WRITE_LINE_MEMBER(skykid_state::vblank_irq)
}
-MACHINE_CONFIG_START(skykid_state::skykid)
-
+void skykid_state::skykid(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", MC6809E, XTAL(49'152'000)/32)
- MCFG_DEVICE_PROGRAM_MAP(skykid_map)
+ MC6809E(config, m_maincpu, XTAL(49'152'000)/32);
+ m_maincpu->set_addrmap(AS_PROGRAM, &skykid_state::skykid_map);
HD63701(config, m_mcu, XTAL(49'152'000)/8); /* or compatible 6808 with extra instructions */
m_mcu->set_addrmap(AS_PROGRAM, &skykid_state::mcu_map);
@@ -434,32 +434,32 @@ MACHINE_CONFIG_START(skykid_state::skykid)
m_mcu->in_p2_cb().set_constant(0xff); /* leds won't work otherwise */
m_mcu->out_p2_cb().set(FUNC(skykid_state::skykid_led_w)); /* lamps */
- MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* we need heavy synch */
+ config.m_minimum_quantum = attotime::from_hz(6000); /* we need heavy synch */
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60.606060)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(36*8, 28*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(skykid_state, screen_update_skykid)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, skykid_state, vblank_irq))
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_skykid)
- MCFG_PALETTE_ADD("palette", 64*4+128*4+64*8)
- MCFG_PALETTE_INDIRECT_ENTRIES(256)
- MCFG_PALETTE_INIT_OWNER(skykid_state, skykid)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60.606060);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(36*8, 28*8);
+ screen.set_visarea(0*8, 36*8-1, 0*8, 28*8-1);
+ screen.set_screen_update(FUNC(skykid_state::screen_update_skykid));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(skykid_state::vblank_irq));
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_skykid);
+ PALETTE(config, m_palette, 64*4+128*4+64*8);
+ m_palette->set_indirect_entries(256);
+ m_palette->set_init(FUNC(skykid_state::palette_init_skykid));
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("namco", NAMCO_CUS30, 49152000/2048)
- MCFG_NAMCO_AUDIO_VOICES(8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ NAMCO_CUS30(config, m_cus30, 49152000/2048);
+ m_cus30->set_voices(8);
+ m_cus30->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
ROM_START( skykid ) // a PCB was found with ROM 4 and 6 labeled sk1, but hashes match the sk2 listed here and in other sets, while they differ from the sk1 ROMs in set skykidd?
diff --git a/src/mame/drivers/srmp6.cpp b/src/mame/drivers/srmp6.cpp
index 5136b178bb4..55dc0da0fdb 100644
--- a/src/mame/drivers/srmp6.cpp
+++ b/src/mame/drivers/srmp6.cpp
@@ -683,32 +683,32 @@ INPUT_PORTS_END
Machine driver
***************************************************************************/
-MACHINE_CONFIG_START(srmp6_state::srmp6)
-
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000)
- MCFG_DEVICE_PROGRAM_MAP(srmp6_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", srmp6_state, irq4_line_assert) // irq3 is a timer irq, but it's never enabled
+void srmp6_state::srmp6(machine_config &config)
+{
+ M68000(config, m_maincpu, 16000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &srmp6_state::srmp6_map);
+ m_maincpu->set_vblank_int("screen", FUNC(srmp6_state::irq4_line_assert)); // irq3 is a timer irq, but it's never enabled
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 42*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(srmp6_state, screen_update_srmp6)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 64*8);
+ screen.set_visarea(0*8, 42*8-1, 0*8, 30*8-1);
+ screen.set_screen_update(FUNC(srmp6_state::screen_update_srmp6));
- MCFG_PALETTE_ADD("palette", 0x800)
- MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
+ PALETTE(config, m_palette, 0x800);
+ m_palette->set_format(PALETTE_FORMAT_xBBBBBGGGGGRRRRR);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfxdecode_device::empty)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfxdecode_device::empty);
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_NILE_ADD("nile", 0)
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+ nile_device &nile(NILE(config, "nile", 0));
+ nile.add_route(0, "lspeaker", 1.0);
+ nile.add_route(1, "rspeaker", 1.0);
+}
/***************************************************************************
diff --git a/src/mame/drivers/tceptor.cpp b/src/mame/drivers/tceptor.cpp
index 6eec072bf91..f43e5ae4d42 100644
--- a/src/mame/drivers/tceptor.cpp
+++ b/src/mame/drivers/tceptor.cpp
@@ -11,7 +11,6 @@
#include "emu.h"
#include "includes/tceptor.h"
-#include "cpu/m6502/m65c02.h"
#include "cpu/m6809/m6809.h"
#include "cpu/m6800/m6801.h"
#include "cpu/m68000/m68000.h"
@@ -314,25 +313,25 @@ void tceptor_state::machine_reset()
/*******************************************************************/
-MACHINE_CONFIG_START(tceptor_state::tceptor)
-
+void tceptor_state::tceptor(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6809, XTAL(49'152'000)/32)
- MCFG_DEVICE_PROGRAM_MAP(m6809_map)
+ M6809(config, m_maincpu, XTAL(49'152'000)/32);
+ m_maincpu->set_addrmap(AS_PROGRAM, &tceptor_state::m6809_map);
- MCFG_DEVICE_ADD("audiocpu", M65C02, XTAL(49'152'000)/24)
- MCFG_DEVICE_PROGRAM_MAP(m6502_a_map)
+ M65C02(config, m_audiocpu[0], XTAL(49'152'000)/24);
+ m_audiocpu[0]->set_addrmap(AS_PROGRAM, &tceptor_state::m6502_a_map);
- MCFG_DEVICE_ADD("audio2", M65C02, XTAL(49'152'000)/24)
- MCFG_DEVICE_PROGRAM_MAP(m6502_b_map)
+ M65C02(config, m_audiocpu[1], XTAL(49'152'000)/24);
+ m_audiocpu[1]->set_addrmap(AS_PROGRAM, &tceptor_state::m6502_b_map);
- MCFG_DEVICE_ADD("sub", M68000, XTAL(49'152'000)/4)
- MCFG_DEVICE_PROGRAM_MAP(m68k_map)
+ M68000(config, m_subcpu, XTAL(49'152'000)/4);
+ m_subcpu->set_addrmap(AS_PROGRAM, &tceptor_state::m68k_map);
HD63701(config, m_mcu, XTAL(49'152'000)/8); // or compatible 6808 with extra instructions
m_mcu->set_addrmap(AS_PROGRAM, &tceptor_state::mcu_map);
- MCFG_QUANTUM_TIME(attotime::from_hz(6000))
+ config.m_minimum_quantum = attotime::from_hz(6000);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
@@ -343,22 +342,22 @@ MACHINE_CONFIG_START(tceptor_state::tceptor)
adc.in_callback<3>().set_ioport("STICKY");
/* video hardware */
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_tceptor)
- MCFG_PALETTE_ADD("palette", 4096)
- MCFG_PALETTE_INDIRECT_ENTRIES(1024)
- MCFG_PALETTE_INIT_OWNER(tceptor_state, tceptor)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_tceptor);
+ PALETTE(config, m_palette, 4096);
+ m_palette->set_indirect_entries(1024);
+ m_palette->set_init(FUNC(tceptor_state::palette_init_tceptor));
NAMCO_C45_ROAD(config, m_c45_road, 0);
m_c45_road->set_palette(m_palette);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60.606060)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(38*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1 + 2*8, 0*8, 28*8-1 + 0)
- MCFG_SCREEN_UPDATE_DRIVER(tceptor_state, screen_update_tceptor)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, tceptor_state, screen_vblank_tceptor))
- MCFG_SCREEN_PALETTE("palette")
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60.606060);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_screen->set_size(38*8, 32*8);
+ m_screen->set_visarea(2*8, 34*8-1 + 2*8, 0*8, 28*8-1 + 0);
+ m_screen->set_screen_update(FUNC(tceptor_state::screen_update_tceptor));
+ m_screen->screen_vblank().set(FUNC(tceptor_state::screen_vblank_tceptor));
+ m_screen->set_palette(m_palette);
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
@@ -366,16 +365,21 @@ MACHINE_CONFIG_START(tceptor_state::tceptor)
YM2151(config, "ymsnd", XTAL(14'318'181)/4).add_route(0, "lspeaker", 1.0).add_route(1, "rspeaker", 1.0);
- MCFG_DEVICE_ADD("namco", NAMCO_CUS30, XTAL(49'152'000)/2048)
- MCFG_NAMCO_AUDIO_VOICES(8)
- MCFG_NAMCO_AUDIO_STEREO(1)
- MCFG_SOUND_ROUTE(0, "lspeaker", 0.40)
- MCFG_SOUND_ROUTE(1, "rspeaker", 0.40)
+ NAMCO_CUS30(config, m_cus30, XTAL(49'152'000)/2048);
+ m_cus30->set_voices(8);
+ m_cus30->set_stereo(true);
+ m_cus30->add_route(0, "lspeaker", 0.40);
+ m_cus30->add_route(1, "rspeaker", 0.40);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.4) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.4) // unknown DAC
- MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
-MACHINE_CONFIG_END
+ dac_8bit_r2r_device &dac(DAC_8BIT_R2R(config, "dac", 0)); // unknown DAC
+ dac.add_route(ALL_OUTPUTS, "lspeaker", 0.4);
+ dac.add_route(ALL_OUTPUTS, "rspeaker", 0.4);
+
+ voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
+ vref.set_output(5.0);
+ vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
+ vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
+}
/***************************************************************************
@@ -388,10 +392,10 @@ ROM_START( tceptor )
ROM_REGION( 0x10000, "maincpu", 0 ) // 68A09EP
ROM_LOAD( "tc1-1.10f", 0x08000, 0x08000, CRC(4c6b063e) SHA1(d9701657186f8051391084f51a720037f9f418b1) )
- ROM_REGION( 0x10000, "audiocpu", 0 ) // RC65C02
+ ROM_REGION( 0x10000, "audiocpu1", 0 ) // RC65C02
ROM_LOAD( "tc1-21.1m", 0x08000, 0x08000, CRC(2d0b2fa8) SHA1(16ecd70954e52a8661642b15a5cf1db51783e444) )
- ROM_REGION( 0x10000, "audio2", 0 ) // RC65C02
+ ROM_REGION( 0x10000, "audiocpu2", 0 ) // RC65C02
ROM_LOAD( "tc1-22.3m", 0x08000, 0x08000, CRC(9f5a3e98) SHA1(2b2ffe39fe647a3039b92721817bddc9e9a92d82) )
ROM_REGION( 0x110000, "sub", 0 ) // MC68000-12
@@ -444,10 +448,10 @@ ROM_START( tceptor2 )
ROM_REGION( 0x10000, "maincpu", 0 ) // 68A09EP
ROM_LOAD( "tc2-1.10f", 0x08000, 0x08000, CRC(f953f153) SHA1(f4cd0a133d23b4bf3c24c70c28c4ecf8ad4daf6f) )
- ROM_REGION( 0x10000, "audiocpu", 0 ) // RC65C02
+ ROM_REGION( 0x10000, "audiocpu1", 0 ) // RC65C02
ROM_LOAD( "tc1-21.1m", 0x08000, 0x08000, CRC(2d0b2fa8) SHA1(16ecd70954e52a8661642b15a5cf1db51783e444) )
- ROM_REGION( 0x10000, "audio2", 0 ) // RC65C02
+ ROM_REGION( 0x10000, "audiocpu2", 0 ) // RC65C02
ROM_LOAD( "tc1-22.3m", 0x08000, 0x08000, CRC(9f5a3e98) SHA1(2b2ffe39fe647a3039b92721817bddc9e9a92d82) )
ROM_REGION( 0x110000, "sub", 0 ) // MC68000-12
diff --git a/src/mame/drivers/toypop.cpp b/src/mame/drivers/toypop.cpp
index 7a59813ea1b..53e3ae99c73 100644
--- a/src/mame/drivers/toypop.cpp
+++ b/src/mame/drivers/toypop.cpp
@@ -691,26 +691,25 @@ WRITE_LINE_MEMBER(namcos16_state::slave_vblank_irq)
m_slave_cpu->set_input_line(6, HOLD_LINE);
}
-MACHINE_CONFIG_START(namcos16_state::liblrabl)
- MCFG_DEVICE_ADD("maincpu", MC6809E, MASTER_CLOCK/4)
- MCFG_DEVICE_PROGRAM_MAP(master_liblrabl_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namcos16_state, master_scanline, "screen", 0, 1)
+void namcos16_state::liblrabl(machine_config &config)
+{
+ MC6809E(config, m_master_cpu, MASTER_CLOCK/4);
+ m_master_cpu->set_addrmap(AS_PROGRAM, &namcos16_state::master_liblrabl_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(namcos16_state::master_scanline), "screen", 0, 1);
- MCFG_DEVICE_ADD("slave", M68000, MASTER_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(slave_map)
+ M68000(config, m_slave_cpu, MASTER_CLOCK);
+ m_slave_cpu->set_addrmap(AS_PROGRAM, &namcos16_state::slave_map);
- MCFG_DEVICE_ADD("audiocpu", MC6809E, MASTER_CLOCK/4)
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(namcos16_state, irq0_line_hold, 60)
+ MC6809E(config, m_sound_cpu, MASTER_CLOCK/4);
+ m_sound_cpu->set_addrmap(AS_PROGRAM, &namcos16_state::sound_map);
+ m_sound_cpu->set_periodic_int(FUNC(namcos16_state::irq0_line_hold), attotime::from_hz(60));
-
NAMCO_58XX(config, m_namco58xx, 0);
m_namco58xx->in_callback<0>().set_ioport("COINS");
m_namco58xx->in_callback<1>().set_ioport("P1_RIGHT");
m_namco58xx->in_callback<2>().set_ioport("P2_RIGHT");
m_namco58xx->in_callback<3>().set_ioport("BUTTONS");
-
NAMCO_56XX(config, m_namco56xx_1, 0);
m_namco56xx_1->in_callback<0>().set(FUNC(namcos16_state::dipA_h));
m_namco56xx_1->in_callback<1>().set(FUNC(namcos16_state::dipB_l));
@@ -723,29 +722,29 @@ MACHINE_CONFIG_START(namcos16_state::liblrabl)
m_namco56xx_2->in_callback<2>().set_ioport("P2_LEFT");
m_namco56xx_2->in_callback<3>().set_ioport("SERVICE");
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK,384,0,288,264,0,224) // derived from Galaxian HW, 60.606060
- MCFG_SCREEN_UPDATE_DRIVER(namcos16_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, namcos16_state, slave_vblank_irq))
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(MASTER_CLOCK,384,0,288,264,0,224); // derived from Galaxian HW, 60.606060
+ screen.set_screen_update(FUNC(namcos16_state::screen_update));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(namcos16_state::slave_vblank_irq));
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_toypop)
- MCFG_PALETTE_ADD("palette", 128*4+64*4+16*2)
- MCFG_PALETTE_INDIRECT_ENTRIES(256)
- MCFG_PALETTE_INIT_OWNER(namcos16_state, toypop)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_toypop);
+ PALETTE(config, m_palette, 128*4+64*4+16*2);
+ m_palette->set_indirect_entries(256);
+ m_palette->set_init(FUNC(namcos16_state::palette_init_toypop));
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("namco", NAMCO_15XX, 24000)
- MCFG_NAMCO_AUDIO_VOICES(8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ NAMCO_15XX(config, m_namco15xx, 24000);
+ m_namco15xx->set_voices(8);
+ m_namco15xx->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
-MACHINE_CONFIG_START(namcos16_state::toypop)
+void namcos16_state::toypop(machine_config &config)
+{
liblrabl(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(master_toypop_map)
-MACHINE_CONFIG_END
+ m_master_cpu->set_addrmap(AS_PROGRAM, &namcos16_state::master_toypop_map);
+}
ROM_START( liblrabl )
diff --git a/src/mame/includes/baraduke.h b/src/mame/includes/baraduke.h
index 80cc9f4205e..1e7625e0c48 100644
--- a/src/mame/includes/baraduke.h
+++ b/src/mame/includes/baraduke.h
@@ -5,6 +5,7 @@
#pragma once
+#include "cpu/m6800/m6801.h"
#include "sound/namco.h"
#include "emupal.h"
@@ -62,7 +63,7 @@ protected:
required_shared_ptr<uint8_t> m_videoram;
required_shared_ptr<uint8_t> m_textram;
required_device<cpu_device> m_maincpu;
- required_device<cpu_device> m_mcu;
+ required_device<hd63701_cpu_device> m_mcu;
required_device<namco_cus30_device> m_cus30;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
diff --git a/src/mame/includes/deco32.h b/src/mame/includes/deco32.h
index 3b6578a3c99..d30a915821b 100644
--- a/src/mame/includes/deco32.h
+++ b/src/mame/includes/deco32.h
@@ -82,6 +82,7 @@ protected:
optional_device<ym2151_device> m_ym2151;
optional_device_array<okim6295_device, 3> m_oki;
optional_device<generic_latch_8_device> m_soundlatch;
+ required_device<cpu_device> m_maincpu;
void allocate_spriteram(int chip);
void allocate_buffered_palette();
@@ -96,8 +97,6 @@ protected:
std::unique_ptr<uint16_t[]> m_pf_rowscroll[4]; // common
private:
- required_device<cpu_device> m_maincpu;
-
// we use the pointers below to store a 32-bit copy..
required_shared_ptr_array<uint32_t, 4> m_pf_rowscroll32;
optional_shared_ptr<uint32_t> m_paletteram;
diff --git a/src/mame/includes/hexion.h b/src/mame/includes/hexion.h
index 9fa80410301..a7b53615181 100644
--- a/src/mame/includes/hexion.h
+++ b/src/mame/includes/hexion.h
@@ -7,6 +7,7 @@
#include "machine/k053252.h"
#include "machine/timer.h"
+#include "emupal.h"
class hexion_state : public driver_device
{
@@ -15,7 +16,8 @@ public:
driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_k053252(*this, "k053252"),
- m_gfxdecode(*this, "gfxdecode")
+ m_gfxdecode(*this, "gfxdecode"),
+ m_palette(*this, "palette")
{ }
void hexion(machine_config &config);
@@ -25,6 +27,7 @@ private:
required_device<cpu_device> m_maincpu;
required_device<k053252_device> m_k053252;
required_device<gfxdecode_device> m_gfxdecode;
+ required_device<palette_device> m_palette;
uint8_t *m_vram[2];
uint8_t *m_unkram;
diff --git a/src/mame/includes/namcos86.h b/src/mame/includes/namcos86.h
index 73a07091b59..05822f3b638 100644
--- a/src/mame/includes/namcos86.h
+++ b/src/mame/includes/namcos86.h
@@ -5,9 +5,10 @@
#pragma once
+#include "cpu/m6800/m6801.h"
#include "machine/watchdog.h"
-#include "sound/namco.h"
#include "sound/n63701x.h"
+#include "sound/namco.h"
#include "emupal.h"
class namcos86_state : public driver_device
@@ -17,6 +18,7 @@ public:
: driver_device(mconfig, type, tag)
, m_cpu1(*this, "cpu1")
, m_cpu2(*this, "cpu2")
+ , m_mcu(*this, "mcu")
, m_watchdog(*this, "watchdog")
, m_cus30(*this, "namco")
, m_gfxdecode(*this, "gfxdecode")
@@ -90,6 +92,7 @@ private:
required_device<cpu_device> m_cpu1;
required_device<cpu_device> m_cpu2;
+ required_device<hd63701_cpu_device> m_mcu;
required_device<watchdog_timer_device> m_watchdog;
required_device<namco_cus30_device> m_cus30;
required_device<gfxdecode_device> m_gfxdecode;
diff --git a/src/mame/includes/rallyx.h b/src/mame/includes/rallyx.h
index 6e2fdd0d64f..69d09eab6ac 100644
--- a/src/mame/includes/rallyx.h
+++ b/src/mame/includes/rallyx.h
@@ -9,6 +9,7 @@
#include "sound/namco.h"
#include "sound/samples.h"
#include "emupal.h"
+#include "screen.h"
class rallyx_state : public driver_device
{
@@ -29,7 +30,8 @@ public:
m_samples(*this, "samples"),
m_timeplt_audio(*this, "timeplt_audio"),
m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette")
+ m_palette(*this, "palette"),
+ m_screen(*this, "screen")
{ }
/* memory pointers */
@@ -59,6 +61,7 @@ public:
optional_device<timeplt_audio_device> m_timeplt_audio;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
+ required_device<screen_device> m_screen;
bool m_main_irq_mask;
DECLARE_WRITE8_MEMBER(rallyx_interrupt_vector_w);
diff --git a/src/mame/includes/tceptor.h b/src/mame/includes/tceptor.h
index 0ede885a277..48d9da69a5f 100644
--- a/src/mame/includes/tceptor.h
+++ b/src/mame/includes/tceptor.h
@@ -5,6 +5,7 @@
#pragma once
+#include "cpu/m6502/m65c02.h"
#include "sound/namco.h"
#include "video/c45.h"
#include "emupal.h"
@@ -16,6 +17,7 @@ public:
tceptor_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
+ m_audiocpu(*this, "audiocpu%u", 1U),
m_subcpu(*this, "sub"),
m_mcu(*this, "mcu"),
m_cus30(*this, "namco"),
@@ -38,6 +40,7 @@ private:
uint8_t m_m68k_irq_enable;
uint8_t m_mcu_irq_enable;
required_device<cpu_device> m_maincpu;
+ required_device_array<m65c02_device, 2> m_audiocpu;
required_device<cpu_device> m_subcpu;
required_device<cpu_device> m_mcu;
required_device<namco_cus30_device> m_cus30;